The present invention is based upon Japanese Patent Application No. 2012-199281, filed on Sep. 11, 2012, the disclosure of which is incorporated herein in its entirety by reference.
The present invention relates to a control device, a communication system, a communication method and a program and, in particular, to a control device, a communication system, a communication method and a program that control switches under control.
A technology called OpenFlow has been recently proposed (see NPLs 1 and 2). In OpenFlow, communication is regarded as an end-to-end flow, and routing control, failure recovery, load balancing and optimization are performed in flow granularity. An OpenFlow switch defined in NPL 2 includes a secure channel for communication with an OpenFlow controller and operates according to a flow table for which an order to add or modify is appropriately provided from the OpenFlow controller. In the flow table, for each flow, sets of match condition (i.e. Match Fields) to be compared with a packet header, flow statistical information (i.e. Counters), and instructions (i.e. Instructions) in which actions are defined (see “4.1 Flow Table” in NPL 2).
For example, when the OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a match field that matches header information of the received packet (see “4.3 Match Fields” in NPL 2). When an entry that matches the received packet is found as a result of searching, the OpenFlow switch updates the flow statistical information (i.e. Counters) and executes processing content (such as packet transmission from a specified port, flooding or dropping of the process) described in the instruction field of the entry on the received packet. When an entry that matches the received packet is not found as a result of searching, the OpenFlow switch sends a request of entry setting, i.e. a transmission request for control information (i.e. a Packet-In message) for processing the received packet to the OpenFlow controller through a secure channel. The OpenFlow switch receives a flow entry in which processing content is specified, and updates the flow table. In this way, the OpenFlow switch performs packet transmission by using an entry in the flow table as control information.
NPL 1: Nick McKeown and seven others, “OpenFlow: Enabling Innovation in Campus Network”, [online], (retrieved on Jun. 21, 2012), Internet <URL:http://www.openflow.org/documents/openflow-wp-latest.pdf>
“OpenFlow Switch Specification” Version 1.1.0 Implemented (Wire Protocol 0x02), [online], (retrieved on Jun. 21, 2012), Internet <URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf>
The following analysis is given by the present invention. As described above, a switch such as the OpenFlow switch transmits a transmission request for control information when the switch does not hold the control information (which is equivalent to the “entry” described above) that matches a received packet. There is also a case in which the switch performs an operation of dropping an unknown packet by default and sets an entry that causes transmission of a transmission request for control information only for a packet having a certain feature.
Accordingly, when a particular switch receives a large number of packets, a large number of transmission requests for control information may be transmitted to the controller. As a result, load on the controller increases, which may result in a problem such as delay in replying to transmission requests for control information that are issued from other switches.
An object of the present invention is to provide a control device, a communication system, a communication method and a program that are capable of reducing the load on a control device, such as the controller described above, that responds to a transmission request for control information from a switch.
According to a first aspect, a control device is provided. A control device including: a control information management unit which manages control information including a match field and used for causing a packet which matches with the match field to be processed; a transmission request storage unit which stores uncontrolled transmission requests in transmission requests for control information for packets received by a switch under the control from the switch; and a request processing unit which selects a piece of control information having a looser (wider) match field from among pieces of control information managed by the control information management unit, selects an unprocessed transmission requests for control information which matches the selected piece of control information having a looser (wider) match field in unprocessed transmission requests for control information stored in the transmission request storage unit, and replies control information with the looser (wider) match field to the switch transmitting the unprocessed transmission requests for the control information.
According to a second aspect, a communication system is provided. The control apparatus includes: the communication system has a control device including; a control information management unit which manages control information including a match field and used for causing a packet which matches with the match field to be processed, a transmission request storage unit which stores uncontrolled transmission requests in transmission requests for control information for packets received by a switch under the control from the switch and a request processing unit which selects a piece of control information having a looser (wider) match field from among pieces of control information managed by the control information management unit, selects an unprocessed transmission requests for control information which matches the selected piece of control information having a looser (wider) match field in unprocessed transmission requests for control information stored in the transmission request storage unit, and replies control information with the looser (wider) match field to the switch transmitting the unprocessed transmission requests for the control information; and a switch which transmits the transmission request for the control information to the control device.
According to a third aspect, a communication method is provided. The program includes: by a control device including a control information management unit which manages control information including a match field and used for causing a packet which matches with the match field to be processed,
a step of storing, in a transmission request storage unit, unprocessed transmission requests in transmission requests for the control information to process packets received from a switch which is controlled by the control device; and
a step of selecting a piece of control information having a looser (wider) match field from among pieces of control information managed by the control information management unit, selects an unprocessed transmission requests for control information which matches the selected piece of control information having a looser (wider) match field in unprocessed transmission requests for control information stored in the transmission request storage unit, and replies control information with the looser (wider) match field to the switch transmitting the unprocessed transmission requests for the control information.
According to a fourth aspect, a program is provided. The program makes a computer, which realizes a control device including a control information management unit which manages control information including a match field and used for causing a packet which matches with the match field to be processed, execute:
a process that stores uncontrolled transmission requests in transmission requests for control information for packets received by a switch under the control from the switch; and
a process that selects a piece of control information having a looser (wider) match field from among pieces of control information managed by the control information management unit, selects an unprocessed transmission requests for control information which matches the selected piece of control information having a looser (wider) match field in unprocessed transmission requests for control information stored in the transmission request storage unit, and replies control information with the looser (wider) match field to the switch transmitting the unprocessed transmission requests for the control information.
According to the present invention, it is possible to reduce load on a control device that responds to a transmission request to transmit control information from switches can be reduced.
First, an overview of one exemplary embodiment of the present invention will be described with reference to drawings. Note that reference signs assigned to elements in this overview are only for convenience in order to provide clear understanding and are not intended to limit the present invention to aspects illustrated in the drawings.
The present invention can be realized by a control device (20A in
For example, as shown in
According to another exemplary embodiment, the present invention is able to be implemented by a control device 20 that controls a switch 10 as illustrated in
For example, when the control device 20 receives a transmission request for control information for a packet with a source IP address of 10.56.0.1 as illustrated in
By replying with control information with a looser match field, i.e. a wider match range in this way, when receiving another packet in the switch 10 for which the control information is set, it is probable to match the control information, and therefore there is little probability that a transmission request for control information is issued. Consequently, the load on the control device 20 is able to be reduced. In addition, as a secondary effect, it is possible to reduce load on the switch 10 because it is not necessary to transmit queries to the control device 20 at the switch 10.
[First exemplary embodiment] Next, a first exemplary embodiment of the present invention will be described in detail with reference to drawings.
The switches 10-1-10-3 are equivalent to the OpenFlow switches in NPLs 1 and 2. When holding no flow entry having a match field which matches a received packet or when a flow entry having a match field which matches a received packet orders a notification to the control device 20, the switches 10-1-10-3 transmit, to the control device 20, a message (hereinafter referred to as a “Packet-In message”) to request the control device 20 to send a flow entry.
Flow entries generated beforehand based on access policies of terminal users or the like are stored in the control information management unit 21 of the control device 20. The flow entries stored in the control information management unit 21 are sorted in the state where the flow entries with the widest match field are listed first. By sorting flow entries in this way, searching a flow entry for a packet requested in a Packet-In message is speeded up. In this exemplary embodiment, it is assumed that flow entries are sorted so that an entry whose condition for a source IP address used as the match field is looser, i.e. an entry with a wider match range is listed earlier. Specifically, it is assumed that a flow entry that forwards a packet with a source IP address (i.e. srcIP) matching 192.168.1.1/32 to the next hop (i.e. specified port) is stored next to a flow entry that forwards a packet with a source IP address (i.e. srcIP) matching 192.168.1.x/24 to the next hop (i.e. specified port) as illustrated in
When receiving a Packet-In message from switches 10-1-10-3, the request processing unit 22 of the control device 20 searches the control information management unit 21 for a flow entry having a match field that matches a packet specified in the Packet-In message. The request processing unit 22 of the control device 20 then transmits the flow entry found as a result of searching to the switch 10-1. In this exemplary embodiment, note that at this time point, the request processing unit 22 of the control device 20 transmits to the switches 10-2 and 10-3 a flow entry having the same match field and directing each of the switches 10-2 and 10-3 to forward the packet to the next switch.
Note that the control device as described above is able to be implemented also by adding the functions equivalent to the control information management unit 21 and the request processing unit 22 to any of the OpenFlow controllers in NPLs 1 and 2.
The request processing unit 22 of the control device 20 illustrated in
In this exemplary embodiment, it is also assumed that two terminals 31, 32 are connected with the switch 10-1 disposed at an end of the network. It is also assumed in the following description that the IP address of the terminal 31 is 192.168.1.1 and the IP address of the terminal 32 is 192.168.1.2.
An operation of this exemplary embodiment will now be described in detail with reference to drawings.
Referring to
The switch 10-1, when receiving the packet with IP address 192.168.1.1 as the source IP address, searches for a flow entry having a match field that matches the packet. However, the flow entry is not set at this time point. Accordingly, the switch 10-1 sends a Packet-In message containing the packet or packet information extracted from the packet to the control device 20 ((2) of
When receiving the Packet-In message, the request processing unit 22 of the control device 20 searches the control information management unit 21 for a flow entry having a match field that matches the packet specified in the Packet-In message. Since flow entries are sorted beforehand so that the entry with the looser match field, i.e. the entry having the wider match range is listed earlier in this exemplary embodiment, a flow entry that forwards a packet matching 192.168.1.x/24 to the next hop (i.e. specified port) is the flow entry to be forward to the switch.
The control device 20 then transmits the flow entry having the source IP address=192.168.1.x/24 as a match field to the switch 10-1. The control device 20 also sends to each of the switches 10-2, 10-3 a flow entry having the same match field and directing the switch to forward the packet to the next switch ((3) of
As described above, once the flow entry having a wider match field is set, when the terminal 32 initiates communication and transmits a packet ((4) of
When the terminal 32 initiates communication as in the first exemplary embodiment described above and sends a packet with a source IP address of 192.168.1.2, a switch 10-1 transmits to the control device 20 a Packet-In message to request to set a flow entry for processing the packet from the terminal 32 because the switch 10-1 received the packet that does not match the existing flow entries. The control device 20 sends to switches 10-1-10-3 a flow entry to forward a packet that matches 192.168.1.x/24 to the next hop (i.e. specified port) ((4) to (6) of
According to the present exemplary embodiment described above, the load on a control device that responds to Packet-In messages from switches is able to be reduced. This is because of a configuration in which a flow entry with a wider match field in a plurality of flow entries is set earlier.
Note that while an operation in which a flow entry for forwarding a packet is transmitted as control information is described in the exemplary embodiment described above, a flow entry that causes a switch to drop a packet may be transmitted.
Furthermore, while only a source IP address is used as a match field in the example of the exemplary embodiment described above, a plurality of fields may be used as the match field.
When only a condition for a lower-level protocol (i.e. layer) is specified as a match field, the comparison value may be calculated by considering a condition for a higher-level protocol (i.e. layer) as “any” (i.e. a wildcard). For example, when only designation of IPv4 is specified for protocol (i.e. layer) of an Ethernet (registered trademark) frame, the fields for IP address and TCP/UDP, which are at a higher level than IPv4, are considered as “any” and there are the following patterns: IP source addresses (232 patterns), IP destination addresses (232 patterns), TCP/UDP source ports (216 patterns), and TCP/UDP destination ports (216 patterns). In this case, the comparison value is able to be treated as 296.
While the control device 20 transmits control information that widely matches in response to a Packet-In in the example described above, the control device 20 may sort the control information and may select and transmit a flow entry that widely matches to the switch 10 also in a case where the control device 20 proactively transmits the control information.
Next, a second exemplary embodiment, in which the control device 20 of the first exemplary embodiment is modified, of the present invention will be described in detail with reference to drawings.
When, for example, a Packet-In message is received from another switch while the request processing unit 22A is processing another Packet-In message, a pending Packet-IP message that is to be processed is stored in the transmission request storage unit 23.
When an unprocessed Packet-In message is stored in the transmission request storage unit 23, the request processing unit 22A retrieves the unprocessed Packet-In message from the transmission request storage unit 23, searches for a flow entry having a looser match field, i.e. a match field whose wider match range is wider, and transmits the flow entry to the switch that transmitted the Packet-In message and to other switches on the path, as the first exemplary embodiment described above.
When two or more unprocessed Packet-In messages are stored in the transmission request storage unit 23, the request processing unit 22A performs the following operation.
In this way, when unprocessed Packet-In messages are accumulated, occurrence of additional Packet-In messages can be suppressed by processing first the Packet-In message for which the loosest match field, i.e. the match field whose match range is the widest is able to be set.
While exemplary embodiments of the present invention have been described, the present invention is not limited to the exemplary embodiments described above. Further modifications, substitutions, and adjustments can be made without departing from the basic technical concepts of the present invention. For example, the network topology and the numbers of first and second switches used in the exemplary embodiments described above are illustrative only and there is no limitation on the numbers.
While the request processing unit 22A of the control device 20 selects a flow entry for which a looser match field, i.e. a match field whose match range is wider is able to be set in the description of the second exemplary embodiment described above, this function may be omitted. In that case, a structure specialized for suppressing a generation of a Packet-In message is realized by first processing a Packet-In message for which a looser match field, i.e. a match field whose match range is wider is able to be set when there are a plurality of unprocessed Packet-In messages.
While only one transmission request storage unit 23 is provided in the above description, a plurality of transmission request storage units 23 may be provided. For example, when one control device 20B is connected with a plurality of switches 10-1-10N as illustrated in
In the structure illustrated in
The structure illustrated in
While the number X of generation requests processed at a time is the same among the transmission request storage units 23-1-23-N in the foregoing description, the number X may vary for each of the transmission request storage units. In the case of this operation, it is possible to introduce priority degrees in such a way as to increase, for example, the number of transmission requests from a main switch to be processed. Alternatively, priorities may be assigned to each of the transmission request storage units by taking into account locations of the switches or frequency of packet receptions at the switches.
Note that while switches 10-1-10-N and the transmission request storage units 23-1-23-N are in a one-to-one relationship in the example of
Note that disclosed content of each of Non Patent Literatures described above are incorporated herein by reference. Within a framework of the entire disclosure of the present invention (including claims) and on the basis of the basic technical concepts of the present invention, the exemplary embodiments and examples can be changed and adjusted. Furthermore, within the framework of the claims of the present invention, various combinations and selections of various disclosed elements (including each element of each of the claims, each element of each of the exemplary embodiments and examples and the elements of the drawings) are possible. In other words, obviously, the present invention includes various variations and modifications that those skilled in the art would comprehend according to the entire disclosure including the claims and the technical concepts. In particular, it should be understood that an arbitral value and a smaller range included in ranges of numerical values described herein are described explicitly even if they are not particularly described explicitly.
Number | Date | Country | Kind |
---|---|---|---|
2012-199281 | Sep 2012 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2013/074343 | 9/10/2013 | WO | 00 |