The present application claims priority from Japanese Patent Application No. 2013-169820 filed on Aug. 19, 2013, the content of which is hereby incorporated by reference into this application.
The present invention relates to a network relay system and a switching device, for example, a network relay system in which a link aggregation is set across two switching devices and each switching device is provided with a multicast snooping function.
For example, Japanese Patent Application Laid-Open Publication No. 2008-78893 (Patent Document 1) discloses a configuration including a pair of medium switching devices connected to each other by redundant ports and a lower switching device and an upper switching device connected in a state where link aggregations are set to the ports having the same port numbers of the pair of medium switching devices. Also, Japanese Patent Application Laid-Open Publication No. 2009-232400 (Patent Document 2) discloses a method of bandwidth control of a link aggregation group in a communication system in which the link aggregation group is set across communication devices.
As a redundant system, for example, a system in which two ports in one switching device [A] and each one port in two switching devices [B] are respectively connected by communication lines has been known as disclosed in the Patent Document 1 or the Patent Document 2. At this time, the one switching device [A] sets a link aggregation to its own two ports. Also, the two switching devices [B] have communication through a dedicated communication line, thereby allowing each one port thereof to function as logically (virtually) one port when viewed from the one switching device [A].
In this redundant system, unlike a common link aggregation set physically to one switching device, a link aggregation is set physically across two switching devices [B]. Therefore, in addition to general effects obtained by the link aggregation such as the redundancy for the fault of communication lines and the expansion of communication band, the redundancy for the fault of switching devices can be achieved. In this specification, the link aggregation across two switching devices [B] as described above is referred to as a multi-chassis link aggregation (hereinafter, abbreviated as MLAG). Also, the assembly of the two switching devices [B] is referred to as a multi-chassis link aggregation device (hereinafter, abbreviated as MLAG device).
On the other hand, as a multicast communication protocol, a routing protocol typified by PIM (Protocol Independent Multicast) or the like and a protocol for managing the members of a multicast group typified by IGMP (Internet Group Management Protocol), MLD (Multicast Listener Discovery) or the like have been known. For example, terminals wishing to join in a multicast group issue a join request to a predetermined multicast group by using IGMP or MLD to a layer 3 (hereinafter, abbreviated as L3) switching device executing a L3 process through a layer 2 (hereinafter, abbreviated as L2) switching device executing a L2 process. The L3 switching device which has received the join request establishes a delivery route of a multicast packet to a server device serving as a source of the multicast packet by using PIM or the like on the L3 network.
In this manner, the multicast packet from the server device is delivered to the terminal through the L3 network and the L2 switching device. However, at this time, since the L2 switching device which has received the multicast packet (multicast frame) usually does not learn the multicast MAC (Media Access Control) address, it delivers the received multicast packet (multicast frame) by flooding. In this case, since the multicast frame is delivered also to the terminals which are not the members of the predetermined multicast group, the communication band is wastefully consumed. Thus, techniques called IGMP snooping and MLD snooping have been known.
In the case where the IGMP snooping or the MLD snooping is used, when the L2 switching device receives a join request or the like to a multicast group from a terminal, it learns information of the multicast group contained in the join request or the like in association with the port which has received the join request or the like on a multicast address table. As a result, the L2 switching device can deliver the multicast frame only to the port where the terminal to be a member of the multicast group is present by retrieving the multicast address table when the L2 switching device receives the multicast packet (multicast frame) from the server device.
In such a circumstance, the inventors of the present invention have studied the application of the MLAG device to the L2 switching device provided with the multicast snooping function (for example, IGMP snooping or MLD snooping). In this case, a mechanism for sharing (synchronizing) the multicast address table between the two switching devices constituting the MLAG device is required in general. As the sharing (synchronizing) mechanism, for example, the system in which update information or the like of the multicast address table is properly transmitted and received between the two switching devices is conceivable.
Since complicated process is necessary for the learning process for the multicast address table in general, the software process by CPU (Central Processing Unit) is used in many cases. In this case, one switching device constituting the MLAG device updates its own multicast address table by using its own CPU and then transfers the update information to the other switching device, and the other switching device updates its own multicast address table by using its own CPU based on the update information.
However, in the case where the multicast address table is shared (synchronized) by using the system described above, there is a possibility that it takes a certain period of time from when the multicast address table is updated in the one switching device to when the multicast address table reflecting the update information is formed in the other switching device. For example, when the multicast packet (multicast frame) is received in this time lag period, such a case may occur in which the destination differs depending on which of the two switching devices constituting the MLAG device has received the multicast frame. As a result, it becomes difficult to correctly achieve the multicast snooping function as the MLAG device.
The present invention has been made in view of the problem mentioned above, and one object of the present invention is to easily achieve the multicast snooping function in a network relay system including two switching devices to which the MLAG is set.
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 network relay system of the embodiment includes first and second switching devices each having a plurality of MLAG ports, a bridge port and a multicast address table and connected to each other by a bridge communication line through the bridge ports. Each of the first and second switching devices sets a link aggregation group between its own MLAG port and a MLAG port of the other switching device corresponding to the MLAG port. Here, when one of the first and second switching devices receives a control frame representing a join request to or a leave request from a predetermined multicast group at any one of the plurality of MLAG ports, it executes a first process and a second process. In the first process, it learns the predetermined multicast group contained in the control frame in association with a MLAG port which has received the control frame on the multicast address table. In the second process, it generates a bridge control frame containing the control frame and an identifier of the MLAG port which has received the control frame and transferring the bridge control frame from the bridge port. Also, when the other of the first and second switching devices receives the bridge control frame at the bridge port, it executes a third process and a fourth process. In the third process, it detects the control frame and the identifier of the MLAG port from the bridge control frame. In the fourth process, it learns the predetermined multicast group contained in the control frame in association with its own MLAG port corresponding to the identifier of the MLAG port on the multicast address table.
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 easily achieve the multicast snooping function in the two switching devices to which the MLAG is set.
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 symbols throughout the drawings for describing the embodiments, and the repetitive description thereof will be omitted.
The server device SV is a source of a multicast packet, and the plurality of terminal devices TM[1] to TM[N−1] are destinations of the multicast packet. Here, as an example, one server device SV is connected to the L2 switching device (L2SW) 12b, but one or plural terminal devices may be connected in addition to the server device SV or a plurality of server devices may be connected thereto. Similarly, the plurality of terminal devices TM[1] to TM[N−1] are connected to the L2 switching device (L2SW) 12a, but one or plural server devices may be connected thereto in addition to the terminal devices.
Here, the operation will be briefly described based on an example in which the terminal devices TM[1] and TM[N−1] join in a multicast group whose source is the server device SV. The terminal device TM[1] transmits a control frame FL1[1] representing a join request to a multicast group typified by, for example, an IGMP report to the L3 switching device (L3SW) 11a through the L2 switching device (L2SW) 12a. Similarly, the terminal device TM[N−1] also transmits a control frame FL1[N−1] representing a join request to a multicast group to the L3 switching device (L3SW) 11a through the L2 switching device (L2SW) 12a. Although details will be described later with reference to
The L3 switching device (L3SW) 11a recognizes that the terminal device wishing to join in a multicast group whose source is the server device SV is present under itself upon receipt of the control frames FL1[1] and FL1[N−1] from the terminal devices TM[1] and TM [N−1]. Then, the L3 switching device (L3SW) 11a establishes a delivery route of a multicast packet between itself and the L3 switching device (L3SW) 11b to which the server device SV belongs through the L3 network 10 by using a multicast routing protocol typified by PIM.
More specifically, for example, the L3 switching device (L3SW) 11a transmits a PIM join 13a to a predetermined L3 switching device (L3SW) in the L3 network 10. Though not shown, the L3 network 10 includes a plurality of L3 switching devices (L3SW). The L3 switching device (L3SW) which has received the PIM join 13a similarly transmits the PIM join to the predetermined L3 switching device (L3SW) in the L3 network 10. Thereafter, the PIM join is transmitted hop by hop to the predetermined L3 switching device (L3SW) in the L3 network 10 in the same manner, and finally transmitted as a PIM join 13b to the L3 switching device (L3SW) 11b.
The delivery route of the multicast packet is determined by the route through which the PIM join is transmitted. The multicast packet (multicast user frame) FL2b delivered from the server device SV is received at the L3 switching device (L3SW) 11b through the L2 switching device (L2SW) 12b and is further received at the L3 switching device (L3SW) 11a through the above-described delivery route of the multicast packet. Then, the L3 switching device (L3SW) 11a delivers the multicast packet (multicast user frame) FL2a to the terminal devices TM[1] and TM[N−1] through the L2 switching device (L2SW) 12a.
Note that the operation example in which IGMP is used as the join request to a predetermined multicast group has been shown here, but the same is true of the case using MLD or the like. Also, the operation example in which PIM-SM (Sparse Mode), PIM-SSM (Source Specific Multicast) or the like is used as the multicast routing protocol has been shown here, but PIM-DM (Dense Mode) or the like may of course be used.
In such a configuration example and an operation example, the network relay system of the first embodiment is applied to a part of the L2 switching device (L2SW) 12a. Since a lot of terminal devices TM[1] to TM[N−1] are sometimes connected to the L2 switching device (L2SW) 12a as the destinations of the multicast packet, it is desired to sufficiently secure the fault tolerance and the communication band. In such a case, it is beneficial to apply the MLAG device as the L2 switching device (L2SW) 12a and further to provide the multicast snooping function for the MLAG device.
<<Configuration of Network Relay System>>
The user switch 21a is connected to the MLAG port P[1] of the first switching device SW1 and the MLAG port P[1] of the second switching device SW2 through communication lines 23a. The user switch 21a sets the link aggregation group (MLAG 22a) to the ports serving as connection sources of the communication lines 23a. The user switch 21b is connected to the MLAG port P[N−1] of the first switching device SW1 and the MLAG port P[N−1] of the second switching device SW2 through communication lines 23a. The user switch 21b sets the link aggregation group (MLAG 22b) to the ports serving as connection sources of the communication lines 23a. In this example, the terminal device TM[1] is connected to the user switch 21a, and the terminal device TM[N−1] is connected to the user switch 21b.
Each of the first and second switching devices SW1 and SW2 sets the link aggregation group (that is, MLAG) between its own MLAG port and the MLAG port of the other switching device corresponding to that MLAG port. For example, each of the first and second switching devices SW1 and SW2 sets MLAG 22a between its own (for example, SW1) MLAG port P[1] and the MLAG port P[1] of the other switching device (for example, SW2). Similarly, each of the first and second switching devices SW1 and SW2 sets MLAG 22b to the MLAG ports P[N−1] of both switching devices, and sets MLAG 22c to the MLAG ports P[N] of both switching devices. In the first and second switching devices SW1 and SW2, the MLAG ports of both switching devices to which the MLAG is set logically (virtually) function as one port.
<<Operation of Main Part of Network Relay System>>
One of the first and second switching devices SW1 and SW2 executes a learning process (first process) for the multicast address table 24 when it receives a control frame representing a join request to or a leave request from a predetermined multicast group at any one of the plurality of MLAG ports. Then, during the learning process, one of the first and second switching devices SW1 and SW2 learns the predetermined multicast group contained in the control frame in association with the MLAG port which has received the control frame on the multicast address table 24. In other words, the multicast snooping process is executed.
In the example of
Also, when one of the first and second switching devices SW1 and SW2 receives the above-mentioned control frame at any one of the plurality of MLAG ports, it generates a bridge control frame containing the control frame and an identifier of the MLAG port which has received the control frame and transfers it from the bridge port Pb (second process). In the example of
When the other of the first and second switching devices SW1 and SW2 receives the bridge control frame at the bridge port Pb, it detects the control frame and the identifier of the MLAG port from the bridge control frame (third process). In the example of
Also, based on the control frame and the identifier of the MLAG port detected in the third process, the other of the first and second switching devices SW1 and SW2 learns the predetermined multicast group contained in the control frame in association with its own MLAG port corresponding to the identifier of the MLAG port on the multicast address table 24 (fourth process). In the example of
By using the configuration example and the operation example described above, the high-speed synchronization of the multicast address table 24 can be easily achieved between the switching devices SW1 and SW2 constituting the MLAG device 20. As a result, the multicast snooping function as the MLAG device 20 can also be easily achieved.
More specifically, firstly, when the first switching device SW1 receives the control frame FL1[1], it can generate and transfer the bridge control frame FL3 in parallel with the update of the multicast address table 24 without waiting for the completion of the update of the multicast address table 24. At this time, since the generation and transfer of the bridge control frame FL3 (that is, second process mentioned above) are a simple process, they can be executed by a dedicated hardware circuit (for example, FPGA (Field Programmable Gate Array) or the like) instead of software process using CPU.
On the other hand, the second switching device SW2 detects the control frame FL1[1] and the identifier of the MLAG port after receiving the bridge control frame FL3. Since this detection of the control frame FL1[1] and the identifier of the MLAG port (that is, third process mentioned above) is also a simple process, it can be executed by a dedicated hardware circuit. In this manner, the time lag between when the first switching device SW1 starts the update of its own multicast address table 24 and when the second switching device SW2 starts the update of its own multicast address table 24 based on the same information can be sufficiently shortened.
The IP header portion 31 contains a destination IP address and a source IP address. As the destination IP address, for example, the same value as the MC group address in the IGMP message portion 30 is stored. The Ethernet header portion 32 contains a source MAC address and a destination MAC address. As the destination MAC address, for example, a value obtained by adding “0” of 1 bit and a fixed value (01—00—5Eh) of 24 bits to a part (lower 23 bits) of the MC group address in the IGMP message portion 30 is stored.
For example, in the case of the control frame FL1[1] of
The bridge control frame FL3 shown in
As described above, by using the network relay system and the switching device of the first embodiment, typically, the multicast snooping function as the MLAG device can be easily achieved.
When one of the first and second switching devices SW1 and SW2 receives the multicast user frame at any one of the plurality of MLAG ports, it retrieves a destination MLAG port from among the plurality of MLAG ports based on the multicast address table 24 (fifth process). In the example of
Also, when the destination MLAG port retrieved in the fifth process has a fault, one of the first and second switching devices SW1 and SW2 transfers the received multicast user frame from the bridge port Pb (sixth process). In the example of
When the other of the first and second switching devices SW1 and SW2 receives the multicast user frame at the bridge port Pb, it retrieves the destination MLAG port from among the plurality of MLAG ports based on its own multicast address table 24 (seventh process). In the example of
Also, the other of the first and second switching devices SW1 and SW2 transfers the multicast user frame received at the bridge port Pb from the destination MLAG port retrieved in the seventh process. In the example of
For example, in the case of the multicast user frame FL2a of
In this case, each of the first and second switching devices SW1 and SW2 is preliminarily configured so that the transfer of the frame received at the bridge port Pb from the MLAG ports is prohibited (for example, P[N−1] and P[N] of SW2 of
Under such a premise, the first switching device SW1 retrieves the destination MLAG port of the multicast user frame FL2a received at the MLAG port P[N] in the same manner as the case of
On the other hand, when the second switching device SW2 receives the multicast user frame FL2a at the bridge port Pb, it retrieves the destination MLAG port in the same manner as the case of
Specifically, firstly, when the first switching device SW′1 receives the MC user frame at the MLAG port P[N], it determines the destination MLAG ports (here, P[1] and P[N−1]) by retrieving its own MC address table. Next, the first switching device SW′1 transfers the MC user frame from the destination MLAG port P[N−1] and transfers it also from the bridge port Pb after adding information of the destination MLAG port P[1] to the header of the MC user frame because the destination MLAG port P[1] has a fault. When the second switching device SW′2 receives the MC user frame to which information of the destination MLAG port P[1] is added at the bridge port Pb, it transfers the MC user frame from the MLAG port P[1] based on the added information.
However, when the method like this is used, for example, if there are a plurality of destination MLAG ports having a fault on the first switching device SW′1 side, there is a possibility that the amount of information added to the header is increased and the communication band between the bridge ports Pb becomes insufficient. Thus, for example, as shown in
Specifically, firstly, when the first switching device SW″1 receives the MC user frame at the MLAG port P[N], it determines the destination MLAG ports (here, P[1] and P[N−1]) by retrieving each index number of its own MC address table. However, since the destination MLAG port P[1] has a fault, the first switching device SW″1 adds a corresponding index number to the header of the MC user frame and then transfers the frame from the bridge port Pb. When the second switching device SW″2 receives the MC user frame to which the index number is added at the bridge port Pb, it transfers the MC user frame from the MLAG ports P[1] and P[N−1] based on the information described at the index number in its own MC address table. In this case, since the header information added to the MC user frame is only the index number, the amount of information can be reduced.
However, when the method like this is used, the MC address tables in the first and second switching devices SW″1 and SW″2 need to be always synchronized including the order of the index numbers. In this index method, for example, each of the first and second switching devices SW″1 and SW″2 updates the MC address table while sequentially changing the index numbers every time when it receives a new IGMP report. At this time, by updating the MC address table by using the same method as that of the above-described first embodiment, the time lag at the time when the first and second switching devices SW″1 and SW″2 update the MC address table can be sufficiently reduced, but it is not easy to completely eliminate the time lag. In this index method, since there is a possibility that the MC user frame is delivered to a completely different destination when the index numbers are mismatched, the above-mentioned time lag needs to be reduced as close to zero as possible in order to prevent the mismatch of the index numbers, but this is not actually easy to achieve.
On the other hand, in the method of the second embodiment, when the destination MLAG port has a fault, one switching device transfers the received MC user frame to the other switching device without particularly adding header information, and the other switching device determines the destination MLAG port based on its own multicast address table. In this manner, it is possible to avoid the above-described case in which the communication band between the bridge ports Pb becomes insufficient. At this time, as described in the first embodiment, since the MC address tables are synchronized at high speed, the case in which the destination MLAG ports differ between the both switching devices can be sufficiently avoided. Also, since the no time lag is not always required unlike the above-described index method, no practical problem occurs if the MC address tables are synchronized at sufficiently high speed. Consequently, the multicast snooping function as the MLAG device can be easily achieved.
When taking
The table unit 51 includes an address table 55 and a MLAG table 56. The address table 55 further includes a unicast address table 57 and a multicast address table 24. As shown in
As shown in
As shown in
The frame processing unit 50 includes a bridge frame control unit 52, a snooping unit 53, and a fault detecting unit 54, and mainly controls the relay of the frame between each MLAG ports P[1] to P[N] and the relay of the frame through the bridge ports Pb1 and Pb2 based on the information of the table unit 51. The bridge frame control unit 52 is composed of, for example, a dedicated hardware circuit (FPGA or others) and executes various processes regarding the bridge control frame FL3 described with reference to
<<Operation of Switching Device>>
When the received frame is the control frame, the frame processing unit 50 executes the learning subroutine for the MC address table, and ends the frame receiving process (step S103). On the other hand, when the received frame is not the control frame, the frame processing unit 50 determines whether or not the received frame is the MC user frame (step S104). This determination can be made based on, for example, the destination MAC address and the destination IP address in
When the frame received in the step S104 is the MC user frame, the frame processing unit 50 executes the retrieving subroutine for the MC address table, and ends the frame receiving process (step S105). On the other hands, when the received frame is not the MC user frame, the frame processing unit 50 executes a predetermined process to end the frame receiving process (step S106). In the step S106, for example, the general relay process for the unicast user frame and others are executed.
In the learning subroutine for the MC address table in the step S103, the process shown in
Next, the frame processing unit 50 (specifically, bridge frame control unit 52) generates the bridge control frame (for example, FL3 of
On the other hand, when the receiving port is not the MLAG port in the step S201, the receiving port is the bridge port Pb and the received frame is the bridge control frame. In this case, the frame processing unit 50 (specifically, bridge frame control unit 52) detects the control frame (for example, FL1[1] of
In the retrieving subroutine for the MC address table in the step S105, the process shown in
Next, the frame processing unit 50 determines whether or not the destination MLAG port has a fault with reference to, for example, the MLAG table 56 of
On the other hand, when the receiving port is not the MLAG port in the step S301, the receiving port is the bridge port Pb and the received frame is the MC user frame. In this case, the frame processing unit 50 (specifically, snooping unit 53) retrieves the MC address table 24 to determine the destination MLAG port of the MC user frame (step S305). Next, the frame processing unit 50 transfers the MC user frame from the destination MLAG port and exits from the subroutine (step S306).
In the foregoing, the invention made by the inventors 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.
Number | Date | Country | Kind |
---|---|---|---|
2013-169820 | Aug 2013 | JP | national |