A message forwarding method and device
By introducing a message forwarding method of segment routing technology in a multicast network using BIERv6 protocol, the problem that multicast technology cannot meet the real-time and reliability of data transmission is solved, and a higher service quality is achieved.
Patent Information
- Application Number
- CN202010236416.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-03-30
- Publication Date
- 2025-02-11
- Estimated Expiration
- 2040-03-30
AI Technical Summary
The multicast technology using the BIERv6 protocol cannot meet the service's requirements for real-time and reliability of data transmission, resulting in the inability to meet the service quality.
Introduce a message forwarding method in the multicast network, and switch to the backup path when the intermediate link fails through segment routing technology to forward multicast messages to avoid long-term packet loss.
By using segment routing technology to achieve rapid forwarding of multicast messages, the service quality provided by multicast technology is improved and the real-time and reliability of data transmission is ensured.
Smart Images

Figure CN113472672B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communications, and in particular to a message forwarding method and device. Background Art
[0002] Multicast technology refers to the communication technology that allows a single data sender to correspond to multiple data receivers. Multicast technology can be applied to a variety of services, for example, multicast technology can be applied to IPTV live video services. Most services that use multicast technology have high requirements for the real-time and reliability of data transmission. For example, in IPTV live video services, users who use terminals to watch live video cannot tolerate long periods of freezes and black screens.
[0003] The bit index explicit replication IPv6 encapsulation (BIERv6) protocol can be applied to multicast technology. At present, the multicast technology using the BIERv6 protocol cannot meet the requirements of the services using the multicast technology for real-time and reliability of data transmission, that is, the multicast technology using the BIERv6 protocol cannot provide the required quality of service (QoS).
[0004] In view of this, a solution is urgently needed to solve the above problems. Summary of the invention
[0005] An embodiment of the present application provides a message forwarding method that can improve the service quality provided by multicast technology that applies the BIERv6 protocol.
[0006] In the first aspect, an embodiment of the present application provides a message forwarding method, which can be applied to a multicast network that uses BIERv6 technology. When an intermediate link in the multicast network fails, the method can switch to a non-faulty link to forward multicast messages, thereby avoiding the problem of long-term packet loss of multicast messages. The intermediate link mentioned here refers to the link between the multicast head node and the intermediate node, or the link between the intermediate node and the intermediate node, or the link between the intermediate node and the tail node. Specifically, when the first network device forwards the first message, if the first path fails, the first network device obtains a first segment list (English: segment list) indicating the second path, and the second path is a backup path for the first path. Among them, the first message includes a first target address, the first target address is used to indicate the second network device, and the first network device is a bit forward router (bit forward router, BFR), and the second network device is on the first path, the next hop BFR of the first network device. In other words, if there is no failure in the first path, the first network device can forward the first message to the second network device through the first path. After the first network device obtains the first segment list, it can update the first message to obtain the second message including the first segment list, and forward the second message to the second network device via the second path. It can be understood that the first segment list in the second message can be used to guide the second message to be forwarded between the first network device and the second network device through the second path. It can be seen that by utilizing the solution of the embodiment of the present application, when an intermediate link in the multicast network fails, segment routing technology can be used to enable the multicast message to be immediately forwarded through a backup path, thereby avoiding long-term packet loss of the multicast message, thereby improving the service quality provided by the multicast technology. The multicast network mentioned above refers to a multicast network that applies the BIERv6 protocol, and the multicast network that applies the BIERv6 protocol can also be referred to as a "BIERv6 multicast network."
[0007] In a possible implementation, in order to ensure that the first network device can forward the first message to the second network device through the second path, the first network device may further verify whether there is a fault in the second path after determining the second path, and after determining that there is no fault in the second path, perform subsequent steps to obtain the first segment list.
[0008] In a possible implementation, the first section list may include a node identifier and a link identifier, wherein the node identifier may be used to indicate a network device included in the second path, and the link identifier may be used to indicate an adjacent link included in the second path.
[0009] In one possible implementation, when the first network device updates the first message to obtain the second message, for example, the first message may be re-encapsulated to obtain the second message. Specifically, the first network device may add the first segment list to the first message to obtain the second message including the first segment list.
[0010] In a possible implementation, the first network device re-encapsulates the first message to obtain a second message including the first segment list. In a specific implementation, the first network device may, for example, add a segment routing header (SRH) to the first message, and add the first segment list to the SRH. In other words, the updated second message includes the SRH, and the SRH may carry the first segment list.
[0011] In one possible implementation, the second network device is the next-hop BFR of the first network device, and not all network devices in the BIERv6 multicast network are BFRs. Therefore, the first path may include other non-BFR network devices. Of course, the first path may also be an adjacent link between the first network device and the second network device. The adjacent link mentioned in the embodiment of the present application refers to a direct link between two adjacent network devices. Therefore, the first path failure may include at least the following three situations: the first situation: the first path is an adjacent link between the first network device and the second network device, and the first path failure is the adjacent link failure. Among them, the adjacent link failure may be a link failure caused by poor network communication quality, or it may be an interface failure connecting the link. The second situation: the first path is not an adjacent link between the first network device and the second network device. In other words, the first path includes at least two links, that is, the first path includes at least the first link and the second link. For this case, the first path failure can be reflected as a first link failure. The third situation: the first path is not an adjacent link between the first network device and the second network device. In other words, the first path also includes at least a third network device, and the third network device is not a BFR. In this case, the first path failure may be reflected as a third network device failure.
[0012] In a possible implementation, the fault of the first path may be repaired. After the fault of the first path is repaired, each network device in the multicast network will update the forwarding table items, and the time for each network device to generate new forwarding table items is different. This leads to the problem of packet loss if the multicast data is forwarded using the first path. Therefore, if the multicast data is immediately switched back to the first path for forwarding after the fault of the first path is repaired, packet loss may occur. In order to avoid this problem, in one embodiment of the present application, after the first path does not have a fault, wait for a period of time before switching the multicast data back to the first path for forwarding, and the waiting period in the middle allows the forwarding table items of each network device in the multicast network to be updated, thereby avoiding packet loss. Specifically: If the first network device obtains a third message within a preset time period after determining that the first path does not have a fault, the third message is similar to the first message, and the third message also carries the first destination address, and the third message is also a BIERv6 message. In other words, the first network device can forward the third message to the second network device via the first path. In an embodiment of the present application, in order to avoid packet loss, although the first path no longer has a fault, since the acquisition time of the third message is within the aforementioned preset time period, the first network device can process the third message in the same manner as the first message. That is, the first network device obtains the first segment list, updates the third message to obtain the fourth message including the first segment list, and forwards the fourth message to the second network device through the second path. Wherein: the aforementioned preset time period is the waiting period mentioned above, and the starting time of the preset time period is the moment when the first network device determines that there is no fault in the first path. That is: the starting time of the preset time period is the moment when the first network device determines that the first path changes from a faulty state to a state where there is no fault. If the first network device obtains the fifth message after the aforementioned preset time period, the fifth message includes the first destination address, and the fifth message is similar to the first message, and the fifth message also carries the first destination address, and the fifth message is also a BIERv6 message. In other words, the first network device can forward the fifth message to the second network device through the first path. In this case, since a period of time has been waited, the forwarding entries in the network devices in the multicast network have all been updated. Therefore, the first network device can directly forward the fifth message to the second network device through the first path.
[0013] In the second aspect, an embodiment of the present application provides a message forwarding device, which is applied to a first network device, and the device includes: an acquisition unit, a first determination unit, a first update unit and a first forwarding unit. The acquisition unit is used to acquire a first message, the first message includes a first destination address, the first destination address is used to indicate a second network device, the first message is a bit-indexed explicit replication of the sixth version of the Internet Protocol encapsulation BIERv6 message, the first network device is a bit forwarding router BFR, the second network device is on the first path, the next hop BFR of the first network device, the first path is the path for the first network device to send the first message to the second network device; the first determination unit is used to acquire a first segment list when determining that the first path fails, the first segment list is used to indicate a second path, and the second path is a backup path for the first path; the first update unit is used to update the first message to obtain a second message, the second message includes the first segment list; the first forwarding unit is used to forward the second message to the second network device via the second path.
[0014] In a possible implementation manner, the apparatus further includes: a second determining unit, configured to determine that no fault exists on the second path before the first network device obtains the first segment list.
[0015] In a possible implementation, the first segment list includes a node identifier and / or a link identifier, the node identifier is used to indicate a network device included in the second path, and the link identifier is used to indicate an adjacent link included in the second path.
[0016] In a possible implementation manner, the second message is obtained by adding the first segment list to the first message.
[0017] In a possible implementation manner, the second message includes a segment routing header SRH, and the first segment list is located in the SRH.
[0018] In a possible implementation, the first path failure includes: an adjacent link failure between the first network device and the second network device, and the first path is the adjacent link between the first network device and the second network device; or, a first link failure, and the first path includes at least the first link and the second link; or, a third network device failure, and the first path includes the third network device, and the third network device is not a BFR.
[0019] In a possible implementation, the device also includes a third determination unit, a second update unit and a second forwarding unit. The third determination unit is used to obtain the first segment list if a third message is obtained within a preset time period after determining that there is no fault in the first path, and the third message includes the first destination address, and the third message is a BIERv6 message; the second update unit is used to update the third message to obtain a fourth message including the first segment list; and the second forwarding unit is used to forward the fourth message, and the starting time of the preset time period is the time when the first network device determines that there is no fault in the first path.
[0020] In a possible implementation, the device also includes a third forwarding unit, and the third forwarding unit is used to forward the fifth message to the second network device through the first path if a fifth message is obtained after the preset time period, the fifth message includes the first destination address, and the fifth message is a BIERv6 message.
[0021] In a third aspect, an embodiment of the present application provides a device. The device includes a processor and a memory. The memory is used to store instructions or computer programs. The processor is used to execute the instructions or computer programs in the memory to perform any method described in the first aspect above.
[0022] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, including instructions or a computer program, which, when executed on a computer, enables the computer to execute any one of the methods described in the first aspect above.
[0023] In a fifth aspect, an embodiment of the present application provides a computer program product comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute any one of the methods described in the first aspect above. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0025] Figure 1 A schematic diagram of the structure of a multicast network provided in an embodiment of the present application;
[0026] Figure 2 A flowchart of a message forwarding method provided in an embodiment of the present application;
[0027] Figure 3 A schematic diagram of the structure of a first message provided in an embodiment of the present application;
[0028] Figure 4 A schematic diagram of the structure of a second message provided in an embodiment of the present application;
[0029] Figure 5 A schematic diagram of a network structure provided in an embodiment of the present application;
[0030] Figure 6a A schematic diagram of a network structure provided in an embodiment of the present application;
[0031] Figure 6b A schematic diagram of the structure of a second message provided in an embodiment of the present application;
[0032] Figure 6c A schematic diagram of the structure of another second message provided in an embodiment of the present application;
[0033] Figure 7 A schematic diagram of the structure of a message forwarding device provided in an embodiment of the present application;
[0034] Figure 8 A schematic diagram of the structure of a device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0035] An embodiment of the present application provides a message forwarding method that can improve the service quality provided by multicast technology that applies the BIERv6 protocol.
[0036] For ease of understanding, the possible application scenarios of the embodiments of the present application are first introduced. Figure 1 , which is a schematic diagram of the structure of a multicast network provided in an embodiment of the present application. The multicast network mentioned here refers to a network that carries multicast services or deploys multicast technology.
[0037] The current multicast network includes a head node, a leaf node, and an intermediate node. Among them, the head node can also be called a root node. The head node can interact with the device that provides multicast services, and the leaf node can interact with the user access side device. Nodes other than the head node and the leaf node are intermediate nodes. The intermediate node can be a node in the core network or a node in the metropolitan area network, which is not specifically limited in the embodiments of the present application. The node in the embodiments of the present application is a network device.
[0038] certainly, Figure 1 This is just a schematic diagram, which does not constitute a limitation on the multicast network. In practice, the architecture of the multicast network can also adopt other methods, for example, including multiple head nodes, which will not be listed here one by one.
[0039] At present, there is a relatively complete protection for the reliability of the head node and the reliability of the leaf node in the multicast network. Specifically, the head node adopts the method of deploying two or more head nodes to form a backup to achieve reliability protection; the user access side achieves reliability protection by having the user dual-home access to the multicast leaf node, and the multicast table entries of the dual-home accessed leaf node are backed up in real time. That is: if the head node and the leaf node fail, the solution can be quickly determined without affecting the transmission of multicast data. However, there is currently no more reliable protection solution for the intermediate links in the multicast network. If the intermediate link fails, the transmission of multicast data will be abnormal. Specifically: it will cause multicast data to be lost for a long time, so that the multicast service cannot provide the required service quality. Among them, the intermediate link refers to the link between the head node and the intermediate node, the link between the intermediate nodes, and the link between the intermediate node and the tail node. The failure of the intermediate link can be reflected in the failure of the direct link between two adjacent nodes, or the failure of the node included in the intermediate link.
[0040] In view of this, an embodiment of the present application provides a message forwarding method, which can solve the above problem. The message forwarding method is introduced below in conjunction with the accompanying drawings.
[0041] See also Figure 2 , which is a flow chart of a message forwarding method provided in an embodiment of the present application. Figure 2 The message forwarding method shown can be applied to a BIERv6 multicast network. In the BIERv6 multicast network, all messages that carry multicast data are BIERv6 messages, and all network devices in the BIERv6 multicast network support IPv6 forwarding. The network that serves as a root node and a leaf node and some other network devices in the BIERv6 multicast network support BIERv6 forwarding. Among them, the network device that supports BIERv6 forwarding can also be called a BFR. Moreover, the network device that serves as a root node can also be called a bit forward ingress router (BFIR) BFIR, and the network device that serves as a leaf node can also be called a bit forward egress router (BFER).
[0042] Unless otherwise specified, the multicast networks mentioned in the following description of the embodiments of the present application are all BIERv6 multicast networks.
[0043] Figure 2 The method shown can be implemented, for example, through the following S101-S104.
[0044] S101: The first network device obtains a first message, which includes a first destination address, and the first destination address is used to indicate a second network device. The first message is a BIERv6 message.
[0045] In an embodiment of the present application, the first network device may be a head node or an intermediate node in a multicast network. If the first network device is an intermediate node in a multicast network, the first network device may receive a first message from an upstream device. If the first network device is a head node in a multicast network, the first network device may receive multicast data from a device providing multicast services, and encapsulate the multicast data to obtain a first message. Specifically, the first network device as a head node may add an IPv6 header (English: header) and a BIER encapsulation header based on the received multicast data to obtain a first message. Among them, the BIER encapsulation header may also be referred to as a BIER options header with a destination option (English: destoptions header with BIER option). The BIER encapsulation header may carry a BIER header and other fields, for details, please refer to Figure 3 shown.
[0046] Figure 3 A schematic diagram of the structure of a first message provided in an embodiment of the present application. Figure 3 The first message shown includes an IPv6 header, a BIER encapsulation header and multicast data as an IPv6 payload. Among them, the IPv6 header includes a field Next indicating the type of the next layer header. The value of the Next field is 60, indicating that the next layer of encapsulation is a BIER encapsulation header. The destination address (English: Destination Address) field in the IPv6 header is used to indicate the next hop BFR. The BIER encapsulation header includes a BIER header and a field Next Header indicating the type of the next layer header. There are two possible values for the Next Header field, which are 4 and 41. When the value of the Next Header field is 4, it indicates that the next layer header type is IPv4 multicast, that is, the multicast data carried in the message is IPv4 multicast data; when the value of the Next Header field is 41, it indicates that the next layer header type is IPv6 multicast, that is, the multicast data carried in the message is IPv6 multicast data. About Figure 3 The other fields shown in the table will not be explained here one by one.
[0047] The first network device mentioned here is BFR. Since the destination address in the BIERv6 message is used to indicate the next-hop BFR, the second network device is also BFR. In an embodiment of the present application, the second network device is the next-hop BFR of the first network device on the first path. The first path is the path for the first network device to send the first message to the second network device. In other words, when there is no failure in the entire multicast network, after the first network device obtains the first message, it will forward the first message to the second network device through the first path.
[0048] S102: When the first network device determines that the first path fails, it obtains a first segment list, where the first segment list is used to indicate a second path, where the second path is a backup path for the first path.
[0049] In an embodiment of the present application, after the first network device obtains the first message, it can determine the first path for forwarding the first message. Specifically, the first network device can use the locally stored forwarding table entry and the first destination address to determine the first path. After the first network device determines the first path, it can use the bidirectional forwarding detection (BFD) protocol to determine whether the first path is faulty. When the first network device determines that the first path is faulty, it can further determine a second path, which is a backup path for the first path, so that the first message can be forwarded according to the second path to avoid long-term packet loss.
[0050] In the embodiment of the present application, since the second network device is the next-hop BFR of the first network device, and not all network devices in the BIERv6 multicast network are BFRs, the first path may include other non-BFR network devices. Of course, the first path may also be an adjacent link between the first network device and the second network device. The adjacent link mentioned in the embodiment of the present application refers to a direct link between two adjacent network devices. Therefore, the first path failure can include at least the following three situations:
[0051] The first case: the first path is an adjacent link between the first network device and the second network device, and the first path failure is the adjacent link failure. The adjacent link failure may be a link failure caused by poor network communication quality or an interface failure connecting the link.
[0052] The second case: the first path is not an adjacent link between the first network device and the second network device. In other words, the first path includes at least two links, that is, the first path includes at least the first link and the second link. In this case, the first path failure can be reflected as a first link failure.
[0053] The third case: the first path is not an adjacent link between the first network device and the second network device. In other words, the first path includes at least a third network device, and the third network device is not a BFR. In this case, the failure of the first path can be reflected as a failure of the third network device.
[0054] In an embodiment of the present application, in order to forward the first message using the second path, the first network device may use segment routing (SR) technology to forward the first message to the second network device through the second path. Specifically, the first network device may obtain a first segment list indicating the second path. And forward the first message to the second network device through the second path based on the first segment list.
[0055] In some embodiments, in order to ensure that the first network device can forward the first message to the second network device through the second path, after determining the second path, the first network device may further verify whether the second path has a fault, and after determining that the second path has no fault, perform the subsequent step of obtaining the first segment list. Specifically, the first network device may, for example, use the BFD protocol to determine whether the second path has a fault.
[0056] In some embodiments, the first segment list may include a node identifier and a link identifier. The node identifier may be used to indicate a network device included in the second path, and the link identifier may be used to indicate an adjacent link included in the second path. Figure 4-6c It should be noted that the network device included in the second path may be a BFR or may not be a BFR, and this embodiment of the present application does not specifically limit this.
[0057] In some embodiments, in order to further improve the quality of service, the aforementioned second path can be pre-calculated, so that when the first network device determines that the first path fails, it can quickly determine the second path and quickly switch the multicast data to the second path for forwarding. Of course, the second path can also be calculated in real time after the first network device determines that the first path fails, and the embodiments of the present application do not make specific limitations.
[0058] In an embodiment of the present application, after the first network device determines the second path, it can further determine a first segment list indicating the second path. For example, the first network device determines the node identifiers and / or link identifiers included in the first segment list based on the network nodes and adjacent links included in the second path. In the case where the second path is pre-calculated, the aforementioned first segment list can also be pre-determined, and the first network device can directly obtain the pre-determined first segment list.
[0059] S103: The first network device updates the first message to obtain a second message, where the second message includes the first segment list.
[0060] S104: The first network device forwards the second message to the second network device via the second path.
[0061] In an embodiment of the present application, the first network device uses segment routing technology to forward the first message to the second network device through the second path. In the specific implementation, the first network device can update the first message to obtain a second message including the first segment list. In this way, since the second message carries the first segment list, and the first segment list can indicate the second path, the first network device can forward the second message to the second network device through the second path.
[0062] In one embodiment, the first network device may re-encapsulate the first message to obtain the second message. Specifically, the first network device may add the first segment list to the first message to obtain the second message.
[0063] In one embodiment, the first network device may, for example, add an SRH to the first message, and add the first segment list to the SRH. In other words, the updated second message includes the SRH, and the SRH may carry the first segment list.
[0064] See also Figure 4 , which is a schematic diagram of the structure of a second message provided in an embodiment of the present application. Figure 4 Compared with the first message, the second message shown has an additional encapsulation layer, which is the IPv6 Segment Routing Header: IPv6 SRH Header. The Repair List in the IPv6 SRH Header is the first segment list. Figure 4 The first segment list shown includes three node identifiers, indicating the network devices that the second path passes through in sequence, wherein the second path passes through the network device RC2 indicated by SegmentList[2], the network device AGG2 indicated by Segment List[1], and the network device ACC1 indicated by Segment List[0] in sequence.
[0065] In addition, in order to ensure that the second message can be forwarded normally, the Next field in the IPv6 header has a value of 43, indicating that the next layer of encapsulation is the IPv6 SRH Header. The Next Header field in the IPv6 SRH Header that indicates the next layer of header type has a value of 60, indicating that the next layer of encapsulation is the BIER encapsulation header. The value of the Routing Type field of the IPv6 SRH is 4, indicating that the routing type is segment routing. Figure 4 The other fields shown in the table will not be explained here one by one.
[0066] The specific implementation method of the first network device forwarding the second message to the second network device using the segment routing technology is similar to the traditional method of forwarding messages using segment routing, and will not be described in detail here.
[0067] From the above description, it can be known that when an intermediate link in a multicast network fails, segment routing technology can be used to forward multicast messages through a backup path, thereby avoiding long-term packet loss of multicast messages and improving the service quality provided by multicast technology.
[0068] In some embodiments, the failure of the first path may be repaired. After the failure of the first path is repaired, each network device in the multicast network will update the forwarding table entries, and each network device generates new forwarding table entries at different times. This results in packet loss when the multicast data is forwarded using the first path. Therefore, if the multicast data is immediately switched back to the first path for forwarding after the failure of the first path is repaired, packet loss may occur.
[0069] To avoid this problem, in one embodiment of the present application, after the first path is free of faults, a period of time is waited before switching the multicast data back to the first path for forwarding, and the waiting period allows the forwarding table entries of each network device in the multicast network to be updated, thereby avoiding packet loss. Specifically:
[0070] If the first network device obtains the third message within the preset time period after determining that there is no fault in the first path, the third message is similar to the first message, and the third message also carries the first destination address, and the third message is also a BIERv6 message. In other words, the first network device can forward the third message to the second network device through the first path. In the embodiment of the present application, in order to avoid packet loss, although there is no fault in the first path, since the acquisition time of the third message is within the aforementioned preset time period, the first network device can process the third message in the same way as the first message. That is, the first network device obtains the first segment list, updates the third message to obtain the fourth message including the first segment list, and forwards the fourth message to the second network device through the second path. Wherein: the aforementioned preset time period is the waiting period mentioned above, and the starting time of the preset time period is the moment when the first network device determines that there is no fault in the first path. That is: the starting time of the preset time period is the moment when the first network device determines that the first path changes from a fault state to a fault-free state.
[0071] If the first network device obtains the fifth message after the aforementioned preset time period, the fifth message includes the first destination address, the fifth message is similar to the first message, the fifth message also carries the first destination address, and the fifth message is also a BIERv6 message. In other words, the first network device can forward the fifth message to the second network device through the first path. In this case, since a period of time has been waited, the forwarding table entries in the network devices in the multicast network have been updated. Therefore, the first network device can directly forward the fifth message to the second network device through the first path.
[0072] The above is an introduction to the message forwarding method provided in the embodiment of the present application. Next, the message forwarding method is introduced in conjunction with a specific scenario.
[0073] See also Figure 5 , Figure 5 A schematic diagram of the structure of a network provided in an embodiment of the present application.
[0074] exist Figure 5 The network structure shown may be a part of a multicast network, wherein network device RC1 is a BFR and network device AGG1 is a BFR. Network device RC2 and network device AGG2 are both non-BFRs that support IPv6. When the link between network device RC1 and network device AGG1 fails, network device RC1 may act as the first network device mentioned above to execute the message forwarding method provided in the above embodiment. Specifically, when network device RC1 executes the method provided in the above embodiment, network device RC1 determines that the second path is: RC1-RC2-AGG2-AGG1. In this case, the second message obtained by network device RC1 updating the first message may be as follows: Figure 4 As shown, Figure 4 The first segment list shown includes three node identifiers, indicating the network devices that the second path passes through in sequence. The second path passes through the network device RC2 indicated by Segment List[2], the network device AGG2 indicated by Segment List[1], and the network device AGG1 indicated by Segment List[0]. Among them, RC2.end in the first segment list is the identifier of the network device RC2, and RC2.end can be, for example, the IPv6 address of the network device RC2; AGG2.end in the first segment list is the identifier of the network device AGG2, and AGG2.end can be, for example, the IPv6 address of the network device AGG2; AGG1.end.BIER in the first segment list is the identifier of the network device AGG1 serving as the BFR, and AGG1.end.BIER can be, for example, the IPv6 address of the network device AGG1.
[0075] See also Figure 6a , Figure 6a A schematic diagram of the structure of a network provided in an embodiment of the present application.
[0076] exist Figure 6a The network structure shown may be a part of a multicast network, in which the network device RC1 is a BFR, the network device AGG1 is a non-BFR, and the network device ACC1 is a BFR. The network devices RC2 and AGG2 are non-BFRs that support IPv6. When the link RC1-AGG1-ACC1 between the network device RC1 and the network device ACC1 fails, the network device RC1 may act as the first network device mentioned above to execute the message forwarding method provided in the above embodiment, and forward the message to the next-hop BFR ACC1 of the network device AC1. Specifically, if the link RC1-AGG1 fails, the network device RC1 may determine that the second path is: RC1-RC2-AGG2-ACC1, or RC1-RC2-AGG2-AGG1-ACC1. In this case, the second message obtained by the network device RC1 updating the first message may be as follows. Figure 6b As shown, Figure 6b The first segment list shown includes three node identifiers, indicating the network devices that the second path passes through in sequence. The second path passes through the network device RC2 indicated by Segment List[2], the network device AGG2 indicated by Segment List[1], and the network device ACC1 indicated by Segment List[0]. Among them, ACC1.end.BIER in the first segment list is the identifier of the network device ACC1 as the BFR, and ACC1.end.BIER can be, for example, the IPv6 address of the network device ACC1.
[0077] Among them, when the second message is forwarded to the network device AGG2, the network device AGG2 can forward the second message to the network device ACC1 through the adjacent link between the network device AGG2 and the network device ACC1, or can forward the second message to the network device ACC1 through the network device AGG1, and the embodiment of the present application does not make specific limitations.
[0078] It should be noted that for the above two scenarios, after a link failure, multicast packets are forwarded to the destination BFR by bypassing the path, which does not cause an increase in traffic.
[0079] exist Figure 6aIn the scenario shown, if the network device AGG1 fails, the network device RC1 can be used as the first network device mentioned above to execute the message forwarding method provided in the above embodiment, and forward the message to the next hop BFRACC1 of the network device AC1. Specifically, if the network device AGG1 fails, the network device RC1 can determine that the second path is: RC1-RC2-AGG2-ACC1. In this case, the second message obtained by the network device RC1 updating the first message can be as follows: Figure 6c As shown, Figure 6c The first segment list shown includes two node identifiers and a link identifier, indicating the network devices and adjacent links that the second path passes through in sequence. The second path passes through the network device RC2 indicated by Segment List[2], the network device AGG2 indicated by Segment List[1], and the adjacent link AGG2-ACC1 indicated by Segment List[0] in sequence to reach the network device ACC1. Among them, AGG2-ACC1.end.X in the first segment list is the identifier of the adjacent link AGG2-ACC1, and AGG2-ACC1.end.X can be an IPv6 address, for example.
[0080] like Figure 6c As shown, the first section of the list indicates the adjacent link AGG2-ACC1, thereby preventing the network device AGG2 from forwarding the second message to the faulty network device AGG1.
[0081] It should be noted that for Figure 6c In the corresponding non-BFR failure scenario, if the failed network device (i.e., AGG1) performs multicast replication for multiple network devices and replicates multicast data for multiple ACC network devices (for example, in addition to ACC1 and ACC2, it also includes ACC3, ACC4, etc.). At this time, the BIERv6 multicast forwarding from RC1 to each ACC is essentially unicast forwarding, that is, RC1 needs to send a copy of multicast data to each ACC network device. Therefore, the link between RC1 and AGG1 must be able to bear multiple copies of traffic. When node AGG1 fails, the traffic on the backup path also needs to replicate multiple copies of traffic, passing through RC1-RC2-AGG2-each ACC. Compared with before the failure, only multiple copies of traffic are added between RC1 and RC2; and RC1 and RC2, as backup links, should reserve sufficient bandwidth for traffic to pass through. Otherwise, the AGG1 position should be deployed as a BFR for BIER replication to reduce the link bandwidth occupancy between RC1 and AGG1, and reduce the link bandwidth occupancy between RC2 and AGG2. Therefore, using the solution of the embodiment of the present application will not cause multiple copies of multicast data and cause network congestion.
[0082] It should be noted that although Figure 5and Figure 6a The network device RC2 and the network device AGG2 shown in the figure are both non-BFRs, but in practice, the network device RC2 and the network device AGG2 can also be BFRs, which is not limited here.
[0083] Based on the message forwarding method provided in the above embodiment, the embodiment of the present application also provides a message forwarding device, which is described below in conjunction with the accompanying drawings.
[0084] See also Figure 7 , which is a structural diagram of a message forwarding device provided in an embodiment of the present application. Figure 7 The message forwarding device 700 shown can be applied to the first network device mentioned in the above embodiment, and is used to execute the message forwarding method executed by the first network device in the above embodiment. The message forwarding device 700 may include, for example, an acquisition unit 701, a first determination unit 702, a first update unit 703, and a first forwarding unit 704.
[0085] The acquisition unit 701 is used to acquire a first message, wherein the first message includes a first destination address, wherein the first destination address is used to indicate a second network device, wherein the first message is a Bit Indexed Explicit Replication of Internet Protocol Version 6 (BIERv6) message, wherein the first network device is a Bit Forwarding Router (BFR), and the second network device is a next-hop BFR of the first network device on a first path, and wherein the first path is a path for the first network device to send the first message to the second network device.
[0086] The first determining unit 702 is configured to obtain a first segment list when determining that the first path fails, where the first segment list is used to indicate a second path, where the second path is a backup path for the first path.
[0087] The first updating unit 703 is used to update the first message to obtain a second message, where the second message includes the first segment list.
[0088] The first forwarding unit 704 is configured to forward the second message to the second network device via the second path.
[0089] In one implementation, the apparatus 700 further includes a second determining unit, which is configured to determine that no fault exists on the second path before the first network device obtains the first segment list.
[0090] In one implementation, the first segment list includes a node identifier and / or a link identifier, the node identifier is used to indicate a network device included in the second path, and the link identifier is used to indicate an adjacent link included in the second path.
[0091] In one implementation, the second message is obtained by adding the first segment list to the first message.
[0092] In one implementation, the second message includes a segment routing header (SRH), and the first segment list is located in the SRH.
[0093] In one implementation, the first path failure includes: an adjacent link failure between the first network device and the second network device, where the first path is the adjacent link between the first network device and the second network device; or, a first link failure, where the first path includes at least the first link and the second link; or, a third network device failure, where the first path includes the third network device, and the third network device is not a BFR.
[0094] In one implementation, the device 700 also includes a third determination unit, a second update unit, and a second forwarding unit. The third determination unit is used to obtain the first segment list if a third message is obtained within a preset time period after determining that the first path does not have a fault, the third message includes the first destination address, and the third message is a BIERv6 message; the second update unit is used to update the third message to obtain a fourth message including the first segment list; the second forwarding unit is used to forward the fourth message, and the starting time of the preset time period is the time when the first network device determines that the first path does not have a fault.
[0095] In one implementation, the device 700 also includes a third forwarding unit, which is used to forward the fifth message to the second network device through the first path if a fifth message is obtained after the preset time period, the fifth message includes the first destination address, and the fifth message is a BIERv6 message.
[0096] Since the device 700 is a device corresponding to the method provided in the above method embodiment, the specific implementation of each unit of the device 700 is based on the same concept as the above method embodiment. Therefore, for the specific implementation of each unit of the device 700, reference can be made to the description part of the above method embodiment, which will not be repeated here.
[0097] It should be noted that the hardware structure of the message forwarding device 700 mentioned above can be as follows: Figure 8 The structure shown, Figure 8 A schematic diagram of the structure of a device provided in an embodiment of the present application.
[0098] See also Figure 8As shown, the device 800 includes: a processor 810, a communication interface 820 and a memory 830. The number of the processor 810 in the device 800 can be one or more. Figure 8 In the embodiment of the present application, the processor 810, the communication interface 820 and the memory 830 may be connected via a bus system or other means, wherein: Figure 8 The connection via bus system 840 is taken as an example.
[0099] The processor 810 may be a central processing unit (CPU), a network processor (NP) or a combination of a CPU and a NP. The processor 810 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0100] The memory 830 may include a volatile memory (English: volatile memory), such as a random-access memory (RAM); the memory 830 may also include a non-volatile memory (English: non-volatile memory), such as a flash memory (English: flash memory), a hard disk drive (HDD) or a solid-state drive (SSD); the memory 830 may also include a combination of the above-mentioned types of memory. The memory may, for example, store the aforementioned first list.
[0101] Optionally, the memory 830 stores an operating system and a program, an executable module or a data structure, or a subset thereof, or an extended set thereof, wherein the program may include various operating instructions for implementing various operations. The operating system may include various system programs for implementing various basic services and processing hardware-based tasks. The processor 810 may read the program in the memory 830 to implement the message forwarding method provided in the embodiment of the present application.
[0102] The bus system 840 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus system 840 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0103] An embodiment of the present application also provides a computer-readable storage medium, including instructions or computer programs, which, when executed on a computer, enable the computer to execute the message forwarding method provided in the above embodiment.
[0104] An embodiment of the present application also provides a computer program product including instructions or a computer program, which, when executed on a computer, enables the computer to execute the message forwarding method provided in the above embodiment.
[0105] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0106] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0107] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical business division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0108] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0109] In addition, each business unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software business units.
[0110] If the integrated unit is implemented in the form of a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.
[0111] Those skilled in the art will appreciate that in one or more of the above examples, the services described in the present invention may be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, the services may be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media may be any available media that can be accessed by a general-purpose or special-purpose computer.
[0112] The above specific implementation modes further describe the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation modes of the present invention.
[0113] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A message forwarding method, characterized in that: The method comprises: A first network device obtains a first message, which includes a first destination address, and the first destination address is used to indicate a second network device. The first message is a Bit Indexed Explicit Replication of Internet Protocol Version 6 (BIERv6) message. The first network device is a Bit Forwarding Router (BFR). The second network device is a next-hop BFR of the first network device on a first path, and the first path is a path for the first network device to send the first message to the second network device. When the first network device determines that the first path fails and determines that the second path does not fail, the first network device acquires a first segment list, the first segment list is used to indicate the second path, the second path is a backup path of the first path, the first segment list includes a node identifier and / or a link identifier, the node identifier is used to indicate a network device included in the second path, and the link identifier is used to indicate an adjacent link included in the second path; The first network device updates the first message to obtain a second message, where the second message includes the first segment list; The first network device forwards the second message to the second network device via the second path.
2. The method according to claim 1, characterized in that The second message is obtained by adding the first segment list to the first message.
3. The method according to claim 1 or 2, characterized in that: The second message includes a segment routing header SRH, and the first segment list is located in the SRH.
4. The method according to claim 1 or 2, characterized in that: The first path failure includes: An adjacent link between the first network device and the second network device fails, and the first path is an adjacent link between the first network device and the second network device; or, The first link fails, and the first path includes at least the first link and the second link; or, The third network device fails, the first path includes the third network device, and the third network device is not a BFR.
5. The method according to claim 1 or 2, characterized in that: The method further comprises: If the first network device obtains a third message within a preset time period after determining that there is no fault on the first path, and the third message includes the first destination address, and the third message is a BIERv6 message, then the first network device obtains the first segment list, updates the third message to obtain a fourth message including the first segment list, and forwards the fourth message, and the starting time of the preset time period is the time when the first network device determines that there is no fault on the first path; or, If the first network device obtains the fifth message after the preset time period, the fifth message includes the first destination address, and the fifth message is a BIERv6 message, the first network device forwards the fifth message to the second network device through the first path.
6. A message forwarding device, characterized in that: Applied to a first network device, the apparatus comprises: An acquisition unit is used to acquire a first message, wherein the first message includes a first destination address, wherein the first destination address is used to indicate a second network device, wherein the first message is a Bit Indexed Explicit Replication of Internet Protocol Version 6 (BIERv6) encapsulation message, wherein the first network device is a Bit Forwarding Router (BFR), and the second network device is a next-hop BFR of the first network device on a first path, and wherein the first path is a path for the first network device to send the first message to the second network device; a first determining unit, configured to, when determining that the first path fails and determining that the second path does not fail, acquire a first segment list, the first segment list being used to indicate the second path, the second path being a backup path of the first path, the first segment list including a node identifier and / or a link identifier, the node identifier being used to indicate a network device included in the second path, and the link identifier being used to indicate an adjacent link included in the second path; A first updating unit, configured to update the first message to obtain a second message, wherein the second message includes the first segment list; The first forwarding unit is configured to forward the second message to the second network device via the second path.
7. The device according to claim 6, characterized in that The second message is obtained by adding the first segment list to the first message.
8. The device according to claim 6 or 7, characterized in that The second message includes a segment routing header SRH, and the first segment list is located in the SRH.
9. The device according to claim 6 or 7, characterized in that The first path failure includes: An adjacent link between the first network device and the second network device fails, and the first path is an adjacent link between the first network device and the second network device; or, The first link fails, and the first path includes at least the first link and the second link; or, The third network device fails, the first path includes the third network device, and the third network device is not a BFR.
10. The device according to claim 6 or 7, characterized in that The device also includes: A third determination unit is used to obtain the first segment list if a third message is obtained within a preset time period after it is determined that there is no fault in the first path, the third message includes the first destination address, and the third message is a BIERv6 message; A second updating unit, configured to update the third message to obtain a fourth message including the first segment list; A second forwarding unit is configured to forward the fourth message, wherein the starting time of the preset time period is the time when the first network device determines that there is no fault in the first path; or The third forwarding unit is used to forward the fifth message to the second network device through the first path if the fifth message is obtained after the preset time period, the fifth message includes the first destination address, and the fifth message is a BIERv6 message.
11. A device, characterized in that: include: Processor and memory; The memory is used to store instructions or computer programs; The processor is used to execute the instructions or computer programs to perform the method according to any one of claims 1 to 5.
12. A computer-readable storage medium, characterized in that: The invention comprises instructions or computer programs, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
Message forwarding method and device
CN107171977A