# Patent

## Title
Relay system and switching device for a layer 3 network

## Abstract

When IGMP packets are relayed to a predetermined router (L3SW), first and second L2SWs update their own snooping tables by snooping. Also, the first L2SW acquires a correspondence relation retained in the snooping table of the second L2SW through a control plane and registers it to the snooping table of the first L2SW. Then, when the first L2SW receives a multicast packet whose destination is a multicast group, the first L2SW extracts corresponding IP addresses based on its own snooping table and converts the multicast packet into unicast packets whose destinations are the IP addresses.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
The present application claims priority from Japanese Patent Application No. 2013-265637 filed on Dec. 24, 2013, the content of which is hereby incorporated by reference into this application.
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a relay system and a switching device, for example, a relay system and a switching device which relay a multicast packet.
BACKGROUND OF THE INVENTION
Japanese Patent Application Laid-Open Publication No. 2001-230774 (Patent Document 1) and Japanese Patent Application Laid-Open Publication No. 2004-253975 (Patent Document 2) disclose a method for achieving the multicast communication using unicast packets. Concretely, a packet conversion device on a transmission side converts a multicast packet from a server into a unicast packet and then transmits it to a packet conversion device on a reception side. The packet conversion device on a reception side converts the unicast packet into a multicast packet and then transmits it to a client.
Here, the packet conversion device of the Patent Document 1 appropriately rewrites destination/source IP addresses of a packet and a UDP port number at the time of conversion between the unicast packet and the multicast packet. In order to perform this rewriting, each packet conversion device is configured to retain a variety of information (IP address and UDP port number) before and after the conversion through mutual communications together with predetermined identifiers. Concretely, when a request from a client is received, the packet conversion device on a reception side starts communication to the packet conversion device on a transmission side on the assumption that the packet conversion device on a reception side knows the IP address of the packet conversion device on a transmission side in advance, and each packet conversion device determines the above-described retained information during this communication.
On the other hand, the packet conversion device on a transmission side of the Patent Document 2 converts a multicast packet into a unicast packet by encapsulation in accordance with a reception request from the packet conversion device on a reception side. Concretely, a client notifies the packet conversion device on a reception side of a desired multicast address, and the packet conversion device on a reception side transmits a reception request of a tree ID corresponding to this multicast address to the packet conversion device on a transmission side. Upon reception of this, the packet conversion device on a transmission side performs the encapsulation with using the request source of this reception request as a destination. Note that, when the packet conversion device on a reception side performs a reception request to the packet conversion device on a transmission side, the packet conversion device on a reception side acquires a correspondence relation among the multicast address, the IP address of the packet conversion device on a transmission side and the tree ID through an address management server, and performs the reception request based on this correspondence relation.
SUMMARY OF THE INVENTION
The multicast communication has been widely used for various purposes directed to multimedia contents such as video distribution and a virtual network such as VXLAN (Virtual eXtensible Local Area Network). For example, when it is desired to perform the multicast communication between the distant areas, usually, the carrier network of a telecommunications provider is used. In the carrier network, for example, routing of the multicast packet is performed by using a multicast routing protocol typified by PIM (Protocol Independent Multicast).
However, in the case where a router which does not support the PIM is present in the carrier network or a router in which the PIM does not normally operate for some reason is present in the carrier network, there may occur a case in which the multicast packet is unnecessarily routed over a wide range. Consequently, there is a threat that the network congestion typified by the loop of packet occurs in the carrier network. For the prevention of such a case, the relay of the multicast packet is prohibited in some carrier networks.
In order to achieve the multicast communication even when the carrier network like this is present, for example, the use of the techniques described in the Patent Document 1 and the Patent Document 2 is taken into account. However, in the techniques of the Patent Document 1 and the Patent Document 2, processes required as the preparation for performing the multicast communication are complicated, and there is a possibility that the processing load is increased. Concretely, for example, in both of the techniques described in the Patent Document 1 and the Patent Document 2, prior to the actual multicast communication, it is necessary to perform a communication from a packet conversion device on a reception side to a packet conversion device on a transmission side. A variety of information needs to be acquired during this communication in the technique of the Patent Document 1, and a variety of information needs to be acquired for performing this communication in the technique of the Patent Document 2.
The present invention has been made in view of the problem mentioned above, and one object of the present invention is to provide a relay system and a switching device capable of achieving the multicast communication with a simple mechanism.
The above and other objects and novel characteristics of the present invention will be apparent from the description of the present specification and the accompanying drawings.
The following is a brief description of an outline of the typical embodiment of the invention disclosed in the present application.
A relay system according to the present embodiment includes: a plurality of switching devices; a layer 3 network connecting the plurality of switching devices; and a control plane connected to the plurality of switching device. Each of the plurality of switching devices includes: a snooping unit; a snooping table; a snooping table synchronization unit and a packet conversion unit. When a request packet representing a join request to a multicast group or a leave request from a multicast group is relayed to a predetermined router, the snooping unit acquires a correspondence relation among a port which has received the request packet, a multicast group contained in the request packet and a source IP address contained in the request packet. The snooping table retains or deletes the correspondence relation among the port, the multicast group and the IP address acquired by the snooping unit in accordance with the join request or the leave request. The snooping table synchronization unit acquires a correspondence relation between a multicast group and an IP address retained in the snooping table of each of other switching devices through the control plane and registers the acquired correspondence relation to its own snooping table. When a multicast packet whose destination is a multicast group is received, the packet conversion unit extracts one or plural IP addresses corresponding to the multicast group based on the snooping table and converts the multicast packet into one or plural unicast packets whose destinations are the one or plural IP addresses.
The effects obtained by typical embodiments of the invention disclosed in the present application will be briefly described below. That is, it is possible to achieve the multicast communication with a simple mechanism in a relay system and a switching device.



BRIEF DESCRIPTIONS OF THE DRAWINGS
FIG. 1 is a block diagram showing a schematic configuration example and a schematic operation example of a relay system according to the first embodiment of the present invention;
FIG. 2 is a schematic diagram showing an example of a VXLAN frame format;
FIG. 3 is a block diagram showing the schematic operation example continued from FIG. 1;
FIG. 4 is a block diagram showing a schematic configuration example of a main part of a L2SW (switching device) in the relay system of FIG. 1;
FIG. 5 is a flowchart showing an example of process contents of a snooping process performed by the L2SW (switching device) in the relay system of FIG. 1;
FIG. 6 is a flowchart showing an example of process contents performed by a control plane in the relay system of FIG. 1;
FIG. 7 is a flowchart showing an example of process contents of a snooping table synchronization process performed by the L2SW (switching device) in the relay system of FIG. 1;
FIG. 8 is a flowchart showing an example of process contents of a frame (packet) receiving process performed by the L2SW (switching device) in the relay system of FIG. 1;
FIG. 9 is a block diagram showing a schematic configuration example of a relay system according to the second embodiment of the present invention;
FIG. 10 is a block diagram showing a schematic configuration example different from that of FIG. 9; and
FIG. 11 is a block diagram showing a schematic configuration example and a schematic operation example of a relay system according to the third embodiment of the present invention.



DESCRIPTIONS OF THE PREFERRED EMBODIMENTS
In the embodiments described below, the invention will be described in a plurality of sections or embodiments when required as a matter of convenience. However, these sections or embodiments are not irrelevant to each other unless otherwise stated, and the one relates to the entire or apart of the other as a modification example, details, or a supplementary explanation thereof. Also, in the embodiments described below, when referring to the number of elements (including number of pieces, values, amount, range, and the like), the number of the elements is not limited to a specific number unless otherwise stated or except the case where the number is apparently limited to a specific number in principle, and the number larger or smaller than the specified number is also applicable.
Further, in the embodiments described below, it goes without saying that the components (including element steps) are not always indispensable unless otherwise stated or except the case where the components are apparently indispensable in principle. Similarly, in the embodiments described below, when the shape of the components, positional relation thereof, and the like are mentioned, the substantially approximate and similar shapes and the like are included therein unless otherwise stated or except the case where it is conceivable that they are apparently excluded in principle. The same goes for the numerical value and the range described above.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that components having the same function are denoted by the same reference characters throughout the drawings for describing the embodiments, and the repetitive description thereof will be omitted.
First Embodiment
<<Schematic Configuration of Relay System>>
FIG. 1 is a block diagram showing a schematic configuration example and a schematic operation example of a relay system according to the first embodiment of the present invention. Though not particularly limited, the relay system shown in FIG. 1 is, for example, a relay system of a datacenter to which VXLAN (Virtual eXtensible Local Area Network) is applied. The relay system has a plurality of information processing units including information processing units 11a to 11d, layer 2 switching devices (hereinafter, abbreviated as L2SW) 12a and 12b, layer 3 switching devices (hereinafter, abbreviated as L3SW) 13a and 13b, a layer 3 network (hereinafter, abbreviated as L3 network) 14 and a control plane 15.
Each of the L2SWs 12a and 12b is a switching device to be a main part of this embodiment and has a plurality of ports P[1] to P[n]. The port P[n] of the L2SW 12a is connected to the L3 network 14 through the L3SW 13a, and the port P[n] of the L2SW 12b is connected to the L3 network 14 through the L3SW 13b. More specifically, the L3 network 14 connects the plurality of switching devices (L2SW 12a and L2SW 12b). The control plane 15 is connected to the plurality of switching devices (L2SW 12a and L2SW 12b).
The ports P[1] to P[n−1] of the L2SWs 12a and 12b are connected to the information processing units through communication lines 18. In this example, the ports P[1] and P[n−1] of the L2SW 12a are connected to the information processing units 11a and 11b, respectively, and the ports P[1] and P[n−1] of the L2SW 12b are connected to the information processing units 11c and 11d, respectively. For example, each of the information processing units 11a to 11d is a server device or the like in the same datacenter, and though not particularly limited, the information processing units 11a and 11b are placed in a site A and the information processing units 11c and 11d are placed in a site B distant from the site A. Hereinafter, the L2SWs 12a and 12b are collectively referred to as a L2SW 12 and the information processing units 11a to 11d are collectively referred to as an information processing unit 11.
The information processing unit 11a includes a tunnel end unit EP1 and a plurality of (i) virtual terminals VM[1,1] to VM[1,i] subordinate to the tunnel end unit EP1. Also, the information processing unit 11b includes a tunnel end unit EP2 and a plurality of (i) virtual terminals VM[2,1] to VM[2, i] subordinate to the tunnel end unit EP2. Similarly, the information processing unit 11c includes a tunnel end unit EP3 and a plurality of virtual terminals (only VM[3,1] is shown as a representative) and the information processing unit 11d includes a tunnel end unit EP4 and a plurality of virtual terminals (only VM[4,i] is shown as a representative).
The information processing unit 11 is made up of, for example, a rack-type server device, and the tunnel end unit EP can be implemented on a software basis or by a ToR (Top of Rack) physical switch. Hereinafter, the virtual terminals VM[1,1] to VM[1, i], VM[2,1] to VM[2, i], VM[3,1] and VM[4, i] are collectively referred to as a virtual terminal VM, and the tunnel end units EP1 to EP4 are collectively referred to as a tunnel end unit EP.
<<Schematic Operation of Relay System (Premise)>>
Next, the operation example to be the premise in the relay system of FIG. 1 will be described on the assumption that the IP (Internet Protocol) addresses of the tunnel end units EP1 to EP4 are IPA1 to IPA4, respectively. First, VXLAN will be briefly described. FIG. 2 is a schematic diagram showing an example of a VXLAN frame format. VXLAN is a tunneling protocol capable of establishing the logical L2 network on the L3 network 14 by encapsulating an internal L2 frame 40 by an external header 41. Concretely, each virtual terminal VM is configured to be subordinate to the tunnel end unit EP called VTEP (Virtual Tunnel End Point), and the communication between the virtual terminals VM subordinate to different VTEPs is carried out through the communication between corresponding VTEPs.
For example, the case where the tunnel end unit EP1 (VTEP) receives the internal L2 frame 40 whose destination is the MAC (Media Access Control) address of the virtual terminal VM[4,i] from the subordinate virtual terminal VM[1,1] is assumed. When the tunnel end unit EP1 has already learned the correspondence relation between the MAC address of the virtual terminal VM[4,i] and the IP address IPA4 of the tunnel end unit EP4, the tunnel end unit EP1 encapsulates the received internal L2 frame 40 by the external header 41 and then transmits it to the tunnel end unit EP4 serving as the destination.
Concretely, the external header 41 includes a VXLAN header 42 containing a VXLAN identifier, a UDP (User Datagram Protocol) header 43, an IP header 44 and an Ethernet (registered trademark) header 45. The tunnel end unit EP1 stores its own IP address IPA1 in a source IP address of the IP header 44 and stores the IP address IPA4 of the tunnel end unit EP4 in a destination IP address of the IP header 44, and then transmits the unicast packet to the tunnel end unit EP4.
In this specification, as a matter of convenience, “packet” and “frame” are treated as synonyms unless otherwise stated. For example, the unicast packet transmitted from the tunnel end unit EP1 to the tunnel end unit EP4 as described above is transmitted in a frame format including the Ethernet header 45 in practice as shown in FIG. 2, but “packet” and “frame” at this time are not particularly distinguished in description from each other.
On the other hand, when the tunnel end unit EP1 has not learned the correspondence relation between the MAC address of the virtual terminal VM[4, i] and the IP address IPA4 of the tunnel end unit EP4, the tunnel end unit EP1 performs the flooding by using the IP multicast. Concretely, in the VXLAN, a VXLAN identifier is assigned to each virtual terminal VM, and a broadcast domain is set by the VXLAN identifier and a multicast group is associated for each VXLAN identifier. Consequently, the VTEP can perform the above-described flooding by the multicast communication in the same multicast group.
For example, the case where the virtual terminal VM having the same VXLAN identifier (that is, belonging to the same multicast group GA) as the virtual terminal VM[1,1] in the information processing unit 11a of FIG. 1 is present in the information processing units 11b and 11d of FIG. 1 is assumed. In this case, among the tunnel end units EP1, EP2 and EP4, a delivery path of the multicast group GA is established in advance by using a multicast protocol such as IGMP (Internet Group Management Protocol) and a multicast routing protocol such as PIM.
In this state, when the tunnel end unit EP1 has not learned the correspondence relation between the MAC address of the virtual terminal VM[4, i] and the IP address IPA4 of the tunnel end unit EP4 as described above, the tunnel end unit EP1 stores the IP address corresponding to the multicast group GA in the destination IP address of the IP header 44 and then transmits it. This multicast packet is transferred to the tunnel end units EP2 and EP4 through the delivery path of the multicast group GA established in advance.
The tunnel end unit EP4 removes the external header 41 from the multicast packet and transmits the internal L2 frame 40 to the virtual terminal VM[4,1]. Also, the tunnel end units EP2 and EP4 learn the correspondence relation between the MAC address of the virtual terminal VM[1,1] and the IP address IPA1 of the tunnel end unit EP1 based on the information of the source contained in the multicast packet.
<<Problem in Schematic Operation of Relay System (Premise)>>
As described above, when the delivery path of the multicast group GA is to be established, for example, a routing path of the multicast packet is established between the L3SW 13a and the L3SW 13b of FIG. 1 through the L3 network 14 based on PIM or the like. However, the L3 network 14 is, for example, a carrier network of a telecommunications provider and the passage of the multicast packet is prohibited in some cases.
In this case, in the relay system to which the VXLAN is applied, the flooding by the information processing unit 11 described above cannot be performed. Although the case of using the VXLAN is taken as an example here, of course, the problem occurs also when the multicast communication is performed in the relay system for multimedia contents. For example, also when a multicast packet is to be delivered from a server to clients assuming that the information processing unit 11a is the server and the information processing units 11c and 11d are the clients, the delivery of the multicast packet cannot be performed.
<<Schematic Operation of Relay System (Present Embodiment)>>
Hence, in the relay system of FIG. 1, the plurality of switching devices (L2SWs 12a and 12b) synchronize the snooping information of IGMP or the like through the control plane 15. Then, the L2SWs 12a and 12b convert the received multicast packet into the unicast packet and transmit it to a predetermined port based on the synchronized information.
Concretely, in the example of FIG. 1, when the L2SW 12a relays IGMP packets 17a and 17b from the tunnel end units EP1 and EP2 to the L3SW 13a, the L2SW 12a acquires the correspondence relation among the port which has received the IGMP packet, the multicast group contained in the IGMP packet and the source IP address contained in the IGMP packet. Then, the L2SW 12a retains the acquired correspondence relation in a snooping table 16a or deletes it from the snooping table 16a based on the type of the IGMP packet.
As the IGMP packet (in other words, request packet), a packet called IGMP report (or IGMP join) which represents the join request to a multicast group and a packet called IGMP leave which represents the leave request from a multicast group are mainly present. When the L2SW 12a relays the IGMP report, the L2SW 12a retains the above-described correspondence relation in the snooping table 16a, and when the L2SW 12a relays the IGMP leave, the L2SW 12a deletes the above-described correspondence relation from the snooping table 16a. 
In the example of FIG. 1, it is presupposed that the IGMP packets 17a and 17b are IGMP reports representing the join request to the multicast group GA. In this case, the L2SW 12a retains the correspondence relation among the port P[1] (here, identifier {P[1]} thereof) which has received the IGMP packet 17a and the multicast group GA and the source IP address (here, IPA1) contained in the IGMP packet 17a in the snooping table 16a. Also, the L2SW 12a retains the correspondence relation among the port P[n−1] (here, identifier {P[n−1] } thereof) which has received the IGMP packet 17b and the multicast group GA and the source IP address (here, IPA2) contained in the IGMP packet 17b in the snooping table 16a. 
Similarly, when the L2SW 12b relays the IGMP packet 17c from the tunnel end unit EP4 to the L3SW 13b, the L2SW 12b acquires the correspondence relation among the port which has received the IGMP packet, the multicast group contained in the IGMP packet and the source IP address contained in the IGMP packet. Here, it is presupposed that the IGMP packet 17c is an IGMP report representing the join request to the multicast group GA. In this case, the L2SW 12b retains the correspondence relation among the port P[n−1] (here, identifier {P[n−1] } thereof) which has received the IGMP packet 17c and the multicast group GA and the source IP address (here, IPA4) contained in the IGMP packet 17c in the snooping table 16b. 
The function described above is known as a so-called IGMP snooping. However, in the IGMP snooping, usually, the correspondence relation between the multicast group and the port is retained in many cases, but the IP address is additionally retained in this case. Alternatively, depending on the situation, the MAC address is also retained in addition to the IP address. Though the IGMP is taken as an example here, MLD (Multicast Listener Discovery) used for IPv6 may be used instead of the IGMP.
Furthermore, the switching device (for example, L2SW 12a) acquires the correspondence relation between the multicast group GA and the IP address IPA4 retained in the snooping table 16b of the other switching device (L2SW 12b) through the control plane 15, and registers the acquired correspondence relation in its own snooping table 16a. As a result, the snooping table 16a retains the correspondence relation between the multicast group GA and the IP address IPA4 as shown in FIG. 1.
Though not particularly limited, the correspondence relation acquired through the control plane 15 is registered in association with the port P[n] (here, identifier {P[n]} thereof). The port P[n] is a router (here, L3SW 13a) port preset for the L2SW 12a or a router port automatically detected by the L2SW 12a. 
Similarly, the switching device (for example, L2SW 12b) also acquires the correspondence relation between the multicast group GA and the IP addresses IPA1 and IPA2 retained in the snooping table 16a of the other switching device (L2SW 12a) through the control plane 15, and registers the acquired correspondence relation in its own snooping table 16b. As a result, the snooping table 16b retains the correspondence relation between the multicast group GA and the IP addresses IPA1 and IPA2 as shown in FIG. 1. Like the case of the snooping table 16a, the correspondence relation is registered in association with the port P[n] (here, identifier {P[n]} thereof).
FIG. 3 is a block diagram showing the schematic operation example continued from FIG. 1. Here, like the case of FIG. 1, the case where the tunnel end unit EP1 receives the internal L2 frame 40 whose destination is the virtual terminal VM[4,i] from the virtual terminal VM[1,1] and the tunnel end unit EP1 performs the flooding due to that the destination has not been learned is assumed. In this case, the tunnel end unit EP1 transmits a multicast (MC) packet 21, which contains the IP address corresponding to the multicast group GA in the destination IP address of the external header 41, to the L2SW 12a. 
When the L2SW 12a receives the multicast packet 21 whose destination is the multicast group GA in this manner, the L2SW 12a extracts one or plural IP addresses corresponding to the multicast group GA based on the snooping table 16a. In the example of FIG. 3, the L2SW 12a extracts the IP addresses IPA2 and IPA4. At this time, the L2SW 12a excludes the IP address (here, IPA1) corresponding to the port (here, P[1]) which has received the multicast packet 21 from the extraction objects.
Subsequently, the L2SW 12a converts the received multicast packet 21 into the one or plural unicast packets whose destinations are one or plural IP addresses extracted based on the snooping table 16a. In this example, the L2SW 12a converts the multicast packet 21 into a unicast (UC) packet 22a whose destination (destination IP address) is the IP address IPA2 and a unicast packet 22b whose destination (destination IP address) is the IP address IPA4.
Concretely, the L2SW 12a converts the multicast packet 21 into the unicast packet 22a by rewriting the destination IP address (multicast address) contained in the IP header 44 of the multicast packet 21 into the IP address IPA2. At this time, the L2SW 12a may convert the destination MAC address (usually, multicast MAC address) contained in the Ethernet header 45 of the multicast packet 21 into the MAC address of the tunnel end unit EP2.
Similarly, the L2SW 12a converts the multicast packet 21 into the unicast packet 22b by rewriting the destination IP address (multicast address) contained in the IP header 44 of the multicast packet 21 into the IP address IPA4. At this time, the L2SW 12a may convert the destination MAC address contained in the Ethernet header 45 of the multicast packet 21 into the MAC address of the L3SW 13a. 
Subsequently, based on the snooping table 16a, the L2SW 12a transmits the unicast packet 22a whose destination is the IP address IPA2 to the port P[n−1] corresponding thereto, and transmits the unicast (UC) packet 22b whose destination is the IP address IPA4 to the port P[n] corresponding thereto. The tunnel end unit EP2 receives the unicast packet 22a and removes the external header 41 for encapsulation, thereby restoring the internal L2 frame 40. Since the destination MAC address (here, MAC address of the virtual terminal VM[4,i]) contained in the internal L2 frame 40 is not present in the subordinate virtual terminals VM of the tunnel end unit EP2, for example, the tunnel end unit EP2 performs the flooding of the internal L2 frame 40 to the subordinate virtual terminals VM having the same VXLAN identifier as the VXLAN identifier contained in the unicast packet 22a. 
On the other hand, the uncast packet 22b transmitted from the port P[n] of the L2SW 12a is transferred to the tunnel end unit EP4 through the L3SW 13a, the L3 network 14, the L3SW 13b and the L2SW 12b. At this time, the L2SW 12b relays the packet based on the destination MAC address contained in the Ethernet header 45 of the unicast packet 22b as usual. The tunnel end unit EP4 receives the unicast packet 22b and removes the external header 41 for encapsulation, thereby restoring the internal L2 frame 40. Since the destination MAC address (here, MAC address of the virtual terminal VM[4,i]) contained in the internal L2 frame 40 is present in the subordinate virtual terminals VM of the tunnel end unit EP4, the tunnel end unit EP4 relays the internal L2 frame 40 to the virtual terminal VM[4, i].
As described above, by using the relay system and the switching device shown in FIG. 1 and FIG. 3, even when the L3 network 14 prohibits the passage of the multicast packet, the equivalent multicast communication can be achieved by converting the multicast packet into the unicast packet. In addition, even when the L3SW 13a and the L3SW 13b do not support the PIM or others, the multicast communication can be achieved. In this case, since the multicast packet is converted into the uncast packet by the mechanism which utilizes and synchronizes the snooping information of the L2SWs (switching devices) 12a and 12b, the multicast communication can be achieved by a simple mechanism.
More specifically, unlike the Patent Document 1 and the Patent Document 2, it is not necessary to perform the complicated communication from the packet conversion device on a reception side (that is, gateway or router) to the packet conversion device on a transmission side as the preparation prior to the multicast communication, and it is sufficient if the snooping tables 16a and 16b are simply synchronized through the control plane 15. In this manner, since it is possible to achieve the multicast communication with a simple mechanism, the processing load can be reduced. Furthermore, unlike the Patent Document 1 and the Patent Document 2, since the process to restore the unicast packet to the multicast packet on the reception side is not necessary, the processing load can be reduced also from this aspect.
<<Configuration of Switching Device>>
FIG. 4 is a block diagram showing a schematic configuration example of a main part of the L2SW (switching device) in the relay system of FIG. 1. The L2SW (switching device) 12 shown in FIG. 4 includes a plurality of (here, n) ports P[1] to P[n], a frame (packet) processing unit 25, a table unit 26 and a snooping table synchronization unit 27. The table unit 26 has an address table FDB and the snooping table 16. As is widely known, the address table FDB retains the correspondence relation between the plurality of ports P[1] to P[n] and the MAC addresses present ahead of the plurality of ports. The snooping table 16 corresponds to the snooping tables 16a and 16b shown in FIG. 1 and FIG. 3.
The frame (packet) processing unit 25 includes a packet conversion unit 28, a FDB processing unit 29, a snooping unit 30 and a transmission unit 31. As is widely known, the FDB processing unit 29 performs the learning of the source and the retrieval of the destination using the address table FDB. Concretely, when the FDB processing unit 29 receives the frame at the plurality of ports P[1] to P[n], the FDB processing unit 29 learns the correspondence relation between the source MAC address contained in the frame and the port which has received the port in the address table FDB. Also, the FDB processing unit 29 retrieves the address table FDB with using the destination MAC address contained in the frame as a retrieval key, thereby determining the destination port.
The packet conversion unit 28, the snooping unit 30 and the snooping table synchronization unit 27 perform the process described with reference to FIG. 1 and FIG. 3. More specifically, the snooping unit 30 performs the snooping when relaying the request packet representing the join request to a multicast group or the leave request from a multicast group (for example, IGMP report or IGMP leave) to a predetermined router. Concretely, the snooping unit 30 acquires a correspondence relation among the port which has received the request packet, the multicast group contained in the request packet and the source IP address contained in the request packet.
The snooping table 16 retains or deletes the correspondence relation among the port, the multicast group and the IP address acquired by the snooping unit 30 in accordance with the join request or the leave request. The snooping table synchronization unit 27 acquires the correspondence relation between the multicast group and the IP address retained in the snooping table 16 of each of the L2SWs 12 other than its own L2SW 12 through the control plane 15, and registers the correspondence relation in its own snooping table 16.
When the packet conversion unit 28 receives the multicast packet whose destination is the multicast group, the packet conversion unit 28 extracts the one or plural IP addresses corresponding to the multicast group based on the snooping table 16. Then, the packet conversion unit 28 converts the multicast packet into one or plural unicast packets whose destinations are the extracted one or plural IP addresses. The transmission unit 31 relays the frame received at the plurality of ports P[1] to P[n] to the destination port based on the retrieval result of the FDB processing unit 29. Furthermore, the transmission unit 31 transmits each unicast packet converted by the packet conversion unit 28 to the predetermined port based on the snooping table 16 as described with reference to FIG. 3.
<<Detailed Operation of Relay System and Switching Device>>
FIG. 5 is a flowchart showing an example of process contents of the snooping process performed by the L2SW (switching device) in the relay system of FIG. 1. In FIG. 5, the L2SW (switching device) 12 (specifically, snooping unit 30) determines whether the multicast (MC) request packet (for example, IGMP report or IGMP leave) is received (step S101). When the request packet is not received, the L2SW 12 finishes the process.
On the other hand, when the request packet is received, the L2SW (snooping unit 30) updates the snooping table 16 (step S102). Concretely, the L2SW 12 (snooping unit 30) performs the registration when the request packet is the join request and performs the deletion when the request packet is the leave request as described above. Subsequently, the L2SW 12 (specifically, snooping table synchronization unit 27) determines whether the snooping table 16 is changed (step S103). When changed, the L2SW 12 (snooping table synchronization unit 27) notifies the control plane of the changed contents (step S104) and when not changed, the L2SW 12 finishes the snooping process.
FIG. 6 is a flowchart showing an example of process contents performed by the control plane in the relay system of FIG. 1. In FIG. 6, the control plane 15 determines whether the notification of the changed contents resulting from the step S104 of FIG. 5 is received (step S201). When the notification of the changed contents is not received, the control plane 15 finishes the process. On the other hand, when the notification of the changed contents is received, the control plane 15 notifies each of the L2SWs 12 other than the source of the changed contents of the received changed contents (step S202).
FIG. 7 is a flowchart showing an example of process contents of the snooping table synchronization process performed by the L2SW (switching device) in the relay system of FIG. 1. In FIG. 7, the L2SW 12 (specifically, snooping table synchronization unit 27) determines whether the notification of the changed contents resulting from the step S202 of FIG. 6 is received (step S301). When the notification of the changed contents is not received, the L2SW 12 (snooping table synchronization unit 27) finishes the process. On the other hand, when the notification of the changed contents is received, the L2SW 12 (snooping table synchronization unit 27) updates the snooping table 16 based on the received changed contents (step S302).
As described above, when the snooping table 16 of one L2SW 12 is changed by its own snooping unit 30, the snooping table synchronization unit 27 of the L2SW 12 notifies the snooping table synchronization unit 27 of each of the other L2SWs 12 of the changed contents through the control plane 15. In this manner, the snooping tables 16 of the L2SWs 12 can be synchronized with a small communication volume.
However, the synchronization method is not always limited to the method described above, and other synchronization methods may be used. For example, the method in which the snooping table synchronization units 27 of the L2SWs 12 are synchronized at regular intervals with reference to the control plane 15 is possible. Alternatively, this regular synchronization method and the synchronization method using the occurrence of change as a trigger described with reference to FIG. 5 to FIG. 7 may be combined.
FIG. 8 is a flowchart showing an example of process contents of a frame (packet) receiving process performed by the L2SW (switching device) in the relay system of FIG. 1. As shown in FIG. 8, the L2SW (specifically, frame (packet) processing unit 25) first distinguishes the type of the received packet (step S401). As a result, when the received packet is a unicast packet, the L2SW (frame (packet) processing unit 25) moves to the step S403, and when the received packet is a multicast packet, the L2SW moves to the step S406 (steps S402 and S405).
Concretely, the L2SW (frame (packet) processing unit 25) makes the distinction in the step S401 depending on whether the destination IP address in the IP header 44 or the destination MAC address in the Ethernet header 45 is the unicast address or the multicast address. In practice, as described with reference to FIG. 5, the determination as to whether the received packet is the MC request packet is also performed together in the step S401.
In the step S403, the L2SW (specifically, FDB processing unit 29) learns and retrieves the address table FDB. More specifically, the L2SW 12 (FDB processing unit 29) learns the source MAC address contained in the Ethernet header 45 of the received unicast packet (frame) in the address table FDB. Also, the L2SW 12 (FDB processing unit 29) retrieves the address table FDB with using the destination MAC address contained in the Ethernet header 45 of the received unicast packet (frame) as a retrieval key. Subsequently, in the step S404, the L2SW 12 (specifically, transmission unit 31) relays the received unicast packet to the port based on the retrieval result in the step S403.
On the other hand, in the step S406, the L2SW 12 (specifically, packet conversion unit 28) retrieves the snooping table 16 and extracts one or plural IP addresses. Subsequently, the L2SW 12 (packet conversion unit 28) converts the multicast packet into one or plural unicast packets whose destinations are one or plural IP addresses extracted in the step S406 (step S407). Next, the L2SW 12 (specifically, transmission unit 31) transmits each unicast packet to each port corresponding thereto (that is, each port based on the retrieval result of the snooping table 16 in the step S406) (step S408).
As described above, by using the relay system and the switching device of the first embodiment, typically, the multicast communication can be achieved by the simple mechanism.
Second Embodiment
<<Schematic Configuration of Relay System (Control Plane)>>
In the second embodiment, the configuration example of the control plane 15 described in the first embodiment will be described in detail. FIG. 9 is a block diagram showing a schematic configuration example of a relay system according to the second embodiment of the present invention. FIG. 10 is a block diagram showing a schematic configuration example different from that of FIG. 9. The relay system shown in FIG. 9 and FIG. 10 has the same configuration as that of the relay system in FIG. 1, and the configuration of the control plane 15 is shown in detail in FIG. 9 and FIG. 10. The control plane 15 will be described below, but since the parts other than that are the same as those of the first embodiment, the detailed description thereof will be omitted.
The control plane 15 shown in FIG. 9 includes a plurality of management servers 35a and 35b and a management network which connects the plurality of management servers 35a and 35b. The management servers 35a and 35b are connected to dedicated management ports Pc provided in the L2SWs 12a and 12b, respectively. Here, the management network is made up of L3SWs 36a and 36b connected to the management servers 35a and 35b, respectively and a dedicated management network connecting the L3SW 36a and the L3SW 36b. The dedicated network is not particularly limited, and it is configured by using, for example, the L3 network 14.
On the other hand, in the configuration of the control plane 15 shown in FIG. 10, unlike the case of FIG. 9, the management servers 35a and 35b are connected to the normal ports (Ethernet ports) P[m] of the L2SWs 12a and 12b, respectively. Also, the management network connecting the plurality of management servers 35a and 35b is established in the manner of sharing the normal data transfer path between the L2SW 12a and the L2SW 12b through the L3 network 14.
In FIG. 9 and FIG. 10, for example, in the case where the information processing units 11a and 11b are placed in a site A and the information processing units 11c and 11d are placed in a site B distant from the site A, the management server is placed in each of the sites in many cases. The management servers 35a and 35b can be established by using the management servers in each site like these. In this case, since the control plane 15 can be implemented without separately adding the devices and others, the cost reduction can be achieved. For example, by implementing the software which performs the process described with reference to FIG. 6 on the existing management server, the communication between the snooping table synchronization units 27 described in the first embodiment can be controlled.
Also, in FIG. 10, unlike the case of FIG. 9, the management servers 35a and 35b control the communication between the snooping table synchronization units 27 described in the first embodiment by the so-called in-band management through the L3 network 14. By performing the in-band management, the dedicated network becomes unnecessary unlike the case of FIG. 9, so that further benefits in terms of cost can be obtained in some cases. Note that, when the in-band management is performed, the control plane 15 can be implemented by one management server depending on conditions.
Third Embodiment
<<Schematic Operation of Relay System (Modified Example)>>
FIG. 11 is a block diagram showing a schematic configuration example and a schematic operation example of a relay system according to the third embodiment of the present invention. The relay system shown in FIG. 11 has the same configuration and performs the same operation as the relay system shown in FIG. 1 and FIG. 3. However, the L2SW 12a in FIG. 3 transmits the unicast packet 22a to the tunnel end unit EP2, whereas the L2SW 12a in FIG. 11 transmits the multicast packet 21 to the tunnel end unit EP2. Since the third embodiment is the same as the first embodiment other than that, the detailed description thereof will be omitted.
In FIG. 11, the L2SW 12a recognizes that a device (here, tunnel end unit EP2) which requests a multicast packet of the multicast group GA is present ahead of the port P[n−1] by its own snooping unit 30. In this manner, the L2SW 12a knows that the packet transmitted from the port acquired by its own snooping unit 30 is not directed to the L3 network 14. Therefore, as shown in FIG. 11, the L2SW 12a can relay the multicast packet 21 received at the port P[1] to the P[n−1] as it is based on the general function of the snooping unit 30. More specifically, the general IGMP snooping function and others have, in addition to the function to perform the snooping process of a request packet, a function to determine the destination port of the received multicast packet based on the snooping information obtained by the snooping process.
In the foregoing, the invention made by the inventor of the present invention has been concretely described based on the embodiments. However, it is needless to say that the present invention is not limited to the foregoing embodiments and various modifications and alterations can be made within the scope of the present invention. For example, the embodiments above have been described in detail so as to make the present invention easily understood, and the present invention is not limited to the embodiment having all of the described constituent elements. Also, a part of the configuration of one embodiment may be replaced with the configuration of another embodiment, and the configuration of one embodiment may be added to the configuration of another embodiment. Furthermore, another configuration may be added to a part of the configuration of each embodiment, and a part of the configuration of each embodiment may be eliminated or replaced with another configuration.
For example, in the descriptions of FIG. 1 and others, the case where the two sites are connected to the L3 network 14 is assumed as an example of a network such as a datacenter, but of course, the present invention can be applied also to the case where three or more sites are connected. More specifically, it is sufficient if the snooping tables 16 are synchronized between the L2SWs 12 in each site through the control plane 15 by the method described in the first embodiment, and it is possible to readily handle the increase in the number of sites.
Note that the Patent Document 1 does not particularly assume the case where three or more sites are present like this. Also, the Patent Document 2 describes a method in which a branch point is provided in a relay device in the L3 network (WAN) and the state of the branch point is managed by the tree ID. In this case, however, the preparation prior to the multicast communication is more complicated as the number of sites increases, and there is threat that novel ideas are required as to where to set the branch point.

## Claims

1. A relay system comprising:
a plurality of switching devices;
a layer 3 network connecting the plurality of switching devices; and
a control plane connected to the plurality of switching devices,
wherein each of the plurality of switching devices includes:
a snooping unit which, when a request packet representing a join request to a multicast group or a leave request from a multicast group is relayed to a predetermined router, acquires a correspondence relation among a port which has received the request packet, a multicast group contained in the request packet and a source IP address contained in the request packet;
a snooping table which retains or deletes the correspondence relation among the port, the multicast group and the source IP address acquired by the snooping unit in accordance with the join request or the leave request;
a snooping table synchronization unit which acquires a correspondence relation between a multicast group and an IP address retained in the snooping table of each of other switching devices through the control plane and registers the acquired correspondence relation to its own snooping table;
a packet conversion unit which, when a multicast packet whose destination is a multicast group is received, extracts one or plural IP addresses corresponding to the multicast group based on the snooping table and converts the multicast packet into one or plural unicast packets whose destinations are the one or plural IP addresses; and
wherein each of the plurality of switching devices further includes an address table which retains a correspondence relation between its own plurality of ports and MAC addresses present ahead of the plurality of ports, and
when the one or plural unicast packets are received, each of the plurality of switching devices retrieves the address table with using destination MAC addresses contained in the one or plural unicast packets as retrieval keys and relays the one or plural unicast packets to the ports based on the retrieval result.

2. The relay system according to claim 1,
wherein, when the snooping table of a switching device is changed by the snooping unit of the switching device, the snooping table synchronization unit of the switching device notifies the snooping table synchronization unit of each of other switching devices of changed contents through the control plane.

3. The relay system according to claim 1,
wherein the control plane includes:
a plurality of management servers which manage the plurality of switching devices; and
a management network connecting the plurality of management servers.

4. The relay system according to claim 3,
wherein the management network is included in the layer 3 network, and
the plurality of management servers control communication between the snooping table synchronization units of the plurality of switching devices by an in-band management through the layer 3 network.

5. A switching device comprising:
a snooping unit which, when a request packet representing a join request to a multicast group or a leave request from a multicast group is relayed to a predetermined router, acquires a correspondence relation among a port which has received the request packet, a multicast group contained in the request packet and a source IP address contained in the request packet;
a snooping table which retains or deletes the correspondence relation among the port, the multicast group and the source IP address acquired by the snooping unit in accordance with the join request or the leave request;
a snooping table synchronization unit which acquires a correspondence relation between a multicast group and an IP address retained in the snooping table of each of other switching devices and registers the acquired correspondence relation to the snooping table;
a packet conversion unit which, when a multicast packet whose destination is a multicast group is received, extracts one or plural IP addresses corresponding to the multicast group based on the snooping table and converts the multicast packet into one or plural unicast packets whose destinations are the one or plural IP addresses; and
an address table which retains a correspondence relation between its own one or plural ports and MAC addresses present ahead of the one or plural ports,
wherein, when the one or plural unicast packets are received, the address table is retrieved with using destination MAC addresses contained in the one or plural unicast packets as retrieval keys and the one or plural unicast packets are relayed to the ports based on the retrieval result.

6. The switching device according to claim 5,
wherein, when the snooping table is changed by the snooping unit, the snooping table synchronization unit notifies the snooping table synchronization unit of each of other switching devices of changed contents.