WO2011043379A1 - ネットワークシステムとコントローラと方法とプログラム - Google Patents

ネットワークシステムとコントローラと方法とプログラム Download PDF

Info

Publication number
WO2011043379A1
WO2011043379A1 PCT/JP2010/067554 JP2010067554W WO2011043379A1 WO 2011043379 A1 WO2011043379 A1 WO 2011043379A1 JP 2010067554 W JP2010067554 W JP 2010067554W WO 2011043379 A1 WO2011043379 A1 WO 2011043379A1
Authority
WO
WIPO (PCT)
Prior art keywords
route
node
packet
controller
information
Prior art date
Application number
PCT/JP2010/067554
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 日本電気株式会社
Priority to JP2011535424A priority Critical patent/JP5621781B2/ja
Publication of WO2011043379A1 publication Critical patent/WO2011043379A1/ja
Priority to US13/067,847 priority patent/US8792388B2/en

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/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-232306 (filed on October 6, 2009), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a network system, a controller, a method, and a program.
  • the switch includes a flow table that performs packet lookup and forwarding, and a secure channel for communication with the controller.
  • the controller communicates with the switch on the secure channel using the open flow (Open Flow) protocol, and controls the flow at, for example, the API (Application Program Interface) level. For example, when the first packet (first packet) arrives at the switch, the switch searches the flow table with the header information of the packet. If there is no match (mishit), the switch forwards the packet to the controller via a secure channel.
  • Open Flow Open Flow Switch
  • the controller determines the route of the packet from the network topology information managed by the controller based on the transmission destination and transmission source information of the packet. Based on the determined route, the controller sets each flow table for each switch on the route. The second and subsequent packets hit the flow table of the switch and are not transferred to the controller, but are directly transferred to the next switch specified by the entry of the flow table.
  • OFS for details of OFS, including the following outline, refer to Non-Patent Documents 1 and 2, for example.
  • the switch flow table has a rule (Rule) for collating with the packet header, an action (Action) that defines processing for the flow, and flow statistical information (Statistics) for each flow.
  • An exact value (exact) and a wild card (wild card) are used as a rule (Rule) for matching with the packet header.
  • the action (Action) is an action applied to a packet that matches the rule.
  • Flow statistics is the number of active entries, the number of packet lookups, the number of packet matches, the number of received packets, the number of received bytes, the period during which the flow is active, the number of received packets, the number of transmitted packets, It includes a reception byte, a transmission byte, a reception drop, a transmission drop, a reception error, a transmission error, a reception frame alignment error, a reception overrun error, a reception CRC (Cyclic Redundancy Check) error, and the number of collisions.
  • the packet input to the switch is matched with the rule of the flow table, and when an entry matching the rule is found, the action of the matched entry is applied to the packet. If no matching entry is found, the packet is forwarded to the controller via the secure channel, and the controller sends the flow entry that determined the packet path to the switch. In the switch, the flow entry is added, changed, or deleted with respect to the flow entry of the switch.
  • a predetermined field in the packet header is used for matching (matching) with the rules of the switch flow table.
  • Matching target information includes input port (Ingress port), MAC (Media Access Control), DA (MAC destination address), MAC SA (MAC source address), Ethernet type (TPID), VLAN ID (Virtual LAN (Local Area) (Network) ID), VLAN TYPE (priority), IP SA (IP source address), IP DA (IP destination address), IP protocol, Source Port (TCP (Transmission Control Protocol) / UDP (User Datagram Protocol) source port Or ICMP (Internet Control Mes age Protocol Type), Destination port (TCP / UDP destination port, or,, including ICMP Code) (see FIG. 25).
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • ICMP Internet Control Mes age Protocol Type
  • Destination port TCP / UDP destination port, or,, including ICMP Code
  • FIG. 26 illustrates action names and action contents.
  • OUTPUT is output to a designated port (interface).
  • SET_VLAN_VID to SET_TP_DST are actions that modify fields in the packet header.
  • the switch forwards the packet to the physical port and the following virtual port.
  • FIG. 27 illustrates a virtual port.
  • IN_PORT outputs the packet to the input port.
  • NORMAL processes using an existing forwarding path supported by the switch.
  • FLOOD is transferred to all ports in a communication enable state (Forwarding state) except for a port from which a packet has come. ALL forwards to the port except the port from which the packet came.
  • the CONTROLLER encapsulates the packet and sends it to the controller via the secure channel.
  • flow information including flow entry rules, actions, and flow statistical information is referred to as a “flow entity”.
  • flow statistical information is not treated as the subject of the invention, the flow statistical information is omitted as a flow entity, and only rules and actions are shown.
  • Non-Patent Documents 1 and 2 are incorporated herein by reference.
  • the following analysis has been made by the present invention.
  • each node is determined by controlling each node by a controller as in the above-mentioned OFS
  • when an arbitrary node cannot be used due to failure, maintenance, etc. it is possible to set a route that bypasses the node. Realization of the system is desired.
  • by detouring a predetermined node in the network it is possible to shift the route and realize low power consumption.
  • the inventors of the present application have created an invention for realizing such a system, and will be presented below.
  • the present invention comprising: a controller; and a plurality of nodes whose flow is controlled by the controller, wherein the controller determines the network configuration of the node with respect to a node instructed to detour from the topology information. Except for nodes Calculate a route that does not pass through the node, For the nodes that form the route, generate flow information that defines the operation for the flow at the node, A network system for setting the flow information to a node on the route is provided.
  • the controller that controls the flow for a plurality of nodes removes the node from the topology information that defines the network configuration of the node with respect to the node instructed to bypass, Calculate a route that does not pass through the node, For the nodes that form the route, generate flow information that defines the operation for the flow at the node, A network control method for setting the flow information to a node on the route is provided.
  • a controller that controls a flow for a plurality of nodes, excluding the node from topology information that defines a network configuration of the node with respect to a node instructed to bypass, Calculate the route that does not pass through the node and store it in the effective route storage unit, For the nodes that form the route, generate flow information that defines the operation for the flow at the node, A controller for setting the flow information to a node on the route is provided.
  • the controller that controls the flow for a plurality of nodes is excluded from the topology information that defines the network configuration of the node with respect to the node instructed to detour, Calculate the route that does not pass through the node and store it in the effective route storage unit, Generate flow information of the nodes that form the route, A program for setting the flow information in a node on the route and executing the process is provided.
  • the present invention also provides a computer-readable recording medium that records the program.
  • the node by calculating and setting a route that does not pass through the node instructed to be bypassed, the node can be bypassed and the node can be maintained. Further, according to the present invention, by detouring the node, the path is shifted and the power consumption can be reduced.
  • the system according to the present invention includes a plurality of nodes (switch 10 in FIG. 1) whose flow is controlled by a controller, and the controller.
  • the controller (20) The node is excluded from the topology information that defines the network configuration of the node, the route that does not pass through the node is calculated, and the flow information that defines the flow operation at the node is generated for the node that forms the route. Then, the flow information is set to a node on the route.
  • a node whose flow is controlled by the controller (20) will be described as a switch.
  • the node is not limited to such a configuration in the present invention.
  • FIG. 1 is a diagram showing an example of a network to which the present invention is applied.
  • a switch (OFS: Open Flow Switch) 10 holds flow information (including a rule + action, hereinafter referred to as “flow entity”) set from a controller (Controller) 20, and for an incoming packet The corresponding rule is searched from the flow entity table (flow table) held by the switch 10, and if they match, the action is executed.
  • the switch (OFS) 10 notifies the controller 20 when the arrived packet does not match any of the rules of the flow entity table (notification of first packet).
  • a flow having a priority and having a high priority is effective.
  • the controller 20 calculates an appropriate route based on the packet sent from the switch (OFS) 10 to generate a flow, and sets the flow in the switch group.
  • the connection configuration of the switch (OFS) 10 is only an example, and there may be a plurality of paths with nodes such as FatTree and HyperCube.
  • the node 30 is a node that does not receive flow control from the controller 20 that controls flow for the plurality of switches 10.
  • the node 30 includes a server, a load balancer, a firewall, a storage (NAS (Network Attached Storage), SAN (Storage Area Network), a distributed storage node such as a cluster storage islon), and the like, and has two or more network interfaces.
  • NAS Network Attached Storage
  • SAN Storage Area Network
  • distributed storage node such as a cluster storage islon
  • the node 30 may have a function of communicating with the controller 20.
  • FIG. 1 for simplicity, it is described as a configuration in which the switch 10 is controlled by a single controller 20, but a configuration in which a plurality of controllers respectively control one or a plurality of switches under the control is also possible. Of course.
  • the controller 20 holds the connection state of the switch 10 as topology information.
  • the controller 20 holds the route information set for the packet as effective route information. That is, for the packet (first packet) whose header information of the packet input to the switch 10 does not match the rule of the flow entity, the controller 20 determines the flow and transmits the flow entity to the switch on the flow. To set. The controller 20 manages and holds the route information corresponding to the flow as effective route information.
  • the controller 20 deletes the designated bypass switch from the topology information managed and held by the controller 20.
  • the controller 20 recalculates a detour route (new route) that does not pass through the detour switch for all routes using the designated detour switch.
  • the controller 20 determines a flow for each switch that forms a new route, and stores the new route information as effective route information.
  • Controller 20 sets the flow entity corresponding to the determined flow in the corresponding switch.
  • the controller 20 deletes the old route (route passing through the detour switch) from the effective route information.
  • Controller 20 notifies completion of detour preparation.
  • the controller 20 that has received information about the switch to be bypassed deletes the switch to be bypassed from the topology information, and uses the topology information that does not include the switch when calculating the bypass route.
  • the old and new routes may be temporarily coexisted, and the packet may be duplicated after forming a redundant network.
  • the detour procedure in this case is as follows.
  • the controller 20 receives the information on the switch to be detoured, the controller 20 removes the switch to be detoured (detour switch) from the topology information.
  • the controller 20 calculates a detour route (new route) that does not pass through the switch for all routes using the designated detour switch. The flow for each switch forming each path is determined.
  • the controller 20 sets a flow entity in the switch corresponding to the calculated flow.
  • the leading switch where both the old and new paths branch is set to send packets to both the old and new paths, and the new path information is stored as valid path information.
  • the controller 20 deletes the old route from the effective route information.
  • the controller 20 deletes the old route. that time, -Delete the flows in order from the first switch on the old route. -When the flow is deleted from the head switch, the replica setting of the packet in the head switch is canceled (change of action setting of the flow entity).
  • a tunnel (encapsulating peer or lower layer data and transmitting it transparently without terminating the protocol) may be used as a bypass route.
  • the controller 20 creates a tunnel between adjacent switches of the switch to be bypassed, and uses the flow set other than the adjacent switch of the route as it is. Then, a bypass route is formed by changing the flow set in the adjacent switch to a flow that leads to the tunnel.
  • the detour by the tunnel is generally performed as follows.
  • the controller 20 calculates a route having the adjacent switches a and b of the detour switch as end points.
  • the controller 20 creates a flow that matches the input / output port for the switch that passes through the route having the adjacent switch a and the adjacent switch b created in 1 as endpoints.
  • Controller 20 sets the corresponding switch of the flow created in 2 as a tunnel. At this time, preferably, the switch configuring the tunnel is set to a lower priority than the other switches. A flow set other than the adjacent switch is used as it is.
  • the controller 20 directs the adjacent switch a and the adjacent switch b so that the flow sent from the adjacent switch a to the adjacent switch b via the detour switch is guided to the path using the adjacent switch a and the adjacent switch b created in 1 as endpoints. Set the flow to.
  • the switch 10 can communicate with the controller 20 to be controlled.
  • the controller 20 controls one or more switches 10.
  • the controller 20 inputs a packet processing unit 201 that receives a packet from the switch 10, a flow entity setting unit 202 that sets a flow entity for the switch 10, and path configuration information (packet that triggered the creation of a path) Switch information, header information of the packet, switch identification information constituting the route and its flow entity), topology information 204 storing the network topology of the node and switch, and a route A route calculating unit 205 for calculating and a switch state changing unit 206 for changing the state of the switch are provided.
  • the switch 10 includes a packet processing unit 101, a flow entity table (also referred to as “flow table”) 102, a packet notification unit 103 that notifies the controller 20 of the first packet, and a flow entity instructed by the controller 20. And a flow entity setting unit 104 to perform.
  • the switch 10 is applicable as long as the switching function can be controlled by a controller, such as a layer 2 switch, a layer 3 switch, or a router.
  • the flow entity of the flow entity table 102 includes rules and actions as shown in FIG.
  • the rules are ⁇ Input interface (port) MAC source address MAC destination address VLAN (Virtual Local Area Network) ID ⁇ TYPE ⁇ IP source address ⁇ IP destination address ⁇ Protocol (UDP (User Datagram Protocol) / TCP (Transmission Control Protocol) / ICPM (Internet Control Message Protocol)), ICMP type, ICMP code, TCP / UDP Includes source and destination ports.
  • the action is The type of action, ⁇ Output (OUTPUT), Packet header field conversion (Field Modify), including.
  • the header field conversion is shown in FIG.
  • the rule may specify values for all fields, specify individual fields (fields) as wildcards, and match the values of the fields for which the wildcards are pointed out when matching with flow entries. It may be specified to be ignored (the field in which wildcard is specified always matches).
  • the IP source address and the IP destination address may specify a prefix length (the length of the network address part of the IP address) when specifying wildcard.
  • an output interface (port) is included (see FIG. 26).
  • the action is header field conversion
  • the field to be changed and the value to be changed are included.
  • a flow entity includes one or more actions. When no action is specified for the flow entity, a packet that matches a flow entry for which the action is not specified may be dropped (discarded).
  • FIG. 3 is a diagram illustrating an example of a data structure of data stored in the effective path storage unit 203.
  • the route management table is a table for managing route configuration information for each route.
  • one entry corresponds to one route, and therefore the route configuration information of the one route corresponds.
  • information on the switch switch ID, interface
  • a packet First Packet
  • the controller 20 newly creates the route
  • It has a pointer indicating packet header information and route configuration information corresponding to the route.
  • the header information of the packet only the source and destination IP addresses may be recorded.
  • the path configuration information has, for each path, a set of switch identification information and a flow entity set for the switch for each switch in the switch group (from the start point of the path to the intermediate point and end point of the path) that configures the path. .
  • the path is composed of n switches, there are n sets of switch identification information and flow entities set in the switch, and this is pointed to by the pointer of the corresponding entry in the path management table.
  • the route configuration information it can be understood from which switch the currently effective route is formed.
  • a flow entity includes rules and actions (may include flow statistics).
  • the route configuration information may be a table configuration, or a combination of switch information and flow entity is a linear list (linked list) with a pointer that points to the combination of switch information and flow entity corresponding to the next switch on the route You may comprise as.
  • route configuration information is registered in the route management table of the effective route storage unit 203 by the switch state change unit 206, and a route that has been invalidated, such as route deletion, It is deleted from the effective path storage unit 203 by the switch state change unit 206.
  • FIG. 4 is a diagram illustrating a configuration example of the flow entity table 102 stored in the switch 10.
  • the flow entity table is a table in which the switch 10 stores and holds a flow entity instructed by the controller 20. When n different flows pass through the switch 10, the switch 10 holds n flow entities corresponding to each flow.
  • flow entity
  • one flow entity includes a plurality of actions, ie, one flow entity includes one action.
  • Flow entity
  • m is a predetermined integer greater than or equal to 2
  • FIG. 5 is a diagram showing the configuration of another embodiment of the present invention.
  • the controller 20 includes a path cache 207 in addition to the configuration of FIG.
  • the other configuration of the controller 20 and the switch 10 are the same as those in FIG.
  • the route information is cached in the route cache 207.
  • ⁇ Start switch, node, ⁇ End switch, node, ⁇ Switch group identifier Is stored as one entry in the cache.
  • a route using the detour switch may be deleted from the entry in the route cache.
  • FIG. 6 is a diagram illustrating an example of a network topology.
  • the switches 1 to 8 are centrally controlled by a controller (not shown).
  • A, B, C, and D are nodes such as switches, servers, storages, load balancers, firewalls, routers, and the like that do not receive control for transferring packets from the controller.
  • An example of topology information of the network configuration in FIG. 6 is shown in Table 1 below.
  • end points (switches) and connection destinations of the end points are stored in a table format.
  • each switch has four interfaces (ports), and the corresponding device is connected to each interface.
  • switch identification information for example, a value indicating a switch and an identifier uniquely assigned to each switch are used.
  • switch 1 is connected to node A and switches 3 and 4 through interfaces 1, 2, and 3, respectively.
  • the switch 2 is connected to the node B and the switches 3 and 4 through interfaces 1, 2, and 3, respectively. All the switches 3 and 4 are connected to the switches 1, 2, 5, and 6 through the interfaces 1, 2, 3, and 4, respectively.
  • Each of the switches 5 and 6 is connected to the switches 3, 4, 7 and 8 via the interfaces 1, 2, 3 and 4, respectively.
  • the switch 7 is connected to the switches 5 and 6 and the node C through the interfaces 1, 2, and 3, respectively.
  • the switch 8 is connected to the switches 5 and 6 and the node D through the interfaces 1, 2, and 3, respectively.
  • node identification information for example, either or both of a MAC address and an IP address are used.
  • One node may have a plurality of MAC addresses and IP addresses.
  • the MAC source address is the MAC address of node A
  • -The MAC destination address is the MAC address of node D
  • IP source address is the IP address of node A
  • -The IP address of the node node D is set as the IP destination address.
  • VLAN tag may be used or not used, but the description is omitted here.
  • the protocol is set to either TCP or UDP. An arbitrary value is set for the port number, but the description is omitted here.
  • the packet arrives at the interface 1 of the switch 1 from the node A (S1).
  • the packet processing unit 101 of the switch 1 searches the flow entity table 102 to determine whether there is a flow entity that matches the rule in the packet that arrived in S1 (S2).
  • the flow entity table 102 is configured as, for example, a CAM (Content Addressable Memory). 3. If there is a match as a result of the search (Yes in S3), the process proceeds to S4. If there is no match (No in S3), the process proceeds to S6.
  • the packet processing unit 101 of the switch 1 executes the action specified for the matched flow entity (S4).
  • the packet processing unit 101 of the switch 1 designates the packet that has arrived and the interface (interface 1) that has arrived to the packet notification unit 103, and instructs the controller 20 to notify (S6).
  • the packet notification unit 103 of the switch 1 notifies the controller 20 of the interface information and packet specified in S6.
  • the packet processing unit 201 of the controller 20 receives the packet from the switch 1 (S8).
  • the packet processing unit 201 of the controller 20 designates the switch that has received the packet and the header of the packet, and instructs the route calculation unit 205 to calculate the route (S9).
  • the route calculation unit 205 of the controller 20 identifies a switch having a connection destination in the topology information 204 that matches the MAC destination address or IP destination address of the packet header (S10).
  • the route calculation unit 205 of the controller 20 uses the topology information 204 to pass a route (which switch group passes through the switch specified in S9 (the switch that received the packet) and the switch specified in S10 as endpoints. (S11).
  • the route calculation unit 205 of the controller 20 generates a flow entity to be set in each switch of the route based on the route calculated in S11 (S12).
  • the route calculation unit 205 of the controller 20 notifies the packet processing unit 201 of the controller 20 of the switch generated in S12 and the flow entity group to be set (S13).
  • the packet processing unit 201 of the controller 20 uses the switch notified in S13 and the flow entity group to be set as path configuration information, and creates an entry in the path management table from the information received in S9 and the pointer of the path configuration information. And it memorize
  • the packet processing unit 201 of the controller 20 designates the switch notified in S13 and the flow entity group to be set, and instructs the flow entity setting unit 202 of the controller 20 to set the flow entity (S15).
  • the flow entity setting unit 202 of the controller 20 instructs the setting of the flow entity to be set in each of the switch groups instructed in S15 (S16). The following 17.18. Is the processing of the switch 10.
  • the flow entity setting unit 104 of the switch 10 records the designated flow entity in the flow entity table 102 of the switch 10 (S17).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the setting completion of the flow entity (S18).
  • the following 19 and 20 are processes of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for reception of all flow entity setting completions instructed in S16, and when receiving all flow entity setting completions, notifies the packet processing unit 201 of completion of setting of the flow entities ( S19).
  • the packet processing unit 201 of the cocoon controller 20 When receiving the completion notification from the flow entity setting unit 202, the packet processing unit 201 of the cocoon controller 20 returns the interface and the received packet to the switch that has received the packet in S8 (S20). The following is the processing of the switch 10.
  • the packet processing unit 101 processes the packet again as if the packet was received from the designated interface (S21).
  • a packet (First Pakset) is transmitted to the switch in S20 and transferred according to the created route (see FIG. 8A).
  • an interface to be sent from the controller 20 to the terminal switch 4 may be specified, and a packet (First Pakset) may be transmitted and transferred to the node.
  • ⁇ Example of flow entity> An example of a flow entity set for the route of FIG. 6 is shown below. In this example, wildcards are used except for fields in which rules are specified, but all fields may be specified.
  • the flow entity group is recorded in association with the route configuration information in the effective route storage unit 203 (see FIG. 3).
  • a pair of switch identifier information and a flow entity including a rule and an action constitutes one entry for each of a plurality of switches configuring the path.
  • the effective path storage unit 203 stores the identification information of the switches constituting the path and the flow entity pairs of the switches in a table structure and a list structure. Represents a flow entity using notation.
  • Flow entity m switch n rule (x), action (y) Represents an entry of the switch identification information switch n, the rule x, and the action y in the m-th flow entity, and a linked list of flow entity elements ((flow entity 1) (flow entity 2)... ( The flow entity n)) corresponds to the configuration information of one route.
  • the switch n corresponds to the switch identification information of FIG. 3
  • the rule (x) and the action (y) correspond to the flow entity including the rule and action of FIG. 3
  • the flow entity m is m in the path configuration information of FIG. Represents the second flow entity.
  • one flow entity is exemplified as a configuration including one action (y).
  • flow entities having common rules and different actions are juxtaposed as a plurality of flow entities.
  • one flow entity may include one rule (x) and a plurality of actions y1, y2,. .
  • the above example is a one-way setting, but a round-trip setting may be performed.
  • An example of a round trip is shown below.
  • the following flow entity group is recorded as route configuration information in the effective route storage unit 203.
  • the route calculation unit 205 searches the route cache 207 for a route in which both end points of the start point and end point match (S11-1).
  • the route calculation unit 205 calculates a route from the designated end point (S11-3).
  • the route calculation unit 205 registers the calculated route and the endpoint used for the calculation as a set in the route cache 207 (S11-4).
  • the route calculation unit 205 sets the route calculated in S11-3 as a calculated route (S11-5).
  • the route calculation unit 205 sets the searched route as a calculated route (S11-6).
  • FIG. 10 is a flowchart showing a detour procedure in the present embodiment. A detouring procedure will be described with reference to FIGS.
  • the administrator designates a switch (switch 4) and instructs the controller 20 to bypass (S101).
  • the switch state changing unit 206 of the controller 20 receives a detour instruction with a switch designated by the administrator (S102).
  • the switch state changing unit 206 of the controller 20 searches the effective path storage unit 203 for path configuration information using the designated switch (switch 4) (S104).
  • the switch state changing unit 206 searches the route management table (see FIG. 3) in the effective route storage unit 203 and checks whether there is route configuration information in which the switch 4 is used. When there are a plurality of path configuration information in which the switch 4 is used, the switch state changing unit 206 extracts the corresponding path configuration information.
  • the switch state changing unit 206 notifies the administrator of the completion of the detour (S107).
  • the switch state changing unit 206 of the controller 20 specifies the switch group and the flow entity group recorded in the path configuration information searched in S104 of FIG. 10, and instructs the flow entity setting unit 202 of the controller 20 to delete the flow entity. (S106A-a).
  • the flow entity setting unit 202 of the controller 20 instructs the switch group instructed in S106A-a to delete the flow entity to be deleted (S106A-b).
  • the following c and d are processes of the switch 10.
  • the flow entity setting unit 104 deletes the specified flow entity from the flow entity table of the switch (S106A-c).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the completion of deletion of the flow entity (S106A-d).
  • the following e and f are processes of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the reception of all the flow entity deletion completions specified in S106A-b, and notifies the switch state changing unit 206 of the deletion completion of the flow entities (S106A-e).
  • the switch state changing unit 206 of the controller 20 deletes the route configuration information (route configuration information searched in S104 of FIG. 10) from the effective route recording unit 203 (S106A-f). More specifically, the switch state changing unit 206, from the route management table (see FIG. 3) of the effective route storage unit 203, includes route configuration information including a detour switch (a set of switch identification information and a flow entity), and the route Delete the route management table entry that points to the configuration information.
  • route configuration information including a detour switch (a set of switch identification information and a flow entity)
  • the switch status change unit 206 of the controller 20 includes a switch included in the switch information (switch group constituting the route) of the entry in the route management table (see FIG. 3) pointing to the route configuration information in the effective route storage unit 203;
  • the packet header of the entry in the route management table that points to the route configuration information is designated, and the route calculation unit 205 is instructed to calculate the route (S106B-a).
  • the path calculation unit 205 of the controller 20 identifies a switch having a connection destination that matches the destination address (MAC destination address or IP destination address) of the designated packet header in the topology information 204 (S106B-b). ).
  • the route calculation unit 205 of the controller 20 uses the topology information, and uses the switch specified in S106B-a and the switch specified in S106B-b (switch having a connection destination that matches the destination address) as endpoints. Is calculated (S106B-c).
  • the route calculation unit 205 of the controller 20 generates a flow entity to be set in each switch of the route based on the route calculated in S106B-c (S106B-d).
  • the path calculation unit 205 of the controller 20 notifies the switch generated in S106B-d and the flow entity group to be set to the switch state change unit 206 of the controller 20 (S106B-e).
  • the switch state changing unit 206 of the controller 20 designates the switch notified in S106B-e and the flow entity group to be set, and instructs the flow entity setting unit 202 of the controller 20 to set the flow entity (S106B-f). ).
  • the flow entity setting unit of the controller 20 instructs the switch specified in S106B-f to set each flow entity to be set (S106B-g).
  • the following h and i are processes of the switch 10.
  • the flow entity setting unit 104 of the switch 10 records the specified flow entity in the flow entity table 102 of the switch (S106B-h).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the setting completion of the flow entity (S106B-i). The following is the process of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the reception of all the flow entity setting completions specified in S106B-f, and notifies the switch state changing unit 206 of the completion of the flow entity setting (S106B-j).
  • the switch state changing unit 206 registers the flow entity generated in S106B-d in the effective route recording unit 203 as new route configuration information (S106B-k).
  • the switch state changing unit 206 uses the route configuration information registered in S106B-k as a pointer to the route configuration information of the entry in the route management table (see FIG. 3) that points to the corresponding route configuration information in the effective route recording unit 203. (S106B-1).
  • Table 2 shows the topology information after the detour setting set in the above procedure.
  • the switch 1 is connected to the node A and the switch 3 through the interfaces 1 and 2, respectively.
  • the switch 2 is connected to the node B and the switch 3 through the interfaces 1 and 2, respectively.
  • the switch 3 is connected to the switches 1, 2, 5, and 6 through the interfaces 1, 2, 3, and 4, respectively.
  • Both switches 5 and 6 are connected to switches 3, 7, and 8 through interfaces 1, 3, and 4, respectively.
  • the switch 7 is connected to the switches 5 and 6 and the node C through the interfaces 1, 2, and 3, respectively.
  • the switch 8 is connected to the switches 5 and 6 and the node D through the interfaces 1, 2, and 3, respectively.
  • a route passing through the switch 4 (switch to be bypassed): ⁇ Node A ⁇ Switch 1 ⁇ Switch 4 ⁇ Switch 6 ⁇ Switch 8 ⁇ Node D Against the route: ⁇ Node A ⁇ Switch 1 ⁇ Switch 3 ⁇ Switch 6 ⁇ Switch 8 ⁇ Node D Is set as a detour route.
  • a switch is designated to the route calculation unit 205 to instruct invalidation of the cache.
  • the route calculation unit 205 searches the route cache 207 and invalidates the entry in which the designated switch is on the route.
  • the route calculation unit 205 searches the route cache 207 for a route in which both end points of the start point and end point match (S106B-c1).
  • the route is calculated from the designated end point (S106B-c3).
  • the route calculated in S106B-c3 and the endpoint used for the calculation are registered as a set in the route cache 207 (S106B-c4).
  • the route calculated in S106B-c3 is set as a calculated route (S106B-c5), and the process ends.
  • the route searched in S106B-c2 is set as a route calculation route (S106B-c6), and the process ends.
  • FIG. 14 is a flowchart for explaining a detour procedure according to this embodiment.
  • the administrator designates a switch (switch 4) and instructs the controller to bypass (S201).
  • the switch status changing unit 206 of the controller 20 receives a detour instruction with a switch designated by the administrator (S202).
  • the switch state changing unit 206 of the controller 20 deletes the entry of the switch designated in S201 from the topology information 204 (S203).
  • the switch state change unit 206 of the controller 20 searches the effective path storage unit 203 for path configuration information using the designated switch (S204).
  • the switch state changing unit 206 of the controller 20 ends when there is no match according to the search result (NO in S205), and when there is a match (YES in S205), the process branches to S206.
  • the switch state changing unit 206 of the controller 20 notifies the administrator of the completion of the detour (S207).
  • the switch state changing unit 206 of the controller 20 includes a switch included in the switch information of the entry of the route management table (see FIG. 3) pointing to the path configuration information, and the packet header of the entry of the path management table pointing to the path configuration information. Is specified, and the route calculation unit 205 is instructed to calculate the route (S206A-a).
  • the path calculation unit 205 of the controller 20 identifies a switch having a connection destination that matches the destination address (MAC destination address or IP destination address) of the packet header in the topology information 204 (S206A-b).
  • the route calculation unit 205 of the controller 20 uses the topology information 204 to calculate a route with the switch specified in S206A-a and the switch specified in S206A-b as endpoints (S206A-c).
  • the route calculation unit 205 of the controller 20 generates a flow entity to be set in each switch of the route based on the route calculated in S206A-c (S206A-d).
  • the path calculation unit 205 of the controller 20 notifies the switch generated in S206A-d and the flow entity group to be set to the switch state change unit 206 of the controller 20 (S206A-e).
  • the switch state change unit 206 of the controller 20 designates the switch notified in S206A-e and the flow entity group to be set, and instructs the flow entity setting unit 202 of the controller 20 to set the flow entity (S206B-a). ).
  • the flow entity setting unit 202 of the controller 20 instructs the switch group specified in S206B-a to set the flow entity to be set (S206B-b).
  • the following c and d are processes of the switch 10.
  • the flow entity setting unit 104 records the specified flow entity in the flow entity table 102 of the switch (S206B-c).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the setting completion of the flow entity (S206B-d).
  • the following e is a process of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the reception of all the flow entity setting completions specified in S206B-a, and notifies the switch state changing unit 206 of the completion of the flow entity setting (S206B-e).
  • the switch state changing unit 206 of the controller 20 designates the switch and the flow entity group (see FIG. 3) recorded in the path configuration information searched in S204, and deletes the flow entity to the flow entity setting unit 202 of the controller 20.
  • An instruction is given (S206C-a).
  • the flow entity setting unit 202 of the controller 20 designates the flow entity to be deleted and instructs the deletion to the switch group designated in S206C-a (S206C-b).
  • the following c and d are processes of the switch 10.
  • the flow entity setting unit 104 deletes the designated flow entity from the flow entity table 102 of the switch (S206C-c).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the completion of deletion of the flow entity (S206C-d).
  • the following e and f are processes of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the reception of the completion of deletion of all the flow entities designated in S206C-b, and notifies the switch state changing unit 206 of the completion of deletion of the flow entities (S206C-e).
  • the switch state changing unit 206 of the controller 20 deletes the corresponding route configuration information from the effective route recording unit 203 (S206C-f). More specifically, the switch state changing unit 206, from the route management table (see FIG. 3) of the effective route storage unit 203, includes route configuration information including a detour switch (a set of switch identification information and a flow entity), and the route Delete the route management table entry that points to the configuration information.
  • route configuration information including a detour switch (a set of switch identification information and a flow entity), and the route Delete the route management table entry that points to the configuration information.
  • the switch state changing unit 206 of the controller 20 registers the flow entity generated in the process A (new route calculation) of S206 as new route configuration information in the effective route recording unit 203.
  • the switch state changing unit 206 points the route configuration information registered in the valid route recording unit 203 to the pointer to the route configuration information of the entry in the route management table that points to the corresponding route configuration information in the valid route recording unit 203. Change to
  • a new route is set in the process B (setting a new route) in S206, and the old route is deleted in the process C (deleting the old route) in S206.
  • the new route and the old route before the deletion are valid, so that a plurality of OUTPUTs (OUTPUTs in a plurality of interfaces of the switch) exist by the switch. Packets are transmitted in duplicate on both of these routes.
  • detour tunnel
  • the administrator designates a switch and instructs the controller.
  • an example of bypassing the switch 4 of FIG. Controls whether or not the tunnel specification is used by using the MAC destination address.
  • a local address is used as the MAC address group for passing through the tunnel. If the 0x02 bit of the first octet of the MAC address is ON, it is a local address.
  • the administrator designates a switch (switch 4) and instructs the controller to bypass (S301)
  • the switch state changing unit 206 of the controller 20 receives a detour instruction by designating a switch from the administrator (S302).
  • the switch state changing unit 206 of the controller 20 searches the topology information 204 for a switch adjacent to the switch designated in S301 (S303).
  • the switch entry designated in S301 is deleted from the topology information 204 (S304).
  • the switch state changing unit 206 of the controller 20 searches the effective path storage unit 203 for path configuration information using the designated switch 4 (S306).
  • the switch state changing unit 206 notifies the administrator of the completion of the detour (S309).
  • the switch state changing unit 206 of the controller 20 determines an identification MAC address for passing through the tunnel to be used (S305A-a).
  • the switch state change unit 206 of the controller 20 designates the selected switch pair and the MAC address determined in S305A-a, and causes the route calculation unit 205 of the controller 20 to calculate a tunnel (S305A-b).
  • the route calculation unit 205 of the controller 20 calculates a route using the target switch pair as an end point using the topology information (S305A-c).
  • the route calculation unit 205 of the controller 20 generates a tunnel flow entity to be set in each switch of the route based on the route calculated in S305A-c and the MAC address determined in S305A-a (S305A-d). .
  • the route calculation unit 205 of the controller 20 notifies the switch state change unit 206 of the controller 20 of the switch generated in S305A-d and the flow entity group to be set (S305A-e).
  • the switch state changing unit 206 of the controller 20 stores the switch as the tunnel start point, the switch as the end point, and the action for the switch as the start point (S305A-f).
  • the switch state change unit 206 of the controller 20 designates a flow entity group to be set for a switch other than the start switch among the switches notified in S305A-e, and the flow entity setting unit 202 of the controller 20 specifies the flow entity group. Setting is instructed (S305B-a).
  • the flow entity setting unit 202 of the controller 20 instructs the switch group designated in S305B-a to set the flow entity to be set (S305B-b).
  • the following c and d are processes of the switch 10.
  • the flow entity setting unit 104 records the specified flow entity in the flow entity table 102 of the switch (S305B-c).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the setting completion of the flow entity (S305B-d).
  • the following e is a process of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the reception of all the flow entity settings instructed in S305B-a, and notifies the switch state changing unit 206 of the flow entity setting completion (S305B-e).
  • the switch state changing unit 206 of the controller 20 searches the path configuration information for a pair used in the adjacent switch group selected in S303 of FIG. 18 (S308A-a).
  • the switch state changing unit 206 of the controller 20 generates a flow entity including the set flow entity rule stored for the switch serving as the starting point of the path configuration information and the starting point action (S308A-b).
  • the switch state changing unit 206 of the controller 20 stores the rule of the flow entity that has been set and the MAC destination address stored for the switch that is the end point of the path configuration information, in the path management table (see FIG. 3), the flow entity including the action for changing to the MAC destination address is generated (S308A-c).
  • the switch state changing unit 206 of the controller 20 designates the flow entity generated in S308A-b for the switch as the starting point, and instructs the flow entity setting unit 202 of the controller 20 to set the flow entity (S308A-d). .
  • the flow entity setting unit 202 of the controller 20 instructs the end point switch to set the flow entity to be set to the switch designated in S308A-c (S308A-e).
  • the following f and g are processes of the switch 10.
  • the flow entity setting unit 104 records the specified flow entity in the flow entity table 102 of the switch (S308A-f).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the setting completion of the flow entity (S308A-g).
  • the following h is processing of the controller 20.
  • the flow entity setting unit 202 of the controller 20 waits for the completion of the setting of the flow entity designated in steps S308A-d and e (S308A-h).
  • the switch state changing unit 206 of the controller 20 designates the flow entity set in the switch as the starting point recorded in the path configuration information from the switch as the starting point, and the flow entity setting unit 202 of the controller 20 The deletion of the entity is instructed (S308B-a).
  • the flow entity setting unit of the controller 20 instructs the switch designated in S308B-a to delete the designated flow entity (S308B-b).
  • the following c and d are processes of the switch 10.
  • the flow entity setting unit 104 deletes the specified flow entity from the flow entity table of the switch (S308B-c).
  • the flow entity setting unit 104 of the switch 10 notifies the controller 20 of the completion of deletion of the flow entity (S308B-d).
  • the following e is a process of the controller 20.
  • the flow entity setting unit 202 of the controller 20 notifies the switch state changing unit 206 of the completion of deletion of the flow entity (S308B-e).
  • the switch that is the start point of the tunnel directs the packet to the tunnel.
  • An OUTPUT that connects the flow entity action to the next switch in the tunnel; -Set the action to change the MAC destination address of the packet header to the tunnel MAC address, -Delete the old flow entity.
  • the switch at the end of the tunnel Add a flow entity consisting of an action that changes the MAC destination address in the packet header.
  • ⁇ Tunnel flow entity> An example of a detour (tunnel) flow entity will be described as an example.
  • the adjacent switch of the switch 4 includes the switch 1, the switch 2, the switch 5, and the switch 6.
  • the tunnel is between switch 1 and switch 2.
  • the route is switch 1 ⁇ switch 3 ⁇ switch 2. Note that two actions are set for the switch 1 at the starting point, and these two actions are defined by the flow entities 1 and 2, but it goes without saying that a plurality of actions may be set for one flow entity. is there.
  • the flow entity of this route (tunnel) is as follows. For convenience of description, the flow entities constituting the route are represented by a list expression. However, this is only for the purpose of description, and the flow entities constituting the route (such as the table structure, the linear list, etc.) The data structure of the flow entity group) is arbitrary.
  • the MAC destination address of the packet header that the switch 1 outputs to the interface 2 is changed to the MAC address 1 (local address) for the tunnel.
  • SET_DL_DST updates the MAC destination address of FIG. 26 is set.
  • the default rule is a rule that has already been set as a flow entity rule.
  • the switch 3 in the tunnel if the MAC destination address in the header of the input packet matches the tunnel MAC address 1 as a rule of the flow entity, it is forwarded.
  • the destination address of the header of the packet input to the switch 2 via the tunnel from the switch 1 to the switch 3 is changed from the MAC address 1 for the tunnel to the original MAC destination address. It has returned to.
  • SET_DL_DST updating MAC destination address: original MAC address
  • the original MAC destination address the MAC destination address stored in the packet header information of the route management table (see FIG. 3) of the effective route storage unit 203 is used.
  • the action of the flow entity of the switch 1 that is the start point of the tunnel changes the destination MAC address of the packet header that the switch 1 outputs to the interface 2 to the MAC address 2 (local address) for the tunnel.
  • SET_DL_DST updates the MAC destination address of FIG. 26 is set.
  • the packet is forwarded.
  • the values set in each field of the switch information and packet header information in the route management table are as follows.
  • the network has the configuration shown in FIG.
  • Switch information Packet header information MAC source address: MAC address of node A MAC destination address: MAC address of node D Protocol: TCP Source IP address: IP address of node A Destination IP address: IP address of node node D Source port number: Set value Destination port number: Set value
  • set value represents a value that was already set before the change of the flow entity.
  • the flow entity means adding the flow entity to the flow entity table 102 of the switch 10.
  • the flow entity (deletion) means deleting the flow entity from the flow entry table of the switch 10 and deleting it from the path configuration information in the valid path storage unit 203 of the controller 20.
  • ⁇ Detour cancellation> an operation after detour release (after the detour switch is restored) will be described.
  • the controller 20 adds a usable switch (for example, the switch 4 designated as the detour switch) to the topology information 204. It is not essential to change the route after the detour is released.
  • the tunnel route created for detouring must be -There is no route configuration information that uses the detour tunnel, ⁇ After all the route configuration information that uses the detour tunnel is deleted, Are deleted from the effective path storage unit 203.
  • FIG. 23 is a diagram for explaining another embodiment of the present invention.
  • the flow entity setting unit 202 has a function of deleting route configuration information from the effective route storage unit 203.
  • the flow entity becomes invalid if no packet that matches the rule arrives for the period specified by the system.
  • the route configuration information on the route management table (see FIG. 3) in the valid route storage unit 203 and the related entries in the route management table are deleted. The procedure in this case is shown below.
  • the switch flow entity setting unit 104 deletes the corresponding flow entity from the flow entity table 102.
  • the flow entity setting unit 104 of the switch notifies the flow entity setting unit 202 of the controller 20 that the deleted flow entity is specified and the flow entity becomes invalid.
  • the flow entity setting unit 202 of the controller 20 searches the effective path storage unit 203 for path configuration information in which the corresponding flow entity is used.
  • the flow entity setting unit 202 of the controller 20 stores the corresponding route configuration information.
  • the flow entity setting unit 202 of the controller 20 receives an entry (switch information, packet header) from the effective route storage unit 203 on the route management table (see FIG. 3) having the corresponding route configuration information and a pointer to the corresponding route configuration information. Delete information and pointer as one entry).
  • the flow entity setting unit 202 of the controller 20 is 5.
  • the flow entity corresponding to the switch is designated to each switch 10 based on the path configuration information stored in step S5, and the deletion of the flow entity is instructed.
  • the switch by calculating and setting a route that does not pass through the switch instructed to be bypassed, the switch can be bypassed and the switch can be maintained. Further, by detouring the switch, it is possible to shift the route, etc., thereby realizing low power consumption. That is, operation at low power consumption is possible at night and the like.
  • route calculation can be speeded up.
  • routes may be set so as to reduce the number of affected flows. In this case, the number of flows to be reset at the time of detouring can be reduced.
  • the route may be set so as to reduce the number of switches that change the flow during recalculation of the bypass route.
  • the description has been given based on an example in which one switch (switch 4) is designated as a bypass switch in the network of FIG.
  • the node includes any switch (L2 / L3 switch), a router, or the like whose flow is controlled by the controller in addition to the switch (OFS) of the above embodiment.
  • the controller 20 of the above-described embodiment can also be realized as a dedicated server.
  • the switch 10 in addition to the above-mentioned OFS (OpenFlow Switch), a router in an IP network, an MPLS switch in an MPLS (Multi-Protocol Label Switching) network. This can be realized with a node such as
  • the present invention can be applied to any network in which the controller centrally manages the nodes in the network.
  • Non-Patent Documents 1 and 2 are incorporated herein by reference.
  • the embodiments and examples can be changed and adjusted based on the basic technical concept.
  • Various combinations or selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
  • switch 10 switch (OFS) 20 controller 30 node 101 packet processing unit 102 flow entity table 103 packet notification unit 104 flow entity setting unit 201 packet processing unit 202 flow entity setting unit 203 effective path storage unit 204 topology information 205 path calculation unit 206 switch state change unit 207 path cache

Landscapes

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

Abstract

 迂回が指示されたノードを通らない経路を計算し設定することで該ノードを迂回し、該ノードの保守等を可能とする。コントローラ(20)と、コントローラ(20)によってフローの制御が行われる複数のノード(10)と、コントローラ(20)は、迂回ノードに対してノードのネットワーク構成を規定するトポロジー情報から迂回ノードを除き、迂回ノードを通らない新経路を計算し、経路を形成するノードに対して、ノードでのフローに対する動作を規定したフロー情報を生成し、経路上のノードにフロー情報を設定する。

Description

ネットワークシステムとコントローラと方法とプログラム
[関連出願についての記載]
 本発明は、日本国特許出願:特願2009-232306号(2009年10月6日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、ネットワークシステムとコントローラと方法とプログラムに関する。
 プログラマブル化ネットワークアーキテクチャのさきがけともいわれるOFS(Open Flow Switch)は現在、例えば大学キャンパスや企業ネットワーク等において実験・実用化研究が行われている。はじめにOFSを概説しておく。スイッチは、パケットのルックアップとフォアワーディングを行うフローテーブルと、コントローラとの通信用のセキュアチャネルを備えている。コントローラはオープンフロー(Open Flow)プロトコルを用いてセキュアチャネル上でスイッチと通信し、例えばAPI(Application Program Interface)レベルでフローを制御する。一例として、スイッチに最初のパケット(first packet)が到着すると、該スイッチは、該パケットのヘッダー情報でフローテーブルを検索する。マッチしない場合(ミスヒット)、スイッチは、当該パケットをコントローラにセキュアチャネルで転送(forward)する。コントローラは、当該パケットの送信先、送信元情報に基づいて、コントローラが管理するネットワーク・トポロジー情報から、該パケットの経路を決定する。コントローラは、決定した経路に基づいて、経路上の各スイッチに対してそれぞれのフローテーブルを設定する。2番目以降のパケットは、スイッチのフローテーブルにヒットし、コントローラへは転送せず、直接、フローテーブルのエントリで規定される次のスイッチに転送される。以下の概説も含め、OFSの詳細は、例えば非特許文献1、2等が参照される。
 スイッチのフローテーブルは、例えば図19に示すように、パケットヘッダーと照合するルール(Rule)と、フローに対する処理を定義したアクション(Action)と、フロー統計情報(Statistics)をフロー毎に有する。パケットヘッダーと照合するルール(Rule)には、正確な値(exact)、及びワイルドカード(wild card)が用いられる。アクション(Action)は、ルールとマッチしたパケットに適用するアクションである。フロー統計情報は、アクティビティカウンタともいい、アクティブエントリ数、パケットルックアップ数、パケットマッチ数、フロー単位に、受信パケット数、受信バイト数、フローがアクティブな期間、ポート単位で受信パケット、送信パケット、受信バイト、送信バイト、受信ドロップ、送信ドロップ、受信エラー、送信エラー、受信フレームアラインメントエラー、受信オーバーランエラー、受信CRC(Cyclic Redundancy Check)エラー、コリジョン数を含む。スイッチに入力されたパケットはフローテーブルのルールとのマッチ(照合)が行われ、ルールにマッチするエントリが見つかった場合、マッチしたエントリのアクションが当該パケットに対して施される。マッチするエントリが見つからなかった場合、該パケットはセキュアチャネルを介してコントローラに転送され、コントローラは、パケット経路を決定したフローエントリをスイッチへ送信する。スイッチでは、該スイッチのフローエントリに対して、フローエントリの追加、変更、削除を行う。
 パケットのヘッダーの所定のフィールドがスイッチのフローテーブルのルールとの照合(マッチ)に用いられる。マッチ対象の情報は、入力ポート(Ingress port)、MAC(Media Access Control)、DA(MACディスティネーションアドレス)、MAC SA(MACソースアドレス)、Ehernetタイプ(TPID)、VLAN ID(Virtual LAN(Local Area Network) ID)、VLAN TYPE(優先度)、IP SA(IPソースアドレス)、IP DA(IPディスティネーションアドレス)、IPプロトコル、Source Port(TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ソースポート、あるいは、ICMP(Internet Control Message Protocol Type)、Destination port(TCP/UDPディスティネーションポート、あるいは、ICMP Code)を含む(図25参照)。
 図26に、アクション名とアクションの内容を例示する。OUTPUTは、指定ポート(インタフェース)に出力する。SET_VLAN_VIDからSET_TP_DSTは、パケット・ヘッダーのフィールドを修正するアクションである。また、スイッチは、物理ポートと以下の仮想ポートへパケットを転送(Forward)する。図27に仮想ポートを例示する。IN_PORTはパケットを入力ポートに出力する。NORMALはスイッチがサポートする既存の転送パスを用いて処理する。FLOODはパケットが入来したポートを除く通信可能状態(Forwarding状態)の全てのポートに転送する。ALLはパケットが入来したポートを除くポートに転送する。CONTROLLERはパケットをカプセル化しセキュアチャネルを介してコントローラに送信する。LOCALはパケットをスイッチ自身のローカルネットワークスタックに送信する。アクションが指定されないフローエントリにマッチしたパケットはドロップ(廃棄)される。なお、本明細書では、フローエントリのルール、アクション、フロー統計情報からなるフロー情報を「フローエンティティ」という。本明細書では、フロー統計情報は発明の主題として扱われないため、フローエンティティとしてフロー統計情報は省略され、単に、ルール、アクションが示される。
Nick McKeownその他、"OpenFlow: Enabling Innovation in Campus Networks", March 14, 2008 <インターネット URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf> "OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol 0x98) July 20, 2009 <インターネット URL: http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
 上記非特許文献1及び2の全開示内容はその引用をもって本書に繰込み記載する。
 以下の分析は、本発明によってなされたものである。
 上記OFSのようにコントローラにより各ノードを制御して経路を決定するネットワークにおいて、障害発生、保守等のために任意の当該ノードが使用できなくなる場合、該ノードを迂回させた経路を設定可能とするシステムの実現が望まれる。また、当該ネットワーク中で所定のノードを迂回させることで、経路の片寄せ等を行い、低消費電力化の実現が可能となる。本願発明者達は、かかるシステムを実現する発明を今回創案したので、以下に提示する。
 本発明によれば、コントローラと、前記コントローラによってフローの制御が行われる複数のノードと、を備え、前記コントローラは、迂回を指示されたノードに対してノードのネットワーク構成を規定するトポロジー情報から前記ノードを除き、
 前記ノードを通らない経路を計算し、
 前記経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、
 前記経路上のノードに前記フロー情報を設定するネットワークシステムが提供される。
 本発明によれば、複数のノードに対してフローの制御を行うコントローラが、迂回を指示されたノードに対してノードのネットワーク構成を規定するトポロジー情報から前記ノードを除き、
 前記ノードを通らない経路を計算し、
 前記経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、
 前記経路上のノードに前記フロー情報を設定するネットワーク制御方法が提供される。
 本発明によれば、複数のノードに対してフローの制御を行うコントローラであって、迂回を指示されたノードに対してノードのネットワーク構成を規定するトポロジー情報から前記ノードを除き、
 前記ノードを通らない経路を計算して有効経路記憶部に記憶し、
 前記経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、
 前記経路上のノードに前記フロー情報を設定するコントローラが提供される。
 本発明によれば、複数のノードに対してフローの制御を行うコントローラに、迂回を指示されたノードに対してノードのネットワーク構成を規定したトポロジー情報から、前記ノードを除き、
 前記ノードを通らない経路を計算して有効経路記憶部に記憶し、
 該経路を形成するノードのフロー情報を生成し、
 該経路上のノードに前記フロー情報を設定する、処理を実行させるプログラムが提供される。また本発明によれば、該プログラムを記録したコンピュータ読み出し可能な記録媒体が提供される。
 本発明によれば、迂回が指示されたノードを通らない経路を計算し設定することで該ノードを迂回し、該ノードの保守等を行うことができる。また本発明によれば、ノードを迂回させることで、経路の片寄せ等を行い、低消費電力化等を実現可能としている。
本発明の一実施形態のネットワークシステムの構成の一例を示す図である。 本発明の一実施形態のコントローラとスイッチの構成例を示す図である。 本発明の一実施形態のコントローラにおける有効経路情報記憶部の経路管理テーブルと経路構成情報の一例を示す図である。 本発明の一実施形態のスイッチのフローエンティティテーブルの一例を示す図である。 本発明の別の実施形態のコントローラとスイッチの構成の一例を示す図である。 ネットワーク構成の一例を示す図である。 本発明の一実施形態におけるFirst Packet受信時の動作を示す図である。 本発明の一実施形態のFirst Packet受信時の動作を説明する図である。 図7の経路算出手順を示す図である。 本発明の一実施形態の第1の迂回手順を示す図である。 図10のS106の経路削除の手順を示す図である。 図10のS106の経路の再設定の手順を示す図である。 図12のS106B-cの変形例の手順を示す図である。 本発明の一実施形態の第2の迂回手順を示す図である。 図14のS206の新経路算出の手順を示す図である。 図14のS206の新経路設定の手順を示す図である。 図14のS206の旧経路削除の手順を示す図である。 本発明の一実施形態の迂回(トンネル)設定の手順を示す図である。 図18のS305のトンネル用フローエンティティの算出の手順を示す図である。 図18のS305のトンネル用フローエンティティの設定の手順を示す図である。 図18のS308のトンネルとの接続手順を示す図である。 図18のS308の始点の旧経路の削除の手順を示す図である。 本発明のさらに別の実施形態のコントローラとスイッチの構成を示す図である。 OFSのフローエンティティを説明する図である。 パケット・ヘッダーのマッチフィールドを説明する図である。 フローエンティティのアクション(Field Modify)を例示する図である。 フローエンティティのアクション(仮想ポート)を例示する図である。
 本発明の実施形態について説明する。本発明に係るシステムにおいては、コントローラによってフローの制御が行われる複数のノード(図1のスイッチ10)と、該コントローラと、を備え、該コントローラ(20)は、迂回を指示されたノードに対してノードのネットワーク構成を規定するトポロジー情報から前記ノードを除き、前記ノードを通らない経路を計算し、前記経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、前記経路上のノードに前記フロー情報を設定する。なお、以下の実施形態では、コントローラ(20)によってフローの制御が行われるノードを、スイッチとして説明するが、本発明においてノードはかかる構成に制限されるものでないことは勿論である。
<ネットワークシステム構成>
 図1は、本発明が適用されるネットワークの一例を示す図である。図1において、スイッチ(OFS:Open Flow Switch)10は、コントローラ(Controller)20から設定されたフロー情報(ルール+アクションを含む、以下、「フローエンティティ」という)を保持し、到着したパケットに対して該当するルールをスイッチ10が保持するフローエンティティテーブル(フローテーブル)から検索し、一致した場合、アクションを実行する。スイッチ(OFS)10は、到着したパケットがフローエンティティテーブルのルールのいずれにも一致しない場合、コントローラ20に通知する(first packetの通知)。フローには優先度があり優先度が高いものが有効となる。コントローラ20は、スイッチ(OFS)10から送られてきたパケットに基づき、適切な経路を算出してフローを生成し、スイッチ群にフローを設定する。なお、図1において、スイッチ(OFS)10の接続構成は、一例でしかなく、FatTree、HyperCube等、ノード等との経路が複数存在すればよい。なお、図1において、ノード30は、複数のスイッチ10に対してフローの制御を行うコントローラ20からは、フローの制御は受けないノードである。ノード(Node)30は、サーバ、ロードバランサ、ファイアウォール、ストレージ(NAS(Network Atatched Storage)、SAN(Storage Area Network)、クラスタストレージisilon等分散ストレージのノード等)、2つ以上のネットワークインタフェースを持つ。ただし、ノード30はコントローラ20と通信する機能を備えた構成としてもよいことは勿論である。また、図1では簡単のため、1台のコントローラ20でスイッチ10を制御する構成として記載されているが、複数のコントローラがそれぞれ配下の1つ又は複数のスイッチを制御する構成としてもよいことは勿論である。
 本発明の実施形態において、コントローラ20は、スイッチ10の接続状態をトポロジー情報として保持する。
 また、コントローラ20は、パケットに対して設定した経路の情報を有効経路情報として保持する。すなわち、スイッチ10に入力したパケットのヘッダー情報がフローエンティティのルールとマッチしないパケット(first packet)に対して、コントローラ20はフローを決定し、該フロー上のスイッチに対して、フローエンティティを送信して設定する。コントローラ20は、該フローに対応する経路情報を有効経路情報として管理保持する。
 本発明の実施形態における迂回手順を以下に説明する。図1において、あるスイッチ(OFS)10を迂回する場合、コントローラ20は、迂回すべきスイッチ(「迂回スイッチ」という)を通過する全ての経路(旧経路)に対して、該迂回スイッチを通過しない新経路を計算し、該新経路上のスイッチに対して、フローエンティティを設定する。以下に迂回手順の概略を説明する。
<迂回1>
1. コントローラ20は、迂回スイッチが指定されると、コントローラ20が管理保持するトポロジー情報から指定された当該迂回スイッチを削除する。
2. コントローラ20は、指定された迂回スイッチを用いた全ての経路について、該迂回スイッチを通過しない迂回経路(新経路)を再計算する。コントローラ20は新経路を形成するスイッチごとのフローを決定し、新経路情報を、有効経路情報として記憶する。
3. コントローラ20は、決定したフローに対応したフローエンティティを、該当するスイッチに設定する。
4. コントローラ20は、旧経路(迂回スイッチを通過する経路)を有効経路情報から削除する。
5. コントローラ20は、迂回準備の完了を通知する。
 本実施形態では、迂回すべきスイッチの情報を受けたコントローラ20は、迂回すべきスイッチをトポロジー情報から削除し、迂回経路を計算する時に、当該スイッチを含まないトポロジー情報を使用する。
 あるいは、パケットロスを起こさないように、新旧の経路を一時的に並存させ、冗長網化してからパケットを複製させるようにしてもよい。この場合の迂回手順は以下のようになる。
<迂回2>
1. コントローラ20は、迂回すべきスイッチの情報を受けると、トポロジー情報から迂回すべきスイッチ(迂回スイッチ)を取り除く。
2. コントローラ20は、指定された迂回スイッチを用いた全ての経路について、当該スイッチを通過しない迂回経路(新経路)を計算する。各経路を形成するスイッチごとのフローを決定する。
3. コントローラ20は、計算したフローを該当するスイッチにフローエンティティを設定する。新旧両経路が分岐する先頭のスイッチでパケットを新旧両経路に送るように設定し、新経路情報を有効経路情報として記憶する。
4. コントローラ20は、旧経路を有効経路情報から削除する。コントローラ20は、旧経路を削除する。その際、
 ・旧経路の先頭のスイッチから、順にフローを削除する。
 ・先頭のスイッチからフローを削除した段階で、前記先頭のスイッチにおけるパケットのレプリカ設定を解除する(フローエンティティのアクションの設定変更)。
5. 迂回準備完了を通知する。
 また、迂回経路として、トンネル(同位又は下位レイヤのデータをカプセル化してプロトコルの終端を行わず、透過的に伝送させる)を利用してもよい。
 コントローラ20は、迂回すべきスイッチの隣接スイッチ間でトンネルを作成し、経路の隣接スイッチ以外に設定されたフローはそのまま使用する。そして、隣接スイッチに設定されたフローを、前記トンネルに誘導するフローに変更することで迂回経路を形成する。トンネルによる迂回は概略以下のように行われる。
<トンネル>
1. コントローラ20は、迂回スイッチの隣接スイッチa、b同士を端点とする経路を算出する。
2. コントローラ20は、1で作成した隣接スイッチaと隣接スイッチbを端点とした経路を経由するスイッチ用に入出力ポートにマッチングするフローを作成する。
3. コントローラ20は、2で作成したフローの該当するスイッチをトンネルとして設定する。このとき、トンネルを構成するスイッチには、好ましくは、他のスイッチよりも優先度を低い値に設定する。隣接スイッチ以外に設定されたフローはそのまま使用する。
4. コントローラ20は、隣接スイッチaから迂回スイッチを経由し隣接スイッチbに送るフローについて、1で作成した隣接スイッチaと隣接スイッチbを端点とした前記経路に誘導するように隣接スイッチaと隣接スイッチbにフローを設定する。
 本発明の一実施形態について説明する。図2を参照すると、スイッチ10は、制御するコントローラ20との間で通信が可能とされる。コントローラ20は、1つ又は複数のスイッチ10を制御する。
<コントローラの構成例>
 コントローラ20は、スイッチ10からのパケットを受信するパケット処理部201と、スイッチ10に対してフローエンティティを設定するフローエンティティ設定部202と、経路構成情報(経路を作成する契機となったパケットを入力するスイッチ情報、該パケットのヘッダー情報、該経路を構成するスイッチ識別情報とそのフローエンティティ)を記憶する有効経路記憶部203と、ノード、スイッチのネットワーク・トポロジーを記憶するトポロジー情報204と、経路を算出する経路算出部205と、スイッチの状態を変更するスイッチ状態変更部206と、を備えている。
<スイッチの構成例>
 スイッチ10は、パケット処理部101と、フローエンティティテーブル(「フローテーブル」ともいう)102と、最初のパケットをコントローラ20に通知するパケット通知部103と、コントローラ20から指示されたフローエンティティの設定を行うフローエンティティ設定部104とを備えている。スイッチ10としては、レイヤ2スイッチや、レイヤ3スイッチ、ルーター等、コントローラによりスイッチング機能を制御できるものであれば適用可能である。
 フローエンティティテーブル102のフローエンティティは、図24に示したように、ルール、アクションを含む。ルールは、
・インプットインタフェース(ポート)
・MACソースアドレス
・MACディスティネーションアドレス
・VLAN(Virtual Local Area Network) ID
・TYPE
・IPソースアドレス
・IPディスティネーションアドレス
・プロトコル(UDP(User Datagram Protocol)/TCP(Transmission Control Protocol)/ICPM(Internet Control Message Protocol))、ICMPの場合ICMPタイプ、ICMPコード、TCP/UDPの場合、ソースポート、ディスティネーションポート
を含む。
アクションは、
・アクションのタイプ、
・出力(OUTPUT)、
・パケット・ヘッダーのフィールドの変換(Field Modify)、
を含む。ヘッダーのフィールドの変換は、図27に示したものがある。
 ルールは、全てのフィールドに値を指定しても良いし、個々のフィールド(欄)をワイルドカード(wildcard)と指定し、当該wildcardが指摘されたフィールドの値を、フローエントリとのマッチング時に、無視するよう指定しても良い(wildcardが指定された欄は常にマッチ)。IPソースアドレスとIPディスティネーションアドレスは、wildcardの指定時に、プレフィックス(Prefix)長(IPアドレスのネットワークアドレス部の長さ)を指定してもよい。
 アクションがOUTPUTの場合、出力インタフェース(ポート)を含む(図26参照)。
 アクションがヘッダーのフィールドの変換の場合、変更するフィールド、変更する値を含む。
 アクションが、VLAN tag(イーサネット(登録商標)フレーム中にtagという識別子を挿入)の変更の場合、変更だけでなく付加、削除がある(図26のSET_VLAN_VID、SET_VLAN_VID_PCP、STRIP_VLAN参照)。
・付加の場合、付加するVLAN tagの値、
・変更の場合、変更するVLAN tagの値
が指定される。1つのフローエンティティは1つ又は複数のアクションを含む。なお、フローエンティティにアクションが指定されない場合、該アクションが指定されないフローエントリにマッチしたパケットは、ドロップ(廃棄)するようにしてもよい。
<有効経路記憶部>
 次に、有効経路記憶部203で記憶する情報を説明する。図3は、有効経路記憶部203に格納されるデータのデータ構造の一例を示す図である。
<経路管理テーブル>
 経路管理テーブルは、経路ごとの経路構成情報を管理するテーブルである。経路管理テーブルには1エントリ毎に、1つの経路が対応し、したがって該1つの経路の経路構成情報が対応する。経路管理テーブルの1つのエントリには、経路を形成し、コントローラ20が該経路を新たに作成する契機となったパケット(First Packet)が入力されたスイッチの情報(スイッチID、インタフェース)と、該パケットのヘッダー情報と、当該経路に対応する経路構成情報をさすポインタを有する。パケットのヘッダー情報に関して、ソース及びディスティネーションのIPアドレスのみを記録するようにしてもよい。
<経路構成情報>
 経路構成情報は、経路ごとに、経路を構成するスイッチ群(経路の始点から経路の中間点、終点)の各スイッチについて、スイッチの識別情報と該スイッチに設定されるフローエンティティとの組を有する。経路がn個のスイッチから構成される場合、スイッチの識別情報と該スイッチに設定されるフローエンティティとの組をn組有し、これが、経路管理テーブルの該当するエントリのポインタによってポイントされる。経路構成情報を参照することで、現在有効とされる経路がいかなるスイッチから形成されているかがわかる。フローエンティティはルールとアクションを含む(フロー統計情報を含んでもよい)。経路構成情報はテーブル構成としても良いし、スイッチ情報とフローエンティティの組が、経路上の次のスイッチに対応するスイッチ情報とフローエンティティの組をポイントするポインタを備えた線形リスト(リンクドリスト)として構成しても良い。なお、経路算出部205で新たな経路が算出された場合、スイッチ状態変更部206によって有効経路記憶部203の経路管理テーブルに経路構成情報が登録され、経路削除等、無効化された経路は、スイッチ状態変更部206によって有効経路記憶部203から削除される。
<フローエンティティテーブル>
 図4は、スイッチ10に記憶されるフローエンティティテーブル102の構成例を示す図である。フローエンティティテーブルは、コントローラ20から指示されたフローエンティティをスイッチ10が記憶保持するテーブルである。n本の異なるフローがスイッチ10を通るとき、スイッチ10には、各フローに対応したn個のフローエンティティを保持する。
 なお、図4では、フローエンティティ=|ルール|アクション|
 とされ、1つのフローエンティティが1つのアクションを含む構成として例示されているが、本実施形態において、1つのフローエンティティが複数のクションを含む構成、すなわち、
 フローエンティティ=|ルール|アクション1|アクション2|・・・|アクションm|
 (ただし、mは2以上の所定の整数)
 としてもよいことは勿論である。
<経路キャッシュ>
 図5は、本発明の別の実施形態の構成を示す図である。図5を参照すると、コントローラ20は、図2の構成に加え、経路キャッシュ207を備えている。コントローラ20のこれ以外の構成、スイッチ10は、図2と同一である。経路キャッシュ207には、経路情報がキャッシュされる。経路キャッシュ207には、
 ・始点となるスイッチ、ノード、
 ・終点となるスイッチ、ノード、
 ・経由するスイッチ群の識別子、
が、キャッシュの1エントリとして格納される。
 本実施形態において、迂回が指示された時点で、迂回スイッチを用いた経路を経路キャッシュのエントリから削除する構成としてもよい。
 次に本発明の一実施形態について具体的なネットワークのトポロジーを例に説明する。
<ネットワーク・トポロジーの一例>
 図6は、ネットワーク・トポロジーの一例を示す図である。図6において、スイッチ1~8は、コントローラ(図示せず)により集中制御されている。A、B、C、Dは、スイッチ、サーバ、ストレージ、ロードバランサ、ファイアウォール、ルーター等、コントローラからパケットを転送するための制御を受けないノードである。図6のネットワーク構成のトポロジー情報の一例を以下の表1に示す。特に制限されないが、トポロジー情報のデータ構造として、表1の例では、端点(スイッチ)と、該端点の接続先とがテーブル形式で格納される。
Figure JPOXMLDOC01-appb-T000001
 各スイッチには、4つのインタフェース(ポート)が存在するものとし、各インタフェースに該当の装置が接続されている。スイッチの識別情報として、例えばスイッチを示す値と各スイッチに一意に割りつけられた識別子を用いる。
 表1から、スイッチ1は、インタフェース1、2、3でそれぞれノードA、スイッチ3、4と接続する。スイッチ2は、インタフェース1、2、3でそれぞれノードB、スイッチ3、4と接続する。スイッチ3、4はいずれも、インタフェース1、2、3、4でそれぞれスイッチ1、2、5、6と接続する。スイッチ5、6はいずれも、インタフェース1、2、3、4でそれぞれスイッチ3、4、7、8と接続する。スイッチ7は、インタフェース1、2、3でそれぞれスイッチ5、6、ノードCと接続する。スイッチ8は、インタフェース1、2、3でそれぞれスイッチ5、6、ノードDと接続する。ノードの識別情報は、例えばMACアドレスおよび、IPアドレスのいずれかあるいは両方を用いる。一つのノードに複数のMACアドレス、IPアドレスがあってもよい。
<パケット到着時の動作>
 実施形態におけるスイッチの迂回の前提として、スイッチにパケットが到着した時の動作を以下に説明する。
 スイッチ1に、ノードAからノードD宛のパケットが到着したものとする。そのパケット・ヘッダーの情報として、
・MACソースアドレスは、ノードAのMACアドレス、
・MACディスティネーションアドレスは、ノードDのMACアドレス、
・IPソースアドレスは、ノードAのIPアドレス、
・IPディスティネーションアドレスは、ノードノードDのIPアドレスが設定されている。
 なお、このパケット・ヘッダーにおいて、VLAN tagは使用される場合もあり、使用されない場合もあるが、ここでは説明を省略する。プロトコルは、TCP、UDPのいずれかが設定されている。ポート番号は任意の値が設定されているが、ここでは説明を省略する。
 まず、図6において、第1パケット(First Packet)がスイッチ1のインタフェース1にノードAからパケットが到着した場合の動作について図7の流れ図を参照して説明する。
1. スイッチ1のインタフェース1にノードAからパケットが到着する(S1)。
2. スイッチ1のパケット処理部101は、S1で到着したパケットにルールが一致するフローエンティティがあるかをフローエンティティテーブル102内で検索する(S2)。なお、フローエンティティテーブル102は例えばCAM(Content Adressable Memory)として構成される。
3. 検索の結果、一致するものがあった場合(S3のYes)、S4へ移行し、一致するものがなかった場合(S3のNo)、S6へ移行する。
4. スイッチ1のパケット処理部101は、一致したフローエンティティに指定されたアクションを実行する(S4)。
5. アクション実行後、終了する(S5)。
6. スイッチ1のパケット処理部101はパケット通知部103に対して、到着したパケットと、到着したインタフェース(インタフェース1)を指定し、コントローラ20への通知を指示する(S6)。
7. スイッチ1のパケット通知部103は、S6で指定されたインタフェース情報とパケットをコントローラ20に通知する。以下の8.から16.は、コントローラ20の処理である。
8. コントローラ20のパケット処理部201は、スイッチ1から、パケットを受信する(S8)。
9. コントローラ20のパケット処理部201は、パケットを受信したスイッチと、パケットのヘッダーを指定し、経路算出部205に経路算出を指示する(S9)。
10. コントローラ20の経路算出部205は、パケット・ヘッダーのMACディスティネーションアドレスあるいはIPディスティネーションアドレスに一致する、トポロジー情報204中の接続先を持つスイッチを特定する(S10)。
11. コントローラ20の経路算出部205は、トポロジー情報204を用いて、S9で指定されたスイッチ(パケットを受信したスイッチ)と、S10で特定されたスイッチを端点とした、経路(どのスイッチ群を通過するか)を算出する(S11)。
12. コントローラ20の経路算出部205は、S11で算出した経路に基づき、経路の各スイッチに設定するフローエンティティを生成する(S12)。
13. コントローラ20の経路算出部205は、S12で生成したスイッチと、設定すべきフローエンティティ群を、コントローラ20のパケット処理部201に通知する(S13)。
14. コントローラ20のパケット処理部201は、S13で通知されたスイッチと設定すべきフローエンティティ群を経路構成情報とし、S9で受信した情報と、経路構成情報とのポインタから、経路管理テーブルのエントリを作成し、コントローラ20の有効経路記憶部203に記憶する(S14)。
15. コントローラ20のパケット処理部201は、S13で通知されたスイッチと設定すべきフローエンティティ群を指定し、コントローラ20のフローエンティティ設定部202にフローエンティティの設定を指示する(S15)。
16. コントローラ20のフローエンティティ設定部202は、S15で指示されたスイッチ群のそれぞれに設定すべきフローエンティティの設定を指示する(S16)。以下の17.18.はスイッチ10の処理である。
17. スイッチ10は、コントローラ20からフローエンティティの設定を指示されると、スイッチ10のフローエンティティ設定部104は、指定されたフローエンティティを、スイッチ10のフローエンティティテーブル102に記録する(S17)。
18. スイッチ10のフローエンティティ設定部104は、コントローラ20に対してフローエンティティの設定完了を通知する(S18)。以下の19、20はコントローラ20の処理である。
19. コントローラ20のフローエンティティ設定部202は、S16で指示した全てのフローエンティティ設定完了の受信を待ち、全てのフローエンティティ設定完了を受信すると、パケット処理部201に、フローエンティティの設定完了を通知する(S19)。
20. コントローラ20のパケット処理部201は、フローエンティティ設定部202からの完了通知を受け取ると、S8でパケットを受信したスイッチに対して、インタフェースと受信したパケットを返却する(S20)。以下は、スイッチ10の処理である。
 21. スイッチ10は、コントローラ20から返却されたパケットを受信すると、指定されたインタフェースからパケットを受信したものとしてパケット処理部101で再度処理を行う(S21)。
 なお、S11の算出には、ダイクストラ(Dijkstra)のアルゴリズム(最短経路決定アルゴリズム)等を用いる。
 また、S4で複数のフローエンティティにマッチした場合、複数のフローエンティティの全てのアクションを実行する。
 なお、図7に示した手順では、S20においてスイッチにパケット(First Pakcet)を送信し、作成した経路に従って転送させている(図8(A)参照)。
 しかしながら、図8(B)に示すように、コントローラ20から終端のスイッチ4に送出すべきインタフェースを指定してパケット(First Pakcet)を送信し、ノードに転送させるようにしてもよい。
 図6において、経路算出部205により算出される経路の例を下記に示す。
 ・ノードA→スイッチ1→スイッチ4→スイッチ6→スイッチ8→ノードD
<フローエンティティの例>
 図6の経路に対して設定されるフローエンティティの例を以下に示す。なお、本例では、ルールの指定されたフィールド以外はwildcardとしたが、全て指定しても良い。フローエンティティ群は、有効経路記憶部203の経路構成情報に関連付けて記録される(図3参照)。経路構成情報は、経路を構成する複数のスイッチの各々に対して、スイッチの識別子情報と、ルール、アクションを含むフローエンティティとの組が一つのエントリを構成する。前述したように、有効経路記憶部203には、経路を構成するスイッチの識別情報と該スイッチのフローエンティティの組は、テーブル構造、リスト構造で格納されるが、以下では、便宜上、リスト構造の表記を用いてフローエンティティを表す。
 (フローエンティティm スイッチn ルール(x)、アクション(y))
 は、m番目のフローエンティティにおいて、スイッチ識別情報がスイッチn、ルールがx、アクションがyのエントリを表し、フローエンティティ要素のリンクトリスト((フローエンティティ1)(フローエンティティ2)・・・(フローエンティティn))が、1つの経路の構成情報に対応している。スイッチnは図3のスイッチ識別情報に対応し、ルール(x)とアクション(y)が図3のルールとアクションを含むフローエンティティに対応し、フローエンティティmは図3の経路構成情報中のm番目のフローエンティティであることを表している。また、以下の表記では、1つのフローエンティティは、1つのアクション(y)を含む構成として例示されており、1つのスイッチにおいて、ルールが共通でアクションが異なるフローエンティティを、複数のフローエンティティとして並置しているが、これは、あくまで説明の容易化のためであり、1つのフローエンティティが1つのルール(x)と複数のアクションy1、y2・・・を含む構成としてもよいことは勿論である。
((フローエンティティ1 
   スイッチ1 
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース3))
 (フローエンティティ2 
   スイッチ4
   ルール(ディスティネーションIPアドレスD=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース4))
 (フローエンティティ3 
   スイッチ6
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース4))
 (フローエンティティ4 
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース3)))
 前記例は片道の設定であるが、往復の設定を行ってもよい。往復の場合の例を下記に示す。この場合、下記フローエンティティ群を有効経路記憶部203の経路構成情報として記録する。
((フローエンティティ1 
   スイッチ1 
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース3))
 (フローエンティティ2 
   スイッチ4
   ルール (ディスティネーションIPアドレスD=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース4))
 (フローエンティティ3 
   スイッチ6
   ルール (ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース4))
 (フローエンティティ4 
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT:インタフェース3))
 (フローエンティティ5 
   スイッチ8
   ルール(ディスティネーションIPアドレス=AのIPアドレス)
   アクション(OUTPUT:インタフェース2))
 (フローエンティティ6 
   スイッチ6
   ルール(ディスティネーションIPアドレス=AのIPアドレス)
   アクション(OUTPUT:インタフェース2))
 (フローエンティティ7 
   スイッチ4 
   ルール(ディスティネーションIPアドレス=AのIPアドレス)
   アクション(OUTPUT:インタフェース1))
 (フローエンティティ8 
   スイッチ1
   ルール(ディスティネーションIPアドレス=AのIPアドレス)
   アクション(OUTPUT:インタフェース1)))
<経路のキャッシング>
 図4に示した経路キャッシュ207を用いる例について説明する。図5の経路算出部205において、経路をキャッシングする場合について説明する。図7のS11は、図9に示すようになる。
1. 経路算出部205は、経路キャッシュ207から、始点・終点の両端点が一致する経路を検索する(S11-1)。
2. 経路算出部205は、検索の結果、一致するものがなかった場合(S11-2のNo)、指定された端点から経路を算出する(S11-3)。
3. 経路算出部205は、算出した経路と、計算に使用した端点をセットにして経路キャッシュ207に登録する(S11-4)。
4. 経路算出部205は、S11-3で算出した経路を算出経路とする(S11-5)。
5. 終了する。
6. 経路算出部205は、S11-1の検索の結果、一致するものがあった場合(S11-2のYes)、検索した経路を算出経路とする(S11-6)。
<迂回手順1>
 次に、本実施形態における迂回について説明する。管理者が、スイッチを指定してコントローラ20に指示を行う。本実施例では、図6のスイッチ4を迂回する例に即して説明する。図10は、本実施形態における迂回手順を示す流れ図である。図2、図6、図10を参照して、迂回手順を説明する。
1. 管理者はスイッチ(スイッチ4)を指定しコントローラ20に迂回を指示する(S101)。
2. コントローラ20のスイッチ状態変更部206は管理者からのスイッチを指定され迂回の指示を受け取る(S102)。
3. トポロジー情報から、S101で指定されたスイッチを削除する(S103)。
4. コントローラ20のスイッチ状態変更部206は、有効経路記憶部203から、指定されたスイッチ(スイッチ4)が使用された経路構成情報を検索する(S104)。スイッチ状態変更部206は、有効経路記憶部203の経路管理テーブル(図3参照)を検索し、スイッチ4が使用された経路構成情報があるか否かをチェックする。スイッチ4が使用された経路構成情報が複数ある場合には、スイッチ状態変更部206は該当する経路構成情報を抽出する。
5. S104の検索の結果、一致するものがあった場合、S106へ移行する。
6. S104の検索の結果、一致するものがなかった場合、終了する。
7. S104で検索した各経路構成情報に関して、経路の削除と、経路の再設定を行う(S106)。
8. スイッチ状態変更部206は、管理者に迂回完了を通知する(S107)。
<経路削除手順>
 図10のステップS106の経路の削除の手順について図11を参照して説明する。
a.コントローラ20のスイッチ状態変更部206は、図10のS104で検索された経路構成情報に記録されたスイッチ群とフローエンティティ群を指定し、コントローラ20のフローエンティティ設定部202にフローエンティティの削除を指示する(S106A-a)。
b.コントローラ20のフローエンティティ設定部202は、S106A-aで指示されたスイッチ群に対してそれぞれ削除すべきフローエンティティの削除を指示する(S106A-b)。以下のc、dはスイッチ10の処理である。
c.スイッチ10は、コントローラ20のフローエンティティ設定部202からフローエンティティの削除が指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブルから削除する(S106A-c)。
d.スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの削除完了を通知する(S106A-d)。以下のe、fはコントローラ20の処理である。
e.コントローラ20のフローエンティティ設定部202は、S106A-bで指示した全てのフローエンティティ削除完了の受信を待ち、スイッチ状態変更部206に対して、フローエンティティの削除完了を通知する(S106A-e)。
f.コントローラ20のスイッチ状態変更部206は、有効経路記録部203から、経路構成情報(図10のS104で検索された経路構成情報)を削除する(S106A-f)。より詳細には、スイッチ状態変更部206は、有効経路記憶部203の経路管理テーブル(図3参照)から、迂回スイッチを含む経路構成情報(スイッチ識別情報とフローエンティティの集合)、及び、該経路構成情報をポイントする経路管理テーブルのエントリを削除する。
<経路再設定手順>
 図10のステップS106の経路の再設定の手順について図12を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、有効経路記憶部203において、経路構成情報をポイントする経路管理テーブル(図3参照)のエントリのスイッチ情報(経路を構成するスイッチ群)に含まれるスイッチと、当該経路構成情報をポイントする経路管理テーブルのエントリのパケット・ヘッダーを指定し、経路算出部205に対して、経路の算出を指示する(S106B-a)。
b. コントローラ20の経路算出部205は、トポロジー情報204において、指定されたパケット・ヘッダーの宛先アドレス(MACディスティネーションアドレスあるいはIPディスティネーションアドレス)に一致する、接続先を持つスイッチを特定する(S106B-b)。
c. コントローラ20の経路算出部205は、トポロジー情報を用いて、S106B-aで指定されたスイッチと、S106B-bで特定したスイッチ(宛先アドレスに一致する接続先を持つスイッチ)を端点とした、経路を算出する(S106B-c)。
d. コントローラ20の経路算出部205は、S106B-cで算出した経路に基づき、経路の各スイッチに設定するフローエンティティを生成する(S106B-d)。
e. コントローラ20の経路算出部205は、S106B-dで生成したスイッチと設定すべきフローエンティティ群をコントローラ20のスイッチ状態変更部206に通知する(S106B-e)。
f. コントローラ20のスイッチ状態変更部206は、S106B-eで通知されたスイッチと設定すべきフローエンティティ群を指定し、コントローラ20のフローエンティティ設定部202に、フローエンティティの設定を指示する(S106B-f)。
g. コントローラ20のフローエンティティ設定部は、S106B-fで指示されたスイッチに対して、それぞれ設定すべきフローエンティティの設定を指示する(S106B-g)。以下のh、iはスイッチ10の処理である。
h. スイッチ10は、コントローラ20からフローエンティティの設定を指示されると、スイッチ10のフローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブル102に記録する(S106B-h)。
i. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの設定完了を通知する(S106B-i)。以下はコントローラ20の処理である。
j. コントローラ20のフローエンティティ設定部202は、S106B-fで指示した全てのフローエンティティ設定完了の受信を待ち、スイッチ状態変更部206にフローエンティティの設定完了を通知する(S106B-j)。
k. スイッチ状態変更部206は、S106B-dで生成したフローエンティティを有効経路記録部203に新たな経路構成情報として登録する(S106B-k)。
l. スイッチ状態変更部206は、S106B-kで登録した経路構成情報を、有効経路記録部203において該当経路構成情報をポイントしていた経路管理テーブル(図3参照)のエントリの経路構成情報へのポインタが指すように変更する(S106B-l)。
 表2に、上記手順で設定された迂回設定後のトポロジー情報を示す。
Figure JPOXMLDOC01-appb-T000002
 表2から、表1のスイッチ4のエントリが削除されていることがわかる。また、スイッチ1は、インタフェース1、2でそれぞれノードA、スイッチ3と接続する。スイッチ2は、インタフェース1、2でそれぞれノードB、スイッチ3と接続する。スイッチ3は、インタフェース1、2、3、4でそれぞれスイッチ1、2、5、6と接続する。スイッチ5、6はいずれも、インタフェース1、3、4でそれぞれスイッチ3、7、8と接続する。スイッチ7は、インタフェース1、2、3でそれぞれスイッチ5、6、ノードCと接続する。スイッチ8は、インタフェース1、2、3でそれぞれスイッチ5、6、ノードDと接続する。
 図6において、例えばスイッチ4(迂回すべきスイッチ)を通る経路:
・ノードA→スイッチ1→スイッチ4→スイッチ6→スイッチ8→ノードD
に対して、経路:
・ノードA→スイッチ1→スイッチ3→スイッチ6→スイッチ8→ノードD
 が迂回経路として設定される。
 経路が経路キャッシュ207(図5参照)にキャッシングされている場合、図10のS103の後書き処理を実行する。
・経路算出部205に対してスイッチを指定し、キャッシュの無効化を指示する。
・経路算出部205は、経路キャッシュ207を検索し、指定されたスイッチが経路上にあるエントリを無効化する。
 そして、図12のS106B-cの処理を、図13のように変更する。
<経路キャッシュを用いた場合の経路算出>
 経路算出部205は、経路キャッシュ207から、始点・終点の両端点が一致する経路を検索する(S106B-c1)。
 検索の結果、一致するものがあった場合(S106B-c2のYES)、S106B-c3へ、一致するものがなかった場合、S106B-c6へ分岐する。
 指定された端点から経路を算出する(S106B-c3)。
 S106B-c3で算出した経路と、計算に使用した端点をセットにして経路キャッシュ207に登録する(S106B-c4)。S106B-c3で算出した経路を算出経路とし(S106B-c5)、終了する。
 S106B-c2で検索した経路を、経路算出経路とし(S106B-c6)、終了する。
<迂回手順2>
 次に、本発明の別の実施の形態を説明する。本実施形態においては、迂回スイッチに対してバイキャストを行う。新経路を作成後、旧経路を削除する場合。複数のOUTPUTアクションを指定することで、パケットが複製され、送信される(バイキャスト、あるいは、それ以上のキャスティング)。図14は、本実施形態の迂回手順を説明する流れ図である。
1. 管理者はスイッチ(スイッチ4)を指定しコントローラに迂回を指示する(S201)。
2. コントローラ20のスイッチ状態変更部206は管理者からのスイッチが指定され迂回の指示を受け取る(S202)。
3. コントローラ20のスイッチ状態変更部206は、トポロジー情報204から、S201で指定されたスイッチのエントリを削除する(S203)。
4. コントローラ20のスイッチ状態変更部206は、有効経路記憶部203から、指定されたスイッチが使用された経路構成情報を検索する(S204)。
5. コントローラ20のスイッチ状態変更部206は、検索結果により一致するものがなかった場合(S205のNO)、終了し、一致するものがあった場合(S205のYES)、S206へ分岐する。
6. S204で検索した各経路構成情報に関して
A.新経路の算出、
B.新経路の設定、
C.旧経路の削除、
を実行する(S206)。
7. コントローラ20のスイッチ状態変更部206は、管理者に迂回完了を通知する(S207)。
<新経路算出手順>
 図14のS206の処理A(新経路の算出)について図15を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、経路構成情報をポイントする経路管理テーブル(図3参照)のエントリのスイッチ情報に含まれるスイッチと、経路構成情報をポイントする経路管理テーブルのエントリのパケット・ヘッダーを指定し、経路算出部205に対して、経路算出を指示する(S206A-a)。
b. コントローラ20の経路算出部205は、トポロジー情報204において、パケット・ヘッダーの宛先アドレス(MACディスティネーションアドレスあるいはIPディスティネーションアドレス)に一致する、接続先を持つスイッチを特定する(S206A-b)。
c. コントローラ20の経路算出部205は、トポロジー情報204を用いて、S206A-aで指定されたスイッチと、S206A-bで特定したスイッチを端点とした、経路を算出する(S206A-c)。
d. コントローラ20の経路算出部205は、S206A-cで算出した経路に基づき、経路の各スイッチに設定するフローエンティティを生成する(S206A-d)
e. コントローラ20の経路算出部205は、S206A-dで生成したスイッチと設定すべきフローエンティティ群をコントローラ20のスイッチ状態変更部206に通知する(S206A-e)
<新経路設定手順>
 次に図14のS206の処理B(新経路の設定)について図16を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、S206A-eで通知されたスイッチと設定すべきフローエンティティ群を指定し、コントローラ20のフローエンティティ設定部202に、フローエンティティの設定を指示する(S206B-a)。
b. コントローラ20のフローエンティティ設定部202は、S206B-aで指示されたスイッチ群に、それぞれ設定すべきフローエンティティの設定を指示する(S206B-b)。以下のc、dはスイッチ10の処理である。
c. スイッチ10は、コントローラ20からフローエンティティの設定を指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブル102に記録する(S206B-c)。
d. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの設定完了を通知する(S206B-d)。以下のeは、コントローラ20の処理である。
e. コントローラ20のフローエンティティ設定部202は、S206B-aで指示した全てのフローエンティティ設定完了の受信を待ち、スイッチ状態変更部206にフローエンティティの設定完了を通知する(S206B-e)。
<旧経路削除手順>
 次に図14のS206の処理C(旧経路の削除)について図17を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、S204で検索された経路構成情報に記録されたスイッチとフローエンティティ群(図3参照)を指定し、コントローラ20のフローエンティティ設定部202にフローエンティティの削除を指示する(S206C-a)。
b. コントローラ20のフローエンティティ設定部202は、S206C-aで指示されたスイッチ群に、それぞれ削除すべきフローエンティティを指定し削除を指示する(S206C-b)。以下のc、dはスイッチ10の処理である。
c. スイッチ10は、コントローラ20からフローエンティティの削除を指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブル102から削除する(S206C-c)
d. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの削除完了を通知する(S206C-d)。以下のe、fは、コントローラ20の処理である。
e. コントローラ20のフローエンティティ設定部202は、S206C-bで指示した全てのフローエンティティ削除完了の受信を待ち、スイッチ状態変更部206にフローエンティティの削除完了を通知する(S206C-e)
f. コントローラ20のスイッチ状態変更部206は、有効経路記録部203から該当経路構成情報を削除する(S206C-f)。より詳細には、スイッチ状態変更部206は、有効経路記憶部203の経路管理テーブル(図3参照)から、迂回スイッチを含む経路構成情報(スイッチ識別情報とフローエンティティの集合)、及び、該経路構成情報をポイントする経路管理テーブルのエントリを削除する。
<有効経路記録部の更新>
 次に、コントローラ20における有効経路記録部203の更新について説明する。
 コントローラ20のスイッチ状態変更部206は、S206の処理A(新経路の算出)で生成したフローエンティティを、有効経路記録部203に新たな経路構成情報として登録する。
 スイッチ状態変更部206は、有効経路記録部203に登録した経路構成情報を、有効経路記録部203の該当経路構成情報をポイントしていた経路管理テーブルのエントリの経路構成情報へのポインタが指すように変更する。
 S206の処理B(新経路の設定)で、新経路を設定し、S206の処理C(旧経路の削除)で旧経路を削除している。S206の処理C(旧経路の削除)の前では、新経路と削除前の旧経路の両経路が有効であるため、スイッチにより複数のOUTPUT(スイッチの複数のインタフェースにOUTPUT)が存在する状態となり、これら両経路にパケットが重複して送信される。
 図10等を参照して説明した迂回手順(第1の迂回手順)では、旧経路を先に削除していたため、パケットがなくなる可能性があったが、図14等を参照して説明した迂回手順(第2の迂回手順)のようにすることで、パケットを失うことを回避することができる。
 第2の迂回手順において、新経路、旧経路でスイッチによっては同一のフローエンティティが生成されることが考えられる。図14のS206Bで、旧経路と一致するものは設定せず、図14のS206Cで、新経路と一致するものは削除しないことで、対処することが可能である。
 次に、本発明の別の実施形態として迂回(トンネル)を説明する。迂回は、管理者がスイッチを指定してコントローラに指示を行う。以下では、図5のスイッチ4を迂回する例を示す。MACディスティネーションアドレスを用いてトンネル仕様か否かを制御する。
・トンネル通過用のMACアドレス群から、トンネルごとに一意となるように割り当てを行う
・トンネル通過用のMACアドレス群としては、ローカルアドレスを使用する。MACアドレスの先頭オクテットの0x02ビットがONであればローカルアドレスである。
<トンネル設定手順>
 まず、トンネルの設定手順について図18を参照して説明する。
1. 管理者はスイッチ(スイッチ4)を指定しコントローラに迂回を指示する(S301)
2. コントローラ20のスイッチ状態変更部206は管理者からのスイッチを指定され迂回の指示を受け取る(S302)。
3. コントローラ20のスイッチ状態変更部206は、トポロジー情報204から、S301で指定されたスイッチに隣接するスイッチを検索する(S303)。
4. トポロジー情報204から、S301で指定されたスイッチのエントリを削除する(S304)。
5. S303で選択したスイッチ群の全組み合わせについて以下の処理を行う(S305)。
A.トンネル用フローエンティティの算出。
B.トンネル用フローエンティティの設定。
6. コントローラ20のスイッチ状態変更部206は有効経路記憶部203から指定されたスイッチ4が使用された経路構成情報を検索する(S306)。
7. S306の検索結果、一致するものがなかった場合(S307のNO)、終了する。
8. 6で検索した各経路構成情報に関して下記を実行する(S308)。
A.トンネルとの接続。
B.始点の旧経路の削除。
9. スイッチ状態変更部206は、管理者に迂回完了を通知する(S309)。
<トンネル用フローエンティティの算出手順>
 次に、S305のトンネル用フローエンティティの算出手順について図19を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、使用するトンネルを通過するための識別用のMACアドレスを決定する(S305A-a)。
b. コントローラ20のスイッチ状態変更部206は、選択したスイッチペアと、S305A-aで決定したMACアドレスを指定し、コントローラ20の経路算出部205にトンネルを算出させる(S305A-b)。
c. コントローラ20の経路算出部205は、トポロジー情報を用いて、対象となるスイッチペアを端点とした、経路を算出する(S305A-c)。
d. コントローラ20の経路算出部205は、S305A-cで算出した経路と、S305A-aで決定したMACアドレスと、に基づき、経路の各スイッチに設定するトンネル用フローエンティティを生成する(S305A-d)。
e. コントローラ20の経路算出部205は、S305A-dで生成したスイッチと設定すべきフローエンティティ群をコントローラ20のスイッチ状態変更部206に通知する(S305A-e)。
f. コントローラ20のスイッチ状態変更部206は、トンネルの始点となるスイッチ及び終点となるスイッチと、始点となるスイッチ用のアクションを記憶する(S305A-f)。
<トンネル用フローエンティティの設定手順>
 次に、S305のトンネル用フローエンティティの設定手順について図20を参照しして説明する。
a. コントローラ20のスイッチ状態変更部206は、S305A-eで通知されたスイッチのうち始点となるスイッチ以外のスイッチに関して設定すべきフローエンティティ群を指定し、コントローラ20のフローエンティティ設定部202にフローエンティティの設定を指示する(S305B-a)。
b. コントローラ20のフローエンティティ設定部202は、S305B-aで指示されたスイッチ群に、それぞれ設定すべきフローエンティティの設定を指示する(S305B-b)。以下のc、dはスイッチ10の処理である。
c. スイッチ10が、コントローラ20からフローエンティティの設定を指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブル102に記録する(S305B-c)。
d. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの設定完了を通知する(S305B-d)。以下のeはコントローラ20の処理である。
e. コントローラ20のフローエンティティ設定部202は、S305B-aで指示した全てのフローエンティティ設定完了の受信を待ち、スイッチ状態変更部206にフローエンティティの設定完了を通知する(S305B-e)。
<トンネルとの接続手順>
 次に、図18のS308のトンネルとの接続手順について図21を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、経路構成情報から、図18のS303で選択した隣接するスイッチ群で使用されているペアを検索する(S308A-a)。
b. コントローラ20のスイッチ状態変更部206は、経路構成情報の始点となるスイッチ用に記憶していた設定済みのフローエンティティのルールと、始点用のアクションからなるフローエンティティを生成する(S308A-b)。
c. コントローラ20のスイッチ状態変更部206は、経路構成情報の終点となるスイッチ用に記憶していた設定済みのフローエンティティのルールと、MACディスティネーションアドレスを、有効経路記憶部203の経路管理テーブル(図3参照)に記憶された、MACディスティネーションアドレスに変更するアクションを含むフローエンティティを生成する(S308A-c)。
d. コントローラ20のスイッチ状態変更部206は、始点となるスイッチに、S308A-bで生成したフローエンティティを指定し、コントローラ20のフローエンティティ設定部202に、フローエンティティの設定を指示する(S308A-d)。
e. コントローラ20のフローエンティティ設定部202は、終点となるスイッチに、S308A-cで指示されたスイッチに、設定すべきフローエンティティの設定を指示する(S308A-e)。以下のf、gはスイッチ10の処理である。
f. スイッチ10は、コントローラ20から、フローエンティティの設定を指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブル102に記録する(S308A-f)。
g. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの設定完了を通知する(S308A-g)。以下のhは、コントローラ20の処理である。
h. コントローラ20のフローエンティティ設定部202は、ステップS308A-d、eで指示したフローエンティティの設定の完了を待つ(S308A-h)。
<始点スイッチから旧経路の削除>
 次に、図18のS308の始点の旧経路の削除について図22を参照して説明する。
a. コントローラ20のスイッチ状態変更部206は、始点となるスイッチから、経路構成情報に記録された始点となるスイッチに設定されたフローエンティティを指定し、コントローラ20のフローエンティティ設定部202に対して当該フローエンティティの削除を指示する(S308B-a)。
b. コントローラ20のフローエンティティ設定部は、S308B-aで指示されたスイッチに、指定されたフローエンティティの削除を指示する(S308B-b)。以下のc、dはスイッチ10の処理である。
c. スイッチ10は、コントローラ20からフローエンティティの削除を指示されると、フローエンティティ設定部104は、指定されたフローエンティティをスイッチのフローエンティティテーブルから削除する(S308B-c)。
d. スイッチ10のフローエンティティ設定部104は、コントローラ20にフローエンティティの削除完了を通知する(S308B-d)。以下のeは、コントローラ20の処理である。
e. コントローラ20のフローエンティティ設定部202は、スイッチ状態変更部206にフローエンティティの削除完了を通知する(S308B-e)。
 本実施形態において、トンネルの始点となるスイッチには、パケットをトンネルに誘導するため、
・フローエンティティのアクションをトンネルの次のスイッチに接続するOUTPUTと、
・パケット・ヘッダーのMACディスティネーションアドレスをトンネル用MACアドレスに変更するアクションに設定し、
・旧フローエンティティは削除する。
 またトンネル終点のスイッチには、
・パケット・ヘッダーのMACディスティネーションアドレスを変更するアクションからなるフローエンティティを追加する。
<トンネルのフローエンティティ>
 実施例として迂回(トンネル)のフローエンティティの例を説明する。
 図5のネットワークでスイッチ4を削除する場合、スイッチ4の隣接スイッチは、スイッチ1、スイッチ2、スイッチ5、スイッチ6からなる。
(1).トンネルをスイッチ1とスイッチ2間とする。経路は、スイッチ1→スイッチ3→スイッチ2となる。なお、始点のスイッチ1には2つのアクションが設定され、この2つのアクションをフローエンティティ1、2で規定しているが、1つのフローエンティティに複数のアクションを設定してもよいことは勿論である。この経路(トンネル)のフローエンティティは以下のようになる。なお、表記の便宜上、経路を構成するフローエンティティをリスト表現で表記しているが、あくまで表記のためであり、テーブル構成、線形リスト等、経路を構成するフローエンティティ(図3の経路構成情報のフローエンティティ群)のデータ構造は任意である。
((フローエンティティ1<始点用>
     スイッチ1
     ルール(既定のルール)
     アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス1))
 (フローエンティティ2<始点用>
    スイッチ1
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス1)
    アクション (OUTPUT: インタフェース2))
 (フローエンティティ4<終点に追加するもの>
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))  
 トンネルの始点なるスイッチ1のフローエンティティのアクションでは、スイッチ1がインタフェース2に出力するパケット・ヘッダーのMACディスティネーションアドレスを、トンネル用のMACアドレス1(ローカルアドレス)に変更する。スイッチ1のフローエンティティのアクションとして、図26のSET_DL_DST(MACディスティネーションアドレスを更新)が設定される。なお、ルールの既定のルールは、フローエンティティのルールとして既に設定済みのルールである。
 トンネル内のスイッチ3では、フローエンティティのルールとして、入力したパケットのヘッダーのMACディスティネーションアドレスが、トンネル用MACアドレス1と一致した場合、転送(forward)させる。
 トンネル終点のスイッチ2に追加するフローエンティティのアクションにおいて、スイッチ1からスイッチ3のトンネル経由でスイッチ2に入力されたパケットのヘッダーの宛先アドレスを、トンネル用のMACアドレス1から元のMACディスティネーションアドレスに戻している。スイッチ2のフローエンティティのアクションには、図26のSET_DL_DST(MACディスティネーションアドレスを更新:元のMACアドレス)が設定される。元のMACディスティネーションアドレスは、有効経路記憶部203の経路管理テーブル(図3参照)のパケット・ヘッダー情報に記憶されたMACディスティネーションアドレスが用いられる。
(2).トンネルをスイッチ1、スイッチ5間に設ける場合、経路は、スイッチ1→スイッチ3→スイッチ5となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1<始点用>
    スイッチ1
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更、トンネル用MACアドレス2))
 (フローエンティティ1<始点用>
    スイッチ1
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス2)
    アクション(OUTPUT:インタフェース3))
 (フローエンティティ4<終点に追加するもの>
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
 トンネルの始点となるスイッチ1のフローエンティティのアクションで、スイッチ1がインタフェース2に出力するパケット・ヘッダーの宛先MACアドレスをトンネル用のMACアドレス2(ローカルアドレス)に変更する。スイッチ1のフローエンティティのアクションとして、図26のSET_DL_DST(MACディスティネーションアドレスを更新)が設定される。
 スイッチ3では、ルールとしてパケット・ヘッダーのMACディスティネーションアドレスがトンネル用MACアドレス2と一致した場合、転送(forward)させる。
 トンネル終点のスイッチ5に追加するフローエンティティのアクションで、スイッチ1、3、5のトンネル経由でスイッチ5に入力されたパケット・ヘッダーの宛先のMACアドレスを、トンネル用のMACアドレス2から元のMACアドレスに戻している。スイッチ5のフローエンティティのアクションには、図26のSET_DL_DST(MACディスティネーションアドレスを更新:元のMACアドレス)が設定される。以下(3)~(12)に例示する各トンネルのフローエンティティにおいても、トンネルの始点、中間点、終点のルール、アクションの内容は同様にして解釈されため、説明は省略する。
(3).スイッチ1-スイッチ6間にトンネルを設ける場合、経路はスイッチ1→スイッチ3→スイッチ6となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
   スイッチ1
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更、トンネル用MACアドレス3))
 (フローエンティティ1(始点用)
    スイッチ1
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス3)
    アクション(OUTPUT: インタフェース4))
 (フローエンティティ4(終点に追加するもの)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(4).スイッチ2-スイッチ1間にトンネルを設ける場合、経路はスイッチ2→スイッチ3→スイッチ1となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス4))
 (フローエンティティ2(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス4)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ4(終点に追加するもの)
    スイッチ1
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(5).スイッチ2-スイッチ5間にトンネルを設ける場合、経路はスイッチ2→スイッチ3→スイッチ5となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス5))
 (フローエンティティ2(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス5)
    アクション(OUTPUT: インタフェース3))
 (フローエンティティ4(終点に追加するもの)
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(6).スイッチ2-スイッチ6間にトンネルを設ける場合、経路はスイッチ2→スイッチ3→スイッチ6となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス6))
 (フローエンティティ2(始点用)
    スイッチ2
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス6)
    アクション(OUTPUT: インタフェース4))
 (フローエンティティ4(終点に追加するもの)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(7).スイッチ5-スイッチ1間にトンネルを設ける場合、経路はスイッチ5→スイッチ3→スイッチ1となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス7))
 (フローエンティティ2(始点用)
    スイッチ5
    ルール(既定のルール)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス7)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ4(終点に追加するもの)
    スイッチ1
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(8).スイッチ5-スイッチ2間にトンネルを設ける場合、経路はスイッチ5→スイッチ3→スイッチ2となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス8))
 (フローエンティティ2(始点用)
    スイッチ5
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス8)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ4(終点に追加するもの)
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(9).スイッチ5-スイッチ6間にトンネルを設ける場合、経路はスイッチ5→スイッチ3→スイッチ6となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス9))
 (フローエンティティ2(始点用)
    スイッチ5
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース1))
(フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス9)
    アクション(OUTPUT: インタフェース4))
(フローエンティティ4(終点に追加するもの)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(10).スイッチ6-スイッチ1間にトンネルを設ける場合、経路はスイッチ6→スイッチ3→スイッチ1となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス10))
 (フローエンティティ2(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス10)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ4(終点に追加するもの)
    スイッチ1
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(11).スイッチ6-スイッチ2間にトンネルを設ける場合、経路はスイッチ6→スイッチ3→スイッチ2となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス11))
 (フローエンティティ2(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス11)
    アクション(OUTPUT: インタフェース2))
 (フローエンティティ4(終点に追加するもの)
    スイッチ2
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
(12).スイッチ6-スイッチ5間にトンネルを設ける場合、経路はスイッチ6→スイッチ3→スイッチ5となる。この経路(トンネル)のフローエンティティは以下のようになる。
((フローエンティティ1(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:トンネル用MACアドレス12))
 (フローエンティティ2(始点用)
    スイッチ6
    ルール(既定のルール)
    アクション(OUTPUT: インタフェース1))
 (フローエンティティ3
    スイッチ3
    ルール(MACディスティネーションアドレス=トンネル用MACアドレス12)
    アクション(OUTPUT: インタフェース3))
 (フローエンティティ4(終点に追加するもの)
    スイッチ5
    ルール(既定のルール)
    アクション(MACディスティネーションアドレス変更:経路管理テーブルに記憶されたMACディスティネーションアドレス)))
<フローエンティティの変更>
 次に、本実施形態における、フローエンティティの変更の例について説明する。
 経路管理テーブル(図3参照)のスイッチ情報とパケット・ヘッダー情報の各フィールドに設定されていた値を下記とする。なお、ネットワークは、図6の構成とする。
・スイッチ情報: スイッチ1
・パケット・ヘッダー情報
  MACソースアドレス: ノードAのMACアドレス
  MACディスティネーションアドレス: ノードDのMACアドレス
  プロトコル: TCP
  ソースIPアドレス: ノードAのIPアドレス
  ディスティネーションIPアドレス: ノードノードDのIPアドレス
  ソースポート番号: 設定されていた値
  ディスティネーションポート番号:設定されていた値
 上記において、「設定されていた値」は、フローエンティティの変更の前の時点で既に設定されていた値を表している。
 スイッチ4を迂回する場合のフローエンティティの変更例を示す。なお、スイッチ1-スイッチ6間およびスイッチ6-スイッチ1間のトンネルを使用するものとする。
<変更前(迂回トンネル設定前)>
((フローエンティティ1
  スイッチ1
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース3))
 (フローエンティティ2
   スイッチ4
   ルール(ディスティネーションIPアドレスD=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース4))
 (フローエンティティ3
   スイッチ6
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース4))
 (フローエンティティ4
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース3))
 (フローエンティティ5
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT:インタフェース2))
 (フローエンティティ6
   スイッチ6
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT:インタフェース2))
 (フローエンティティ7
   スイッチ4
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ8
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1)))
 迂回トンネル設定後のフローエンティティの変更例を示す。
<変更後の(迂回トンネル設定後)>
((フローエンティティ9(追加)
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(MACディスティネーションアドレス変更: トンネル用MACアドレス3))
 (フローエンティティ1(変更)
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース2))
 (フローエンティティ2(削除)
   スイッチ4
   ルール(ディスティネーションIPアドレスD= ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース4))
 (フローエンティティ10(追加)
   スイッチ6
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(MACディスティネーションアドレス変更: DのMACアドレス))
 (フローエンティティ3
   スイッチ6
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース4))
 (フローエンティティ4
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードDのIPアドレス)
   アクション(OUTPUT: インタフェース3))
 (フローエンティティ5
   スイッチ8
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース2))
 (フローエンティティ11(追加)
   スイッチ6
   ルール(ディスティネーションIPアドレス= ノードAのIPアドレス)
   アクション(MACディスティネーションアドレス変更: トンネル用MACアドレス10))
 (フローエンティティ6(変更)
   スイッチ6
   ルール(ディスティネーションIPアドレス= ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ7(削除)
   スイッチ4
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ8
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1))
 (フローエンティティ12(追加)
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(MACディスティネーションアドレス変更: AのMACアドレス10)))
 フローエンティティ(追加)とは、当該フローエンティティをスイッチ10のフローエンティティテーブル102に追加することをいう。フローエンティティ(削除)は、当該フローエンティティを、スイッチ10のフローエントリテーブルから削除し、コントローラ20の有効経路記憶部203の経路構成情報から削除することをいう。
 なお、1つのフローエンティティが複数のアクションを含む場合、例えば上記スイッチ1に追加されるフローエンティティ12のアクション(MACディスティネーションアドレス変更: AのMACアドレス10)だけを、スイッチ1の元のフローエンティティ8のアクション(OUTPUT: インタフェース1)に追加し、
 (フローエンティティ8
   スイッチ1
   ルール(ディスティネーションIPアドレス=ノードAのIPアドレス)
   アクション(OUTPUT: インタフェース1))、アクション(MACディスティネーションアドレス変更: AのMACアドレス10))としてもよい。
<迂回解除>
 次に、本実施形態において、迂回解除後(迂回スイッチの復旧後)の動作について説明する。迂回解除時には、コントローラ20は、トポロジー情報204に、使用可能となったスイッチ(例えば迂回スイッチとして指定されたスイッチ4)を追加する。迂回解除後の経路の変更は、必須ではない。トポロジー情報へ削除されたスイッチを追加する場合、迂回用に作成したトンネルの経路は、迂回解除後、
 ・迂回用トンネルを使用する経路構成情報が存在せず、
 ・迂回用トンネルを使用する経路構成情報が全て削除されたあと、
 の2つの条件が成立した際に、有効経路記憶部203から削除する。
<経路構成情報の削除>
 図23は、本発明の別の実施形態を説明する図である。本実施形態においては、コントローラ20において、フローエンティティ設定部202が有効経路記憶部203から経路構成情報を削除する機能を備えている。
 フローエンティティは、システムが規定した期間、ルールにマッチするパケットが到着しないと無効となる。有効経路記憶部203の経路管理テーブル(図3参照)上の経路構成情報、経路管理テーブル内の関連エントリは、削除される。この場合の手順を以下に示す。
1.スイッチのフローエンティティが無効となった場合、スイッチのフローエンティティ設定部104が、フローエンティティテーブル102から、該当フローエンティティを削除する。
2.スイッチのフローエンティティ設定部104は、コントローラ20のフローエンティティ設定部202に、削除したフローエンティティを指定してフローエンティティが無効となったことを通知する。
3.コントローラ20のフローエンティティ設定部202は、有効経路記憶部203から、該当フローエンティティが使用されている経路構成情報を検索する。
4.検索の結果、使用されているものがなかった場合には、終了する。
5.検索の結果、使用されているものがあった場合、コントローラ20のフローエンティティ設定部202は、該当経路構成情報を記憶する。
6.コントローラ20のフローエンティティ設定部202は、有効経路記憶部203から、該当経路構成情報と、該当経路構成情報へのポインタを持つ経路管理テーブル(図3参照)上のエントリ(スイッチ情報、パケット・ヘッダー情報、ポインタを一エントリとする)を削除する。
7.コントローラ20のフローエンティティ設定部202は、5.で記憶した経路構成情報を基に、各スイッチ10に対して、該スイッチに対応するフローエンティティを指定し、フローエンティティの削除を指示する。
 上記実施形態によれば、迂回が指示されたスイッチを通らない経路を計算し設定することで当該スイッチを迂回し、該スイッチの保守等を行うことができる。また、スイッチを迂回させることで、経路の片寄せ等を行い、低消費電力化等を実現可能としている。すなわち、夜間等において、低消費電力での運用等を可能としている。また経路キャッシュを備えた場合、経路計算を高速化可能としている。
 上記実施形態において、トンネルの優先度を低く設定することで、スイッチに明示されているフローへの影響を回避することができる。
 迂回経路の再計算時に、影響を受けるフローの数を少なくするように経路を設定するようにしてもよい。この場合、迂回時に再設定するフローの数を少なくすることができる。迂回経路の再計算時にフローを変更するスイッチの数を少なくするように経路を設定するようにしてもよい。
 なお、上記実施形態では、説明の簡単化のため、図6のネットワークにおいて迂回スイッチとして1つのスイッチ(スイッチ4)を指定する例に即して説明したが、複数のスイッチを迂回するケースに対しても、本発明が適用可能であることは勿論である。また、本発明において、ノードは、上記実施例のスイッチ(OFS)を含むほか、コントローラによってフローの制御が行われる任意のスイッチ(L2/L3スイッチ)、ルーター等を含む。
 以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。上記した実施形態のコントローラ20は、専用のサーバとして実現することもでき、スイッチ10としては、上記OFS(OpenFlow Switch)のほか、IP網におけるルータ、MPLS(Multi-Protocol Label Switching)網におけるMPLSスイッチのようなノードであれば実現できる。その他、コントローラがネットワーク内のノードを集中管理するようなネットワークであれば、本発明を適用することが可能である。
 なお、上記非特許文献1、2の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10 スイッチ(OFS)
20 コントローラ
30 ノード
101 パケット処理部
102 フローエンティティテーブル
103 パケット通知部
104 フローエンティティ設定部
201 パケット処理部
202 フローエンティティ設定部
203 有効経路記憶部
204 トポロジー情報
205 経路算出部
206 スイッチ状態変更部
207 経路キャッシュ

Claims (36)

  1.  コントローラと、
     前記コントローラによってフローの制御が行われる複数のノードと、
     を備え、
     前記コントローラは、
     ノードのネットワーク構成を規定するトポロジー情報から迂回を指示されたノードを除き、
     前記迂回を指示されたノードを通らない新経路を計算し、
     前記新経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、
     前記新経路上のノードに前記フロー情報を設定する、ことを特徴とするネットワークシステム。
  2.  前記コントローラは、迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求め、有効経路情報を記憶する有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関するフロー情報を生成し、
     前記フロー情報を、前記新経路を形成する前記各ノードにそれぞれ設定し、
     前記迂回すべきノードを用いた旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項1記載のネットワークシステム。
  3.  前記コントローラは、迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求め、有効経路情報を記憶する有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関する前記フロー情報を生成し、前記フロー情報を前記新経路を形成する各ノードにそれぞれ設定し、
     前記新経路と、前記迂回すべきノードを用いた前記旧経路が分岐する先頭のノードでパケットを、新旧両経路に送るように設定したのち、前記旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項1記載のネットワークシステム。
  4.  前記コントローラは、前記旧経路を削除する際、前記旧経路の先頭のノードから、順にフローを削除し、前記先頭のノードからフローを削除した段階で、前記先頭のノードにおけるパケットのレプリカ設定を解除する、ことを特徴とする請求項3記載のネットワークシステム。
  5.  前記コントローラは、迂回すべきノードが指定されると、前記迂回すべきノードの少なくとも2つの隣接ノードを始点と終点とするトンネル経路を設定し、
     前記トンネル経路の各ノードに関するフロー情報を生成して設定し、
     前記トンネル経路の始点のノードでは、前記トンネル始点のノードに入力され、前記迂回すべきノードを経由する経路へ転送される予定のパケットを、前記トンネル内に転送されるように前記パケットのヘッダーの送信先をトンネルのアドレスに書き換え、
     前記パケットはトンネル内を転送され、
     前記トンネル終点では、前記パケットのヘッダーの送信先を元の送信先に復元して転送させる、ことを特徴とする請求項1記載のネットワークシステム。
  6.  前記コントローラは、迂回用に作成した前記トンネル経路のフローを、迂回解除後、迂回用のトンネルを使用する経路構成情報が存在せず、前記迂回用のトンネルを使用する経路構成情報が削除されたあと、削除する、ことを特徴とする請求項5記載のネットワークシステム。
  7.  前記コントローラは、経路の始点から終点までの各点のノードの各々について、ノードの識別情報とノードに設定されるフロー情報を、経路構成情報として含み、
     前記経路構成情報を管理する経路管理テーブルとして、
     経路の各々について、
     前記経路を形成するノードの情報と、
     前記コントローラが前記経路を作成する契機となったパケットのヘッダー情報と、
     対応する経路の経路構成情報を指示するポインタ情報と、
     を含む、ことを特徴とする請求項1乃至5のいずれか1項に記載のネットワークシステム。
  8.  前記フロー情報は、
     前記ノードに入力されたパケットのヘッダーと照合するルールと、
     前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、
     を少なくとも含み、
     前記ノードに入力したパケットのヘッダーがフロー情報のルールとマッチしない場合、前記ノードは、前記パケットを前記コントローラに転送し、
     前記コントローラは、前記パケットのフローを決定し、前記フロー上の前記ノードに対応するフロー情報を設定し、
     前記コントローラは、前記パケットを、前記パケット送信元のノードに返送するか、又は、前記コントローラが接続するノードのうち、前記パケットが転送される経路上にあり、且つ、前記パケット送信元のノードよりも、前記パケットの送信先ノードにより近いノードに送信する、ことを特徴とする請求項1乃至7のいずれか1項に記載のネットワークシステム。
  9.  前記コントローラは、経路情報として経路の始点、終点の2つの端点、前記経路上のノード群を、キャッシュの一エントリとして格納する経路キャッシュと、
     経路を算出する経路算出部と、を備え、
     前記経路算出部は、経路計算時、始点、終点を指定して両端が一致する経路を、前記経路キャッシュから検索し、
     一致したものがある場合、前記検索された経路を算出経路とし、
     一致したものがない場合、経路を算出し、算出した経路情報を、前記経路キャッシュに格納する、ことを特徴とする請求項1乃至8のいずれか1項に記載のネットワークシステム。
  10.  複数のノードに対してフローの制御を行うコントローラが、
     ノードのネットワーク構成を規定するトポロジー情報から迂回を指示されたノードを除き、
     前記迂回を指示されたノードを通らない新経路を計算し、
     前記新経路を形成するノードに対して、前記新経路を形成するノードでのフローに対する動作を規定したフロー情報を生成し、
     前記新経路上のノードに前記フロー情報を設定する、ことを特徴とするネットワーク制御方法。
  11.  前記コントローラは、迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求め、有効経路情報を記憶する有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関するフロー情報を生成し、
     前記フロー情報を、前記経路を形成する前記各ノードにそれぞれ設定し、
     前記迂回すべきノードを用いた前記旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項10記載のネットワーク制御方法。
  12.  前記コントローラは、迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求め有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関する前記フロー情報を生成し、前記フロー情報を前記新経路を形成する前記各ノードにそれぞれ設定し、
     前記新経路と、前記迂回すべきノードを用いた前記旧経路が分岐する先頭のノードでパケットを、新旧両経路に送るように設定したのち、前記旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項10記載のネットワーク制御方法。
  13.  前記コントローラは、前記旧経路を削除する際、前記旧経路の先頭のノードから、順にフローを削除し、前記先頭のノードからフローを削除した段階で、前記先頭のノードにおけるパケットのレプリカ設定を解除する、ことを特徴とする請求項12記載のネットワーク制御方法。
  14.  前記コントローラは、迂回すべきノードが指定されると、前記迂回すべきノードの少なくとも2つの隣接ノードを始点と終点とするトンネル経路を設定し、
     前記トンネル経路の各ノードに関するフロー情報を生成して設定し、
     前記トンネル経路の始点のノードでは、前記トンネル始点のノードに入力され、前記迂回すべきノードを経由する経路へ転送される予定のパケットを、前記トンネル内に転送されるように前記パケットのヘッダーの送信先をトンネルのアドレスに書き換え、
     前記パケットはトンネル内を転送され、
     前記トンネル終点では、前記パケットのヘッダーの送信先を元の送信先に復元して転送させる、ことを特徴とする請求項10記載のネットワーク制御方法。
  15.  前記コントローラは、迂回用に作成した前記トンネル経路のフローを、迂回解除後、迂回用のトンネルを使用する経路構成情報が存在せず、迂回用トンネルを使用する経路構成情報が削除されたあと、削除する、ことを特徴とする請求項14記載のネットワーク制御方法。
  16.  前記コントローラは、経路の始点から終点までの各点のノードの各々について、ノードの識別情報とノードに設定されるフロー情報を、経路構成情報として含み、
     経路構成情報を管理する経路管理テーブルとして、
     経路の各々について、前記経路を形成するノードの情報と、前記コントローラが経路を作成する契機となったパケットのヘッダー情報と、対応する経路の経路構成情報を指示するポインタ情報を含む、ことを特徴とする請求項10乃至15のいずれか1項に記載のネットワーク制御方法。
  17.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記ノードに入力したパケットのヘッダーがフロー情報のルールとマッチしない場合、前記ノードは、前記パケットを前記コントローラに転送し、
     前記コントローラは、前記パケットのフローを決定し、前記フロー上の前記ノードに対応するフロー情報を設定し、前記コントローラは、前記パケットを、前記パケット送信元のノードに返送するか、又は、前記コントローラが接続するノードのうち、前記パケットが転送される経路上にあり、前記パケット送信元のノードよりも、前記パケットの送信先ノードにより近いノードに送信する、ことを特徴とする請求項10乃至16のいずれか1項に記載のネットワーク制御方法。
  18.  前記コントローラは、経路情報として経路の始点、終点の2つの端点、前記経路上のノード群をキャッシュの一エントリとして格納する経路キャッシュを有し、
     前記コントローラにおいて、経路を算出する経路算出部で経路計算時、始点、終点を指定して両端が一致する経路を前記経路キャッシュから検索し、
     一致したものがある場合、前記検索された経路を算出経路とし、
     一致したものがない場合、経路を算出し、算出した経路情報を前記経路キャッシュに格納する、ことを特徴とする請求項10乃至17のいずれか1項に記載のネットワーク制御方法。
  19.  複数のノードに対してフローの制御を行うコントローラであって、
     ノードのネットワーク構成を規定するトポロジー情報から迂回を指示されたノードを除き、
     前記迂回を指示されたノードを通らない新経路を計算して有効経路記憶部に記憶し、
     前記新経路を形成するノードに対して、前記ノードでのフローに対する動作を規定したフロー情報を生成し、
     前記新経路上のノードに前記フロー情報を設定する、ことを特徴とするコントローラ。
  20.  迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない経路を求めて前記有効経路記憶部に記憶し、
     前記経路を形成する各ノードに関するフロー情報を生成し、前記フロー情報を、前記経路を形成する前記各ノードにそれぞれ設定し、
     前記迂回すべきノードを用いた前記旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項19記載のコントローラ。
  21.  迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求めて前記有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関するフロー情報を生成し、前記フロー情報を、前記新経路を形成する前記各ノードにそれぞれ設定し、
     前記新経路と、前記迂回すべきノードを用いた前記旧経路が分岐する先頭のノードでパケットを、新旧両経路に送るように設定したのち、前記旧経路を前記有効経路記憶部から削除する、ことを特徴とする請求項19記載のコントローラ。
  22.  前記旧経路を削除する際、前記旧経路の先頭のノードから、順にフローを削除し、前記先頭のノードからフローを削除した段階で、前記先頭のノードにおけるパケットのレプリカ設定を解除する、ことを特徴とする請求項21記載のコントローラ。
  23.  迂回すべきノードが指定されると、前記迂回すべきノードの少なくとも2つの隣接ノードを始点と終点とするトンネル経路を設定して前記有効経路記憶部に記憶し、
     前記トンネル経路の各ノードに関するフロー情報を生成して設定し、
     トンネル経路の始点のノードでは、前記トンネル始点のノードに入力され、前記迂回すべきノードを経由する経路へ転送される予定のパケットを、前記トンネル内に転送されるように前記パケットのヘッダーの送信先をトンネルのアドレスに書き換え、
     前記パケットはトンネル内を転送され、
     前記トンネル終点では、前記パケットのヘッダーの送信先を元の送信先に復元して転送させる、ことを特徴とする請求項19記載のコントローラ。
  24.  迂回用に作成した前記トンネル経路を、迂回解除後、前記トンネルを使用する経路構成情報が存在せず、前記トンネルを使用する経路構成情報が前記有効経路記憶部から全て削除されたあと、削除する、ことを特徴とする請求項23記載のコントローラ。
  25.  前記有効経路記憶部が、経路の始点から終点までの各点のノードの各々について、ノードの識別情報とノードに設定されるフロー情報を、経路構成情報として含み、
     経路構成情報を管理する経路管理テーブルとして、
     経路の各々について、
     前記経路を形成するノードの情報と、
     前記コントローラが経路を作成する契機となったパケットのヘッダー情報と、
     対応する経路の経路構成情報を指示するポインタ情報と、
     を含む、ことを特徴とする請求項19乃至24のいずれか1項に記載のコントローラ。
  26.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記ノードに入力したパケットのヘッダーがフロー情報のルールとマッチしない場合、前記ノードは、前記パケットを前記コントローラに転送し、前記コントローラは、前記パケットのフローを決定し、前記フロー上の前記ノードに対応するフロー情報を設定し、前記コントローラは、前記パケットを、前記パケット送信元のノードに返送するか、又は、前記コントローラが接続するノードのうち、前記パケットが転送される経路上にあり、前記パケット送信元のノードよりも、前記パケットの送信先ノードにより近いノードに送信する、ことを特徴とする請求項19乃至25のいずれか1項に記載のコントローラ。
  27.  経路情報として経路の始点、終点の2つの端点、前記経路上のノード群をキャッシュの一エントリとして格納する経路キャッシュと、
     経路を算出する経路算出部と、
     を備え、
     前記経路算出部は、経路計算時、始点、終点を指定して両端が一致する経路を前記経路キャッシュから検索し、
     一致したものがある場合、前記検索された経路を算出経路とし、
     一致したものがない場合、経路を算出し、算出した経路情報を前記経路キャッシュに格納する、ことを特徴とする請求項19乃至26のいずれか1項に記載のコントローラ。
  28.  複数のノードに対してフローの制御を行うコントローラを構成するコンピュータに、
     ノードのネットワーク構成を規定したトポロジー情報から迂回を指示されたノードを除き、
     前記迂回を指示されたノードを通らない新経路を計算して有効経路記憶部に記憶し、
     該新経路を形成するノードのフロー情報を生成し、
     該新経路上のノードに前記フロー情報を設定する、処理を実行させるプログラム。
  29.  迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求めて前記有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関するフロー情報を生成し、前記フロー情報を、前記新経路を形成する前記各ノードにそれぞれ設定し、
     前記迂回すべきノードを用いた前記旧経路を前記有効経路記憶部から削除する処理を前記コンピュータに実行させる請求項28記載のプログラム。
  30.  迂回すべきノードが指定されると、
     前記トポロジー情報から指定された前記迂回すべきノードを削除し、
     前記迂回すべきノードを用いた旧経路のそれぞれに対して、前記迂回すべきノードを通らない新経路を求め、前記有効経路記憶部に記憶し、
     前記新経路を形成する各ノードに関するフロー情報を生成し、前記フロー情報を前記新経路を形成する前記各ノードにそれぞれ設定し、
     前記新経路と、前記迂回すべきノードを用いた前記旧経路が分岐する先頭のノードでパケットを、新旧両経路に送るように設定したのち、前記旧経路を前記有効経路記憶部から削除する処理を前記コンピュータに実行させる請求項28記載のプログラム。
  31.  前記旧経路を削除する際、前記旧経路の先頭のノードから、順にフローを削除し、前記先頭のノードからフローを削除した段階で、前記先頭のノードにおけるパケットのレプリカ設定を解除する、処理を前記コンピュータに実行させる請求項30記載のプログラム。
  32.  迂回すべきノードが指定されると、前記迂回すべきノードの少なくとも2つの隣接ノードを始点と終点とするトンネル経路を設定し、前記有効経路記憶部に記憶し、
     前記トンネル経路の各ノードに関するフロー情報を生成して設定し、
     トンネル経路の始点のノードでは、前記トンネル始点のノードに入力され、前記迂回すべきノードを経由する経路へ転送される予定のパケットを、前記トンネル内に転送されるように前記パケットのヘッダーの送信先をトンネルのアドレスに書き換え、
     前記パケットはトンネル内を転送され、
     前記トンネル終点では、前記パケットのヘッダーの送信先を元の送信先に復元して転送させる処理を前記コンピュータに実行させる請求項28記載のプログラム。
  33.  迂回用に作成した前記トンネル経路を、迂回解除後、前記トンネルを使用する経路構成情報が存在せず、前記トンネルを使用する経路構成情報が前記有効経路記憶部から全て削除されたあと、削除する処理を前記コンピュータに実行させる請求項32記載のプログラム。
  34.  前記有効経路記憶部が、経路の始点から終点までの各点のノードの各々について、ノードの識別情報とノードに設定されるフロー情報を、経路構成情報として含み、
     前記有効経路記憶部において、経路構成情報を管理する経路管理テーブルとして、
     経路の各々について、
     前記経路を形成するノードの情報と、
     前記コントローラが経路を作成する契機となったパケットのヘッダー情報と、
     対応する経路の経路構成情報を指示するポインタ情報と、
     を含み、
     前記経路を設定する場合、前記経路管理テーブルに、
     パケットのヘッダー情報、
     ノード情報、
     経路構成情報へのポインタ
     を登録する処理を前記コンピュータに実行させる請求項28乃至33のいずれか1項に記載のプログラム。
  35.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記ノードに入力したパケットのヘッダーがフロー情報のルールとマッチしない場合、前記ノードは、パケットを前記コントローラに転送し、前記コントローラは、前記パケットのフローを決定し、前記フロー上の前記ノードに対応するフロー情報を設定し、前記コントローラは、前記パケットを、前記パケット送信元のノードに返送するか、又は、前記コントローラが接続するノードのうち、前記パケットが転送される経路上にあり、前記パケット送信元のノードよりも、前記パケットの送信先ノードにより近いノードに送信する処理を前記コンピュータに実行させる請求項28乃至34のいずれか1項に記載のプログラム。
  36.  前記コントローラは、経路情報として経路の始点、終点の2つの端点、前記経路上のノード群をキャッシュの一エントリとして格納する経路キャッシュを備え、
     経路計算時、始点、終点を指定して両端が一致する経路を前記経路キャッシュから検索し、
     一致したものがある場合、前記検索された経路を算出経路とし、
     一致したものがない場合、経路を算出し、算出した経路情報を前記経路キャッシュに格納する処理を、前記コンピュータに実行させる請求項28乃至35のいずれか1項に記載のプログラム。
PCT/JP2010/067554 2009-10-06 2010-10-06 ネットワークシステムとコントローラと方法とプログラム WO2011043379A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011535424A JP5621781B2 (ja) 2009-10-06 2010-10-06 ネットワークシステムとコントローラと方法とプログラム
US13/067,847 US8792388B2 (en) 2009-10-06 2011-06-29 Network system, controller, method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009232306 2009-10-06
JP2009-232306 2009-10-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/067,847 Continuation US8792388B2 (en) 2009-10-06 2011-06-29 Network system, controller, method and program

Publications (1)

Publication Number Publication Date
WO2011043379A1 true WO2011043379A1 (ja) 2011-04-14

Family

ID=43856832

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/067554 WO2011043379A1 (ja) 2009-10-06 2010-10-06 ネットワークシステムとコントローラと方法とプログラム

Country Status (3)

Country Link
US (1) US8792388B2 (ja)
JP (1) JP5621781B2 (ja)
WO (1) WO2011043379A1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013140796A1 (en) * 2012-03-23 2013-09-26 Nec Corporation Communication system, control device, communication method and program
WO2014112616A1 (ja) * 2013-01-21 2014-07-24 日本電気株式会社 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
JP2014519213A (ja) * 2011-06-02 2014-08-07 日本電気株式会社 通信システム、制御装置、転送ノード、通信システムの制御方法およびプログラム
JP2015091035A (ja) * 2013-11-06 2015-05-11 富士通株式会社 情報処理システム,スイッチ装置及び情報処理システムの制御方法
JP2015115623A (ja) * 2013-12-09 2015-06-22 三菱電機株式会社 経路探索方法及びネットワーク管理装置
JP2016111648A (ja) * 2014-12-10 2016-06-20 富士通株式会社 通信制御プログラム、通信制御装置、通信システム、及び、通信制御方法
WO2016152903A1 (ja) * 2015-03-24 2016-09-29 日本電気株式会社 通信システム、制御装置、制御方法及びプログラム
WO2018003597A1 (ja) * 2016-06-29 2018-01-04 日本電気株式会社 サーバ、スイッチ、通信システム、通信方法、及び記録媒体
JP2018050306A (ja) * 2011-08-17 2018-03-29 ニシラ, インコーポレイテッド 分散論理l3ルーティング
US10541861B2 (en) 2015-08-19 2020-01-21 Fujitsu Limited Network system, method, and switch device
EP2993836B1 (en) * 2013-06-14 2020-02-19 Huawei Technologies Co., Ltd. Method and device for routing data message
US10938713B2 (en) 2015-11-24 2021-03-02 Nec Corporation Flow control device, communication system, flow control method, and recording medium

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011043363A1 (ja) * 2009-10-07 2011-04-14 日本電気株式会社 通信システムの制御装置、制御方法及びプログラム
BR112014007795A2 (pt) * 2011-10-05 2017-04-18 Nec Corp sistema de redução de carga e sistema de redução de carga
US8644149B2 (en) * 2011-11-22 2014-02-04 Telefonaktiebolaget L M Ericsson (Publ) Mechanism for packet forwarding using switch pools in flow-based, split-architecture networks
CN102625363B (zh) * 2011-12-09 2017-08-25 南京中兴软件有限责任公司 一种移动分组域网络系统
KR101887581B1 (ko) * 2011-12-26 2018-08-14 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
US9559959B2 (en) * 2012-03-09 2017-01-31 Nec Corporation Control apparatus, communication system, switch controlling method and program
US20130250802A1 (en) * 2012-03-26 2013-09-26 Praveen Yalagandula Reducing cabling costs in a datacenter network
WO2013145780A1 (en) * 2012-03-30 2013-10-03 Nec Corporation Communication system, control apparatus, communication apparatus, communication control method, and program
WO2013152496A1 (zh) * 2012-04-12 2013-10-17 华为技术有限公司 接收信息的方法、发送信息的方法及装置
CN103220225B (zh) * 2012-05-21 2015-07-08 华为技术有限公司 报文处理方法及设备、系统
US20150288595A1 (en) * 2012-11-15 2015-10-08 Nec Corporation Control apparatus, communication system, control information creation method, and program
WO2014077313A1 (ja) * 2012-11-16 2014-05-22 日本電気株式会社 通信システム、制御装置、その制御方法及びプログラム
JPWO2014104278A1 (ja) * 2012-12-28 2017-01-19 日本電気株式会社 制御装置、制御装置の制御方法及びプログラム
WO2014112614A1 (ja) 2013-01-21 2014-07-24 日本電気株式会社 制御情報管理装置、制御情報提示方法及びプログラム
KR20140106235A (ko) * 2013-02-26 2014-09-03 한국전자통신연구원 오픈플로우 스위치 및 그 패킷 처리 방법
US9515872B2 (en) * 2013-03-12 2016-12-06 Dell Products L.P. Systems and methods for tunnel-free fast rerouting in internet protocol networks
US9219689B2 (en) 2013-03-15 2015-12-22 International Business Machines Corporation Source-driven switch probing with feedback request
US9954781B2 (en) 2013-03-15 2018-04-24 International Business Machines Corporation Adaptive setting of the quantized congestion notification equilibrium setpoint in converged enhanced Ethernet networks
US9401857B2 (en) 2013-03-15 2016-07-26 International Business Machines Corporation Coherent load monitoring of physical and virtual networks with synchronous status acquisition
US9253096B2 (en) 2013-03-15 2016-02-02 International Business Machines Corporation Bypassing congestion points in a converged enhanced ethernet fabric
KR20140134943A (ko) * 2013-05-15 2014-11-25 삼성전자주식회사 통신 망에서 소프트웨어 정의 네트워크를 이용한 데이터 전달 장치 및 방법
KR20140134998A (ko) 2013-05-15 2014-11-25 삼성전자주식회사 통신 시스템에서 음성 서비스 성능 향상을 위한 방법 및 장치
KR102088721B1 (ko) 2013-06-25 2020-03-13 삼성전자주식회사 SDN 기반 LTE Network 구조 및 동작 방안
US9736041B2 (en) * 2013-08-13 2017-08-15 Nec Corporation Transparent software-defined network management
CN103414611B (zh) * 2013-08-21 2016-04-20 宁波成电泰克电子信息技术发展有限公司 一种高速负载网络均衡系统的流量统计方法
JP6364761B2 (ja) * 2013-12-18 2018-08-01 日本電気株式会社 ネットワークシステムおよび通信方法
EP3079327B1 (en) * 2013-12-30 2018-06-06 Huawei Technologies Co., Ltd. Information transmission method, device and system
WO2015109486A1 (zh) * 2014-01-23 2015-07-30 华为技术有限公司 报文的隧道处理方法、交换设备及控制设备
US8989199B1 (en) 2014-02-24 2015-03-24 Level 3 Communications, Llc Control device discovery in networks having separate control and forwarding devices
US9338694B2 (en) * 2014-06-16 2016-05-10 Freescale Semiconductor, Inc. Wireless communication system with SIPTO continuity
US10355984B2 (en) 2014-06-18 2019-07-16 Hewlett Packard Enterprise Development Lp Automatic re-routing of network traffic in a software-defined network
WO2015192360A1 (zh) * 2014-06-19 2015-12-23 华为技术有限公司 一种发送数据包的方法及装置
EP3142310B1 (en) 2014-06-30 2022-06-15 Huawei Technologies Co., Ltd. Method, device, and system for configuring flow entries
US9762495B1 (en) * 2016-09-13 2017-09-12 International Business Machines Corporation Weighted distribution across paths of degraded quality
CN109218175A (zh) * 2017-06-30 2019-01-15 华为技术有限公司 一种路径数据的删除方法、一种消息转发方法和装置
CN111917656B (zh) * 2017-07-27 2023-11-07 超聚变数字技术有限公司 传输数据的方法和设备
JP6778223B2 (ja) * 2018-02-07 2020-10-28 日本電信電話株式会社 機能連携装置、仮想マシン通信システム、および、機能連携方法
CN110912825B (zh) * 2018-09-18 2022-08-02 阿里巴巴集团控股有限公司 一种报文的转发方法、装置、设备及系统
US20220247719A1 (en) * 2019-09-24 2022-08-04 Pribit Technology, Inc. Network Access Control System And Method Therefor
TWI789169B (zh) * 2021-12-21 2023-01-01 大陸商達發科技(蘇州)有限公司 向量包處理轉發方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000059374A (ja) * 1998-08-06 2000-02-25 Fujitsu Ltd Atm網のpvcのリルーティング方法および網管理システム
JP2001237889A (ja) * 2000-02-25 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> データ通信網における迂回経路制御方法及び装置
JP2001345810A (ja) * 2000-06-06 2001-12-14 Nec Corp コネクション迂回システム
JP2003289325A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd 通信ネットワークの迂回経路設計方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425146B1 (en) * 1989-10-23 1996-03-13 AT&T Corp. Apparatus for controlling a digital crossconnect system from a switching system
US8199649B2 (en) * 2001-03-28 2012-06-12 Alcatel Lucent Method and apparatus for rerouting a connection in a data communication network based on a user connection monitoring function
US7606237B2 (en) * 2003-03-31 2009-10-20 Alcatel-Lucent Usa Inc. Sharing restoration path bandwidth in mesh networks
JP4682887B2 (ja) * 2006-03-22 2011-05-11 日本電気株式会社 故障復旧方法およびノードならびにネットワーク
US8374092B2 (en) * 2006-08-28 2013-02-12 Cisco Technology, Inc. Technique for protecting against failure of a network element using multi-topology repair routing (MTRR)
US8160056B2 (en) * 2006-09-08 2012-04-17 At&T Intellectual Property Ii, Lp Systems, devices, and methods for network routing
JP2008211567A (ja) * 2007-02-27 2008-09-11 Nec Corp トラフィック経路変更方法及びシステム
US8345559B2 (en) * 2007-07-30 2013-01-01 Alcatel Lucent MPLS diagnostics tool

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000059374A (ja) * 1998-08-06 2000-02-25 Fujitsu Ltd Atm網のpvcのリルーティング方法および網管理システム
JP2001237889A (ja) * 2000-02-25 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> データ通信網における迂回経路制御方法及び装置
JP2001345810A (ja) * 2000-06-06 2001-12-14 Nec Corp コネクション迂回システム
JP2003289325A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd 通信ネットワークの迂回経路設計方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014519213A (ja) * 2011-06-02 2014-08-07 日本電気株式会社 通信システム、制御装置、転送ノード、通信システムの制御方法およびプログラム
US11695695B2 (en) 2011-08-17 2023-07-04 Nicira, Inc. Logical L3 daemon
JP2018050306A (ja) * 2011-08-17 2018-03-29 ニシラ, インコーポレイテッド 分散論理l3ルーティング
US10868761B2 (en) 2011-08-17 2020-12-15 Nicira, Inc. Logical L3 daemon
JP2015511097A (ja) * 2012-03-23 2015-04-13 日本電気株式会社 通信システム、制御装置、通信方法、及びプログラム
WO2013140796A1 (en) * 2012-03-23 2013-09-26 Nec Corporation Communication system, control device, communication method and program
JPWO2014112616A1 (ja) * 2013-01-21 2017-01-19 日本電気株式会社 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
WO2014112616A1 (ja) * 2013-01-21 2014-07-24 日本電気株式会社 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
EP2993836B1 (en) * 2013-06-14 2020-02-19 Huawei Technologies Co., Ltd. Method and device for routing data message
JP2015091035A (ja) * 2013-11-06 2015-05-11 富士通株式会社 情報処理システム,スイッチ装置及び情報処理システムの制御方法
US9960955B2 (en) 2013-11-06 2018-05-01 Fujitsu Limited Information processing system, switching device, and method for controlling information processing system
JP2015115623A (ja) * 2013-12-09 2015-06-22 三菱電機株式会社 経路探索方法及びネットワーク管理装置
JP2016111648A (ja) * 2014-12-10 2016-06-20 富士通株式会社 通信制御プログラム、通信制御装置、通信システム、及び、通信制御方法
JPWO2016152903A1 (ja) * 2015-03-24 2018-01-18 日本電気株式会社 通信システム、制御装置、制御方法及びプログラム
US10348623B2 (en) 2015-03-24 2019-07-09 Nec Corporation Communication system, control apparatus, control method and program
WO2016152903A1 (ja) * 2015-03-24 2016-09-29 日本電気株式会社 通信システム、制御装置、制御方法及びプログラム
US10541861B2 (en) 2015-08-19 2020-01-21 Fujitsu Limited Network system, method, and switch device
US10938713B2 (en) 2015-11-24 2021-03-02 Nec Corporation Flow control device, communication system, flow control method, and recording medium
EP3481012A4 (en) * 2016-06-29 2020-01-01 Nec Corporation SERVER, SWITCH, COMMUNICATION SYSTEM, COMMUNICATION METHOD AND RECORDING MEDIUM
JPWO2018003597A1 (ja) * 2016-06-29 2019-05-09 日本電気株式会社 サーバ、スイッチ、通信システム、通信方法、及びプログラム
US10735276B2 (en) 2016-06-29 2020-08-04 Nec Corporation Server, communication method, and recording medium
WO2018003597A1 (ja) * 2016-06-29 2018-01-04 日本電気株式会社 サーバ、スイッチ、通信システム、通信方法、及び記録媒体

Also Published As

Publication number Publication date
US20110261723A1 (en) 2011-10-27
JP5621781B2 (ja) 2014-11-12
JPWO2011043379A1 (ja) 2013-03-04
US8792388B2 (en) 2014-07-29

Similar Documents

Publication Publication Date Title
JP5621781B2 (ja) ネットワークシステムとコントローラと方法とプログラム
JP5652400B2 (ja) ネットワークシステムとコントローラ、方法とプログラム
JP6418261B2 (ja) 通信システム、ノード、制御装置、通信方法及びプログラム
JP5494668B2 (ja) 情報システム、制御サーバ、仮想ネットワーク管理方法およびプログラム
JP5626214B2 (ja) 通信システム、ノード、制御サーバ、通信方法およびプログラム
JP5880570B2 (ja) マッピングサーバ装置、ネットワークシステム、パケット転送方法およびプログラム
JP5994851B2 (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
EP2493128A1 (en) Communication system, flow control apparatus, flow table updating method and program
WO2014129624A1 (ja) 制御装置、通信システム、経路切替方法及びプログラム
JP5747997B2 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP5637289B2 (ja) 通信システム、ノード、制御サーバ、通信方法およびプログラム
JP5573909B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP6314970B2 (ja) 通信システム、制御装置、通信方法およびプログラム
JP6036940B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
WO2014142081A1 (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: 10822049

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011535424

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10822049

Country of ref document: EP

Kind code of ref document: A1