WO2011043312A1 - ネットワークシステムとコントローラ、方法とプログラム - Google Patents
ネットワークシステムとコントローラ、方法とプログラム Download PDFInfo
- Publication number
- WO2011043312A1 WO2011043312A1 PCT/JP2010/067404 JP2010067404W WO2011043312A1 WO 2011043312 A1 WO2011043312 A1 WO 2011043312A1 JP 2010067404 W JP2010067404 W JP 2010067404W WO 2011043312 A1 WO2011043312 A1 WO 2011043312A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- alternative route
- node
- flow
- flow information
- controller
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/247—Multipath using M:N active or standby paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Definitions
- 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 protocol, and controls the flow at, for example, an 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.
- API Application Program Interface
- the controller determines the path 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.
- the predetermined field of the packet header is used for matching (matching) with the rules of the switch flow table.
- Match target information includes MAC (Media Access Control) DA (MAC destination address), MAC SA (MAC source address), Ethernet type (TPID), VLAN ID (Virtual Area Network) ID, VLAN TYPE (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 ControlControl) Protocol) Type) Destination port (TCP / UDP destination port, or,, ICMP Code) including (see Figure 20).
- MAC Media Access Control
- MAC SA MAC source address
- Ethernet type TPID
- VLAN ID Virtual Area Network ID
- VLAN TYPE 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
- FIG. 21 illustrates action names and action contents.
- OUTPUT is output to a designated port (interface).
- SET_VLAN_VID to SET_TP_DST are actions for modifying the field of the packet header.
- the switch forwards the packet to the physical port and the following virtual port.
- FIG. 22 illustrates a virtual port.
- IN_PORT outputs a packet to an input port.
- NORMAL processes using an existing forwarding path supported by the switch.
- the FLOOD is transferred to all the ports in the communicable state (Forwarding state) except for the port from which the 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 rules and actions are shown.
- a table storing a flow entity is called a flow entity table.
- a flow table is provided with a table consisting only of a destination IP address and a table consisting of a combination of a destination IP address and a source IP address, and the two tables are selectively used according to the contents of the flow, and transmitted step by step.
- An IP flow multi-stage hash device is disclosed that performs detailed flow control and prevents an increase in the flow table by additionally registering the original IP address and L4 port number, but it does not delete or change the flow. Absent.
- the controller determines a route for transferring the packet, and for each node on the route, the packet is sent to the route. Along with this, the setting of the flow entity for transfer is instructed.
- the matching (match) between a packet header and a flow entity table may be implemented by hardware such as CAM (content addressable memory).
- CAM content addressable memory
- the inventors of the present application have created a method that can reduce the number of flows that pass through a routed node and reduce the number of flow entities registered in the node. To do.
- flow aggregation is the integration of a plurality of flows that pass through a certain node into one flow, and the flow information of a plurality of entries respectively corresponding to the plurality of flows registered in the node is integrated into a single flow. Corresponding to integration into one entry.
- the invention disclosed in the present application is generally configured as follows.
- a controller that controls the flow of a plurality of subordinate nodes When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Obtaining a plurality of alternative route candidates that do not pass through the certain node through which the flow of the movement target matches, and the transmission source and destination of the route corresponding to the flow of the movement target match; Determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; A network control method for aggregating flows of nodes on the alternative route is provided.
- a plurality of nodes whose flow is controlled by a controller;
- the controller With The controller is When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Obtaining a plurality of alternative route candidates that do not pass through the certain node through which the flow has passed, the source and destination of the route corresponding to the flow to be moved match; Determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; A network system that aggregates the flows of the nodes on the alternative route is provided.
- a node state changing unit that controls a change in the state of a subordinate node;
- a flow information setting unit for instructing each node on a path corresponding to the flow to set flow information that defines an operation in a node for the flow;
- An alternative route calculation unit that determines an alternative route according to a predetermined criterion from among the plurality of alternative route candidates;
- a route aggregation execution unit for aggregating flows of nodes on the alternative route;
- a controller is provided.
- a node state change process for controlling a change in the state of a subordinate node; Flow information setting processing for setting flow information that defines an operation in a node for a flow to each node on a route corresponding to the flow; When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Finding an alternative route candidate that does not pass through the certain node through which the flow has passed, with the source and destination of the route corresponding to the flow to be moved matched, An alternative route calculation process for determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; Route aggregation execution processing for aggregating flows of nodes on the alternative route; A program for causing the controller to execute is provided.
- the present invention also provides a computer-readable recording medium that records the program.
- the number of flows passing through a node can be reduced, and the number of flow information entries registered in the node can be reduced.
- the controller 20 that controls the flow of the subordinate node replaces the flow that passes through the node with another node that does not pass through the node through which the flow has passed.
- the source and destination of the route corresponding to the flow to be moved are matched, and an alternative route candidate that does not pass through the node through which the flow to be moved has passed is obtained.
- the alternative route is determined according to the criteria, and the flows of each node on the alternative route are aggregated.
- the controller includes a state changing unit (switch state changing unit 206) that controls a change in the state of a subordinate node (for example, the switch 10 in FIG. 1), A flow information setting unit (flow entity setting unit 202) for instructing each node on the route corresponding to the flow to set the flow information defining the operation of the node with respect to the flow; When moving a flow that passes a certain node to another alternative route that does not pass the node that the flow has passed, Find the alternative route candidate that does not pass the node through which the flow passed, and the source and destination of the route corresponding to the flow to be moved match.
- An alternative route calculation unit (210) for determining an alternative route according to a predetermined criterion from among alternative route candidates;
- a route aggregating unit (207, 208) for aggregating the flows of the respective nodes on the alternative route.
- the controller (20) instructs each node on the path corresponding to the flow to set the flow information that defines the operation of the node for the flow,
- Each node (10 in FIG. 1) holds the flow information of the number of entries corresponding to the number of flows passing through the node in the table according to an instruction from the controller (20).
- the controller (20) aggregates the flows of the nodes on the alternative path
- the controller (20) aggregates the entries of the flow information corresponding to the flows at the nodes on the alternative path.
- the controller (20) determines an alternative route from the alternative route candidates based on the number of entries in the flow information of the node on the alternative route candidate. In this case, the controller 20 obtains the total number of flow information entries of each node on the alternative route candidates for each of the alternative route candidates, and the total number of flow information entries from among the alternative route candidates is greater than the others. A small alternative route candidate may be determined as an alternative route. Alternatively, the controller (20) obtains the maximum value of the number of entries in the flow information of each node on the alternative route candidate for each of the alternative route candidates, and the maximum value of the number of entries in the flow information is determined from the alternative route candidates. An alternative route candidate smaller than the other may be determined as an alternative route.
- the controller 20 may be configured to determine an alternative route based on the traffic amount of the node on the alternative route candidate from the alternative route candidates.
- the controller (20) obtains the total amount of traffic of each node on the alternative route candidate for each of the alternative route candidates, and from among the alternative route candidates, the alternative route candidate whose total traffic amount is smaller than the others. May be determined as an alternative route.
- the controller (20) obtains the maximum value of the traffic amount of each node on the alternative route candidate for each of the alternative route candidates, and from among the alternative route candidates, the alternative route with the maximum traffic amount being smaller than the others.
- the candidate may be determined as an alternative route.
- the controller (20) refers to the flow information already set for each node on the alternative route candidate, and the entry of the flow information of each node on the alternative route candidate passes through the node and is the target of movement.
- the flow information entry corresponding to the flow and how much aggregation can be obtained may be obtained, and the alternative route may be determined from the alternative route candidates.
- the flow information includes at least a rule for collating with the header of the packet input to the node, and an action for defining an operation including forwarding at the node for a packet that hits the rule.
- the controller (20) matches the action of the entry of the flow information for each of the nodes on the alternative route candidates, and the number of rule matches And the entry of the flow information with the highest number of matches is set as the aggregation target.
- the controller (20) when there are a plurality of flow information entries with the same maximum number of matches, the controller (20) has a plurality of combinations according to the combination with the rule element of the flow information entry of the node through which the flow has passed.
- the flow information entries of the set having the largest number of flow information entries among a plurality of groups are to be aggregated, and for each of the alternative route candidates, the flow information to be aggregated regarding the nodes on the alternative route candidates
- An alternative route may be determined based on the total number of entries.
- the controller (20) creates a new flow information entry using a field of non-matching elements in the rule as a wild card for a plurality of flow information entries that can be aggregated in a node on an alternative route. Instruct the node to set. In the node, the flow information entry that can be aggregated is deleted from the node.
- the controller (20) may aggregate the flows that pass through the node and then move the flow to the alternative route.
- the number of flow information entries set in a node can be reduced by moving the flow passing through the node to another alternative route that does not pass through the node through which the flow has passed. .
- the node by moving the flow passing through the node to another alternative route, it is possible to maintain, adjust, etc. an empty port in the node, and to move the flow passing through the node to another alternative route.
- the node can be removed from the network for maintenance and adjustment.
- flow shifting for example, during night operation.
- a node whose flow is controlled by a controller will be described as a switch.
- the node is not limited to such a configuration.
- 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 a packet that has arrived corresponds.
- the rule to be searched is searched from the flow entity table (flow table), and if it matches, the action is executed.
- the switch (OFS) 10 notifies the controller 20 when the arrived packet does not match the rule of the flow entity table.
- a flow having priority and high priority is effective.
- the controller 20 calculates an appropriate route based on the packet sent from the switch (OFS) 10, generates a flow, and instructs the switch group serving as the route to set the flow.
- 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 (Node) 30 in the figure has two or more network interfaces such as a server, a load balancer, a firewall, a storage (NAS (Network Attached Storage), a SAN (Storage Area Network)), a cluster storage, and other distributed storage nodes. 1, the node 30 is a node that does not receive flow control from the controller 20 that performs flow control on the plurality of switches 10.
- the node 30 has a function of communicating with the controller 20. 1, for the sake of simplicity, it is described as a configuration in which the switch 10 is controlled by a single controller 20, but each of the plurality of controllers has one subordinate or Multiple switches Of course, it is also possible to adopt a configuration for controlling the H.
- the controller 20 holds the connection state of the switch 10 and the node 30 as topology information.
- the set route information is held as effective route information.
- the controller 20 manages which route all flows pass through. For identification of the flow, a MAC address, an IP address, a port number, or the like can be used.
- aggregation refers to handling multiple flows with different destination fields together as a single flow with the same destination address for the packet header that matches the rules of the flow entity regarding the flow of packets. Say. In this case, fields other than the destination address are treated as any (arbitrary).
- the rule of the flow entity is set to wild card.
- the number of entries in the flow entity table of the switch is reduced by considering the aggregation of flows when a path (path) is replaced.
- the controller 20 moves the flows 1, 2, and 3 that pass through the switch X separately, the flows 1 and 2 can be aggregated, and therefore, the controller 20 collectively passes through the switch Y as one flow. Going to flow, flow 3 is going to flow through switch Z. There are the following two modes for moving the flow.
- (A) and (B) may be mixed.
- the flow is moved to the movement destination collectively in a unit that can be aggregated, and can be aggregated with the existing flow that passes through the switch of the movement destination. For this reason, in the movement destination switch, an increase in the flow entity can be suppressed even after the flow movement.
- only one of the flows passing through the switch X may be moved to the other switch, and the other flow may pass through the switch X as before.
- all flows passing through the switch X may be moved to another route. In this case, this corresponds to removing the switch X from the route on the network and detouring to another route.
- Controller 20 receives the switch of the movement source designated by the administrator.
- the controller 20 collects the flows that pass through the source switch for each flow that has the same exit (for example, the same destination IP address).
- the controller 20 determines an alternative switch candidate as a movement destination.
- the controller 20 determines an optimum destination switch from the destination switch candidates. ⁇ The switch with the smallest load is the optimum switch. -Count the number of flows that pass through each switch and whose exit is the same as the flow to be moved. The switch with the largest number of flows is set to the optimum switch as the destination switch.
- the controller 20 changes the route so that the flow group to be moved passes through the destination switch.
- the flow entities in the movement target flow group are aggregated into one flow entity, and the aggregated flow entities are registered in the flow entity table of the movement destination switch.
- the flows in the destination switch are also aggregated with the groups of flows that can be aggregated.
- FIG. 3 is a diagram illustrating a configuration example of the controller 20.
- 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 for storing node and switch network topology, and route calculation A route calculation unit 205 that performs switching, a switch state change unit 206 that changes a switch state, a route aggregation execution unit 207 that aggregates routes, an aggregate route storage unit 208 that stores aggregated routes, and a destination An alternative route calculation unit 210 that calculates a route including an alternative switch Eteiru.
- the alternative route calculation unit 210 refers to the topology information 204, calculates an alternative route candidate whose destination matches the transmission source and destination of the route corresponding to the movement target flow, and the influence degree of the alternative route candidate. And an alternative route determination unit 213 for determining an alternative route from the influence degree of each alternative route candidate. It goes without saying that each part of the controller 20 may realize its function by a program executed on the controller 20 (computer).
- FIG. 4 is a diagram illustrating a configuration example of the switch 10.
- the switch 10 sets 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 of the first packet, and a flow entity instructed by the controller 20. And a flow entity setting unit 104.
- a node that can function as an OFS and operates as a layer 2 switch, a layer 3 switch, a router, or the like.
- FIG. 5 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 route corresponds to each entry, and route configuration information of the one route corresponds.
- information on the switch (switch ID, interface) to which a packet is formed that forms a route and the controller 20 creates a new route, and header information of the packet And a pointer pointing to route configuration information corresponding to the route.
- 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. .
- a route is composed of n switches, there are n pairs of identification information of the switch and pointers to flow entities and aggregated flow entities set in the switch, which correspond to the corresponding entry in the route management table. Pointed to by the pointer.
- 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.
- the aggregate route storage unit 208 stores the route configuration information aggregated by the route aggregation execution unit 207.
- FIG. 6 is a diagram illustrating an example of a data structure stored in the aggregate route storage unit 208.
- the aggregate route management table has switch identification information for each switch and a pointer (pointer to the aggregate flow entity table for each switch) that points to the aggregate flow entity table for each switch.
- the aggregated flow entity table for each switch is a table storing a plurality of sets of aggregated flow entities and pointer lists to flow entities corresponding to the aggregated flow entities.
- a plurality of aggregate flow entities in the aggregate flow entity table stored and held in the aggregate route storage unit 208 of the controller 20 are actually set and registered in the corresponding switch 10.
- the pointer list to the flow entity provided corresponding to the aggregated flow entity is a list in which a plurality of pointers (so-called back pointers) indicating the flow entity (FIG. 5) aggregated to the aggregated flow entity are stored. It is.
- the aggregated flow entity corresponding to the pointer list to the flow entity has a plurality of flow entities pointed to by the pointer. It is created by being aggregated into an aggregate flow entity. Further, when the number of pointers in the pointer list to the flow entity is 1, the flow entity is not aggregated.
- the aggregated flow entity corresponding to the pointer list to the flow entity is not actually referenced, and is deleted.
- the route calculated by the route calculation unit 205 is registered in the route management table (see FIG. 5) and the route configuration information is created, the following operation is performed on each entry in the route configuration information.
- the corresponding aggregated flow entity table for each switch is selected from the aggregated route management table.
- the information of the flow entity in the corresponding entry is copied and stored in a new field in the aggregated flow entity table for each switch. Further, the address of the corresponding entry is stored in the pointer to the flow entity.
- FIG. 7 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. However, when the flow is reduced according to the present embodiment, one flow is stored. Entities will support multiple flows.
- the flow entity
- the flow entity of the flow entity table 102 includes rules and actions.
- 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), ICMP (Internet Control Message Protocol) ICMP type, ICMP code, TCP / UDP Includes source port and destination port.
- the action is -Action type-Output (OUTPUT), Packet header field conversion (Field Modify), including.
- the header field conversion is shown in FIG.
- the output interface (port) is included.
- the action is header field conversion
- the field to be changed and the value to be changed are included.
- 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).
- FIG. 8 is a flowchart for explaining the operation of the embodiment of the present invention.
- Step 1 The flow F passing through the switch X is moved so as not to pass through the switch X. That is, the administrator gives the switch X and the flow F to be moved as inputs to the switch state changing unit 206 of the controller 20 (S1).
- Step 2 The switch state changing unit 206 of the controller 20 examines the flow transmission source and the transmission destination and sets them to S and D, respectively, and causes the alternative route calculation unit 210 to calculate an alternative route (S2).
- Step 3 The alternative route candidate calculation unit 211 of the alternative route calculation unit 210 refers to the topology information 204 and calculates an alternative route candidate based on the topology information 204 from which the switch X is removed (S3). At that time, a route having the same transmission source and destination corresponding to the flow F is set as an alternative route candidate.
- the alternative route candidate calculation unit 211 transmits the packet header information that triggered the route creation registered in each entry of the route management table (FIG. 5) of the effective route storage unit 203 that stores the valid route information. And the destination information and the switch identification information of the path configuration information pointed to by the entry may be searched, and the alternative path candidate corresponding to the flow F passing through the switch X may be extracted from the existing paths.
- the alternative route candidate calculation unit 211 may notify the administrator of an error (no alternative route candidate is found) via the switch state change unit 206.
- a new alternative route may be calculated with reference to the topology information 204.
- Step 4 The influence calculation unit 212 of the alternative route calculation unit 210 performs the following step 5 for each alternative route candidate Ri (S4).
- Step 5 The influence degree Ei is obtained for each alternative route candidate Ri (S5).
- Step 6 Repeat from step 4 (loop) (S6).
- Step 7 The alternative route determination unit 213 of the alternative route calculation unit 210 selects, for example, an alternative route candidate Ri having the smallest influence degree Ei as an alternative route (S7).
- Step 8 The switch state changing unit 206 instructs the flow entity setting unit 202 to delete the flow entity related to the flow F in each switch of the old route in the effective route storage unit 20 (S8).
- the flow entity setting unit 104 of the switch 10 deletes, from the flow entity table 102, the flow entity that is instructed to be deleted from the flow entity setting unit 202 of the controller 20.
- Step 9 The following is performed for each switch in the alternative route Ri (S9).
- Step 10 The route aggregation executing unit 207 aggregates routes that can be aggregated and registers them in the aggregated route storage unit 208 (S10).
- Step 11 The switch state change unit 206 instructs the flow entity setting unit 202 to set the flow entity of the switch on the alternative route, and the flow entity setting unit 202 sets the flow entity of each switch 10 corresponding to the alternative flow. Is registered (S11).
- the flow entity setting unit 104 of the switch 10 registers the flow entity set from the flow entity setting unit 202 of the controller 20 in the flow entity table 102.
- the switch state change unit 206 of the controller 20 checks whether it can be aggregated with the flow entities already registered in the flow entity table of the switch, and aggregates them if aggregation is possible.
- Step 12 Repeat from Step 9 (S12).
- step S5 As the definition of the degree of influence in step S5, various modifications can be made as described later.
- Step 1 The pointer of the aggregated flow entity Am (see FIG. 5) is acquired from the entry of the flow entity Ek to be aggregated in the route configuration information in the valid route storage unit 203.
- Step 2 In the aggregate route storage unit 208, the aggregated flow entity Am in the aggregated flow entity table for each switch pointed to by the pointer of the aggregated flow entity Am is referred to, and in the pointer list to the flow entity corresponding to the aggregated flow entity Am (FIG. 6). The pointer indicating the flow entity Ek to be aggregated is deleted from the reference).
- Step 3 If the number of pointers in the pointer list to the flow entity corresponding to the aggregated flow entity Am in the aggregated flow entity table for each switch in the aggregated route storage unit 208 becomes 0 in step 2, the aggregated flow entity Am Is deleted. Further, the flow entity setting unit 202 is instructed to delete the flow entity Am from the switch Si.
- Step 4 If Steps 1 to 3 are not executed for all the flow entities E1 to En to be aggregated, the process returns to Step 1 (repetitive processing of E1 to En).
- Step 5 In the aggregated route storage unit 208, a new aggregated flow entity Ax is added to the switch-specific aggregated flow entity table corresponding to the switch Sj in the aggregated route management table. Further, the flow entity setting unit 202 is instructed to add the flow entity Ax in the switch Si.
- Step 6 In the aggregate route storage unit 208, the pointers to the flow entities E1 to En are stored in the pointer list to the flow entity corresponding to the aggregated flow entity Ax.
- Step 7 Store the pointer to the aggregate flow entity Ax in the pointer to the aggregate flow entity corresponding to each of the flow entities E1 to En of the path configuration information in the valid path storage unit 203.
- FIG. 9 is a diagram showing a network configuration to which the present invention is applied.
- the source node or switch of the flow F is S
- the destination (destination) node or switch is D.
- the transmission source and transmission destination may be IP addresses or MAC addresses.
- the current route of this flow F (the route that realizes the packet flow F) is: S ⁇ SW1 ⁇ SW2 ⁇ SW3 ⁇ D It becomes.
- This route (S.fwdarw.SW1.fwdarw.SW2.fwdarw.SW3.fwdarw.D) is the packet header information that triggered the route creation in the route management table (see FIG. 5) of the effective route storage unit 203 of the controller 20, and the route management table. Is registered as route configuration information (including switch information and flow entities for each switch constituting the route).
- the switch SW1 is connected to the transmission source S and the switches SW2 and SW5 via three interfaces (not shown), and the switch SW2 is connected to the switches SW1, SW4, and SW6 via four interfaces (not shown).
- SW3 the switch SW4 is connected to the transmission source S and the switches SW2, SW5 through three interfaces (not shown), and the switch SW5 is connected to the switches SW4, SW1, SW3, SW6 through four interfaces (not shown).
- the switch SW3 is connected to the switches SW2, SW5, and the destination D through three interfaces (not shown), and the switch SW6 is connected to the switches SW2, SW5, and the destination D through three interfaces (not shown). To do.
- FIG. 10 is a diagram illustrating selection of alternative route candidates by the alternative route candidate calculation unit 211 (FIG. 3) of the alternative route calculation unit 210.
- An alternative route candidate having the same transmission source (S) and transmission destination (D) as the old route (flow F) is selected.
- the alternative route candidate calculation unit 211 is provided for each route in the route management table (see FIG. 5) of the effective route storage unit 203 and is a transmission source (S) and transmission destination (D) of a packet header that triggers the creation of the route. If they match, the path configuration information pointed to by the entry in the path management table is searched. If the switch SW2 is not included in the path, the path may be derived as an alternative path candidate. In FIG. 10, the transmission source (S) and the transmission destination (D) match, and the following three routes are obtained as alternative route candidates that do not include the switch SW2.
- Alternative route candidate 1 S ⁇ SW1 ⁇ SW5 ⁇ SW6 ⁇ SD
- Alternative route candidate 2 S ⁇ SW4 ⁇ SW5 ⁇ SW6 ⁇ SD
- Alternative route candidate 3 S ⁇ SW4 ⁇ SW5 ⁇ SW3 ⁇ SD
- the degree of influence on the flow F with respect to the switches SW1, SW5, and SW6 is sequentially obtained in the procedure of steps S6-S9 in FIG.
- the added value is the influence E1 of the alternative route candidate 1 as a whole.
- FIG. 11 is a diagram for explaining a first example of the definition of the influence degree Ei in the influence degree calculation unit 212.
- the number of flow entities in the flow entity table 102 of the switches (SW1, SW3 to SW6) is defined as the degree of influence.
- the numerical value added to each of the switches SW1 to SW6 is the current number of flow entities (including the old path of the flow F). Also, old indicates the old route, and candidates 1, 2, and 3 indicate alternative route candidates 1, 2, and 3, respectively.
- the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
- FIG. 12 is a diagram illustrating a second example of the definition of the influence degree.
- the MAX (maximum) value of the number of flow entities is used as the degree of influence. That is, the influence value is the maximum value E2 of the number of flow entities in the flow entity table of each switch.
- the numerical value added to each switch is the current number of flow entities (including the old path of flow F).
- the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
- the increase in the number of flow entities due to the new route and the decrease in the number of flow entities due to the old route are not considered in the switch.
- the number of flow entities of the switch is used for the influence degree of the alternative route candidate, but the amount of traffic passing through the switch may be used.
- FIG. 13 is a diagram illustrating a configuration example of the controller 20 according to another embodiment of the present invention.
- the traffic amount is used as the influence degree.
- the controller 20 is added with the traffic volume management unit 214 configured as shown in FIG. 3, and the influence level calculation unit 212 ⁇ / b> A calculates the influence level based on the traffic volume of each switch from the traffic volume management unit 214. .
- FIG. 14 is a diagram illustrating the configuration of the switch 10.
- the configuration of FIG. 4 includes a traffic amount measurement unit 105 and a traffic amount notification unit 106 that notifies the controller 20 of the traffic amount.
- the traffic amount measuring unit 105 adds the size of the received packet per unit time to a counter (not shown).
- the traffic amount notifying unit 106 notifies the controller 20 of the value (reception data amount) of a counter (not shown) every predetermined unit time, and then clears the counter (not shown) to zero.
- a counter may start counting the received packet size immediately, or may start counting the received packet size after a predetermined period.
- the traffic amount measuring unit 105 may average the reception packet size count result per predetermined unit time several times and notify the controller 20 of the average received data amount. Alternatively, it is needless to say that the traffic amount measuring unit 105 of the switch 10 may be instructed to start the reception packet size counting operation from the controller 10 side.
- the influence degree of the influence degree calculation unit 212A will be described.
- FIG. 15 is a diagram illustrating an example in which the traffic amount is used as the influence degree of the alternative route candidate in the alternative route candidates 1, 2, and 3 in FIG.
- the influence is the total amount of traffic per unit time passing through the switch of the alternative route.
- numerical values 8, 6, 7, 5, 3, and 4 added to the switches SW1, SW2, SW3, SW4, SW5, and SW6 represent traffic amounts (relative amounts) per unit time that pass through the switches. ing.
- the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
- the traffic amount of the switch with the largest traffic amount in the route may be used as the degree of influence.
- the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence degree among the alternative route candidates 1, 2, and 3.
- FIG. 16 shows a procedure of the alternative route candidate influence calculation unit 212.
- Step 1 In the flow entity table of the switch, the flow entity (switch rule + action) of the switch to be moved of the flow to be registered is set to Fe (S101).
- Step 2 The influence calculation unit 212 performs the following operation on each switch in the alternative route candidate obtained by the alternative route candidate calculation unit 211 for the above flow (S102).
- Step 3 M ⁇ 0 (S103)
- Step 4 The following comparison with Fe is performed for each flow entity Fi in the flow entity table possessed by each switch in the alternative route candidate, and the degree of matching is obtained (S104).
- Step 5 The actions of the flow entities Fi and Fe in the flow entity table of each switch in the alternative route candidate are compared, and if they do not match, the number of matches (degree of match) is set to 0 (S105).
- Step 6 The number of identical elements among the rules of each flow entity Fi and Fe in the flow entity table possessed by each switch in the alternative route candidate is set as the matching degree (S106).
- Step 7 Repeat from Step 4 (S107).
- Step 8 The flow entity having the highest number of matches is set as an aggregation target with Fe (consolidated into one flow entity) (S108). However, if there are multiple items with a high degree of coincidence, it is determined as follows.
- Step 9 Create a set with the same rules that match Fe. All the flow entities in the set having the same number of elements as Fe in the rule are aggregated (aggregate into one flow entity) (S109).
- Step 10 Add the number of aggregation target entities to M (S110).
- Step 11 Repeat from Step 2 (S111).
- Step 12 The reciprocal of M is set as the influence degree of this alternative route candidate (S112).
- the reciprocal of M is set in accordance with the operation of selecting an alternative candidate having a minimum influence value in step S7 of FIG.
- FIG. 17 is a diagram illustrating determination of the number of entities that can be aggregated in the influence degree calculation unit 212 whose operation has been described with reference to FIG.
- Fe is a flow entity to be registered (flow entity to be aggregated), and the destination IP address of the rule is A, the source IP address is C, the source port is X, and the destination port is Y.
- the action for the packet whose packet header matches this rule is transfer to SW5.
- Flow entity 2 has an action (transfer to SW5) that matches the action of Fe (transfer to SW5), and the rule has a match number of 2 because the source IP address and the source port match.
- Flow entities 3 and 4 have the same destination IP address, source IP address, and source port.
- Flow entities 5 and 6 have the same destination IP address, source port, and destination port.
- Flow entities 7, 8, and 9 have the same source IP address, source port, and destination port.
- set 3 Since set 3 has the maximum number of elements (flow entities 7, 8, 9) and the number of sets, set 3 is selected and 3 is added to M.
- the flow entities 7, 8, 9 and the flow entity Fe to be registered are aggregated into one flow entity.
- FIG. 18 is a flowchart showing a procedure for registering the aggregated flow entities in the switch, and corresponds to step S11 in FIG.
- the route aggregation execution unit 207 of the controller 20 includes a flow entity that can be aggregated (for example, flow entities 7, 8, and 9 in FIG. 17B) and a flow entity that is to be registered (for example, Fe in FIG. 17A). Among them, a new aggregated flow entity is created with a field that does not match the rule as a wild card, and is stored in the corresponding entry of the aggregated flow entity for each switch managed in the aggregated management table of the aggregated path storage unit 208. 206 is notified. In response to the notification from the route aggregation execution unit 207, the switch state changing unit 206 instructs the flow entity setting unit 202 to set the newly created aggregated flow entity to the switch 10. The flow entity setting unit 104 of the switch 10 registers the flow entity (aggregated flow entity) notified from the flow entity setting unit 202 of the controller 20 in the flow entity table 102 (S11-1).
- the switch state changing unit 206 performs the original aggregatable flow entity aggregated in the aggregated flow entity (for example, FIG. 17 ( The flow entity setting unit 202 is notified to delete the flow entity 7, 8, 9) of B) from the flow entity table 102 of the switch 10.
- the flow entity setting unit 104 of the switch 10 receives the instruction to delete the flow entity from the flow entity setting unit 202 of the controller 20, deletes the corresponding flow entity from the flow entity table 102, and deletes the flow entity.
- the entity setting unit 202 is notified (S11-2).
- the flow entity registered in the flow entity table 102 of the switch 10 becomes invalid if no packet that matches the rule arrives for a period specified by the system, for example.
- the path configuration information on the path management table (see FIG. 5) of the effective path storage unit 203 and the related entries in the path management table are deleted.
- the node includes the switch (OFS) of the above-described embodiment, and includes any switch (L2 / L3 switch), a router, and the like whose flow is controlled by the controller.
- 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.
- OFS OpenFlow Switch
- MPLS Multi-Protocol Label Switching
- 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.
- Switch 20 Controller 30 Node 101 Packet processing part 102 Flow entity table 103 Packet notification part 104 Flow entity setting part 105 Traffic volume measurement part 106 Traffic volume notification part 201 Packet processing part 202 Flow entity setting part 203 Effective path
Abstract
Description
本発明は、日本国特許出願:特願2009-232307号(2009年10月6日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、移動対象の前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
前記代替経路上の各ノードのフローを集約するネットワーク制御方法が提供される。
前記コントローラと、
を備え、
前記コントローラは、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
前記代替経路上の各ノードのフローを集約するネットワークシステムが提供される。
フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定を指示するフロー情報設定部と、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部と、
前記代替経路上の各ノードのフローを集約する経路集約実行部と、
を備えているコントローラが提供される。
フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定処理と、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出処理と、
前記代替経路上の各ノードのフローを集約する経路集約実行処理と、
をコントローラに実行させるプログラムが提供される。
フローに対するノードでの動作を規定するフロー情報を、フローに対応した経路上の各ノードにそれぞれ設定を指示するフロー情報設定部(フローエンティティ設定部202)と、
あるノードを通過するフローを、フローが通っていたノードを通らない別の代替経路に移す際に、
移動対象のフローに対応する経路の送信元と宛先が一致し、フローが通っていたノードを通らない代替経路候補を求め、
代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部(210)と、
代替経路上の各ノードのフローを集約する経路集約部(207、208)と、を含む。
各ノード(図1の10)は、コントローラ(20)からの指示により、ノードを通過するフロー数に対応したエントリ数のフロー情報をテーブルに保持する。コントローラ(20)は、代替経路上の各ノードのフローを集約する際、代替経路上の各ノードにおけるフローに対応するフロー情報のエントリの集約を行う。
図1は、本発明が適用されるネットワークの一例を示す図である。図1において、スイッチ(OFS:Open Flow Switch)10は、コントローラ(Controller)20から設定されたフロー情報(ルール+アクションを含む、以下、「フローエンティティ」という)を保持し、到着したパケットが該当するルールをフローエンティティテーブル(フローテーブル)から検索し、一致した場合アクションを実行する。スイッチ(OFS)10は、到着したパケットがフローエンティティテーブルのルールに一致しない場合、コントローラ20に通知する。フローには、優先度があり優先度が高いものが有効となる。コントローラ20は、スイッチ(OFS)10から送られてきたパケットに基づき、適切な経路を算出し、フローを生成、経路となるスイッチ群にフローの設定を指示する。なお、図1において、スイッチ(OFS)10の接続構成は、一例でしかなく、FatTree、HyperCube等、ノード等との経路が複数存在すればよい。図中のノード(Node)30は、サーバ、ロードバランサ、ファイアウォール、ストレージ(NAS(Network Attached Storage)、SAN(Storage Area Network)、クラスタストレージ等の分散ストレージのノード、2つ以上のネットワークインタフェースを持つ。なお、図1において、ノード30は、複数のスイッチ10に対してフローの制御を行うコントローラ20からは、フローの制御は受けないノードである。ただし、ノード30はコントローラ20と通信する機能を備えた構成としてもよいことは勿論である。また、図1では簡単のため、1台のコントローラ20でスイッチ10を制御する構成として記載されているが、複数のコントローラがそれぞれ配下の1つ又は複数のスイッチを制御する構成としてもよいことは勿論である。
本発明の実施形態において、図2に示すように、経路(パス)の張替え時に、フローの集約を考慮することで、スイッチのフローエンティティテーブルのエントリ数を削減する。図2に示す例では、コントローラ20は、スイッチXを通過するフロー1、2、3を別に移す際に、フロー1、2は集約可能であるため、まとめて、1つのフローとしてスイッチYを通るフローに移し、フロー3は、スイッチZを通るフローに移している。フローの移動には、以下の2つのモードがある。
次に、フローの集約の概略を説明する。
・負荷の最も小さなスイッチを最適なスイッチとする。
・各スイッチを通過しているフローのうち、出口が移動対象のフローと同じフローの数を計数する。このフロー数が一番大きいスイッチを最適なスイッチを移動先のスイッチとする。
次に、図1のコントローラ20の構成を説明する。図3は、コントローラ20の構成例を示す図である。コントローラ20は、スイッチ10からのパケットを受信するパケット処理部201と、スイッチ10に対してフローエンティティを設定するフローエンティティ設定部202と、経路構成情報(経路を作成する契機となったパケットを入力するスイッチ情報、該パケットのヘッダー情報、該経路を構成するスイッチ識別情報とそのフローエンティティ)を記憶する有効経路記憶部203と、ノード、スイッチのネットワークトポロジーを記憶するトポロジー情報204と、経路を算出する経路算出部205と、スイッチの状態を変更するスイッチ状態変更部206と、経路の集約を行う経路集約実行部207と、集約された経路を記憶する集約経路記憶部208と、移動先となる代替スイッチを含む経路を算出する代替経路算出部210を備えている。代替経路算出部210は、トポロジー情報204を参照して、移動対象フローに対応する経路の送信元と宛先が一致する代替経路候補を算出する代替経路候補算出部211と、代替経路候補の影響度を算出する影響度算出部212と、各代替経路候補の影響度から代替経路を決定する代替経路決定部213を備えている。コントローラ20の各部はコントローラ20(コンピュータ)上で実行させるプログラムによりその機能を実現するようにしてもよいことは勿論である。
図4は、スイッチ10の構成例を示す図である。スイッチ10は、パケット処理部101と、フローエンティティテーブル(「フローテーブル」ともいう)102と、最初のパケットをコントローラに通知するパケット通知部103と、コントローラ20から指示されたフローエンティティの設定を行うフローエンティティ設定部104とを備えている。スイッチ10として、OFSとして機能可能な、レイヤ2スイッチや、レイヤ3スイッチ、ルータ等として動作するノードを適用することが可能である。
次に、有効経路記憶部203で記憶する情報を説明する。図5は、有効経路記憶部203に格納されるデータのデータ構造の一例を示す図である。
経路管理テーブルは、経路ごとの経路構成情報を管理するテーブルである。経路管理テーブルには1エントリ毎に1つの経路が対応し、該1つの経路の経路構成情報が対応する。経路管理テーブルの1つのエントリには、経路を形成し、コントローラ20が該経路を新たに作成する契機となったパケットが入力されたスイッチの情報(スイッチID、インタフェース)と、該パケットのヘッダー情報と、当該経路に対応する経路構成情報をさすポインタを有する。パケットのヘッダー情報に関して、ソース及びディスティネーションのIPアドレスを記録するようにしてもよい。
経路構成情報は、経路ごとに、経路を構成するスイッチ群(経路の始点から経路の中間点、終点)の各スイッチについて、スイッチの識別情報と該スイッチに設定されるフローエンティティとの組を有する。経路がn個のスイッチから構成される場合、スイッチの識別情報と該スイッチに設定されるフローエンティティおよび集約フローエンティティへのポインタとの組をn組有し、これが、経路管理テーブルの該当するエントリのポインタによってポイントされる。経路構成情報を参照することで、現在有効とされる経路がいかなるスイッチから形成されているかがわかる。フローエンティティはルールとアクションを含む(フロー統計情報を含んでもよい)。経路構成情報はテーブル構成としても良いし、スイッチ情報とフローエンティティの組が、経路上の次のスイッチに対応するスイッチ情報とフローエンティティの組をポイントするポインタを備えた線形リスト(リンクドリスト)として構成しても良い。なお、経路算出部205で新たな経路が算出された場合、スイッチ状態変更部206によって有効経路記憶部203の経路管理テーブルに経路構成情報が登録され、経路削除等、無効化された経路は、スイッチ状態変更部206によって有効経路記憶部203から削除される。
集約経路記憶部208は、経路集約実行部207で集約された経路構成情報を記憶する。図6は、集約経路記憶部208に格納されるデータ構造の一例を示す図である。集約経路管理テーブルはスイッチ毎にスイッチの識別情報と、スイッチ別の集約フローエンティティテーブルをポイントするポインタ(スイッチ別の集約フローエンティティテーブルへのポインタ)を有する。
図7は、スイッチ10に記憶されるフローエンティティテーブル102の構成例を示す図である。フローエンティティテーブルは、コントローラ20から指示されたフローエンティティをスイッチ10が記憶保持するテーブルである。n本の異なるフローがスイッチ10を通るとき、スイッチ10には、各フローに対応したn個のフローエンティティを保持するが、本実施形態によりフローの縮約が行われた場合、1個のフローエンティティが複数のフローに多重に対応することになる。なお、図7では、フローエンティティ=|ルール|アクション|とされ、1つのフローエンティティが1つのアクションを含む構成として例示されているが、本実施形態において、1つのフローエンティティが複数のアクションを含む構成、すなわち、フローエンティティ=|ルール|アクション1|アクション2|・・・|アクションm| (ただし、mは2以上の所定の整数)としてもよいことは勿論である。
・インプットインタフェース(ポート)
・MACソースアドレス
・MACディスティネーションアドレス
・VLAN(Virtual Local Area Network) ID、
・TYPE
・IPソースアドレス
・IPディスティネーションアドレス
・プロトコル(UDP(User Datagram Protocol)/TCP(Transmission Control Protocol)/ICPM)、ICMP(Internet Control Message Protocol)の場合ICMPタイプ、ICMPコード、TCP/UDPの場合、ソースポート、ディスティネーションポート
を含む。
・アクションのタイプ
・出力(OUTPUT)、
・パケットヘッダーのフィールドの変換(Field Modify)、
を含む。ヘッダーのフィールドの変換は、図22に示したものがある。
図8は、本発明の一実施形態の動作を説明するフローチャートである。
ステップS10の経路集約実行部207の処理手順の一例について以下に説明する。
図9は、本発明が適用されるネットワーク構成を示す図である。以下では、図9において、スイッチSW2を通過するフローFを移動させる場合について説明する。フローFの送信元のノード又はスイッチをS、送信先(宛先)ノード又はスイッチをDとする。送信元、送信先は、IPアドレスである場合もあるし、MACアドレスである場合もある。このフローFの現在の経路(パケットのフローFを実現する経路)は、
S⇒SW1⇒SW2⇒SW3⇒D
となる。
図10は、代替経路算出部210の代替経路候補算出部211(図3)による代替経路候補の選出を説明する図である。送信元(S)、送信先(D)が、旧経路(フローF)と同一となる代替経路候補を選出する。
代替経路候補2:S⇒SW4⇒SW5⇒SW6⇒SD
代替経路候補3:S⇒SW4⇒SW5⇒SW3⇒SD
図11は、影響度算出部212における影響度Eiの定義の第1の例を説明する図である。図11において、スイッチ(SW1、SW3~SW6)のフローエンティティテーブル102のフローエンティティ数を影響度とする。図11において、各スイッチSW1~SW6に付加された数値は、現在のフローエンティティ数(フローFの旧経路分を含む)である。また旧は旧経路、候補1、2、3は代替経路候補1、2、3を示している。
E1=(8-1+1)+(3+1)+(4+1)=17 ・・・(1)
となる。
E2=(5+1)+(3+1)+(4+1)=15 ・・・(2)
となる。
E3=(5+1)+(3+1)+(7-1+1)=17 ・・・(3)
となる。
なお、変形例として、スイッチにおける新経路によるフローエンティティ数の増加分、旧経路によるフローエンティティ数の減少分を考慮しない場合も考えられる。この場合、
代替経路候補1(図11の候補1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
E1=8+3+4=15 ・・・(4)
となる。
E2=5+3+4=12 ・・・(5)
となる。
E3=5+3+7=15 ・・・(6)
となる。この場合、代替経路候補2が代替候補として決定される。
図12は、影響度の定義の第2の例を説明する図である。この例では、影響度として、フローエンティティ数のMAX(最大)値を用いている。すなわち、各スイッチのフローエンティティテーブル中のフローエンティティ数の最大値E2を影響度とする。図12において、各スイッチに付加された数値は、現在のフローエンティティ数である(フローFの旧経路分を含む)。
E1=MAX((8-1+1)、(3+1)、(4+1))=8 ・・・(7)
となる。MAX(・・・)は引数の要素の最大値を表す。(8-1+1)、(3+1)、(4+1)は式(1)と同一であるため、説明は省略する。
E2=MAX((5+1)、(3+1)、(4+1))=6 ・・・(8)
となる。
E3=MAX((5+1)、(3+1)、(7-1+1))=7 ・・・(9)
となる。
図13は、本発明の別の実施形態におけるコントローラ20の構成例を示す図である。本実施形態において、影響度にトラフィック量を使用する。図13を参照すると、コントローラ20は、図3の構成のトラフィック量管理部214が追加され、影響度算出部212Aは、トラフィック量管理部214からの各スイッチのトラフィック量に基づき影響度を算出する。
図15は、図10の代替経路候補1、2、3において、代替経路候補の影響度としてトラフィック量を用いた場合の例を説明する図である。代替経路のスイッチを通過する単位時間当たりのトラフィック量の合計を影響度とする。図15において、スイッチSW1、SW2、SW3、SW4、SW5、SW6に付加した数値8、6、7、5、3、4は、各スイッチを通過する単位時間当たりのトラフィック量(相対量)を表している。
E1=8+3+4=15 ・・・(10)
となる。
E2=5+3+4=12 ・・・(11)
となる。
E3=5+3+7=15 ・・・(12)
となる。
変形例として、経路中のトラフィック量が最大のスイッチのトラフィック量を影響度としてもよい。
E1=MAX(8、3、4)=8 ・・・(13)
となる。
E2=MAX(5、3、4)=5 ・・・(14)
となる。
E3=MAX(5、3、7)=7 ・・・(15)
となる。
あるいは、本発明の別の実施形態において、影響度算出部212の影響度としてスイッチのフローエンティティテーブルにおいて、集約可能なフローエンティティの数を用いてもよい。図16に、代替経路候補影響度算出部212の手順を示す。
図17は、図16を参照して動作を説明した影響度算出部212における集約可能エンティティ数の判定を説明する図である。
図18は、集約されたフローエンティティのスイッチへの登録手順を示す流れ図であり、図8のステップS11に対応する。
20 コントローラ
30 ノード
101 パケット処理部
102 フローエンティティテーブル
103 パケット通知部
104 フローエンティティ設定部
105 トラフィック量計測部
106 トラフィック量通知部
201 パケット処理部
202 フローエンティティ設定部
203 有効経路記憶部
204 トポロジー情報
205 経路算出部
206 スイッチ状態変更部
207 経路集約実行部
208 集約経路記憶部
210 代替経路算出部
211 代替経路候補算出部
212、212A 影響度算出部
213 代替経路決定部
214 トラフィック量管理部
Claims (57)
- 複数のノードのフローを制御するコントローラを用いたネットワーク制御方法であって、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、移動対象の前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
前記代替経路上の各ノードのフローを集約する、ことを特徴とするネットワーク制御方法。 - 前記コントローラは、
前記フローに対する前記ノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定し、
前記ノードは、
前記コントローラによりそれぞれ設定され、前記ノードを通過するフローの本数に対応したエントリ数のフロー情報を保持し、
前記コントローラは、
前記代替経路上の各ノードのフローを集約する際、
前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項1記載のネットワーク制御方法。 - 前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項1又は2記載のネットワーク制御方法。
- 前記コントローラは、前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項3記載のネットワーク制御方法。 - 前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項3記載のネットワーク制御方法。 - 前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項1又は2記載のネットワーク制御方法。
- 前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項6記載のネットワーク制御方法。 - 前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項6記載のネットワーク制御方法。 - 前記コントローラは、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項2記載のネットワーク制御方法。
- 前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
前記コントローラは、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを、集約対象とする、ことを特徴とする請求項9記載のネットワーク制御方法。 - 前記コントローラは、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、
複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
複数の前記代替経路候補のそれぞれについて、前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項10記載のネットワーク制御方法。 - 前記コントローラは、前記代替経路上のノードにおいて、集約可能な、複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、
前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項2乃至11のいずれか1項に記載のネットワーク制御方法。 - 前記コントローラは、前記ノードを通過するフローを前記代替経路に移す際に、前記ノードが通過するフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項1記載のネットワーク制御方法。
- コントローラと、
前記コントローラによってフローの制御が行われる複数のノードと、
を備え、
前記コントローラは、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
前記代替経路上の各ノードのフローを集約する、ことを特徴とするネットワークシステム。 - 前記コントローラは、
前記フローに対する前記ノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定し、
前記ノードは、
前記コントローラによって設定され、前記ノードを通過するフロー数に対応したエントリ数のフロー情報を保持し、
前記コントローラは、
前記代替経路上の各ノードのフローを集約する際、
前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項14記載のネットワークシステム。 - 前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項15記載のネットワークシステム。
- 前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項16記載のネットワークシステム。 - 前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項16記載のネットワークシステム。 - 前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項14又は15記載のネットワークシステム。
- 前記コントローラは、複数の前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項19記載のネットワークシステム。
- 前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項19記載のネットワークシステム。 - 前記コントローラは、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項15記載のネットワークシステム。
- 前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
前記コントローラは、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを、集約対象とする、ことを特徴とする請求項22記載のネットワークシステム。 - 前記コントローラは、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
複数の前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項23記載のネットワークシステム。 - 前記コントローラは、前記代替経路上のノードにおいて、集約可能な、複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して、前記ノードに設定登録し、
前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項15乃至24のいずれか1項に記載のネットワークシステム。 - 前記コントローラは、集約したフロー情報のエントリを記憶する集約経路記憶部を備え、
前記集約経路記憶部は、ノードに対応して、ノードの識別情報と、ノード別の集約フロー情報のテーブルへのポインタを有するエントリを、各ノードに対して備えた集約経路管理テーブルを有し、前記ノード別の集約フロー情報のテーブルは、ノード上の集約フロー情報のエントリと、前記集約フロー情報に集約された元のフロー情報のエントリを指すポインタのリストを含む、ことを特徴とする請求項14乃至25のいずれか1項に記載のネットワークシステム。 - 前記集約経路記憶部において、前記フロー情報のエントリへのポインタリストに格納されているポインタの数が2つ以上であれば、前記フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、ポインタでポイントされる複数のフロー情報のエントリが、前記集約したフロー情報のエントリに集約された元のフロー情報であり、
前記フロー情報のエントリへのポインタリストのポインタの数が1の場合、集約が行われていないフロー情報のエントリであり、
前記フロー情報のエントリへのポインタリストのポインタの数が0の場合、該フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、実際に参照されていないため、削除される、ことを特徴とする請求項26記載のネットワークシステム。 - 前記コントローラは、前記ノードを通過するフローを前記代替経路に移す際に、前記ノードを通過する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項14記載のネットワークシステム。
- 配下のノードの状態の変更を制御するノード状態変更部と、
フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定部と、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部と、
前記代替経路上の各ノードのフローを集約する経路集約実行部と、
を備えている、ことを特徴とするコントローラ。 - 前記ノードには、前記ノードを通過するフロー数分に対応したエントリ数のフロー情報が設定され、
前記経路集約実行部は、
前記代替経路上の各ノードのフローを集約する際、前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項29記載のコントローラ。 - 前記代替経路算出部は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。
- 前記代替経路算出部は、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、前記代替経路候補のそれぞれについて求め、
前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項31記載のコントローラ。 - 前記代替経路算出部は、前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項31記載のコントローラ。 - 前記ノードのトラフィック量を取得して管理するトラフィック管理部を備え、
前記代替経路算出部は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。 - 前記代替経路算出部は、前記代替経路候補上の各ノードのトラフィック量の総計を、前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項34記載のコントローラ。 - 前記代替経路算出部は、前記代替経路候補上の各ノードのトラフィック量の最大値を、前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項34記載のコントローラ。 - 前記代替経路算出部は、前記代替経路候補上の各ノードに既に設定されているフロー情報のエントリを参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。
- 前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
前記代替経路算出部は、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、前記一致数が最高値のフロー情報のエントリを集約対象とする、ことを特徴とする請求項37記載のコントローラ。 - 前記代替経路算出部は、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項38記載のコントローラ。 - 前記経路集約実行部は、前記代替経路上のノードにおいて、集約可能な複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、前記ノードは、集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項29乃至39のいずれか1項に記載のコントローラ。
- 前記経路集約実行部で集約されたフロー情報のエントリを記憶する集約経路記憶部を備え、
前記集約経路記憶部は、ノードに対応して、ノードの識別情報と、ノード別の集約フロー情報のテーブルへのポインタを有するエントリを、各ノードに対して備えた集約経路管理テーブルを有し、
前記ノード別の集約フロー情報のテーブルは、ノード上の集約フロー情報のエントリと、前記集約フロー情報に集約された元のフロー情報のエントリを指すポインタのリストを含む、ことを特徴とする請求項29乃至40のいずれか1項に記載のコントローラ。 - 前記集約経路記憶部において、前記フロー情報のエントリへのポインタリストに格納されているポインタの数が2つ以上であれば、前記フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、ポインタでポイントされる複数のフロー情報のエントリが、前記集約フロー情報のエントリに集約されたものであり、
前記フロー情報のエントリへのポインタリストのポインタの数が1の場合、集約が行われていないフロー情報のエントリであり、
前記フロー情報のエントリへのポインタリストのポインタの数が0の場合、該フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは実際に参照されていないため、削除される、ことを特徴とする請求項41に記載のコントローラ。 - 前記ノードを通過するフローを前記代替経路に移す際に、前記経路集約実行部が、前記ノードを通過する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項29記載のコントローラ。
- 配下のノードの状態の変更を制御するノード状態変更処理と、
フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定処理と、
あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出処理と、
前記代替経路上の各ノードのフローを集約する経路集約実行処理と、
をコントローラに実行させるプログラム。 - 前記ノードには、前記ノードを通過するフロー数分に対応したエントリ数のフロー情報が設定され、
前記経路集約実行処理は、
前記代替経路上の各ノードのフローを集約する際、
前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項44記載のプログラム。 - 前記代替経路算出処理は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項45記載のプログラム。
- 前記代替経路算出処理は、前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項46記載のプログラム。 - 前記代替経路算出処理は、前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を前記代替経路と決定する、ことを特徴とする請求項46記載のプログラム。 - 前記ノードのトラフィック量を取得して管理するトラフィック管理処理を備え、
前記代替経路算出処理は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項45又は46記載のプログラム。 - 前記代替経路算出処理は、前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項49記載のプログラム。 - 前記代替経路算出処理は、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項49記載のプログラム。 - 前記代替経路算出処理は、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補の中から代替経路を決定する、ことを特徴とする請求項45記載のプログラム。
- 前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
前記代替経路算出処理は、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを集約対象とする、ことを特徴とする請求項46記載のプログラム。 - 前記代替経路算出処理は、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
複数の前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項53記載のプログラム。 - 前記経路集約実行処理は、前記代替経路上のノードにおいて、集約可能な複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項44乃至54のいずれか1項に記載のプログラム。
- 前記あるノードを通過するフローを前記代替経路に移す際に、前記経路集約実行処理は、前記あるノードを通過するフローに対応する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項44記載のプログラム。
- 請求項44乃至56のいずれか1項記載のプログラムを記録したコンピュータで読取可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011535389A JP5652400B2 (ja) | 2009-10-06 | 2010-10-05 | ネットワークシステムとコントローラ、方法とプログラム |
US13/500,065 US8780721B2 (en) | 2009-10-06 | 2010-10-05 | Network system, controller, method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-232307 | 2009-10-06 | ||
JP2009232307 | 2009-10-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011043312A1 true WO2011043312A1 (ja) | 2011-04-14 |
Family
ID=43856765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/067404 WO2011043312A1 (ja) | 2009-10-06 | 2010-10-05 | ネットワークシステムとコントローラ、方法とプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8780721B2 (ja) |
JP (1) | JP5652400B2 (ja) |
WO (1) | WO2011043312A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014002481A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, information processing apparatus, communication system, communication terminal, and program |
WO2014002455A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, information processing apparatus, communication system, program, node, and communication terminal |
WO2014002460A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, communication system, information processing apparatus, communication terminal, and program |
JP2014127768A (ja) * | 2012-12-25 | 2014-07-07 | Nec Corp | 通信ノード、制御装置、通信システム、エントリ集約方法及びプログラム |
JP2015154265A (ja) * | 2014-02-14 | 2015-08-24 | 日本電信電話株式会社 | データ転送システム、ネットワーク装置、制御用サーバ装置、および通信制御プログラム |
CN105009529A (zh) * | 2013-06-14 | 2015-10-28 | 华为技术有限公司 | 一种处理报文的方法和转发器 |
JP2016067053A (ja) * | 2015-12-25 | 2016-04-28 | 株式会社Nttドコモ | 制御ノード及び通信制御方法 |
JP2019024272A (ja) * | 2018-11-22 | 2019-02-14 | 株式会社エヌ・ティ・ティ・データ | 制御装置、制御方法及びプログラム |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140269299A1 (en) * | 2013-03-14 | 2014-09-18 | Hewlett-Packard Development Company, L.P. | Network controller normalization of network traffic |
US9407560B2 (en) | 2013-03-15 | 2016-08-02 | International Business Machines Corporation | Software defined network-based load balancing for physical and virtual networks |
US9609086B2 (en) | 2013-03-15 | 2017-03-28 | International Business Machines Corporation | Virtual machine mobility using OpenFlow |
US9444748B2 (en) * | 2013-03-15 | 2016-09-13 | International Business Machines Corporation | Scalable flow and congestion control with OpenFlow |
US9596192B2 (en) | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Reliable link layer for control links between network controllers and switches |
US9769074B2 (en) | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
KR20140135000A (ko) * | 2013-05-15 | 2014-11-25 | 삼성전자주식회사 | 소프트웨어정의네트워킹 기반 통신시스템의 서비스 처리 방법 및 장치 |
KR20140134998A (ko) * | 2013-05-15 | 2014-11-25 | 삼성전자주식회사 | 통신 시스템에서 음성 서비스 성능 향상을 위한 방법 및 장치 |
US9893989B2 (en) | 2013-06-24 | 2018-02-13 | Hewlett Packard Enterprise Development Lp | Hard zoning corresponding to flow |
KR101573150B1 (ko) | 2013-11-01 | 2015-11-30 | 주식회사 케이티 | Sdn 네트워크 환경에서 플로우 테이블의 정합성 관리 방법 |
WO2015077976A1 (zh) * | 2013-11-29 | 2015-06-04 | 华为技术有限公司 | 一种流表项的下发方法及装置 |
CN104702496A (zh) | 2013-12-10 | 2015-06-10 | 财团法人资讯工业策进会 | 封包交换系统及方法 |
JP6269238B2 (ja) * | 2014-03-27 | 2018-01-31 | 富士通株式会社 | ネットワーク管理方法、ネットワーク管理システム、およびネットワーク管理装置 |
JP6287518B2 (ja) * | 2014-04-14 | 2018-03-07 | 富士通株式会社 | オープンフロースイッチおよびオープンフローネットワークの障害復旧方法 |
WO2016105330A1 (en) * | 2014-12-22 | 2016-06-30 | Hewlett Packard Enterprise Development Lp | Response to an inoperative network device managed by a controller |
CN106713182B (zh) * | 2015-08-10 | 2020-10-09 | 华为技术有限公司 | 一种处理流表的方法及装置 |
US9762495B1 (en) * | 2016-09-13 | 2017-09-12 | International Business Machines Corporation | Weighted distribution across paths of degraded quality |
CN106411734B (zh) * | 2016-10-18 | 2019-08-16 | 网宿科技股份有限公司 | 一种路由选择方法和路由器 |
CN109067665B (zh) * | 2018-09-25 | 2022-01-11 | 华为技术有限公司 | 拥塞控制方法和网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH053475A (ja) * | 1991-06-26 | 1993-01-08 | Fujitsu Ltd | 経路探索方式 |
JPH07250356A (ja) * | 1994-03-09 | 1995-09-26 | Nippon Telegr & Teleph Corp <Ntt> | 光パス網構成方法 |
JP2000059374A (ja) * | 1998-08-06 | 2000-02-25 | Fujitsu Ltd | Atm網のpvcのリルーティング方法および網管理システム |
JP2000069031A (ja) * | 1998-08-21 | 2000-03-03 | Nec Corp | Rsvpにおける代理フロー構築システムおよび方法 |
JP2009206718A (ja) * | 2008-02-27 | 2009-09-10 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークのリンク増設箇所またはリンク容量増設箇所特定方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2950369B2 (ja) * | 1996-12-27 | 1999-09-20 | 日本電気株式会社 | Atm網における現用予備経路設定方式 |
US6538991B1 (en) * | 1999-08-03 | 2003-03-25 | Lucent Technologies Inc. | Constraint-based routing between ingress-egress points in a packet network |
US7130262B1 (en) * | 2002-01-16 | 2006-10-31 | At & T Corp. | Method and apparatus for providing alternative link weights for failed network paths |
JP3711965B2 (ja) | 2002-07-18 | 2005-11-02 | 日本電気株式会社 | Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体 |
US6950432B2 (en) * | 2003-05-23 | 2005-09-27 | Matsushita Electric Industrial Co., Ltd. | Architecture for dense multicast networks with provisioned routes |
DE102005003260B4 (de) * | 2005-01-24 | 2008-07-17 | Nokia Siemens Networks Gmbh & Co.Kg | Iteratives Routing-Verfahren mit pfadabhängiger Routing-Metrik |
-
2010
- 2010-10-05 US US13/500,065 patent/US8780721B2/en not_active Expired - Fee Related
- 2010-10-05 JP JP2011535389A patent/JP5652400B2/ja not_active Expired - Fee Related
- 2010-10-05 WO PCT/JP2010/067404 patent/WO2011043312A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH053475A (ja) * | 1991-06-26 | 1993-01-08 | Fujitsu Ltd | 経路探索方式 |
JPH07250356A (ja) * | 1994-03-09 | 1995-09-26 | Nippon Telegr & Teleph Corp <Ntt> | 光パス網構成方法 |
JP2000059374A (ja) * | 1998-08-06 | 2000-02-25 | Fujitsu Ltd | Atm網のpvcのリルーティング方法および網管理システム |
JP2000069031A (ja) * | 1998-08-21 | 2000-03-03 | Nec Corp | Rsvpにおける代理フロー構築システムおよび方法 |
JP2009206718A (ja) * | 2008-02-27 | 2009-09-10 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークのリンク増設箇所またはリンク容量増設箇所特定方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014002481A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, information processing apparatus, communication system, communication terminal, and program |
WO2014002455A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, information processing apparatus, communication system, program, node, and communication terminal |
WO2014002460A1 (en) * | 2012-06-26 | 2014-01-03 | Nec Corporation | Communication method, communication system, information processing apparatus, communication terminal, and program |
EP2865143A4 (en) * | 2012-06-26 | 2016-02-17 | Nec Corp | COMMUNICATION METHOD, INFORMATION PROCESSING DEVICE, COMMUNICATION SYSTEM, COMMUNICATION TERMINAL AND PROGRAM |
US9794170B2 (en) | 2012-06-26 | 2017-10-17 | Nec Corporation | Communication method, communication system, information processing apparatus, communication terminal, and program |
JP2014127768A (ja) * | 2012-12-25 | 2014-07-07 | Nec Corp | 通信ノード、制御装置、通信システム、エントリ集約方法及びプログラム |
CN105009529A (zh) * | 2013-06-14 | 2015-10-28 | 华为技术有限公司 | 一种处理报文的方法和转发器 |
JP2016524412A (ja) * | 2013-06-14 | 2016-08-12 | 華為技術有限公司Huawei Technologies Co.,Ltd. | パケットを処理するための方法およびフォワーダ |
US9998364B2 (en) | 2013-06-14 | 2018-06-12 | Huawei Technologies Co., Ltd. | Method for processing packet and forwarder |
JP2015154265A (ja) * | 2014-02-14 | 2015-08-24 | 日本電信電話株式会社 | データ転送システム、ネットワーク装置、制御用サーバ装置、および通信制御プログラム |
JP2016067053A (ja) * | 2015-12-25 | 2016-04-28 | 株式会社Nttドコモ | 制御ノード及び通信制御方法 |
JP2019024272A (ja) * | 2018-11-22 | 2019-02-14 | 株式会社エヌ・ティ・ティ・データ | 制御装置、制御方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20120201140A1 (en) | 2012-08-09 |
JPWO2011043312A1 (ja) | 2013-03-04 |
JP5652400B2 (ja) | 2015-01-14 |
US8780721B2 (en) | 2014-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5652400B2 (ja) | ネットワークシステムとコントローラ、方法とプログラム | |
JP5621781B2 (ja) | ネットワークシステムとコントローラと方法とプログラム | |
JP6508256B2 (ja) | 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム | |
JP6418261B2 (ja) | 通信システム、ノード、制御装置、通信方法及びプログラム | |
US9794124B2 (en) | Information system, control server, virtual network management method, and program | |
JP5850068B2 (ja) | 制御装置、通信システム、通信方法およびプログラム | |
WO2012060316A1 (ja) | 通信システム、制御装置、パケット転送経路の制御方法およびプログラム | |
US9461893B2 (en) | Communication system, node, statistical information collection device, statistical information collection method and program | |
JPWO2014112612A1 (ja) | 通信システム、制御装置及びネットワークトポロジの管理方法 | |
WO2014112616A1 (ja) | 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム | |
JP5858141B2 (ja) | 制御装置、通信装置、通信システム、通信方法及びプログラム | |
JP2014502794A (ja) | 通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラム | |
US20190007279A1 (en) | Control apparatus, communication system, virtual network management method, and program | |
JP2015057879A (ja) | コンピュータ・ネットワーキングにおけるパケットのマルチパス・ルーティング・デバイスおよびその使用方法 | |
JP6314970B2 (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: 10821982 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13500065 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011535389 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: 10821982 Country of ref document: EP Kind code of ref document: A1 |