The present invention is based upon and claims the benefit of the priority of Japanese patent application No. 2012-165451, filed on Jul. 26, 2012, the disclosure of which is incorporated herein in its entirety by reference thereto.
The present invention relates to a control apparatus, a communication system, a communication method, and a program. In particular, it relates to a control apparatus controlling control target switches in a centralized manner, a communication system, a communication method, and a program.
In recent years, a technique referred to as OpenFlow has been proposed (see Non-Patent Literatures 1 and 2). OpenFlow recognizes communications as end-to-end flows and performs path control, failure recovery, load balancing, and optimization on a per-flow basis. Each OpenFlow switch according to Non-Patent Literature 2 has a secure channel for communication with an OpenFlow controller and operates according to a flow table suitably added or rewritten by the OpenFlow controller. In the flow table, a set of the following three is defined for each flow: matching conditions (Match Fields) against which a packet header is matched; flow statistical information (Counters); and Instructions that define a processing content(s) (see section 4.1 “Flow Table” in Non-Patent Literature 2).
For example, when an OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a matching condition (see section 4.3 “Match Fields” in Non-Patent Literature 2) that matches header information of the received packet. If, as a result of the search, the OpenFlow switch finds an entry matching the received packet, the OpenFlow switch updates the flow statistical information (Counters) and processes the received packet on the basis of a processing content(s) (packet transmission from a specified port, flooding, dropping, etc.) written in the Instructions field of the entry. If, as a result of the search, the OpenFlow switch does not find an entry matching the received packet, the OpenFlow switch transmits an entry setting request to the OpenFlow controller via the secure channel. Namely, the OpenFlow switch requests the OpenFlow controller to transmit control information for processing the received packet (Packet-In message). The OpenFlow switch receives a flow entry defining a processing content(s) and updates the flow table. In this way, by using an entry stored in the flow table as control information, the OpenFlow switch performs packet forwarding.
In addition, Patent Literature 1 discloses a method for reducing load on a path control apparatus that corresponds to the OpenFlow controller by setting a different time-out value in a flow entry as described above for each section of a packet communication path.
Hereinafter, “OpenFlow switches” in Non-Patent Literatures 1 and 2 and apparatuses such as “flow switches” in Patent Literature 1 that are controlled in a centralized manner by a control apparatus will collectively be referred to as “relay apparatuses.” Likewise, “OpenFlow controller” in Non-Patent Literatures 1 and 2 and an apparatus such as “path control apparatus” in Patent Literature 1 that controls switches in a centralized manner will collectively be referred to as “control apparatus.”
The following analysis has been given by the present inventors. As disclosed in Non-Patent Literatures 1 and 2 and Patent Literature 1, if a relay apparatus receives a packet and the packet does not match any flow entry stored in the relay apparatus, the relay apparatus transmits a flow entry setting request to the control apparatus in order to process this packet. If a large number of packets, packets such as broadcast packets or multicast packets in particular, flow into a relay apparatus, not only this relay apparatus but also other relay apparatuses transmit a large number of flow entry setting requests to the control apparatus. As a result, network load between the relay apparatuses and the control apparatus and processing load of the control apparatus that responds to these flow entry setting requests are increased, counted as a problem.
An object of the present invention is to provide a control apparatus, a communication system, a communication method, and a program capable of reducing, even when broadcasting is performed in the above centralized-control-type network, network load between relay apparatuses and a control apparatus and processing load of the control apparatus.
According to a first aspect, there is provided a control apparatus, comprising: a topology acquisition unit that acquires a topology of a network including a relay apparatus(es) to be controlled; a broadcast path search unit that calculates a broadcast path with an arbitrary external node used as a start point based on the acquired network topology and information on an external node(s) connected to the network; a control command generation unit that generates control information for causing a relay apparatus(es) on the calculated broadcast path to perform packet forwarding along the broadcast path; and a communication unit that sets the generated control information in the relay apparatus(es) on the broadcast path.
According to a second aspect, there is provided a communication system, comprising: a control apparatus; and a relay apparatus that processes a packet(s) based on control information set by the control apparatus. The control apparatus comprises: a topology acquisition unit that acquires a topology of a network including a relay apparatus(es) to be controlled; a broadcast path search unit that calculates a broadcast path with an arbitrary external node used as a start point based on the acquired network topology and information on external node(s) connected to the network; a control command generation unit that generates control information for causing a relay apparatus(es) on the calculated broadcast path to perform packet forwarding along the broadcast path; and a communication unit that sets the generated control information in the relay apparatus(es) on the broadcast path.
According to a third aspect, there is provided a communication method, comprising: by a control apparatus for controlling a relay apparatus(es), acquiring a topology of a network including the relay apparatus(es); calculating a broadcast path with an arbitrary external node used as a start point based on the acquired network topology and information on an external node(s) connected to the network; generating control information for causing a relay apparatus(es) on the calculated broadcast path to perform packet forwarding along the broadcast path; and setting the generated control information in the relay apparatus(es) on the broadcast path.
According to a fourth aspect, there is provided a program, causing a computer, mounted on a control apparatus for controlling a relay apparatus(es), to perform: acquiring a topology of a network including a relay apparatus(es); calculating a broadcast path with an arbitrary external node used as a start point based on the acquired network topology and information on an external node(s) connected to the network; generating control information for causing a relay apparatus(es) on the calculated broadcast path to perform packet forwarding along the broadcast path; and setting the generated control information in the relay apparatus(es) on the broadcast path. This program can be recorded in a computer-readable (non-transient) storage medium. Namely, the present invention can be embodied as a computer program product.
According to the present invention, even when broadcasting is performed in a centralized-control-type network, it is possible to reduce network load between relay apparatuses and a control apparatus and processing load of the control apparatus.
First, an outline of an exemplary embodiment of the present invention will be described with reference to the drawings. In the following outline, various components are denoted by reference characters for the sake of convenience. Namely, the following reference characters are merely used as examples to facilitate understanding of the present invention, not to limit the present invention to the illustrated modes.
As illustrated in
For example, when receiving a topology of a network illustrated in
In this way, before a relay apparatus requests the control apparatus to set control information (corresponding to a flow entry as described above), control information is set. Thus, it is possible to reduce network load between the relay apparatuses and the control apparatus represented by dashed lines in
Next, a first exemplary embodiment of the present invention will be described in detail with reference to the drawings.
The relay apparatuses 1101 to 1105 are connected to the control apparatus 200 via control interfaces indicated by dashed lines in
The terminals 1106 and 1107 are connected to the relay apparatus 1101 via data forwarding interfaces indicated by solid lines in
The relay apparatus 1101 is connected to the relay apparatuses 1102 to 1105 via data forwarding interfaces, respectively.
The relay apparatus 1102 is connected to the relay apparatuses 1101 and 1104 via data forwarding interfaces, respectively.
The relay apparatus 1103 is connected to the relay apparatuses 1101 and 1105 via data forwarding interfaces, respectively.
The relay apparatus 1104 is connected to the relay apparatuses 1101, 1102, and 1105 via data forwarding interfaces, respectively.
The relay apparatus 1105 is connected to the relay apparatuses 1101, 1103, and 1104 via data forwarding interfaces, respectively.
OpenFlow switches compliant with the specifications in Non-Patent Literature 2 can be used as these relay apparatuses 1101 to 1105. Apparatuses other than OpenFlow switches may be used. For example, it is possible to use apparatuses that can set packet paths by allowing a user to specify arbitrary packet matching conditions through a CLI (command line interface) via Telnet.
The relay apparatus communication unit 201 establishes control sessions with the relay apparatuses 1101 to 1105 and transmits/receives control commands. As the control commands, control messages of the OpenFlow protocol described in Non-Patent Literature 2 may be used. Alternatively, the relay apparatus communication unit 201 may perform communication through a CLI via Telnet or SNMP (Simple Network Management Protocol), for example.
The topology information acquisition unit 202 acquires a topology of the relay apparatuses 1101 to 1105. The topology can be acquired by acquiring neighboring relay apparatus recognition information of relay apparatuses. LLDP (Link Layer Discovery Protocol) is a typical example of such protocol. In addition, the control apparatus 200 may cause a certain relay apparatus to output a packet including an ID of and a port number of the relay apparatus from a certain port thereof and may receive the packet from an opposite relay apparatus. In this way, the relationship between the relay apparatuses can also be recognized. When transmitting and receiving packets, the control apparatus can use Packet-Out and Packet-In messages described in Non-Patent Literature 2, respectively. Of course, a network administrator may set the topology before starting the system.
The topology information management unit 203 manages the topology information acquired by the topology information acquisition unit 202 and supplies the topology information to the unicast path search unit 204 and the BC path search unit 206.
The unicast path search unit 204 calculates paths formed by the relay apparatuses 1101 to 1105 between arbitrary terminals. The unicast path search unit 204 may calculate a different path for each pair of relay apparatuses connected to terminals or a path tree by using a relay apparatus connected to a terminal as a base or end point. A shortest path tree (Dijkstra's algorithm is a typical example) can be used to calculate a path. Instead of using a single path, a different path may be used per communication. In addition, this calculation may be performed by using each of the relay apparatuses as a base or end point.
The unicast path control command generation unit 205 generates control information transmitted to a relay apparatus(es) on the unicast path calculated by the unicast path search unit 204 and a control command(s) for transmitting the control information. In addition, the unicast path control command generation unit 205 transmits the generated control command(s) to the relay apparatus(es) on the unicast path via the relay apparatus communication unit 201. At least a destination address is set as a matching condition in the unicast control information. As such destination address, an IP (Internet Protocol) address, a MAC (Media Access Control) address, a TCP/UDP (Transmission Control Protocol/User Datagram Protocol) port, or the like can be used. In addition, as this control command, a flow entry setting message in Non-Patent Literature 2 can be used.
The BC path search unit 206 calculates a spanning tree path so that data can be delivered from a relay apparatus connected to a terminal to at least all the other relay apparatuses connected to terminals. A single spanning tree path or a plurality of spanning tree paths may be calculated for a network. If a plurality of paths are calculated, a different spanning tree path may be calculated for each relay apparatus connected to a terminal. As a path calculation method, a method for calculating a minimum spanning tree (Prim's algorithm and Kruskal's algorithm are typical examples) can be used. In this calculation, if a relay apparatus is not connected to a terminal and is an end of a spanning tree, this relay apparatus may be removed. By repeating this operation, unnecessary relay apparatuses among the relay apparatuses connected to terminals may be removed from a forwarding path.
The BC path control command generation unit 207 determines a matching condition for determining packets that are allowed to be forwarded on broadcast delivery paths. Herein, the matching condition specifies that packets to be forwarded have a broadcast address as a destination address. More specifically, the matching condition specifies that a packet is allowed to be transmitted if the first bit (I/G bit) of a destination MAC address of the packet represents 1. In addition, the BC path control command generation unit 207 generates control information that is transmitted to a relay apparatus(es) on the broadcast paths calculated by the BC path search unit 206 and that includes the matching condition and a control command(s) for transmitting the control information.
A priority lower than that set to the control information generated by the unicast path control command generation unit 205 is set to the broadcast control information generated by the BC path control command generation unit 207. In this way, among the packets that do not match any matching condition in the unicast control information, packets satisfying a predetermined condition can be used as broadcast targets. If a user wishes to prevent certain packets from being forwarded on a broadcast delivery path, it is only necessary to set control information for discarding packets having a matching condition for determining such packets.
A relay apparatus located upstream of a unicast path or a broadcast path (for example, a relay apparatus connected to a terminal serving as a start point of a path) may be configured to embed a flag (unicast/BC determination flag) or the like for determining delivery on a unicast path or a broadcast path in an arbitrary header field. In such case, a relay apparatus located downstream of the unicast path or the broadcast path (for example, a relay apparatus connected to a terminal serving as an end point of the path) may be configured to restore the header field. The flag or the like may be written in an IP ToS (Type of Service) field, a VLAN Priority field, or the like.
In addition, instead of writing the flag in the arbitrary field, an arbitrary address in a header field may be degenerated and the flag may be inserted in the degenerated address. More specifically, a destination MAC address may be degenerated and the degenerated MAC address and the flag may be inserted in a destination MAC address. In this case, a relay apparatus located at an exit (for example, a relay apparatus connected to a terminal serving as an end point of a path) may be configured to restore the original address from the degenerated address.
To determine whether a unicast delivery or a broadcast delivery is performed, a different VLAN (Virtual Local Area Network) ID may be allocated. More specifically, a unicast VLAN ID may be converted to a dedicated VLAN ID, a destination MAC address and an ID obtained by degenerating this VLAN ID may be allocated, and this degenerated ID may be set in a destination MAC address field.
By making these changes, it is possible to determine whether a delivery on a unicast path or a delivery on a broadcast path is performed. As a result, unicast packets having unknown destination addresses can be delivered on broadcast delivery paths by using broadcast control information.
In addition, for broadcast packets such as ARP (Address Resolution Protocol) and VRRP (Virtual Router Redundancy Protocol) packets for which the control apparatus 200 needs to perform a learning operation, control information for forwarding these packets is set in the control apparatus 200 as well. In this way, the control apparatus 200 can perform address learning, for example. In such case, it is desirable that determination information be added in an arbitrary field in each of these packets so that completion of broadcasting can be determined.
Each unit (processing means) in the control apparatus 200 illustrated in
Next, an operation according to the present exemplary embodiment will be described in detail with reference to the drawings. Unicast control information can be set by the same method as that described in Patent Literature 1 or the like. Thus, description thereof will be omitted.
First, at a predetermined timing such as after a certain time elapses or when a new relay apparatus is added, the topology information acquisition unit 202 acquires a network topology. The following description will be made assuming that the topology information acquisition unit 202 acquires the topology of the relay apparatuses 1101 to 1105 illustrated in
Next, the BC path search unit 206 calculates broadcast paths on the basis of the topology illustrated in
Next, the BC path control command generation unit 207 generates control information for causing a relay apparatus(es) on the calculated broadcast paths to forward packets on the broadcast paths and transmits the control information to the relay apparatus(es).
The relay apparatus 1101 is connected to two terminals, which are the terminals 1106 and 1107. In such case, in order to broadcast data from a certain terminal to all the other terminals, the BC path control command generation unit 207 transmits control information for forwarding broadcast packets inputted from the terminal 1106 (1107) not only to the relay apparatuses 1102 to 1105 but also to the terminal 1107 (1106) to the relay apparatus 1101.
In addition, the BC path control command generation unit 207 transmits control information for forwarding broadcast packets to the terminal 1108 to the relay apparatus 1105.
In this way, setting the broadcast control information is completed before the control apparatus 200 receives control information transmission requests from the relay apparatuses.
In addition, according to the present exemplary embodiment, broadcast paths calculated as described above can be used for forwarding unicast packets having unknown destinations.
At this point, since the relay apparatus 1105 only stores broadcast control information, the relay apparatus 1105 notifies the control apparatus 200 of reception of the unicast packet, as illustrated in
If the control apparatus 200 has already learned the destination of this unicast packet, the control apparatus 200 calculates a unicast path and generates and transmits control information in accordance with a method as described in Patent Literature 1 or the like.
However, if the destination of this unicast packet is unknown, the control apparatus 200 uses the broadcast delivery paths and transmits this unicast packet to all the terminals, as illustrated in
As described above, according to the present exemplary embodiment, broadcast packet forwarding control information is transmitted in advance to the relay apparatuses 1101 to 1105 constituting the network. As a result, processing for exchanging broadcast packet control information between the relay apparatuses 1101 to 1105 and the control apparatus 200 and processing performed when the control apparatus 200 responds to the control information transmission requests can be reduced.
In addition, according to the present exemplary embodiment, unicast packets having unknown destinations can also be forwarded by using preset broadcast paths. More specifically, to realize necessary forwarding, it is only necessary that the control apparatus 200 cause arbitrary relay apparatuses to rewrite and restore a packet header. In
While an exemplary embodiment of the present invention has thus been described, the present invention is not limited thereto. Further variations, substitutions, or adjustments can be made without departing from the basic technical concept of the present invention. For example, the network configuration, the number of switches, and the number of terminals used in the above exemplary embodiment are merely examples. The present invention is not limited to these numbers.
In addition, the above exemplary embodiment has been described on the basis of broadcast packet forwarding control. However, packets other than broadcast packets can be used as control target packets. For example, the present invention is applicable to forwarding of multicast packets.
The present invention can adopt the following modes.
A control apparatus may be the control apparatus according to the first aspect.
When receiving notification of reception of a unicast packet with an unknown destination from one of the relay apparatus(es) to be controlled, the control apparatus may cause the relay apparatus(es) on the broadcast paths to forward the unicast packet along the broadcast path.
The control apparatus may set control information for causing a relay apparatus located upstream along the broadcast path to insert information identifying the broadcast or unicast in a packet header, and the control apparatus may set control information for causing a relay apparatus(es) located downstream along the broadcast path to restore the packet having the packet header including the information identifying the broadcast or unicast.
The control apparatus may set control information for forwarding to the control apparatus a packet according to a predetermined protocol, for which learning by the control apparatus is necessary, among packets to be broadcasted and perform learning using the forwarded packet.
A communication system may be the communication system according to the second aspect.
A communication method may be the communication method according to the third aspect.
A program may be the program according to the fourth aspect.
The disclosure of each of the above Patent Literature and Non-Patent Literatures is incorporated herein by reference thereto. Modifications and adjustments of the exemplary embodiments and the examples are possible within the scope of the overall disclosure (including the claims) of the present invention and based on the basic technical concept of the present invention. In addition, various combinations and selections of various disclosed elements (including the elements in each of the claims, exemplary embodiments, examples, drawings, etc.) are possible within the scope of the claims of the present invention. Namely, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept. In particular, the present description discloses numerical value ranges. However, even if the description does not particularly disclose arbitrary numerical values or small ranges included in the ranges, these values and ranges should be deemed to have been specifically disclosed.
Number | Date | Country | Kind |
---|---|---|---|
2012-165451 | Jul 2012 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2013/070320 | 7/26/2013 | WO | 00 |