[go: up one dir, main page]

WO2012121114A1 - ネットワークシステム、ネットワーク機器、及び経路制御方法 - Google Patents

ネットワークシステム、ネットワーク機器、及び経路制御方法 Download PDF

Info

Publication number
WO2012121114A1
WO2012121114A1 PCT/JP2012/055272 JP2012055272W WO2012121114A1 WO 2012121114 A1 WO2012121114 A1 WO 2012121114A1 JP 2012055272 W JP2012055272 W JP 2012055272W WO 2012121114 A1 WO2012121114 A1 WO 2012121114A1
Authority
WO
WIPO (PCT)
Prior art keywords
route
packet
flow entry
flow
switch
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2012/055272
Other languages
English (en)
French (fr)
Inventor
辰之助 勝倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2013503488A priority Critical patent/JP5495150B2/ja
Publication of WO2012121114A1 publication Critical patent/WO2012121114A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing

Definitions

  • the present invention relates to a network system, and more particularly to a controller that performs network communication path control.
  • CU control plane / U: user plane
  • control plane control plane
  • OpenFlow open flow
  • a controller such as OFC (OpenFlow Controller) controls the behavior of a switch by operating a flow table (Flow table) in the switch such as OFS (OpenFlow Switch).
  • OFC OpenFlow Controller
  • Flow table flow table
  • OFS OpenFlow Switch
  • the switches in the OpenFlow network system are edge switches and core switches that form an OpenFlow network and are under the control of the controller.
  • a series of packet flows from reception of a packet at the input side edge switch to transmission at the output side edge switch in the OpenFlow network is called a flow.
  • the packet may be read as a frame.
  • the difference between a packet and a frame is only the difference in the data unit (PDU: Protocol Data Unit) handled by the protocol.
  • the packet is a PDU of “TCP / IP” (Transmission Control Protocol / Internet Protocol).
  • the frame is a PDU of “Ethernet” (registered trademark).
  • the flow table is a table in which a flow entry (Flow entry) that defines an action (action) to be performed on a packet that meets a predetermined match condition (rule) is registered.
  • Flow entry a flow entry that defines an action (action) to be performed on a packet that meets a predetermined match condition (rule) is registered.
  • the rule of the flow entry is one of a destination address (Destination Address), a source address (Source Address), a destination port (Destination Port), a source port (Source Port) included in the header area of each protocol layer of the packet, or Defined and distinguishable by various combinations using all.
  • the above address includes a MAC address (Media Access Control Address) and an IP address (Internet Protocol Address).
  • information on the ingress port (Ingress Port) can also be used as a rule for the flow entry.
  • a part (or all) of the header area value of the packet indicating the flow can be set by a regular expression, a wild card “*”, or the like.
  • the action of the flow entry indicates operations such as “output to a specific port”, “discard”, and “rewrite header”. For example, if the identification information (output port number, etc.) of the output port is indicated in the action of the flow entry, the switch outputs a packet to the corresponding port, and if the identification information of the output port is not indicated , Discard the packet. Alternatively, if the header information is indicated in the action of the flow entry, the switch rewrites the header of the packet based on the header information.
  • the switch in the OpenFlow network system executes a flow entry action on a packet group (packet sequence) that conforms to the flow entry rules.
  • Japanese Patent Application Laid-Open No. 2006-020054 discloses a network connection device, a route information distribution program, and a route information distribution method.
  • a route information update notification message is generated based on a prefix assigned to a child router, information on an assignment destination child router, and an assignment management table. This message conveys the possibility of updating (adding or deleting) route information.
  • a route information update notification is transmitted to a router to which a prefix has already been assigned.
  • a network repeater is disclosed in Patent Document 2 (Japanese Patent Laid-Open No. 2007-096912).
  • a route information change packet is received from a network processor (NP) and the event is interpreted. The interpretation of the event is performed based on the header information of the route information change packet.
  • a route information addition process is executed.
  • a route information change process is executed.
  • a route information deletion process is executed.
  • the processing is completed for all the route information change packets from the network processor (NP), a timer for starting the request transmission processing to the network processor (NP) is set.
  • a method can be considered in which a network device adds information to a packet, and a network device on the route reads the information to forward the packet to the correct route.
  • the present invention proposes a technique in which the network device does not change the packet itself while ensuring that the packet is transferred from the transmission source to the transmission destination.
  • the network system includes a plurality of network devices, a plurality of controllers that set a flow entry in which rules and operations for uniformly controlling packets as flows are defined in a flow table of network devices on a route, including.
  • the network device on the route adopts the route set by the controller that has completed the setting of the flow entry of all the network devices on the route earliest among the plurality of controllers, and sets the route set by the other controller.
  • the packet is not adopted and the packet is transferred according to the flow entry of the adopted route.
  • a network device includes a device that sets a flow entry in a flow table in which rules and operations for uniformly controlling a packet as a flow are defined in a flow table based on control from each of a plurality of controllers, Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among the controllers of the other, and reject the route set by the other controller, and the flow of the adopted route And a device for transferring a packet according to the entry.
  • the route control method is a route control method implemented by a network device, and rules and operations for uniformly controlling packets as a flow are defined based on control from each of a plurality of controllers.
  • Set the flow entry in the flow table adopt the route set by the controller that completed the flow entry setting of all the network devices on the route earliest among the multiple controllers, and set other controllers Including transferring the packet in accordance with the flow entry of the adopted route.
  • the program according to the present invention includes a step of setting, in the flow table, a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined based on control from each of a plurality of controllers. Adopts the route set by the controller that has completed the setting of the flow entry of all the network devices on the route earliest among the controllers, disallows the route set by the other controller, and the flow entry of the adopted route.
  • the program for causing the network device to execute the step of transferring packets according to the above.
  • the program according to the present invention is a program for causing a network device to execute the processing in the above path control method.
  • the program according to the present invention can be stored in a storage device or a storage medium.
  • the present invention is directed to a CU separation type network system.
  • an OpenFlow network system which is one of CU separation type network systems, will be described as an example. However, actually, it is not limited to the open flow network system.
  • a computer such as a PC (personal computer), an appliance, a thin client server, a workstation, a mainframe, and a supercomputer is assumed.
  • a network switch (network switch) is assumed.
  • a router a proxy, a gateway, a firewall, a load balancer, a bandwidth control device, a security monitoring control device, a base station, an access point, or a computer having a plurality of communication ports Conceivable.
  • the above computer is assumed.
  • mobile phones, car navigation systems (car navigation systems), portable game consoles, home game consoles, portable music players, handy terminals, gadgets (electronic devices), interactive TVs, digital tuners, digital recorders, information appliances (Information home application), OA (Office Automation) equipment, etc. can be considered.
  • VM Virtual Machine
  • a processor that drives based on this and executes predetermined processing
  • a memory that stores the program and various data
  • an interface used for communication with the network
  • processors include a CPU (Central Processing Unit), a network processor (NP: Network Processor), a microprocessor (microprocessor), a microcontroller (microcontroller), or a semiconductor integrated circuit (LSI: Large Scale) having a dedicated function. Integration) or the like.
  • CPU Central Processing Unit
  • NP Network Processor
  • microprocessor microprocessor
  • microcontroller microcontroller
  • LSI semiconductor integrated circuit
  • semiconductor storage devices such as RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable and Programmable Read Only Memory), and HDD Memory (SDHidK)
  • RAM Random Access Memory
  • ROM Read Only Memory
  • EEPROM Electrical Erasable and Programmable Read Only Memory
  • HDD Memory HDD Memory
  • An auxiliary storage device such as State Drive
  • a removable disk such as a DVD (Digital Versatile Disk)
  • a storage medium such as an SD memory card (Secure Digital memory card), or the like is conceivable.
  • a register may also be used.
  • processor and the memory may be integrated.
  • a single chip such as a microcomputer has been developed. Therefore, a case where a one-chip microcomputer mounted on the above-described computer or the like includes a processor and a memory can be considered.
  • Examples of the above interfaces include semiconductor integrated circuits such as boards (motherboards and I / O boards) and chips that support network communication, network adapters such as NIC (Network Interface Card), and communication devices such as expansion cards and antennas.
  • NIC Network Interface Card
  • a communication port such as a connection port (connector) is conceivable.
  • networks include the Internet, LAN (Local Area Network), wireless LAN (Wireless LAN), WAN (Wide Area Network), backbone (Backbone), cable TV (CATV) line, fixed telephone network, mobile phone network, WiMAX (IEEE 802.16a), 3G (3rd Generation), dedicated line (lease line), IrDA (Infrared Data Association), Bluetooth (registered trademark), serial communication line, data bus, and the like are conceivable.
  • route calculation unit 11, the network management unit 12, and the packet processing unit 13 may be modules or components.
  • the flow table 21 manages flow entries that are route information.
  • the flow table 21 can be stored in a storage device or a storage medium.
  • the flow table management unit 22 can also check the contents of the flow entry in the flow table 21.
  • the packet processing unit 23 includes a packet reception unit 231, a packet transfer unit 232, a packet discard unit 233, a route deletion packet generation unit 234, and a route deletion packet analysis unit 235.
  • the packet transfer unit 232 is provided for each output port, and outputs the received packet from the output port.
  • the packet discard unit 233 discards the received packet. Note that the packet discard unit 233 can discard not only the normal packet but also a route deletion packet described later.
  • the route deletion packet generation unit 234 generates a route deletion packet for deleting the unaccepted route.
  • the route deletion packet analysis unit 235 analyzes the received route deletion packet. As a packet analysis, the route deletion packet analysis unit 235 refers to the header information of the route deletion packet, and checks whether there is a flow entry of a rejected route that matches the header information of the route deletion packet in the flow table 21. If there is a matching flow entry, and if the content of the flow entry is to be transferred to the next node on the route, the packet receiving unit 231 passes the route deletion packet to the packet transfer unit 232, and the next on the route. Transfer to the node of the stage. If the content of the flow entry is to discard the route deletion packet, the packet reception unit 231 passes the route deletion packet to the packet discard unit 233 and discards the route deletion packet.
  • the route deletion packet analysis unit 235 temporarily holds the route deletion packet, passes the route deletion packet to the packet discard unit 233 after a predetermined time elapses, and receives the route deletion packet. Discard.
  • the route deletion packet analysis unit 235 may be integrated with the packet reception unit 231.
  • the flow table management unit 22 and the packet processing unit 23 are modules. Alternatively, it may be a component.
  • the flow table 21 holds a flow entry 211. That is, the flow table 21 is a set of flow entries 211. The flow entry 211 is route information corresponding to each flow.
  • the flow entry 211 includes a flow header 2111, an action 2112, a route ID 2113, and a controller ID 2114.
  • the flow header 2111 is an area (field) for describing basic information of a flow such as a transmission source IP address and a transmission destination IP address. That is, the flow header 2111 is an area for describing the rule of the flow entry 211.
  • Action 2112 is an area for describing a flow processing method. That is, the action 2112 is an area for describing the action of the flow entry 211.
  • Route ID 2113 is an area for describing a unique value (route identifier) for each route.
  • the route deletion packet 50 includes a flow header 51, a route ID 52, and a controller ID 53.
  • the flow header 51 is an area for describing basic information of a flow such as a transmission source IP address and a transmission destination IP address, like the flow header 2111 shown in FIG.
  • the route ID 52 is an area for describing a unique value (route identifier) for each route, like the route ID 2113 shown in FIG.
  • the packet processing unit 23 determines whether the packet is a normal packet or a route deletion packet 50.
  • the packet processing unit 23 confirms whether the header information of the packet matches the flow header 2111 of the flow entry 211 set in the flow table 21.
  • the packet processing unit 23 processes the packet according to the action 2112 of the corresponding flow entry 211.
  • the packet processing unit 23 transfers the packet (1st packet) to the controller 10-1 and the controller 10-2 that manage the switch 20-1.
  • the route calculation unit 11 is based on the topology information of the network management unit 12 and the analysis result of the packet processing unit 13. The route that the packet (1st packet) should take is calculated.
  • the route calculated by the controller 10-1 is assumed to be a route 100-1
  • the route calculated by the controller 10-2 is assumed to be a route 100-2.
  • the route 100-1 is “switch 20-1” ⁇ “switch 20-4” ⁇ “switch 20-5” ⁇ “switch 20-6” ⁇ “switch 20-7” ⁇ “switch 20-8” in this order. Become.
  • the route 100-2 is “switch 20-1” ⁇ “switch 20-2” ⁇ “switch 20-4” ⁇ “switch 20-5” ⁇ “switch 20-7” ⁇ “switch 20-6” ⁇ “switch 20-8 ".
  • the packet is prevented from being followed according to the flow entry 211 before the setting is completed.
  • the packet is not transferred from the transmission source host 30-1 to the transmission destination host 30-2.
  • the flow entry temporarily set there 211 may be held.
  • Another method can be realized by having an area in which it is possible to determine whether the flow entry 211 is temporarily set or permanently registered.
  • the controller 10 (10-i, i 1 to x) registers the flow entry 211 temporarily set in the switch 20-1 in the flow table 21.
  • the switch 20-1 selects either one so that the adopted route becomes one.
  • the adopted route is the route 100-1 set by the controller 10-1.
  • the switch 20-1 Since the controller 10-1 responded the earliest, the switch 20-1 notifies the controller 10-2 that has not been adopted that the route has not been adopted.
  • the switch 20-1 deletes the flow entry 211 of the rejected route 100-2 set by the controller 10-2.
  • the deletion of the unaccepted route 100-2 is performed using the route deletion packet 50.
  • the switch 20-1 transmits a route deletion packet 50 toward the switch on the non-accepted route 100-2.
  • a route deletion packet 50 flows through the non-adopted route 100-2.
  • Step S501 the packet processing unit 23 sets information of the rejected route 100-2 set by the controller 10-2 in the route deletion packet 50.
  • the packet processing unit 23 creates the route deletion packet 50 based on the flow header 2111, the flow ID 2113 of the flow entry 211 of the non-adopted route 100-2, and the controller ID 2114 indicating the controller 10-2. That is, the flow header 51, the route ID 52, and the controller ID 53 of the route deletion packet 50 are equal to the flow header 2111, the route ID 2113, and the controller ID 2114 of the non-adopted route 100-2, respectively.
  • Step S502 In the switch 20-1, the packet processing unit 23 checks whether the content of the action 2112 of the flow entry 211 of the non-accepted route 100-2 is the content to be transferred to the transmission destination host 30-2. That is, it is confirmed whether it is a switch at the end of the path.
  • Step S503 In the switch 20-1, when the content of the action 2112 of the flow entry 211 is not the content to be transferred to the destination host 30-2, the packet processing unit 23 processes the route deletion packet 50 according to the action 2112 of the flow entry 211. Here, in the switch 20-1, the packet processing unit 23 transfers the route deletion packet 50 to the next-stage switch 20-2 in accordance with the action 2112 of the flow entry 211.
  • the route deletion packet 50 is processed according to the action 2112 of the flow entry 211.
  • a relay device such as a router in a compatible network
  • the switch 20-7 cannot process the route deletion packet 50 because the flow entry 211 of the route 100-2 that has not been adopted is not set.
  • the switch 20-7 temporarily holds the received route deletion packet 50.
  • the reason why the route deletion packet 50 is temporarily held is that the registration process of the flow entry 211 may be delayed.
  • the switch 20-7 is delayed by the controller 10-2 whose route is not adopted.
  • the route deletion packet 50 received from the switch 20-5 is held.
  • the switch 20-7 discards the registration of the flow entry 211.
  • the switch 20-7 transmits the route deletion packet 50 to the next-stage switch 20-6 according to the flow entry 211 just in case. You may do it.
  • the switch 20-6 receives the route deletion packet 50, the switch 20-6 performs the same processing as the switch 20-7.
  • the switch 20-7 determines that there is no flow entry of the rejected route that should be discarded, and the route deletion packet 50 is Discard.
  • the switch 20-1 sets the flow entry 211 temporarily set by the controller 10-1 that responded earliest in the flow table 21.
  • the switch 20-1 processes the 1st packet according to the action 2112 of the corresponding flow entry 211.
  • the switch 20-1 sets the temporary flow entry 211 in the flow table 21 after transferring the route deletion packet 50 to the switch 20-4.
  • the switch 20-1 transfers the received packet to the switch 20-4 on the adopted route according to the flow entry 211.
  • the switch 1 receives a packet from the host 1.
  • the switch 1 If the switch 1 is a packet that does not match the flow entry held by itself, the switch 1 transfers the packet as a 1st packet to a plurality of controllers that control itself. Here, the switch 1 transfers the 1st packet to the controller 1 and the controller 2.
  • the controller 1 and the controller 2 calculate a route and set a flow entry for each of the switches on the route. At this time, the controller 1 and the controller 2 perform flow entry setting for each of the switches on the path in order from the switch 1 that has received the 1st packet.
  • information (flag or the like) indicating provisional setting is assigned to the flow entry set in the switch 1 that has received the 1st packet.
  • the flow entry set in the switch 1 that has received the 1st packet is not a formally set flow entry but a provisionally set flow entry.
  • the information indicating the temporary setting is information indicating that the flow entry is still invalid.
  • the switch 1 that has received the 1st packet does not transfer the packet in accordance with the temporarily set flow entry. Note that an area for storing information indicating temporary setting may be newly provided in the flow entry, or a part of an existing area in the flow entry may be used.
  • the controller 1 and the controller 2 transmit a notification that the setting is completed (setting completion notification), and the flow entry set in the switch 1 that has received the 1st packet The information indicating the temporary setting is removed from.
  • the switch 1 that has received the 1st packet adopts the route set by the controller 1 that has completed the setting of all the switches earliest (first) as the packet communication route, and other than the controller 1 that adopted the route.
  • a notice of rejection is sent to the controller 2.
  • the controller 2 receives the non-employment notification, if the setting of the switch on the route is in the middle, the subsequent setting is stopped.
  • the controller 2 receives a non-adoption notice and stops setting the switch 4 on the route.
  • the switch 1 that has received the 1st packet generates a route deletion packet in order to delete the route that has not been adopted, and sends the route deletion packet to the adjacent switch 3 in accordance with the flow entry of the route that has not been adopted. Transfer and delete the flow entry of the route that was not adopted.
  • a switch on the route that has not been adopted, including the switch 3 receives a route deletion packet, the switch is transferred to the adjacent switch 4 according to the flow entry that matches the header information of the route deletion packet, and then the flow entry is deleted. To do. Since the flow entry that matches the header information of the route deletion packet is not set, the switch 4 temporarily holds the route deletion packet and discards the route deletion packet after a predetermined time has elapsed.
  • the switch 4 is identified as the last switch on the route that has not been adopted from the contents of the flow entry.
  • the route deletion packet is not transmitted to the host 2, the flow entry that matches the header information of the route deletion packet is deleted, and the route deletion packet is discarded. Details of these processes are the same as the non-accepted route deletion process shown in FIG.
  • the switch 1 that has received the 1st packet transfers the packets after the 1st packet to the adjacent switch 2 in accordance with the flow entry of the adopted route.
  • the switch 2 forwards the first and subsequent packets to the adjacent switch 4 according to the flow entry.
  • the last switch 4 on the adopted route transfers the packet after the 1st packet to the host 2 according to the flow entry of the adopted route.
  • the switch that receives the 1st packet is controlled by two controllers, but control by three or more controllers can also be realized. That is, the two controllers shown in the figure indicate “a controller adopting a route” and “a controller not adopting a route”, and the number of individual controllers is arbitrary.
  • the controller calculates a route (path) of a predetermined packet group (flow) “in advance (before data communication starts)”, and registers the flow entry in the flow table of the switch.
  • the “Proactive type” here refers to “advanced flow entry registration” performed voluntarily by the controller.
  • the controller calculates the route of the packet group (flow) when the switch receives an inquiry about the 1st packet (a new packet with no corresponding flow entry) from the switch, and flows to the flow table of the switch. Create an entry. That is, the “Reactive type” here refers to “real-time flow entry registration” performed by the controller in response to an inquiry from the switch during actual data communication.
  • the “Reactive type” that registers the flow entry related to the received packet when the controller receives an inquiry about the 1st packet from the switch is the main.
  • the “Proactive type” is suitable for reducing the processing frequency of the flow table and solving the performance problem.
  • the “Proactive type” is more suitable for processing even when a large number of first packets arrive at the controller.
  • the number of flow entries becomes enormous if the complete “Proactive type” is used, it may be possible to escape from the restriction on the number of flow entries by making a part of the “Reactive type”.
  • the flow can be defined before the start of communication, so that it is considered possible to avoid the problem of mass flow due to viruses such as Nimda, unauthorized access due to unknown packets, and the like.
  • each of a plurality of controllers calculates a route of a predetermined packet group that is expected to arrive without receiving a packet inquiry from the switch (before data communication starts), and switches on the route
  • the flow entry may be registered in the flow table.
  • the deletion process of the non-employed route in the switch is the same as that in the first embodiment.
  • a network composed of network devices in which packet transfer and routing control functions are separated is targeted.
  • a plurality of controllers operate independently, and flow entries can be set for all network devices without communication between the controllers.
  • the route is a route set by a controller that has completed setting the earliest among a plurality of controllers.
  • the network device generates a route deletion packet for deleting a flow entry of a route that is not used for communication.
  • the network device transfers the route deletion packet to the adjacent network device on the route that is not used for communication.
  • the network device when the network device receives the route deletion packet, the network device analyzes the route deletion packet and, based on the analysis result, out of the flow entries set in itself, the flow entry that matches the header information of the route deletion packet Is deleted.
  • the network device when there is no flow entry that matches the route deletion packet, the network device temporarily holds the route deletion packet.
  • the registration is discarded.
  • a communication path can be set without synchronization between a plurality of controllers. Further, by deleting the non-accepted route, a closed circuit is not created on the network, and a failure that the transfer is not correctly performed to the transmission destination does not occur. In addition, the network device does not perform processing such as addition or deletion of information on the packet.
  • Appendix 1 An apparatus for setting a flow entry in a flow table in which rules and operations for uniformly controlling a packet as a flow are defined based on control from each of a plurality of controllers; Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among multiple controllers, and reject the route set by other controllers, and the flow of the adopted route
  • a network device comprising a device for transferring a packet according to an entry.
  • (Appendix 2) The network device according to attachment 1, wherein An apparatus for receiving a setting completion notification indicating that the setting of all network devices on the route has been completed from each of the plurality of controllers; In response to the setting completion notification, a device that creates a route deletion packet that matches the flow entry of the rejected route, When a route deletion packet is received from the outside, a device that checks whether there is a flow entry that matches the route deletion packet, A device that transfers a route deletion packet to an adjacent network device on the rejected route according to the flow entry of the rejected route; A network device further comprising a device for deleting a flow entry of a rejected route.
  • a path control method implemented by a network device Based on control from each of a plurality of controllers, setting a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined in the flow table; Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among multiple controllers, and reject the route set by other controllers, and the flow of the adopted route
  • a routing method comprising forwarding a packet according to an entry.
  • a route control method further comprising: discarding a route deletion packet after a predetermined time has elapsed since holding.
  • Appendix 10 The program according to appendix 9, wherein Receiving a setting completion notification from each of the plurality of controllers indicating that the setting of all network devices on the route has been completed; In response to the setting completion notification, creating a route deletion packet that matches the flow entry of the rejected route; When a route deletion packet is received from the outside, a step of confirming whether there is a flow entry that matches the route deletion packet; Transferring a route deletion packet to an adjacent program on the rejected route according to the flow entry of the rejected route; A program for causing a network device to further execute a step of deleting a flow entry of a rejected route.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 オープンフローに代表される制御機能を外部のコントローラに分離したネットワーク機器で構成されるネットワークにおいて、コントローラを多重化/冗長化した際の不採用経路の削除を実現する。具体的には、ネットワーク機器は、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する。このとき、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送する。

Description

ネットワークシステム、ネットワーク機器、及び経路制御方法
 本発明は、ネットワークシステムに関し、特にネットワーク通信の経路制御を行うコントローラに関する。
 ネットワークシステムの制御方式の1つとして、外部の制御装置(コントロールプレーン)からノード装置(ユーザプレーン)を制御するCU(C:コントロールプレーン/U:ユーザプレーン)分離型ネットワークシステムが提案されている。
 CU分離型ネットワークシステムの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー(OpenFlow)技術を利用したオープンフローネットワークシステムが挙げられる。オープンフロー技術の詳細については、非特許文献1に記載されている。なお、オープンフローネットワークシステムは一例に過ぎない。
 [オープンフローネットワークシステムの説明]
 オープンフローネットワークシステムでは、OFC(OpenFlow Controller)等のコントローラが、OFS(OpenFlow Switch)等のスイッチ内のフローテーブル(Flow table)を操作することによりスイッチの挙動を制御する。
 オープンフローネットワークシステムにおけるスイッチとは、オープンフローネットワークを形成し、コントローラの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット(packet)の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー(Flow)と呼ぶ。
 パケットは、フレーム(frame)と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位(PDU:Protocol Data Unit)の違いに過ぎない。パケットは、「TCP/IP」(Transmission Control Protocol/Internet Protocol)のPDUである。一方、フレームは、「Ethernet」(登録商標)のPDUである。
 フローテーブルとは、所定のマッチ条件(ルール)に適合するパケット(packet)に対して行うべき動作(アクション)を定義したフローエントリ(Flow entry)が登録されたテーブルである。
 フローエントリのルールは、パケットの各プロトコル階層のヘッダ領域に含まれる宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローを示すパケットのヘッダ領域の値の一部(又は全部)を、正規表現やワイルドカード「*」等で表現したものを設定することもできる。
 フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報(出力ポート番号等)が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。
 オープンフローネットワークシステムにおけるスイッチは、フローエントリのルールに適合するパケット群(パケット系列)に対して、フローエントリのアクションを実行する。
 オープンフローネットワークシステムのような、「パケット転送の機能」と「経路制御の機能」をネットワーク機器とコントローラとに分離したネットワークにおいて、パケットの経路を計算し設定を行うコントローラに障害が発生した場合、パケットの転送処理を行うネットワーク機器は、パケットを転送することができなくなる。或いは、他のコントローラに再度、経路計算を依頼しなければならなくなるため、処理速度が非常に遅くなる。
 このため、制御機能を担当するコントローラの耐障害性を考慮すると、コントローラの多重化が考えられる。
 また、耐障害性や処理速度の観点から、複数のコントローラが同期を取ることなく独立してパケットの経路計算とネットワーク機器への設定を行うことが考えられる。
 しかし、可用性と処理速度の観点から、複数のコントローラが同期を取ることなく独立して経路を計算し、ネットワーク機器に設定を行う場合、同期を取らないためにネットワーク機器への設定指示が競合することによって、ネットワーク機器の設定情報に不整合が生じる可能性がある。その結果、ネットワーク上に閉路(ループ)が形成され、送信先にパケットが届かなくなる可能性がある。
 関連する技術として、特許文献1(特開2006-020054号公報)にネットワーク接続装置、経路情報配布プログラム及び経路情報配布方法が開示されている。この関連技術では、子ルータに割り当てられたプレフィックスと割り当て先の子ルータの情報と割り当て管理表とに基づいて経路情報更新通知メッセージを生成する。このメッセージは経路情報の更新(追加、削除)可能性を伝えるものである。既にプレフィックスを割り当て済のルータに対して、経路情報更新通知を送信する。
 また、特許文献2(特開2007-096912号公報)にネットワーク中継器が開示されている。この関連技術では、ネットワークプロセッサ(NP)より経路情報変更パケットを受け取り、そのイベントを解釈する。イベントの解釈は該経路情報変更パケットのヘッダ情報等により行う。イベント情報が追加であった場合には、経路情報追加処理を実施し、変更であった場合には、経路情報変更処理を、削除であった場合には、経路情報削除処理をそれぞれ実施する。ネットワークプロセッサ(NP)からの経路情報変更パケット全てについて処理が終わったら、ネットワークプロセッサ(NP)へのリクエスト送出処理を起動するためのタイマーをセットする。
特開2006-020054号公報 特開2007-096912号公報
"OpenFlow Switch Specification, Version 1.0.0",[online],December 31,2009,インターネット(URL:http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf)
 上記の問題を解決するために、複数のコントローラ間で同期を取ることなく独立して経路を計算し、ネットワーク機器に設定を行う場合において、パケットが送信元から送信先へ転送されることを保証する手法が求められている。
 このような手法の1つとして、ネットワーク機器がパケットに情報を付加し、経路上のネットワーク機器がその情報を読み取ることで、正しい経路にパケットを転送する手法が考えられる。
 しかし、ネットワーク機器がパケットの情報を変更する場合、パケットへの処理のオーバヘッドや、情報付加による転送処理のオーバヘッドの問題が発生する可能性もある。
 そこで、本発明では、パケットが送信元から送信先へ転送されることを保証しつつ、ネットワーク機器がパケット自体に対する変更を行わない手法を提案する。
 本発明に係るネットワークシステムは、複数のネットワーク機器と、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリを、経路上のネットワーク機器のフローテーブルに設定する複数のコントローラとを含む。該経路上のネットワーク機器は、該複数のコントローラの中で最も早く該経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送する。
 本発明に係るネットワーク機器は、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する装置と、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送する装置とを具備する。
 本発明に係る経路制御方法は、ネットワーク機器により実施される経路制御方法であって、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送することとを含む。
 本発明に係るプログラムは、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送するステップとをネットワーク機器に実行させるためのプログラムである。
 すなわち、本発明に係るプログラムは、上記の経路制御方法における処理を、ネットワーク機器に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
 コントローラを多重化/冗長化した際の不採用経路の削除が可能になる。
本発明に係るネットワークシステムの構成例を示す図である。 該ネットワークシステムにおけるコントローラの構成例を示す図である。 該ネットワークシステムにおけるスイッチの構成例を示す図である。 該ネットワークシステムにおけるフローエントリの構成例を示す図である。 該ネットワークシステムにおける経路削除パケットの構成例を示す図である。 1stパケット受信時の動作を説明するための図である。 複数のコントローラが設定した経路について説明するための図である。 採用された経路の順について説明するための図である。 不採用経路に経路削除パケットが流れる状況について説明するための図である。 不採用経路の削除処理全体の手順を説明するための図である。 不採用経路の設定前に、不採用経路の削除処理が開始された場合について説明するための図である。 本発明の実施例を説明するための図である。
 本発明は、CU分離型ネットワークシステムを対象としている。ここでは、CU分離型ネットワークシステムの1つであるオープンフローネットワークシステムを例に説明する。但し、実際には、オープンフローネットワークシステムに限定されない。
 <第1実施形態>
 以下に、本発明の第1実施形態について添付図面を参照して説明する。
 [システム構成]
 図1を参照して、本発明に係るネットワークシステムの構成例について説明する。
 本発明に係るネットワークシステムは、コントローラ10(10-i、i=1~x:xは台数)と、スイッチ20(20-j、j=1~y:yは台数)と、ホスト30(30-k、k=1~z:zは台数)を含む。
 コントローラ10(10-i、i=1~x)の各々は、ネットワーク機器におけるパケットの転送経路等を制御する制御装置である。
 スイッチ20(20-j、j=1~y)の各々は、パケットを転送するネットワーク機器である。
 ホスト30(30-k、k=1~z)の各々は、パケットを送受信する端末である。
 [ハードウェアの例示]
 以下に、本発明に係るネットワークシステムを実現するための具体的なハードウェアの例について説明する。
 コントローラ10(10-i、i=1~x)の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。
 スイッチ20(20-j、j=1~y)の例として、ネットワークスイッチ(network switch)を想定している。他にも、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール、ロードバランサ、帯域制御装置、セキュリティ監視制御装置、基地局、アクセスポイント、或いは、複数の通信ポートを有する計算機等が考えられる。
 ホスト30(30-k、k=1~z)の例として、上記の計算機を想定している。他にも、携帯電話機、カーナビ(カーナビゲーションシステム)、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット(電子機器)、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電(information home appliance)、OA(Office Automation)機器等が考えられる。ホスト30(30-k、k=1~z)は、車両や船舶、航空機等の移動体に搭載されていても良い。
 なお、ホスト30(30-k、k=1~z)は、オープンフロー非対応のネットワークにおけるスイッチ等の中継装置でも良い。すなわち、スイッチ20(20-j、j=1~y)により形成されるネットワークが、オープンフロー対応のネットワーク(オープンフローネットワークシステム)であれば良い。ホスト30(30-k、k=1~z)のいずれかに接続されるスイッチ20(20-j、j=1~y)は、オープンフローネットワークシステムにおけるエッジスイッチに相当するため、配下の装置が端末でも外部ネットワークの中継装置でも同様に処理できる。
 また、コントローラ10(10-i、i=1~x)、スイッチ20(20-j、j=1~y)、及びホスト30(30-k、k=1~z)は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(Virtual Machine(VM))でも良い。
 図示しないが、コントローラ10(10-i、i=1~x)、スイッチ20(20-j、j=1~y)、及びホスト30(30-k、k=1~z)は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインタフェースによって実現される。
 上記のプロセッサの例として、CPU(Central Processing Unit)、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ(microcontroller)、或いは、専用の機能を有する半導体集積回路(LSI:Large Scale Integration)等が考えられる。
 上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。また、レジスタ(register)でも良い。
 なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。従って、上記の計算機等に搭載される1チップマイコンが、プロセッサ及びメモリを備えている事例が考えられる。
 上記のインタフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。
 また、ネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。
 但し、実際には、これらの例に限定されない。
 [コントローラの詳細]
 図2を参照して、コントローラ10(10-i、i=1~x)の構成例について説明する。
 コントローラ10(10-i、i=1~x)の各々は、経路計算部11と、ネットワーク管理部12と、パケット処理部13を備える。
 経路計算部11は、ネットワーク管理部12からスイッチ20(20-j、j=1~y)のトポロジー情報を受け取り、パケットの経路を計算し、スイッチ20(20-j、j=1~y)に設定を行う。
 ネットワーク管理部12は、スイッチ20(20-j、j=1~y)のトポロジー情報や、経路計算部11で計算した経路の管理を行う。ここでは、ネットワーク管理部12は、トポロジー情報や計算した経路を基に、オープンフロープロトコルに準拠した制御メッセージにより、スイッチ20(20-j、j=1~y)の挙動を制御する。
 パケット処理部13は、スイッチ20(20-j、j=1~y)から転送されたパケットの受信、パケットの情報解析、経路計算部11へ解析結果の送信を行う。
 なお、経路計算部11、ネットワーク管理部12、及びパケット処理部13は、モジュール(module)又はコンポーネント(component)でも良い。
 コントローラ10(10-i、i=1~x)は、複数のスイッチ20(20-j、j=1~y)をネットワーク管理部12によって管理することができ、スイッチ20(20-j、j=1~y)と専用線、若しくは通常のネットワークのセキュアチャネル(Secure Channel)で接続されている。
 [スイッチの詳細]
 図3を参照して、スイッチ20(20-j、j=1~y)の構成例について説明する。
 スイッチ20(20-j、j=1~y)の各々は、フローテーブル21と、フローテーブル管理部22と、パケット処理部23を備える。
 フローテーブル21は、経路情報となるフローエントリを管理する。フローテーブル21は、記憶装置や記憶媒体に格納することができる。
 フローテーブル管理部22は、コントローラ10(10-i、i=1~x)からの制御メッセージに応じて、フローテーブル21のフローエントリを追加・更新・削除する。フローテーブル管理部22は、フローテーブル21のフローエントリの内容を確認することもできる。
 パケット処理部23は、パケットを処理する。すなわち、パケット処理部23は、スイッチ20(20-j、j=1~y)内部において、パケットに関する処理全般を行う。
 パケット処理部23は、パケット受信部231と、パケット転送部232と、パケット破棄部233と、経路削除パケット生成部234と、経路削除パケット解析部235を備える。
 パケット受信部231は、パケットを受信し解析する。パケット受信部231は、パケット解析として、パケットのヘッダ情報を参照し、フローテーブル21に該パケットのヘッダ情報と適合するフローエントリがあるか否かを確認する。適合するフローエントリがある場合、該フローエントリの内容が経路上の次段のノードに転送する旨であれば、パケット受信部231は、パケット転送部232にパケットを渡し、経路上の次段のノードに転送する。また、該フローエントリの内容がパケットを破棄(廃棄)する旨であれば、パケット受信部231は、パケット破棄部233にパケットを渡し、パケットを破棄する。更に、適合するフローエントリがない場合、パケット受信部231は、パケット転送部232にパケットを渡し、コントローラ10(10-i、i=1~x)に該パケットの経路を問い合わせる。
 パケット転送部232は、該スイッチに隣接する他のスイッチ20(20-j、j=1~y)、コントローラ10(10-i、i=1~x)、ホスト30(30-k、k=1~z)等にパケットを転送する。パケット転送部232は、出力ポート毎に設けられ、受け取ったパケットを該出力ポートから出力する。
 パケット破棄部233は、受け取ったパケットを破棄する。なお、パケット破棄部233は、通常パケットのみならず、後述する経路削除パケットも破棄することができる。
 経路削除パケット生成部234は、不採用経路を削除するための経路削除パケットを生成する。
 経路削除パケット解析部235は、受信した経路削除パケットを解析する。経路削除パケット解析部235は、パケット解析として、経路削除パケットのヘッダ情報を参照し、フローテーブル21に経路削除パケットのヘッダ情報と適合する不採用経路のフローエントリがあるか否かを確認する。適合するフローエントリがある場合、該フローエントリの内容が経路上の次段のノードに転送する旨であれば、パケット受信部231は、パケット転送部232に経路削除パケットを渡し、経路上の次段のノードに転送する。また、該フローエントリの内容が経路削除パケットを破棄する旨であれば、パケット受信部231は、パケット破棄部233に経路削除パケットを渡し、経路削除パケットを破棄する。更に、適合するフローエントリがない場合、経路削除パケット解析部235は、経路削除パケットを一時的に保持し、所定の時間の経過後に、パケット破棄部233に経路削除パケットを渡し、経路削除パケットを破棄する。経路削除パケット解析部235は、パケット受信部231と一体化していても良い。
 なお、フローテーブル管理部22や、パケット処理部23(パケット受信部231、パケット転送部232、パケット破棄部233、経路削除パケット生成部234、及び経路削除パケット解析部235)は、モジュール(module)又はコンポーネント(component)でも良い。
 [フローテーブルの詳細]
 フローテーブル21は、フローエントリ211を保持する。すなわち、フローテーブル21は、フローエントリ211の集合である。フローエントリ211は、各フローに対応する経路情報である。
 [フローエントリの詳細]
 図4を参照して、フローエントリ211の構成例について説明する。
 フローエントリ211は、フローヘッダ(Flow header)2111と、アクション(Action)2112と、経路ID2113と、コントローラID2114を含む。
 フローヘッダ2111は、送信元IPアドレスや送信先IPアドレス等のフローの基本情報を記述するための領域(フィールド)である。すなわち、フローヘッダ2111は、フローエントリ211のルールを記述するための領域である。
 アクション2112は、フローの処理方法を記述するための領域である。すなわち、アクション2112は、フローエントリ211のアクションを記述するための領域である。
 経路ID2113は、経路毎に一意な値(経路の識別子)を記述するための領域である。
 コントローラID2114は、フローエントリ211を設定したコントローラ10(10-i、i=1~x)の識別子を記述するための領域である。
 [経路削除パケットの詳細]
 図5を参照して、本発明で定義する経路削除パケットについて説明する。
 経路削除パケット50は、スイッチ20(20-j、j=1~y)のフローテーブル21を構成するフロー毎のフローエントリ211を削除するための制御メッセージのパケットである。
 経路削除パケット50は、フローヘッダ51と、経路ID52と、コントローラID53を含む。
 フローヘッダ51は、図4に示したフローヘッダ2111と同様、送信元IPアドレスや送信先IPアドレス等のフローの基本情報を記述するための領域である。
 経路ID52は、図4に示した経路ID2113と同様、経路毎に一意な値(経路の識別子)を記述するための領域である。
 コントローラID53は、図4に示したコントローラID2114と同様、フローエントリ211を設定したコントローラ10(10-i、i=1~x)の識別子を記述するための領域である。
 [本発明における経路制御処理]
 図6を参照して、図1のような構成で、以下の(1)から(6)の順に、1stパケット(First Packet)受信時の動作について説明する。
 (1)ステップS1
 スイッチ20(20-j、j=1~y)は、フローテーブル21に情報のないパケット(1stパケット)が届いた場合、複数のコントローラ10(10-i、i=1~x)に1stパケットを転送する。すなわち、スイッチ20(20-j、j=1~y)は、受信パケットのヘッダ情報と適合するフローテーブル21のフローエントリ211がない場合、該パケットを1stパケットと判断して、複数のコントローラ10(10-i、i=1~x)に該1stパケットを転送する。
 (2)ステップS2
 コントローラ10(10-i、i=1~x)は、1stパケットを受け取った場合、経路を計算し、経路上のスイッチ20(20-j、j=1~y)に設定する。
 (3)ステップS3
 コントローラ10(10-i、i=1~x)は、スイッチ20(20-j、j=1~y)の設定を終えた場合、1stパケットの送信元であるスイッチ20(20-j、j=1~y)に応答する。
 (4)ステップS4
 スイッチ20(20-j、j=1~y)は、最も早く応答したコントローラ10(10-i、i=1~x)ではないコントローラ10(10-i、i=1~x)に不採用通知を出す。
 (5)ステップS5
 スイッチ20(20-j、j=1~y)は、不採用となったコントローラ10(10-i、i=1~x)の設定したフローエントリ211の削除処理を行う。
 (6)ステップS6
 スイッチ20(20-j、j=1~y)は、採用された経路のフローエントリ211に従って、パケットを処理する。
 [ステップS1の詳細]
 スイッチ20(20-j、j=1~y)は、フローテーブル21に情報のないパケット(1stパケット)が届いた場合、複数のコントローラ10(10-i、i=1~x)に1stパケットを転送する。
 例えば、スイッチ20-1がホスト30-1からパケットを受け取るとき、パケット処理部23は、通常パケットか経路削除パケット50かの判定を行う。
 パケットが通常パケットであるとき、パケット処理部23は、そのパケットのヘッダ情報が、フローテーブル21に設定されているフローエントリ211のフローヘッダ2111と適合するか確認する。
 適合する場合、パケット処理部23は、該当フローエントリ211のアクション2112に従ってパケットの処理を行う。
 適合しなかった場合、パケット処理部23は、そのパケット(1stパケット)をスイッチ20-1の管理を行うコントローラ10-1とコントローラ10-2に転送する。
 [ステップS2の詳細]
 コントローラ10(10-i、i=1~x)は、1stパケットを受け取った場合、経路を計算し、経路上のスイッチ20(20-j、j=1~y)に設定する。
 コントローラ10-1とコントローラ10-2のそれぞれにおいて、パケット処理部13が1stパケットを受け取った際、経路計算部11は、ネットワーク管理部12のトポロジー情報と、パケット処理部13の解析結果を基に、そのパケット(1stパケット)が通るべき経路を計算する。
 ここで、図7のように、コントローラ10-1が計算した経路を経路100-1、コントローラ10-2が計算した経路を経路100-2とする。
 経路100-1は、「スイッチ20-1」→「スイッチ20-4」→「スイッチ20-5」→「スイッチ20-6」→「スイッチ20-7」→「スイッチ20-8」の順となる。
 経路100-2は、「スイッチ20-1」→「スイッチ20-2」→「スイッチ20-4」→「スイッチ20-5」→「スイッチ20-7」→「スイッチ20-6」→「スイッチ20-8」の順となる。
 経路の計算終了後、コントローラ10-1とコントローラ10-2のそれぞれにおいて、ネットワーク管理部12は、計算して得られた経路に基づくフローエントリ211を、経路上の各スイッチ20(20-j、j=1~y)に設定する。
 スイッチ20(20-j、j=1~y)へのフローエントリ211の設定については、経路上の送信元ホスト30-1に最も近いスイッチ20-1から順に行う。
 例えば、経路100-1の場合、コントローラ10-1は、図8の(1)から(6)の順に、スイッチ20(20-j、j=1~y)の設定を行う。この順序は、通常のオープンフローの設定順序とは異なる。
 経路上の送信元ホスト30-1に近いスイッチ20-1から順に設定を行う場合、スイッチ20-1は、設定された瞬間にフローエントリ211が有効となり、そのフローエントリ211のアクション2112に従って受信パケットを処理してしまうことになる。そのため、例えば、経路上の転送先であるスイッチ20-4の設定が終了する前に、スイッチ20-4がスイッチ20-1からパケットを受信した場合、スイッチ20-4は、該パケットを1stパケットとして、再度コントローラ10(10-i、i=1~x)に転送してしまう可能性がある。
 従って、オープンフローにおいては経路上の送信先ホスト30-2に近いスイッチ20(20-j、j=1~y)から順に設定を行う。
 本発明では、経路上の送信元ホスト30-1に最も近いスイッチ20-1の設定のみ仮設定(仮登録)とすることで、全てのスイッチ20(20-j、j=1~y)の設定が終了する前にパケットがフローエントリ211に従ってされることを防ぐ。
 すなわち、経路上の全てのスイッチ20(20-j、j=1~y)の設定が完了しない限り、パケットが送信元ホスト30-1から送信先ホスト30-2に転送されることはない。
 経路100-1の場合、コントローラ10-1は、経路100-1上の送信元ホスト30-1に最も近いスイッチ20-1にフローエントリ211を仮設定した後、以降のスイッチ20(20-j、j=1~y)は仮設定することなくフローテーブル21にフローエントリ211を設定する。
 例えば、スイッチ20(20-j、j=1~y)が保持するフローテーブル21とは別に、仮のフローエントリ211を保持することのできる記憶領域を持つことで、そこに仮設定するフローエントリ211を保持しても良い。別の方法では、フローエントリ211に仮設定なのか、本登録なのかを判断できる領域を持つことでも実現可能である。
 [ステップS3の詳細]
 コントローラ10(10-i、i=1~x)は、スイッチ20(20-j、j=1~y)の設定を終えた場合、1stパケットの送信元であるスイッチ20(20-j、j=1~y)に応答する。
 コントローラ10(10-i、i=1~x)は、経路上の全てのスイッチ20(20-j、j=1~y)の設定が完了すると、スイッチ20-1に応答として設定完了通知を送信する。
 このとき、コントローラ10(10-i、i=1~x)は、スイッチ20-1に仮設定したフローエントリ211をフローテーブル21に登録する。
 スイッチ20-1は、最も早く応答したコントローラ10(10-i、i=1~x)が設定した経路を、パケットが通る経路として採用する。
 仮に、コントローラ10-1、コントローラ10-2が同時に応答した場合、スイッチ20-1は、採用された経路が1つとなるようにどちらかを選択する。
 [ステップS4の詳細]
 スイッチ20(20-j、j=1~y)は、最も早く応答したコントローラ10(10-i、i=1~x)ではないコントローラ10(10-i、i=1~x)に不採用通知を出す。
 採用された経路は、コントローラ10-1が設定した経路100-1であると仮定する。
 コントローラ10-1が最も早く応答したため、スイッチ20-1は、不採用となったコントローラ10-2に経路不採用を通知する。
 これは、不採用が決まった時点で設定途中のコントローラ10-2に経路の設定を中止させるために行う。
 そのため、コントローラ10-2は、スイッチ20-1から不採用通知を受け取ると、コントローラ10-2による経路上の全てのスイッチ20(20-j、j=1~y)の設定が完了していなくとも、残りの設定を行わない。
 [ステップS5の詳細]
 スイッチ20(20-j、j=1~y)は、不採用となったコントローラ10(10-i、i=1~x)の設定したフローエントリ211の削除処理を行う。
 ここでは、スイッチ20-1は、コントローラ10-2の設定した不採用経路100-2のフローエントリ211の削除を行う。
 不採用経路100-2の削除には、経路削除パケット50を用いて行う。スイッチ20-1は、不採用経路100-2上のスイッチに向けて、経路削除パケット50を送信する。
 図9に示すように、不採用経路100-2に、経路削除パケット50が流れる。
 [不採用経路の削除処理]
 図10を参照して、不採用経路の削除処理全体の手順について説明する。
 (1)ステップS501
 スイッチ20-1において、パケット処理部23は、経路削除パケット50に、コントローラ10-2の設定した不採用経路100-2の情報を設定する。ここでは、パケット処理部23は、不採用経路100-2のフローエントリ211のフローヘッダ2111、経路ID2113、及びコントローラ10-2を示すコントローラID2114を基に、経路削除パケット50を作成する。すなわち、経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53は、それぞれ上記の不採用経路100-2のフローヘッダ2111、経路ID2113、及びコントローラID2114と等しい。
 (2)ステップS502
 スイッチ20-1において、パケット処理部23は、不採用経路100-2のフローエントリ211のアクション2112の内容が送信先ホスト30-2に転送する内容か確認する。すなわち、経路の末端のスイッチであるか確認する。
 (3)ステップS503
 スイッチ20-1において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30-2に転送する内容ではない場合、フローエントリ211のアクション2112に従って経路削除パケット50を処理する。ここでは、スイッチ20-1において、パケット処理部23は、フローエントリ211のアクション2112に従って、経路削除パケット50を、次段のスイッチ20-2に転送する。
 (4)ステップS504
 不採用経路上にある各スイッチ20(20-j、j=2~y)において、フローテーブル管理部22は、経路削除パケット50を次段のスイッチ20(20-j、j=2~y)に転送した後、仮設定又は正式に設定されている不採用経路100-2のフローエントリ211を削除する。
 (5)ステップS505
 不採用経路上にある各スイッチ20(20-j、j=2~y)において、パケット処理部23は、経路削除パケット50を受信した際、経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53を基に、フローテーブル21に登録されているフローエントリ211の中に、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211があるか確認する。
 (6)ステップS506
 不採用経路上にある各スイッチ20(20-j、j=2~y)において、パケット処理部23は、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211がある場合、該フローエントリ211のアクション2112の内容が送信先ホスト30-2に転送する内容か確認する。すなわち、経路の末端のスイッチであるか確認する。
 (7)ステップS507
 不採用経路上にある各スイッチ20(20-j、j=2~y)において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30-2に転送する内容ではない場合、フローエントリ211のアクション2112に従って経路削除パケット50を処理する。ここでは、各スイッチ20(20-j、j=2~y)において、パケット処理部23は、フローエントリ211のアクション2112に従って、経路削除パケット50を、次段のスイッチ20(20-j、j=2~y)に転送する。
 (8)ステップS508
 不採用経路上にある各スイッチ20(20-j、j=2~y)において、フローテーブル管理部22は、経路削除パケット50を次段のスイッチ20(20-j、j=2~y)に転送した後、仮設定又は正式に設定されている不採用経路100-2のフローエントリ211を削除する。
 (9)ステップS509
 不採用経路上にある各スイッチ20(20-j、j=1~y)において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30-2に転送する内容である場合、すなわち、スイッチ20(20-j、j=1~y)が経路の最後のスイッチ20-8の場合、転送処理を行わず、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211を削除し、経路削除パケット50を破棄する。なお、1stパケットを受信したスイッチ20-1が経路の最後のスイッチである場合、スイッチ20-1は、経路削除パケット50を生成せずに、不採用経路のフローエントリ211を削除しても良い。例えば、不採用経路がスイッチ20-1の配下のホスト間の通信経路である場合や、スイッチ20-1の配下のホスト30(30-k、k=1~z)の各々が、オープンフロー非対応のネットワークにおけるルータ等の中継装置である場合が考えられる。
 (10)ステップS510
 また、不採用経路上にあるスイッチ20(20-j、j=2~y)は、フローテーブル21に登録されているフローエントリ211の中に、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211がない場合、受信した経路削除パケット50を一時的に保持する。
 (11)ステップS511
 スイッチ20(20-j、j=2~y)は、コントローラ10(10-i、i=1~x)からフローエントリ211の追加設定があるか確認する。
 (12)ステップS512
 スイッチ20(20-j、j=2~y)は、コントローラ10(10-i、i=1~x)からフローエントリ211の追加設定がある場合、追加設定されたフローエントリ211のフローヘッダ2111、経路ID2113、及びコントローラID2114が、一時的に保持されている経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53と適合するか確認する。
 (13)ステップS513
 フローエントリ211と経路削除パケット50が適合する場合、スイッチ20(20-j、j=2~y)は、そのフローエントリ211の登録を破棄する。
 (14)ステップS514
 スイッチ20(20-j、j=2~y)は、経路削除パケット50を一時的に保持してから所定の時間が経過したか確認する。
 (15)ステップS515
 スイッチ20(20-j、j=2~y)は、経路削除パケット50を一時的に保持してから所定の時間が経過した場合、保持している経路削除パケット50を破棄する。
 [ステップS510以降の詳細]
 例えば、図11のように、経路100-2が不採用となったコントローラ10(10-i、i=1~x)がスイッチ20-5までしか設定を完了させることができなかった状態で、経路の削除処理が始まってしまった場合等が考えられる。
 この場合、スイッチ20-7は、不採用となった経路100-2のフローエントリ211が設定されていないため、経路削除パケット50を処理できない。
 このとき、スイッチ20-7は、受信した経路削除パケット50を一時的に保持する。
 経路削除パケット50を一時的に保持する理由は、フローエントリ211の登録処理が遅れて行われる可能性があるからである。
 不採用経路の削除処理が始まった時点で、経路が不採用となったコントローラ10-2は、不採用通知を受け取っているため、スイッチ20-5より先にある不採用経路の残りのスイッチ(「スイッチ20-7」→「スイッチ20-6」→「スイッチ20-8」)に対してはフローエントリ211の設定を行わない。
 しかし、ネットワークの遅延等の理由から、不採用経路の削除処理後にフローエントリ211が設定される可能性もあるので、スイッチ20-7は、経路が不採用となったコントローラ10-2が遅れてフローエントリ211を設定してきた場合のために、スイッチ20-5から受信した経路削除パケット50を保持しておく。
 コントローラ10-2からフローエントリ211が遅れて設定された場合、スイッチ20-7は、そのフローエントリ211の登録を破棄する。
 なお、コントローラ10-2からフローエントリ211が遅れて設定された場合、スイッチ20-7は、念のために、そのフローエントリ211に従って、次段のスイッチ20-6に経路削除パケット50を送信するようにしても良い。スイッチ20-6も、経路削除パケット50を受信した場合、上記のスイッチ20-7と同様の処理を行うものとする。
 一定時間、保持する経路削除パケット50の情報と適合するフローエントリ211が登録されない場合、スイッチ20-7は、登録を破棄すべき不採用経路のフローエントリはないと判断し、経路削除パケット50を破棄する。
 [ステップS6の詳細]
 スイッチ20(20-j、j=1~y)は、採用された経路のフローエントリ211に従って、パケットを処理する。
 ここでは、スイッチ20-1は、最も早く応答したコントローラ10-1が仮設定したフローエントリ211をフローテーブル21に設定する。
 この時点で、スイッチ20-1は、1stパケットの情報と一致するフローエントリ211が設定されるため、1stパケットを該当フローエントリ211のアクション2112に従って処理する。
 仮設定のフローエントリ211をフローテーブル21に設定するタイミングは、ステップS5における「不採用経路の削除処理」とほぼ同時である。
 スイッチ20-1は、経路削除パケット50をスイッチ20-4に転送した後に、仮設定のフローエントリ211をフローテーブル21に設定する。
 仮設定のフローエントリ211がフローテーブル21に設定された後、スイッチ20-1は、受信したパケットを、フローエントリ211に従って、採用された経路上のスイッチ20-4に転送する。
 以降、採用された経路上のスイッチ20(20-j、j=1~y)の各々は、受信したパケットを、フローエントリ211に従って、採用された経路上の次段のノードに転送し、パケットをホスト30-2まで転送する。
 ここで、不採用経路の削除処理が終了していないスイッチ20(20-j、j=1~y)がパケットを受け取る可能性がある。
 その場合、該スイッチ20(20-j、j=1~y)は、どのフローエントリ211が経路100-1か判断できないため、不採用経路の削除処理の終了を待つ。
 ここで、スイッチ20(20-j、j=1~y)は、次の2つの場合から、不採用経路の削除処理が終了したことを判断する。
 (1)パケットのフローヘッダの情報に適合するフローヘッダ2111を持つフローエントリ211が1つしかない場合、スイッチ20(20-j、j=1~y)は、採用されたコントローラ10(10-i、i=1~x)から設定されたフローエントリ211のみが登録されている状態であると判断し、不採用経路の削除処理が終了したことを判断する。
 (2)パケットのフローヘッダの情報に適合するフローエントリ211は複数存在するが、これらのフローエントリ211のコントローラID2113及び経路ID2113が全て同一のものである場合、スイッチ20(20-j、j=1~y)は、これらのフローエントリ211全てが、採用されたコントローラ10(10-i、i=1~x)から登録されている状態であると判断し、不採用経路の削除処理が終了したことを判断する。
 スイッチ20(20-j、j=1~y)は、不採用経路の削除処理の終了を一定時間判断できない場合、すなわち、ネットワークの遅延等の原因によって、一定時間待っても経路削除パケット50が届かず、不採用経路が削除されない場合、その時点で1stパケットをコントローラ10(10-i、i=1~x)に転送し、経路の再設定を行う。
 [実施例]
 図12を参照して、本発明の実施例について説明する。
 ここでは、コントローラ10(10-i、i=1~x)の例として、コントローラ1及びコントローラ2を示す。また、スイッチ20(20-j、j=1~y)の例として、スイッチ1~スイッチ4を示す。また、ホスト30(30-k、k=1~z)の例として、ホスト1及びホスト2を示す。ホスト1は、送信元ホストであり、ホスト2は送信先ホストである。
 (1)スイッチ1は、ホスト1からパケットを受信する。
 (2)スイッチ1は、自身が保持するフローエントリに一致しないパケットである場合、該パケットを1stパケットとして、自身を制御する複数のコントローラに転送する。ここでは、スイッチ1は、1stパケットを、コントローラ1及びコントローラ2に転送する。
 (3)コントローラ1及びコントローラ2は、スイッチから1stパケットを転送された場合、経路を計算し、経路上のスイッチの各々に対してフローエントリの設定を行う。このとき、コントローラ1及びコントローラ2は、1stパケットを受信したスイッチ1から順に、経路上のスイッチの各々に対してフローエントリの設定を行う。但し、1stパケットを受信したスイッチ1に設定したフローエントリには、仮設定であることを示す情報(フラグ等)を付与しておく。すなわち、この時点では、1stパケットを受信したスイッチ1に設定したフローエントリは、正式に設定したフローエントリではなく、仮設定のフローエントリである。仮設定であることを示す情報とは、該フローエントリが未だ無効である旨を示す情報である。1stパケットを受信したスイッチ1は、仮設定のフローエントリに従って、パケットを転送することはしない。なお、仮設定であることを示す情報を格納する領域は、フローエントリ内に新たに設けても良いし、フローエントリ内の既存の領域の一部を利用しても良い。
 (4)コントローラ1及びコントローラ2は、経路上のスイッチの設定が全て完了した場合、設定が完了した旨の通知(設定完了通知)を送信し、1stパケットを受信したスイッチ1に設定したフローエントリから仮設定を示す情報を取り除く。
 (5)1stパケットを受信したスイッチ1は、最も早く(最先に)全てのスイッチの設定が完了したコントローラ1の設定した経路をパケットの通信路に採用し、経路を採用したコントローラ1以外のコントローラ2に不採用通知を送る。コントローラ2は、不採用通知を受け取った際に、経路上のスイッチの設定が途中の場合、以降の設定を中止する。ここでは、コントローラ2は、経路上のスイッチ4の設定前に、不採用通知を受け取り、経路上のスイッチ4の設定を中止する。
 (6)1stパケットを受信したスイッチ1は、採用されなかった経路を削除するために、経路削除パケットを生成し、経路削除パケットを、採用されなかった経路のフローエントリに従って、隣接するスイッチ3に転送し、採用されなかった経路のフローエントリを削除する。スイッチ3を始め、採用されなかった経路上のスイッチは、経路削除パケットを受信した際、経路削除パケットのヘッダ情報と適合するフローエントリに従って、隣接するスイッチ4に転送した後、該フローエントリを削除する。スイッチ4は、経路削除パケットのヘッダ情報と適合するフローエントリが設定されていないため、経路削除パケットを一時的に保持し、所定の時間が経過した後に、経路削除パケットを破棄する。なお、スイッチ4は、経路削除パケットのヘッダ情報と適合するフローエントリが設定されていた場合、該フローエントリの内容から、採用されなかった経路上の最後のスイッチであると判明するため、隣接するホスト2には経路削除パケットを送信せず、経路削除パケットのヘッダ情報と適合するフローエントリを削除し、経路削除パケットを破棄する。これらの処理の詳細については、図10に示した不採用経路の削除処理と同様である。
 (7)1stパケットを受信したスイッチ1は、1stパケット以降のパケットを、採用された経路のフローエントリに従って、隣接するスイッチ2に転送する。
 (8)スイッチ2は、1stパケット以降のパケットを、フローエントリに従って、隣接するスイッチ4に転送する。
 (9)採用された経路上の最後のスイッチ4は、1stパケット以降のパケットを、採用された経路のフローエントリに従って、ホスト2に転送する。
 [補足]
 本発明の実施例では、1stパケットを受信したスイッチが2台のコントローラによって制御されているが、3台以上のコントローラによる制御も実現可能である。すなわち、図示された2台のコントローラは、「経路を採用したコントローラ」と、「経路を採用されなかったコントローラ」を示すものであり、個々のコントローラの台数は任意である。
 <第2実施形態>
 以下に、本発明の第2実施形態について説明する。
 オープンフローにおいて、スイッチのフローテーブルにフローエントリを登録する方式は、大きく「Proactive型」と、「Reactive型」の2つの方式に分けられる。
 「Proactive型」では、コントローラが「事前に(データ通信が始まる前に)」所定のパケット群(フロー)の経路(パス)を計算し、スイッチのフローテーブルにフローエントリを登録する。すなわち、ここでいう「Proactive型」とは、コントローラが自発的に行う「事前のフローエントリ登録」を指す。
 「Reactive型」では、コントローラが「スイッチから1stパケット(該当フローエントリがない新規のパケット)についての問い合わせを受けた際に」該パケット群(フロー)の経路を計算し、スイッチのフローテーブルにフローエントリを登録する。すなわち、ここでいう「Reactive型」とは、実際のデータ通信時に、コントローラがスイッチからの問い合わせに応じて行う「リアルタイムのフローエントリ登録」を指す。
 オープンフローネットワークシステムでは、基本的に、コントローラがスイッチから1stパケットについての問い合わせを受けた際に該受信パケットに関するフローエントリを登録する「Reactive型」が中心となっている。
 しかし、実際のハードウェア(HW)では、フローテーブルの処理頻度を軽減し性能の問題を解決するためには、「Proactive型」が好適であると考えられる。例えば、大量の1stパケットがコントローラに到着しても処理し切れるようにするためには、「Proactive型」の方が好適であると考えられる。但し、実際には、完全な「Proactive型」にするとフローエントリ数が膨大になると考えられるため、一部を「Reactive型」にすることにより、フローエントリ数の制約から逃れるといったことも考えられる。
 また、「Proactive型」を用いれば、通信開始前にフローを定義できるため、Nimda等のウィルスによる大量フロー発生問題や、不明なパケットによる不正アクセス等が回避可能になると考えられる。
 上記の第1実施形態における説明では、「Reactive型」を前提に説明してきたが、実際には、「Proactive型」のオープンフローネットワークシステムにおいて、本発明を実施することも可能である。
 すなわち、複数のコントローラの各々が、スイッチからのパケットの問い合わせを受けることなく、事前に(データ通信が始まる前に)、到着が予想される所定のパケット群の経路を計算し、経路上のスイッチのフローテーブルにフローエントリを登録するようにしても良い。スイッチにおける不採用経路の削除処理等については、上記の第1実施形態と同様である。
 <まとめ>
 以上のように、本発明は、オープンフローに代表される制御機能を外部のコントローラに分離したネットワーク機器で構成されるネットワークにおいて、コントローラを多重化/冗長化した際の不採用経路の削除を実現する。
 本発明では、パケット転送と経路制御の機能が分離されたネットワーク機器で構成されるネットワークを対象とする。
 本発明では、複数のコントローラが独立して動作し、コントローラ間の通信を伴わずに全てのネットワーク機器に対してフローエントリを設定できる。
 本発明では、経路は、複数のコントローラの中で最も早く設定を完了させたコントローラの設定した経路である。
 本発明では、ネットワーク機器が、通信に使用されない経路のフローエントリを削除する経路削除パケットを生成する。
 本発明では、ネットワーク機器が、経路削除パケットを、通信に使用されない経路上の隣接するネットワーク機器に転送する。
 本発明では、ネットワーク機器は、経路削除パケットを受信した際、経路削除パケットを解析し、解析結果を基に、自身に設定されたフローエントリのうち、経路削除パケットのヘッダ情報と適合するフローエントリを削除する。
 本発明では、ネットワーク機器が、経路削除パケットに適合するフローエントリがない場合、経路削除パケットを一時的に保持する。
 本発明では、ネットワーク機器が、コントローラによって登録されるフローエントリと、一時的に保持している経路削除パケットのヘッダ情報とが適合する場合、その登録を破棄する。
 本発明により、複数のコントローラ間で同期を取ることなく、通信路を設定可能となる。また、不採用経路を削除することで、ネットワーク上に閉路が作成されることがなく、送信先へ正しく転送されないという障害が発生しない。また、ネットワーク機器がパケットに対して情報の付加や削除といった処理を行わない。
 <付記>
 上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
 (付記1)
 複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する装置と、
 複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送する装置と
を具備する
 ネットワーク機器。
 (付記2)
 付記1に記載のネットワーク機器であって、
 複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信する装置と、
 設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成する装置と、
 外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認する装置と、
 不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接するネットワーク機器に転送する装置と、
 不採用とした経路のフローエントリを削除する装置と
を更に具備する
 ネットワーク機器。
 (付記3)
 付記2に記載のネットワーク機器であって、
 経路削除パケットと適合するフローエントリの内容を確認する装置と、
 確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄する装置と
を更に具備する
 ネットワーク機器。
 (付記4)
 付記3に記載のネットワーク機器であって、
 経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持する装置と
 複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄する装置と、
 保持してから所定の時間の経過後に、経路削除パケットを破棄する装置と
を更に具備する
 ネットワーク機器。
 (付記5)
 ネットワーク機器により実施される経路制御方法であって、
 複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、
 複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送することと
を含む
 経路制御方法。
 (付記6)
 付記5に記載の経路制御方法であって、
 複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信することと、
 設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成することと、
 外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認することと、
 不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接する経路制御方法に転送することと、
 不採用とした経路のフローエントリを削除することと
を更に含む
 経路制御方法。
 (付記7)
 付記6に記載の経路制御方法であって、
 経路削除パケットと適合するフローエントリの内容を確認することと、
 確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄することと
を更に含む
 経路制御方法。
 (付記8)
 付記7に記載の経路制御方法であって、
 経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持することと
 複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄することと、
 保持してから所定の時間の経過後に、経路削除パケットを破棄することと
を更に含む
 経路制御方法。
 (付記9)
 複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、
 複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送するステップと
をネットワーク機器に実行させるための
 プログラム。
 (付記10)
 付記9に記載のプログラムであって、
 複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信するステップと、
 設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成するステップと、
 外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認するステップと、
 不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接するプログラムに転送するステップと、
 不採用とした経路のフローエントリを削除するステップと
を更にネットワーク機器に実行させるための
 プログラム。
 (付記11)
 付記10に記載のプログラムであって、
 経路削除パケットと適合するフローエントリの内容を確認するステップと、
 確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄するステップと
を更にネットワーク機器に実行させるための
 プログラム。
 (付記12)
 付記11に記載のプログラムであって、
 経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持するステップと
 複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄するステップと、
 保持してから所定の時間の経過後に、経路削除パケットを破棄するステップと
を更にネットワーク機器に実行させるための
 プログラム。
 <備考>
 以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
 なお、本出願は、日本出願番号2011-048143に基づく優先権を主張するものであり、日本出願番号2011-048143における開示内容は引用により本出願に組み込まれる。

Claims (10)

  1.  複数のネットワーク機器と、
     パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリを、前記経路上のネットワーク機器のフローテーブルに設定する複数のコントローラと
    を含み、
     前記経路上のネットワーク機器は、前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送する
     ネットワークシステム。
  2.  請求項1に記載のネットワークシステムであって、
     前記複数のコントローラの各々は、前記経路上のネットワーク機器全ての設定を完了させた際に、前記パケットの問い合わせを行ったネットワーク機器に対して、設定完了通知を送信し、
     前記パケットの問い合わせを行ったネットワーク機器は、前記設定完了通知に応じて、前記不採用とした経路のフローエントリと適合する経路削除パケットを作成し、前記不採用とした経路のフローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送し、前記不採用とした経路のフローエントリを削除し、
     前記経路上のネットワーク機器は、前記経路削除パケットを受信すると、前記経路削除パケットと適合するフローエントリの有無を確認し、適合するフローエントリがある場合、該フローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送し、該フローエントリを削除する
     ネットワークシステム。
  3.  請求項2に記載のネットワークシステムであって、
     前記経路上のネットワーク機器は、前記経路削除パケットと適合するフローエントリの内容を確認し、確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、前記経路削除パケットを破棄する
     ネットワークシステム。
  4.  請求項3に記載のネットワークシステムであって、
     前記経路上のネットワーク機器は、前記経路削除パケットと適合するフローエントリがない場合、前記経路削除パケットを一時的に保持し、前記複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが前記経路削除パケットと適合すれば、該フローエントリの設定を破棄し、保持してから所定の時間の経過後に、前記経路削除パケットを破棄する
     ネットワークシステム。
  5.  複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する手段と、
     前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送する手段と
    を具備する
     ネットワーク機器。
  6.  請求項5に記載のネットワーク機器であって、
     前記複数のコントローラの各々から、前記経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信する手段と、
     前記設定完了通知に応じて、前記不採用とした経路のフローエントリと適合する経路削除パケットを作成する手段と、
     外部から前記経路削除パケットを受信した場合、前記経路削除パケットと適合するフローエントリの有無を確認する手段と、
     前記不採用とした経路のフローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送する手段と、
     前記不採用とした経路のフローエントリを削除する手段と
    を更に具備する
     ネットワーク機器。
  7.  請求項6に記載のネットワーク機器であって、
     前記経路削除パケットと適合するフローエントリの内容を確認する手段と、
     確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、前記経路削除パケットを破棄する手段と
    を更に具備する
     ネットワーク機器。
  8.  請求項7に記載のネットワーク機器であって、
     前記経路削除パケットと適合するフローエントリがない場合、前記経路削除パケットを一時的に保持する手段と
     前記複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが前記経路削除パケットと適合すれば、該フローエントリの設定を破棄する手段と、
     保持してから所定の時間の経過後に、前記経路削除パケットを破棄する手段と
    を更に具備する
     ネットワーク機器。
  9.  ネットワーク機器により実施される経路制御方法であって、
     複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、
     前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送することと
    を含む
     経路制御方法。
  10.  複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、
     前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送するステップと
    をネットワーク機器に実行させるためのプログラムを格納した
     記憶媒体。
PCT/JP2012/055272 2011-03-04 2012-03-01 ネットワークシステム、ネットワーク機器、及び経路制御方法 Ceased WO2012121114A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013503488A JP5495150B2 (ja) 2011-03-04 2012-03-01 ネットワークシステム、ネットワーク機器、及び経路制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011048143 2011-03-04
JP2011-048143 2011-03-04

Publications (1)

Publication Number Publication Date
WO2012121114A1 true WO2012121114A1 (ja) 2012-09-13

Family

ID=46798080

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/055272 Ceased WO2012121114A1 (ja) 2011-03-04 2012-03-01 ネットワークシステム、ネットワーク機器、及び経路制御方法

Country Status (2)

Country Link
JP (1) JP5495150B2 (ja)
WO (1) WO2012121114A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874078A (zh) * 2014-02-14 2014-06-18 北京邮电大学 一种移动通信接入网架构
KR20160028250A (ko) * 2014-09-03 2016-03-11 주식회사 케이티 소프트웨어 정의 네트워크에서 컨트롤러의 이중화 제어 시스템 및 그 방법
JP2016530806A (ja) * 2013-08-13 2016-09-29 華為技術有限公司Huawei Technologies Co.,Ltd. 無線アクセス方法、装置およびシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9548933B2 (en) 2012-03-05 2017-01-17 Nec Corporation Network system, switch, and methods of network configuration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5488980B2 (ja) * 2010-02-08 2014-05-14 日本電気株式会社 コンピュータシステム、及び通信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"OpenFlow Switch Specification, Version 1.1.0 Implemented", 28 February 2011 (2011-02-28), Retrieved from the Internet <URL:http://www.openflow.org/documents/openflow-spec-v1.1.0,pdf> [retrieved on 20120323] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016530806A (ja) * 2013-08-13 2016-09-29 華為技術有限公司Huawei Technologies Co.,Ltd. 無線アクセス方法、装置およびシステム
US10250674B2 (en) 2013-08-13 2019-04-02 Huawei Technologies Co., Ltd. Radio access method, apparatus, and system for implementing mutual transmission and processing of collaborative data between sites
CN103874078A (zh) * 2014-02-14 2014-06-18 北京邮电大学 一种移动通信接入网架构
CN103874078B (zh) * 2014-02-14 2017-05-31 北京邮电大学 一种移动通信接入网架构
KR20160028250A (ko) * 2014-09-03 2016-03-11 주식회사 케이티 소프트웨어 정의 네트워크에서 컨트롤러의 이중화 제어 시스템 및 그 방법
KR102251407B1 (ko) 2014-09-03 2021-05-12 주식회사 케이티 소프트웨어 정의 네트워크에서 컨트롤러의 이중화 제어 시스템 및 그 방법

Also Published As

Publication number Publication date
JPWO2012121114A1 (ja) 2014-07-17
JP5495150B2 (ja) 2014-05-21

Similar Documents

Publication Publication Date Title
JP5842933B2 (ja) ネットワークシステム、及び経路情報同期方法
JP5610247B2 (ja) ネットワークシステム、及びポリシー経路設定方法
JP5660211B2 (ja) 通信経路制御システム、及び通信経路制御方法
JP5935873B2 (ja) ネットワークシステム、スイッチ、及びネットワーク構築方法
JP5594552B2 (ja) ネットワークシステム、及び経路制御方法
RU2583745C2 (ru) Сетевая система, коммутатор и способ обнаружения подсоединенного терминала
CN104081731B (zh) 网络系统以及管理拓扑的方法
CN103081418B (zh) 计算机系统和计算机系统中的通信方法
JP5747993B2 (ja) 負荷低減システム、及び負荷低減方法
JP2011160363A (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP5495150B2 (ja) ネットワークシステム、ネットワーク機器、及び経路制御方法
JP5682846B2 (ja) ネットワークシステム、パケット処理方法、及び記憶媒体
JP5966488B2 (ja) ネットワークシステム、スイッチ、及び通信遅延短縮方法
JP2013115733A (ja) ネットワークシステム、及びネットワーク制御方法
JP2015511097A (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: 12754955

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013503488

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12754955

Country of ref document: EP

Kind code of ref document: A1