US20170111231A1 - System and method for communication - Google Patents
System and method for communication Download PDFInfo
- Publication number
- US20170111231A1 US20170111231A1 US15/338,917 US201615338917A US2017111231A1 US 20170111231 A1 US20170111231 A1 US 20170111231A1 US 201615338917 A US201615338917 A US 201615338917A US 2017111231 A1 US2017111231 A1 US 2017111231A1
- Authority
- US
- United States
- Prior art keywords
- node device
- controller
- packet
- section
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims 8
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Definitions
- the present invention relates to a communications system and more particularly relates to a communications system managed by a centralized management, in which controllers control packet transfers among network devices.
- One proposed approach for solving this problem is separation of the packet transfer function and the route control function which are both conventionally implemented by a network device.
- the controller can perform centralized management of packet transfer, which allows establishing a network with high flexibility.
- One proposed function-separated network is a CD-separated network (where C stands for control plane and d stands for data plane), in which a controller operating on the control plane controls node devices operating on the data plane.
- CD-separated network is an OpenFlow network which is based on the OpenFlow technique, in which the route control in the network is achieved by controlling switches by a controller. Details of the OpenFlow technique are disclosed in non-patent documents 1 and 2. Note that the OpenFlow network should be construed as one example.
- a controller such as an OpenFlow controller (OFC) controls the behavior of node devices, such as OpenFlow switches (OFSs), by processing route control information (or a flow table) which describes the route control of the node devices.
- OFC OpenFlow controller
- node devices such as OpenFlow switches (OFSs)
- route control information or a flow table
- Controllers and node devices are connected via control channels (communication channels for control) called “secure channels”, which are communication paths protected by using dedicated lines or an SSL (Secure Socket Layer) technique. Controllers and node devices exchange OpenFlow messages defined in the OpenFlow protocol via control channels.
- each node device is provided in the OpenFlow network and controlled by the controller; each node device may be an edge switch or a core switch.
- a series of packet transfers from the receipt of a packet at an ingress edge switch to the transmission at an egress edge switch in the OpenFlow network is referred to as “flow”.
- communications are each regarded as an end-to-end flow, and the route control, the trouble recovery, and the load distribution and optimization are carried out in units of flows.
- the frame should be regard as an alternative of the packet.
- the difference between the packet and the frame only lies in the difference in the protocol data unit (PDU).
- the packet is the PDU of the TCP/IP (transmission control protocol/internet protocol).
- the frame is the PDU of the “Ethernet” (registered trademark).
- the route control information includes a set of: identifying conditions (identifying rules) to identify packets to be treated as a flow; statistical information that indicates the number of times in which packets comply or match with the identifying conditions (or the identifying rules); and processing rules (or flow entries) which define a group of contents of processing (or actions) to be performed on packets.
- the identifying conditions (or the identifying rules) of each processing rule (or each flow entry) are defined by various combinations of any or all of data of respective protocol hierarchies included in the header region (or the header field) of the packet, and distinguishable one another by using these data.
- data of the respective protocol hierarchies may include the destination address, the source address, the destination port, the source port.
- the above-described addresses may be defined by a MAC (media access control) address or an IP address.
- data of the ingress port may be also used as the identifying conditions (or the identifying rules) of the processing rules (or the flow entries).
- the identifying conditions (or the identifying rules) of the processing rules (or the flow entries) may be set in the form of a representation in which some or all of the values of the header region of the packet to be treated as the flow are represented by using a normal representation, a wildcard character “*” or the like.
- the contents of processing (or the action) of a processing rule (or a flow entry) indicates an operations such as “output to a particular port”, “discarding” and “rewriting of header”. For example, if the contents of processing (or the action) of a processing rule (or a flow entry) indicates identification information of an output port (an output port number and the like), the node device outputs the packet to the indicated port, and if not, the node device discards the packet. Instead, if the contents of processing (or the action) of the processing rule (or the flow entry) indicates the header information, the node device rewrites the header of the packet on the basis of the header information.
- a node device in the OpenFlow network performs the contents of processing (or the action) of a processing rule (or a flow entry) on a group of packets (or a series of packets) that complies with the identifying conditions (or the identifying rules) of the processing rule (or the flow entry).
- an OpenFlow switch which corresponds to a node device in the OpenFlow network, retrieves the processing rule (or the flow entry) associated with the identifying conditions (or the identifying rule) complying with the header information of the received packet from the route control information (of the flow table). If the processing rule (flow entry) complying with the receipt packet is found out as a result of the retrieval, the contents of processing (or the action) described in the action field of the processing rule (or the flow entry) is performed on the received packet. If no processing rule (or the flow entry) complying with the received packet is found as a result of the retrieval, on the other hand, the received packet is judged as the first packet.
- OFS OpenFlow switch
- inquiry information of the received packet is transmitted to an OpenFlow controller (OFC), which corresponds to the controller in the OpenFlow network, via a control channel to request for determining the route of the packet based on the source and destination of the received packet; this is followed by receiving a processing rule (or a flow entry) for attaining the packet transfer along the determined route and then updating the route control information (or the flow table).
- OFC OpenFlow controller
- an initial state processing rule (or a default entry) is registered in the route control information (or the flow table), where the initial state processing rule describes identifying conditions (or identifying rules) of a low priority which are defined so as to comply with the header information of any packets. If no other processing rule (or flow entry) complying with the received packet is found, the received packet complies with the initial state processing rule (or the default entry). The contents of processing (or the action) of the initial state processing rule (or the default entry) is defined to instruct to transmit inquiry information of the received packet to the OpenFlow controller (OFC).
- OFC OpenFlow controller
- the OpenFlow switch determines processing to be done on a packet in accordance with the setting of processing rules (or flow entries) set by the OpenFlow controller (OFC).
- the “output” processing in which a packet is outputted to a specified interface, is often used as the processing.
- the specified interface is not limited to a physical interface; the specified interface is not limited to the physical port and may be a virtual port.
- control of packets is attained by centralized control of OpenFlow switches (OFS) by an OpenFlow controller (OFC) in the OpenFlow network.
- OFS OpenFlow switches
- OFC OpenFlow controller
- One issue is that one OpenFlow controller (OFC) can control only a limited number of OpenFlow switches (OFS). Accordingly, an increase in the scale of the network, which causes an increase in the number of the OpenFlow switches (OFS), may result in that calculation of processing rules (flow entries) in the OpenFlow controller (OFC) and the like becomes a bottleneck of the network quality.
- One approach to address this may be connecting a plurality of OpenFlow networks, each including one Openflow controller (OFC) and a plurality of OpenFlow switches (OFS) controlled by the OpenFlow controller, when the scale of the network is increased.
- OFC Openflow controller
- OFS OpenFlow switches
- An interconnection of a plurality of networks each managed by a centralized management, such as OpenFlow networks, requires exchanging and sharing of information related to route control among the controllers to control the traffic over the networks.
- One approach to achieve this may be using an existing routing protocol, such as the OSPF (open shortest path first) protocol and the BGP (border gateway protocol) or other data sharing protocols in order to exchange and share information related to the route control among the controllers.
- OSPF open shortest path first
- BGP border gateway protocol
- a communications system includes: a first node device provided in a first network; a first controller controlling the first node device; a second node device provided in a second network and connected to the first node device; and a second controller controlling the second node device.
- the first controller sets the first node device with a processing rule according to which packets transferred between the first and second controllers are processed.
- the second controller sets the second node device with a processing rule according to which the packets are processed.
- the first and second controllers exchanges the packets each other through at least the first and second node devices.
- a communication method includes:
- a program for causing a computer or a network device to perform the operations of respective devices in the above-described communication method.
- the program may be stored in a storage device or a non-transitory recording medium.
- the present invention enables establishing a communication connection between controllers of adjacent networks.
- FIG. 1 shows an exemplary configuration of a communications system according to the present invention.
- FIG. 2 shows an exemplary system configuration in a first embodiment.
- FIG. 3 shows an exemplary configuration of a controller.
- FIG. 4 shows an exemplary configuration example of a node device.
- FIG. 5 shows an exemplary configuration of an LLDP frame in the first embodiment.
- FIG. 6A shows exemplary contents of a processing rule defined for a first network.
- FIG. 6B shows exemplary contents of a processing rule defined for a second network.
- FIG. 7 shows an exemplary configuration of an LLDP frame in a second embodiment.
- FIG. 8 shows an exemplary configuration of a controller in a third embodiment.
- FIG. 9A shows exemplary contents of a sorting rule defined for the controller of the first network.
- FIG. 9B shows exemplary contents of a sorting rule defined for the controller of the second network.
- FIG. 10A shows an exemplary configuration of the first network of the communications system in a fourth embodiment.
- FIG. 10B shows an exemplary configuration of the second network of the communications system in the fourth embodiment.
- FIG. 11A shows exemplary contents of a sorting rule defined for the controller of the first network.
- FIG. 11B shows exemplary contents of a sorting rule defined for the controller of the second network.
- FIG. 12 shows an exemplary hardware configuration of a controller according to the present invention.
- FIG. 13 shows an exemplary hardware configuration of a node device according to the present invention.
- Embodiments of the present invention are described in the following with an example in which OpenFlow networks, which are a sort of networks managed by a centralized management, are used. It should be noted, however, that the present invention is not limited to a communication system in which OpenFlow networks are used.
- a communications system includes controllers 10 and node devices 20 .
- the controllers 10 are information processing apparatuses which control the node devices 20 .
- the node devices 20 are communication devices provided in networks.
- the controllers 10 and the node devices 20 are connected through control channels.
- the controllers 10 and the node devices 20 communicate with each other by using OpenFlow messages defined in an OpenFlow protocol via the control channels.
- Each node device 20 is connected to the adjacent node device 20 via a data communication link such as a LAN (local area network) and the like. Moreover, a node device 20 which operates as an edge switch is adapted to have a connection with a host (a client, a server or the like) or an external network device which does not belong to the network in which the node device 20 is provided.
- a host a client, a server or the like
- an external network device which does not belong to the network in which the node device 20 is provided.
- controllers 10 and the node devices 20 are not limited to physical machines; the controllers 10 and the node devices 20 may be a virtual machine (VM).
- VM virtual machine
- FIG. 1 shows controllers 10 - 1 and 10 - 2 , as examples of the controllers 10 .
- FIG. 1 also shows node devices 20 - 1 to 20 - 6 as examples of the node devices 20 .
- the controller 10 - 1 is connected via a control channel to each of the node devices 20 - 1 to 20 - 3 .
- the controller 10 - 2 is connected via a control channel to each of the node devices 20 - 4 to 20 - 6 .
- the node devices 20 - 1 to 20 - 6 are each connected to one or more adjacent node devices via one or more data communication links, such as LANs.
- the node device 20 - 1 is connected to the node device 20 - 2 via a data communication link.
- the node device 20 - 2 is connected to the node device 20 - 3 via a data communication link.
- the node device 20 - 3 is connected to the node device 20 - 4 via a data communication link.
- the node device 20 - 4 is connected to the node device 20 - 5 via a data communication link.
- the node device 20 - 5 is connected to the node device 20 - 6 via a data communication link.
- the node devices 20 - 1 to 20 - 3 are provided in a network 1 . That is, each of the node devices 20 - 1 to 20 - 3 is arranged in the network 1 .
- the node devices 20 - 4 to 20 - 6 are arranged in the network 2 . That is, each of the node devices 20 - 4 to 20 - 6 is arranged in the network 2 .
- the networks 1 and 2 are connected to each other via the data communication link connecting the node device 20 - 3 and the node device 20 - 4 .
- control channels and the data communication links may be a wired communication link or a wireless communication link.
- the controller 10 - 1 is assigned with a controller ID “CPID1” as its own identification information.
- the controller 10 - 2 is assigned with a controller ID “CPID2” as its own identification information.
- the node device 20 - 1 is assigned with a node device ID “DPID1” as its own identification information.
- the node device 20 - 2 is assigned with a node device ID “DPID2” as its own identification information.
- the node device 20 - 3 is assigned with a node device ID “DPID3” as its own identification information.
- the node device 20 - 4 is assigned with a node device ID “DPID4” as its own identification information.
- the node device 20 - 5 is assigned with a node device ID “DPID5” as its own identification information.
- the node device 20 - 6 is assigned with a node device ID “DPID6” as its own identification information.
- the controllers 10 are each connected to one of the node devices 20 via a data communication link, similarly to the connections between the node devices 20 . That is, the controllers 10 may also operate as a “host” connected to any of the node devices 20 .
- the controller 10 - 1 is further connected to the node device 20 - 1 through a data communication link. It should be noted that the controller 10 - 1 may be logically connected to the node device 20 - 1 by tunneling or the like in an actual implementation.
- controller 10 - 2 is further connected to the node device 20 - 6 via a data communication link. It should be noted that the controller 10 - 2 may be logically connected to the node device 20 - 2 by tunneling or the like in an actual implementation.
- each controller 10 is described with reference to FIG. 3 . Note that this exemplary configuration is common to both of the controllers 10 - 1 and 10 - 2 .
- Each controller 10 includes a node device control section 11 and an interface management section 15 .
- the node device control section 11 controls node devices 20 via control channels.
- the node device control section 11 executes a software program which allows operating as an OpenFlow controller (OFC) in an OpenFlow network.
- the node device control section 11 monitors and manages interface units contained in each of the node devices 20 via the control channels and specifies processing rules (flow entries) of packets transmitted and received by the interface units for the node devices 20 .
- processing rules flow entries
- One example of the contents of a processing rule (a flow entry) of the packets may include an instruction of outputting to an interface unit or a node device control section 11 specified on the basis of the feature of each packet received by the interface unit, an instruction of outputting to an interface unit specified when the packet prepared by the node device control section 11 is received, and the like.
- the interface management section 15 manages a network interface provided in the controller 10 .
- the interface management section 15 is adapted to have a connection to a network interface within any of the node devices 20 via data a communication link connected to the network interface within the controller 10 .
- the node device control section 11 is connected to the interface management section 15 .
- the node device control section 11 can communicate with any of the node devices 20 via the interface management section 15 .
- the node device control section 11 includes a topology management section 111 , a control message processing section 112 , a node communication section 113 , an adjacency discovery section 114 , an identifying condition calculation section 115 , a route calculation section 116 , a processing rule calculation section 117 , a processing rule management section 118 and a processing rule storage section 119 .
- the topology management section 111 manages topology information and boundary information of its own network.
- the topology management section 111 is connected to the interface management section 15 .
- the control message processing section 112 prepares control messages in accordance with controls to be performed for the node devices 20 .
- the control message processing section 112 also analyzes control messages received from the node device 20 .
- the node communication section 113 is connected to node devices 20 via control channels to communicate with the node devices 20 .
- the node communication section 113 transmits control messages to the node devices 20 in response to control message transmission requests from the control message processing section 112 .
- the node communication section 113 also transfers control messages received from the node devices 20 to the control message processing section 112 .
- the adjacency discovery section 114 discovers a node device 20 located on the boundary with a different network and the controller 10 in the different network.
- the identifying condition calculation section 115 calculates identifying conditions (or the identifying rules) of packets.
- the identifying condition calculation section 115 calculates identifying conditions (or identifying rules) of packets transferred between the controllers 10 on the basis of the topology information and the boundary information of its own network.
- the identifying condition calculation section 115 is also adapted to, when receiving inquiry information of the first packet from a node device 20 , calculate identifying conditions (or an identifying rule) of the packet on the basis of the header information of the packet.
- the route calculation section 116 calculates transfer routes of packets.
- the route calculation section 116 determines the end points of the route to be used in the packet transfer between the controllers 10 on the basis of the topology information and the boundary information of the networks, and calculates the route to connect the determined end points.
- the processing rule calculation section 117 calculates processing rules (or flow entries) on the basis of the identifying conditions calculated by the identifying condition calculation section 115 , and the routes calculated by the route calculation section 116 .
- the processing rule management section 118 manages the processing rules (or the flow entries).
- the processing rule management section 118 registers information related to the processing rules (or the flow entries) in the processing rule storage section 119 , correlating information related to the processing rules with identification information (processing rule IDs) of the processing rules (or the flow entries).
- the processing rule management section 118 also requests the control message processing section 112 to set the node devices 20 with processing rules (or flow entries).
- the processing rule storage section 119 stores: the information with regard to the processing rules (or the flow entries) set to the respective node devices 20 under the management of the controller 10 ; and the identification information (the processing rules ID) of the processing rules (or the flow entries).
- the processing rule storage section 119 may store copies or master tables of the route control information (or the flow table) of the respective node devices 20 .
- each node device 20 is described with reference to FIG. 4 . Note that this exemplary configuration is common to all of the node devices 20 - 1 to 20 - 6 .
- Each node device 20 includes a communication unit 21 and one or more interface units 22 (one shown).
- the communication unit 21 is connected to a controller 10 via a control channel to exchange control messages.
- the communication unit 21 executes a software program which allows operating as an OpenFlow switch (OFS) in an OpenFlow network.
- the communication unit 21 also processes a packet inputted from a interface unit 22 in accordance with processing rules (or flow entries) and processing commands (output instructions or the like), which are specified by the node device control section 11 in the controller 10 . It should be noted that, when neither processing rule (flow entry) nor processing command (output instructions or the like) is specified for an inputted packet, the communication unit 21 judges the packet as the first packet and transmits inquiry information of this packet to the controller 10 through the control channel.
- processing rules or flow entries
- processing commands output instructions or the like
- the interface unit 22 is a network interface provided within the node device 20 .
- the interface unit 22 may be a network interface having physical ports or a network interface having virtual ports.
- the interface unit 22 is used for establishing a connection to a connection destination, such as an adjacent node device and a host and adapted to exchange packets through a data communication link.
- the interface unit 22 may be used for establish a connection with a controller 10 .
- the interface unit 22 When receiving a packet from a connection destination, such as an adjacent node device and a host, the interface unit 22 outputs the packet to the communication unit 21 .
- Each of the controllers 10 - 1 and 10 - 2 prepares topology retrieval packets in order to retrieve the topology of its own network.
- LLDP Link Layer Discovery Protocol
- topology retrieval packets are not limited to LLDP frames and packets other than LLDP frames may be used as topology retrieval packets in an actual implementation.
- LLDP frames are used as exemplary topology retrieval packets.
- each LLDP frame includes an “LLDP header” region (or field), and an “optional TLVs” region (or field).
- TLV stands for type, length and value.
- the “LLDP header” region includes a “source MAC address” region, a “destination MAC address” region and an “ether type” region, which is denoted by the legend “eth_type”.
- the “source MAC address” region contains the source MAC address of the LLDP frame.
- the “destination MAC address” contains the destination source MAC address of the LLDP frame.
- the “ether type” region contains information that indicates the ether type of the LLDP frame. Usually, “0x88cc” is specified as the ether type of the LLDP frame.
- the “optional TLVs” region includes an “identification information” region (or a “controller ID” region).
- the “identification information” region contains the identification information (or the controller ID) of the controller that prepares the LLDP header.
- identification information (or the controller ID) may be used if they are unique in the networks.
- a MAC address of the interface of the controller 10 an IP address, a VLAN tag information (VLAN ID) and the like may be used as the identification information.
- VLAN ID VLAN tag information
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 prepares LLDP frames as topology retrieval packets.
- the topology management unit 111 in each of the controllers 10 - 1 and 10 - 2 incorporates its own identification information (or controller ID) into each LLDP frame to identify the controller; the identification information (or the controller ID) in each LLDP frame is defined to be unique among the networks.
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 incorporates identification information (or the controller ID) of the controller 10 - 1 or 10 - 2 into the “identification information” region of the “optional TLVs” region within each LLDP frame as shown in FIG. 5 .
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 requests the control message processing section 112 to instruct to transmit the LLDP frames to the node devices 20 .
- the topology management section 111 may only output the LLDP frames to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares packet-out messages each incorporating an LLDP frame and a transmission instruction thereof in response to the request of the transmission instruction of the LLDP frames to the node devices 20 , and requests the node communication section 113 to transmit the packet-out messages to all of the node devices 20 provided in its own network.
- the packet-out message is a sort of control messages.
- the packet-out messages include transmission instructions which instruct to transmit the LLDP frame from all the interface units 22 in each node devices 20 .
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 transmits the packet-out messages from the control message processing section 112 to all of the node devices 20 provided in its own network through the control channels.
- the communication unit 21 in each node device 20 transmits the LLDP frame to the connection destinations from all the interface units 22 in its own node device 20 , in response to the above-described packet-out message. That is, the communication unit 21 in each node device 20 transmits the LLDP frame in the form of broadcasting. Also, the communication unit 21 in each node device 20 receives the LLDP frames from the connection destinations via the interface units 22 .
- the communication unit 21 in each node device 20 When receiving an LLDP frame from a connection destination via an interface unit 22 , the communication unit 21 in each node device 20 transmits a packet-in message as inquiry information to the controller 10 that controls the node device 20 , through the control channel.
- the packet-in message is a sort of control messages.
- the packet-in message includes an “LLDP frame” region, a “node device ID” region an “interface ID” region.
- the “LLDP frame” region contains the received LLDP frame.
- the “node device ID” region contains the identification information (or the node device ID) of the node device 20 .
- the “interface ID” region contains identification information (or the interface ID) of the interface unit 22 that receives the LLDP frame.
- the communication unit 21 in each node device 20 receives LLDP frames containing identification information (the controller ID) of the controller 10 of the same network from the node device 20 of the same network, and transmits packet-in messages respectively incorporating the LLDP frames as the inquiry information to the controller 10 .
- an LLDP frame containing identification information (or the controller ID) of the controller 10 - 1 is transmitted to the controller 10 - 2 . That is, when receiving the LLDP frame having the identification information (controller ID) of the controller 10 - 1 from the node device 20 - 3 , the communication unit 21 in the node device 20 - 4 transmits a packet-in message containing the LLDP frame as the inquiry information to the controller 10 - 2 .
- the LLDP frame which has the identification information (or the controller ID) of the controller 10 - 2 is transmitted to the controller 10 - 1 . That is, when receiving the LLDP frame having the identification information (or the controller ID) of the controller 10 - 2 from the node device 20 - 4 , the communication unit 21 in the node device 20 - 3 transmits a packet-in message incorporating the LLDP frame as the inquiry information to the controller 10 - 1 .
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 receives the above packet-in messages from the respective node devices 20 connected thereto via the control channels and outputs the packet-in messages to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 analyzes the above packet-in messages and extracts the LLDP frames incorporated in the packet-in messages.
- the control message processing section 112 outputs the extracted LLDP frames to the adjacency discovery section 114 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 determines whether the identification information (or the controller ID) described in each LLDP frame is identical to the identification information (controller ID) of its own controller 10 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 refers to the “identification information” region of the “optional TLVs” region of each LLDP frame (see FIG. 5 ) and determines whether the identification information (or the controller ID) incorporated in the “identification information” region is identical to the identification information (or the controller ID) of its own controller 10 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 can dynamically detect and monitor the node device 20 adjacent to another node device only in its own network and the interface units 22 of the node device 20 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 can detect the existence of a controller 10 in a different network. Moreover, the adjacency discovery section 114 can dynamically detect and monitor a node device 20 at the boundary with the different network and the interface units 22 of the node device 20 .
- a communication unit 21 in a node device 20 connected to the controller 10 via a data communication link transmits the LLDP frame also from the interface unit 22 connected to the controller 10 .
- the communication unit 21 in the node device 20 - 1 transmits the LLDP frame to the controller 10 - 1 from the interface unit 22 connected to the controller 10 - 1 via the data communication link.
- the node device 20 - 6 transmits the LLDP frame to the controller 10 - 2 from the interface unit 22 connected to the controller 10 - 2 via the data communication link.
- the interface management section 15 in each of the controllers 10 - 1 and 10 - 2 receives the LLDP frame from each node device 20 of the connection destination, via the data communication link, and outputs the LLDP frame to the adjacency discovery section 114 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 determines whether the identification information (or the controller ID) described in the LLDP frame is identical to the identification information (controller ID) of its own controller 10 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 can dynamically detect and monitor the node device 20 connected to the controller 10 and the interface units thereof.
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 sends information detected or obtained by the above-described operations, to the topology management section 111 .
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 prepares and stores topology information and boundary information of the corresponding network on the basis of the information received from the adjacency discovery section 114 .
- the detecting method of the node devices 20 connected to the controller 10 and the interface units 22 thereof is not limited to this method in an actual implementation.
- information related to each node device 20 connected to the controller 10 and the interface units 22 thereof may be notified and set in advance by a manual operation by an operator or the like.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 calculates identifying conditions (or identifying rules) of packets used to communicate with the controller 10 in a different network on the basis of the topology information and the boundary information of its own network, which are stored in the topology management section 111 , and prepares a notification packet that stores the identifying conditions (or the identifying rules). Moreover, the identifying condition calculation section 115 requests and instructs the control message processing section 112 to transmit the notification packet to a node device 20 at the boundary with a different network.
- the identifying conditions (or the identifying rules) are attached to the packet header, which may include the MAC address, the IP address or the protocol type. It should be noted that in an actual implementation, the identifying condition calculation section 115 may only output the notification packet to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares a packet-out message incorporating the notification packet and an instruction to output the notification packet to a node device 20 in a different network in response to a request for instructing transmission of the notification packet to a node device 20 at the boundary with the different network. Moreover, the control message processing section 112 requests the node communication section 113 to transmit the packet-out message to the node device 20 at the boundary with the different network.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 transmits the above packet-out message to the node device 20 at the boundary with the different network via the control channel, in response to the transmission request of the packet-out message from the control message processing section 112 .
- the communication unit 21 in the node device 20 at the boundary with the different network transmits the notification packet to the node device 20 in the different network through the data communication link from the interface unit 22 connected to the node device 20 in the different network, on the basis of the instruction of outputting the notification packet to the node device 20 in the different network.
- the communication unit 21 in the node device 20 at the boundary with the different network transmits a packet-in message incorporating the notification packet as inquiry information to the controller 10 that controls its own node device 20 .
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 receives the above-described packet-in message from each node device 20 connected thereto via the control channel and outputs the packet-in message to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 analyzes the above-described packet-in message and extracts the notification packet incorporated in the packet-in message. The control message processing section 112 then outputs the notification packet to the adjacency discovery section 114 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 recognizes the identifying conditions (or the identifying rules) of packets used to communicate with the controller 10 in the different network, on the basis of the notification packet.
- the controllers 10 - 1 and 10 - 2 can recognize the identifying conditions (or the identifying rules) of packets used in the mutual communications.
- the controller 10 - 1 prepares a notification packet incorporating identifying conditions (or identifying rules) of packets used to communicate with the controller 10 - 2 and transmits a packet-out message incorporating the notification packet and an instruction of outputting the notification packet to the node device 20 - 4 to the node device 20 - 3 at the boundary with the different network via the control channel.
- the node device 20 - 3 When receiving the packet-out message from the controller 10 - 1 , the node device 20 - 3 transmits the notification packet from the interface unit 22 connected to the node device 20 - 4 in accordance with the instruction of outputting the notification packet to the node device 20 - 4 .
- the node device 20 - 4 When receiving the notification packet from the node device 20 - 3 , the node device 20 - 4 transmits a packet-in message incorporating the notification packet as inquiry information to the controller 10 - 2 , which controls the node device 20 - 4 , via the control channel.
- the controller 10 - 2 receives the packet-in message from the node device 20 - 3 and obtains the notification packet incorporated in the packet-in message. This allows the controller 10 - 2 to recognize the identifying conditions (or the identifying rules) of packets used to communicate with the controller 10 - 1 .
- the controller 10 - 2 prepares a notification packet incorporating identifying conditions (or identifying rules) of packets used to communicate with the controller 10 - 1 , and transmits a packet-out message incorporating the notification packet and an instruction of outputting the notification packet to the node device 20 - 3 , to the node device 20 - 4 at the boundary with the different network via the control channel.
- the node device 20 - 4 When receiving the packet-out message from the controller 10 - 2 , the node device 20 - 4 transmits the notification packet from the interface 22 connected to the node device 20 - 3 in accordance with the instruction of outputting the notification packet to the node device 20 - 3 .
- the node device 20 - 3 When receiving the notification packet from the node device 20 - 4 , the node device 20 - 3 transmits a packet-in message incorporating the notification packet as inquiry information to the controller 10 - 1 , which controls the node device 20 - 3 via the control channel.
- the controller 10 - 1 receives the packet-in message from the node device 20 - 4 and obtains the notification packet incorporated in the packet-in message. This allows the controller 10 - 1 to recognize the identifying conditions (or the identifying rule) of packets used to communicate with the controller 10 - 2 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 calculates identifying conditions (or identifying rules) of packets used to communicate with the controller 10 in the different network, on the basis of the topology information and the boundary information of its own network which are stored in the topology management section 111 . Also, the identifying condition calculation section 115 recognizes identifying conditions (or an identifying rule) of packets notified by the controller 10 in the different network.
- the route calculation section 116 in each of the controllers 10 - 1 and 10 - 2 determines the end points of a route to be used in the communication, on the basis of the topology information and the boundary information of the network stored in the topology management section 111 .
- one of the end points of the route is defined as the node device at the boundary of the different network.
- the node device 20 - 3 is defined as one of the end points.
- the node device 20 - 4 is defined as one of the end points.
- the other end point of the route is defined as the node device connected to the controller via a data communication link.
- the node device 20 - 1 is defined as the other end point.
- the node device 20 - 6 is defined as the other end point.
- the route calculation section 116 in each of the controllers 10 - 1 and 10 - 2 calculates a route which connects the end points thus-determined. Specifically, the route calculation section 116 determines a bi-directional transfer route which connects the interfaces of the determined node devices 20 .
- the route calculation section 116 in the controller 10 - 1 calculates the route which connects the interface unit used for connection to controller 10 - 1 in the node device 20 - 1 in the network 1 to the interface unit used for connection to the node device 20 - 4 in the network 2 in the node device 20 - 3 .
- the route calculation section 116 in the controller 10 - 2 calculates the route which connects the interface unit used for connection to controller 10 - 2 in the node device 20 - 6 in the network 2 and the interface unit used for connection to the node device 20 - 3 in the network 1 in the node device 20 - 4 .
- the processing rule calculation section 117 in each of the controllers 10 - 1 and 10 - 2 obtains the route to be used for transfer from the route calculation section 116 and obtains the identifying conditions (or the identifying rules) of packets transferred on the route from the identifying condition calculation section 115 .
- the processing rule calculation section 117 in each of the controllers 10 - 1 and 10 - 2 uses the obtained information to calculate processing required to transfer the packets in each node device 20 on the route, and calculates the processing rules (or the flow entries) in which the packet identifying conditions (or the packet identifying rules) are defined as conditions under which the processing is to be performed.
- the processing rule calculation section 117 incorporates the identification information (processing rule ID) into each calculated processing rule (or flow entry).
- the processing rule ID is incorporated in a cookie region (a region of 64 bits in which any information can be stored) in each processing rule (or flow entry).
- the processing rule management section 118 in each of the controllers 10 - 1 and 10 - 2 registers information related to the processing rules (or the flow entries) calculated by the processing rule calculation section 117 into the processing rule storage section 119 , and requests the control message processing section 112 to set processing rules (or the flow entries) for each node devices 20 on the route.
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares flow modification messages (or FlowMod-Add) in order to register the processing rules (or the flow entries) in the node devices 20 . After that, the control message processing section 112 requests the node communication section 113 to transmit the flow modification messages (or FlowMod-Add) to the node devices 20 on the route.
- the flow modification messages (or FlowMod-Add) are a sort of control messages.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 transmits the flow modification messages (FlowMod-Add) to the node devices 20 on the route via the control channels.
- the communication unit 21 in each node device 20 registers the processing rules (or the flow entries) on the basis of the contents of the flow modification message (or FlowMod-Add).
- the communication unit 21 in each node device 20 processes the received packet in accordance with the contents of the registered processing rules (or the flow entries).
- Each of the controllers 10 - 1 and 10 - 2 determines the identifying conditions (or the identifying rules) of packets used in the mutual communications.
- Each of the controllers 10 - 1 and 10 - 2 calculates the bidirectional route within its own network and specifies the node devices on the route and the interface units thereof.
- Each of the controllers 10 - 1 and 10 - 2 prepares processing rules (or flow entries) that defines a set of identifying conditions (or identifying rules) and contents of processing (or actions) which involves outputting packets to the interface unit connected to the adjacent node device, for the node devices on the route.
- each of the controllers 10 - 1 and 10 - 2 sets the node devices 20 under the control of the each controller 10 with processing rules (or the flow entries) which allows transferring packets from the node device at the boundary with the adjacent network to the node device connected to the controller 10 via the data communication link.
- the controller 10 - 1 sets each of the node devices 20 - 1 to 20 - 3 with processing rules (or flow entries) which allows transfer of packets from the node device 20 - 3 to the node device 20 - 1 .
- the controller 10 - 2 sets each of the node devices 20 - 4 to 20 - 6 with processing rules (or flow entries) which allows transfer of packets from the node device 20 - 4 to the node device 20 - 6 .
- each of the controllers 10 - 1 and 10 - 2 sets the node devices 20 under its control with processing rules (or flow entries) which allows transfers of packets from the node device connected via the data communication link to the interface unit of the node device at the boundary with the adjacent network.
- the controller 10 - 1 sets each of the node devices 20 - 1 to 20 - 3 with processing rules (or flow entries) which allows transfer of packets from the node device 20 - 1 to the node device 20 - 3 .
- the controller 10 - 2 sets each of the node devices 20 - 4 to 20 - 6 with processing rules (or flow entries) which allows transfer of packets from the node device 20 - 6 to the node device 20 - 4 .
- link connection implies connection through a data communication link.
- FIG. 6A and FIG. 6B An exemplary format of the processing rules (or the flow entries) is described with reference to FIG. 6A and FIG. 6B .
- a processing rule (or a flow entry) includes an identifying condition region (or an identifying rule region) and a contents-of-processing region (or an action region).
- the identifying condition region (or the identifying rule region) includes the “source MAC address” region, a “destination MAC address” region and an “ether type” region (or an “eth_type” region).
- the “source MAC address” region contains the MAC address of the network interface of the source of the packet.
- the “destination MAC address” region contains the MAC address of the network interface of the destination of the packet.
- the “ether type” region contains information indicating the ether type of the packet.
- the “contents-of-processing” region include an “action” region.
- the “action” region contains an instruction of outputting the packet to a predetermined output destination.
- each controller is allowed to flexibly use various types of packets for each counterpart controller.
- FIG. 6A shows an example of processing rules (or flow entries) respectively set to the node devices 20 - 1 to 20 - 3 from the controller 10 - 1 in the network 1 .
- processing rules (1) and (2) are processing rules (or flow entries) used in the node device 20 - 1 .
- processing rules (3) and (4) are processing rules (or flow entries) used in the node device 20 - 2 .
- processing rules (5) and (6) are processing rules (or flow entries) used in the node device 20 - 3 .
- FIG. 6B shows an example of the processing rule (or the flow entry) set to each of the node devices 20 - 4 to 20 - 6 from the controller 10 - 2 in the network 2 .
- processing rules (1) and (2) are processing rules (or flow entries) used in the node device 20 - 4 .
- processing rules (3) and (4) are processing rules (or flow entries) used in the node device 20 - 5 .
- processing rules (5) and (6) are processing rules (or flow entries) used in the node device 20 - 6 .
- the MAC address of the controller 10 - 1 means the MAC address of the network interface in the controller 10 - 1 .
- the MAC address of the controller 10 - 2 means the MAC address of the network interface in the controller 10 - 2 .
- the MAC address is merely one exemplary identifier used to identify the source and the destination.
- the IP address or the like may be used in place of the MAC address.
- identifying conditions are also determined in the topology retrieval by using LLDP frames. Specifically, identifying conditions (or identifying rules) of packets are embedded in LLDP frames in addition to identification information (or the controller ID) of the controller when LLDP frames are prepared in the controller.
- each LLDP frame includes an “LLDP header” region (or field) and an “optional TLVs” region.
- the “optional TLVs” region includes an “identification information” region (or a “controller ID” region, a “MAC address” region and an “ether type” region (or an “eth_type” region).
- the “identification information” region contains identification information (or the controller ID) of the controller which prepares the LLDP frame.
- the “MAC address” region contains a MAC address which is one of identifying conditions (or identifying rules) of packets.
- the “ether type (eth_type)” region contains information that indicates an ether type which is one of identifying conditions (or identifying rules) of packets.
- the MAC address is merely one exemplary identifier used to identify the source and the destination.
- the IP address or the like may be used in place of the MAC address.
- identifying conditions (or identifying rules) of packets are stored in the “optional TLVs” region in each LLDP frame.
- This embodiment is described on the basis of the system configuration shown in FIG. 2 , similarly to the first embodiment.
- the configurations of the controllers 10 and the node devices 20 are basically similar to those of the first embodiment.
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 prepares LLDP frames as topology retrieval packets, similarly to the first embodiment.
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 incorporates identification information (or the controller ID) which indicates its own controller in each LLDP frame, the identification information being unique among the networks.
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 incorporates the identification information (or the controller ID) of its own controller 10 into the “identification information” region in the “optional TLVs” region in each LLDP frame as shown in FIG. 7 .
- the topology management section 111 in each of the controllers 10 - 1 and 10 - 2 outputs the prepared LLDP frames to the identifying condition calculation section 115 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 calculates identifying conditions (or identifying rules) of packets used to communicate with the controller 10 in the different network, on the basis of the topology information and the boundary information of the networks which are stored in the topology management section 111 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 incorporates identifying conditions (or identifying rules) of packets used to communicate with the adjacent node device 20 by each node device 20 into each LLDP frame.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 incorporates the MAC address of the network interface within its own controller 10 in the “MAC address” region of the “optional TLVs” region in each LLDP frame as shown in FIG. 7 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 incorporates information indicating the ether type of packets used to communicate with the controller 10 in the different network in the “ether type” region of the “optional TLVs” region in each LLDP frame as shown in FIG. 7 .
- the identification information (or the controller ID) of the controller and identifying conditions (or rules) of packets are contained in each LLDP frame.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 requests the control message processing section 112 to instruct transmission of the LLDP frame to each node device 20 .
- the identifying condition calculation section 115 may only output the LLDP frames to the control message processing section 112 .
- the identifying condition calculation section 115 may return the LLDP frames in which identifying conditions (or rules) of packets are embedded to the topology management section 111 .
- the topology management section 111 requests the control message processing section 112 to instruct transmission of the LLDP frame to each node device 20 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares the packet-out message incorporating the LLDP frame and the transmission instruction, in response to the request for instructing the transmission of the LLDP frame to each node device 20 , and requests the node communication section 113 to transmit the packet-out message to all of the node devices 20 in its own network.
- the packet-out message includes transmission instructions which instruct to transmit the LLDP frame from all of the interface units 22 in each node device 20 .
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 transmits the packet-out message from the control message processing section 112 to all of the node devices 20 in its own network.
- the communication unit 21 in each node device 20 transmits the LLDP frame to the connection destinations from all of the interface units 22 in the node device 20 . Also, the communication unit 21 receives the LLDP frames from the connection destinations via the interface units 22 .
- the communication unit 21 in each node device 20 transmits the packet-in message as inquiry information to the controller 10 that controls the node device 20 via the control channel.
- the communication unit 21 in each node device 20 incorporates the LLDP frame, interface information of the interface unit that receives the LLDP frame (or (the interface unit ID), and identification information of the node device (or the node device ID) in the packet-in message.
- the communication unit 21 in each node device 20 receives an LLDP frame having the identification information (or the controller ID) of the controller 10 in the same network from the node device 20 in the same network, and transmits a packet-in message incorporating the LLDP frame as inquiry information to the controller 10 .
- an LLDP frame having identification information (the controller ID) of the controller 10 - 1 is transmitted to the controller 10 - 2 . That is, when receiving an LLDP frame having identification information (or the controller ID) of the controller 10 - 1 from the node device 20 - 3 , the communication unit 21 in the node device 20 - 4 transmits a packet-in message incorporating the LLDP frame as inquiry information to the controller 10 - 2 .
- an LLDP frame having identification information (or the controller ID) of the controller 10 - 2 is transmitted to the controller 10 - 1 . That is, when receiving the LLDP frame having identification information (or the controller ID) of the controller 10 - 2 from the node device 20 - 4 , the communication unit 21 in the node device 20 - 3 transmits a packet-in message incorporating the LLDP frame as inquiry information to the controller 10 - 1 .
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 receives the above-described packet-in message from each node device 20 of the connection destination through the control channel and outputs the packet-in message to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 analyzes the received packet-in messages and extracts the LLDP frames incorporated in the packet-in messages.
- the control message processing section 112 outputs the extracted LLDP frames to the adjacency discovery section 114 and the identifying condition calculation section 115 .
- the adjacency discovery section 114 in each of the controllers 10 - 1 and 10 - 2 operates similarly to the first embodiment.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 determines whether the identification information (controller ID) contained in each LLDP frame is identical to the identification information (controller ID) of its own controller 10 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 refers to the “identification information” region (or the “controller ID” region) of the “optional TLVs” region of the LLDP frame (see FIG. 7 ), and determines whether the identification information (or the controller ID) contained in the “identification information” region (or the “controller ID” region) is identical to the identification information (or the controller ID) of its own controller 10 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 determines that the LLDP frame results from the controller 10 in the different network. In this case, the identifying condition calculation section 115 determines that the identifying conditions (or the rules) contained in the LLDP frame are the identifying conditions (or the identifying rules) of packets used to communicate with the controller 10 in the different network.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 refers to the “MAC address” region of the “optional TLVs” region in the LLDP frame (see FIG. 7 ) and obtains the MAC address of the network interface in the controller 10 in the different network.
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 refers to the “ether type” region (or the “eth_type” region) of the “optional TLVs” region in the LLDP frame shown in FIG. 7 , and obtains information that indicates the ether type of packets used to communicate with the controller 10 in the different network.
- an LLDP frame prepared by each of the controllers 10 - 1 and 10 - 2 is transmitted from the interface units of each node device and this allows discovering of the network adjacency and recognizing the identifying conditions (or the rules) in the topology retrieval at the same time.
- the system configuration of this embodiment is identical to that shown in FIG. 1 .
- the system configuration of this embodiment differs from the system configuration of the first embodiment shown in FIG. 2 in that the controllers 10 and the node devices 20 are logically connected via control channels; the interfaces are not physically connected to each other via data communication links.
- Each controller 10 communicates with the node device 20 at the boundary with a different network. That is, the controller 10 - 1 communicates with the node device 20 - 3 via a control channel. The controller 10 - 2 communicates with the node device 20 - 4 via a control channel.
- Each node device 20 at the boundary with a different network communicates with the node device 20 in the different network through a data communication link.
- the node device 20 - 3 communicates with the node device 20 - 4 through a data communication link.
- the node device 20 - 4 communicates with the node device 20 - 3 through the data communication link.
- each controller 10 sets the node device 20 located on the boundary with a different network with processing rules (or flow entries) which instruct to, when receiving a packet addressed to the controller 10 in its own network from a different network, transfer the packet via the control channel to the controller 10 in its own network. That is, the controller 10 - 1 sets the node device 20 - 3 with processing rules (or flow entries) which instruct the node device 20 - 3 to transfer a packet addressed to the controller 10 - 1 when receiving the packet from the controller 10 - 2 .
- the controller 10 - 2 sets the node device 20 - 4 with processing rules (or flow entries) which instruct the node device 20 - 3 to transfer a packet addressed to the controller 10 - 2 when receiving the packet from the controller 10 - 1 .
- FIG. 8 An exemplary configuration of the controller 10 in this embodiment is described with reference to FIG. 8 . Note that this exemplary configuration is common to the controllers 10 - 1 and 10 - 2 .
- the controller 10 includes a node device control section 11 , a sorting section 12 , a sorting rule storage section 13 , one or more virtual ports 14 (one shown) and an interface management section 15 .
- the node device control section 11 and the interface management section 15 basically have same functions as those in the first embodiment,
- the node device control section 11 controls the node devices 20 connected thereto via the control channels.
- the node device control section 11 executes a software program which allows operating as an OpenFlow controller (OFC) in an OpenFlow network.
- OFC OpenFlow controller
- the node device control section 11 monitors and manages each interface unit contained in each node device 20 via the control channel, and sets each node device 20 with processing rules (or flow entries) for packets transmitted and received in its interface units.
- One example of the contents of a processing rule (a flow entry) of a packet may include an instruction to output to a interface unit or a node device control section 11 specified on the basis of the feature of the packet received by the interface unit, an instruction to, when a packet prepared by the node device control section 11 is received, output the packet to a specified interface unit, and the like.
- the node device control section 11 when receiving a packet from a node device 20 , the node device control section 11 outputs the packet to the sorting section 12 after attaching information that identifies the node device 20 and the interface unit 22 of the source of the packet. Also, when receiving a packet from the sorting section 11 , the node device control section 11 analyzes information attached to the packet that indicates the node device 20 and the interface unit 22 of the source of the packet and performs control to output the packet from a specified interface unit 22 in a specified node device 20 by issuing an output instruction specifying a proper control channel.
- the sorting section 12 upon receiving a packet from a virtual port 14 , refers to sorting rules stored in the sorting rule storage section 13 to specify a node device 20 and an interface unit 22 which are suitable as the output destination, on the basis of sorting conditions, which may include the feature of the packet, and identification information of the virtual port of the source of the packet, and outputs a message incorporating the packet and an output instruction to the specified node device 20 and interface unit 22 to the node device control section 11 .
- the sorting section 12 when receiving a packet from the node device control section 11 , the sorting section 12 refers to the sorting rules stored in the sorting rule storage section 13 to specify a virtual port suitable for the output destination, on the basis of sorting conditions, which may include the feature of the packet, identification information of the node device of the source, and identification information of the interface section and the like, and outputs the packet to the specified virtual port.
- the sorting section 12 may be attained by installing an existing virtual machine monitor (VMM), a hypervisor or the like with the above-described functions.
- VMM virtual machine monitor
- the sorting rule storage section 13 stores the sorting rules of packets exchanged between the virtual ports in the controller 10 and the interface units in the respective node devices 20 .
- the sorting rule storage section 13 stores information required to sort packets as the sorting rules.
- the sorting rule storage section 13 returns and provides suitable sorting rules in response to a reference request from the node device control section 11 and the sorting section 12 .
- the sorting rule storage section 13 stores information which correlates virtual ports with interface units in a one-to-one relationship; and information which correlates features of packets (source and destination addresses, the kind of packets and the like) with virtual ports and interface units in a one-to-one relationship.
- the sorting rule storage section 13 may be attained by using a RDB (relational data base).
- the relations described in the sorting rules may be arbitrarily modified in accordance with the OS (Operation System), software and the like used in the computer which operates as the controller 10 , or may be manually modified in accordance with a user operation.
- the relations described in the sorting rules may be dynamically modified as a part of the QoS control. It should be noted, however, these are merely examples and an actual implementation is not limited to these examples.
- the virtual ports 14 are each a virtual network interface provided in the controller 10 .
- the virtual ports 14 are recognized as an entity equivalent to a physical network interface or treated in the same way as a physical network interface, by the OS (operating system) of the computer operating as the controller 10 and the like. This implies that the virtual ports 14 are each capable of transmitting and receiving packets.
- the virtual ports 14 may be implemented as a virtual device, such as a TUN/TAP installed in the OS (Operating System) or other software.
- individual virtual machines (VM) operating on the controller 10 may each contain an OS (Operating System) and a virtual port 14 . It should be noted, however, an actual implementation is not limited to these examples
- the interface management section 15 manages the network interface in the controller 10 .
- the interface management section 15 is connected to the virtual ports 14 and capable of communicating with the virtual ports 14 .
- the node device control section 11 is connected to the sorting section 12 , the sorting rule storage section 13 and the interface management section 15 .
- interface management section 15 may be connected to any of the node devices 20 via a data communication link, similarly to the first embodiment.
- the configuration of the node device control section 11 is basically identical to that of the first embodiment.
- the node device control section 11 includes a topology management section 111 , a control message processing section 112 , a node communication section 113 , an adjacency discovery section 114 , an identifying condition calculation section 115 , a route calculation section 116 , a processing rule calculation section 117 , a processing rule management section 118 and a processing rule storage section 119 , similarly to that shown in FIG. 3 .
- the topology management section 111 , the control message processing section 112 , the node communication section 113 , the adjacency discovery section 114 , the identifying condition calculation section 115 , the route calculation section 116 , the processing rule calculation section 117 , the processing rule management section 118 and the processing rule storage section 119 basically operate similarly to those of the first embodiment.
- control message processing section 112 is further connected to the sorting section 12 and the sorting rule storage section 13 .
- the topology retrieval in this embodiment is basically achieved in the procedure similar to that of the first embodiment or the second embodiment.
- the operation of the topology retrieval of this embodiment may involve the operations described in the sections entitled “(1) Operation for Transmitting LLDP Frame”, “(2) Operation for Transmitting Inquiry Information of LLDP Frame via Control Channel”, and “(4) Operation for Preparing Topology Information”; these sections describe the exemplary operation of the topology retrieval in the first embodiment.
- each controller 10 to dynamically recognize and monitor existences of a controller 10 in a different network, a node device 20 located on the boundary with the different network, and its interface unit 22 .
- the identifying condition calculation section 115 in each of the controllers 10 - 1 and 10 - 2 calculates identifying conditions (or rules) of packets used to communicate with the controller 10 in a different network, on the basis of the topology information and the boundary information of the network, which are stored in the topology management section 111 .
- the route calculation section 116 in each of the controllers 10 - 1 and 10 - 2 determines the end points of a route used in the communication, on the basis of the topology information and the boundary information of the network, which are stored in the topology management section 111 .
- each end point of the route is defined as a node device located on the boundary with a different network.
- the node device 20 - 3 is defined as one end point.
- the node device 20 - 4 is defined as the other end point.
- the route calculation section 116 in each of the controllers 10 - 1 and 10 - 2 calculates the route which connects the controller 10 to the node device 20 located on the boundary with a different network and through the control channel.
- the processing rule calculation section 117 in each of the controllers 10 - 1 and 10 - 2 obtains the route used for packet transfer from the route calculation section 116 and obtains the identifying conditions (or the identifying rules) of packets transferred on the route from the identifying condition calculation section 115 .
- the processing rule calculation section 117 in each of the controllers 10 - 1 and 10 - 2 uses the obtained information and calculates processing rules (or flow entries) to be set to the node device 20 located on the boundary with the different network. At this time, the processing rule calculation section 117 incorporates identification information (or the processing rule ID) of each processing rule (flow entry), into each processing rule (or flow entry). Specifically, the processing rule ID is stored in a cookie region in each processing rule (or flow entry).
- contents of processing (or the actions) of the processing rules (or the flow entries) are defined to instruct an operation in which, when receiving a packet addressed to the controller 10 in its own network from the controller 10 in a different network, a packet-in message incorporating the packet and the processing rule ID is transmitted to the controller 10 in its own network through the control channel.
- the processing rule calculation section 117 in the controller 10 - 1 calculates processing rules (or flow entries) which instruct to, when receiving a packet addressed to the controller 10 - 1 from the controller 10 - 2 , transmit a packet-in message incorporating the packet and a processing rule ID “A” to the controller 10 - 1 via the control channel, as the processing rules (or the flow entries) to be set to the node device 20 - 3 .
- the processing rule calculation section 117 in the controller 10 - 2 calculates processing rules (or flow entries) which instruct to, when receiving a packet addressed to the controller 10 - 2 from the controller 10 - 1 , transmit a packet-in message incorporating the packet and a processing rule ID “B” to the controller 10 - 2 via the control channel, as the processing rules (or the flow entries) to be set to the node device 20 - 4 .
- the processing rule management section 118 in each of the controllers 10 - 1 and 10 - 2 registers information related to the processing rules (or the flow entries) calculated by the processing rule calculation section 117 into the processing rule storage section 119 , and requests the control message processing section 112 to set the node device 20 located on the boundary with the different network with the processing rules (or the flow entries).
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 upon receiving the request for setting the node device 20 with the processing rules (or the flow entries), prepares a flow modification message (FlowMod-Add) to register the processing rules (or the flow entries) in the node device 20 .
- the control message processing section 112 requests the node communication section 113 to transmit the flow modification message (FlowMod-Add) to the node device 20 located on the boundary with the different network.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 upon receiving the transmission request of the flow modification message (FlowMod-Add) to the node device 20 located on the boundary with the different network, transmits the flow modification message (FlowMod-Add) to the node device 20 via the control channel.
- the communication unit 21 in each node device 20 upon receiving the flow modification message (FlowMod-Add) from the controller 10 via the control channel, registers therein the processing rules (or the flow entries) on the basis of the contents of the flow modification message (FlowMod-Add).
- the communication unit 21 upon receiving a packet via the interface unit 22 , processes the packet in accordance with the contents of the registered processing rules (or the flow entries).
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 obtains the processing rules (the flow entries) with regard to the communications between the controllers 10 from the processing rule management section 118 , and obtains the processing rules ID embedded in the processing rules (the flow entries).
- the control message processing section 112 then prepares a notification packet incorporating the processing rules ID.
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 incorporates the processing rules ID in the cookie region or data region of the notification packet.
- the control message processing section 112 defines the destination address as the address of the controller 10 in the different network, and defines the source address as the address of the controller 10 in its own network. It should be noted that, the control message processing section 112 , may carry out this process at the same time, when preparing the flow modification message (FlowMod-Add).
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares a packet-out message which incorporates the above-described notification packet and a transmission instruction thereof.
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 requests the node communication section 113 to transmit the packet-out message to the node device 20 located on the boundary with the different network.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 when receiving the transmission request of the packet-out message to the node device 20 located on the boundary with the different network, transmits the packet-out message to the node device 20 via the control channel. For example, the node communication section 113 in the controller 10 - 1 transmits the packet-out message to the node device 20 - 3 . Similarly, the node communication section 113 in the controller 10 - 2 transmits the packet-out message to the node device 20 - 4 .
- the communication unit 21 in the node device 20 located on the boundary with the different network transmits the notification packet from the interface unit 22 to the node device 20 in the different network on the basis of the contents of the packet-out message.
- the communication unit 21 in the node device 20 - 3 transmits the notification packet to the node device 20 - 4 via the data communication link.
- the communication unit 21 in the node device 20 - 4 transmits the notification packet to the node device 20 - 3 via the data communication link.
- the communication unit 21 in the node device 20 located on the boundary with the different network when receiving a notification packet from the node device 20 in the different network through the interface unit 22 , transmits a packet-in message which incorporates the notification packet as inquiry information to the controller 10 that controls the node device 20 via the control channel.
- the communication unit 21 in the node device 20 - 3 transmits a packet-in message which incorporates the notification packet to the controller 10 - 1 via the control channel.
- the communication unit 21 in the node device 20 - 4 transmits a packet-in message which incorporates the notification packet to the controller 10 - 2 via the control channel.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 receives the above-described packet-in message from the node device 20 located on the boundary with the different network via the control channel, and outputs the packet-in message to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 extracts the notification packet stored in the above packet-in message, and obtains the processing rules ID that indicates the processing rules (flow entries) of the controller 10 in the different network from the contents of the notification packet.
- the controller 10 - 1 recognizes that a processing rule identified by a processing rule ID “B” is used in the controller 10 - 2 when transmitting a packet in which the destination address is defined as the address of the controller 10 - 2 and the source address is defined as the address of the controller 10 - 1 .
- the controller 10 - 2 recognizes that a processing rule identified by a processing rule ID “A” is used in the controller 10 - 1 , when transmitting a packet in which the destination address is defined as the address of the controller 10 - 1 and the source address is defined as the controller 10 - 2 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 prepares a sorting rule and stores the prepared sorting rule in the sorting rule storage section 13 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 specifies identification information (the node device ID) of the node device 20 located on the boundary with the different network as information to be stored in a “node device ID” region in the sorting rule.
- the control message processing section 112 also specifies identification information (or the interface ID) of the interface unit 22 used for the connection to the node device 20 in the different network as information to be stored in an “interface ID” region of the sorting rule.
- the control message processing section 112 also specifies the address of the controller 10 in its own network as information to be stored in an “own address” region of the sorting rule.
- the control message processing section 112 also specifies the address of the controller 10 in the different network as information of a “counterpart address” region of the sorting rule.
- the control message processing section 112 specifies the processing rules ID embedded in the processing rule (or the flow entry) as information to be stored in a “processing rule ID” region of the sorting rule.
- the sorting section 12 in each of the controllers 10 - 1 and 10 - 2 recognizes a virtual port 14 used to communicate with the controller 10 in the different network, and specifies identification information of the virtual port (or the virtual port ID) as information to be stored in a “virtual port ID” region for the above-described sorting rule.
- sorting rules may be manually stored in the sorting rule storage section 13 in advance by an operator's input or the like.
- FIGS. 9A and 9B An exemplary format of the sorting rules stored in the sorting rule storage section 13 is described with reference to FIGS. 9A and 9B .
- a sorting rule includes a “virtual port ID” region, a “node device ID” region, an “interface ID” region, an “own address” region, a “counterpart address” region and a “processing rule ID” region.
- the “virtual port ID” region contains identification information (or the virtual port ID) of the virtual port 14 used to communicate with the controller 10 in a different network.
- the “node device ID” region contains identification information (or the node device ID) of the node device 20 located on the boundary with the different network.
- the “interface ID” region contains identification information (or the interface ID) of the interface unit 22 used for the connection to the node device 20 in the different network.
- the “own address” region contains the address of its own controller 10 .
- the “counterpart address” region contains the address of a communication counterpart.
- the “processing rule ID” region contains identification information (or the processing rule ID) of a processing rule (or a flow entry).
- the above-described addresses may be a MAC address, an IP address, or other identification information.
- Each of the addresses described in the “own address” region and the “counterpart address” region may be a destination address or a source address.
- the source address of a packet transferred between the controllers 10 is the address described in the “own address” region of a sorting rule and the destination address is the address described in the “counterpart address” region of the sorting rule, for example, this implies that the packet matches with the sorting rule.
- the source address of a packet transferred between the controllers 10 is the address described in the “counterpart address” region of a sorting rule and the destination address is the address described in the “own address” region of the sorting rule, this implies that the packet matches with the sorting rule.
- an “own address” region contains the address of the controller 10 in its own network
- a “counterpart address” region contains the address of a controller 10 in a different network.
- the virtual ports 14 are assigned with addresses in each controller 10 .
- a typical virtual machine may be assigned with a virtual MAC address, a virtual IP address or the like.
- a virtual port 14 in the controller 10 - 1 is assigned with a virtual port ID “VP1”.
- a virtual port 14 in the controller 10 - 2 is assigned with a virtual port ID “VP2”.
- the interface unit 22 used for the connection to the node device 20 - 4 in the node device 20 - 3 is assigned with an interface ID “IF3”.
- the interface unit 22 used for the connection to the node device 20 - 3 in the node device 20 - 4 is assigned with an interface ID “IF4”.
- FIG. 9A describes an example of the sorting rule in the controller 10 - 1 in the network 1 .
- FIG. 9B describes an example of a sorting rule in the controller 10 - 2 in the network 2 .
- the sorting section 12 in each of the controllers 10 - 1 and 10 - 2 when receiving a packet from a virtual port 14 , determines identification information (or the virtual port ID) of the virtual port 14 , the destination address and the source address of the received packet.
- the sorting section 12 in each of the controllers 10 - 1 and 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 , using the identification information (virtual port ID) of the virtual port 14 , the destination address and the source address as search keys, to specify a node device 20 and an interface unit 22 which are suitable as the output destination of the packet.
- the sorting section 12 in the controller 10 - 1 searches the sorting rules stored in the sorting rule storage section 13 , using the virtual port ID “VP1” of the virtual port 14 , the destination address (that is, the address of the controller 10 - 2 ), the source address (that is, the address of the controller 10 - 1 ) as search keys, and consequently specifies the node device ID “DPID3” and the interface ID “IF3”.
- the sorting section 12 in the controller 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 using the virtual port ID “VP2” of the virtual port 14 , the destination address (that is, the address of the controller 10 - 1 ) and the source address (that is, the address of the controller 10 - 2 ) as search keys, and consequently specifies the node device ID “DPID4” and the interface ID “IF4”.
- the sorting section 12 in each of the controllers 10 - 1 and 10 - 2 outputs a message incorporating the packet and an instruction to output the packet to the specified node device 20 and interface unit 22 , to the control message processing section 112 in the node device control section 11 .
- the sorting section 12 in the controller 10 - 1 outputs a message incorporating the packet and an instruction to output the packet to the node device 20 - 3 and the specified interface unit 22 thereof, to the control message processing section 112 in the node device control section 11 .
- the sorting section 12 in the controller 10 - 2 outputs a message incorporating the packet and an instruction to output the packet to the node device 20 - 4 and the specified interface unit 22 thereof, to the control message processing section 112 in the node device control section 11 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 refers to the sorting rules stored in the sorting rule storage section 13 to prepare a packet-out message incorporating the packet and an instruction to transmit the packet, and requests the node communication section 113 to transmit the packet-out message to the node device 20 located on the boundary with the different network.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 transmits the packet-out message received from the control message processing section 112 to the node device 20 located on the boundary with the different network.
- the node communication section 113 in the controller 10 - 1 transmits the packet-out message from the control message processing section 112 to the node device 20 - 3 .
- the node communication section 113 in the controller 10 - 2 transmits the packet-out message from the control message processing section 112 to the node device 20 - 4 .
- the communication unit 21 in the node device 20 located on the boundary with the different network transmits the packet incorporated in the above-described packet-out message from the specified interface unit 22 to the node device 20 in the different network.
- the communication unit 21 in the node device 20 - 3 transmits the packet incorporated in the above-described packet-out message from the specified interface unit 22 to the node device 20 - 4 .
- the communication unit 21 in the node device 20 - 4 transmits the packet incorporated in the above packet-out message from the specified interface unit 22 to the node device 20 - 4 .
- the communication unit 21 in the node device 20 located on the boundary with the different network when receiving the packet from the node device 20 in the different network through the interface unit 22 , transmits a packet-in message as inquiry information to the controller 10 that controls the its own node device 20 via the control channel in accordance with the processing rules (or the flow entries). At this time, the communication unit 21 incorporates the packet, the node device ID, the interface ID and the processing rule ID into this packet-in message.
- the communication unit 21 in the node device 20 - 3 when receiving a packet from the node device 20 - 4 via the interface unit 22 , transmits a packet-in message as inquiry information to the controller 10 - 1 that controls the node device 20 - 3 via the control channel in accordance with the processing rules (or the flow entries). At this time, the communication unit 21 in the node device 20 - 3 incorporates the packet, the node device ID “DPID3”, the interface ID “IF3” and the processing rule ID “A”, into this packet-in message.
- the communication unit 21 in the node device 20 - 4 when receiving a packet from the node device 20 - 3 via the interface unit 22 , transmits a packet-in message as inquiry information to the controller 10 - 2 that controls the node device 20 - 4 via the control channel in accordance with the processing rules (or the flow entries). At this time, the communication unit 21 in the node device 20 - 4 incorporates the packet, the node device ID “DPID4”, the interface ID “IF4” and the processing rule ID “B”, into this packet-in message.
- the node communication section 113 in each of the controllers 10 - 1 and 10 - 2 receives the above-described packet-in message from the node device 20 connected thereto via the control channel, and outputs the packet-in message to the control message processing section 112 .
- the control message processing section 112 in each of the controllers 10 - 1 and 10 - 2 analyzes the above-described packet-in message and obtains the packet, the node device ID, the interface ID and the processing rule ID. At this time, the control message processing section 112 can obtain the destination address and the source address from the header information of the packet and the like.
- control message processing section 112 in the controller 10 - 1 analyzes the above-described packet-in message and obtains the packet, the node device ID “DPID3”, the interface ID “IF3” and the processing rule ID “A”. At this time, the control message processing section 112 can obtains the address of the controller 10 - 1 as the destination address and the address of the controller 10 - 2 as the source address from the header information of the packet, and the like.
- control message processing section 112 in the controller 10 - 2 analyzes the above-described packet-in message and obtains the packet, the node device ID “DPID4”, the interface ID “IF4” and the processing rule ID “B”. At this time, the control message processing section 112 can obtains the address of the controller 10 - 2 as the destination address and the address of the controller 10 - 1 as the source address from the header information of the packet, and the like.
- the control message processing section 112 in each of the controller 10 - 1 and 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 by using at least one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID as a search key(s), and recognizes that the packet is addressed to a virtual port 14 in its own network.
- the control message processing section 112 then outputs the packet to the sorting section 12 together with the information used as the search key(s).
- the control message processing section 112 may output any or all of the node device ID, the interface ID, the destination address, the source address and the processing rule ID together with the packet, to the sorting section 12 .
- the sorting section 12 in each of the controllers 10 - 1 and 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 using at least one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID as a search key(s), and thereby recognizes that the packet is addressed to a virtual port 14 in the controller 10 in its own network, and then outputs the packet to the virtual port 14 .
- the sorting section 12 in the controller 10 - 1 searches the sorting rules stored in the sorting rule storage section 13 using the processing rule ID “A” as a search key, and thereby specifies the virtual port ID “VP1”.
- the sorting section 12 in the controller 10 - 1 then outputs the packet to the virtual port 14 identified by the virtual port ID “VP1”.
- the sorting section 12 in the controller 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 by using the processing rule ID “B” as a search key, and thereby specifies the virtual port ID “VP2”.
- the sorting section 12 in the controller 10 - 2 then outputs the packet to the virtual port 14 identified by the virtual port ID “VP2”.
- control message processing section 112 and the sorting section 12 may use any one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID, or any combination of them, or all of them as the search key(s).
- the sorting section 12 may unconditionally specify the interface unit 22 in the node device 20 located on the boundary with the different network as the output destination of the packet inputted from a predetermined virtual port 14 . Similarly, the sorting section 12 may unconditionally specify a predetermined virtual port 14 , as the output destination of the packet from the interface unit 22 in the node device 20 located on the boundary with the different network.
- the sorting section 12 may search the sorting rules stored in the sorting rule storage section 13 using only the virtual port ID as the search key, irrespectively of the destination address and the source address of the inputted packet and specify a node device ID and an interface ID which indicate the output destination.
- the sorting section 12 may search the sorting rules stored in the sorting rule storage section 13 using only the node device ID and the interface ID as the search keys and specify a virtual port ID which indicates the output destination.
- This embodiment eliminates the need for physically connecting interfaces of a controller and a node device via a data communication link, effectively improving the flexibility in actual implementations.
- client processes are executed in one of the two controllers, and server processes are executed in the other controller.
- server processes are executed in the other controller.
- the two controllers communicate with each other via the node devices under the control thereof.
- FIG. 10A shows an exemplary network configuration of the network 1
- FIG. 10B shows an exemplary network configuration of the network 2 .
- the communications system of this embodiment includes a controller 10 - 1 , a controller 10 - 2 , node devices 20 - 1 to 20 - 6 .
- the controller 10 - 1 controls the node devices 20 - 1 to 20 - 3 and the controller 10 - 2 controls the node devices 20 - 4 to 20 - 6 .
- the node devices 20 - 1 to 20 - 3 are arranged in the network 1 and the node devices 20 - 4 to 20 - 6 are arranged in the network 2 . At least one of the node devices 20 - 1 to 20 - 3 is connected to at least one of the node devices 20 - 4 to 20 - 6 via a data communication link.
- controller 10 - 1 and the controller 10 - 2 Exemplary configurations of the controller 10 - 1 and the controller 10 - 2 are described below.
- the controllers 10 - 1 and 10 - 2 each correspond to the controller 10 shown in FIG. 8 .
- the controller 10 - 1 includes a node device control section 11 - 1 , a sorting section 12 - 1 , a sorting rule storage section 13 - 1 , virtual ports 14 - 11 and 14 - 12 , an interface management section 15 - 1 and a client section 16 .
- the controller 10 - 2 contains a node device control section 11 - 2 , a sorting section 12 - 2 , a sorting rule storage section 13 - 2 , virtual ports 14 - 21 and 14 - 22 , an interface management section 15 - 2 and a server section 17 .
- the node device control section 11 - 1 and the node device control section 11 - 2 each correspond to the node device control section 11 shown in FIG. 8 .
- the node device control section 11 - 1 controls each of the node devices 20 - 1 to 20 - 3 via a control channel.
- the node device control section 11 - 2 controls each of the node devices 20 - 4 to 20 - 6 via a control channel.
- the sorting sections 12 - 1 and 12 - 2 each correspond to the sorting section 12 shown in FIG. 8 .
- the sorting rule storage sections 13 - 1 and 13 - 2 each correspond to the sorting rule storage section 13 shown in FIG. 8 .
- the virtual ports 14 - 11 , 14 - 12 , 14 - 21 and 14 - 22 each correspond to the virtual port 14 shown in FIG. 8 .
- the interface management sections 15 - 1 and 15 - 2 each correspond to the interface management section 15 shown in FIG. 8 . It should be noted that the interface management sections 15 - 1 and 15 - 2 may have the same function as the interface management section 15 shown in FIG. 3 .
- the client section 16 executes processes in the seventh layer (the application layer or layer 7 ) out of the seven layers defined in the OSI reference model.
- the client section 16 may be realized by a client processing function provided by the OS (operating system) or software of the computer operating as the controller 10 . Note that actual implementations of the client section 16 are not limited to those examples.
- the server section 17 executes processes in the seventh layer (the application layer, layer 7 ) out of the seven layers defined in the OSI reference model.
- the server section 17 may be realized by a server processing function provided by the OS (operating system) or software of the computer operating as the controller 10 .
- actual implementations of the server section 17 are not limited to those examples.
- each of the controllers 10 - 1 and 10 - 2 may incorporate both of the client section 16 and the server section 17 .
- the virtual port 14 - 11 in the controller 10 - 1 is assigned with an address “AD11”.
- the virtual port 14 - 11 is provided between the sorting section 12 - 1 and the client section 16 , allowing packet transfer between the sorting section 12 - 1 and the client section 16 .
- the virtual port 14 - 12 in the controller 10 - 1 is assigned with an address “AD12”.
- the virtual port 14 - 11 and the client section 16 may be installed in the same virtual machine (VM).
- the virtual port 14 - 12 is provided between the sorting section 12 - 1 and the interface management section 15 - 1 , allowing packet transfer between the sorting section 12 - 1 and the interface management section 15 - 1 .
- the sorting section 12 - 1 , the virtual ports 14 - 11 , 14 - 12 and the interface management section 15 - 1 may be realized as the functions installed in the same OS (operating system) and software.
- the virtual port 14 - 21 in the controller 10 - 2 is assigned with an address “AD21”.
- the virtual port 14 - 21 is arranged between the sorting section 12 - 2 and the server section 17 , allowing packet transfer between the sorting section 12 - 2 and the server section 17 .
- the virtual port 14 - 21 and the server section 17 may be installed in the same virtual machine (VM).
- the virtual port 14 - 22 in the controller 10 - 2 is assigned with an address “AD22”.
- the virtual port 14 - 22 is provided between the sorting section 12 - 2 and the interface management section 15 - 2 , allowing packet transfer between the sorting section 12 - 2 and the interface management section 15 - 2 .
- the sorting section 12 - 2 , the virtual ports 14 - 21 , 14 - 22 and the interface management section 15 - 2 may be realized as the functions installed in the same OS (Operating System) and software.
- addresses “AD11” and “AD21” may be defined as any region (field) which can be identified in the OpenFlow technique, such as the MAC address, the IP address, the TCP/UDP (User Datagram Protocol) port number and the like, or a combination of them. It should be noted, however, actual implementations are not limited to these examples.
- the virtual port 14 - 11 in the controller 10 - 1 is assigned with a virtual port ID “VP11”.
- the virtual port 14 - 12 in the controller 10 - 1 is assigned with a virtual port ID “VP12”.
- the virtual port 14 - 21 in the controller 10 - 2 is assigned with a virtual port ID “VP21”.
- the virtual port 14 - 22 in the controller 10 - 2 is assigned with a virtual port ID “VP22”.
- the node devices 20 - 1 to 20 - 6 each correspond to the node device 20 shown in FIG. 4 .
- the node device 20 - 1 includes a communication unit 21 - 1 , an interface unit 22 - 11 and an interface unit 22 - 12 .
- the node device 20 - 2 includes a communication unit 21 - 2 , an interface unit 22 - 21 and an interface unit 22 - 22 .
- the node device 20 - 3 includes a communication unit 21 - 3 , an interface unit 22 - 31 and an interface unit 22 - 32 .
- the node device 20 - 4 includes a communication unit 21 - 4 , an interface unit 22 - 41 and an interface unit 22 - 42 .
- the node device 20 - 5 includes a communication unit 21 - 5 , an interface unit 22 - 51 and an interface unit 22 - 52 .
- the node device 20 - 6 includes a communication unit 21 - 6 , an interface unit 22 - 61 and an interface unit 22 - 62 .
- the communication unit 21 - 1 to 21 - 6 each correspond to the communication unit 21 shown in FIG. 4 .
- the interface units 22 - 11 , 22 - 12 , 22 - 21 , 22 - 22 , 22 - 31 , 22 - 32 , 22 - 41 , 22 - 42 , 22 - 51 , 22 - 52 , 22 - 61 and 22 - 62 each correspond to the interface units 22 shown in FIG. 4 .
- the interface unit 22 - 11 in the node device 20 - 1 is connected to the interface management section 15 - 1 in the controller 10 - 1 .
- the interface unit 22 - 12 in the node device 20 - 1 is connected to the interface unit 22 - 21 in the node device 20 - 2 .
- the interface unit 22 - 22 in the node device 20 - 2 is connected to the interface unit 22 - 31 in the node device 20 - 3 .
- the interface unit 22 - 32 in the node device 20 - 3 is connected to the interface unit 22 - 41 in the node device 20 - 4 .
- the interface unit 22 - 42 in the node device 20 - 4 is connected to the interface unit 22 - 51 in the node device 20 - 5 .
- the interface unit 22 - 52 in the node device 20 - 5 is connected to the interface unit 22 - 61 in the node device 20 - 6 .
- the interface unit 22 - 62 in the node device 20 - 6 is connected to the interface management section 15 - 2 in the controller 10 - 2 .
- the node device 20 - 3 is arranged in the network 1
- the node device 20 - 4 is arranged in the network 2 .
- the interface unit 22 - 11 is assigned with an interface ID “IF11”.
- the interface unit 22 - 12 is assigned with an interface ID “IF12”.
- the interface unit 22 - 21 is assigned with an interface ID “IF21”.
- the interface unit 22 - 22 is assigned with an interface ID “IF22”.
- the interface unit 22 - 31 is assigned with an interface ID “IF31”.
- the interface unit 22 - 32 is assigned with an interface ID “IF32”.
- the interface unit 22 - 41 is assigned with an interface ID “IF41”.
- the interface unit 22 - 42 is assigned with an interface ID “IF42”.
- the interface unit 22 - 51 is assigned with an interface ID “IF51”.
- the interface unit 22 - 52 is assigned with an interface ID “IF52”.
- the interface unit 22 - 61 is assigned with an interface ID “IF61”.
- the interface unit 22 - 62 is assigned with an interface ID “IF62”.
- FIG. 11A shows an example of the sorting rules in the controller 10 - 1 in the network 1 .
- FIG. 11B shows an example of the sorting rules in the controller 10 - 2 in the network 2 .
- the node device control section 11 - 1 in the controller 10 - 1 searches the sorting rules stored in the sorting rule storage section 13 - 1 and outputs a flow modification message (FlowMod-Add) to set the node device 20 - 3 with a processing rule (or a flow entry).
- FlowMod-Add flow modification message
- the destination address “AD11” and the source address “AD21” are specified as the identifying conditions (or the identifying rule) of the processing rule (or the flow entry).
- the contents of processing (or the action) of the processing rule (flow entry) are specified to perform an operation of outputting a packet-in message incorporates the packet and the processing rule ID “A1” to the controller 10 - 1 (or the output port connected to the controller 10 - 1 ).
- the node device control section 11 - 1 outputs to the node device 20 - 3 a flow modification message (FlowMod-Add) to instruct the node device 20 - 3 to carry out a process of outputting to the controller 10 - 1 the packet-in message which incorporates the packet and the processing rule ID “A1”, when the interface unit 22 - 32 receives the packet in which the destination address is “AD11” and the source address is “AD21”.
- FlowMod-Add flow modification message
- the node device control section 11 - 2 in the controller 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 - 2 and outputs a flow modification message (FlowMod-Add) to set the node device 20 - 4 with a processing rule (or a flow entry).
- FlowMod-Add flow modification message
- the destination address “AD21” and the source address “AD11” are specified as the identifying conditions (or an identifying rule) of the processing rule (or the flow entry).
- the contents of processing (or the action) of the processing rule (or the flow entry) are specified to perform an operation of outputting an packet-in message incorporates the packet and the processing rule ID “B1” to the controller 10 - 2 (or the output port connected to the controller 10 - 2 ).
- the node device control section 11 - 2 outputs to the node device 20 - 4 a flow modification message (FlowMod-Add) to instruct the node device 20 - 4 to carry out a process of outputting to the controller 10 - 2 the packet-in message which incorporates the packet and the processing rule ID “B1”, when the interface unit 22 - 23 receives the packet in which the destination address is “AD21” and the source address is “AD11”.
- FlowMod-Add flow modification message
- the sorting section 12 - 1 in the controller 10 - 1 searches the sorting rules stored in the sorting rule storage section 13 - 1 , and if the destination address of the packet is “AD21” and the source address of the packet is “AD11”, outputs a message of requesting the node device control section 11 - 1 to output the packet from the interface unit 22 - 32 in the node device 20 - 3 .
- the node device control section 11 - 1 When receiving the above-described message from the sorting section 12 - 1 , the node device control section 11 - 1 transmits a packet-out message which incorporates the packet and a instruction of outputting the packet to the interface unit 22 - 12 , to the node device 20 - 3 via the control channel.
- the sorting section 12 - 2 in the controller 10 - 2 searches the sorting rules stored in the sorting rule storage section 13 - 2 , and if the destination address of the packet is “AD11” and the source address of the packet is “AD21”, outputs a message of requesting the node device control section 11 - 2 to output the packet from the interface unit 22 - 41 in the node device 20 - 4 .
- the client section 16 in the controller 10 - 1 outputs a packet in which the destination address is defined as “AD21” and the source address is defined as “AD11”, to the virtual port 14 - 11 .
- the virtual port 14 - 11 When receiving the packet from the client section 16 , the virtual port 14 - 11 outputs the packet to the sorting section 12 - 1 .
- the sorting section 12 - 1 searches the sorting rules stored in the sorting rule storage section 13 - 1 and outputs a message of requesting the node device control section 11 - 1 to output the packet from the interface unit 22 - 32 in the node device 20 - 3 , since the destination address of the packet is “AD21” and the source address of the packet is “AD11”.
- the node device control section 11 - 1 When receiving the above-described message from the sorting section 12 - 1 , the node device control section 11 - 1 transmits a packet-out message which incorporates the packet and an instruction of outputting the packet to the interface unit 22 - 32 , to the communication unit 21 - 3 in the node device 20 - 3 .
- the communication unit 21 - 3 in the node device 20 - 3 When receiving the packet-out message from the node device control section 11 - 1 in the controller 10 - 1 , the communication unit 21 - 3 in the node device 20 - 3 outputs the packet incorporated in the packet-out message to the interface unit 22 - 32 .
- the interface unit 22 - 32 When receiving the packet from the communication unit 21 - 3 , the interface unit 22 - 32 transfers the packet to the interface unit 22 - 41 in the node device 20 - 4 , which is the connection destination, via the data communication link.
- the interface unit 22 - 41 in the node device 20 - 4 When receiving the packet from the interface unit 22 - 32 in the node device 20 - 3 , the interface unit 22 - 41 in the node device 20 - 4 outputs the packet to the communication unit 21 - 4 .
- the communication unit 21 - 4 When receiving the packet from the interface unit 22 - 41 , the communication unit 21 - 4 processes the inputted packet in accordance with the processing rules (the flow entries).
- the communication unit 21 - 4 is set with a processing rule (or a flow entry) by the node device control section 11 - 2 in the controller 10 - 2 , wherein the processing rule instructs to, when receiving a packet in which the destination address is “AD21” and the source address is “AD11” in the interface unit 22 - 41 , output a packet-in message which incorporates the packet and the processing rule ID “B1” to the controller 10 - 2 .
- the communication unit 21 - 4 outputs the packet-in message incorporating the packet, which complies with the identifying conditions (or the identifying rule) of the processing rule (or the flow entry), and the processing rule ID “B1”, to the node device control section 11 - 2 in the controller 10 - 2 , via the control channel.
- the node device control section 11 - 2 in the controller 10 - 2 When receiving the above-described packet-in message from the communication unit 21 - 4 in the node device 20 - 4 , the node device control section 11 - 2 in the controller 10 - 2 outputs a message which incorporates the above-described packet and the processing rule ID “B1” to the sorting section 12 - 2 .
- the sorting section 12 - 2 searches the sorting rules stored in the sorting rule storage section 13 - 2 , and determines that the packet is to be outputted to the virtual port 14 - 21 on the basis of the processing rule ID “B1” included in the above message, and outputs the packet incorporated in the above message to the virtual port 14 - 21 .
- the virtual port 14 - 21 When receiving the packet from the sorting section 12 - 2 , the virtual port 14 - 21 outputs the packet to the server section 17 , which is the connection destination thereof.
- the server section 17 processes the packet when receiving the packet from the virtual port 14 - 21 .
- the server section 17 in the controller 10 - 2 outputs a packet in which the destination address is defined as “AD11” and the source address is defined as “AD21” to the virtual port 14 - 21 .
- the virtual port 14 - 21 When receiving the packet from the server section 17 , the virtual port 14 - 21 outputs the packet to the sorting section 12 - 1 .
- the sorting section 12 - 1 When receiving the packet from the virtual port 14 - 21 , the sorting section 12 - 1 searches the sorting rules stored in the sorting rule storage section 13 - 1 . Since the destination address of the packet is “AD11” and the source address of the packet is “AD21”, the sorting section 12 - 1 outputs a message of requesting the node device control section 11 - 2 to output the packet from the interface unit 22 - 41 in the node device 20 - 4 .
- the node device control section 11 - 2 When receiving the above message from the sorting section 12 - 2 , the node device control section 11 - 2 transmits a packet-out message which incorporates the packet and an instruction of outputting the packet to the interface unit 22 - 41 , to the communication unit 21 - 4 in the node device 20 - 4 via the control channel.
- the communication unit 21 - 4 in the node device 20 - 4 When receiving the packet-out message from the node device control section 11 - 2 in the controller 10 - 2 , the communication unit 21 - 4 in the node device 20 - 4 outputs the packet incorporated in the packet-out message to the interface unit 22 - 41 .
- the interface unit 22 - 41 When receiving the packet from the communication unit 21 - 4 , the interface unit 22 - 41 transfers the packet to the interface unit 22 - 32 in the node device 20 - 3 , which is the connection destination, through the data communication link.
- the interface unit 22 - 32 in the node device 20 - 3 When receiving the packet from the interface unit 22 - 41 in the node device 20 - 4 , the interface unit 22 - 32 in the node device 20 - 3 outputs the packet to the communication unit 21 - 3 .
- the communication unit 21 - 3 When receiving the packet from the interface unit 22 - 32 , the communication unit 21 - 3 processes the received packet on the basis of the processing rules (or the flow entries).
- the communication unit 21 - 3 is set with a processing rule (or a flow entry) from the node device control section 11 - 1 in the controller 10 - 1 , wherein the processing rule instructs to, when receiving a packet in which the destination address is defined as “AD11” and the source address is defined as “AD21” in the interface unit 22 - 32 , output a packet-in message which incorporates the packet and the processing rule ID “A1” to the controller 10 - 1 .
- a processing rule or a flow entry
- the communication unit 21 - 3 outputs the packet-in message which incorporates the packet complying with the identifying conditions (or the identifying rule) of the processing rule (or the flow entry) and the processing rule ID “A1”, to the node device control section 11 - 1 in the controller 10 - 1 via the control channel.
- the node device control section 11 - 1 in the controller 10 - 1 When receiving the above packet-in message from the communication unit 21 - 3 in the node device 20 - 3 , the node device control section 11 - 1 in the controller 10 - 1 outputs a message which incorporates the above packet and the processing rule ID “A1” to the sorting section 12 - 1 .
- the sorting section 12 - 1 When receiving the above message from the node device control section 11 - 1 , the sorting section 12 - 1 searches the sorting rules stored in the sorting rule storage section 13 - 1 , and determines that the packet is to be outputted to the virtual port 14 - 11 on the basis of the processing rule ID “A1” incorporated in the above message, and then outputs the packet incorporated in the above message to the virtual port 14 - 11 .
- the virtual port 14 - 11 When receiving the packet from the sorting section 12 - 1 , the virtual port 14 - 11 outputs the packet to the client section 16 , which is the connection destination.
- the client section 16 processes the packet when receiving the packet from the virtual port 14 - 11 .
- communications between the controllers 10 can be carried out by packet transfer via a data communication link, similarly to the first embodiment.
- the node device control section 11 in each of the controllers 10 - 1 and 10 - 2 calculates a route to connect the end points in each network and sets each node device 20 on the route with processing rules (or flow entries) for the packet transfer.
- the node device control section 11 - 1 in the controller 10 - 1 calculates a route to connect the interface unit 22 - 11 in the node device 20 - 1 with the interface unit 22 - 32 in the node device 20 - 3 in the network 1 and sets each node device 20 on the route with processing rules (flow entries) for the packet transfer.
- the node device control section 11 - 2 in the controller 10 - 2 calculates a route to connect the interface unit 22 - 41 in the node device 20 - 4 to the interface unit 22 - 62 in the node device 20 - 6 in the network 2 and sets each node device 20 on the route with processing rules (flow entries) for the packet transfer.
- the sorting section 12 in each of the controller 10 - 1 and the controller 10 - 2 then outputs a packet which is to be transferred through the data communication link to the virtual port 14 connected to the interface management section 15 . Consequently, the packet is outputted from the interface management section 15 .
- the sorting section 12 may refer to the sorting rule stored in the sorting rule storage section 13 and determine the virtual port 14 of the output destination.
- the sorting section 12 - 1 in the controller 10 - 1 outputs a packet in which the destination address is “AD22” and the source address is “AD12” to the virtual port 14 - 12 .
- the packet is outputted from the interface management section 15 - 1 .
- the client section 16 in the controller 10 - 1 may output the packet in which the destination address is “AD22” and the transmission source address is AD12′′ via the virtual port 14 - 11 to the sorting section 12 - 1 .
- the sorting section 12 - 2 in the controller 10 - 1 outputs a packet in which the destination address is “AD12” and the source address is “AD22” to the virtual port 14 - 22 .
- the packet is outputted from the interface management section 15 - 2 .
- the server section 17 in the controller 10 - 1 may output the packet in which the destination address is “AD12” and the source address is “AD22” via the virtual port 14 - 21 to the sorting section 12 - 2 .
- the communication unit 21 in each node device 20 transfers packets in accordance with the processing rules (or the flow entry).
- the interface management section 15 in each of the controller 10 - 1 and the controller 10 - 2 outputs packets which are received from a node device 20 via a data communication link to the sorting section 12 via a virtual port 14 .
- the interface management section 15 - 1 in the controller 10 - 1 outputs a packet received from the node device 20 - 1 to the sorting section 12 - 1 via the data communication link through the virtual port 14 - 12 .
- the sorting section 12 - 1 in the controller 10 - 1 may output the packet received from the virtual port 14 - 12 to the client section 16 , through the virtual port 14 - 11 .
- the interface management section 15 - 2 in the controller 10 - 2 outputs a packet received from the node device 20 - 6 to the sorting section 12 - 2 via the data communication link through the virtual port 14 - 22 .
- the sorting section 12 - 2 in the controller 10 - 2 may output the packet received from the virtual port 14 - 22 to the server section 17 through the virtual port 14 - 21 .
- the sorting section 12 in each controller 10 may perform packet transfer between the virtual ports 14 in the controller 10 without referring to the sorting rules stored in the sorting rule storage section 13 .
- the sorting rule storage section 13 may store the sorting rules of packets exchanged among the virtual ports 14 in the controller 10 .
- this embodiment allows communications that uses a conventional communication method, such as TCP/IP and the like, between the terminal apparatus and the controller.
- Examples of devices which may be used as the controllers include a computer such as PC (personal computer), an appliance, a thin client server, a workstation, a main frame, a super computer.
- the controllers may be a relaying device or a peripheral device, not limited to a terminal device or a server.
- an expansion board installed in a computer or the like may be used as the controller, or a virtual machine (VM) established on a physical machine may be used as the controller.
- VM virtual machine
- Examples of devices which may be used as the node devices include a network switch, a router, a proxy, a gateway, a firewall, a load balancer, a packet shaper, a SCADA (supervisory control and data acquisition) security monitoring controller, a gatekeeper, a base station, an access point (AP), a communication satellite (CS), and a computer having a plurality of communication ports. Also, a virtual switch operating on a virtual machine (VM) established on a physical machine may be used as the node device.
- the controllers and the node devices may be installed on movable bodies such as vehicles, ships and airplanes.
- each controller 10 may each include a storage device (or memory) 31 , a processor 32 , and an interface 33 .
- the storage device 31 stores a software program 31 a which includes codes describing the above-described operations of the controller 10 .
- the storage device 31 is also used to store various data used and generated in the operations of the controller 10 .
- the processor 32 executes the software program 31 a to perform the above-described operations of the controller 10 .
- the interface 33 is used to communicate with the node devices 20 .
- a non-transitory recording medium 50 may be used to install the software program 31 a onto the storage device 31 .
- each node device 20 may each include a storage device (or memory) 41 , a processor 42 , and interfaces 43 and 44 .
- the storage device 41 stores a software program 41 a which includes codes describing the above-described operations of the node device 20 .
- the storage device 41 is also used to store various data used and generated in the operations of the node device 20 .
- the processor 32 executes the software program 41 a to perform the above-described operations of the node device 10 .
- the interface 43 is used to communicate with another node device 20
- interface 44 is used to communicate with a controller 10 .
- a non-transitory recording medium 60 may be used to install the software program 41 a onto the storage device 41 .
- Examples of the processors 32 and 42 include a CPU (central processing unit), a network processor (NP), a microprocessor, a microcontroller, and a large scale integrated circuit (LSI) having a dedicated function and the like.
- CPU central processing unit
- NP network processor
- LSI large scale integrated circuit
- Examples of the storage devices (or memories) 31 and 41 include a semiconductor storage device such as a RAM (Random Access Memory), a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable Read Only Memory), a flash memory, an auxiliary storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), a removable disk such as a DVD (Digital Versatile Disk), a storage medium such as an SD memory card (Secure Digital memory card), and the like. Also, a buffer, a register and the like may be used as the storage devices (or memories) 31 and 41 .
- a storage device that uses a DAS (direct attached storage), an FC-SAN (fiber channel-storage area network), an NAS (network attached storage), IP-SAN (IP-storage area network) and the like may be used the storage devices (or memories) 31 and 41 .
- DAS direct attached storage
- FC-SAN fiber channel-storage area network
- NAS network attached storage
- IP-SAN IP-storage area network
- the processor 31 and the storage device 32 may be monolithically integrated and the processor 41 and the storage device 42 may be monolithically integrated.
- one-chip microcomputers have been made popular.
- a one-chip microcomputer installed in an electronic appliance or the like may monolithically integrate the above-described processor and storage device.
- Examples of the above-described interface includes a circuit board (a mother board, an I/O board) and a semiconductor integrated circuit which are adapted to a network communication, a network adaptor such as an NIC (network interface card), a similar expansion card, a communication apparatus such as an antenna, and a communication port such as a connection port (connector).
- a network adaptor such as an NIC (network interface card)
- a similar expansion card such as an antenna
- a communication apparatus such as an antenna
- a communication port such as a connection port (connector).
- examples of the network include the Internet, an LAN (local area network), a wireless LAN, a WAN (wide area network), a backbone, a cable television (CATV) line, a fixed telephone network, a mobile telephone network, WiMAX (IEEE 802.16a), a 3G (3rd generation) communication system, a dedicated line (lease line), an IrDA (infrared data association), Bluetooth (Registered Trademark), a serial communication line, a data bus and the like.
- LAN local area network
- a wireless LAN wireless LAN
- a WAN wide area network
- a backbone a cable television (CATV) line
- CATV cable television
- WiMAX IEEE 802.16a
- 3G (3rd generation) communication system a dedicated line (lease line), an IrDA (infrared data association), Bluetooth (Registered Trademark), a serial communication line, a data bus and the like.
- Configuration elements included in each of the controllers and the node devices may be modules and components, or dedicated devices, or starting (calling) programs for them.
- the communications system in exemplary embodiments of the present invention includes controllers and node devices.
- the controllers control packet processing in the respective node devices.
- the node devices outputs packets from their own physical or logical interfaces under control of the controllers.
- Each controller each obtains identifying conditions (identifying rules) of packets used to communicate with a network that is not under control of the controller (that is, a network provided outside its own network).
- each controller calculates the transfer route which connects an interface of one node device and another interface of a boundary node device located on the boundary with a different network, which is used for establishing a connection to a device provided outside its own network.
- the controllers may each calculate a transfer route in which a start point is defined as an interface of a node device connected to the controller via a data communication link and an end point is defined as an interface of a boundary node device which is used for establishing a connection to a device provided outside its own network.
- the controllers may each calculates a transfer route in which a start point is defined as an interface of a boundary node device which is used for establishing a connection to a device provided outside its own network and an end point is defined as an interface of a node device connected to the controller via a data communication link.
- controllers each sets the node devices with processing rules (or flow entries) so that packets complying with the identifying conditions (or the identifying rules) are transferred on the calculated transfer route.
- a communications system in which controllers control packet processing in each of node devices, and the node devices each output packets any interfaces thereof under control of a controller connected thereto,
- each of the controllers includes:
- a node communication section which sets a control channel to control each of the node devices and transmits and receives control messages
- a network interface connected to one of node devices via a data communication link
- an adjacency discovery section which discovers a boundary node device from the node devices, the boundary node being located on the boundary with a different network that is controlled by a different controller;
- an identifying condition calculating section calculating identifying conditions (or identifying rules) of packets used to communicate with a controller in the network adjacent thereto;
- a route calculating section that calculates a transfer route having a start point determined as a node device connected to an interface of the controller, through which a packet is outputted to an interface of the boundary node device, the interface being connected to a different network outside its own network, and a transfer route having a start point determined as the boundary node device, through which a packet is outputted to an interface of the node device connected to the interface of the controller;
- a processing rule calculating section that sets the node devices connected to the each controller with processing rules (flow entries) so as to transfer packets complying with the identifying conditions (the identifying rules) on the transfer route.
- identifying condition calculating section incorporates identifying conditions used in the communication between the controllers into a retrieval packet used to retrieve a connection relation among the node devices inside each network.
- sorting rule storage section retrieves and return selected one of the sorting rules in response to a reference request
- the sorting section specifies a transfer destination of packets transmitted and received between the interface of the boundary node device and the virtual ports, in accordance with the sorting rule selected by referring to the sorting rule storage section.
- the communications system includes a plurality of controllers, an interface section in a node device controlled by one of the controllers is connected via a communication line to an interface section in a node device controlled by a different one of the controllers,
- each of the controllers contains an wide area control section that communicates with a different one of the controllers
- wide area control sections are each connected to one or more of the virtual ports
- a communicating method in which controllers control packet processing in each of node devices, and the node devices each output packets any interfaces thereof under control of a controller connected thereto,
- each of the controllers is connected via a network interface which achieves a data transfer link connection to one or more of the node devices, and
- the communication method includes:
- each controller embeds unique identification information of the each controller into retrieval packets used to retrieve a connection relation among the node devices inside each network
- controller refers to identification information incorporated in the retrieval packet, and compares the identification information incorporated in the packet with its own identification information and consequently determines whether the retrieval packet comes from a different controller.
- each controller refers to identification information incorporated in the retrieval packet transmitted to the controller through the interface from the node device, and if the identification information is equal to its own identification information, determines the interface of the node device connected to the controller as an end point in the route calculation.
- a controller for controlling packet processing of node devices including:
- a network interface for establishing a connection to one of the node devices via a data transfer link
- an adjacency discovery section for discovering a boundary node device from the node devices, the boundary node device being located on the boundary with a different network that is controlled by a different controller;
- an identifying condition calculating section calculating identifying conditions (or identifying rules) of packets used to communicate with a controller in the network adjacent thereto;
- a route calculating section that calculates a transfer route having a start point determined as a node device connected to an interface of the controller, through which a packet is outputted to an interface of the boundary node device, the interface being connected to a different network outside its own network, and a transfer route having a start point determined as the boundary node device, through which a packet is outputted to an interface of the node device connected to the interface of the controller;
- a processing rule calculating section that sets the node devices connected to the each controller with processing rules (flow entries) so as to transfer packets complying with the identifying conditions (the identifying rules) on the transfer route.
- an information processing apparatus may be used as the above-described controller.
- a communicating apparatus may be used as the above-described node device.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
A communications system includes: a first node device provided in a first network; a first controller controlling the first node device; a second node device provided in a second network and connected to the first node device; and a second controller controlling the second node device. The first controller sets the first node device with a processing rule according to which packets transferred between the first and second controllers are processed. The second controller sets the second node device with a processing rule according to which the packets are processed. The first and second controllers exchanges the packets each other through at least the first and second node devices.
Description
- This application is a continuation of U.S. patent application Ser. No. 14/387,319, filed Sep. 23, 2014, which is a National Stage Entry of International Application No. PCT/JP2013/001913, filed Mar. 21, 2013, which claims priority from Japanese Patent Application No. 2012-068286, filed Mar. 23, 2012. The entire contents of the above-referenced applications are expressly incorporated herein by reference.
- The present invention relates to a communications system and more particularly relates to a communications system managed by a centralized management, in which controllers control packet transfers among network devices.
- One problem of conventional network devices is that flexible load control, such as load distribution and load concentration, cannot be achieved by an external control. This makes it difficult to monitor and improve the system behavior in a large-scale network, causing a problem that a modification in the system design and/or configuration requires a large cost.
- One proposed approach for solving this problem is separation of the packet transfer function and the route control function which are both conventionally implemented by a network device. For example, in a system in which the packet transfer function is assigned to network devices and the control function is assigned to a controller provided separately from the network devices, the controller can perform centralized management of packet transfer, which allows establishing a network with high flexibility.
- (CD-Separated Network)
- One proposed function-separated network is a CD-separated network (where C stands for control plane and d stands for data plane), in which a controller operating on the control plane controls node devices operating on the data plane.
- One example of the CD-separated network is an OpenFlow network which is based on the OpenFlow technique, in which the route control in the network is achieved by controlling switches by a controller. Details of the OpenFlow technique are disclosed in
non-patent documents - (OpenFlow Network)
- In an OpenFlow network, a controller, such as an OpenFlow controller (OFC), controls the behavior of node devices, such as OpenFlow switches (OFSs), by processing route control information (or a flow table) which describes the route control of the node devices.
- Controllers and node devices are connected via control channels (communication channels for control) called “secure channels”, which are communication paths protected by using dedicated lines or an SSL (Secure Socket Layer) technique. Controllers and node devices exchange OpenFlow messages defined in the OpenFlow protocol via control channels.
- In the OpenFlow network, each node device is provided in the OpenFlow network and controlled by the controller; each node device may be an edge switch or a core switch. A series of packet transfers from the receipt of a packet at an ingress edge switch to the transmission at an egress edge switch in the OpenFlow network is referred to as “flow”. In the OpenFlow network, communications are each regarded as an end-to-end flow, and the route control, the trouble recovery, and the load distribution and optimization are carried out in units of flows.
- It should be noted that the frame should be regard as an alternative of the packet. The difference between the packet and the frame only lies in the difference in the protocol data unit (PDU). The packet is the PDU of the TCP/IP (transmission control protocol/internet protocol). On the other hand, the frame is the PDU of the “Ethernet” (registered trademark).
- The route control information (or the flow table) includes a set of: identifying conditions (identifying rules) to identify packets to be treated as a flow; statistical information that indicates the number of times in which packets comply or match with the identifying conditions (or the identifying rules); and processing rules (or flow entries) which define a group of contents of processing (or actions) to be performed on packets.
- The identifying conditions (or the identifying rules) of each processing rule (or each flow entry) are defined by various combinations of any or all of data of respective protocol hierarchies included in the header region (or the header field) of the packet, and distinguishable one another by using these data. One example of data of the respective protocol hierarchies may include the destination address, the source address, the destination port, the source port. Note that the above-described addresses may be defined by a MAC (media access control) address or an IP address. Also, data of the ingress port may be also used as the identifying conditions (or the identifying rules) of the processing rules (or the flow entries). Furthermore, the identifying conditions (or the identifying rules) of the processing rules (or the flow entries) may be set in the form of a representation in which some or all of the values of the header region of the packet to be treated as the flow are represented by using a normal representation, a wildcard character “*” or the like.
- The contents of processing (or the action) of a processing rule (or a flow entry) indicates an operations such as “output to a particular port”, “discarding” and “rewriting of header”. For example, if the contents of processing (or the action) of a processing rule (or a flow entry) indicates identification information of an output port (an output port number and the like), the node device outputs the packet to the indicated port, and if not, the node device discards the packet. Instead, if the contents of processing (or the action) of the processing rule (or the flow entry) indicates the header information, the node device rewrites the header of the packet on the basis of the header information.
- A node device in the OpenFlow network performs the contents of processing (or the action) of a processing rule (or a flow entry) on a group of packets (or a series of packets) that complies with the identifying conditions (or the identifying rules) of the processing rule (or the flow entry).
- For example, when receiving a packet, an OpenFlow switch (OFS), which corresponds to a node device in the OpenFlow network, retrieves the processing rule (or the flow entry) associated with the identifying conditions (or the identifying rule) complying with the header information of the received packet from the route control information (of the flow table). If the processing rule (flow entry) complying with the receipt packet is found out as a result of the retrieval, the contents of processing (or the action) described in the action field of the processing rule (or the flow entry) is performed on the received packet. If no processing rule (or the flow entry) complying with the received packet is found as a result of the retrieval, on the other hand, the received packet is judged as the first packet. In this case, inquiry information of the received packet is transmitted to an OpenFlow controller (OFC), which corresponds to the controller in the OpenFlow network, via a control channel to request for determining the route of the packet based on the source and destination of the received packet; this is followed by receiving a processing rule (or a flow entry) for attaining the packet transfer along the determined route and then updating the route control information (or the flow table).
- It should be noted that an initial state processing rule (or a default entry) is registered in the route control information (or the flow table), where the initial state processing rule describes identifying conditions (or identifying rules) of a low priority which are defined so as to comply with the header information of any packets. If no other processing rule (or flow entry) complying with the received packet is found, the received packet complies with the initial state processing rule (or the default entry). The contents of processing (or the action) of the initial state processing rule (or the default entry) is defined to instruct to transmit inquiry information of the received packet to the OpenFlow controller (OFC).
- As mentioned above, the OpenFlow switch (OFS) determines processing to be done on a packet in accordance with the setting of processing rules (or flow entries) set by the OpenFlow controller (OFC). In particular, the “output” processing, in which a packet is outputted to a specified interface, is often used as the processing. It should be noted that the specified interface is not limited to a physical interface; the specified interface is not limited to the physical port and may be a virtual port.
- As thus described, control of packets is attained by centralized control of OpenFlow switches (OFS) by an OpenFlow controller (OFC) in the OpenFlow network. One issue is that one OpenFlow controller (OFC) can control only a limited number of OpenFlow switches (OFS). Accordingly, an increase in the scale of the network, which causes an increase in the number of the OpenFlow switches (OFS), may result in that calculation of processing rules (flow entries) in the OpenFlow controller (OFC) and the like becomes a bottleneck of the network quality.
- One approach to address this may be connecting a plurality of OpenFlow networks, each including one Openflow controller (OFC) and a plurality of OpenFlow switches (OFS) controlled by the OpenFlow controller, when the scale of the network is increased.
- [NPL 1] Nick Mckeown and Other Seven Persons, “OpenFlow: Enabling Innovation in Campus Networks”, online, Retrieval on Jan. 23, 2012, Internet (URL: http://www. openflow. Org/documents/openflow-wp-latest.pdf)
- [NPL 2] “OpenFlow Switch Specification, Version 1.1.0 Implemented”, online, Retrieval on Feb. 28, 2012, Internet (URL:http//ww.openflowswitch. org/documents/openflow-spec-v1.1.0.pdf)
- An interconnection of a plurality of networks each managed by a centralized management, such as OpenFlow networks, requires exchanging and sharing of information related to route control among the controllers to control the traffic over the networks. One approach to achieve this may be using an existing routing protocol, such as the OSPF (open shortest path first) protocol and the BGP (border gateway protocol) or other data sharing protocols in order to exchange and share information related to the route control among the controllers.
- The use of these protocols to exchange information related to the route control among the controllers, however, requires establishing a connection between adjacent controllers.
- In an aspect of the present invention, a communications system includes: a first node device provided in a first network; a first controller controlling the first node device; a second node device provided in a second network and connected to the first node device; and a second controller controlling the second node device. The first controller sets the first node device with a processing rule according to which packets transferred between the first and second controllers are processed. The second controller sets the second node device with a processing rule according to which the packets are processed. The first and second controllers exchanges the packets each other through at least the first and second node devices.
- In another aspect of the present invention, a communication method includes:
- setting a first node device provided in a first network by a first controller controlling the first node device with a processing rule according to which packets transferred between the first controller and a second controller controlling a second node provided in a second network are processed;
- setting the second node device by the second controller with a processing rule according to which the packets are processed;
- establishing a connection between the first and second node devices; and
- exchanging the packets between the first and second controllers through at least the first and second node devices.
- In another aspect of the present invention, a program is provided for causing a computer or a network device to perform the operations of respective devices in the above-described communication method. The program may be stored in a storage device or a non-transitory recording medium.
- The present invention enables establishing a communication connection between controllers of adjacent networks.
-
FIG. 1 shows an exemplary configuration of a communications system according to the present invention. -
FIG. 2 shows an exemplary system configuration in a first embodiment. -
FIG. 3 shows an exemplary configuration of a controller. -
FIG. 4 shows an exemplary configuration example of a node device. -
FIG. 5 shows an exemplary configuration of an LLDP frame in the first embodiment. -
FIG. 6A shows exemplary contents of a processing rule defined for a first network. -
FIG. 6B shows exemplary contents of a processing rule defined for a second network. -
FIG. 7 shows an exemplary configuration of an LLDP frame in a second embodiment. -
FIG. 8 shows an exemplary configuration of a controller in a third embodiment. -
FIG. 9A shows exemplary contents of a sorting rule defined for the controller of the first network. -
FIG. 9B shows exemplary contents of a sorting rule defined for the controller of the second network. -
FIG. 10A shows an exemplary configuration of the first network of the communications system in a fourth embodiment. -
FIG. 10B shows an exemplary configuration of the second network of the communications system in the fourth embodiment. -
FIG. 11A shows exemplary contents of a sorting rule defined for the controller of the first network. -
FIG. 11B shows exemplary contents of a sorting rule defined for the controller of the second network. -
FIG. 12 shows an exemplary hardware configuration of a controller according to the present invention. -
FIG. 13 shows an exemplary hardware configuration of a node device according to the present invention. - Embodiments of the present invention are described in the following with an example in which OpenFlow networks, which are a sort of networks managed by a centralized management, are used. It should be noted, however, that the present invention is not limited to a communication system in which OpenFlow networks are used.
- Embodiments of the present invention are described below in details with reference to the attached drawings.
- A description is first given of an exemplary configuration of a communications system in one embodiment of the present invention with reference to
FIG. 1 . - In one embodiment, a communications system includes
controllers 10 andnode devices 20. - The
controllers 10 are information processing apparatuses which control thenode devices 20. - The
node devices 20 are communication devices provided in networks. - The
controllers 10 and thenode devices 20 are connected through control channels. Thecontrollers 10 and thenode devices 20 communicate with each other by using OpenFlow messages defined in an OpenFlow protocol via the control channels. - Each
node device 20 is connected to theadjacent node device 20 via a data communication link such as a LAN (local area network) and the like. Moreover, anode device 20 which operates as an edge switch is adapted to have a connection with a host (a client, a server or the like) or an external network device which does not belong to the network in which thenode device 20 is provided. - It should be noted that the
controllers 10 and thenode devices 20 are not limited to physical machines; thecontrollers 10 and thenode devices 20 may be a virtual machine (VM). -
FIG. 1 shows controllers 10-1 and 10-2, as examples of thecontrollers 10.FIG. 1 also shows node devices 20-1 to 20-6 as examples of thenode devices 20. - The controller 10-1 is connected via a control channel to each of the node devices 20-1 to 20-3.
- The controller 10-2 is connected via a control channel to each of the node devices 20-4 to 20-6.
- The node devices 20-1 to 20-6 are each connected to one or more adjacent node devices via one or more data communication links, such as LANs.
- In this embodiment, the node device 20-1 is connected to the node device 20-2 via a data communication link. The node device 20-2 is connected to the node device 20-3 via a data communication link. The node device 20-3 is connected to the node device 20-4 via a data communication link. The node device 20-4 is connected to the node device 20-5 via a data communication link. The node device 20-5 is connected to the node device 20-6 via a data communication link.
- The node devices 20-1 to 20-3 are provided in a
network 1. That is, each of the node devices 20-1 to 20-3 is arranged in thenetwork 1. - The node devices 20-4 to 20-6 are arranged in the
network 2. That is, each of the node devices 20-4 to 20-6 is arranged in thenetwork 2. - Accordingly, that the
networks - It should be noted that the control channels and the data communication links may be a wired communication link or a wireless communication link.
- (Identification Information of Controllers and Node Devices)
- In this embodiment, the controller 10-1 is assigned with a controller ID “CPID1” as its own identification information. The controller 10-2 is assigned with a controller ID “CPID2” as its own identification information. The node device 20-1 is assigned with a node device ID “DPID1” as its own identification information. The node device 20-2 is assigned with a node device ID “DPID2” as its own identification information. The node device 20-3 is assigned with a node device ID “DPID3” as its own identification information. The node device 20-4 is assigned with a node device ID “DPID4” as its own identification information. The node device 20-5 is assigned with a node device ID “DPID5” as its own identification information. The node device 20-6 is assigned with a node device ID “DPID6” as its own identification information.
- A first embodiment of the present invention is described below.
- In this embodiment, the
controllers 10 are each connected to one of thenode devices 20 via a data communication link, similarly to the connections between thenode devices 20. That is, thecontrollers 10 may also operate as a “host” connected to any of thenode devices 20. - (System Configuration in First Embodiment)
- An exemplary configuration of a communications system in this embodiment is described below with reference to
FIG. 2 . - In this embodiment, the controller 10-1 is further connected to the node device 20-1 through a data communication link. It should be noted that the controller 10-1 may be logically connected to the node device 20-1 by tunneling or the like in an actual implementation.
- Similarly, the controller 10-2 is further connected to the node device 20-6 via a data communication link. It should be noted that the controller 10-2 may be logically connected to the node device 20-2 by tunneling or the like in an actual implementation.
- It should be noted that the system configuration is not limited to the above-described embodiment.
- (Configuration of Controllers)
- An exemplary configuration of each
controller 10 is described with reference toFIG. 3 . Note that this exemplary configuration is common to both of the controllers 10-1 and 10-2. - Each
controller 10 includes a nodedevice control section 11 and aninterface management section 15. - The node
device control section 11controls node devices 20 via control channels. For example, the nodedevice control section 11 executes a software program which allows operating as an OpenFlow controller (OFC) in an OpenFlow network. Here, the nodedevice control section 11 monitors and manages interface units contained in each of thenode devices 20 via the control channels and specifies processing rules (flow entries) of packets transmitted and received by the interface units for thenode devices 20. One example of the contents of a processing rule (a flow entry) of the packets may include an instruction of outputting to an interface unit or a nodedevice control section 11 specified on the basis of the feature of each packet received by the interface unit, an instruction of outputting to an interface unit specified when the packet prepared by the nodedevice control section 11 is received, and the like. - The
interface management section 15 manages a network interface provided in thecontroller 10. In this embodiment, theinterface management section 15 is adapted to have a connection to a network interface within any of thenode devices 20 via data a communication link connected to the network interface within thecontroller 10. - In this embodiment, the node
device control section 11 is connected to theinterface management section 15. Thus, the nodedevice control section 11 can communicate with any of thenode devices 20 via theinterface management section 15. - (Configuration of Node device Control Unit)
- An exemplary configuration of the node
device control section 11 is described below. - The node
device control section 11 includes atopology management section 111, a controlmessage processing section 112, anode communication section 113, anadjacency discovery section 114, an identifyingcondition calculation section 115, aroute calculation section 116, a processingrule calculation section 117, a processingrule management section 118 and a processingrule storage section 119. - The
topology management section 111 manages topology information and boundary information of its own network. Thetopology management section 111 is connected to theinterface management section 15. - The control
message processing section 112 prepares control messages in accordance with controls to be performed for thenode devices 20. The controlmessage processing section 112 also analyzes control messages received from thenode device 20. - The
node communication section 113 is connected tonode devices 20 via control channels to communicate with thenode devices 20. Thenode communication section 113 transmits control messages to thenode devices 20 in response to control message transmission requests from the controlmessage processing section 112. Thenode communication section 113 also transfers control messages received from thenode devices 20 to the controlmessage processing section 112. - The
adjacency discovery section 114 discovers anode device 20 located on the boundary with a different network and thecontroller 10 in the different network. - The identifying
condition calculation section 115 calculates identifying conditions (or the identifying rules) of packets. In this embodiment, the identifyingcondition calculation section 115 calculates identifying conditions (or identifying rules) of packets transferred between thecontrollers 10 on the basis of the topology information and the boundary information of its own network. The identifyingcondition calculation section 115 is also adapted to, when receiving inquiry information of the first packet from anode device 20, calculate identifying conditions (or an identifying rule) of the packet on the basis of the header information of the packet. - The
route calculation section 116 calculates transfer routes of packets. Here, theroute calculation section 116 determines the end points of the route to be used in the packet transfer between thecontrollers 10 on the basis of the topology information and the boundary information of the networks, and calculates the route to connect the determined end points. - The processing
rule calculation section 117 calculates processing rules (or flow entries) on the basis of the identifying conditions calculated by the identifyingcondition calculation section 115, and the routes calculated by theroute calculation section 116. - The processing
rule management section 118 manages the processing rules (or the flow entries). The processingrule management section 118 registers information related to the processing rules (or the flow entries) in the processingrule storage section 119, correlating information related to the processing rules with identification information (processing rule IDs) of the processing rules (or the flow entries). The processingrule management section 118 also requests the controlmessage processing section 112 to set thenode devices 20 with processing rules (or flow entries). - The processing
rule storage section 119 stores: the information with regard to the processing rules (or the flow entries) set to therespective node devices 20 under the management of thecontroller 10; and the identification information (the processing rules ID) of the processing rules (or the flow entries). In an actual implementation, the processingrule storage section 119 may store copies or master tables of the route control information (or the flow table) of therespective node devices 20. - (Configuration of Node Devices)
- An exemplary configuration of each
node device 20 is described with reference toFIG. 4 . Note that this exemplary configuration is common to all of the node devices 20-1 to 20-6. - Each
node device 20 includes acommunication unit 21 and one or more interface units 22 (one shown). - The
communication unit 21 is connected to acontroller 10 via a control channel to exchange control messages. In one example, thecommunication unit 21 executes a software program which allows operating as an OpenFlow switch (OFS) in an OpenFlow network. Thecommunication unit 21 also processes a packet inputted from ainterface unit 22 in accordance with processing rules (or flow entries) and processing commands (output instructions or the like), which are specified by the nodedevice control section 11 in thecontroller 10. It should be noted that, when neither processing rule (flow entry) nor processing command (output instructions or the like) is specified for an inputted packet, thecommunication unit 21 judges the packet as the first packet and transmits inquiry information of this packet to thecontroller 10 through the control channel. - The
interface unit 22 is a network interface provided within thenode device 20. Theinterface unit 22 may be a network interface having physical ports or a network interface having virtual ports. Theinterface unit 22 is used for establishing a connection to a connection destination, such as an adjacent node device and a host and adapted to exchange packets through a data communication link. Theinterface unit 22 may be used for establish a connection with acontroller 10. When receiving a packet from a connection destination, such as an adjacent node device and a host, theinterface unit 22 outputs the packet to thecommunication unit 21. - (Topology Retrieving Process in First Embodiment)
- An exemplary topology retrieving process in the first embodiment is described below.
- Each of the controllers 10-1 and 10-2 prepares topology retrieval packets in order to retrieve the topology of its own network. In one embodiment, LLDP (Link Layer Discovery Protocol) frames may be used as topology retrieval packets. It should be noted that topology retrieval packets are not limited to LLDP frames and packets other than LLDP frames may be used as topology retrieval packets in an actual implementation.
- In this embodiment, LLDP frames are used as exemplary topology retrieval packets.
- (LLDP Frame Format in First Embodiment)
- An exemplary format of LLDP frames in this embodiment is described with reference to
FIG. 5 . - In this embodiment, each LLDP frame includes an “LLDP header” region (or field), and an “optional TLVs” region (or field). Note that “TLV” stands for type, length and value.
- The “LLDP header” region includes a “source MAC address” region, a “destination MAC address” region and an “ether type” region, which is denoted by the legend “eth_type”.
- The “source MAC address” region contains the source MAC address of the LLDP frame.
- The “destination MAC address” contains the destination source MAC address of the LLDP frame.
- The “ether type” region contains information that indicates the ether type of the LLDP frame. Usually, “0x88cc” is specified as the ether type of the LLDP frame.
- The “optional TLVs” region includes an “identification information” region (or a “controller ID” region).
- The “identification information” region contains the identification information (or the controller ID) of the controller that prepares the LLDP header.
- Various types of identification information (or the controller ID) may be used if they are unique in the networks. For example, a MAC address of the interface of the
controller 10, an IP address, a VLAN tag information (VLAN ID) and the like may be used as the identification information. It should be noted that identification information actually-used is not limited to these example. - (Procedure of Topology Retrieval in First Embodiment)
- Next, an exemplary procedure of the topology retrieval in the first embodiment is described below.
- (1) Operation for Transmitting LLDP Frame
- First, a description is given of an exemplary operation in which LLDP frames are transmitted from the
controllers 10 to thenode devices 20. - The
topology management section 111 in each of the controllers 10-1 and 10-2 prepares LLDP frames as topology retrieval packets. - At this time, the
topology management unit 111 in each of the controllers 10-1 and 10-2 incorporates its own identification information (or controller ID) into each LLDP frame to identify the controller; the identification information (or the controller ID) in each LLDP frame is defined to be unique among the networks. - In this embodiment, the
topology management section 111 in each of the controllers 10-1 and 10-2 incorporates identification information (or the controller ID) of the controller 10-1 or 10-2 into the “identification information” region of the “optional TLVs” region within each LLDP frame as shown inFIG. 5 . - The
topology management section 111 in each of the controllers 10-1 and 10-2 requests the controlmessage processing section 112 to instruct to transmit the LLDP frames to thenode devices 20. In an actual implementation, thetopology management section 111 may only output the LLDP frames to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 prepares packet-out messages each incorporating an LLDP frame and a transmission instruction thereof in response to the request of the transmission instruction of the LLDP frames to thenode devices 20, and requests thenode communication section 113 to transmit the packet-out messages to all of thenode devices 20 provided in its own network. The packet-out message is a sort of control messages. The packet-out messages include transmission instructions which instruct to transmit the LLDP frame from all theinterface units 22 in eachnode devices 20. - The
node communication section 113 in each of the controllers 10-1 and 10-2 transmits the packet-out messages from the controlmessage processing section 112 to all of thenode devices 20 provided in its own network through the control channels. - The
communication unit 21 in eachnode device 20 transmits the LLDP frame to the connection destinations from all theinterface units 22 in itsown node device 20, in response to the above-described packet-out message. That is, thecommunication unit 21 in eachnode device 20 transmits the LLDP frame in the form of broadcasting. Also, thecommunication unit 21 in eachnode device 20 receives the LLDP frames from the connection destinations via theinterface units 22. - (2) Operation for Transmitting Inquiry Information of LLDP Frame Via Control Channel
- In the following, a description is given of an exemplary operation of transmitting inquiry information of an LLDP frame from each
node device 20 to thecontroller 10 via the control channel. - When receiving an LLDP frame from a connection destination via an
interface unit 22, thecommunication unit 21 in eachnode device 20 transmits a packet-in message as inquiry information to thecontroller 10 that controls thenode device 20, through the control channel. The packet-in message is a sort of control messages. - The packet-in message includes an “LLDP frame” region, a “node device ID” region an “interface ID” region.
- The “LLDP frame” region contains the received LLDP frame.
- The “node device ID” region contains the identification information (or the node device ID) of the
node device 20. - The “interface ID” region contains identification information (or the interface ID) of the
interface unit 22 that receives the LLDP frame. - Usually, the
communication unit 21 in eachnode device 20 receives LLDP frames containing identification information (the controller ID) of thecontroller 10 of the same network from thenode device 20 of the same network, and transmits packet-in messages respectively incorporating the LLDP frames as the inquiry information to thecontroller 10. - When the source is the node device 20-3 and the destination is the node device 20-4, however, an LLDP frame containing identification information (or the controller ID) of the controller 10-1 is transmitted to the controller 10-2. That is, when receiving the LLDP frame having the identification information (controller ID) of the controller 10-1 from the node device 20-3, the
communication unit 21 in the node device 20-4 transmits a packet-in message containing the LLDP frame as the inquiry information to the controller 10-2. - When the source is the node device 20-4 and the destination is the node device 20-3, on the other hand, the LLDP frame which has the identification information (or the controller ID) of the controller 10-2 is transmitted to the controller 10-1. That is, when receiving the LLDP frame having the identification information (or the controller ID) of the controller 10-2 from the node device 20-4, the
communication unit 21 in the node device 20-3 transmits a packet-in message incorporating the LLDP frame as the inquiry information to the controller 10-1. - The
node communication section 113 in each of the controllers 10-1 and 10-2 receives the above packet-in messages from therespective node devices 20 connected thereto via the control channels and outputs the packet-in messages to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 analyzes the above packet-in messages and extracts the LLDP frames incorporated in the packet-in messages. The controlmessage processing section 112 outputs the extracted LLDP frames to theadjacency discovery section 114. - The
adjacency discovery section 114 in each of the controllers 10-1 and 10-2 determines whether the identification information (or the controller ID) described in each LLDP frame is identical to the identification information (controller ID) of itsown controller 10. - In this embodiment, the
adjacency discovery section 114 in each of the controllers 10-1 and 10-2 refers to the “identification information” region of the “optional TLVs” region of each LLDP frame (seeFIG. 5 ) and determines whether the identification information (or the controller ID) incorporated in the “identification information” region is identical to the identification information (or the controller ID) of itsown controller 10. - If the identification information (controller ID) incorporated in an LLDP frame is identical to the identification information (or the controller ID) of its
own controller 10, theadjacency discovery section 114 in each of the controllers 10-1 and 10-2 can dynamically detect and monitor thenode device 20 adjacent to another node device only in its own network and theinterface units 22 of thenode device 20. - If the identification information (controller ID) in an LLDP frame is different from the identification information (or the controller ID) of its
own controller 10, theadjacency discovery section 114 in each of the controllers 10-1 and 10-2 can detect the existence of acontroller 10 in a different network. Moreover, theadjacency discovery section 114 can dynamically detect and monitor anode device 20 at the boundary with the different network and theinterface units 22 of thenode device 20. - (3) Operation for Transmitting LLDP Frame Via Data Communication Link
- An exemplary operation for transmitting an LLDP frame from each
node device 20 to thecontroller 10 via a data communication link is described below. - A
communication unit 21 in anode device 20 connected to thecontroller 10 via a data communication link, for example, the node device 20-1, transmits the LLDP frame also from theinterface unit 22 connected to thecontroller 10. For example, thecommunication unit 21 in the node device 20-1 transmits the LLDP frame to the controller 10-1 from theinterface unit 22 connected to the controller 10-1 via the data communication link. Similarly, the node device 20-6 transmits the LLDP frame to the controller 10-2 from theinterface unit 22 connected to the controller 10-2 via the data communication link. - The
interface management section 15 in each of the controllers 10-1 and 10-2 receives the LLDP frame from eachnode device 20 of the connection destination, via the data communication link, and outputs the LLDP frame to theadjacency discovery section 114. - The
adjacency discovery section 114 in each of the controllers 10-1 and 10-2 determines whether the identification information (or the controller ID) described in the LLDP frame is identical to the identification information (controller ID) of itsown controller 10. - If the identification information (controller ID) incorporated in the LLDP frame is identical to the identification information (or the controller ID) of the
controller 10, theadjacency discovery section 114 in each of the controllers 10-1 and 10-2 can dynamically detect and monitor thenode device 20 connected to thecontroller 10 and the interface units thereof. - (4) Operation for Preparing Topology Information
- An exemplary operation for preparing topology information in the
controller 10 is described below. - The
adjacency discovery section 114 in each of the controllers 10-1 and 10-2 sends information detected or obtained by the above-described operations, to thetopology management section 111. - The
topology management section 111 in each of the controllers 10-1 and 10-2 prepares and stores topology information and boundary information of the corresponding network on the basis of the information received from theadjacency discovery section 114. - (Note)
- The detecting method of the
node devices 20 connected to thecontroller 10 and theinterface units 22 thereof is not limited to this method in an actual implementation. For example, information related to eachnode device 20 connected to thecontroller 10 and theinterface units 22 thereof may be notified and set in advance by a manual operation by an operator or the like. - (Operation for Mutual Notification of Judging Conditions of Packets Between Controllers in First Embodiment)
- An exemplary operation for mutual notification of identifying conditions (or identifying rules) of packets between the
controllers 10 in the first embodiment is described below. - The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 calculates identifying conditions (or identifying rules) of packets used to communicate with thecontroller 10 in a different network on the basis of the topology information and the boundary information of its own network, which are stored in thetopology management section 111, and prepares a notification packet that stores the identifying conditions (or the identifying rules). Moreover, the identifyingcondition calculation section 115 requests and instructs the controlmessage processing section 112 to transmit the notification packet to anode device 20 at the boundary with a different network. The identifying conditions (or the identifying rules) are attached to the packet header, which may include the MAC address, the IP address or the protocol type. It should be noted that in an actual implementation, the identifyingcondition calculation section 115 may only output the notification packet to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 prepares a packet-out message incorporating the notification packet and an instruction to output the notification packet to anode device 20 in a different network in response to a request for instructing transmission of the notification packet to anode device 20 at the boundary with the different network. Moreover, the controlmessage processing section 112 requests thenode communication section 113 to transmit the packet-out message to thenode device 20 at the boundary with the different network. - The
node communication section 113 in each of the controllers 10-1 and 10-2 transmits the above packet-out message to thenode device 20 at the boundary with the different network via the control channel, in response to the transmission request of the packet-out message from the controlmessage processing section 112. - When receiving the above-described packet-out message via the control channel, the
communication unit 21 in thenode device 20 at the boundary with the different network transmits the notification packet to thenode device 20 in the different network through the data communication link from theinterface unit 22 connected to thenode device 20 in the different network, on the basis of the instruction of outputting the notification packet to thenode device 20 in the different network. - When a notification packet is inputted from the
interface unit 22 connected to thenode device 20 in the different network, thecommunication unit 21 in thenode device 20 at the boundary with the different network transmits a packet-in message incorporating the notification packet as inquiry information to thecontroller 10 that controls itsown node device 20. - The
node communication section 113 in each of the controllers 10-1 and 10-2 receives the above-described packet-in message from eachnode device 20 connected thereto via the control channel and outputs the packet-in message to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 analyzes the above-described packet-in message and extracts the notification packet incorporated in the packet-in message. The controlmessage processing section 112 then outputs the notification packet to theadjacency discovery section 114. - The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 recognizes the identifying conditions (or the identifying rules) of packets used to communicate with thecontroller 10 in the different network, on the basis of the notification packet. - As a result, the controllers 10-1 and 10-2 can recognize the identifying conditions (or the identifying rules) of packets used in the mutual communications.
- (1) Notification to Controller 10-2 from Controller 10-1
- An exemplary operation of notifying identifying conditions (or identifying rules) of packets from the controller 10-1 to the controller 10-2 is described.
- The controller 10-1 prepares a notification packet incorporating identifying conditions (or identifying rules) of packets used to communicate with the controller 10-2 and transmits a packet-out message incorporating the notification packet and an instruction of outputting the notification packet to the node device 20-4 to the node device 20-3 at the boundary with the different network via the control channel.
- When receiving the packet-out message from the controller 10-1, the node device 20-3 transmits the notification packet from the
interface unit 22 connected to the node device 20-4 in accordance with the instruction of outputting the notification packet to the node device 20-4. - When receiving the notification packet from the node device 20-3, the node device 20-4 transmits a packet-in message incorporating the notification packet as inquiry information to the controller 10-2, which controls the node device 20-4, via the control channel.
- The controller 10-2 receives the packet-in message from the node device 20-3 and obtains the notification packet incorporated in the packet-in message. This allows the controller 10-2 to recognize the identifying conditions (or the identifying rules) of packets used to communicate with the controller 10-1.
- (2) Notification to Controller 10-1 from Controller 10-2
- An exemplary operation of notification of identifying conditions (or identifying rules) of packets from the controller 10-2 to the controller 10-1 is described.
- The controller 10-2 prepares a notification packet incorporating identifying conditions (or identifying rules) of packets used to communicate with the controller 10-1, and transmits a packet-out message incorporating the notification packet and an instruction of outputting the notification packet to the node device 20-3, to the node device 20-4 at the boundary with the different network via the control channel.
- When receiving the packet-out message from the controller 10-2, the node device 20-4 transmits the notification packet from the
interface 22 connected to the node device 20-3 in accordance with the instruction of outputting the notification packet to the node device 20-3. - When receiving the notification packet from the node device 20-4, the node device 20-3 transmits a packet-in message incorporating the notification packet as inquiry information to the controller 10-1, which controls the node device 20-3 via the control channel.
- The controller 10-1 receives the packet-in message from the node device 20-4 and obtains the notification packet incorporated in the packet-in message. This allows the controller 10-1 to recognize the identifying conditions (or the identifying rule) of packets used to communicate with the controller 10-2.
- (Operation for Setting Processing Rules in First Embodiment)
- An exemplary operation for setting processing rules (or flow entries) in the first embodiment is described below.
- The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 calculates identifying conditions (or identifying rules) of packets used to communicate with thecontroller 10 in the different network, on the basis of the topology information and the boundary information of its own network which are stored in thetopology management section 111. Also, the identifyingcondition calculation section 115 recognizes identifying conditions (or an identifying rule) of packets notified by thecontroller 10 in the different network. - The
route calculation section 116 in each of the controllers 10-1 and 10-2 determines the end points of a route to be used in the communication, on the basis of the topology information and the boundary information of the network stored in thetopology management section 111. - At this time, one of the end points of the route is defined as the node device at the boundary of the different network. In the
network 1, the node device 20-3 is defined as one of the end points. In thenetwork 2, the node device 20-4 is defined as one of the end points. - Also, the other end point of the route is defined as the node device connected to the controller via a data communication link. In the
network 1, the node device 20-1 is defined as the other end point. In thenetwork 2, the node device 20-6 is defined as the other end point. - The
route calculation section 116 in each of the controllers 10-1 and 10-2 calculates a route which connects the end points thus-determined. Specifically, theroute calculation section 116 determines a bi-directional transfer route which connects the interfaces of thedetermined node devices 20. - In this embodiment, the
route calculation section 116 in the controller 10-1 calculates the route which connects the interface unit used for connection to controller 10-1 in the node device 20-1 in thenetwork 1 to the interface unit used for connection to the node device 20-4 in thenetwork 2 in the node device 20-3. - Similarly, the
route calculation section 116 in the controller 10-2 calculates the route which connects the interface unit used for connection to controller 10-2 in the node device 20-6 in thenetwork 2 and the interface unit used for connection to the node device 20-3 in thenetwork 1 in the node device 20-4. - The processing
rule calculation section 117 in each of the controllers 10-1 and 10-2 obtains the route to be used for transfer from theroute calculation section 116 and obtains the identifying conditions (or the identifying rules) of packets transferred on the route from the identifyingcondition calculation section 115. - The processing
rule calculation section 117 in each of the controllers 10-1 and 10-2 uses the obtained information to calculate processing required to transfer the packets in eachnode device 20 on the route, and calculates the processing rules (or the flow entries) in which the packet identifying conditions (or the packet identifying rules) are defined as conditions under which the processing is to be performed. At this time, the processingrule calculation section 117 incorporates the identification information (processing rule ID) into each calculated processing rule (or flow entry). Specifically, the processing rule ID is incorporated in a cookie region (a region of 64 bits in which any information can be stored) in each processing rule (or flow entry). - The processing
rule management section 118 in each of the controllers 10-1 and 10-2 registers information related to the processing rules (or the flow entries) calculated by the processingrule calculation section 117 into the processingrule storage section 119, and requests the controlmessage processing section 112 to set processing rules (or the flow entries) for eachnode devices 20 on the route. - When receiving the setting request of processing rules (or flow entries) for the
node devices 20, the controlmessage processing section 112 in each of the controllers 10-1 and 10-2 prepares flow modification messages (or FlowMod-Add) in order to register the processing rules (or the flow entries) in thenode devices 20. After that, the controlmessage processing section 112 requests thenode communication section 113 to transmit the flow modification messages (or FlowMod-Add) to thenode devices 20 on the route. The flow modification messages (or FlowMod-Add) are a sort of control messages. - When receiving the transmission request of the flow modification messages (FlowMod-Add) to the
node devices 20, thenode communication section 113 in each of the controllers 10-1 and 10-2 transmits the flow modification messages (FlowMod-Add) to thenode devices 20 on the route via the control channels. - When receiving a flow modification message (FlowMod-Add) from the
controller 10 via the control channel, thecommunication unit 21 in eachnode device 20 registers the processing rules (or the flow entries) on the basis of the contents of the flow modification message (or FlowMod-Add). - When then receiving a packet through a
interface unit 22, thecommunication unit 21 in eachnode device 20 processes the received packet in accordance with the contents of the registered processing rules (or the flow entries). - (Summary of First Embodiment)
- In this way, the above-described operation for setting the processing rules (or the flow entries) is carried out independently in the
networks controllers 10. - Each of the controllers 10-1 and 10-2 determines the identifying conditions (or the identifying rules) of packets used in the mutual communications.
- Each of the controllers 10-1 and 10-2 calculates the bidirectional route within its own network and specifies the node devices on the route and the interface units thereof.
- Each of the controllers 10-1 and 10-2 prepares processing rules (or flow entries) that defines a set of identifying conditions (or identifying rules) and contents of processing (or actions) which involves outputting packets to the interface unit connected to the adjacent node device, for the node devices on the route.
- In this embodiment, each of the controllers 10-1 and 10-2 sets the
node devices 20 under the control of the eachcontroller 10 with processing rules (or the flow entries) which allows transferring packets from the node device at the boundary with the adjacent network to the node device connected to thecontroller 10 via the data communication link. For example, the controller 10-1 sets each of the node devices 20-1 to 20-3 with processing rules (or flow entries) which allows transfer of packets from the node device 20-3 to the node device 20-1. The controller 10-2 sets each of the node devices 20-4 to 20-6 with processing rules (or flow entries) which allows transfer of packets from the node device 20-4 to the node device 20-6. - Also, each of the controllers 10-1 and 10-2 sets the
node devices 20 under its control with processing rules (or flow entries) which allows transfers of packets from the node device connected via the data communication link to the interface unit of the node device at the boundary with the adjacent network. For example, the controller 10-1 sets each of the node devices 20-1 to 20-3 with processing rules (or flow entries) which allows transfer of packets from the node device 20-1 to the node device 20-3. The controller 10-2 sets each of the node devices 20-4 to 20-6 with processing rules (or flow entries) which allows transfer of packets from the node device 20-6 to the node device 20-4. - Since the above-described operations are carried out in each of the adjacent networks, the transfer route is established in each of the networks, this enables communications between the controllers without direct transactions between adjacent networks.
- Note that the link connection implies connection through a data communication link.
- (Format of Processing Rule)
- An exemplary format of the processing rules (or the flow entries) is described with reference to
FIG. 6A andFIG. 6B . - A processing rule (or a flow entry) includes an identifying condition region (or an identifying rule region) and a contents-of-processing region (or an action region).
- The identifying condition region (or the identifying rule region) includes the “source MAC address” region, a “destination MAC address” region and an “ether type” region (or an “eth_type” region).
- The “source MAC address” region contains the MAC address of the network interface of the source of the packet.
- The “destination MAC address” region contains the MAC address of the network interface of the destination of the packet.
- The “ether type” region contains information indicating the ether type of the packet.
- The “contents-of-processing” region include an “action” region.
- The “action” region contains an instruction of outputting the packet to a predetermined output destination.
- In this embodiment, each controller is allowed to flexibly use various types of packets for each counterpart controller.
- (Processing Rule in Network 1)
FIG. 6A shows an example of processing rules (or flow entries) respectively set to the node devices 20-1 to 20-3 from the controller 10-1 in thenetwork 1. - (1) Processing Rule (Flow Entry) from Node Device 20-1 to Controller 10-1
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC address:
- MAC address of controller 10-1
- Ether Type (eth_type): 0x8800
- Action: output to the controller 10-1
- (2) Processing Rule (Flow Entry) from Node Device 20-1 to Node Device 20-2
- Source MAC Address:
- MAC address of controller 10-1
- Destination MAC address:
- MAC address of controller 10-2
- Ether Type (eth_type): 0x8800
- Action: output to node device 20-2
- (3) Processing Rule (Flow Entry) from Node Device 20-2 to Node Device 20-1
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC address:
- MAC address of controller 10-1
- Ether Type (eth_type): 0x8800
- Action: output to node device 20-1
- (4) Processing Rule (Flow Entry) from Node Device 20-2 to Node Device 20-3
- Source MAC address:
- MAC address of controller 10-1
- Destination MAC address:
- MAC address of controller 10-2
- Ether type (eth_type): 0x8800
- Action: output to node device 20-3
- (5) Processing Rule (Flow Entry) from Node Device 20-3 to Node Device 20-2
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC address: MAC Address of controller 10-1
- Ether type (eth_type): 0x8800
- Action: output to node device 20-2
- (6) Processing Rule (Flow Entry) from Node Device 20-3 to Node Device 20-4
- Source MAC address]:
- MAC address of controller 10-1
- Destination MAC address:
- MAC Address of controller 10-2
- Ether type (eth_type): 0x8800
- Action: output to node device 20-4
- The above-described processing rules (1) and (2) are processing rules (or flow entries) used in the node device 20-1.
- The above-described processing rules (3) and (4) are processing rules (or flow entries) used in the node device 20-2.
- The above-described processing rules (5) and (6) are processing rules (or flow entries) used in the node device 20-3.
- (Processing Rule in Network 2)
-
FIG. 6B shows an example of the processing rule (or the flow entry) set to each of the node devices 20-4 to 20-6 from the controller 10-2 in thenetwork 2. - (1) Processing Rule (Flow Entry) from Node Device 20-4 to Node Device 20-3
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC Address:
- MAC address of controller 10-1
- Ether Type (eth_type): 0x8800
- Action: output to node device 20-3
- (2) Processing Rule (Flow Entry) from Node Device 20-4 to Node Device 20-5
- Source MAC address:
- MAC Address of controller 10-1
- Destination MAC address:
- MAC Address of controller 10-2
- Ether type (eth_type): 0x8800
- Action: output to node device 20-5
- (3) Processing Rule (Flow Entry) from Node Device 20-5 to Node Device 20-4
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC address:
- MAC Address of controller 10-1
- Ether Type (eth_type): 0x8800
- Action: output to node device 20-4
- (4) Processing Rule (Flow Entry) from Node Device 20-5 to Node Device 20-6
- Source MAC address]:
- MAC address of controller 10-1
- Destination MAC Address:
- MAC address of controller 10-2
- Ether Type (eth_type): 0x8800
- Action: output to node device 20-6
- (5) Processing Rule (Flow Entry) from Node Device 20-6 to Node Device 20-5
- Source MAC address:
- MAC address of controller 10-2
- Destination MAC address:
- MAC Address of controller 10-1
- Ether type (eth_type): 0x8800
- Action: output to node device 20-5
- (6) Processing Rule (Flow Entry) from Node Device 20-6 to Controller 10-2
- Source MAC address]:
- MAC Address of controller 10-1
- Destination MAC address:
- MAC Address of controller 10-2
- Ether type (eth_type): 0x8800
- Action: output to controller 10-2
- The above-described processing rules (1) and (2) are processing rules (or flow entries) used in the node device 20-4.
- The above-described processing rules (3) and (4) are processing rules (or flow entries) used in the node device 20-5.
- The above-described processing rules (5) and (6) are processing rules (or flow entries) used in the node device 20-6.
- (Supplement) The MAC address of the controller 10-1 means the MAC address of the network interface in the controller 10-1. Also, the MAC address of the controller 10-2 means the MAC address of the network interface in the controller 10-2.
- It should be noted that the MAC address is merely one exemplary identifier used to identify the source and the destination. The IP address or the like may be used in place of the MAC address.
- A description is given of a second embodiment of the present invention in the following.
- In this embodiment, identifying conditions (or identifying rules) are also determined in the topology retrieval by using LLDP frames. Specifically, identifying conditions (or identifying rules) of packets are embedded in LLDP frames in addition to identification information (or the controller ID) of the controller when LLDP frames are prepared in the controller.
- (Format of LLDP Frame in Second Embodiment)
- An exemplary format of the LLDP frame in this embodiment is described with reference to
FIG. 7 . - In this embodiment, each LLDP frame includes an “LLDP header” region (or field) and an “optional TLVs” region.
- The contents of the “LLDP header” region in the second embodiment are same as those in the first embodiment.
- The “optional TLVs” region includes an “identification information” region (or a “controller ID” region, a “MAC address” region and an “ether type” region (or an “eth_type” region).
- The “identification information” region contains identification information (or the controller ID) of the controller which prepares the LLDP frame.
- The “MAC address” region contains a MAC address which is one of identifying conditions (or identifying rules) of packets.
- The “ether type (eth_type)” region contains information that indicates an ether type which is one of identifying conditions (or identifying rules) of packets.
- It should be noted that the MAC address is merely one exemplary identifier used to identify the source and the destination. The IP address or the like may be used in place of the MAC address.
- That is, in this embodiment, identifying conditions (or identifying rules) of packets are stored in the “optional TLVs” region in each LLDP frame.
- (System Configuration)
- This embodiment is described on the basis of the system configuration shown in
FIG. 2 , similarly to the first embodiment. - The configurations of the
controllers 10 and thenode devices 20 are basically similar to those of the first embodiment. - (Operation of Topology Retrieval in Second Embodiment) An exemplary operation for topology retrieval in the second embodiment is described below.
- First, the
topology management section 111 in each of the controllers 10-1 and 10-2 prepares LLDP frames as topology retrieval packets, similarly to the first embodiment. - At this moment, the
topology management section 111 in each of the controllers 10-1 and 10-2 incorporates identification information (or the controller ID) which indicates its own controller in each LLDP frame, the identification information being unique among the networks. - Here, the
topology management section 111 in each of the controllers 10-1 and 10-2 incorporates the identification information (or the controller ID) of itsown controller 10 into the “identification information” region in the “optional TLVs” region in each LLDP frame as shown inFIG. 7 . - The
topology management section 111 in each of the controllers 10-1 and 10-2 outputs the prepared LLDP frames to the identifyingcondition calculation section 115. - The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 calculates identifying conditions (or identifying rules) of packets used to communicate with thecontroller 10 in the different network, on the basis of the topology information and the boundary information of the networks which are stored in thetopology management section 111. - In this embodiment, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 incorporates identifying conditions (or identifying rules) of packets used to communicate with theadjacent node device 20 by eachnode device 20 into each LLDP frame. - In this embodiment, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 incorporates the MAC address of the network interface within itsown controller 10 in the “MAC address” region of the “optional TLVs” region in each LLDP frame as shown inFIG. 7 . - Also, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 incorporates information indicating the ether type of packets used to communicate with thecontroller 10 in the different network in the “ether type” region of the “optional TLVs” region in each LLDP frame as shown inFIG. 7 . - At this moment, the identification information (or the controller ID) of the controller and identifying conditions (or rules) of packets are contained in each LLDP frame.
- The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 requests the controlmessage processing section 112 to instruct transmission of the LLDP frame to eachnode device 20. In an actual implementation, the identifyingcondition calculation section 115 may only output the LLDP frames to the controlmessage processing section 112. It should be noted that, in an actual implementation, the identifyingcondition calculation section 115 may return the LLDP frames in which identifying conditions (or rules) of packets are embedded to thetopology management section 111. In this case, similarly to the first embodiment, thetopology management section 111 requests the controlmessage processing section 112 to instruct transmission of the LLDP frame to eachnode device 20. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 prepares the packet-out message incorporating the LLDP frame and the transmission instruction, in response to the request for instructing the transmission of the LLDP frame to eachnode device 20, and requests thenode communication section 113 to transmit the packet-out message to all of thenode devices 20 in its own network. The packet-out message includes transmission instructions which instruct to transmit the LLDP frame from all of theinterface units 22 in eachnode device 20. - The
node communication section 113 in each of the controllers 10-1 and 10-2 transmits the packet-out message from the controlmessage processing section 112 to all of thenode devices 20 in its own network. - The
communication unit 21 in eachnode device 20 transmits the LLDP frame to the connection destinations from all of theinterface units 22 in thenode device 20. Also, thecommunication unit 21 receives the LLDP frames from the connection destinations via theinterface units 22. - The
communication unit 21 in eachnode device 20 transmits the packet-in message as inquiry information to thecontroller 10 that controls thenode device 20 via the control channel. At this time, thecommunication unit 21 in eachnode device 20 incorporates the LLDP frame, interface information of the interface unit that receives the LLDP frame (or (the interface unit ID), and identification information of the node device (or the node device ID) in the packet-in message. - Usually, the
communication unit 21 in eachnode device 20 receives an LLDP frame having the identification information (or the controller ID) of thecontroller 10 in the same network from thenode device 20 in the same network, and transmits a packet-in message incorporating the LLDP frame as inquiry information to thecontroller 10. - When the source is the node device 20-3 and the destination is the node device 20-4, however, an LLDP frame having identification information (the controller ID) of the controller 10-1 is transmitted to the controller 10-2. That is, when receiving an LLDP frame having identification information (or the controller ID) of the controller 10-1 from the node device 20-3, the
communication unit 21 in the node device 20-4 transmits a packet-in message incorporating the LLDP frame as inquiry information to the controller 10-2. - When the source is the node device 20-4 and the destination is the node device 20-3, on the other hand, an LLDP frame having identification information (or the controller ID) of the controller 10-2 is transmitted to the controller 10-1. That is, when receiving the LLDP frame having identification information (or the controller ID) of the controller 10-2 from the node device 20-4, the
communication unit 21 in the node device 20-3 transmits a packet-in message incorporating the LLDP frame as inquiry information to the controller 10-1. - The
node communication section 113 in each of the controllers 10-1 and 10-2 receives the above-described packet-in message from eachnode device 20 of the connection destination through the control channel and outputs the packet-in message to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 analyzes the received packet-in messages and extracts the LLDP frames incorporated in the packet-in messages. The controlmessage processing section 112 outputs the extracted LLDP frames to theadjacency discovery section 114 and the identifyingcondition calculation section 115. - The
adjacency discovery section 114 in each of the controllers 10-1 and 10-2 operates similarly to the first embodiment. - In this embodiment, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 determines whether the identification information (controller ID) contained in each LLDP frame is identical to the identification information (controller ID) of itsown controller 10. - Here, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 refers to the “identification information” region (or the “controller ID” region) of the “optional TLVs” region of the LLDP frame (seeFIG. 7 ), and determines whether the identification information (or the controller ID) contained in the “identification information” region (or the “controller ID” region) is identical to the identification information (or the controller ID) of itsown controller 10. - If the identification information (controller ID) contained in an LLDP frame differs from the identification information (controller ID) of its
own controller 10, the identifyingcondition calculation section 115 in each of the controllers 10-1 and 10-2 determines that the LLDP frame results from thecontroller 10 in the different network. In this case, the identifyingcondition calculation section 115 determines that the identifying conditions (or the rules) contained in the LLDP frame are the identifying conditions (or the identifying rules) of packets used to communicate with thecontroller 10 in the different network. - In this embodiment, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 refers to the “MAC address” region of the “optional TLVs” region in the LLDP frame (seeFIG. 7 ) and obtains the MAC address of the network interface in thecontroller 10 in the different network. - Also, the identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 refers to the “ether type” region (or the “eth_type” region) of the “optional TLVs” region in the LLDP frame shown inFIG. 7 , and obtains information that indicates the ether type of packets used to communicate with thecontroller 10 in the different network. - In this way, an LLDP frame prepared by each of the controllers 10-1 and 10-2 is transmitted from the interface units of each node device and this allows discovering of the network adjacency and recognizing the identifying conditions (or the rules) in the topology retrieval at the same time.
- A third embodiment of the present invention is described below.
- The system configuration of this embodiment is identical to that shown in
FIG. 1 . - The system configuration of this embodiment differs from the system configuration of the first embodiment shown in
FIG. 2 in that thecontrollers 10 and thenode devices 20 are logically connected via control channels; the interfaces are not physically connected to each other via data communication links. - Each
controller 10 communicates with thenode device 20 at the boundary with a different network. That is, the controller 10-1 communicates with the node device 20-3 via a control channel. The controller 10-2 communicates with the node device 20-4 via a control channel. - Each
node device 20 at the boundary with a different network communicates with thenode device 20 in the different network through a data communication link. In this embodiment, the node device 20-3 communicates with the node device 20-4 through a data communication link. The node device 20-4 communicates with the node device 20-3 through the data communication link. - In this embodiment, each
controller 10 sets thenode device 20 located on the boundary with a different network with processing rules (or flow entries) which instruct to, when receiving a packet addressed to thecontroller 10 in its own network from a different network, transfer the packet via the control channel to thecontroller 10 in its own network. That is, the controller 10-1 sets the node device 20-3 with processing rules (or flow entries) which instruct the node device 20-3 to transfer a packet addressed to the controller 10-1 when receiving the packet from the controller 10-2. The controller 10-2 sets the node device 20-4 with processing rules (or flow entries) which instruct the node device 20-3 to transfer a packet addressed to the controller 10-2 when receiving the packet from the controller 10-1. - This allows communications between the controllers 10-1 and 10-2.
- (Configuration of Controller in Third Embodiment)
- An exemplary configuration of the
controller 10 in this embodiment is described with reference toFIG. 8 . Note that this exemplary configuration is common to the controllers 10-1 and 10-2. - The
controller 10 includes a nodedevice control section 11, asorting section 12, a sortingrule storage section 13, one or more virtual ports 14 (one shown) and aninterface management section 15. - The node
device control section 11 and theinterface management section 15 basically have same functions as those in the first embodiment, - The node
device control section 11 controls thenode devices 20 connected thereto via the control channels. For example, the nodedevice control section 11 executes a software program which allows operating as an OpenFlow controller (OFC) in an OpenFlow network. Here, the nodedevice control section 11 monitors and manages each interface unit contained in eachnode device 20 via the control channel, and sets eachnode device 20 with processing rules (or flow entries) for packets transmitted and received in its interface units. One example of the contents of a processing rule (a flow entry) of a packet may include an instruction to output to a interface unit or a nodedevice control section 11 specified on the basis of the feature of the packet received by the interface unit, an instruction to, when a packet prepared by the nodedevice control section 11 is received, output the packet to a specified interface unit, and the like. - In this embodiment, when receiving a packet from a
node device 20, the nodedevice control section 11 outputs the packet to thesorting section 12 after attaching information that identifies thenode device 20 and theinterface unit 22 of the source of the packet. Also, when receiving a packet from the sortingsection 11, the nodedevice control section 11 analyzes information attached to the packet that indicates thenode device 20 and theinterface unit 22 of the source of the packet and performs control to output the packet from a specifiedinterface unit 22 in a specifiednode device 20 by issuing an output instruction specifying a proper control channel. - The sorting
section 12, upon receiving a packet from avirtual port 14, refers to sorting rules stored in the sortingrule storage section 13 to specify anode device 20 and aninterface unit 22 which are suitable as the output destination, on the basis of sorting conditions, which may include the feature of the packet, and identification information of the virtual port of the source of the packet, and outputs a message incorporating the packet and an output instruction to the specifiednode device 20 andinterface unit 22 to the nodedevice control section 11. Also, when receiving a packet from the nodedevice control section 11, the sortingsection 12 refers to the sorting rules stored in the sortingrule storage section 13 to specify a virtual port suitable for the output destination, on the basis of sorting conditions, which may include the feature of the packet, identification information of the node device of the source, and identification information of the interface section and the like, and outputs the packet to the specified virtual port. In an actual implementation, the sortingsection 12 may be attained by installing an existing virtual machine monitor (VMM), a hypervisor or the like with the above-described functions. - The sorting
rule storage section 13 stores the sorting rules of packets exchanged between the virtual ports in thecontroller 10 and the interface units in therespective node devices 20. Here, the sortingrule storage section 13 stores information required to sort packets as the sorting rules. The sortingrule storage section 13 returns and provides suitable sorting rules in response to a reference request from the nodedevice control section 11 and thesorting section 12. For example, the sortingrule storage section 13 stores information which correlates virtual ports with interface units in a one-to-one relationship; and information which correlates features of packets (source and destination addresses, the kind of packets and the like) with virtual ports and interface units in a one-to-one relationship. The sortingrule storage section 13 may be attained by using a RDB (relational data base). It should be noted that the relations described in the sorting rules may be arbitrarily modified in accordance with the OS (Operation System), software and the like used in the computer which operates as thecontroller 10, or may be manually modified in accordance with a user operation. For example, the relations described in the sorting rules may be dynamically modified as a part of the QoS control. It should be noted, however, these are merely examples and an actual implementation is not limited to these examples. - The
virtual ports 14 are each a virtual network interface provided in thecontroller 10. Thevirtual ports 14 are recognized as an entity equivalent to a physical network interface or treated in the same way as a physical network interface, by the OS (operating system) of the computer operating as thecontroller 10 and the like. This implies that thevirtual ports 14 are each capable of transmitting and receiving packets. For example, thevirtual ports 14 may be implemented as a virtual device, such as a TUN/TAP installed in the OS (Operating System) or other software. Also, individual virtual machines (VM) operating on thecontroller 10 may each contain an OS (Operating System) and avirtual port 14. It should be noted, however, an actual implementation is not limited to these examples - The
interface management section 15 manages the network interface in thecontroller 10. Here, theinterface management section 15 is connected to thevirtual ports 14 and capable of communicating with thevirtual ports 14. - In this embodiment, the node
device control section 11 is connected to thesorting section 12, the sortingrule storage section 13 and theinterface management section 15. - It should be noted the
interface management section 15 may be connected to any of thenode devices 20 via a data communication link, similarly to the first embodiment. - (Configuration of Node Device Control Section)
- An exemplary configuration of the node
device control section 11 of this embodiment will be described below. - In this embodiment, the configuration of the node
device control section 11 is basically identical to that of the first embodiment. - The node
device control section 11 includes atopology management section 111, a controlmessage processing section 112, anode communication section 113, anadjacency discovery section 114, an identifyingcondition calculation section 115, aroute calculation section 116, a processingrule calculation section 117, a processingrule management section 118 and a processingrule storage section 119, similarly to that shown inFIG. 3 . - The
topology management section 111, the controlmessage processing section 112, thenode communication section 113, theadjacency discovery section 114, the identifyingcondition calculation section 115, theroute calculation section 116, the processingrule calculation section 117, the processingrule management section 118 and the processingrule storage section 119 basically operate similarly to those of the first embodiment. - It should be noted, however that, in this embodiment, the control
message processing section 112 is further connected to thesorting section 12 and the sortingrule storage section 13. - (Operation of Topology Retrieval in Third Embodiment)
- In one operation example, the topology retrieval in this embodiment is basically achieved in the procedure similar to that of the first embodiment or the second embodiment.
- For example, the operation of the topology retrieval of this embodiment may involve the operations described in the sections entitled “(1) Operation for Transmitting LLDP Frame”, “(2) Operation for Transmitting Inquiry Information of LLDP Frame via Control Channel”, and “(4) Operation for Preparing Topology Information”; these sections describe the exemplary operation of the topology retrieval in the first embodiment.
- This allows each
controller 10 to dynamically recognize and monitor existences of acontroller 10 in a different network, anode device 20 located on the boundary with the different network, and itsinterface unit 22. - (Operation for Setting Processing Rule in Third Embodiment)
- An exemplary operation of setting processing rules (or flow entries) in the third embodiment is described below.
- The identifying
condition calculation section 115 in each of the controllers 10-1 and 10-2 calculates identifying conditions (or rules) of packets used to communicate with thecontroller 10 in a different network, on the basis of the topology information and the boundary information of the network, which are stored in thetopology management section 111. - The
route calculation section 116 in each of the controllers 10-1 and 10-2 determines the end points of a route used in the communication, on the basis of the topology information and the boundary information of the network, which are stored in thetopology management section 111. - Here, each end point of the route is defined as a node device located on the boundary with a different network. In the
network 1, the node device 20-3 is defined as one end point. In thenetwork 2, the node device 20-4 is defined as the other end point. - The
route calculation section 116 in each of the controllers 10-1 and 10-2 calculates the route which connects thecontroller 10 to thenode device 20 located on the boundary with a different network and through the control channel. - The processing
rule calculation section 117 in each of the controllers 10-1 and 10-2 obtains the route used for packet transfer from theroute calculation section 116 and obtains the identifying conditions (or the identifying rules) of packets transferred on the route from the identifyingcondition calculation section 115. - The processing
rule calculation section 117 in each of the controllers 10-1 and 10-2 uses the obtained information and calculates processing rules (or flow entries) to be set to thenode device 20 located on the boundary with the different network. At this time, the processingrule calculation section 117 incorporates identification information (or the processing rule ID) of each processing rule (flow entry), into each processing rule (or flow entry). Specifically, the processing rule ID is stored in a cookie region in each processing rule (or flow entry). Also, contents of processing (or the actions) of the processing rules (or the flow entries) are defined to instruct an operation in which, when receiving a packet addressed to thecontroller 10 in its own network from thecontroller 10 in a different network, a packet-in message incorporating the packet and the processing rule ID is transmitted to thecontroller 10 in its own network through the control channel. - For example, the processing
rule calculation section 117 in the controller 10-1 calculates processing rules (or flow entries) which instruct to, when receiving a packet addressed to the controller 10-1 from the controller 10-2, transmit a packet-in message incorporating the packet and a processing rule ID “A” to the controller 10-1 via the control channel, as the processing rules (or the flow entries) to be set to the node device 20-3. - Similarly, the processing
rule calculation section 117 in the controller 10-2 calculates processing rules (or flow entries) which instruct to, when receiving a packet addressed to the controller 10-2 from the controller 10-1, transmit a packet-in message incorporating the packet and a processing rule ID “B” to the controller 10-2 via the control channel, as the processing rules (or the flow entries) to be set to the node device 20-4. - The processing
rule management section 118 in each of the controllers 10-1 and 10-2 registers information related to the processing rules (or the flow entries) calculated by the processingrule calculation section 117 into the processingrule storage section 119, and requests the controlmessage processing section 112 to set thenode device 20 located on the boundary with the different network with the processing rules (or the flow entries). - The control
message processing section 112 in each of the controllers 10-1 and 10-2, upon receiving the request for setting thenode device 20 with the processing rules (or the flow entries), prepares a flow modification message (FlowMod-Add) to register the processing rules (or the flow entries) in thenode device 20. The controlmessage processing section 112 then requests thenode communication section 113 to transmit the flow modification message (FlowMod-Add) to thenode device 20 located on the boundary with the different network. - The
node communication section 113 in each of the controllers 10-1 and 10-2, upon receiving the transmission request of the flow modification message (FlowMod-Add) to thenode device 20 located on the boundary with the different network, transmits the flow modification message (FlowMod-Add) to thenode device 20 via the control channel. - The
communication unit 21 in eachnode device 20, upon receiving the flow modification message (FlowMod-Add) from thecontroller 10 via the control channel, registers therein the processing rules (or the flow entries) on the basis of the contents of the flow modification message (FlowMod-Add). - Hereafter, the
communication unit 21, upon receiving a packet via theinterface unit 22, processes the packet in accordance with the contents of the registered processing rules (or the flow entries). - (Operation for Notifying Processing Rules Between Controllers in Third Embodiment)
- An exemplary operation for notifying processing rules (flow entries) between the
controllers 10 in the third embodiment is described below. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 obtains the processing rules (the flow entries) with regard to the communications between thecontrollers 10 from the processingrule management section 118, and obtains the processing rules ID embedded in the processing rules (the flow entries). The controlmessage processing section 112 then prepares a notification packet incorporating the processing rules ID. For example, the controlmessage processing section 112 in each of the controllers 10-1 and 10-2 incorporates the processing rules ID in the cookie region or data region of the notification packet. When preparing the notification packet, the controlmessage processing section 112 defines the destination address as the address of thecontroller 10 in the different network, and defines the source address as the address of thecontroller 10 in its own network. It should be noted that, the controlmessage processing section 112, may carry out this process at the same time, when preparing the flow modification message (FlowMod-Add). - The control
message processing section 112 in each of the controllers 10-1 and 10-2 prepares a packet-out message which incorporates the above-described notification packet and a transmission instruction thereof. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 requests thenode communication section 113 to transmit the packet-out message to thenode device 20 located on the boundary with the different network. - The
node communication section 113 in each of the controllers 10-1 and 10-2, when receiving the transmission request of the packet-out message to thenode device 20 located on the boundary with the different network, transmits the packet-out message to thenode device 20 via the control channel. For example, thenode communication section 113 in the controller 10-1 transmits the packet-out message to the node device 20-3. Similarly, thenode communication section 113 in the controller 10-2 transmits the packet-out message to the node device 20-4. - When receiving the packet-out message from the
controller 10 via the control channel, thecommunication unit 21 in thenode device 20 located on the boundary with the different network transmits the notification packet from theinterface unit 22 to thenode device 20 in the different network on the basis of the contents of the packet-out message. For example, thecommunication unit 21 in the node device 20-3 transmits the notification packet to the node device 20-4 via the data communication link. Similarly, thecommunication unit 21 in the node device 20-4 transmits the notification packet to the node device 20-3 via the data communication link. - Also, the
communication unit 21 in thenode device 20 located on the boundary with the different network, when receiving a notification packet from thenode device 20 in the different network through theinterface unit 22, transmits a packet-in message which incorporates the notification packet as inquiry information to thecontroller 10 that controls thenode device 20 via the control channel. When receiving the notification packet from the node device 20-4, for example, thecommunication unit 21 in the node device 20-3 transmits a packet-in message which incorporates the notification packet to the controller 10-1 via the control channel. Similarly, when receiving a notification packet from the node device 20-3, thecommunication unit 21 in the node device 20-4 transmits a packet-in message which incorporates the notification packet to the controller 10-2 via the control channel. - The
node communication section 113 in each of the controllers 10-1 and 10-2 receives the above-described packet-in message from thenode device 20 located on the boundary with the different network via the control channel, and outputs the packet-in message to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 extracts the notification packet stored in the above packet-in message, and obtains the processing rules ID that indicates the processing rules (flow entries) of thecontroller 10 in the different network from the contents of the notification packet. - For example, the controller 10-1 recognizes that a processing rule identified by a processing rule ID “B” is used in the controller 10-2 when transmitting a packet in which the destination address is defined as the address of the controller 10-2 and the source address is defined as the address of the controller 10-1. Similarly, the controller 10-2 recognizes that a processing rule identified by a processing rule ID “A” is used in the controller 10-1, when transmitting a packet in which the destination address is defined as the address of the controller 10-1 and the source address is defined as the controller 10-2.
- (Operation for Setting Sorting Rule in Third Embodiment)
- An exemplary operation for setting the sorting rules in the third embodiment is described below.
- When receiving a setting request of processing rules (flow entries) to the
node device 20 located on the boundary with the different network from the processingrule management section 118, the controlmessage processing section 112 in each of the controllers 10-1 and 10-2 prepares a sorting rule and stores the prepared sorting rule in the sortingrule storage section 13. - At this time, the control
message processing section 112 in each of the controllers 10-1 and 10-2 specifies identification information (the node device ID) of thenode device 20 located on the boundary with the different network as information to be stored in a “node device ID” region in the sorting rule. The controlmessage processing section 112 also specifies identification information (or the interface ID) of theinterface unit 22 used for the connection to thenode device 20 in the different network as information to be stored in an “interface ID” region of the sorting rule. The controlmessage processing section 112 also specifies the address of thecontroller 10 in its own network as information to be stored in an “own address” region of the sorting rule. The controlmessage processing section 112 also specifies the address of thecontroller 10 in the different network as information of a “counterpart address” region of the sorting rule. The controlmessage processing section 112 specifies the processing rules ID embedded in the processing rule (or the flow entry) as information to be stored in a “processing rule ID” region of the sorting rule. - Also, the sorting
section 12 in each of the controllers 10-1 and 10-2 recognizes avirtual port 14 used to communicate with thecontroller 10 in the different network, and specifies identification information of the virtual port (or the virtual port ID) as information to be stored in a “virtual port ID” region for the above-described sorting rule. - It should be noted that the setting method of the sorting rules is not limited to this method. For example, sorting rules may be manually stored in the sorting
rule storage section 13 in advance by an operator's input or the like. - (Configuration of Sorting Rule)
- An exemplary format of the sorting rules stored in the sorting
rule storage section 13 is described with reference toFIGS. 9A and 9B . - A sorting rule includes a “virtual port ID” region, a “node device ID” region, an “interface ID” region, an “own address” region, a “counterpart address” region and a “processing rule ID” region.
- The “virtual port ID” region contains identification information (or the virtual port ID) of the
virtual port 14 used to communicate with thecontroller 10 in a different network. - The “node device ID” region contains identification information (or the node device ID) of the
node device 20 located on the boundary with the different network. - The “interface ID” region contains identification information (or the interface ID) of the
interface unit 22 used for the connection to thenode device 20 in the different network. - The “own address” region contains the address of its
own controller 10. - The “counterpart address” region contains the address of a communication counterpart.
- The “processing rule ID” region contains identification information (or the processing rule ID) of a processing rule (or a flow entry).
- (Supplement)
- The above-described addresses may be a MAC address, an IP address, or other identification information.
- Each of the addresses described in the “own address” region and the “counterpart address” region may be a destination address or a source address. When a case that the source address of a packet transferred between the
controllers 10 is the address described in the “own address” region of a sorting rule and the destination address is the address described in the “counterpart address” region of the sorting rule, for example, this implies that the packet matches with the sorting rule. Also, when a case that the source address of a packet transferred between thecontrollers 10 is the address described in the “counterpart address” region of a sorting rule and the destination address is the address described in the “own address” region of the sorting rule, this implies that the packet matches with the sorting rule. - In this embodiment, it is assumed that an “own address” region contains the address of the
controller 10 in its own network, and a “counterpart address” region contains the address of acontroller 10 in a different network. Moreover, it is assumed that thevirtual ports 14 are assigned with addresses in eachcontroller 10. For example, a typical virtual machine (VM) may be assigned with a virtual MAC address, a virtual IP address or the like. - (Identification Information of Virtual Port and Interface Unit in Third Embodiment)
- Here, a
virtual port 14 in the controller 10-1 is assigned with a virtual port ID “VP1”. Avirtual port 14 in the controller 10-2 is assigned with a virtual port ID “VP2”. Theinterface unit 22 used for the connection to the node device 20-4 in the node device 20-3 is assigned with an interface ID “IF3”. Theinterface unit 22 used for the connection to the node device 20-3 in the node device 20-4 is assigned with an interface ID “IF4”. - (Sorting Rule in Controller in Network 1)
-
FIG. 9A describes an example of the sorting rule in the controller 10-1 in thenetwork 1. - (1) Sorting Rule That Uses Control Channel
- Virtual port ID: VP1
- Node device ID: DPID3
- Interface ID″: IF3
- Own address: address of controller 10-1
- Counterpart address: address of controller 10-2
- Processing rule ID: A
- (Sorting Rule in Controller in Network 2)
-
FIG. 9B describes an example of a sorting rule in the controller 10-2 in thenetwork 2. - (1) Sorting Rule That Uses Control Channel
- Virtual port ID: VP2
- Node device ID: DPID4
- Interface ID: IF4
- Own address: address of controller 10-2
- Counterpart address: address of controller 10-1
- Processing rule ID: B
- (Operation of Packet Transfer Between Controllers in Third Embodiment)
- An exemplary operation for packet transfer between the
controllers 10 in the third embodiment is described below. - The sorting
section 12 in each of the controllers 10-1 and 10-2, when receiving a packet from avirtual port 14, determines identification information (or the virtual port ID) of thevirtual port 14, the destination address and the source address of the received packet. - The sorting
section 12 in each of the controllers 10-1 and 10-2 searches the sorting rules stored in the sortingrule storage section 13, using the identification information (virtual port ID) of thevirtual port 14, the destination address and the source address as search keys, to specify anode device 20 and aninterface unit 22 which are suitable as the output destination of the packet. - For example, the sorting
section 12 in the controller 10-1 searches the sorting rules stored in the sortingrule storage section 13, using the virtual port ID “VP1” of thevirtual port 14, the destination address (that is, the address of the controller 10-2), the source address (that is, the address of the controller 10-1) as search keys, and consequently specifies the node device ID “DPID3” and the interface ID “IF3”. - Similarly, the sorting
section 12 in the controller 10-2 searches the sorting rules stored in the sortingrule storage section 13 using the virtual port ID “VP2” of thevirtual port 14, the destination address (that is, the address of the controller 10-1) and the source address (that is, the address of the controller 10-2) as search keys, and consequently specifies the node device ID “DPID4” and the interface ID “IF4”. - The sorting
section 12 in each of the controllers 10-1 and 10-2 outputs a message incorporating the packet and an instruction to output the packet to the specifiednode device 20 andinterface unit 22, to the controlmessage processing section 112 in the nodedevice control section 11. - For example, the sorting
section 12 in the controller 10-1 outputs a message incorporating the packet and an instruction to output the packet to the node device 20-3 and the specifiedinterface unit 22 thereof, to the controlmessage processing section 112 in the nodedevice control section 11. - Similarly, the sorting
section 12 in the controller 10-2 outputs a message incorporating the packet and an instruction to output the packet to the node device 20-4 and the specifiedinterface unit 22 thereof, to the controlmessage processing section 112 in the nodedevice control section 11. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 refers to the sorting rules stored in the sortingrule storage section 13 to prepare a packet-out message incorporating the packet and an instruction to transmit the packet, and requests thenode communication section 113 to transmit the packet-out message to thenode device 20 located on the boundary with the different network. - The
node communication section 113 in each of the controllers 10-1 and 10-2 transmits the packet-out message received from the controlmessage processing section 112 to thenode device 20 located on the boundary with the different network. - For example, the
node communication section 113 in the controller 10-1 transmits the packet-out message from the controlmessage processing section 112 to the node device 20-3. - Similarly, the
node communication section 113 in the controller 10-2 transmits the packet-out message from the controlmessage processing section 112 to the node device 20-4. - The
communication unit 21 in thenode device 20 located on the boundary with the different network transmits the packet incorporated in the above-described packet-out message from the specifiedinterface unit 22 to thenode device 20 in the different network. - For example, the
communication unit 21 in the node device 20-3 transmits the packet incorporated in the above-described packet-out message from the specifiedinterface unit 22 to the node device 20-4. - Similarly, the
communication unit 21 in the node device 20-4 transmits the packet incorporated in the above packet-out message from the specifiedinterface unit 22 to the node device 20-4. - Also, the
communication unit 21 in thenode device 20 located on the boundary with the different network, when receiving the packet from thenode device 20 in the different network through theinterface unit 22, transmits a packet-in message as inquiry information to thecontroller 10 that controls the itsown node device 20 via the control channel in accordance with the processing rules (or the flow entries). At this time, thecommunication unit 21 incorporates the packet, the node device ID, the interface ID and the processing rule ID into this packet-in message. - For example, the
communication unit 21 in the node device 20-3, when receiving a packet from the node device 20-4 via theinterface unit 22, transmits a packet-in message as inquiry information to the controller 10-1 that controls the node device 20-3 via the control channel in accordance with the processing rules (or the flow entries). At this time, thecommunication unit 21 in the node device 20-3 incorporates the packet, the node device ID “DPID3”, the interface ID “IF3” and the processing rule ID “A”, into this packet-in message. - Similarly, the
communication unit 21 in the node device 20-4, when receiving a packet from the node device 20-3 via theinterface unit 22, transmits a packet-in message as inquiry information to the controller 10-2 that controls the node device 20-4 via the control channel in accordance with the processing rules (or the flow entries). At this time, thecommunication unit 21 in the node device 20-4 incorporates the packet, the node device ID “DPID4”, the interface ID “IF4” and the processing rule ID “B”, into this packet-in message. - The
node communication section 113 in each of the controllers 10-1 and 10-2 receives the above-described packet-in message from thenode device 20 connected thereto via the control channel, and outputs the packet-in message to the controlmessage processing section 112. - The control
message processing section 112 in each of the controllers 10-1 and 10-2 analyzes the above-described packet-in message and obtains the packet, the node device ID, the interface ID and the processing rule ID. At this time, the controlmessage processing section 112 can obtain the destination address and the source address from the header information of the packet and the like. - For example, the control
message processing section 112 in the controller 10-1 analyzes the above-described packet-in message and obtains the packet, the node device ID “DPID3”, the interface ID “IF3” and the processing rule ID “A”. At this time, the controlmessage processing section 112 can obtains the address of the controller 10-1 as the destination address and the address of the controller 10-2 as the source address from the header information of the packet, and the like. - Similarly, the control
message processing section 112 in the controller 10-2 analyzes the above-described packet-in message and obtains the packet, the node device ID “DPID4”, the interface ID “IF4” and the processing rule ID “B”. At this time, the controlmessage processing section 112 can obtains the address of the controller 10-2 as the destination address and the address of the controller 10-1 as the source address from the header information of the packet, and the like. - The control
message processing section 112 in each of the controller 10-1 and 10-2 searches the sorting rules stored in the sortingrule storage section 13 by using at least one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID as a search key(s), and recognizes that the packet is addressed to avirtual port 14 in its own network. The controlmessage processing section 112 then outputs the packet to thesorting section 12 together with the information used as the search key(s). At this time, the controlmessage processing section 112 may output any or all of the node device ID, the interface ID, the destination address, the source address and the processing rule ID together with the packet, to thesorting section 12. - The sorting
section 12 in each of the controllers 10-1 and 10-2 searches the sorting rules stored in the sortingrule storage section 13 using at least one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID as a search key(s), and thereby recognizes that the packet is addressed to avirtual port 14 in thecontroller 10 in its own network, and then outputs the packet to thevirtual port 14. - For example, the sorting
section 12 in the controller 10-1 searches the sorting rules stored in the sortingrule storage section 13 using the processing rule ID “A” as a search key, and thereby specifies the virtual port ID “VP1”. The sortingsection 12 in the controller 10-1 then outputs the packet to thevirtual port 14 identified by the virtual port ID “VP1”. - Similarly, the sorting
section 12 in the controller 10-2 searches the sorting rules stored in the sortingrule storage section 13 by using the processing rule ID “B” as a search key, and thereby specifies the virtual port ID “VP2”. The sortingsection 12 in the controller 10-2 then outputs the packet to thevirtual port 14 identified by the virtual port ID “VP2”. - (Supplement)
- When searching the sorting rules stored in the sorting
rule storage section 13 using at least one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID as a search key(s), the controlmessage processing section 112 and thesorting section 12 may use any one of the node device ID, the interface ID, the destination address, the source address and the processing rule ID, or any combination of them, or all of them as the search key(s). - It should be noted that the
sorting section 12 may unconditionally specify theinterface unit 22 in thenode device 20 located on the boundary with the different network as the output destination of the packet inputted from a predeterminedvirtual port 14. Similarly, the sortingsection 12 may unconditionally specify a predeterminedvirtual port 14, as the output destination of the packet from theinterface unit 22 in thenode device 20 located on the boundary with the different network. - For example, when receiving a packet from a
virtual port 14, the sortingsection 12 may search the sorting rules stored in the sortingrule storage section 13 using only the virtual port ID as the search key, irrespectively of the destination address and the source address of the inputted packet and specify a node device ID and an interface ID which indicate the output destination. When receiving a packet from the controlmessage processing section 112, on the other hand, the sortingsection 12 may search the sorting rules stored in the sortingrule storage section 13 using only the node device ID and the interface ID as the search keys and specify a virtual port ID which indicates the output destination. - This embodiment eliminates the need for physically connecting interfaces of a controller and a node device via a data communication link, effectively improving the flexibility in actual implementations.
- A fourth embodiment of the present invention is described below.
- In this embodiment, which is based on the third embodiment, client processes are executed in one of the two controllers, and server processes are executed in the other controller. At this time, the two controllers communicate with each other via the node devices under the control thereof.
- (Configuration of Communication System in Fourth Embodiment)
- An exemplary configuration of the communications system of this embodiment is described with reference to
FIGS. 10A and 10B . It should be noted thatFIG. 10A shows an exemplary network configuration of thenetwork 1 andFIG. 10B shows an exemplary network configuration of thenetwork 2. - The communications system of this embodiment includes a controller 10-1, a controller 10-2, node devices 20-1 to 20-6.
- The controller 10-1 controls the node devices 20-1 to 20-3 and the controller 10-2 controls the node devices 20-4 to 20-6.
- The node devices 20-1 to 20-3 are arranged in the
network 1 and the node devices 20-4 to 20-6 are arranged in thenetwork 2. At least one of the node devices 20-1 to 20-3 is connected to at least one of the node devices 20-4 to 20-6 via a data communication link. - (Configuration of Controller according to Fourth Embodiment)
- Exemplary configurations of the controller 10-1 and the controller 10-2 are described below.
- The controllers 10-1 and 10-2 each correspond to the
controller 10 shown inFIG. 8 . - The controller 10-1 includes a node device control section 11-1, a sorting section 12-1, a sorting rule storage section 13-1, virtual ports 14-11 and 14-12, an interface management section 15-1 and a
client section 16. - The controller 10-2 contains a node device control section 11-2, a sorting section 12-2, a sorting rule storage section 13-2, virtual ports 14-21 and 14-22, an interface management section 15-2 and a server section 17.
- The node device control section 11-1 and the node device control section 11-2 each correspond to the node
device control section 11 shown inFIG. 8 . - Here, the node device control section 11-1 controls each of the node devices 20-1 to 20-3 via a control channel.
- Also, the node device control section 11-2 controls each of the node devices 20-4 to 20-6 via a control channel.
- The sorting sections 12-1 and 12-2 each correspond to the
sorting section 12 shown inFIG. 8 . - The sorting rule storage sections 13-1 and 13-2 each correspond to the sorting
rule storage section 13 shown inFIG. 8 . - The virtual ports 14-11, 14-12, 14-21 and 14-22 each correspond to the
virtual port 14 shown inFIG. 8 . - The interface management sections 15-1 and 15-2 each correspond to the
interface management section 15 shown inFIG. 8 . It should be noted that the interface management sections 15-1 and 15-2 may have the same function as theinterface management section 15 shown inFIG. 3 . - The
client section 16 executes processes in the seventh layer (the application layer or layer 7) out of the seven layers defined in the OSI reference model. Theclient section 16 may be realized by a client processing function provided by the OS (operating system) or software of the computer operating as thecontroller 10. Note that actual implementations of theclient section 16 are not limited to those examples. - The server section 17 executes processes in the seventh layer (the application layer, layer 7) out of the seven layers defined in the OSI reference model. The server section 17 may be realized by a server processing function provided by the OS (operating system) or software of the computer operating as the
controller 10. However, actual implementations of the server section 17 are not limited to those examples. - Is should be noted that each of the controllers 10-1 and 10-2 may incorporate both of the
client section 16 and the server section 17. - (Connection Example of Virtual Port in Fourth Embodiment)
- In this embodiment, the virtual port 14-11 in the controller 10-1 is assigned with an address “AD11”. The virtual port 14-11 is provided between the sorting section 12-1 and the
client section 16, allowing packet transfer between the sorting section 12-1 and theclient section 16. Also, the virtual port 14-12 in the controller 10-1 is assigned with an address “AD12”. The virtual port 14-11 and theclient section 16 may be installed in the same virtual machine (VM). The virtual port 14-12 is provided between the sorting section 12-1 and the interface management section 15-1, allowing packet transfer between the sorting section 12-1 and the interface management section 15-1. In an actual implementation, the sorting section 12-1, the virtual ports 14-11, 14-12 and the interface management section 15-1 may be realized as the functions installed in the same OS (operating system) and software. - Similarly, the virtual port 14-21 in the controller 10-2 is assigned with an address “AD21”. The virtual port 14-21 is arranged between the sorting section 12-2 and the server section 17, allowing packet transfer between the sorting section 12-2 and the server section 17. The virtual port 14-21 and the server section 17 may be installed in the same virtual machine (VM). Also, the virtual port 14-22 in the controller 10-2 is assigned with an address “AD22”. The virtual port 14-22 is provided between the sorting section 12-2 and the interface management section 15-2, allowing packet transfer between the sorting section 12-2 and the interface management section 15-2. In an actual implementation, the sorting section 12-2, the virtual ports 14-21, 14-22 and the interface management section 15-2 may be realized as the functions installed in the same OS (Operating System) and software.
- (Supplement)
- Specifically, the above-described addresses “AD11” and “AD21” may be defined as any region (field) which can be identified in the OpenFlow technique, such as the MAC address, the IP address, the TCP/UDP (User Datagram Protocol) port number and the like, or a combination of them. It should be noted, however, actual implementations are not limited to these examples.
- (Identification Information of Virtual Port in Fourth Embodiment)
- The virtual port 14-11 in the controller 10-1 is assigned with a virtual port ID “VP11”. The virtual port 14-12 in the controller 10-1 is assigned with a virtual port ID “VP12”. The virtual port 14-21 in the controller 10-2 is assigned with a virtual port ID “VP21”. The virtual port 14-22 in the controller 10-2 is assigned with a virtual port ID “VP22”.
- (Configuration of Node Device in Fourth Embodiment)
- Exemplary configurations of the node devices 20-1 to 20-6 are described below.
- The node devices 20-1 to 20-6 each correspond to the
node device 20 shown inFIG. 4 . - The node device 20-1 includes a communication unit 21-1, an interface unit 22-11 and an interface unit 22-12. The node device 20-2 includes a communication unit 21-2, an interface unit 22-21 and an interface unit 22-22. The node device 20-3 includes a communication unit 21-3, an interface unit 22-31 and an interface unit 22-32. The node device 20-4 includes a communication unit 21-4, an interface unit 22-41 and an interface unit 22-42. The node device 20-5 includes a communication unit 21-5, an interface unit 22-51 and an interface unit 22-52. The node device 20-6 includes a communication unit 21-6, an interface unit 22-61 and an interface unit 22-62.
- The communication unit 21-1 to 21-6 each correspond to the
communication unit 21 shown inFIG. 4 . - The interface units 22-11, 22-12, 22-21, 22-22, 22-31, 22-32, 22-41, 22-42, 22-51, 22-52, 22-61 and 22-62 each correspond to the
interface units 22 shown inFIG. 4 . - (Connection Example of Interface Unit in Fourth Embodiment)
- The interface unit 22-11 in the node device 20-1 is connected to the interface management section 15-1 in the controller 10-1. The interface unit 22-12 in the node device 20-1 is connected to the interface unit 22-21 in the node device 20-2. The interface unit 22-22 in the node device 20-2 is connected to the interface unit 22-31 in the node device 20-3. The interface unit 22-32 in the node device 20-3 is connected to the interface unit 22-41 in the node device 20-4. The interface unit 22-42 in the node device 20-4 is connected to the interface unit 22-51 in the node device 20-5. The interface unit 22-52 in the node device 20-5 is connected to the interface unit 22-61 in the node device 20-6. The interface unit 22-62 in the node device 20-6 is connected to the interface management section 15-2 in the controller 10-2.
- The node device 20-3 is arranged in the
network 1, and the node device 20-4 is arranged in thenetwork 2. This implies that the interface unit 22-32 in the node device 20-3 and the interface unit 22-41 in the node device 20-4 each serve as aninterface unit 22 located on the boundary with a different network. - (Identification Information of Interface Unit According to Fourth Embodiment)
- The interface unit 22-11 is assigned with an interface ID “IF11”. The interface unit 22-12 is assigned with an interface ID “IF12”. The interface unit 22-21 is assigned with an interface ID “IF21”. The interface unit 22-22 is assigned with an interface ID “IF22”. The interface unit 22-31 is assigned with an interface ID “IF31”. The interface unit 22-32 is assigned with an interface ID “IF32”. The interface unit 22-41 is assigned with an interface ID “IF41”. The interface unit 22-42 is assigned with an interface ID “IF42”. The interface unit 22-51 is assigned with an interface ID “IF51”. The interface unit 22-52 is assigned with an interface ID “IF52”. The interface unit 22-61 is assigned with an interface ID “IF61”. The interface unit 22-62 is assigned with an interface ID “IF62”.
- (Sorting Rule in Controller in Network 1)
-
FIG. 11A shows an example of the sorting rules in the controller 10-1 in thenetwork 1. - (1) Sorting Rule which Uses Control Channel
- Virtual port ID: VP11
- Node device ID: DPID3
- Interface ID: IF32
- Own address: AD11
- Counterpart address: AD21
- Processing rule ID: A1
- (2) Sorting Rule which Uses Data Communication Link
- Virtual port ID: VP12
- Node device ID: DPID1
- Interface ID: IF11
- Own address: AD12
- Counterpart address: AD22
- Processing rule ID: A2
- (Sorting Rule in Controller in Network 2)
-
FIG. 11B shows an example of the sorting rules in the controller 10-2 in thenetwork 2. - (1) Sorting Rule which Uses Control Channel
- Virtual port ID: VP21
- Node device ID: DPID4
- Interface ID: IF41
- Own address: AD21
- Counterpart address: AD11
- Processing rule ID: B1
- (2) Sorting Rule which Uses Data Communication Link
- Virtual port ID: VP22
- Node device ID: DPID6
- Interface ID: IF62
- Own address: AD22
- Counterpart address: AD12
- Processing rule ID: A2
- (Registration of Processing Rule (Flow Entry) to Node Device 20-3)
- The node device control section 11-1 in the controller 10-1 searches the sorting rules stored in the sorting rule storage section 13-1 and outputs a flow modification message (FlowMod-Add) to set the node device 20-3 with a processing rule (or a flow entry). Here, the destination address “AD11” and the source address “AD21” are specified as the identifying conditions (or the identifying rule) of the processing rule (or the flow entry). Also, the contents of processing (or the action) of the processing rule (flow entry) are specified to perform an operation of outputting a packet-in message incorporates the packet and the processing rule ID “A1” to the controller 10-1 (or the output port connected to the controller 10-1). That is, the node device control section 11-1 outputs to the node device 20-3 a flow modification message (FlowMod-Add) to instruct the node device 20-3 to carry out a process of outputting to the controller 10-1 the packet-in message which incorporates the packet and the processing rule ID “A1”, when the interface unit 22-32 receives the packet in which the destination address is “AD11” and the source address is “AD21”.
- (Registration of Processing Rule (Flow Entry) to Node Device 20-4)
- The node device control section 11-2 in the controller 10-2 searches the sorting rules stored in the sorting rule storage section 13-2 and outputs a flow modification message (FlowMod-Add) to set the node device 20-4 with a processing rule (or a flow entry). Here, the destination address “AD21” and the source address “AD11” are specified as the identifying conditions (or an identifying rule) of the processing rule (or the flow entry). Also, the contents of processing (or the action) of the processing rule (or the flow entry) are specified to perform an operation of outputting an packet-in message incorporates the packet and the processing rule ID “B1” to the controller 10-2 (or the output port connected to the controller 10-2). That is, the node device control section 11-2 outputs to the node device 20-4 a flow modification message (FlowMod-Add) to instruct the node device 20-4 to carry out a process of outputting to the controller 10-2 the packet-in message which incorporates the packet and the processing rule ID “B1”, when the interface unit 22-23 receives the packet in which the destination address is “AD21” and the source address is “AD11”.
- (Packet Output Instruction to Node Device 20-3)
- When receiving a packet from the virtual port 14-11, the sorting section 12-1 in the controller 10-1, searches the sorting rules stored in the sorting rule storage section 13-1, and if the destination address of the packet is “AD21” and the source address of the packet is “AD11”, outputs a message of requesting the node device control section 11-1 to output the packet from the interface unit 22-32 in the node device 20-3.
- When receiving the above-described message from the sorting section 12-1, the node device control section 11-1 transmits a packet-out message which incorporates the packet and a instruction of outputting the packet to the interface unit 22-12, to the node device 20-3 via the control channel.
- (Packet Output Instruction to Node Device 20-4)
- When receiving a packet from the virtual port 14-21, the sorting section 12-2 in the controller 10-2, searches the sorting rules stored in the sorting rule storage section 13-2, and if the destination address of the packet is “AD11” and the source address of the packet is “AD21”, outputs a message of requesting the node device control section 11-2 to output the packet from the interface unit 22-41 in the node device 20-4.
- (Operation for Transferring Packet to Server Section from Client Section)
- An exemplary operation for transferring a packet to the server section 17 from the
client section 16 is described below. - The
client section 16 in the controller 10-1 outputs a packet in which the destination address is defined as “AD21” and the source address is defined as “AD11”, to the virtual port 14-11. - When receiving the packet from the
client section 16, the virtual port 14-11 outputs the packet to the sorting section 12-1. - When receiving the packet from the virtual port 14-11, the sorting section 12-1 searches the sorting rules stored in the sorting rule storage section 13-1 and outputs a message of requesting the node device control section 11-1 to output the packet from the interface unit 22-32 in the node device 20-3, since the destination address of the packet is “AD21” and the source address of the packet is “AD11”.
- When receiving the above-described message from the sorting section 12-1, the node device control section 11-1 transmits a packet-out message which incorporates the packet and an instruction of outputting the packet to the interface unit 22-32, to the communication unit 21-3 in the node device 20-3.
- When receiving the packet-out message from the node device control section 11-1 in the controller 10-1, the communication unit 21-3 in the node device 20-3 outputs the packet incorporated in the packet-out message to the interface unit 22-32.
- When receiving the packet from the communication unit 21-3, the interface unit 22-32 transfers the packet to the interface unit 22-41 in the node device 20-4, which is the connection destination, via the data communication link.
- When receiving the packet from the interface unit 22-32 in the node device 20-3, the interface unit 22-41 in the node device 20-4 outputs the packet to the communication unit 21-4.
- When receiving the packet from the interface unit 22-41, the communication unit 21-4 processes the inputted packet in accordance with the processing rules (the flow entries).
- In this embodiment, the communication unit 21-4 is set with a processing rule (or a flow entry) by the node device control section 11-2 in the controller 10-2, wherein the processing rule instructs to, when receiving a packet in which the destination address is “AD21” and the source address is “AD11” in the interface unit 22-41, output a packet-in message which incorporates the packet and the processing rule ID “B1” to the controller 10-2.
- Accordingly, the communication unit 21-4 outputs the packet-in message incorporating the packet, which complies with the identifying conditions (or the identifying rule) of the processing rule (or the flow entry), and the processing rule ID “B1”, to the node device control section 11-2 in the controller 10-2, via the control channel.
- When receiving the above-described packet-in message from the communication unit 21-4 in the node device 20-4, the node device control section 11-2 in the controller 10-2 outputs a message which incorporates the above-described packet and the processing rule ID “B1” to the sorting section 12-2.
- When receiving the above message from the node device control section 11-2, the sorting section 12-2 searches the sorting rules stored in the sorting rule storage section 13-2, and determines that the packet is to be outputted to the virtual port 14-21 on the basis of the processing rule ID “B1” included in the above message, and outputs the packet incorporated in the above message to the virtual port 14-21.
- When receiving the packet from the sorting section 12-2, the virtual port 14-21 outputs the packet to the server section 17, which is the connection destination thereof.
- The server section 17 processes the packet when receiving the packet from the virtual port 14-21.
- (Operation for Transferring Packet to Client Section from Server Section)
- Next, an exemplary operation of transferring a packet from the server section 17 to the
client section 16 is described below. - The server section 17 in the controller 10-2 outputs a packet in which the destination address is defined as “AD11” and the source address is defined as “AD21” to the virtual port 14-21.
- When receiving the packet from the server section 17, the virtual port 14-21 outputs the packet to the sorting section 12-1.
- When receiving the packet from the virtual port 14-21, the sorting section 12-1 searches the sorting rules stored in the sorting rule storage section 13-1. Since the destination address of the packet is “AD11” and the source address of the packet is “AD21”, the sorting section 12-1 outputs a message of requesting the node device control section 11-2 to output the packet from the interface unit 22-41 in the node device 20-4.
- When receiving the above message from the sorting section 12-2, the node device control section 11-2 transmits a packet-out message which incorporates the packet and an instruction of outputting the packet to the interface unit 22-41, to the communication unit 21-4 in the node device 20-4 via the control channel.
- When receiving the packet-out message from the node device control section 11-2 in the controller 10-2, the communication unit 21-4 in the node device 20-4 outputs the packet incorporated in the packet-out message to the interface unit 22-41.
- When receiving the packet from the communication unit 21-4, the interface unit 22-41 transfers the packet to the interface unit 22-32 in the node device 20-3, which is the connection destination, through the data communication link.
- When receiving the packet from the interface unit 22-41 in the node device 20-4, the interface unit 22-32 in the node device 20-3 outputs the packet to the communication unit 21-3.
- When receiving the packet from the interface unit 22-32, the communication unit 21-3 processes the received packet on the basis of the processing rules (or the flow entries).
- Here, the communication unit 21-3 is set with a processing rule (or a flow entry) from the node device control section 11-1 in the controller 10-1, wherein the processing rule instructs to, when receiving a packet in which the destination address is defined as “AD11” and the source address is defined as “AD21” in the interface unit 22-32, output a packet-in message which incorporates the packet and the processing rule ID “A1” to the controller 10-1.
- As a result, the communication unit 21-3 outputs the packet-in message which incorporates the packet complying with the identifying conditions (or the identifying rule) of the processing rule (or the flow entry) and the processing rule ID “A1”, to the node device control section 11-1 in the controller 10-1 via the control channel.
- When receiving the above packet-in message from the communication unit 21-3 in the node device 20-3, the node device control section 11-1 in the controller 10-1 outputs a message which incorporates the above packet and the processing rule ID “A1” to the sorting section 12-1.
- When receiving the above message from the node device control section 11-1, the sorting section 12-1 searches the sorting rules stored in the sorting rule storage section 13-1, and determines that the packet is to be outputted to the virtual port 14-11 on the basis of the processing rule ID “A1” incorporated in the above message, and then outputs the packet incorporated in the above message to the virtual port 14-11.
- When receiving the packet from the sorting section 12-1, the virtual port 14-11 outputs the packet to the
client section 16, which is the connection destination. - The
client section 16 processes the packet when receiving the packet from the virtual port 14-11. - (Communications Via Data Communication Link)
- In the fourth embodiment, communications between the
controllers 10 can be carried out by packet transfer via a data communication link, similarly to the first embodiment. - (1) Setting of Processing Rules (Flow Entries) to Each
Node Device 20 - Initially, the node
device control section 11 in each of the controllers 10-1 and 10-2 calculates a route to connect the end points in each network and sets eachnode device 20 on the route with processing rules (or flow entries) for the packet transfer. - For example, the node device control section 11-1 in the controller 10-1 calculates a route to connect the interface unit 22-11 in the node device 20-1 with the interface unit 22-32 in the node device 20-3 in the
network 1 and sets eachnode device 20 on the route with processing rules (flow entries) for the packet transfer. - Similarly, the node device control section 11-2 in the controller 10-2 calculates a route to connect the interface unit 22-41 in the node device 20-4 to the interface unit 22-62 in the node device 20-6 in the
network 2 and sets eachnode device 20 on the route with processing rules (flow entries) for the packet transfer. - (2) Transmission and Reception of Packet through Link for Data Communication
- The sorting
section 12 in each of the controller 10-1 and the controller 10-2 then outputs a packet which is to be transferred through the data communication link to thevirtual port 14 connected to theinterface management section 15. Consequently, the packet is outputted from theinterface management section 15. At this time, the sortingsection 12 may refer to the sorting rule stored in the sortingrule storage section 13 and determine thevirtual port 14 of the output destination. - For example, the sorting section 12-1 in the controller 10-1 outputs a packet in which the destination address is “AD22” and the source address is “AD12” to the virtual port 14-12. As a result the packet is outputted from the interface management section 15-1. In this case, the
client section 16 in the controller 10-1 may output the packet in which the destination address is “AD22” and the transmission source address is AD12″ via the virtual port 14-11 to the sorting section 12-1. - Similarly, the sorting section 12-2 in the controller 10-1 outputs a packet in which the destination address is “AD12” and the source address is “AD22” to the virtual port 14-22. As a result, the packet is outputted from the interface management section 15-2. In this case, the server section 17 in the controller 10-1 may output the packet in which the destination address is “AD12” and the source address is “AD22” via the virtual port 14-21 to the sorting section 12-2.
- The
communication unit 21 in eachnode device 20 transfers packets in accordance with the processing rules (or the flow entry). - The
interface management section 15 in each of the controller 10-1 and the controller 10-2 outputs packets which are received from anode device 20 via a data communication link to thesorting section 12 via avirtual port 14. - For example, the interface management section 15-1 in the controller 10-1 outputs a packet received from the node device 20-1 to the sorting section 12-1 via the data communication link through the virtual port 14-12. In this case, the sorting section 12-1 in the controller 10-1 may output the packet received from the virtual port 14-12 to the
client section 16, through the virtual port 14-11. - Similarly, the interface management section 15-2 in the controller 10-2 outputs a packet received from the node device 20-6 to the sorting section 12-2 via the data communication link through the virtual port 14-22. In this case, the sorting section 12-2 in the controller 10-2 may output the packet received from the virtual port 14-22 to the server section 17 through the virtual port 14-21.
- (Supplement)
- The sorting
section 12 in eachcontroller 10 may perform packet transfer between thevirtual ports 14 in thecontroller 10 without referring to the sorting rules stored in the sortingrule storage section 13. - It should be noted that the sorting
rule storage section 13 may store the sorting rules of packets exchanged among thevirtual ports 14 in thecontroller 10. - When one of the controllers is used as a terminal device connected to the node device, this embodiment allows communications that uses a conventional communication method, such as TCP/IP and the like, between the terminal apparatus and the controller.
- Conventionally, there is a difficulty in achieving communications among controllers by using a conventional communication method such as TCP/IP in a CD-separated type network, such as OpenFlow networks. The use of the systems disclosed in these embodiments of the present invention enables communications based on a conventional communication method such as TCP/IP between or among a plurality of controllers.
- This allows achieving a distributed control of the entire system by a plurality of controllers by reusing distributed-control applications based on a conventional communication architecture such as TCP/IP, making it easy to establish a large-scale system.
- It should the above-mentioned respective embodiments can be carried out by combining them.
- Examples of hardware devices which may be used in the communications system according the present invention is described below.
- Examples of devices which may be used as the controllers include a computer such as PC (personal computer), an appliance, a thin client server, a workstation, a main frame, a super computer. Note that the controllers may be a relaying device or a peripheral device, not limited to a terminal device or a server. Also, an expansion board installed in a computer or the like may be used as the controller, or a virtual machine (VM) established on a physical machine may be used as the controller.
- Examples of devices which may be used as the node devices include a network switch, a router, a proxy, a gateway, a firewall, a load balancer, a packet shaper, a SCADA (supervisory control and data acquisition) security monitoring controller, a gatekeeper, a base station, an access point (AP), a communication satellite (CS), and a computer having a plurality of communication ports. Also, a virtual switch operating on a virtual machine (VM) established on a physical machine may be used as the node device. The controllers and the node devices may be installed on movable bodies such as vehicles, ships and airplanes.
- In one example, as shown in
FIG. 12 , eachcontroller 10 may each include a storage device (or memory) 31, aprocessor 32, and aninterface 33. Thestorage device 31 stores asoftware program 31 a which includes codes describing the above-described operations of thecontroller 10. Thestorage device 31 is also used to store various data used and generated in the operations of thecontroller 10. Theprocessor 32 executes thesoftware program 31 a to perform the above-described operations of thecontroller 10. Theinterface 33 is used to communicate with thenode devices 20. Anon-transitory recording medium 50 may be used to install thesoftware program 31 a onto thestorage device 31. - Similarly, as shown in
FIG. 13 , eachnode device 20 may each include a storage device (or memory) 41, aprocessor 42, and interfaces 43 and 44. Thestorage device 41 stores a software program 41 a which includes codes describing the above-described operations of thenode device 20. Thestorage device 41 is also used to store various data used and generated in the operations of thenode device 20. Theprocessor 32 executes the software program 41 a to perform the above-described operations of thenode device 10. Theinterface 43 is used to communicate with anothernode device 20, andinterface 44 is used to communicate with acontroller 10. Anon-transitory recording medium 60 may be used to install the software program 41 a onto thestorage device 41. - Examples of the
processors - Examples of the storage devices (or memories) 31 and 41 include a semiconductor storage device such as a RAM (Random Access Memory), a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable Read Only Memory), a flash memory, an auxiliary storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), a removable disk such as a DVD (Digital Versatile Disk), a storage medium such as an SD memory card (Secure Digital memory card), and the like. Also, a buffer, a register and the like may be used as the storage devices (or memories) 31 and 41. In one embodiment, a storage device that uses a DAS (direct attached storage), an FC-SAN (fiber channel-storage area network), an NAS (network attached storage), IP-SAN (IP-storage area network) and the like may be used the storage devices (or memories) 31 and 41.
- The
processor 31 and thestorage device 32 may be monolithically integrated and theprocessor 41 and thestorage device 42 may be monolithically integrated. In recent years, one-chip microcomputers have been made popular. In one embodiment, a one-chip microcomputer installed in an electronic appliance or the like may monolithically integrate the above-described processor and storage device. - Examples of the above-described interface includes a circuit board (a mother board, an I/O board) and a semiconductor integrated circuit which are adapted to a network communication, a network adaptor such as an NIC (network interface card), a similar expansion card, a communication apparatus such as an antenna, and a communication port such as a connection port (connector).
- Also, examples of the network include the Internet, an LAN (local area network), a wireless LAN, a WAN (wide area network), a backbone, a cable television (CATV) line, a fixed telephone network, a mobile telephone network, WiMAX (IEEE 802.16a), a 3G (3rd generation) communication system, a dedicated line (lease line), an IrDA (infrared data association), Bluetooth (Registered Trademark), a serial communication line, a data bus and the like.
- Configuration elements included in each of the controllers and the node devices may be modules and components, or dedicated devices, or starting (calling) programs for them.
- It should be noted that actual implementations are not limited to these examples.
- As discussed above, the communications system in exemplary embodiments of the present invention includes controllers and node devices. The controllers control packet processing in the respective node devices.
- The node devices outputs packets from their own physical or logical interfaces under control of the controllers.
- Each controller each obtains identifying conditions (identifying rules) of packets used to communicate with a network that is not under control of the controller (that is, a network provided outside its own network).
- Also, each controller calculates the transfer route which connects an interface of one node device and another interface of a boundary node device located on the boundary with a different network, which is used for establishing a connection to a device provided outside its own network.
- In one embodiment, the controllers may each calculate a transfer route in which a start point is defined as an interface of a node device connected to the controller via a data communication link and an end point is defined as an interface of a boundary node device which is used for establishing a connection to a device provided outside its own network. Alternatively, the controllers may each calculates a transfer route in which a start point is defined as an interface of a boundary node device which is used for establishing a connection to a device provided outside its own network and an end point is defined as an interface of a node device connected to the controller via a data communication link.
- Also, the controllers each sets the node devices with processing rules (or flow entries) so that packets complying with the identifying conditions (or the identifying rules) are transferred on the calculated transfer route.
- Some or all of the above-mentioned embodiments may be represented as described in the following supplementary notes. It should be noted that actual implementations are not limited to the following supplementary nodes.
- (Supplementary Note 1)
- A communications system in which controllers control packet processing in each of node devices, and the node devices each output packets any interfaces thereof under control of a controller connected thereto,
- wherein each of the controllers includes:
- a node communication section which sets a control channel to control each of the node devices and transmits and receives control messages;
- a network interface connected to one of node devices via a data communication link;
- an adjacency discovery section which discovers a boundary node device from the node devices, the boundary node being located on the boundary with a different network that is controlled by a different controller;
- an identifying condition calculating section calculating identifying conditions (or identifying rules) of packets used to communicate with a controller in the network adjacent thereto;
- a route calculating section that calculates a transfer route having a start point determined as a node device connected to an interface of the controller, through which a packet is outputted to an interface of the boundary node device, the interface being connected to a different network outside its own network, and a transfer route having a start point determined as the boundary node device, through which a packet is outputted to an interface of the node device connected to the interface of the controller; and
- a processing rule calculating section that sets the node devices connected to the each controller with processing rules (flow entries) so as to transfer packets complying with the identifying conditions (the identifying rules) on the transfer route.
- (Supplementary Note 2)
- The communications system set forth in
supplementary note 1, wherein the adjacency discovery section embeds unique identification information of each controller into retrieval packets used to retrieve a connection relation among the node devices inside each network. - (Supplementary Note 3]
- The communications system set forth in the
supplementary note 1, wherein the controller instructs the boundary node device to output a packet which incorporates identifying conditions (identifying rules) from the interface connected to the different network. - (Supplementary Note 4)
- The communications system described in the
supplementary note 1, wherein the identifying condition calculating section incorporates identifying conditions used in the communication between the controllers into a retrieval packet used to retrieve a connection relation among the node devices inside each network. - (Supplementary Note 5]
- The communications system set forth in any one of
supplementary notes 1 to 4, wherein the route calculation section refers to identification information incorporated in the retrieval packet transmitted to the controller through an interface by a node device, and, if it is equal to identification information indicative of its own controller, determines the interface of the node device connected to the controller as an end point in the route calculation. - (Supplementary Note 6)
- The communications system set forth in any one of
supplementary notes 1 to 5, wherein the network interface is physically connected through a network link connection cable. - (Supplementary Note 7)
- The communications system set forth in any one of
supplementary notes 1 to 5, wherein the controller contains one or more virtual ports for transmitting and receiving packets, a sorting rule storage section storing one or more sorting rules of packets and a sorting section for specifying a sorting destination of packets, - wherein the sorting rule storage section retrieves and return selected one of the sorting rules in response to a reference request, and
- wherein the sorting section specifies a transfer destination of packets transmitted and received between the interface of the boundary node device and the virtual ports, in accordance with the sorting rule selected by referring to the sorting rule storage section.
- (Supplementary Note 8)
- The communications system set forth in any one of
supplementary notes 1 to 5, - wherein the communications system includes a plurality of controllers, an interface section in a node device controlled by one of the controllers is connected via a communication line to an interface section in a node device controlled by a different one of the controllers,
- wherein each of the controllers contains an wide area control section that communicates with a different one of the controllers,
- wherein the wide area control sections are each connected to one or more of the virtual ports, and
- wherein the wide area control sections communicate with each other through the virtual ports.
- (Supplementary Note 9)
- A communicating method in which controllers control packet processing in each of node devices, and the node devices each output packets any interfaces thereof under control of a controller connected thereto,
- wherein each of the controllers is connected via a network interface which achieves a data transfer link connection to one or more of the node devices, and
- wherein the communication method includes:
- discovering a boundary node device from the node devices, located on a boundary with a different network that is controlled by a different controller;
- calculating identifying conditions (or identifying rules) of packets used to communicate with the different controller in the different network;
- calculating a transfer route having a start point determined as a node device connected to an interface of the controller, through which a packet is outputted to an interface of the boundary node device, the interface being connected to a different network outside its own network, and a transfer route having a start point determined as the boundary node device, through which a packet is outputted to an interface of the node device connected to the interface of the controller; and
- setting the node devices connected to the each controller with processing rules (flow entries) so as to transfer packets complying with the identifying conditions (the identifying rules) on the transfer route, and
- processing a packet complying with the identifying conditions (of the identifying rules) of a processing rule in accordance with the processing rule (flow entry).
- (Supplementary Note 10)
- The communicating method system described in supplementary note 9, wherein each controller embeds unique identification information of the each controller into retrieval packets used to retrieve a connection relation among the node devices inside each network,
- wherein the controller refers to identification information incorporated in the retrieval packet, and compares the identification information incorporated in the packet with its own identification information and consequently determines whether the retrieval packet comes from a different controller.
- (Supplementary Note 11)
- The communicating method set forth in supplementary note 9, wherein the controller instructs the boundary node device to output a packet incorporating identifying conditions (or the identifying rules) from the interface connected to the different network.
- (Supplementary Note 12)
- The communicating method set forth in supplementary note 9, wherein the controller incorporates packet judgment conditions used in the communication between the controllers into a retrieval packet used to retrieve the connection relation between the node devices in its own network.
- (Supplementary Note 13)
- The communicating method set forth in any one of supplementary notes 9 to 12, wherein each controller refers to identification information incorporated in the retrieval packet transmitted to the controller through the interface from the node device, and if the identification information is equal to its own identification information, determines the interface of the node device connected to the controller as an end point in the route calculation.
- (Supplementary Note 14)
- The communicating method described in one of the supplementary notes 9 to 13, wherein the controller is physically connected through a cable for a network link connection to the node device.
- (Supplementary Note 15)
- A controller for controlling packet processing of node devices, including:
- a network interface for establishing a connection to one of the node devices via a data transfer link;
- an adjacency discovery section for discovering a boundary node device from the node devices, the boundary node device being located on the boundary with a different network that is controlled by a different controller;
- an identifying condition calculating section calculating identifying conditions (or identifying rules) of packets used to communicate with a controller in the network adjacent thereto;
- a route calculating section that calculates a transfer route having a start point determined as a node device connected to an interface of the controller, through which a packet is outputted to an interface of the boundary node device, the interface being connected to a different network outside its own network, and a transfer route having a start point determined as the boundary node device, through which a packet is outputted to an interface of the node device connected to the interface of the controller; and
- a processing rule calculating section that sets the node devices connected to the each controller with processing rules (flow entries) so as to transfer packets complying with the identifying conditions (the identifying rules) on the transfer route.
- (Supplementary Note 16)
- The controller described in the
supplementary note 15, wherein the adjacency discovery section embeds unique identification information of each controller into retrieval packets used to retrieve a connection relation among the node devices inside each network. - (Supplementary Note 17)
- The controller described in the
supplementary note 15, wherein the identifying condition calculating section of the controller instructs the boundary node device to output a packet which incorporates identifying conditions (identifying rules) from the interface connected to the different network. - (Supplementary Note 18)
- The controller described in the
supplementary note 15, wherein the identifying condition calculating section incorporates identifying conditions used in the communication between the controllers into a retrieval packet used to retrieve a connection relation among the node devices inside each network. - (Supplementary Note 19)
- The controller described in one of the supplementary notes 15 to 18, wherein the route calculation section refers to identification information incorporated in the retrieval packet transmitted to the controller through an interface by a node device, and, if it is equal to identification information indicative of its own controller, determines the interface of the node device connected to the controller as an end point in the route calculation.
- (Supplementary Note 20)
- The controller described in one of the supplementary notes 15 to 20, wherein the network interface is physically connected through a network link connection cable.
- It should be noted that an information processing apparatus may be used as the above-described controller. Also, a communicating apparatus may be used as the above-described node device.
- While the invention has been particularly shown and described with reference to exemplary embodiments thereof, the invention is not limited to these examples. It will be understood by those skilled in the art that various changes in form and details any be made therein without departing from the spirit and scope of the present invention as defined by the claims.
- This application is based upon claims the benefit of priority from Japanese patent application No. 2012-068286, filed on Mar. 23, 2012, the disclosure of which is incorporated herein in its entirety by reference.
Claims (19)
1-26. (canceled)
27. A control apparatus configured to control a plurality of forwarding nodes in a first network, the control apparatus comprising:
a memory configured to store a topology data including the forwarding nodes in the first network; and
a processor configured to execute program instructions to:
receive, from one of the forwarding nodes connected to an edge forwarding node of a second network, a retrieval packet including an identifier which represents a second control apparatus, wherein the second control apparatus controls the edge forwarding node of the second network;
identify, based on the identifier, boundary information defining a boundary between the first network and the second network; and
store the boundary information with the topology data.
28. The control apparatus according to claim 27 , wherein the processor is configured to execute program instructions to identify the boundary information when the identifier does not represent the control apparatus.
29. The control apparatus according to claim 27 , wherein the processor is configured to execute program instructions to:
identify, based on the boundary information and the topology data, a forwarding instruction to forward a data packet; and
send the forwarding instruction to the forwarding node connected to an edge forwarding node of a second network.
30. The control apparatus according to claim 29 , wherein the forwarding instruction includes a matching rule and an action for processing the packet corresponding to the matching rule.
31. The control apparatus according to claim 27 , wherein the processor is configured to execute program instructions to send a second retrieval packet including a second identifier which represents the control apparatus.
32. The control apparatus according to claim 27 , wherein the retrieval packet is Link Layer Discovery Protocol packet.
33. A network system comprising:
a plurality of the forwarding nodes; and
a control apparatus configured to control the forwarding nodes in a first network, wherein the control apparatus comprises:
receive, from one of the forwarding nodes connected to an edge forwarding node of a second network, a retrieval packet including an identifier which represents a second control apparatus, wherein the second control apparatus controls the edge forwarding node of the second network;
identify, based on the identifier, boundary information defining a boundary between the first network and the second network; and
store the boundary information with the topology data.
34. The network system according to claim 33 , wherein the processor is configured to execute program instructions to identify the boundary information when the identifier does not represent the control apparatus.
35. The network system according to claim 33 , wherein the processor is configured to execute program instructions to:
identify, based on the boundary information and the topology data, a forwarding instruction to forward a data packet; and
send the forwarding instruction to the forwarding node connected to an edge forwarding node of a second network.
36. The network system according to claim 35 , wherein the forwarding instruction includes a matching rule and an action for processing the packet corresponding to the matching rule.
37. The network system according to claim 33 , wherein the processor is configured to execute program instructions to send a second retrieval packet including a second identifier which represents the control apparatus.
38. The network system according to claim 33 , wherein the retrieval packet is Link Layer Discovery Protocol packet.
39. A network control method for a network including a plurality of forwarding nodes, the network control method comprising:
receiving, from one of the forwarding nodes connected to an edge forwarding node of a second network, a retrieval packet including an identifier which represents a second control apparatus, wherein the second control apparatus controls the edge forwarding node of the second network;
identifying, based on the identifier, boundary information defining a boundary between the first network and the second network; and
storing the boundary information with a topology data.
40. The network control method according to claim 39 , further comprising of identifying the boundary information when the identifier does not represent the control apparatus.
41. The network control method according to claim 39 , further comprising:
identifying, based on the boundary information and the topology data, a forwarding instruction to forward a data packet; and
sending the forwarding instruction to the forwarding node connected to an edge forwarding node of a second network.
42. The network control method according to claim 41 , wherein the forwarding instruction includes a matching rule and an action for processing the packet corresponding to the matching rule.
43. The network control method according to claim 39 , further comprising of sending a second retrieval packet including a second identifier which represents the control apparatus.
44. The network control method according to claim 39 , wherein the retrieval packet is Link Layer Discovery Protocol packet.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/338,917 US20170111231A1 (en) | 2012-03-23 | 2016-10-31 | System and method for communication |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012068286 | 2012-03-23 | ||
JP2012-068286 | 2012-03-23 | ||
PCT/JP2013/001913 WO2013140803A1 (en) | 2012-03-23 | 2013-03-21 | System and method for communication |
US201414387319A | 2014-09-23 | 2014-09-23 | |
US15/338,917 US20170111231A1 (en) | 2012-03-23 | 2016-10-31 | System and method for communication |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/387,319 Continuation US9515868B2 (en) | 2012-03-23 | 2013-03-21 | System and method for communication |
PCT/JP2013/001913 Continuation WO2013140803A1 (en) | 2012-03-23 | 2013-03-21 | System and method for communication |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170111231A1 true US20170111231A1 (en) | 2017-04-20 |
Family
ID=49222277
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/387,319 Expired - Fee Related US9515868B2 (en) | 2012-03-23 | 2013-03-21 | System and method for communication |
US15/338,917 Abandoned US20170111231A1 (en) | 2012-03-23 | 2016-10-31 | System and method for communication |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/387,319 Expired - Fee Related US9515868B2 (en) | 2012-03-23 | 2013-03-21 | System and method for communication |
Country Status (5)
Country | Link |
---|---|
US (2) | US9515868B2 (en) |
EP (1) | EP2829026A4 (en) |
JP (1) | JP2015511074A (en) |
IN (1) | IN2014DN07935A (en) |
WO (1) | WO2013140803A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170104690A1 (en) * | 2014-06-26 | 2017-04-13 | Huawei Technologies Co., Ltd. | Quality of service control method and device for software-defined networking |
US10397091B1 (en) * | 2018-09-17 | 2019-08-27 | Cisco Technology, Inc. | Optical safety and connections discovery |
US10587510B2 (en) * | 2017-12-01 | 2020-03-10 | International Business Machines Corporation | Network function virtualization using tagged access ports |
US11431556B2 (en) * | 2020-03-06 | 2022-08-30 | Beijing University Of Posts And Telecommunications | Cross-layer network fault recovery system and method based on configuration migration |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013207760B4 (en) * | 2013-04-29 | 2024-02-22 | Phoenix Contact Gmbh & Co. Kg | Electrical interface module |
US9785356B2 (en) * | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US10063638B2 (en) | 2013-06-26 | 2018-08-28 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9785355B2 (en) * | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US10212083B2 (en) * | 2013-10-30 | 2019-02-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Openflow data channel and control channel separation |
ES2660622T3 (en) * | 2013-11-29 | 2018-03-23 | Huawei Technologies Co., Ltd. | Link discovery method, system and device |
WO2015081428A1 (en) * | 2013-12-03 | 2015-06-11 | Rockstar Consortium Us Lp | Software- defined networking discovery protocol for openflow enabled switches |
DE102014206387A1 (en) | 2014-04-03 | 2015-10-08 | Phoenix Contact Gmbh & Co. Kg | Electrical interface module |
US9491031B2 (en) * | 2014-05-06 | 2016-11-08 | At&T Intellectual Property I, L.P. | Devices, methods, and computer readable storage devices for collecting information and sharing information associated with session flows between communication devices and servers |
US9870476B2 (en) | 2014-09-23 | 2018-01-16 | Accenture Global Services Limited | Industrial security agent platform |
KR20160099890A (en) * | 2015-02-13 | 2016-08-23 | 한국전자통신연구원 | Method of link discovery between domains and apparatus thereof |
JP6477864B2 (en) * | 2015-03-31 | 2019-03-06 | 日本電気株式会社 | Control device, control method and program |
EP3319272B1 (en) | 2015-07-22 | 2019-09-04 | Huawei Technologies Co., Ltd. | Communication method, device and system based on data link layer |
CN106789387B (en) * | 2016-03-16 | 2020-10-13 | 新华三技术有限公司 | Link detection method and device for SDN |
CN114095452A (en) * | 2016-07-07 | 2022-02-25 | 华为技术有限公司 | FlowSpec message processing method, device and system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
CN110198337B (en) * | 2019-03-04 | 2021-10-08 | 腾讯科技(深圳)有限公司 | Network load balancing method and device, computer readable medium and electronic equipment |
US11271874B2 (en) * | 2020-02-05 | 2022-03-08 | Mellanox Technologies, Ltd. | Network adapter with time-aware packet-processing pipeline |
US11476928B2 (en) | 2020-03-18 | 2022-10-18 | Mellanox Technologies, Ltd. | TDMA networking using commodity NIC/switch |
US11336383B2 (en) | 2020-06-24 | 2022-05-17 | Mellanox Technologies, Ltd. | Packet scheduling system with desired physical transmission time for packets |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11388263B2 (en) | 2020-10-11 | 2022-07-12 | Mellanox Technologies, Ltd. | Packet transmission using scheduled prefetching |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US11711158B2 (en) | 2021-06-28 | 2023-07-25 | Mellanox Technologies, Ltd. | Accurate time-stamping of outbound packets |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
US12255734B2 (en) | 2022-10-26 | 2025-03-18 | Mellanox Technologies, Ltd | Clock synchronization NIC offload |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011083780A1 (en) * | 2010-01-05 | 2011-07-14 | 日本電気株式会社 | Communication system, control apparatus, processing rule setting method, packet transmitting method and program |
EP2530887B1 (en) | 2010-01-27 | 2014-08-13 | Nippon Telegraph And Telephone Corporation | Virtual network control method and system based on fluctuations |
JP5429989B2 (en) | 2010-01-27 | 2014-02-26 | 日本電信電話株式会社 | Virtual network control method and virtual network control apparatus |
JP5438624B2 (en) | 2010-08-03 | 2014-03-12 | 日本電信電話株式会社 | Communication system, control server, flow control method and program thereof |
JP2012049674A (en) * | 2010-08-25 | 2012-03-08 | Nec Corp | Communication apparatus, communication system, communication method and communication program |
US8873398B2 (en) * | 2011-05-23 | 2014-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing EPC in a cloud computer with openflow data plane |
US8964563B2 (en) * | 2011-07-08 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Controller driven OAM for OpenFlow |
US8560647B2 (en) * | 2011-07-19 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Controller placement for split architecture networks |
US8971334B2 (en) * | 2011-08-02 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Packet broadcast mechanism in a split architecture network |
US9167501B2 (en) * | 2011-08-29 | 2015-10-20 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing a 3G packet core in a cloud computer with openflow data and control planes |
-
2013
- 2013-03-21 US US14/387,319 patent/US9515868B2/en not_active Expired - Fee Related
- 2013-03-21 JP JP2014545998A patent/JP2015511074A/en active Pending
- 2013-03-21 EP EP13764734.3A patent/EP2829026A4/en not_active Withdrawn
- 2013-03-21 IN IN7935DEN2014 patent/IN2014DN07935A/en unknown
- 2013-03-21 WO PCT/JP2013/001913 patent/WO2013140803A1/en active Application Filing
-
2016
- 2016-10-31 US US15/338,917 patent/US20170111231A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170104690A1 (en) * | 2014-06-26 | 2017-04-13 | Huawei Technologies Co., Ltd. | Quality of service control method and device for software-defined networking |
US10313266B2 (en) * | 2014-06-26 | 2019-06-04 | Huawei Technologies Co., Ltd. | Quality of service control method and device for software-defined networking |
US20190268282A1 (en) * | 2014-06-26 | 2019-08-29 | Huawei Technologies Co., Ltd. | Quality Of Service Control Method And Device For Software-Defined Networking |
US10848437B2 (en) * | 2014-06-26 | 2020-11-24 | Huawei Technologies Co., Ltd. | Quality of service control method and device for software-defined networking |
US20210119934A1 (en) * | 2014-06-26 | 2021-04-22 | Huawei Technologies Co., Ltd. | Quality of service control method and device for software-defined networking |
US10587510B2 (en) * | 2017-12-01 | 2020-03-10 | International Business Machines Corporation | Network function virtualization using tagged access ports |
US10397091B1 (en) * | 2018-09-17 | 2019-08-27 | Cisco Technology, Inc. | Optical safety and connections discovery |
US11431556B2 (en) * | 2020-03-06 | 2022-08-30 | Beijing University Of Posts And Telecommunications | Cross-layer network fault recovery system and method based on configuration migration |
Also Published As
Publication number | Publication date |
---|---|
JP2015511074A (en) | 2015-04-13 |
EP2829026A4 (en) | 2015-11-18 |
EP2829026A1 (en) | 2015-01-28 |
US20150055508A1 (en) | 2015-02-26 |
WO2013140803A1 (en) | 2013-09-26 |
IN2014DN07935A (en) | 2015-05-01 |
US9515868B2 (en) | 2016-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9515868B2 (en) | System and method for communication | |
US9215175B2 (en) | Computer system including controller and plurality of switches and communication method in computer system | |
US10541920B2 (en) | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow | |
US9467363B2 (en) | Network system and method of managing topology | |
JP5874726B2 (en) | Communication control system, control server, transfer node, communication control method, and communication control program | |
US11190435B2 (en) | Control apparatus, communication system, tunnel endpoint control method, and program | |
US9843496B2 (en) | Communication system, control apparatus, and network topology management method | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
US20120170477A1 (en) | Computer, communication system, network connection switching method, and program | |
KR20130125826A (en) | Network system and method for acquiring vlan tag information | |
US20170118066A1 (en) | Data plane to forward traffic based on communications from a software defined (sdn) controller during a control plane failure | |
US20130195110A1 (en) | Communication system, control device, method for setting processing rules, and program | |
US10069648B2 (en) | Communication system, control apparatus, communication control method and program | |
WO2012081721A1 (en) | Communication system, node, packet transfer method and program | |
US10523629B2 (en) | Control apparatus, communication system, communication method, and program | |
US20150256455A1 (en) | Communication system, path information exchange apparatus, communication node, forwarding method for path information and program | |
US10742539B2 (en) | Control apparatus, communication system, relay apparatus control method, and program | |
US10305811B2 (en) | Control apparatus, communication system, communication node control method, and program | |
JP2013115733A (en) | Network system and network control method | |
WO2013140796A1 (en) | Communication system, control device, communication method and program | |
US20170317921A1 (en) | Control apparatus, communication system, and relay apparatus control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: EXPRESSLY ABANDONED -- DURING EXAMINATION |