CN106878180B - Cluster router route control method and device and cluster router - Google Patents
Cluster router route control method and device and cluster router Download PDFInfo
- Publication number
- CN106878180B CN106878180B CN201611206450.1A CN201611206450A CN106878180B CN 106878180 B CN106878180 B CN 106878180B CN 201611206450 A CN201611206450 A CN 201611206450A CN 106878180 B CN106878180 B CN 106878180B
- Authority
- CN
- China
- Prior art keywords
- multicast
- mpu
- lcc
- message
- mpus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the invention provides a cluster router route control method, a device and a cluster router, wherein the method is applied to the cluster routers which are connected back to back, and comprises the following steps: when a first MPU of a first LCC receives a multicast adding message sent by any MPU of a second LCC, if a source frame is not stored in the first MPU and is a multicast table item of the second LCC, and a multicast table item synchronous link list of the first MPU comprises an identifier of the second LCC, the first MPU sends a multicast table item deleting message to the second MPU through a port connected with the second MPU; when the first MPU receives the multicast table item deletion response message sent by the second MPU, the first MPU creates a multicast table item of which the source frame is the second LCC, and takes a port receiving the multicast adding message as an input port of the multicast table item of which the source frame is the second LCC; and then sending a multicast join response message to the MPU which sends the multicast join message.
Description
Technical Field
The present invention relates to the field of communications technologies, and in particular, to a method and an apparatus for controlling a cluster router and a cluster router.
Background
With the continuous development of the internet, a router serving as a network core device also faces new challenges, and a single router cannot meet the capacity requirement of data exchange. The cluster router is a system formed by mutually and directly connecting a plurality of stand-alone routers, and Main Processing Units (MPUs) of the plurality of stand-alone routers are mutually connected through optical fibers to realize mutual communication.
The cluster router is also divided into a control plane and a data plane, as with a stand-alone router, wherein the control plane is responsible for managing and controlling devices, the data plane is responsible for forwarding user data, and the control plane and the data plane use completely independent physical lines. The physical links used by the control plane are referred to as control channels and the physical links used by the data plane are referred to as data channels. The cluster router is mainly divided into a cluster connected back-to-back and a cluster connected through a center frame. The cluster connected back to back is a cluster router formed by directly connecting MPUs of two single routers with each other; in the cluster connected by the Central frame, a Chassis of one router serves as a Central Frame (FCC), other Chassis serve as Line Card Chassis (LCCs), MPUs in the LCCs are all connected with a Control Connection Unit (CCU) in the FCC, and the CCU is responsible for forwarding messages between the LCCs. The whole cluster router forms a unified system, and is embodied as a device.
In order to improve the reliability of the system, each LCC in the cluster router is provided with two MPUs, and the two MPUs are backups of each other. The control channel of the cluster router also improves reliability by adding redundant physical links. In back-to-back connected clusters, each MPU has at least two cluster ports, which are connected to two MPUs of another LCC, respectively, so that each MPU and another LCC has at least two physical control links. The cluster port refers to a port connected between LCCs in a cluster router.
The cross-frame communication of the cluster router is divided into a unicast mode and a multicast mode, wherein the cross-frame unicast communication determines the route of the cross-frame unicast communication through a unicast routing table stored in each MPU, and the cross-frame multicast communication determines the route of the cross-frame multicast communication based on the optimal unicast routing stored in each MPU. When a certain MPU in the cluster router senses that a cross-frame unicast optimal link in a control channel fails, the MPU is switched to another link of the MPU and a target MPU to establish a unicast route, and then the changed unicast route is notified to a multicast control channel to rebuild a multicast table entry. In order to reduce unnecessary switching and ensure the stability of a control channel, even if the unicast optimal link has temporary failure and is recovered quickly, the unicast route is not switched back to the unicast optimal link.
However, the pruning message for deleting the cross-frame multicast entry and the multicast join message for reconstructing the multicast entry are respectively sent from two different cluster ports of the MPU, and the time sequence of the two messages reaching another LLC is uncertain. Since two different cluster ports of an MPU are connected to two different MPUs in another LCC, respectively. If the multicast join message for reconstructing the multicast table entry arrives first and the multicast table entry is reconstructed, but the pruning message for deleting the cross-frame multicast table entry is not processed yet and the failed unicast optimal link is recovered to be normal, the multicast join message for reconstructing the multicast table entry forms a broadcast storm in the control channel of the cluster router due to the broadcast characteristic of the multicast message. The broadcast storm in the control channel may submerge the pruning message for deleting the cross-frame multicast table entry, thereby causing the broadcast storm to be unable to disappear.
Disclosure of Invention
The embodiment of the invention aims to provide a method and a device for controlling the routing of a cluster router and the cluster router, which are used for solving the problem of multicast broadcast storm caused by the temporary failure of unicast routing in a back-to-back cluster router.
The specific technical scheme of the embodiment is as follows:
a first aspect provides a method for controlling routing of a cluster router, which is applied to cluster routers connected back to back, where the cluster router includes at least two LCCs, and each LCC includes at least two MPUs, and the method includes:
when a first MPU of a first LCC of the cluster router receives a multicast join message sent by any MPU of second LCCs of the cluster router, if a source frame is not stored in the first MPU and is a multicast table item of the second LCC, the first MPU judges whether a multicast table item synchronization chain table of the first MPU comprises an identifier of the second LCC or not, the multicast table item synchronization chain table is used for storing source frame identifiers in multicast table items stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores the multicast table item synchronization chain table;
if the multicast table item synchronization linked list of the first MPU comprises the identifier of the second LCC, the first MPU sends a multicast table item deletion message to the second MPU through a port connected with the second MPU, wherein the multicast table item deletion message is used for enabling the second MPU to delete the stored source frame as the multicast table item of the second LCC, and the first MPU and the second MPU are located in the same LCC;
when the first MPU receives a multicast table item deletion response message sent by the second MPU, the first MPU creates a multicast table item of which the source frame is the second LCC, and takes a port receiving the multicast adding message as an input port of which the source frame is the multicast table item of the second LCC;
and after the first MPU creates a multicast table item with a source frame as a second LCC, the first MPU sends a multicast join response message to the MPU which sends the multicast join message.
In a possible implementation manner of the first aspect, after the first MPU determines whether a multicast entry synchronization linked list of the first MPU itself includes the second LCC, the method further includes:
if the multicast table item synchronization chain table of the first MPU does not include the identifier of the second LCC, the first MPU creates a multicast table item of which the source frame is the second LCC, and takes the port receiving the multicast adding message as an input port of the multicast table item of which the source frame is the second LCC.
In a possible implementation manner of the first aspect, after the first MPU creates a multicast entry whose source frame is the second LCC, the method further includes:
and the first MPU sends multicast table item creating information to other MPUs in the same LCC, wherein the multicast table item creating information comprises the identifier of the second LCC, so that the other MPUs in the same LCC with the first MPU store the identifier of the second LCC into a multicast table item synchronous linked list.
In a possible implementation manner of the first aspect, after the first MPU sends a multicast entry creation message to other MPUs in the same LCC, the method further includes:
the first MPU receives multicast table item establishing response messages sent by other MPUs in the same LCC;
after the first MPU creates a multicast entry with a source frame being a second LCC, the first MPU sends a multicast join response packet to the MPU that sends the multicast join packet, including:
when the first MPU creates a multicast table item of which the source frame is the second LCC and receives a multicast table item creation response message sent by other MPUs in the same LCC, the first MPU sends a multicast join response message to the MPU which sends the multicast join message in the second LCC.
In a possible implementation manner of the first aspect, after the first MPU sends a multicast entry creation message to other MPUs in the same LCC, the method further includes:
and if the first MPU does not receive the multicast entry creation response message sent by other MPUs in the same LCC within the preset time, retransmitting the multicast entry creation message by the first MPU until the first MPU receives the multicast entry creation response message sent by other MPUs in the same LCC.
In a possible implementation manner of the first aspect, the method further includes:
when the first MPU receives a multicast pruning message sent by any MPU in other LCCs, the first MPU deletes the table entry of the LCC of which the source frame is the MPU sending the multicast pruning message in the stored multicast table entry;
the first MPU sends a linked list item deleting message to other MPUs in the same LCC, wherein the linked list item deleting message comprises an identifier of the LCC to which the MPU sending the multicast pruning message belongs, and the linked list item deleting message is used for enabling the other MPUs in the same LCC to delete the identifier of the LCC to which the MPU sending the multicast pruning message belongs from a stored multicast list item synchronous linked list;
and after the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC, the first MPU sends a multicast pruning response message to the MPU sending the multicast pruning message.
In a possible implementation manner of the first aspect, after the first MPU sends a linked list entry deletion message to other MPUs in the same LCC, the method further includes:
and if the first MPU does not receive the linked list item deletion response messages sent by other MPUs in the same LCC within the preset time, retransmitting the linked list item deletion messages by the first MPU until the first MPU receives the linked list item deletion response messages sent by other MPUs in the same LCC.
A second aspect provides a cluster router route control apparatus, configured to control cluster routers connected back to back, where the cluster router includes at least two LCCs, and each LCC includes at least two MPUs, and the apparatus includes:
a determining module, configured to determine, when a first MPU of a first LCC of the cluster router receives a multicast join packet sent by any MPU of second LCCs of the cluster router, if a source frame is not stored in the first MPU as a multicast entry of the second LCC, whether a multicast entry synchronization chain table of the first MPU itself includes an identifier of the second LCC or not is determined, where the multicast entry synchronization chain table is used to store source frame identifiers in multicast entries stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores the multicast entry synchronization chain table;
a sending module, configured to send, when the determining module determines that the multicast entry synchronization linked list of the first MPU itself includes the identifier of the second LCC, a multicast entry deletion message to the second MPU through a port where the first MPU is connected to the second MPU, where the multicast entry deletion message is used to enable the second MPU to delete a multicast entry stored in a source frame of the second LCC, and the first MPU and the second MPU are located in the same LCC;
a creating module, configured to create a multicast entry of which a source frame is a second LCC when the first MPU receives a multicast entry deletion response message sent by the second MPU, and use a port that receives the multicast join packet as a source frame as an ingress port of the multicast entry of the second LCC;
the sending module is further configured to send a multicast join response packet to the MPU that sends the multicast join packet after the creation module creates the multicast entry whose source frame is the second LCC.
In a possible implementation manner of the second aspect, the creating module is further configured to create a multicast entry whose source frame is a second LCC when the determining module determines that the multicast entry synchronization linked list of the first MPU does not include the multicast entry of the second LCC, and use a port that receives the multicast join packet as an ingress port of the source frame that is the multicast entry of the second LCC.
In a possible implementation manner of the second aspect, the sending module is further configured to send a multicast entry creating message to other MPUs in the same LCC after the creating module creates the multicast entry whose source frame is the second LCC, where the multicast entry creating message includes an identifier of the second LCC, so that the other MPUs in the same LCC as the first MPU store the identifier of the second LCC in a multicast entry synchronization linked list.
In a possible implementation manner of the second aspect, the apparatus further includes:
a receiving module, configured to receive a multicast entry creation response message sent by other MPUs in the same LCC after the sending module sends the multicast entry creation message to the other MPUs in the same LCC;
the sending module is specifically configured to send a multicast join response message to the MPU that sends the multicast join message in the second LCC after the creation module creates the multicast entry whose source frame is the second LCC and the receiving module receives a multicast entry creation response message sent by other MPUs in the same LCC.
In a possible implementation manner of the second aspect, the sending module is further configured to, after sending the multicast entry creation message to other MPUs in the same LCC, if the receiving module does not receive the multicast entry creation response message sent by other MPUs in the same LCC within a preset time, retransmit the multicast entry creation message until the first MPU receives the multicast entry creation response message sent by other MPUs in the same LCC.
In a possible implementation manner of the second aspect, the apparatus further includes: a deleting module, configured to delete, in a stored multicast entry, an entry of an LCC to which a source frame is an MPU that sends a multicast pruning message when the first MPU receives the multicast pruning message sent by any one of other MPUs;
the sending module is further configured to send a linked list item deletion message to other MPUs in the same LCC, where the linked list item deletion message includes an identifier of an LCC to which the MPU that sent the multicast pruning message belongs, and the linked list item deletion message is used to cause the other MPUs in the same LCC to delete, from a stored multicast list item synchronization linked list, the identifier of the LCC to which the MPU that sent the multicast pruning message belongs; and after receiving the linked list item deletion response message sent by other MPUs in the same LCC, the first MPU sends a multicast pruning response message to the MPU sending the multicast pruning message.
In a possible implementation manner of the second aspect, the sending module is further configured to, after sending the linked list item deletion message to other MPUs in the same LCC, if the first MPU does not receive the linked list item deletion response message sent by other MPUs in the same LCC within a preset time, retransmit the linked list item deletion message until the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC.
A third aspect provides a cluster router, where the cluster router is a cluster router connected back-to-back, the cluster router includes at least two LCCs, each LCC includes at least two MPUs, the at least two LCCs include a first LCC and a second LCC, and the first LCC includes a first MPU:
the first MPU is configured to, when receiving a multicast join message sent by any one MPU in the second LCCs, determine whether a multicast entry synchronization chain table of the first MPU includes an identifier of the second LCC if the first MPU does not store a source frame that is a multicast entry of the second LCC, where the multicast entry synchronization chain table is used to store source frame identifiers in multicast entries stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores the multicast entry synchronization chain table; if the stored multicast table item synchronization linked list comprises the identifier of the second LCC, sending a multicast table item deletion message to a second MPU through a port connected with the second MPU, wherein the multicast table item deletion message is used for enabling the second MPU to delete the stored source frame as a multicast table item of the second LCC, and the first MPU and the second MPU are located in the same LCC; when receiving a multicast table item deletion response message sent by the second MPU, creating a multicast table item of which the source frame is the second LCC, and taking a port receiving the multicast adding message as an input port of the multicast table item of which the source frame is the second LCC; and after the first MPU creates a multicast table item of which the source frame is the second LCC, sending a multicast adding response message to the MPU which sends the multicast adding message.
In a possible implementation manner of the third aspect, the first MPU is further configured to create a multicast entry with a source frame being a second LCC if the stored multicast entry synchronization linked list does not include the identifier of the second LCC, and use a port that receives the multicast join packet as an ingress port of the source frame being the multicast entry of the second LCC.
In a possible implementation manner of the third aspect, the first MPU is further configured to send a multicast entry creation message to other MPUs in the same LCC after creating a multicast entry whose source frame is a second LCC, where the multicast entry creation message includes an identifier of the second LCC, so that other MPUs in the same LCC as the first MPU store the identifier of the second LCC in a multicast entry synchronization linked list.
In a possible implementation manner of the third aspect, the first MPU is further configured to receive a multicast entry creation response message sent by another MPU in the same LCC; and when the multicast table item with the source frame as the second LCC is created and the multicast table item creation response message sent by other MPUs in the same LCC is received, sending a multicast adding response message to the MPU sending the multicast adding message in the second LCC.
In a possible implementation manner of the third aspect, the first MPU is further configured to retransmit the multicast entry creation message until the first MPU receives a multicast entry creation response message sent by another MPU in the same LCC, if the multicast entry creation response message sent by another MPU in the same LCC is not received within a preset time.
In a possible implementation manner of the third aspect, the first MPU is further configured to delete, when receiving a multicast prune packet sent by any MPU in other LCCs, an entry of an LCC to which a source frame is the MPU that sends the multicast prune packet belongs from a stored multicast entry; sending a linked list item deleting message to other MPUs in the same LCC, wherein the linked list item deleting message comprises an identifier of the LCC to which the MPU which sends the multicast pruning message belongs, and the linked list item deleting message is used for enabling the other MPUs in the same LCC to delete the identifier of the LCC to which the MPU which sends the multicast pruning message belongs from a stored multicast list item synchronous linked list; and after receiving the linked list item deletion response message sent by other MPUs in the same LCC, sending a multicast pruning response message to the MPU sending the multicast pruning message.
In a possible implementation manner of the third aspect, the first MPU is further configured to retransmit the linked list item deletion message until the first MPU receives the linked list item deletion response message sent by another MPU in the same LCC, if the linked list item deletion response message sent by another MPU in the same LCC is not received within a preset time.
In the cluster router, when a first MPU of a first LCC receives a multicast join message sent by any MPU in second LCCs of the cluster router, if the first MPU does not store a multicast entry whose source frame is the second LCC and a multicast entry synchronization linked list of the first MPU itself includes an identifier of the second LCC, the first MPU sends a multicast entry deletion message to the second MPU through a port connected to the second MPU in the first LCC, so that the second MPU deletes a stored source frame as the multicast entry of the second LCC, wherein the multicast entry synchronization linked list is used for storing source frame identifiers in multicast entries stored in other MPUs in the same LCC, and when the first MPU receives a multicast entry deletion response message sent by the second MPU, creates a multicast entry whose source frame is the second LCC, the multicast broadcast storm which occurs after the unicast route switching occurs when the unicast link temporarily fails in the back-to-back cluster router is avoided, and the normal work of the control channel of the cluster router is ensured. Of course, it is not necessary for any product or method of practicing the invention to achieve all of the above-described advantages at the same time.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a schematic diagram of a cluster router connected back-to-back;
fig. 2 is a multicast processing flow after unicast switching occurs in the cluster router shown in fig. 1;
fig. 3 is a flowchart of a first embodiment of a method for controlling a cluster router according to the present invention;
fig. 4 is a schematic diagram illustrating a multicast entry adding process in a back-to-back cluster router according to an embodiment of the present invention;
fig. 5 is a schematic diagram illustrating a processing flow of a pruning message in a back-to-back cluster router according to an embodiment of the present invention;
fig. 6 is a flowchart of a second embodiment of a method for controlling a cluster router according to the present invention;
FIG. 7 is a hardware block diagram of a controller;
fig. 8 is a schematic structural diagram of a first embodiment of a cluster router routing control apparatus according to the present invention;
fig. 9 is a schematic structural diagram of a second embodiment of a cluster router routing control apparatus according to the present invention;
fig. 10 is a schematic structural diagram of a second cluster router routing control apparatus according to an embodiment of the present invention;
fig. 11 is a schematic structural diagram of a cluster router provided in the embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The cluster router is divided into two structures of cluster routers connected through FCC and routers connected back-to-back, wherein the cluster routers connected back-to-back comprise at least two LCCs. Fig. 1 is a schematic structural diagram of cluster routers connected back to back. Fig. 1 shows only a cluster router formed by two LCCs connected back-to-back, and each LCC includes two MPUs, but the number of LCCs in the cluster router connected back-to-back and the number of MPUs in each LCC are not limited to this.
As shown in fig. 1, the cluster router includes LCCs 11 and 12, MPU13 and MPU14 included in LCC11, and MPU15 and MPU16 included in LCC 12. The LCC11 and the LCC12 both comprise two MPUs, and the main backup of the MPUs is realized. One of the two MPUs in each LCC is a main MPU and the other is a standby MPU, where MPU13 is the main MPU of LCC11, MPU15 is the main MPU of LCC12, MPU14 is the standby MPU of LCC11, and MPU16 is the standby MPU of LCC 12.
In order to improve the reliability of the control channel of the cluster router, each MPU in each LCC inside the cluster is connected to other LCCs through at least two cluster ports, specifically, each MPU in each LCC inside the cluster is connected to each MPU in other LCCs inside the cluster through a cluster port, so as to implement redundant backup of the cluster control channel. Taking fig. 1 as an example, in fig. 1, taking as an example that each MPU is connected to other LCCs through two cluster ports, MPU13, MPU14, MPU15, and MPU16 are connected across frames with each MPU in another LCC, respectively. MPU13 is connected to MPU15 via port 1, MPU13 is connected to MPU16 via port 2, MPU14 is connected to MPU16 via port 1, MPU14 is connected to MPU15 via port 2, MPU15 is connected to MPU13 via port 1, MPU15 is connected to MPU14 via port 2, MPU16 is connected to MPU14 via port 1, and MPU16 is connected to MPU13 via port 2. In 4 links between two LCCs, as long as 1 is normal, the whole cluster can work normally. In addition, in each LCC, MPUs are also connected by a reliable line in the chassis, which belongs to a part of the chassis, and the connection is reliable and cannot be changed. The MPU13 and the MPU14, and the MPU15 and the MPU16 are connected to each other, and ports that are connected in-frame between the MPUs are referred to as ports 5 of the MPUs.
In the cluster router, the cross-frame communication is divided into cross-frame unicast communication and cross-frame multicast communication. For the cross-frame unicast communication, in order to ensure the isolation of the control flow, the cluster control channel allows the traffic destined for other frames to be transmitted in different Virtual Local Area Networks (VLANs), which all belong to the reserved VLANs inside the cluster and cannot be used by users. The cross-frame unicast function is subdivided into three parts: 1. the upper layer protocol module generates or learns the unicast route of the destination frame from the network; 2. the drive converts the destination frame routing information into table item information of all CPU nodes related to the control channel in the destination frame and writes the table item information into the chip, wherein the destination address of the table item information is represented by a frame (Chassis) number, a Slot (Slot) number and a CPU number, and is consistent with the destination address of the control flow message (because the control flow is finally sent to a specific CPU); 3. when the control stream occurs, the chip checks the table entry for forwarding. For cross-frame multicast communication, as with unicast, traffic from different source frames is also isolated using the VLAN reserved by the cluster (for each frame there is one unicast VLAN and one multicast VLAN).
For cross-frame unicast communication, a unicast routing table is stored on each MPU and the CCU, and when the MPUs perceive a unicast control message, the unicast routing tables are inquired to determine the routing of the unicast control message, so that forwarding of the unicast control message is realized. Table 1 shows a unicast routing table stored in MPU13 in LCC11, and table 2 shows a unicast routing table stored in MPU14 in LCC11, where the port numbers of the output ports are both the port numbers of MPU13 or MPU14, and the overhead indicates that the route needs to pass through several boards (MPUs) to reach the destination frame. Each MPU will select the route with the least overhead among routes to the destination box as the optimal route. The unicast routing tables in the MPUs in LCC12 are similar to tables 1 and 2.
TABLE 1 unicast routing table for MPU13
TABLE 2 unicast routing table for MPU14
Destination frame | Output port | Overhead | Whether the route is |
LCC | |||
12 | 1 | 0 | Is that |
|
2 | 0 | Whether or not |
|
5 | 1 | Whether or not |
And the optimal route in the unicast routing table stored by each MPU can be periodically diffused into the network so as to ensure that all frames in the cluster router have the routing reach. And non-optimal routes in the unicast routing table maintained by each MPU will not be flooded.
The cross-frame multicast communication in the cluster router is determined by means of the optimal unicast route in the unicast routing table of each MPU. Because the cross-frame multicast messages in the current cluster router are all broadcast-sent, in order to avoid the occurrence of mutually conflicting multicast entries in the cluster, only one MPU can establish multicast entries on a software layer at the same time in one machine frame. Generally, each subrack establishes a multicast table entry for the same multicast source by the main MPU according to the optimal unicast route.
In conjunction with the unicast optimal routes in tables 1 and 2, it can be known that the LCC11 will create a multicast entry on the MPU13, as shown in table 3. Wherein, the source frame represents the source machine frame for sending the multicast control message, the input port represents the port for receiving the multicast control message of the corresponding source frame, the output port represents the port for sending the multicast control message of the corresponding source frame, and the port numbers in table 3 are the port numbers of the MPU 13.
Table 3 multicast routing table for MPU13
Source frame | Input port | Exit port list |
LCC 11 | Is free of | 1 |
|
1 | Is free of |
For the MPU14 in the LCC11, no multicast entry will be stored since it is the backup MPU.
And the control message in the cluster router is transmitted according to the unicast routing table and the multicast routing table respectively. However, when a link of a unicast optimal route in the cluster router fails, the unicast route is immediately switched and a multicast reestablishment entry is notified in order to ensure the transmission of the unicast control packet. Even if the link of the unicast optimal route is recovered to normal quickly, the unicast optimal route is not switched back to the recovered route, which is to reduce unnecessary switching procedures to ensure the relative stability of the control channel.
Still taking the cluster router shown in fig. 1 as an example, assuming that an optimal unicast link from the MPU13 to the MPU15 has a temporary failure, that is, a link where the MPU13 is connected to the MPU15 through the port 1 has a temporary failure, the MPU13 switches the unicast route to the MPU15 to a link connected to the MPU16 through the port 2 according to the unicast route table shown in table 1. For such switching, the multicast module of the MPU13 performs the processing shown in fig. 2. Fig. 2 is a multicast processing flow after unicast switching occurs in the cluster router shown in fig. 1.
As shown in fig. 2, when the MPU13 has a temporary failure in the link connected to the MPU15 via the port 1, the MPU13 switches the unicast route to switch the output port of the unicast route to the LCC12 to the port 2, and then the MPU13 notifies the multicast module that the unicast route switching has occurred. At this time, if the fault of the link connected between the MPU13 and the MPU15 through the port 1 is recovered quickly, since the multicast module in the MPU13 senses that the unicast route is switched, the multicast pruning message is sent on the port 1, so that the opposite end removes the multicast entry whose original source frame is the LCC11, and the multicast entry residue is avoided. Subsequently, the MPU13 adds the port 2 as an output port of the multicast entry whose source frame is the LCC11, and sends a multicast join message on the port 2. For the MPU16 in the LCC12, after receiving the multicast join message sent by the MPU13, a new multicast entry is created, and the hardware driver is notified of the new multicast entry, and then the MPU16 may transmit the multicast message according to the newly created multicast entry. And after receiving the pruning message, the MPU15 deletes the multicast table entry of which the original source frame is the LCC 11. However, as can be seen from fig. 2, the timing at which the MPU15 receives the prune message and the MPU16 receives the multicast join message is variable.
If the link between the MPU13 and the MPU15 recovers quickly after a failure occurs, and after the multicast join message sent by the MPU13 to the MPU16 through the port 2 reaches the MPU16 and is processed by the MPU16, the pruned message sent by the MPU13 to the MPU15 through the port 1 reaches the MPU15, at this time, the MPU13 may have started transmission of the multicast control message through the newly established multicast entry. Then, based on the broadcast characteristic of the multicast message, when the MPU13 broadcasts the multicast control message to the MPU16 through the newly established multicast port, i.e., port 2 of the MPU13, the MPU16 receives the multicast control message and then continues to forward the multicast control message to the MPU15 through port 5, and if the MPU15 does not yet receive the prune message sent by the MPU13 at this time, the MPU15 continues to send the multicast control message according to the original multicast entry, i.e., continues to forward the multicast control message to the MPU13 through port 1 of the MPU 15. As can be seen from fig. 1, a closed loop is formed among the MPUs 13, 16 and 15, and the multicast control packet may be continuously forwarded in the closed loop to fill the entire control channel, thereby forming a broadcast storm. If the MPU15 does not receive the prune packet sent by the MPU13 when the broadcast storm is formed, the MPU15 may not receive the prune packet any more, so that the broadcast storm cannot disappear, and the packet transmission of the multicast control channel of the cluster router is affected.
In order to avoid the broadcast storm shown in fig. 2, embodiments of the present invention provide a method for controlling a cluster router route, which will be described in detail in the following embodiments.
Fig. 3 is a flowchart of a first embodiment of a method for controlling a cluster router according to an embodiment of the present invention, and as shown in fig. 3, the method according to the embodiment includes:
step S301, when a first MPU of a first LCC of a cluster router receives a multicast join message sent by any MPU of second LCCs of the cluster router, if the first MPU does not store a source frame as a multicast entry of the second LCC, the first MPU judges whether a multicast entry synchronization linked list of the first MPU comprises an identifier of the second LCC, the multicast entry synchronization linked list is used for storing source frame identifiers in multicast entries stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores a multicast entry synchronization linked list.
The method for controlling routing of a cluster router provided in this embodiment is applied to a cluster router connected back to back, where the cluster router includes at least two LCCs, each LCC includes at least two MPUs, and the description below takes an example that the back-to-back cluster router includes two LCCs, and each LCC includes two MPUs.
As can be seen from the flow shown in fig. 2, the reason that the broadcast storm occurs after the cluster router has unicast switching is that when the MPU in the LCC as the slave frame does not receive the multicast prune packet sent by the master frame, the master frame already sends the multicast control packet according to the newly created multicast entry, and the multicast control packet may continue to be broadcast to the master frame through the multicast entry that is not deleted, so that the broadcast storm is formed, and the multicast prune packet may be submerged. Since the multicast table entry is only stored in one MPU in the LCCs, and an MPU that does not store the multicast table entry may forward the multicast control packet incorrectly, in this embodiment, it is considered that each MPU in one LCC knows which multicast table entries of the source frame are stored in other LCCs in the same frame, thereby avoiding a broadcast storm.
Therefore, a multicast table synchronization linked list is established in each MPU in the cluster router, the multicast table synchronization linked list is used for storing the source frame identifiers in the multicast table entries stored in other MPUs in the same LCC, and each MPU can know which multicast table entries of source frames are stored in other MPUs in the same LCC through the multicast table synchronization linked list. Because the multicast table entry of the source frame as the frame is established by the MPU in the frame, the problem of broadcast storm caused by the multicast table entry not being deleted does not exist, and the multicast table entry synchronization linked list can not include the identifier of the LCC. When the first MPU of the first LCC receives the multicast join message sent by any MPU in the second LCCs in the cluster router, the first MPU first determines whether the first MPU stores the multicast entry whose source frame is the second LCC, and if the first MPU stores the multicast entry whose source frame is the second LCC, the first MPU only modifies the stored multicast entry according to the multicast join message. If the source frame is not stored in the first MPU as the multicast entry of the second LCC, in order to avoid establishing multicast entries of the same source frame in multiple MPUs in the same LCC, the first MPU needs to determine whether the multicast entry synchronization linked list stored in the first MPU includes the identifier of the second LCC. The identifier of the second LCC is information that can uniquely determine the second LCC, such as a frame number of the second LCC.
Step S302, if the multicast table item synchronization linked list of the first MPU itself includes the identifier that the source frame is the second LCC, the first MPU sends a multicast table item deleting message to the second MPU through a port connected with the second MPU, the multicast table item deleting message is used for enabling the second MPU to delete the stored source frame as the multicast table item of the second LCC, and the first MPU and the second MPU are located in the same LCC.
If the first MPU judges that the multicast table item synchronization linked list of the first MPU comprises the identifier of the second LCC, the multicast table item with the source frame as the second LCC is stored on other MPUs in the first LCC. At this time, the first MPU does not establish the multicast entry whose source frame is the second LCC, but sends a multicast entry deletion message to the second MPU through a port where the first MPU is connected with the second MPU, where the multicast entry deletion message includes an identifier of the second LCC, and is used for enabling the second MPU to delete the multicast entry whose stored source frame is the second LCC. The second MPU and the first MPU are both located in the first LCC. If the first LCC comprises more than two MPUs, the first MPU respectively sends the multicast entry deletion message to a plurality of MPUs in the same LCC.
Step S303, when the first MPU receives the multicast entry deletion response message sent by the second MPU, the first MPU creates a multicast entry whose source frame is the second LCC, and uses the port that receives the multicast join packet as an ingress port of the multicast entry whose source frame is the second LCC.
And after the second MPU deletes the multicast table item of which the source frame is the second LCC, sending a multicast table item deletion response message to the first MPU. The first MPU receives the multicast table item deleting response message, knows that the second MPU deletes the multicast table item of which the source frame is the second LCC, and then the first MPU creates the multicast table item of which the source frame is the second LCC. And in the multicast table entry of which the source frame created by the first MPU is the second LCC, the port receiving the multicast adding message is used as an input port of the multicast table entry of which the source frame is the second LCC. Since the multicast entry whose source frame is the second LCC has been deleted in the second MPU, only the multicast entry whose source frame is the second LCC exists in the first MPU at this time, and the broadcast storm shown in fig. 2 does not occur any more.
Step S304, after the first MPU creates the multicast table item with the source frame as the second LCC, the first MPU sends a multicast join response message to the MPU sending the multicast join message.
After the first MPU creates a multicast entry whose source frame is the second LCC, the first MPU further needs to send a multicast join response message to the MPU that sends the multicast join message, thereby completing multicast route switching of the cluster router.
In the cluster router connected back to back, when a first MPU of a first LCC receives a multicast join message sent by any MPU in second LCCs of the cluster router, if the first MPU does not store a source frame as a multicast entry of the second LCC and a multicast entry synchronization linked list of the first MPU itself includes an identifier of the second LCC, the first MPU sends a multicast entry deletion message to the second MPU through a port connected to the second MPU in the first LCC, so that the second MPU deletes a stored source frame as the multicast entry of the second LCC, where the multicast entry synchronization linked list is used to store source frame identifiers in multicast entries stored in other MPUs in the same LCC, and when the first MPU receives a multicast entry deletion response message sent by the second MPU, a multicast entry with the source frame as the second LCC is created, thereby avoiding a situation where, in the cluster router connected back to back, when the unicast link fails temporarily, the multicast broadcast storm occurs after the unicast routing is switched, and the normal work of the control channel of the cluster router is ensured.
Further, in the embodiment shown in fig. 3, in step S301, if the first MPU determines that the multicast table entry synchronization linked list of the first MPU itself does not include the identifier of the second LCC, the first MPU may directly create the multicast table entry whose source frame is the second LCC, and use a port that receives the multicast join packet as an ingress port of the multicast table entry whose source frame is the second LCC. This is because, if the multicast table entry synchronization linked list of the first MPU does not include the identifier of the second LCC, it means that all MPUs in the first LCC store multicast table entries whose source frames are the second LCC, and after the first MPU creates multicast table entries whose source frames are the second LCC, only one MPU in the first LCC still stores multicast table entries whose source frames are the second LCC.
Further, in the embodiment shown in fig. 3, no matter which way the first MPU creates the multicast entry whose source frame is the second LCC, in order to make other MPUs in the first LCC know the change of the multicast entry in the first MPU, the first MPU may also send a multicast entry creation message to other MPUs in the same LCC. The multicast table item creating message comprises the identifier of the second LCC, and the multicast table item creating message is used for enabling other MPUs in the same LCC as the first MPU to store the identifier of the second LCC into the multicast table item synchronization linked list. The first MPU sends a multicast entry creation message to the other MPUs through links connected with the other MPUs within the same LCC. After the first MPU sends the identifier of the second LCC to other MPUs in the same LCC, the other MPUs know that multicast entries whose source frames are the second LCC are already stored in the cluster and in the MPUs. Then when the unicast route switching occurs again, other MPUs can also perform processing according to the route control method shown in fig. 3, thereby avoiding the occurrence of multicast broadcast storm.
Further, in order to further avoid the occurrence of broadcast storm in the control channel, after the first MPU transmits the multicast entry creation message to other MPUs in the same LCC, the first MPU needs to receive the multicast entry creation response message transmitted by other MPUs in the same LCC. The multicast list item creating response message is sent after the other MPUs store the identifier of the second LCC in the multicast list item synchronization linked list. And when the first MPU creates a multicast table item of which the source frame is the second LCC and receives multicast table item creation response messages sent by other MPUs in the same LCC, the first MPU sends a multicast join response message to the MPU which sends the multicast join message in the second LCC. The second LCC will confirm that the first MPU has completed the change of the multicast table entry. This avoids the following situations: the first MPU creates a multicast entry whose source frame is the second LCC, but when other MPUs in the first LCC have not changed the multicast entry synchronization linked list, the connection link between the first MPU and the second LCC fails again and unicast route switching occurs, and other MPUs in the first LCC have not changed the multicast entry synchronization linked list, so a broadcast storm as shown in fig. 2 may still occur.
Further, in order to ensure that other MPUs located in the same LCC as the first MPU update the stored multicast entry synchronization linked list, the first MPU may also retransmit the multicast entry creation message. After the first MPU sends the multicast table item establishing message, if the first MPU does not receive the multicast table item establishing response message sent by other MPUs in the same LCC within the preset time, the first MPU retransmits the multicast table item establishing message. Until the first MPU receives the multicast table item creating response message sent by other MPUs in the same LCC, or the retransmission times of the multicast table item creating message reach a preset threshold value.
Further, after the first MPU creates a multicast entry whose source frame is the second LCC, if the cluster link fails again, the first MPU may receive a multicast prune packet sent by any MPU in other LCCs in the cluster, where the multicast prune packet is used to delete the multicast entry stored in the first MPU. Of course, it is also possible for other MPUs in the first LCC to receive multicast prune messages. For example, in the embodiment shown in fig. 3, the reason why the first MPU receives the multicast join message may be that a link between the second MPU in the first LCC and the second LCC fails, and then the second MPU also receives the multicast prune message sent by the second LCC. When the first MPU receives the multicast pruning message sent by any MPU in other LCCs, the first MPU deletes the entry of the LCC of which the source frame is the MPU sending the multicast pruning message in the stored multicast entry. Meanwhile, in order to enable other MPUs in the same LCC to know the change of the multicast table entry in the first MPU, when the first MPU deletes the multicast table entry, the first MPU also sends a linked list entry deletion message to the other MPUs in the same LCC, wherein the linked list entry deletion message comprises the identifier of the LCC to which the MPU sending the multicast pruning message belongs. And the linked list item deleting message is used for enabling other MPUs in the same LCC to delete the identifier of the LCC to which the MPU sending the multicast pruning message belongs from the stored multicast list item synchronous linked list. When other MPUs in the first LCC delete the identification of the LCC to which the MPU sending the multicast pruning message belongs, a linked list item deletion response message is sent to the first MPU, and after the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC, the first MPU sends the multicast pruning response message to the MPU sending the multicast pruning message, so that the pruning flow of the multicast message is completed. After the multicast message pruning process, other MPUs in the first LCC except the first MPU also know the multicast entry change in the first MPU, and when the unicast route is switched due to a link failure again, each MPU can accurately judge the multicast messages stored in the other MPUs in the first LCC according to the changed multicast entry synchronous linked list, thereby determining whether to create a new multicast message.
Further, in order to ensure that other MPUs located in the same LCC as the first MPU delete the multicast entries in the stored multicast entry synchronization linked list, the first MPU may also retransmit the linked list entry deletion message. After the first MPU sends the linked list item deleting message, if the first MPU does not receive the linked list item deleting response message sent by other MPUs in the same LCC within the preset time, the first MPU retransmits the linked list item deleting message. And until the first MPU receives linked list item deleting response messages sent by other MPUs in the same LCC, or the retransmission times of the linked list item deleting messages reach a preset threshold value.
The cluster router shown in fig. 1 is taken as an example to further describe the routing control method of the cluster router provided in the present invention. When the optimal unicast link from MPU13 to MPU15 fails temporarily in the embodiment shown in fig. 1, MPU13 sends a prune packet to MPU15 through port 1, and determines that the routing overhead to LCC12 through port 2 is the smallest among other unicast routes from MPU13 to LCC12 after querying the unicast routing table. The MPU13 will send a multicast join message to MPU16 at port 2. Since the original multicast entry in the LCC12 is stored in the MPU15, when the MPU15 has not received the prune message, if the MPU16 has received the multicast join message and created the multicast entry, a broadcast storm as shown in fig. 2 may occur.
Considering that there is also a reliable connection between MPUs in each LCC, connected through respective ports 5, embodiments of the present invention consider solving the above problem with this connection. Firstly, a multicast table item synchronization linked list is added in each MPU, and the multicast table item synchronization linked list is used for storing source frame identifiers in multicast table items stored in other MPUs in the same LCC. When the MPU receives the multicast adding message, firstly, whether the stored multicast table item synchronous linked list comprises the LCC mark for sending the multicast adding message is confirmed, and then the MPU carries out subsequent processing.
After introducing the multicast table entry synchronization linked list, after completing the connection of the cluster routers, the flow of creating the multicast routing table for the first time is shown in fig. 4. Fig. 4 is a schematic diagram illustrating a multicast entry adding process in a back-to-back cluster router according to an embodiment of the present invention. When the MPU15 in the LCC12 receives the multicast join message sent by the LCC11 from the port 1, since each MPU in the LCC12 does not store any multicast entry yet, the MPU15 creates a multicast entry whose source frame is the LCC11, and the upstream port is the port 1. Then, the MPU15 sends a multicast entry creation message to the MPU16 through the port 5, where the multicast entry creation message carries the identifier of the LCC 11. The MPU16 analyzes the multicast table creation message, acquires the identifier of the LCC11, and adds the identifier of the LCC11 to the multicast table synchronization linked list stored in the MPU. The MPU16 then transmits a multicast entry creation response message to the MPU 15. After receiving the multicast entry creation response message, the MPU15 sends a multicast join response message to the LCC11, thereby completing the creation of the multicast entry.
Fig. 5 is a schematic diagram of a process flow of pruning message in a back-to-back cluster router according to an embodiment of the present invention. Similarly, taking the MPU15 as an example, when the MPU15 receives the prune packet sent by the LCC11 through the port 1, the MPU15 searches the multicast routing table for the multicast entry whose source frame is the LCC11, and deletes the multicast entry. Then, the MPU15 sends a linked list entry deletion message to the MPU16 through the port 5, wherein the linked list entry deletion message carries the identifier of the LCC 11. MPU16 analyzes the linked list item deleting message and then obtains the LCC11 mark, and deletes the LCC11 mark in the stored multicast list item synchronous linked list. The MPU16 then transmits a linked list entry deletion response message to the MPU 15. After receiving the linked list item deletion response message, the MPU15 sends a pruning response message to the LCC11, thereby completing the processing of the pruning message.
For each MPU in the cluster router, after storing the multicast table entry synchronization linked list, when receiving a multicast join message or a prune message, the MPU performs processing according to the flow shown in fig. 4 or 5. Then, when the MPU13 has a temporary failure on the optimal unicast link to the MPU15, the MPU13 will perform processing according to the flow shown in fig. 6 after sending a multicast join message to the MPU16 at port 2. Fig. 6 is a flowchart of a second embodiment of a method for controlling a cluster router according to the present invention. When the optimal unicast link from the MPU13 to the MPU15 has a temporary failure, the MPU16 receives a multicast join message transmitted by the MPU13 from the port 2 in step S601. Since the MPU16 does not store the multicast entry, in step S602, the MPU16 determines whether the identifier of the LCC11 is included in the multicast entry synchronization linked list of itself. If the determination in S602 is no, it means that none of the MPUs in the LCC12 stores the multicast entry whose source frame is LCC11, then step S603 is executed, that is, the MPU16 creates the multicast entry whose source frame is LCC11, and uses port 2 as the entry port of the entry. If the determination in S602 is yes, the MPU other than the MPU16 in the LCC12 (i.e., MPU 15) stores the multicast entry having the source frame of the LCC 11. The MPU16 transmits a multicast entry deletion message carrying the identification of the LCC11 to the MPU15 through the port 5, i.e., performs step S604. Subsequently, in step S605, the MPU15 deletes the multicast entry whose source frame is the LCC11 after receiving the multicast entry deletion message, and transmits a multicast entry deletion response message to the MPU 16. In step S606, if the MPU16 receives the multicast entry deletion response message transmitted by the MPU15, the MPU16 creates a multicast entry whose source frame is the LCC11, and sets the port 2 as an entry port of the entry. After step S603 or step S606, the MPU16 executes step S607 of notifying the multicast module to add the multicast entry whose source frame is the LCC 11.
Based on the same application concept as the method, the embodiment of the invention also provides a cluster router routing control device which is applied to the controller. The cluster router routing control device can be realized by software, or by hardware or a combination of hardware and software. A logical device, implemented in software for example, is formed by a processor on a controller that reads corresponding computer program instructions from a non-volatile memory. From a hardware aspect, as shown in fig. 7, the controller is a hardware structure diagram of the controller, and besides the processor and the nonvolatile memory shown in fig. 7, the controller may also include other hardware, such as a forwarding chip, a network interface, and a memory, which are responsible for processing a packet; in terms of hardware architecture, the controller may also be a distributed device, possibly including multiple interface cards, to extend message processing at the hardware level.
Fig. 8 is a schematic structural diagram of a first embodiment of a cluster router routing control device according to an embodiment of the present invention, where the cluster router routing control device is used to control cluster routers connected back to back. The back-to-back cluster router at least comprises two LCCs, and each LCC at least comprises two MPUs. As shown in fig. 8, the cluster router route control device provided in this embodiment includes:
the determining module 81 is configured to determine, when a first MPU of a first LCC of a cluster router receives a multicast join packet sent by any MPU of second LCCs of the cluster router, if the first MPU does not store a source frame as a multicast entry of the second LCC, determine whether a multicast entry synchronization linked list of the first MPU itself includes an identifier of the second LCC, where the multicast entry synchronization linked list is used to store source frame identifiers in multicast entries stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores a multicast entry synchronization linked list.
A sending module 82, configured to send, when the determining module 81 determines that the multicast entry synchronization linked list of the first MPU itself includes the identifier of the second LCC, a multicast entry deletion message to the second MPU through a port where the first MPU is connected to the second MPU, where the multicast entry deletion message is used to make the source frame where the second MPU deletes storage be the multicast entry of the second LCC, and the first MPU and the second MPU are located in the same LCC.
The creating module 83 is configured to, when the first MPU receives the multicast entry deletion response message sent by the second MPU, create a multicast entry whose source frame is the second LCC, and use a port that receives the multicast join packet as an ingress port of the multicast entry whose source frame is the second LCC.
The sending module 82 is further configured to send a multicast join response message to the MPU sending the multicast join message after the creation module 83 creates the multicast entry whose source frame is the second LCC.
The device for controlling a cluster router route provided in the embodiment of the present invention is used to implement the method for controlling a cluster router route shown in fig. 3, and the implementation principle and technical effect are similar, which are not described herein again.
It should be noted that the cluster router route control device provided in the embodiment of the present invention may be disposed in the first MPU, or may be disposed in the cluster router independently from the first MPU.
Further, in the embodiment shown in fig. 8, the creating module 83 is further configured to create, when the determining module 81 determines that the multicast table entry synchronization linked list of the first MPU does not include the identifier of the second LCC, a multicast table entry whose source frame is the second LCC, and use a port that receives the multicast join packet as an ingress port of the multicast table entry whose source frame is the second LCC.
Further, in the embodiment shown in fig. 8, the sending module 82 is further configured to send, after the creating module 83 creates the multicast entry whose source frame is the second LCC, a multicast entry creation message to other MPUs in the same LCC, where the multicast entry creation message includes an identifier of the second LCC, so that other MPUs in the same LCC as the first MPU store the identifier of the second LCC in the multicast entry synchronization linked list.
Fig. 9 is a schematic structural diagram of a second embodiment of the cluster router routing control apparatus according to the embodiment of the present invention, and as shown in fig. 9, the cluster router routing control apparatus according to this embodiment further includes, on the basis of fig. 8:
a receiving module 84, configured to receive the multicast entry creation response message sent by the other MPUs in the same LCC after the sending module 82 sends the multicast entry creation message to the other MPUs in the same LCC.
The sending module 82 is specifically configured to send a multicast join response message to the MPU sending the multicast join message in the second LCC after the creating module 83 creates the multicast entry whose source frame is the second LCC and the receiving module 84 receives the multicast entry creation response message sent by other MPUs in the same LCC.
Further, in the embodiment shown in fig. 9, the sending module 82 is further configured to, after sending the multicast entry creation message to other MPUs in the same LCC, if the receiving module 84 does not receive the multicast entry creation response message sent by other MPUs in the same LCC within a preset time, retransmit the multicast entry creation message until the first MPU receives the multicast entry creation response message sent by other MPUs in the same LCC.
Fig. 10 is a schematic structural diagram of a second embodiment of the cluster router routing control apparatus according to the embodiment of the present invention, and as shown in fig. 10, the cluster router routing control apparatus according to this embodiment further includes, on the basis of fig. 8:
and the deleting module 85 is configured to delete, in the stored multicast entry, an entry of the LCC to which the MPU that sends the multicast pruning message belongs in the source frame when the first MPU receives the multicast pruning message sent by any one of the other MPUs.
The sending module 82 is further configured to send a linked list item deletion message to other MPUs in the same LCC, where the linked list item deletion message includes an identifier of an LCC to which the MPU sending the multicast pruning message belongs, and the linked list item deletion message is used to enable the other MPUs in the same LCC to delete the identifier of the LCC to which the MPU sending the multicast pruning message belongs from the stored multicast list item synchronization linked list; and when the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC, sending a multicast pruning response message to the MPU sending the multicast pruning message.
It should be noted that the deletion module 85 may also be added on the basis of the cluster router routing control device shown in fig. 9.
Further, in the embodiment shown in fig. 10, the sending module 82 is further configured to, after sending the linked list item deletion message to other MPUs in the same LCC, if the first MPU does not receive the linked list item deletion response message sent by other MPUs in the same LCC within the preset time, retransmit the linked list item deletion message until the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC.
The embodiment of the invention also provides a cluster router. Fig. 11 is a schematic structural diagram of a cluster router provided in the embodiment of the present invention, and as shown in fig. 11, the cluster router provided in the embodiment of the present invention includes: a first LCC 111 and a second LCC112, the first LCC 111 including a first MPU113 and a second MPU 114.
The first MPU113 is configured to, when receiving a multicast join message sent by any one MPU in the second LCCs 112, determine whether a multicast entry synchronization chain table of the first MPU113 includes an identifier of the second LCC112 if the first MPU113 does not store a multicast entry of which the source frame is the second LCC112, where the multicast entry synchronization chain table is used to store source frame identifiers in multicast entries stored in other MPUs in the first LCC 111, and each MPU in each LCC in the cluster router stores a multicast entry synchronization chain table; if the stored multicast table item synchronization linked list comprises the identifier of the second LCC112, sending a multicast table item deletion message to the second MPU 114 through a port connected with the second MPU 114, where the multicast table item deletion message is used to make the second MPU 114 delete the multicast table item whose stored source frame is the second LCC112, and the first MPU113 and the second MPU 114 are located in the first LCC 111; when receiving the multicast entry deletion response message sent by the second MPU 114, creating a multicast entry of which the source frame is the second LCC112, and taking a port receiving the multicast join message as an ingress port of which the source frame is the multicast entry of the second LCC 112; when the first MPU 114 creates a multicast entry whose source frame is the second LCC112, it sends a multicast join response message to the MPU that sent the multicast join message.
The cluster router provided in the embodiment of the present invention is used for implementing the cluster router route control method shown in fig. 3, and the implementation principle and the technical effect are similar, which are not described herein again. It should be noted that, in the cluster router provided in the embodiment of the present invention, the number of LCCs and the number of MPUs in each LCC are not limited to fig. 11.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to create a multicast entry with a source frame being the second LCC112 if the stored multicast entry synchronization linked list does not include the identifier of the second LCC112, and use a port that receives the multicast join packet as an ingress port of the multicast entry with the source frame being the second LCC 112.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to send a multicast entry creation message to other MPUs in the first LCC 111 after creating the multicast entry whose source frame is the second LCC112, where the multicast entry creation message includes an identifier of the second LCC112, so that other MPUs located in the same LCC as the first MPU 112 store the identifier of the second LCC112 in the multicast entry synchronization linked list.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to receive multicast entry creation response messages sent by other MPUs in the same LCC; when the multicast table entry with the source frame as the second LCC112 is created and the multicast table entry creation response message sent by other MPUs in the same LCC is received, the multicast join response message is sent to the MPU sending the multicast join message in the second LCC 112.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to, if the multicast entry creation response message sent by another MPU in the same LCC is not received within the preset time, retransmit the multicast entry creation message until the first MPU113 receives the multicast entry creation response message sent by another MPU in the same LCC.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to delete, when receiving a multicast prune packet sent by any MPU in other LCCs, an entry of an LCC to which the MPU that has a source frame that is the multicast prune packet belongs from the stored multicast entry; sending a linked list item deleting message to other MPUs in the same LCC, wherein the linked list item deleting message comprises an identifier of the LCC to which the MPU sending the multicast pruning message belongs, and the linked list item deleting message is used for enabling the other MPUs in the same LCC to delete the identifier of the LCC to which the MPU sending the multicast pruning message belongs from a stored multicast list item synchronous linked list; and after receiving the linked list item deletion response message sent by other MPUs in the same LCC, sending a multicast pruning response message to the MPU sending the multicast pruning message.
Further, in the embodiment shown in fig. 11, the first MPU113 is further configured to retransmit the linked list item deletion message until the first MPU receives the linked list item deletion response message sent by another MPU in the same LCC, if the linked list item deletion response message sent by another MPU in the same LCC is not received within the preset time.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention shall fall within the protection scope of the present invention.
Claims (14)
1. A cluster router route control method is applied to cluster routers which are connected back to back, the cluster router at least comprises two line card frame LCCs, each LCC at least comprises two main control processing units MPUs, and the method is characterized by comprising the following steps:
when a first MPU of a first LCC of the cluster router receives a multicast join message sent by any MPU of second LCCs of the cluster router, if a source frame is not stored in the first MPU and is a multicast table item of the second LCC, the first MPU judges whether a multicast table item synchronization chain table of the first MPU comprises an identifier of the second LCC or not, the multicast table item synchronization chain table is used for storing source frame identifiers in multicast table items stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores the multicast table item synchronization chain table;
if the multicast table item synchronization linked list of the first MPU comprises the identifier of the second LCC, the first MPU sends a multicast table item deletion message to the second MPU through a port connected with the second MPU, wherein the multicast table item deletion message is used for enabling the second MPU to delete the stored source frame as the multicast table item of the second LCC, and the first MPU and the second MPU are located in the same LCC;
when the first MPU receives a multicast table item deletion response message sent by the second MPU, the first MPU creates a multicast table item of which the source frame is the second LCC, and takes a port receiving the multicast adding message as an input port of which the source frame is the multicast table item of the second LCC;
and after the first MPU creates a multicast table item with a source frame as a second LCC, the first MPU sends a multicast join response message to the MPU which sends the multicast join message.
2. The method according to claim 1, wherein after the first MPU determines whether the second LCC is included in its own multicast entry synchronization linked list, the method further comprises:
if the multicast table item synchronization chain table of the first MPU does not include the identifier of the second LCC, the first MPU creates a multicast table item of which the source frame is the second LCC, and takes the port receiving the multicast adding message as an input port of the multicast table item of which the source frame is the second LCC.
3. The method of claim 1 or 2, wherein after the first MPU creates a multicast entry for which the source box is a second LCC, the method further comprises:
and the first MPU sends multicast table item creating information to other MPUs in the same LCC, wherein the multicast table item creating information comprises the identifier of the second LCC, so that the other MPUs in the same LCC with the first MPU store the identifier of the second LCC into a multicast table item synchronous linked list.
4. The method of claim 3, wherein after the first MPU sends a multicast entry creation message to other MPUs in the same LCC, the method further comprises:
the first MPU receives multicast table item establishing response messages sent by other MPUs in the same LCC;
after the first MPU creates a multicast entry with a source frame being a second LCC, the first MPU sends a multicast join response packet to the MPU that sends the multicast join packet, including:
when the first MPU creates a multicast table item of which the source frame is the second LCC and receives a multicast table item creation response message sent by other MPUs in the same LCC, the first MPU sends a multicast join response message to the MPU which sends the multicast join message in the second LCC.
5. The method of claim 4, wherein after the first MPU sends a multicast entry creation message to other MPUs in the same LCC, the method further comprises:
and if the first MPU does not receive the multicast entry creation response message sent by other MPUs in the same LCC within the preset time, retransmitting the multicast entry creation message by the first MPU until the first MPU receives the multicast entry creation response message sent by other MPUs in the same LCC.
6. The method of claim 3, further comprising:
when the first MPU receives a multicast pruning message sent by any MPU in other LCCs, the first MPU deletes the table entry of the LCC of which the source frame is the MPU sending the multicast pruning message in the stored multicast table entry;
the first MPU sends a linked list item deleting message to other MPUs in the same LCC, wherein the linked list item deleting message comprises an identifier of the LCC to which the MPU sending the multicast pruning message belongs, and the linked list item deleting message is used for enabling the other MPUs in the same LCC to delete the identifier of the LCC to which the MPU sending the multicast pruning message belongs from a stored multicast list item synchronous linked list;
and after the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC, the first MPU sends a multicast pruning response message to the MPU sending the multicast pruning message.
7. The method of claim 6, wherein after the first MPU sends a linked list entry delete message to other MPUs in the same LCC, the method further comprises:
and if the first MPU does not receive the linked list item deletion response messages sent by other MPUs in the same LCC within the preset time, retransmitting the linked list item deletion messages by the first MPU until the first MPU receives the linked list item deletion response messages sent by other MPUs in the same LCC.
8. A cluster router route control device is used for controlling cluster routers connected back to back, the cluster router at least comprises two line card frame LCCs, each LCC at least comprises two main control processing units MPUs, and the device is characterized by comprising:
a determining module, configured to determine, when a first MPU of a first LCC of the cluster router receives a multicast join packet sent by any MPU of second LCCs of the cluster router, if a source frame is not stored in the first MPU as a multicast entry of the second LCC, whether a multicast entry synchronization chain table of the first MPU itself includes an identifier of the second LCC or not is determined, where the multicast entry synchronization chain table is used to store source frame identifiers in multicast entries stored in other MPUs in the same LCC, and each MPU in each LCC in the cluster router stores the multicast entry synchronization chain table;
a sending module, configured to send, when the determining module determines that the multicast entry synchronization linked list of the first MPU itself includes the identifier of the second LCC, a multicast entry deletion message to the second MPU through a port where the first MPU is connected to the second MPU, where the multicast entry deletion message is used to enable the second MPU to delete a multicast entry stored in a source frame of the second LCC, and the first MPU and the second MPU are located in the same LCC;
a creating module, configured to create a multicast entry of which a source frame is a second LCC when the first MPU receives a multicast entry deletion response message sent by the second MPU, and use a port that receives the multicast join packet as a source frame as an ingress port of the multicast entry of the second LCC;
the sending module is further configured to send a multicast join response packet to the MPU that sends the multicast join packet after the creation module creates the multicast entry whose source frame is the second LCC.
9. The apparatus according to claim 8, wherein the creating module is further configured to create a multicast entry whose source frame is a second LCC when the determining module determines that the multicast entry synchronization linked list of the first MPU itself does not include the multicast entry of the second LCC, and use a port that receives the multicast join packet as an ingress port of the source frame that is the multicast entry of the second LCC.
10. The apparatus according to claim 8 or 9, wherein the sending module is further configured to send a multicast entry creation message to other MPUs in a same LCC after the creating module creates a multicast entry whose source frame is a second LCC, where the multicast entry creation message includes an identifier of the second LCC, so that other MPUs in the same LCC as the first MPU store the identifier of the second LCC in a multicast entry synchronization linked list.
11. The apparatus of claim 10, further comprising:
a receiving module, configured to receive a multicast entry creation response message sent by other MPUs in the same LCC after the sending module sends the multicast entry creation message to the other MPUs in the same LCC;
the sending module is specifically configured to send a multicast join response message to the MPU that sends the multicast join message in the second LCC after the creation module creates the multicast entry whose source frame is the second LCC and the receiving module receives a multicast entry creation response message sent by other MPUs in the same LCC.
12. The apparatus according to claim 11, wherein the sending module is further configured to, after sending the multicast entry creation message to other MPUs in the same LCC, if the receiving module does not receive the multicast entry creation response message sent by other MPUs in the same LCC within a preset time, retransmit the multicast entry creation message until the first MPU receives the multicast entry creation response message sent by other MPUs in the same LCC.
13. The apparatus of claim 10, further comprising: a deleting module, configured to delete, in a stored multicast entry, an entry of an LCC to which a source frame is an MPU that sends a multicast pruning message when the first MPU receives the multicast pruning message sent by any one of other MPUs;
the sending module is further configured to send a linked list item deletion message to other MPUs in the same LCC, where the linked list item deletion message includes an identifier of an LCC to which the MPU that sent the multicast pruning message belongs, and the linked list item deletion message is used to cause the other MPUs in the same LCC to delete, from a stored multicast list item synchronization linked list, the identifier of the LCC to which the MPU that sent the multicast pruning message belongs; and after receiving the linked list item deletion response message sent by other MPUs in the same LCC, the first MPU sends a multicast pruning response message to the MPU sending the multicast pruning message.
14. The apparatus according to claim 13, wherein the sending module is further configured to, after sending the linked list item deletion message to other MPUs in the same LCC, if the first MPU does not receive the linked list item deletion response message sent by other MPUs in the same LCC within a preset time, retransmit the linked list item deletion message until the first MPU receives the linked list item deletion response message sent by other MPUs in the same LCC.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611206450.1A CN106878180B (en) | 2016-12-23 | 2016-12-23 | Cluster router route control method and device and cluster router |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611206450.1A CN106878180B (en) | 2016-12-23 | 2016-12-23 | Cluster router route control method and device and cluster router |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106878180A CN106878180A (en) | 2017-06-20 |
CN106878180B true CN106878180B (en) | 2020-01-03 |
Family
ID=59164876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611206450.1A Active CN106878180B (en) | 2016-12-23 | 2016-12-23 | Cluster router route control method and device and cluster router |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106878180B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109561022B (en) * | 2017-09-27 | 2020-09-08 | 华为技术有限公司 | Multicast forwarding method and multicast router |
CN110138667B (en) * | 2019-05-31 | 2021-05-28 | 新华三技术有限公司 | Method and device for generating forwarding table item, cable clamping plate and screen plate |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011057447A1 (en) * | 2009-11-13 | 2011-05-19 | 华为技术有限公司 | Router and cluster router |
CN102104488A (en) * | 2009-12-22 | 2011-06-22 | 华为技术有限公司 | Multicast message processing method and device |
CN103152260A (en) * | 2013-02-21 | 2013-06-12 | 中兴通讯股份有限公司 | Message forwarding system, method and device |
US8797874B2 (en) * | 2011-09-09 | 2014-08-05 | Futurewei Technologies, Inc. | Apparatus and system for packet routing and forwarding in an interior network |
CN104618248A (en) * | 2015-01-27 | 2015-05-13 | 首都师范大学 | Cluster router multicast forwarding table designing and forwarding algorithm |
CN106230717A (en) * | 2016-07-22 | 2016-12-14 | 杭州华三通信技术有限公司 | Route obtaining method in group system and device |
-
2016
- 2016-12-23 CN CN201611206450.1A patent/CN106878180B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011057447A1 (en) * | 2009-11-13 | 2011-05-19 | 华为技术有限公司 | Router and cluster router |
CN102104488A (en) * | 2009-12-22 | 2011-06-22 | 华为技术有限公司 | Multicast message processing method and device |
US8797874B2 (en) * | 2011-09-09 | 2014-08-05 | Futurewei Technologies, Inc. | Apparatus and system for packet routing and forwarding in an interior network |
CN103152260A (en) * | 2013-02-21 | 2013-06-12 | 中兴通讯股份有限公司 | Message forwarding system, method and device |
CN104618248A (en) * | 2015-01-27 | 2015-05-13 | 首都师范大学 | Cluster router multicast forwarding table designing and forwarding algorithm |
CN106230717A (en) * | 2016-07-22 | 2016-12-14 | 杭州华三通信技术有限公司 | Route obtaining method in group system and device |
Also Published As
Publication number | Publication date |
---|---|
CN106878180A (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8654630B2 (en) | Techniques for link redundancy in layer 2 networks | |
US8599683B2 (en) | System and method for changing a delivery path of multicast traffic | |
US7719958B1 (en) | Method and apparatus for enabling multicast over split multilink trunking | |
JP5404938B2 (en) | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, AND COMMUNICATION METHOD | |
US20070183376A1 (en) | Data communication system and method for same | |
US9385944B2 (en) | Communication system, path switching method and communication device | |
CN101682552B (en) | Failure notification in a network having serially connected nodes | |
JP4790591B2 (en) | Ring node device | |
CN102201999B (en) | A kind of method and system for realizing multicast service load sharing | |
EP2911355B1 (en) | Method and device for flow path negotiation in link aggregation group | |
CN102638389A (en) | Redundancy backup method and system of TRILL (Transparent Interconnection over Lots of Links) network | |
JP2006049963A (en) | Network system, node and node control program, and network control method | |
EP1804423A2 (en) | Method for rapidly recovering multicast service and network device | |
WO2021082812A1 (en) | Message sending method and first network device | |
CN102970231A (en) | Multicast flow forwarding implementation method and routing bridge (RB) | |
CN106878180B (en) | Cluster router route control method and device and cluster router | |
CN103227724A (en) | Method and device for realizing PIM multicast in VRRP network environment | |
CN107770061B (en) | Method and equipment for forwarding message | |
CN113973020B (en) | Method, device and system for sending multicast message | |
CN106533771B (en) | Network equipment and control information transmission method | |
CN109525492B (en) | IP data backup transmission method independent of routing protocol or algorithm | |
JP2013198077A (en) | Network and bridge | |
US11784919B2 (en) | Method for sending BIERv6 packet and first network device | |
CN102136936A (en) | Method, node and system for preventing control plane faults from influencing operation of forward data plane | |
CN106878034B (en) | Cluster router route control method and device and cluster router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |