WO2014133025A1 - 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム - Google Patents

通信システム、上位コントローラ、ネットワークの制御方法及びプログラム Download PDF

Info

Publication number
WO2014133025A1
WO2014133025A1 PCT/JP2014/054728 JP2014054728W WO2014133025A1 WO 2014133025 A1 WO2014133025 A1 WO 2014133025A1 JP 2014054728 W JP2014054728 W JP 2014054728W WO 2014133025 A1 WO2014133025 A1 WO 2014133025A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
switch
virtual network
information
packet
Prior art date
Application number
PCT/JP2014/054728
Other languages
English (en)
French (fr)
Inventor
稗田 諭士
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2014133025A1 publication Critical patent/WO2014133025A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Definitions

  • the present invention is based on a Japanese patent application: Japanese Patent Application No. 2013-037511 (filed on Feb. 27, 2013), and the entire description of the application is incorporated herein by reference.
  • the present invention relates to a communication system, a host controller, a network control method, and a program, and more particularly, to a centralized control communication system, a host controller, a network control method, and a program in which a control device that centrally controls switches is arranged.
  • a network in which a packet transfer function of a network device and a control function such as route control are separated has attracted attention.
  • the network device is responsible for the packet transfer function, and the controller separated outside the network device is responsible for the control function. In this way, it becomes possible to construct a network that is easy to control and rich in flexibility.
  • Patent Document 1 and Non-Patent Documents 1 and 2 propose a technique called OpenFlow that realizes the above-described centralized control type network.
  • OpenFlow captures communication as an end-to-end flow and performs path control, failure recovery, load balancing, and optimization on a per-flow basis.
  • the OpenFlow switch specified in Non-Patent Document 2 includes a secure channel for communication with the OpenFlow controller, and operates according to a flow table that is appropriately added or rewritten from the OpenFlow controller. For each flow, a set of match conditions (Match Fields), flow statistical information (Counters), and instructions (Instructions) that define processing contents are defined for each flow (non-patented). (Refer to “5.2 Flow Table” in Document 2).
  • the OpenFlow switch searches the flow table for an entry having a matching condition (see “5.3 Matching” in Non-Patent Document 2) that matches the header information of the received packet. If an entry that matches the received packet is found as a result of the search, the OpenFlow switch updates the flow statistical information (counter) and processes the processing (designated) in the instruction field of the entry for the received packet. Perform packet transmission, flooding, discard, etc. from the port. On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch sends an entry setting request to the OpenFlow controller via the secure channel, that is, a control for processing the received packet. An information transmission request (Packet-In message) is transmitted. The OpenFlow switch receives a flow entry whose processing content is defined and updates the flow table. As described above, the OpenFlow switch performs packet transfer using the entry stored in the flow table as control information.
  • a matching condition see “5.3 Matching” in Non-Patent Document 2
  • the OpenFlow switch updates the flow statistical information (counter
  • Non-Patent Document 2 describes a system in which multiple controllers are provided, control messages are sent from the switch to multiple controllers, and multiple controllers respond. It has been.
  • Patent Document 1 describes a system in which a divider unit is provided between a switch and a controller, and switch resources (eg, switch ports) can be divided and managed by a plurality of controllers.
  • switch resources eg, switch ports
  • the centralized management with one controller has the following problems.
  • the control of one virtual network on the controller becomes a heavy load, performance degradation occurs in the control of all the virtual networks.
  • Non-Patent Document 2 is fault tolerant because the switch is configured to extend a control channel with a plurality of controllers and exchange control messages with the controller. On the other hand, when a control message arrives, each controller responds, so load distribution is not strictly limited.
  • the present invention provides a communication system, a host controller, a network control method, and a program capable of contributing to improvement in fault tolerance of a controller and load distribution when a virtual network is constructed using the above-described centralized control type network. With the goal.
  • a switch a plurality of controllers that set control information in the switch, a network management unit that manages information of a plurality of virtual networks logically divided using the switch,
  • An upper controller comprising: a controller managing unit that assigns a controller that controls the virtual network from among the plurality of controllers for each virtual network, and that provides information on the virtual network managed by the controller to the assigned controller;
  • a network management unit that manages information on a plurality of virtual networks that are configured using the switch and logically divided, and the virtual controller among the plurality of controllers for each virtual network.
  • a host controller includes a controller that assigns a controller that controls a network, and a controller management unit that provides information on a virtual network managed by the controller to the assigned controller.
  • information on a plurality of virtual networks that are connected to a switch and a plurality of controllers that set control information in the switch and that are configured using the switch and logically divided are managed.
  • a host controller having a network management unit assigns a controller that has jurisdiction over the virtual network from among the plurality of controllers for each virtual network, and information on the virtual network that the controller has jurisdiction over is assigned to the assigned controller.
  • information on a plurality of virtual networks that are connected to a switch and a plurality of controllers that set control information in the switch and that are configured using the switch and logically divided are managed.
  • a program for executing a process for starting control can be recorded on a computer-readable (non-transient) storage medium. That is, the present invention can be embodied as a computer program product.
  • FIG. 5 is a diagram showing a logical connection relationship of network elements in each virtual network of FIG. 4. It is a flowchart showing operation
  • FIG. 5 is a diagram in which transfer paths calculated by the communication system according to the first embodiment are superimposed on FIG. It is a figure which shows the structure of the communication system of 2nd Embodiment. It is a flowchart showing operation
  • one or more switches 1-1 to 1-n and a plurality of controllers 2-1 to 2-1 for setting control information in the switches 1-1 to 1-n can be realized by a communication system including 2-m and the host controller 3a.
  • the host controller 3a includes a network management unit 31a that manages information of a plurality of virtual networks logically divided using the switches 1-1 to 1-n, and a virtual network for each virtual network.
  • a controller management unit 32a that assigns a controller that controls the virtual network from among a plurality of controllers 2-1 to 2-m, and provides information on the virtual network managed by the controller to the assigned controller. .
  • FIG. 2 is a diagram illustrating a configuration of the communication system according to the first embodiment. Referring to FIG. 2, a configuration including one or more switches 1, a plurality of controllers 2, and a host controller 3 that controls these controllers 2 is shown.
  • the switch 1 is a device that transfers packets, and includes an entry table 11 and a packet transfer unit 12. Each switch 1 is connected to a controller 2 and a host controller 3 having jurisdiction over the switch 1 through a control channel, and can exchange control messages.
  • the entry table 11 can store one or more control information entries describing packet transfer rules. Each entry is composed of a match condition part that collates with a received packet and an action that defines processing contents to be applied to a packet that matches the match condition.
  • the packet transfer unit 12 When the packet transfer unit 12 receives a packet, the packet transfer unit 12 searches the entry table 11 for an entry having a matching condition that matches the received packet, and executes the contents of the action field of the entry, thereby transferring the packet or notifying the reception of the packet. Send and so on.
  • the open flow switches of Non-Patent Documents 1 and 2 can be used.
  • the switch is assumed to be the open flow switch of Non-Patent Document 2.
  • the received switch port number, transmission destination address, transmission source address, VLAN-ID, layer 4 transmission source port number, layer 4 transmission destination port number, etc. are designated as the matching conditions of Non-Patent Document 2. It will be explained as possible.
  • the transfer destination port number, controller information, etc. can be specified in the action field.
  • the switch 1 of the present embodiment transmits the packet to the designated controller 2. Request entry setting. If the switch 1 of this embodiment does not match any entry, the switch 1 transmits a packet to the host controller 3 and requests entry setting. That is, the transmission destination of the packet (packet reception notification) differs between when the entry of the entry table 11 explicitly instructs the transmission of the packet and when there is no corresponding entry in the entry table 11.
  • the controller 2 is a device that controls the switch 1.
  • the controller 2 includes a virtual network management unit 21, a switch topology management unit 22, a controller information setting unit 23, and a route setting unit 24.
  • the controller 2 may be configured to be bootable from the controller management unit 32 of the host controller 3, and may be, for example, a virtual machine that operates on a virtual server using a virtualization technique.
  • the virtual network management unit 21 manages information on the virtual network controlled by the controller 2.
  • the virtual network information includes information for identifying packets belonging to the virtual network set by the virtual network user and virtual network configuration information.
  • the switch topology management unit 22 manages topology information composed of one or more switches 1 controlled by the controller 2.
  • the controller information setting unit 23 refers to the switch topology management unit 22 and sets control information (entry of the entry table 11) that instructs the switch 1 corresponding to the network edge to transmit a packet to the own device.
  • the route setting unit 24 When receiving a packet reception notification from the switch 1 in which the control information is set, the route setting unit 24 refers to the received packet information (eg, packet transmission destination address) and the virtual network management unit 21 to transfer the packet. Calculate the route.
  • the path setting unit 24 creates control information for causing the switch 1 on the transfer path of the packet to transfer the packet along the transfer path of the packet. Is set for the switch 1 on the transfer path.
  • the path setting unit 24 creates an entry for outputting the packet from each port connected to the next switch or server on the transfer path. And set.
  • the host controller 3 is a device that controls the controller 2 and also controls the switch 1.
  • the host controller 3 includes an all virtual network management unit 31, a controller management unit 32, an all switch topology management unit 33, and the same components as the controller 2 described above. In the example of FIG. 2, the components of the controller 2 included in the host controller 3 are omitted.
  • the all virtual network management unit 31 manages virtual network information set by the user. That is, the all virtual network management unit 31 manages information of all virtual networks constructed on the managed network.
  • all virtual networks means a set of virtual networks managed by the controller 2 under the control of the host controller 3 and includes, for example, information on other virtual networks not controlled by any controller 2. It does not have to be.
  • the virtual network information received from the user by all the virtual network managers 31 is not limited to the configuration or control policy of the virtual network, but is in the form of control information that defines the transfer rules for packets flowing on the network. Also good. In this case, the controller 2 and the switch 1 transfer the packet according to the set control information.
  • the controller management unit 32 refers to a table in which the controller and the virtual network are associated with each other, and activates the controller 2 that is not assigned to the virtual network.
  • the controller management unit 32 transmits to the activated controller 2 information on the virtual network to be in charge (responsible) and topology information of the switch 1.
  • the all switch topology management unit 33 manages the topology information of all the switches 1 on the network.
  • the all-switch topology management unit 33 may be configured as a shared storage that can be accessed from either the host controller 3 or the controller 2.
  • the controller management unit 32 does not transmit the topology information of the switch 1 itself to the controller 2 but transmits a URI (Unified Resource Identifier) for accessing the topology information of the switch 1.
  • a URI Unified Resource Identifier
  • the controller 2 refers to the topology information of the switch 1, it designates the URI and inquires the all switch topology management unit 33.
  • each unit (processing means) of the host controller 3 and the controller 2 shown in FIG. 2 is realized by a computer program that causes a computer constituting these devices to execute the above-described processes using the hardware thereof. You can also.
  • FIG. 3 is a flowchart showing the operation of the host controller and the controller according to the first embodiment.
  • the entire virtual network management unit 31 of the host controller 3 receives a virtual network setting from the user (step A1 in FIG. 3).
  • controller management unit 32 activates the controller 2 (step A2), and with respect to the controller 2, information on the virtual network received from the user and all the information on the network acquired from the all-switch topology management unit 33.
  • the topology information of the switch 1 is transmitted (step A3).
  • the controller 2 registers the received virtual network information in the virtual network management unit 21, and registers the topology information of the switch 1 in the switch topology management unit 22 (step A4). If the topology information of the switch 1 has already been registered in the switch topology management unit 22, the transmission of the topology information of the switch 1 and the registration processing in the switch topology management unit 22 in step A3 may be omitted. it can.
  • the controller information setting unit 23 refers to the virtual network information in the virtual network management unit 21, sets information for specifying a packet to be controlled by the virtual network in the match condition, and sets the information in the action field. Then, a control information entry in which the packet transfer process to the controller 2 (self apparatus) is set is created (step A5).
  • the controller information setting unit 23 refers to the topology information of the switch 1 in the switch topology management unit 22 and sets the control created in step A5 to the switch corresponding to the network edge among the switches 1 related to the virtual network.
  • An information entry is set (step A6).
  • the controller 2 can perform all control related to the virtual network.
  • control information entries for instructing the controller 421 to transmit a packet reception notification are set in the switches 411 and 416 corresponding to the network edge by the processing of steps A5 and A6 of FIG. .
  • the controller 2 also sets control information that instructs transfer processing of packets belonging to the virtual network to the switches 412, 413, 414, and 415 corresponding to the core switch (described later). Therefore, the controller 421 can manage the virtual network shown in FIG. 5A by controlling each switch shown in FIG. 6A (switches other than the switch 417).
  • control information entries for instructing the controller 422 to transmit a packet reception notification are set in the switches 411 and 417 corresponding to the network edge by the processing of steps A5 and A6 of FIG. .
  • the controller 2 also sets control information that instructs transfer processing of packets belonging to the virtual network to the switches 412, 413, 414, and 415 corresponding to the core switch (described later). Therefore, the controller 422 can manage the virtual network shown in FIG. 5B by controlling each switch shown in FIG. 6B (switches other than the switch 416).
  • FIG. 7 is a flowchart showing the operation of the switches 411 to 417 of this embodiment.
  • the transmission source server 401 has transmitted a packet to the transmission destination server A 402 according to the configuration of the virtual network shown in FIG.
  • the packet transfer unit 12 Referring to the entry table 11, it is confirmed whether there is an entry having a matching condition that matches the received packet (step B2).
  • the packet transfer unit 12 checks whether or not the content of the action field of the matched entry is a transfer process to the controller (Step B3). If it is a transfer process to the controller (Yes in step B3), the packet transfer unit 12 transfers the packet to the target controller (step B4).
  • the processing (processing A) at the controller that receives the transferred packet will be described later.
  • the packet transfer unit 12 processes the packet according to the action field content (step B5). ).
  • Step B2 If no entry having a matching condition that matches the received packet is found in Step B2 (No in Step B2), the packet transfer unit 12 receives the packet from the upper controller 431 (corresponding to the upper controller 3). A notification is transmitted (step B6). Processing (Processing A) in the controller (higher-order controller) that has received the transferred packet will be described later.
  • the controller 421 in FIGS. 4 and 5 will be described as an example.
  • the path setting unit 24 refers to the received packet information (eg, packet destination address) and the virtual network management unit 21 to transfer the packet.
  • a route is calculated (step C2).
  • the route setting unit 24 creates a control information entry for each of the switch 411, the switch 412, the switch 413, and the switch 416 so that the packet is transferred along the route, and sets the control information entry for each switch ( Step C3).
  • the route setting unit 24 returns the last packet received by the controller 421 to the switch 411 and instructs the output of the packet (step C4). Note that the packet reception notification operations in the controller 422 and the host controller 431 are the same as those in the controller 421, and therefore will be omitted.
  • the host controller 3 of the present embodiment operates to activate the controller 2 and perform distributed control of the virtual network of the entire network with a plurality of controllers every time it receives virtual network information from the user. For this reason, failures in individual virtual networks do not spill over to control of other virtual networks, and network availability can be improved.
  • traffic for example, the packet reception notification
  • the controllers provided for each virtual network can be distributed and processed by the controllers provided for each virtual network.
  • QoS Quality of Service
  • FIG. 10 is a diagram illustrating a configuration of a communication system according to the second embodiment.
  • a configuration including a switch 1, a controller 2, a host controller 3, and a controller proxy 5 is shown.
  • the configuration of the switch 1, the controller 2, and the host controller 3 is the same as the configuration of the first embodiment, and the description thereof is omitted.
  • the controller proxy 5 is a device that operates as a proxy function of the controller 2 for the switch 1, and one controller proxy 5 is arranged for each edge switch 1.
  • the switch 1 is set so that a packet reception notification is transmitted to the controller proxy 5 when a control information entry having a matching condition matching the received packet is not found as a result of searching the entry table 11.
  • the controller proxy 5 When receiving the packet reception notification, the controller proxy 5 performs an operation of transferring the packet reception notification to a more appropriate controller 2. Further, when receiving the control information entry from the controller 2, the controller proxy 5 sets the control information entry for the corresponding switch 1 on behalf of the controller 2.
  • the controller proxy 5 includes a controller information table 51 and a packet transfer unit 52.
  • the controller information table 51 can store one or more control information entries describing packet transfer rules. Each entry is composed of a match condition part that collates with a received packet and an action that defines processing contents to be applied to a packet that matches the match condition.
  • the configuration is the same as that of the entry table 11 of the switch 1 described in the first embodiment. The difference is that the content set as an action is set exclusively by the control information entry instructing transfer to the controller 2. The difference is whether or not.
  • the packet transfer unit 52 refers to the controller information table 51 and transfers the packet reception notification received from the switch 1 to the controller 2. More specifically, the header part of the received packet is matched with the matching condition of each control information entry, and if a match is found, the operation defined in the action field is performed. When the content for instructing transfer to a specific controller 2 is set in the action field, the packet transfer unit 52 transmits a packet reception notification to the corresponding controller 2 and requests setting of a control information entry. Further, as a result of the search of the controller information table 51, when no control information entry having a matching condition that matches the received packet is found, the packet transfer unit 52 transmits a packet reception notification to the upper controller 3, and the control information Request entry setting.
  • FIG. 11 is a flowchart showing the host controller and the operation of the controller according to the second embodiment.
  • the entire virtual network management unit 31 of the host controller 3 receives a virtual network setting from the user (step D1 in FIG. 11).
  • controller management unit 32 activates the controller 2 (step D2), and with respect to the controller 2, information on the virtual network received from the user and all the information on the network acquired from the all-switch topology management unit 33.
  • the topology information of the switch 1 is transmitted (step D3).
  • the controller 2 registers the received virtual network information in the virtual network management unit 21, and registers the topology information of the switch 1 in the switch topology management unit 22 (step D4). If the topology information of the switch 1 has already been registered in the switch topology management unit 22, the transmission of the topology information of the switch 1 in step D3 and the registration process in the switch topology management unit 22 may be omitted. it can.
  • the controller information setting unit 23 refers to the virtual network information in the virtual network management unit 21, sets information for specifying a packet to be controlled by the virtual network in the match condition, and sets the information in the action field. Then, a control information entry in which packet transfer processing to the controller 2 (self apparatus) is set is created (step D5).
  • the controller information setting unit 23 refers to the topology information of the switch 1 in the switch topology management unit 22 to the controller proxy 5 that manages the switch corresponding to the network edge among the switches 1 related to the virtual network. Then, the control information entry created in step D5 is set (step D6).
  • the controller 2 can perform all control related to the virtual network.
  • switch control by the controller 2 will be described with a specific example.
  • the controller 421 in FIG. 12A has jurisdiction over the virtual network shown in FIG. 12B (the controller 422's virtual network is not shown).
  • controller proxy 451 of the switch 411 corresponding to the network edge and the controller proxy 456 of the switch 416 are instructed to transmit a packet reception notification to the controller 421 by the processing of steps D5 and D6 in FIG. It is assumed that the control information entry to be set is set.
  • FIG. 13 is a flowchart showing the operations of the switches 411 to 417 and the controller proxy (for example, the controller proxy 451) of this embodiment.
  • the transmission source server 401 has transmitted a packet to the transmission destination server A 402 in accordance with the configuration of the virtual network shown in FIG.
  • the packet transfer unit 12 Referring to the entry table 11, it is confirmed whether there is an entry having a matching condition that matches the received packet (step E2).
  • the packet transfer unit 12 processes the packet according to the content of the action field of the matched entry (Step E3).
  • step E2 If no entry having a matching condition that matches the received packet is found in step E2 (No in step E2), the packet transfer unit 12 transmits a packet reception notification to the controller proxy 451 (step E4).
  • the packet transfer unit 52 refers to the controller information table 51 and checks whether there is an entry having a matching condition that matches the received packet (step E6).
  • the packet transfer unit 12 transmits a packet reception notification to the designated controller according to the content of the action field of the matched entry (Step E7).
  • the packet transfer unit 52 determines that the upper controller 431 (the above-mentioned A packet reception notification is transmitted to the host controller 3 (step E8).
  • the processing (processing A) in the controller (higher-order controller) that has received the transferred packet is the same as the processing A in the first embodiment, and thus description thereof is omitted.
  • the load on the controller can be further reduced.
  • a controller proxy 5 is provided between the controller 2 and the switch 1 and a control information entry from the controller 2 to the controller proxy 5 may be set for the packet reception notification. This is because the controller proxy 5 is also configured to perform the setting operation.
  • the controller proxy is connected to the edge switch.
  • some switches are not connected to the controller proxy and operate in the same manner as in the first embodiment. Is possible.
  • the controller 2 has been described as setting control information in which the matching condition to be matched with the received packet and the destination controller are set in the switch 1 to the controller proxy 5.
  • the host controller 3 may be responsible for setting control information to the switch 1 to the controller proxy 5.
  • the controller Based on the virtual network information received from the host controller, the controller sets control information that causes the switch to transmit a packet reception notification to the own device, and upon receiving the packet reception notification, A communication system for executing calculation of a packet transfer route in a virtual network under its control and setting of control information to a switch on the packet transfer route.
  • the communication system by which the controller proxy which determines the controller used as the transmission destination of the packet reception notification from the said switch is arrange
  • the controller sets control information that causes the controller proxy to transmit a packet reception notification to the own device based on the virtual network information received from the host controller, and triggered by the reception of the packet reception notification.
  • the communication system which performs calculation of the transfer route of the packet in the virtual network which the jurisdiction has, and setting of the control information to the switch on the transfer route of the packet.
  • the network management unit of the host controller sets control information in which a match condition to be matched with a received packet and a destination controller are associated with the controller proxy,
  • the controller proxy refers to the control information, and determines a controller as a transmission destination of a packet reception notification from the switch.

Abstract

 集中制御型のネットワークを用いて仮想ネットワークを構築する場合のコントローラの耐障害性の向上及び負荷分散に貢献する。通信システムは、スイッチと、前記スイッチに制御情報を設定する複数のコントローラと、前記スイッチを用いて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部と、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部と、を備える上位コントローラと、を含む。

Description

通信システム、上位コントローラ、ネットワークの制御方法及びプログラム
 [関連出願についての記載]
 本発明は、日本国特許出願:特願2013-037511号(2013年 2月27日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、通信システム、上位コントローラ、ネットワークの制御方法及びプログラムに関し、特に、スイッチを集中制御する制御装置を配置した集中制御型の通信システム、上位コントローラ、ネットワークの制御方法及びプログラムに関する。
 近年、ネットワーク機器のパケット転送機能と経路制御等の制御機能とを分離した形態のネットワークが注目を浴びている。このようなネットワークでは、ネットワーク機器がパケット転送機能を担い、ネットワーク機器の外部に分離したコントローラが制御機能を担うことになる。このようにすることで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。
 特許文献1及び非特許文献1、2に、上記集中制御型のネットワークを実現するオープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献2に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件(Match Fields)と、フロー統計情報(Counters)と、処理内容を定義したインストラクション(Instructions)と、の組が定義される(非特許文献2の「5.2 Flow Table」の項参照)。
 例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件(非特許文献2の「5.3 Matching」参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報(カウンタ)を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容(指定ポートからのパケット送信、フラッディング、廃棄等)を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求(Packet-Inメッセージ)を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
 また、非特許文献2の「6.3.4 Multiple Controllers」の項には、複数のコントローラを設け、スイッチから複数のコントローラに対し、制御メッセージを送信し、複数のコントローラが応答するシステムについて述べられている。
 また、特許文献1には、スイッチとコントローラ間に分割器ユニットを設け、スイッチのリソース(例:スイッチポート)を複数のコントローラで分割して管理可能なシステムについて述べられている。
特表2001-502486号公報
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成25(2013)年2月18日検索]、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 1.3.1 (Wire Protocol 0x04)、[online]、[平成25(2013)年2月18日検索]、インターネット〈URL:https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.3.1.pdf〉
 以下の分析は、本発明によって与えられたものである。上記非特許文献2にも述べられているように、1つのコントローラによる集中管理では、以下のような問題点がある。まず、コントローラで障害が発生した場合、そのコントローラ上で管理されている全ての仮想ネットワークの制御が停止してしまう可能性がある。またコントローラ上の1つの仮想ネットワークの制御が高負荷になった場合は、全ての仮想ネットワークの制御で性能低下が発生してしまう。こうした問題点を解決するために、複数のスイッチから構成されるネットワークを、複数のコントローラで分散して制御する技術が求められている。
 しかしながら、非特許文献2の構成では、スイッチが複数のコントローラと制御チャネルを張り、コントローラと制御メッセージを授受する構成となっているため、フォールトトレラントになっている。その一方で、制御メッセージが届いた場合には個々のコントローラは応答することになるため、厳密な意味での負荷分散にはなっていない。
 さらに、集中制御型のネットワークを用いて論理的に分割された仮想ネットワークを構築するようになると、個々の通信が属する仮想ネットワークを考慮する必要が生じ、非特許文献2に述べられているようなコントローラ間のハンドオーバーも容易に行うことができなくなってしまう。
 また、特許文献1の分割器ユニットは、スイッチリソースを排他制御することで分割しているため、同一のスイッチリソースを論理的に分割し制御することができない。すなわち1つのスイッチポートを、複数の仮想ネットワークで共有する等の設定を行うことができない。
 本発明は、上記した集中制御型のネットワークを用いて仮想ネットワークを構築する場合のコントローラの耐障害性の向上及び負荷分散に貢献できる通信システム、上位コントローラ、ネットワークの制御方法及びプログラムを提供することを目的とする。
 第1の視点によれば、スイッチと、前記スイッチに制御情報を設定する複数のコントローラと、前記スイッチを用いて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部と、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部と、を備える上位コントローラと、を含む通信システムが提供される。
 第2の視点によれば、前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部と、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部と、を備える上位コントローラが提供される。
 第3の視点によれば、スイッチと、スイッチに制御情報を設定する複数のコントローラと、に接続され、前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部を備えた上位コントローラが、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当てるステップと、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供し、制御を開始させるステップとを含むネットワーク制御方法が提供される。本方法は、複数のコントローラの上位装置として機能する上位コントローラという、特定の機械に結びつけられている。
 第4の視点によれば、スイッチと、スイッチに制御情報を設定する複数のコントローラと、に接続され、前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部を備えたコンピュータに、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当てる処理と、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供し、制御を開始させる処理とを実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、集中制御型のネットワークを用いて仮想ネットワークを構築する場合のコントローラの耐障害性の向上及び負荷分散に貢献できることが可能となる。
一実施形態の構成を示す図である。 第1の実施形態の通信システムの構成を示す図である。 第1の実施形態の上位コントローラとコントローラの動作を表したフローチャートである。 第1の実施形態の通信システムが制御するネットワークの物理的構成例を示す図である。 第1の実施形態の通信システムが制御する仮想ネットワークの一例を示す図である。 図4の各仮想ネットワークにおけるネットワーク要素の論理的な接続関係を示す図である。 第1の実施形態のスイッチの動作を表したフローチャートである。 図7の処理Aの詳細を表したフローチャートである。 図4に第1の実施形態の通信システムが計算した転送経路を重ねて表した図である。 第2の実施形態の通信システムの構成を示す図である。 第2の実施形態の上位コントローラとコントローラの動作を表したフローチャートである。 第2の実施形態の通信システムが制御するネットワーク、仮想ネットワーク、計算された転送経路の一例を示す図である。 第2の実施形態のスイッチ及びコントローラプロキシの動作を表したフローチャートである。
 はじめに一実施形態の概要について図面を参照して説明する。
なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本願開示を図示の態様に限定することを意図するものではない。
 本願開示の一実施形態において、図1に示すように、1つ以上のスイッチ1-1~1-nと、スイッチ1-1~1-nに制御情報を設定する複数のコントローラ2-1~2-mと、上位コントローラ3aと、を含む通信システムにて実現できる。
 より具体的には、前記上位コントローラ3aは、前記スイッチ1-1~1-nを用いて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部31aと、前記仮想ネットワーク毎に、複数のコントローラ2-1~2-mの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部32aと、を備える。
 上記構成にすることにより、図1に図示されたように、仮想ネットワーク毎に管轄するコントローラを配置できるので、システム全体の負荷分散を実現できる。また仮に、あるコントローラに障害が発生した場合であっても、別のコントローラを割り当てることが可能となるので耐障害性能を向上させることが可能となる。
[第1の実施形態]
 続いて、第1の実施形態について図面を参照して詳細に説明する。図2は、第1の実施形態の通信システムの構成を示す図である。図2を参照すると、1つ以上のスイッチ1と、複数のコントローラ2と、これらコントローラ2の制御を行う上位コントローラ3とを含む構成が示されている。
 スイッチ1は、パケットの転送を行う装置であり、エントリテーブル11とパケット転送部12とを備えている。また各スイッチ1は、制御チャネルを介して、自身を管轄するコントローラ2と、上位コントローラ3とに接続され、制御メッセージを授受できるようになっている。
 エントリテーブル11は、パケットの転送ルールを記載した1個以上の制御情報エントリを格納可能となっている。各エントリは、受信パケットと照合するマッチ条件部とマッチ条件に適合するパケットに適用する処理内容を定めたアクションから構成される。
 パケット転送部12は、パケットを受信すると、エントリテーブル11から受信パケットに適合するマッチ条件を持つエントリを検索し、そのエントリのアクションフィールドの内容の実行することで、パケットの転送やパケット受信通知の送信等を行う。
 上記のようなスイッチ1として、非特許文献1、2のオープンフロースイッチを用いることができる。以下、スイッチは非特許文献2のオープンフロースイッチであるものとして説明する。本実施形態では、非特許文献2のマッチ条件として、受信したスイッチポート番号、送信先アドレス、送信元アドレス、VLAN-ID、レイヤ4の送信元ポート番号、レイヤ4の送信先ポート番号等を指定できるものとして説明する。またアクションフィールドには転送先のポート番号、コントローラ情報等を指定できるものとして説明する。
 また、本実施形態のスイッチ1は、マッチしたエントリのアクションに、指定したコントローラ2へのパケットの送信を指示する内容が設定されていた場合、指定されたコントローラ2に対し当該パケットを送信し、エントリ設定を依頼する。また、本実施形態のスイッチ1は、どのエントリにもマッチしなかった場合は、上位コントローラ3に、パケットを送信し、エントリ設定を依頼する。即ち、エントリテーブル11のエントリにて明示的にパケットの送信が指示されている場合と、エントリテーブル11に該当エントリが無い場合とで、パケット(パケット受信通知)の送信先が異なっている。
 コントローラ2は、スイッチ1の制御を行う装置である。コントローラ2は、仮想ネットワーク管理部21と、スイッチトポロジ管理部22と、コントローラ情報設定部23と、経路設定部24と、を備えている。なお、コントローラ2は、上位コントローラ3のコントローラ管理部32から起動可能な構成であればよく、例えば、仮想化技術を用いて仮想サーバ上で動作する仮想マシンであってもよい。
 仮想ネットワーク管理部21は、コントローラ2で制御する仮想ネットワークの情報を管理する。仮想ネットワークの情報には仮想ネットワークのユーザが設定した仮想ネットワークに属するパケットを識別するための情報や仮想ネットワークの構成情報が含まれている。
 スイッチトポロジ管理部22は、コントローラ2が制御する1つ以上のスイッチ1で構成されるトポロジ情報を管理する。
 コントローラ情報設定部23は、スイッチトポロジ管理部22を参照し、ネットワークエッジに相当するスイッチ1に対して、自装置へのパケットの送信を指示する制御情報(エントリテーブル11のエントリ)を設定する。
 経路設定部24は、前記制御情報が設定されたスイッチ1からパケット受信通知を受信すると、受信したパケットの情報(例:パケットの送信先アドレス)及び仮想ネットワーク管理部21を参照し、パケットの転送経路を計算する。前記パケットの転送経路が求まると、経路設定部24は、パケットの転送経路上にあるスイッチ1に対し、パケットを前記パケットの転送経路に沿って転送させるための制御情報を作成して、前記パケットの転送経路上にあるスイッチ1に対して設定する。なお、パケットの転送経路上に複数のスイッチ1が存在する場合、経路設定部24は、スイッチ1毎に、転送経路上の次のスイッチやサーバに接続されたポートからパケットを出力させるエントリを作成し、設定する。
 上位コントローラ3は、コントローラ2の制御を行い、またスイッチ1の制御も行う装置である。上位コントローラ3は、全仮想ネットワーク管理部31と、コントローラ管理部32と、全スイッチトポロジ管理部33と、上記したコントローラ2と同様の構成要素とを備えてから構成される。なお、図2の例では、上位コントローラ3が備えるコントローラ2の構成要素については、省略している。
 全仮想ネットワーク管理部31は、ユーザから設定された仮想ネットワークの情報を管理する。即ち、全仮想ネットワーク管理部31は、管理下のネットワーク上で構築されるすべての仮想ネットワークの情報を管理する。なお、「すべての仮想ネットワーク」とは、上位コントローラ3の制御下にあるコントローラ2が管轄する仮想ネットワークの集合という意味であり、例えば、いずれのコントローラ2も管轄しないその他の仮想ネットワークに関する情報は含まれていなくともよい。
 また、全仮想ネットワーク管理部31がユーザから受け付ける仮想ネットワークの情報は、仮想ネットワークの構成や制御ポリシーに限定するものではなく、ネットワーク上を流れるパケットの転送ルールを規定した制御情報の形態であってもよい。この場合、コントローラ2及びスイッチ1は、設定された制御情報に従い、パケットを転送することになる。
 コントローラ管理部32は、コントローラと仮想ネットワークとを対応付けたテーブル等を参照し、仮想ネットワークに割り当てられていないコントローラ2を起動する。コントローラ管理部32は、前記起動したコントローラ2に対し、担当(管轄)させる仮想ネットワークの情報及びスイッチ1のトポロジ情報を送信する。
 全スイッチトポロジ管理部33は、ネットワーク上のすべてのスイッチ1のトポロジ情報を管理する。
 また、全スイッチトポロジ管理部33は、上位コントローラ3及びコントローラ2のどちらからもアクセス可能な共有ストレージとして構成されていても良い。その場合、コントローラ管理部32は、コントローラ2に、スイッチ1のトポロジ情報そのものを送信するのではなく、スイッチ1のトポロジ情報にアクセスするためのURI(Unified Resource Identifier)を送信する。コントローラ2は、スイッチ1のトポロジ情報を参照する場合は、URIを指定して全スイッチトポロジ管理部33に問い合わせる。
 なお、図2に示した上位コントローラ3及びコントローラ2の各部(処理手段)は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
 続いて、本実施形態の動作について図面を参照して詳細に説明する、はじめに、本実施形態の上位コントローラとコントローラの基本動作について説明する。図3は、第1の実施形態の上位コントローラとコントローラの動作を表したフローチャートである。
 まず、上位コントローラ3の全仮想ネットワーク管理部31が、ユーザから仮想ネットワークの設定を受け付ける(図3のステップA1)。
 次にコントローラ管理部32は、コントローラ2を起動し(ステップA2)、該コントローラ2に対して、前記ユーザから受け付けた仮想ネットワークの情報と、全スイッチトポロジ管理部33から取得したネットワーク上のすべてのスイッチ1のトポロジ情報を送信する(ステップA3)。
 コントローラ2は、仮想ネットワーク管理部21に受信した仮想ネットワークの情報を登録し、スイッチトポロジ管理部22にスイッチ1のトポロジ情報を登録する(ステップA4)。なお、スイッチ1のトポロジ情報が、すでにスイッチトポロジ管理部22に登録済みである場合には、ステップA3におけるスイッチ1のトポロジ情報の送信と、スイッチトポロジ管理部22への登録処理は省略することができる。
 次に、コントローラ情報設定部23は、仮想ネットワーク管理部21内の仮想ネットワークの情報を参照して、マッチ条件に、当該仮想ネットワークで制御するパケットを特定するための情報を設定し、アクションフィールドに、コントローラ2(自装置)へのパケット転送処理を設定した制御情報エントリを作成する(ステップA5)。
 次に、コントローラ情報設定部23は、スイッチトポロジ管理部22内のスイッチ1のトポロジ情報を参照して、仮想ネットワークに関係するスイッチ1のうちネットワークエッジに相当するスイッチに、ステップA5で作成した制御情報エントリを設定する(ステップA6)。
 以上のようなコントローラ2及びスイッチ1への設定を行うことで、コントローラ2が、当該仮想ネットワークに関する制御をすべて行うことが可能になる。
 続いて、コントローラ2によるスイッチ制御について具体的な例を示して説明する。以下の説明では、図4に示す物理的構成のネットワーク上で、図5(a)、(b)に示す2つの異なる仮想ネットワークが構築されているものとする。また、以下の説明では、図4のコントローラ421が、図5(a)に示す仮想ネットワークを管轄し、図4のコントローラ422が、図5(b)に示す仮想ネットワークを管轄しているものとする。
 図4のネットワーク構成において、ネットワークエッジに相当するスイッチ411および416には、図3のステップA5、A6の処理により、コントローラ421に対しパケット受信通知の送信を指示する制御情報エントリが設定されている。また、コントローラ2は、コアスイッチに相当するスイッチ412、413、414、415にも、当該仮想ネットワークに属するパケットの転送処理を指示する制御情報を設定する(後述)。従って、コントローラ421は、図6(a)で示す各スイッチ(スイッチ417以外のスイッチ)を制御することで、図5(a)で示した仮想ネットワークを管理することができる。
 図4のネットワーク構成において、ネットワークエッジに相当するスイッチ411及び417には、図2のステップA5、A6の処理により、コントローラ422に対しパケット受信通知の送信を指示する制御情報エントリが設定されている。また、コントローラ2は、コアスイッチに相当するスイッチ412、413、414、415にも、当該仮想ネットワークに属するパケットの転送処理を指示する制御情報を設定する(後述)。従って、コントローラ422は、図6(b)で示す各スイッチ(スイッチ416以外のスイッチ)を制御することで、図5(b)で示した仮想ネットワークを管理することができる。
 ここで、スイッチ411~417の基本動作について図面を参照して詳細に説明する。図7は、本実施形態のスイッチ411~417の動作を表したフローチャートである。また、以下の説明では、図5(a)に示した仮想ネットワークの構成に従い、送信元サーバ401が送信先サーバA402にパケットを送信したものとして説明する。
 図7を参照すると、送信元サーバ401に隣接しネットワークエッジに相当するスイッチ411が、送信元サーバ401から送信先サーバA402宛てのパケットを受信すると(図7のステップB1)、パケット転送部12がエントリテーブル11を参照して、受信パケットにマッチするマッチ条件を持つエントリがあるか確認する(ステップB2)。ここで、該当エントリが見つかった場合(ステップB2のYes)、パケット転送部12は、マッチしたエントリのアクションフィールドの内容がコントローラへの転送処理かどうかをチェックする(ステップB3)。コントローラへの転送処理であれば(ステップB3のYes)、パケット転送部12は、対象のコントローラにパケットを転送する(ステップB4)。転送されたパケットを受信したコントローラでの処理(処理A)については後述する。
 一方、マッチしたエントリのアクションフィールドの内容がコントローラへの転送処理以外のものが設定されている場合(ステップB3のNo)、パケット転送部12は、アクションフィールドの内容に従いパケットを処理する(ステップB5)。
 また、前述のステップB2で、受信パケットにマッチするマッチ条件を持つエントリが見つからなかった場合(ステップB2のNo)、パケット転送部12は、上位コントローラ431(上記上位コントローラ3に相当)にパケット受信通知を送信する(ステップB6)。転送されたパケットを受信したコントローラ(上位コントローラ)での処理(処理A)については後述する。
 なおスイッチ411に、スイッチのエントリテーブル11に、コントローラへの転送処理を行う制御情報エントリを複数登録することも可能である。例えば、「マッチ条件:パケット送信先アドレス=送信先サーバA402、アクション=コントローラ421へ転送」というエントリと、「マッチ条件:パケットの送信先アドレス=送信先サーバB403、アクション:コントローラ422へ転送」というエントリを、スイッチ411のエントリテーブル11の最終エントリ付近(エントリテーブル11への設定位置が上位にあればあるほど優先度が高いという設定がなされている場合)にそれぞれ設定しておけば、上位のどのエントリにもヒットしないパケットを上記2エントリで適切なコントローラへ転送できる。 
 続いて、上記パケット受信通知を受信したコントローラの動作について、図8を用いて説明する。ここでは、図4、図5のコントローラ421を例として説明する。コントローラ421がパケット受信通知を受信すると(図8のステップC1)、経路設定部24が、受信したパケットの情報(例:パケットの送信先アドレス)および仮想ネットワーク管理部21を参照し、パケットの転送経路を計算する(ステップC2)。
 例えば図9の太線で示すように、送信元サーバ401―スイッチ411―スイッチ412―スイッチ413―スイッチ416―送信先サーバA402というパケット転送経路が求まったとする。
 次に、経路設定部24は、経路通りにパケットが転送されるよう、スイッチ411、スイッチ412、スイッチ413、スイッチ416のそれぞれに向けた制御情報エントリを作成し、各スイッチに対して設定する(ステップC3)。
 経路設定部24は、最後にコントローラ421が受信したパケットを、スイッチ411に返し、当該パケットの出力を指示する(ステップC4)。なお、コントローラ422、上位コントローラ431におけるパケット受信通知の動作は、コントローラ421と同様であるので省略する。
 以上説明したように、本実施形態の上位コントローラ3は、ユーザから仮想ネットワークの情報を受け付ける度に、コントローラ2を起動し、ネットワーク全体の仮想ネットワークを複数台のコントローラで分散制御するよう動作する。このため、個々の仮想ネットワークでの障害が、他の仮想ネットワークの制御に波及せず、ネットワークの可用性を向上させることができる。
 また本実施形態によれば、スイッチ1とコントローラ2間で発生するトラフィック(例えば、上記のパケット受信通知)も仮想ネットワーク毎に設けられたコントローラで分散して処理することが可能となる。もちろん、仮想ネットワーク単位で異なる性能のコントローラを起動することも可能であり、仮想ネットワークを設定したユーザ単位でのQoS(Quality of Service)の確保をすることも可能である。
[第2の実施形態]
 続いて、上記した第1の実施形態の構成に、コントローラ2の一部処理を代行するプロキシとして動作するコントローラプロキシを追加した第2の実施形態について図面を参照して詳細に説明する。
 図10は、第2の実施形態の通信システムの構成を示す図である。図10を参照すると、スイッチ1と、コントローラ2と、上位コントローラ3と、コントローラプロキシ5とを含む構成が示されている。このうち、スイッチ1、コントローラ2及び上位コントローラ3の構成は第1の実施形態の構成と同様であるので説明を省略する。
 コントローラプロキシ5は、スイッチ1に対するコントローラ2の代理機能として動作する装置であり、各エッジスイッチ1に対して1つのコントローラプロキシ5が配置される。
 スイッチ1は、エントリテーブル11の検索の結果、受信パケットに適合するマッチ条件を持つ制御情報エントリが見つからなかった場合、コントローラプロキシ5に対して、パケット受信通知を送信されるよう設定されている。
 コントローラプロキシ5は、パケット受信通知を受信すると、パケット受信通知を更に適切なコントローラ2に対して転送する動作を行う。また、コントローラプロキシ5は、コントローラ2から制御情報エントリを受信すると、コントローラ2に代わって、該当するスイッチ1に対して前記制御情報エントリを設定する。
 図10の例では、コントローラプロキシ5は、コントローラ情報テーブル51とパケット転送部52とを備えている。
 コントローラ情報テーブル51は、パケットの転送ルールを記載した1個以上の制御情報エントリを格納可能となっている。各エントリは、受信パケットと照合するマッチ条件部とマッチ条件に適合するパケットに適用する処理内容を定めたアクションから構成される。その構成は、第1の実施形態で説明したスイッチ1のエントリテーブル11と同様であり、相違点は、アクションとして設定される内容が、専ら、コントローラ2への転送を指示する制御情報エントリが設定されているか否かの違いである。
 パケット転送部52は、コントローラ情報テーブル51を参照して、スイッチ1から受信したパケット受信通知をコントローラ2に転送する。より具体的には、受信パケットのヘッダ部分と各制御情報エントリのマッチ条件とを照合し、マッチした場合にそのアクションフィールドに定義された動作を行う。アクションフィールドに、特定のコントローラ2への転送を指示する内容が設定されていた場合、パケット転送部52は、該当するコントローラ2にパケット受信通知を送信し、制御情報エントリの設定を依頼する。また、コントローラ情報テーブル51の検索の結果、受信パケットに適合するマッチ条件を持つ制御情報エントリが見つからなかった場合、パケット転送部52は、上位コントローラ3に対し、パケット受信通知を送信し、制御情報エントリの設定を依頼する。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。はじめに、本実施形態の上位コントローラとコントローラの基本動作について説明する。図11は、第2の実施形態の上位コントローラとコントローラの動作を表したフローチャートである。
 まず、上位コントローラ3の全仮想ネットワーク管理部31が、ユーザから仮想ネットワークの設定を受け付ける(図11のステップD1)。
 次にコントローラ管理部32は、コントローラ2を起動し(ステップD2)、該コントローラ2に対して、前記ユーザから受け付けた仮想ネットワークの情報と、全スイッチトポロジ管理部33から取得したネットワーク上のすべてのスイッチ1のトポロジ情報を送信する(ステップD3)。
 コントローラ2は、仮想ネットワーク管理部21に受信した仮想ネットワークの情報を登録し、スイッチトポロジ管理部22にスイッチ1のトポロジ情報を登録する(ステップD4)。なお、スイッチ1のトポロジ情報が、すでにスイッチトポロジ管理部22に登録済みである場合には、ステップD3におけるスイッチ1のトポロジ情報の送信と、スイッチトポロジ管理部22への登録処理は省略することができる。
 次に、コントローラ情報設定部23は、仮想ネットワーク管理部21内の仮想ネットワークの情報を参照して、マッチ条件に、当該仮想ネットワークで制御するパケットを特定するための情報を設定し、アクションフィールドに、コントローラ2(自装置)へのパケット転送処理を設定した制御情報エントリを作成する(ステップD5)。
 次に、コントローラ情報設定部23は、スイッチトポロジ管理部22内のスイッチ1のトポロジ情報を参照して、仮想ネットワークに関係するスイッチ1のうちネットワークエッジに相当するスイッチを管理するコントローラプロキシ5に対して、ステップD5で作成した制御情報エントリを設定する(ステップD6)。
 以上のようなコントローラ2及びコントローラプロキシ5への設定を行うことで、コントローラ2が、当該仮想ネットワークに関する制御をすべて行うことが可能になる。
 続いて、コントローラ2によるスイッチ制御について具体的な例を示して説明する。以下の説明では、図12(a)に示す物理的構成のネットワーク上で、2つの異なる仮想ネットワークが構築されているものとする。また、以下の説明では、図12(a)のコントローラ421がその内の図12(b)に示す仮想ネットワークを管轄しているものとする(コントローラ422の管轄仮想ネットワークについては図示省略)。
 また以下の説明では、ネットワークエッジに相当するスイッチ411のコントローラプロキシ451と、スイッチ416のコントローラプロキシ456とには、図11のステップD5、D6の処理により、コントローラ421に対するパケット受信通知の送信を指示する制御情報エントリが設定されているものとする。
 ここで、本実施形態におけるスイッチ411~417とコントローラプロキシ5(例えばコントローラプロキシ451)の基本動作について図面を参照して詳細に説明する。図13は、本実施形態のスイッチ411~417及びコントローラプロキシ(例えばコントローラプロキシ451)の動作を表したフローチャートである。また、以下の説明では、図12(a)に示した仮想ネットワークの構成に従い、送信元サーバ401が送信先サーバA402にパケットを送信したものとして説明する。
 図13を参照すると、送信元サーバ401に隣接しネットワークエッジに相当するスイッチ411が、送信元サーバ401から送信先サーバA402宛てのパケットを受信すると(図13のステップE1)、パケット転送部12は、エントリテーブル11を参照して、受信パケットにマッチするマッチ条件を持つエントリがあるか確認する(ステップE2)。ここで、該当エントリが見つかった場合(ステップE2のYes)、パケット転送部12は、マッチしたエントリのアクションフィールドの内容に従い、パケットを処理する(ステップE3)。
 上記ステップE2で、受信パケットにマッチするマッチ条件を持つエントリが見つからなかった場合(ステップE2のNo)、パケット転送部12は、コントローラプロキシ451に対しパケット受信通知を送信する(ステップE4)。
 コントローラプロキシ451はパケットを受信すると(ステップE5)、パケット転送部52がコントローラ情報テーブル51を参照して、受信パケットにマッチするマッチ条件を持つエントリがあるか確認する(ステップE6)。ここで、該当エントリが見つかった場合(ステップE6のYes)、パケット転送部12は、マッチしたエントリのアクションフィールドの内容に従い、指定されたコントローラにパケット受信通知を送信する(ステップE7)。
 一方、ステップE6で、受信パケットにマッチするマッチ条件を持つエントリが、コントローラプロキシ451のコントローラ情報テーブル51に存在しなかった場合(ステップE6のNo)、パケット転送部52は、上位コントローラ431(上記上位コントローラ3に相当)にパケット受信通知を送信する(ステップE8)。転送されたパケットを受信したコントローラ(上位コントローラ)での処理(処理A)については、第1の実施形態における処理Aと同様なので、説明を省略する。
 なおスイッチ411のエントリテーブル11に、コントローラへの転送処理を行う制御情報エントリを複数登録することも可能である。例えば、「マッチ条件:パケット送信先アドレス=送信先サーバA402、アクション=コントローラ421へ転送」というエントリと、「マッチ条件:パケットの送信先アドレス=送信先サーバB403、アクション:コントローラ422へ転送」というエントリを、スイッチ411のエントリテーブル11の最終エントリ付近(エントリテーブル11への設定位置が上位にあればあるほど優先度が高いという設定がなされている場合)にそれぞれ設定しておけば、上位のどのエントリにもヒットしないパケットを上記2エントリで適切なコントローラへ転送できる。 
 以上説明したようにコントローラプロキシを配置した第2の実施形態によれば、第1の実施形態の効果に加えて、コントローラの負荷をさらに軽減することができる。その理由は、コントローラ2とスイッチ1間のコントローラプロキシ5を設け、パケット受信通知について、コントローラ2からはコントローラプロキシ5への制御情報エントリを設定すればよく、また、その応答として受信した制御情報エントリの設定動作もコントローラプロキシ5が行うよう構成したためである。
 以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
 例えば、上記した第2の実施形態では、エッジスイッチにコントローラプロキシを接続するものとして説明したが、一部のスイッチには、コントローラプロキシを接続せず、第1の実施形態と同様に動作させることが可能である。
 また、上記した各実施形態では、コントローラ2がスイッチ1乃至コントローラプロキシ5に対して、受信パケットと照合するマッチ条件と、送信先のコントローラとを対応付けた制御情報を設定するものとして説明したが、上位コントローラ3がスイッチ1乃至コントローラプロキシ5への制御情報の設定を担ってもよい。
 最後に、本発明の好ましい形態を要約する。
[第1の形態]
 (上記第1の視点による通信システム参照)
[第2の形態]
 第1の形態の通信システムにおいて、
 前記ネットワーク管理部が、ユーザから仮想ネットワークの情報を受け付けると、前記コントローラ管理部が、前記仮想ネットワークを管轄するコントローラを割り当て、
 前記コントローラに対し、前記ユーザから受け付けた仮想ネットワークの情報を送信することで制御を開始させる通信システム。
[第3の形態]
 第1又は第2の形態の通信システムにおいて、
 一の仮想ネットワークに割り当てられたコントローラが、他の仮想ネットワークに割り当てられたコントローラと独立して動作する通信システム。
[第4の形態]
 第1から第3いずれか一の形態の通信システムにおいて、
 前記コントローラは、前記上位コントローラから受信した仮想ネットワークの情報に基づいて、前記スイッチに、自装置に対するパケット受信通知を送信させる制御情報を設定し、前記パケット受信通知の受信を契機に、自装置が管轄する仮想ネットワークにおけるパケットの転送経路の計算と、前記パケットの転送経路上のスイッチへの制御情報の設定を実行する通信システム。
[第5の形態]
 第1から第4いずれか一の形態の通信システムにおいて、
 前記スイッチは、いずれの制御情報にも適合しないパケットを受信した場合、前記上位コントローラに対しパケット受信通知を送信するよう設定されている通信システム。
[第6の形態]
 第1から第5いずれか一の形態の通信システムにおいて、
 さらに、前記コントローラと前記スイッチとの間に、前記スイッチからのパケット受信通知の送信先となるコントローラを決定するコントローラプロキシが配置されている通信システム。
[第7の形態]
 第6の形態の通信システムにおいて、
 前記コントローラは、前記上位コントローラから受信した仮想ネットワークの情報に基づいて、前記コントローラプロキシに、自装置に対するパケット受信通知を送信させる制御情報を設定し、前記パケット受信通知の受信を契機に、自装置が管轄する仮想ネットワークにおけるパケットの転送経路の計算と、前記パケットの転送経路上のスイッチへの制御情報の設定を実行する通信システム。
[第8の形態]
 第6又は第7の形態の通信システムにおいて、
 前記コントローラプロキシは、いずれの制御情報にも適合しないパケットを受信した場合、前記上位コントローラに対しパケット受信通知を送信するよう設定されている通信システム。
[第9の形態]
 第6~第8いずれか一の形態の通信システムにおいて、
 前記上位コントローラの前記ネットワーク管理部は、前記コントローラプロキシに対し、受信パケットと照合するマッチ条件と、送信先のコントローラとを対応付けた制御情報を設定し、
 前記コントローラプロキシは、前記制御情報を参照して、前記スイッチからのパケット受信通知の送信先となるコントローラを決定する通信システム。
[第10の形態]
 (上記第2の視点による上位コントローラ参照)
[第11の形態]
 (上記第3の視点によるネットワーク制御方法参照)
[第12の形態]
 (上記第4の視点によるプログラム参照)
 なお、上記第10~第12の形態は、第1の形態と同様に、第2~第9の形態に展開することが可能である。
 なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 1、1-1~1-n、411~417 スイッチ
 2、2-1~2-m、421、422 コントローラ
 3、3a、431 上位コントローラ
 5、451、456、457 コントローラプロキシ
 11 エントリテーブル
 12 パケット転送部
 21 仮想ネットワーク管理部
 22 スイッチトポロジ管理部
 23 コントローラ情報設定部
 24 経路設定部
 31 全仮想ネットワーク管理部
 31a ネットワーク管理部
 32 コントローラ管理部
 32a コントローラ管理部
 33 全スイッチトポロジ管理部
 51 コントローラ情報テーブル
 52 パケット転送部
 401 送信元サーバ
 402 送信先サーバA
 403 送信先サーバB

Claims (12)

  1.  スイッチと、
     前記スイッチに制御情報を設定する複数のコントローラと、
     前記スイッチを用いて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部と、前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部と、を備える上位コントローラと、を含む通信システム。
  2.  前記ネットワーク管理部が、ユーザから仮想ネットワークの情報を受け付けると、前記コントローラ管理部が、前記仮想ネットワークを管轄するコントローラを割り当て、
     前記コントローラに対し、前記ユーザから受け付けた仮想ネットワークの情報を送信することで制御を開始させる請求項1の通信システム。
  3.  一の仮想ネットワークに割り当てられたコントローラが、他の仮想ネットワークに割り当てられたコントローラと独立して動作する請求項1又は2の通信システム。
  4.  前記コントローラは、前記上位コントローラから受信した仮想ネットワークの情報に基づいて、前記スイッチに、自装置に対するパケット受信通知を送信させる制御情報を設定し、前記パケット受信通知の受信を契機に、自装置が管轄する仮想ネットワークにおけるパケットの転送経路の計算と、前記パケットの転送経路上のスイッチへの制御情報の設定を実行する請求項1から3いずれか一の通信システム。
  5.  前記スイッチは、いずれの制御情報にも適合しないパケットを受信した場合、前記上位コントローラに対しパケット受信通知を送信するよう設定されている請求項1から4いずれか一の通信システム。
  6.  さらに、前記コントローラと前記スイッチとの間に、前記スイッチからのパケット受信通知の送信先となるコントローラを決定するコントローラプロキシが配置されている請求項1から5いずれか一の通信システム。
  7.  前記コントローラは、前記上位コントローラから受信した仮想ネットワークの情報に基づいて、前記コントローラプロキシに、自装置に対するパケット受信通知を送信させる制御情報を設定し、前記パケット受信通知の受信を契機に、自装置が管轄する仮想ネットワークにおけるパケットの転送経路の計算と、前記パケットの転送経路上のスイッチへの制御情報の設定を実行する請求項6の通信システム。
  8.  前記コントローラプロキシは、いずれの制御情報にも適合しないパケットを受信した場合、前記上位コントローラに対しパケット受信通知を送信するよう設定されている請求項7の通信システム。
  9.  前記上位コントローラの前記ネットワーク管理部は、前記コントローラプロキシに対し、受信パケットと照合するマッチ条件と、送信先のコントローラとを対応付けた制御情報を設定し、
     前記コントローラプロキシは、前記制御情報を参照して、前記スイッチからのパケット受信通知の送信先となるコントローラを決定する請求項6から8いずれか一の通信システム。
  10.  前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部と、
     前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当て、前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供するコントローラ管理部と、
     を備える上位コントローラ。
  11.  スイッチと、
     スイッチに制御情報を設定する複数のコントローラと、に接続され、
     前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部を備えた上位コントローラが、
     前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当てるステップと、
     前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供し、制御を開始させるステップとを含むネットワーク制御方法。
  12.  スイッチと、
     スイッチに制御情報を設定する複数のコントローラと、に接続され、
     前記スイッチを用いて構成されて論理的に分割された複数の仮想ネットワークの情報を管理するネットワーク管理部を備えたコンピュータに、
     前記仮想ネットワーク毎に前記複数のコントローラの中から前記仮想ネットワークを管轄するコントローラを割り当てる処理と、
     前記割り当てたコントローラに、前記コントローラが管轄する仮想ネットワークの情報を提供し、制御を開始させる処理とを実行させるプログラム。
PCT/JP2014/054728 2013-02-27 2014-02-26 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム WO2014133025A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013037511 2013-02-27
JP2013-037511 2013-02-27

Publications (1)

Publication Number Publication Date
WO2014133025A1 true WO2014133025A1 (ja) 2014-09-04

Family

ID=51428285

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/054728 WO2014133025A1 (ja) 2013-02-27 2014-02-26 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム

Country Status (1)

Country Link
WO (1) WO2014133025A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016506193A (ja) * 2013-12-05 2016-02-25 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェア定義ネットワークにおける制御方法、制御装置およびプロセッサ
JP2016192660A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法、制御装置および運用管理装置
JP2016192661A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
US10742682B2 (en) 2014-12-22 2020-08-11 Huawei Technologies Co., Ltd. Attack data packet processing method, apparatus, and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010045503A (ja) * 2008-08-11 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> パケット転送システムおよびパケット転送方法
WO2011065268A1 (ja) * 2009-11-26 2011-06-03 日本電気株式会社 負荷分散システム、負荷分散方法、及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010045503A (ja) * 2008-08-11 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> パケット転送システムおよびパケット転送方法
WO2011065268A1 (ja) * 2009-11-26 2011-06-03 日本電気株式会社 負荷分散システム、負荷分散方法、及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BALAZS SONKOLY ET AL.: "OpenFlow Virtualization Framework with Advanced Capabilities", PROCEEDINGS OF EUROPEAN WORKSHOP ON SOFTWARE DEFINED NETWORKS, October 2012 (2012-10-01), pages 18 - 23, XP032283464, DOI: doi:10.1109/EWSDN.2012.25 *
ELIO SALVADORI ET AL.: "Generalizing virtual network topologies in OpenFlow-based networks", PROCEEDINGS OF 2011 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE - GLOBECOM 2011, December 2011 (2011-12-01), pages 1 - 6, XP032098549, DOI: doi:10.1109/GLOCOM.2011.6134525 *
MARC KOERNER ET AL.: "Multiple Service Load-Balancing with OpenFlow", PROCEEDINGS OF 2012 IEEE 13TH INTERNATIONAL CONFERENCE ON HIGHPERFORMANCE SWITCHING AND ROUTING, June 2012 (2012-06-01), pages 210 - 214, XP032217657, DOI: doi:10.1109/HPSR.2012.6260852 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016506193A (ja) * 2013-12-05 2016-02-25 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェア定義ネットワークにおける制御方法、制御装置およびプロセッサ
US9344511B2 (en) 2013-12-05 2016-05-17 Huawei Technologies Co., Ltd. Control method, control device, and process in software defined network
US9432474B2 (en) 2013-12-05 2016-08-30 Huawei Technologies Co., Ltd. Control method, control device, and processor in software defined network
US10742682B2 (en) 2014-12-22 2020-08-11 Huawei Technologies Co., Ltd. Attack data packet processing method, apparatus, and system
JP2016192660A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法、制御装置および運用管理装置
JP2016192661A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置

Similar Documents

Publication Publication Date Title
JP5477603B2 (ja) コンピュータシステム、及びコンピュータシステムにおける通信方法
KR101989333B1 (ko) 소프트웨어 정의 네트워킹에서의 데이터 전달 방법, 기기 및 시스템
JP5850068B2 (ja) 制御装置、通信システム、通信方法およびプログラム
WO2014136864A1 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
JP5585660B2 (ja) 通信システム、制御装置、処理規則の設定方法およびプログラム
WO2022222550A1 (zh) 算力资源的通告方法及装置、存储介质、电子装置
WO2012108382A1 (ja) 通信システム、制御装置、通信ノードおよび通信方法
US9860170B2 (en) Method, device, and system for packet routing in a network
JP6206508B2 (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
WO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
WO2010038775A1 (ja) ネットワークノードおよびその負荷分散方法
JP6323339B2 (ja) 通信システム、制御装置、通信方法、制御方法及びプログラム
WO2014133025A1 (ja) 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム
WO2013176262A1 (ja) パケット転送システム、制御装置、パケット転送方法及びプログラム
JP5904285B2 (ja) 通信システム、仮想ネットワーク管理装置、通信ノード、通信方法及びプログラム
WO2014157512A1 (ja) 仮想マシン提供システム、経路決定装置、経路制御方法及びプログラム
WO2016148002A1 (ja) 制御装置、情報処理装置、仮想ネットワークの提示方法及びプログラム
JPWO2014084198A1 (ja) ストレージエリアネットワークシステム、制御装置、アクセス制御方法及びプログラム
WO2015133561A1 (ja) 通信システム、制御装置、通信装置及び通信方法
WO2014112585A1 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14757413

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14757413

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP