Communication method and apparatus
By using SID binding technology to achieve segmented carrying and detection of SRv6 tunnels, the end-to-end 50ms switching problem in cross-WAN scenarios is solved, improving the reliability of SRv6 tunnels and the stability of network devices.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NEW H3C TECH CO LTD
- Filing Date
- 2023-02-28
- Publication Date
- 2026-06-05
AI Technical Summary
Existing SRv6 tunnels do not have end-to-end 50ms switching capability in cross-WAN scenarios, and the BFD detection mechanism is prone to false alarms and excessive CPU pressure due to congestion in WANs, affecting the stability of network devices.
The SRv6 tunnel is segmented and detected by using the binding SID technology. By configuring different detection cycles, the loop link or end-to-end link can be switched after a link failure.
It achieves end-to-end 50ms failover capability in wide area network scenarios, improves the reliability of SRv6 tunnels and the stability of network devices, and reduces CPU pressure.
Smart Images

Figure CN116346584B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a communication method and apparatus. Background Technology
[0002] Currently, with the rise of 5G and the demand for enterprise business to move to the cloud, SRv6 technology, as the basic technology of the next generation of bearer network, has been widely recognized by operators and various industries. In particular, the convenience brought by its one-hop to the cloud and native IPv6 technology has enabled more and more services to gradually switch to SRv6 tunnels to carry out services from the terminal to the cloud.
[0003] As more enterprises migrate to the cloud and carriers offer cloud services, SRv6 tunnels are traversing increasingly longer distances and passing through more network devices. Consequently, the reliability requirements for SRv6 tunnels are also rising. However, current tunnel detection technologies used in SRv6, such as BFD detection mechanisms, do not guarantee end-to-end 50ms failover capability under all conditions.
[0004] In practical applications, on the one hand, if the BFD probe mechanism is to achieve end-to-end 50ms switching, its detection period needs to be configured to 10ms*3 times, meaning the sending end sends probe packets to the receiving end at a 10ms interval. If the receiving end does not receive probe packets after three consecutive intervals, the sending end determines that the network is interrupted and triggers SRv6 tunnel switching. However, a 10ms detection period poses a stability risk in long-distance WANs and with many hops through network devices, and is prone to false alarms due to packet jitter caused by congestion. Therefore, considering stability, operators usually configure a detection period of 50ms or 100ms, which makes end-to-end 50ms switching impossible.
[0005] On the other hand, the BFD protocol is complex. While tunnel connectivity detection can be performed by hardware, post-interrupt processing requires the network device's CPU to participate in calculations to establish a protocol-level connection with the tunnel. Therefore, any interruption requires CPU assistance to trigger failover. In wide area networks with a large number of tunnels, this can cause excessive CPU load on a single network device, reducing its stability.
[0006] In summary, SRv6 tunnels currently lack end-to-end 50ms failover capability in cross-WAN scenarios. To meet the future demand for widespread cloud migration of services, it is urgent to expand high reliability assurance capabilities. Summary of the Invention
[0007] In view of this, this application provides a communication method and apparatus to solve the problem that existing SRv6 tunnels do not currently have end-to-end 50ms switching capability in cross-wide area network scenarios.
[0008] In a first aspect, this application provides a communication method applied to a first node, the method comprising:
[0009] When the first node is the source node, a first packet is generated. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first data packet, and the forwarding node indicated by each forwarding node SID is in a link on the ring.
[0010] On the forwarding path, the first message is sent to the second node.
[0011] Secondly, this application provides a communication device applied to a first node, the device comprising:
[0012] A generation unit is configured to generate a first packet when the first node is a source node. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, the set of binding SIDs includes at least one binding SID, and each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID, and the at least one forwarding node SID forms a forwarding path for forwarding the first data packet, with each forwarding node SID indicating a forwarding node located in a link on the ring.
[0013] The sending unit is used to send the first message to the second node on the forwarding path.
[0014] Thirdly, this application provides a network device including a processor and a machine-readable storage medium storing machine-executable instructions that can be executed by the processor, which in turn cause the processor to perform the method provided in the first aspect of this application.
[0015] Therefore, using the communication method and apparatus provided in this application, when the first node is the source node, the first node generates a first message. The first message includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first message, and the forwarding node indicated by each forwarding node SID is in a link on the ring. On the forwarding path, the first node sends the first message to the second node.
[0016] Thus, by binding SID technology, end-to-end SRv6 tunnel segmentation and segmentation detection are achieved. During segmentation detection, different detection cycles can be configured to enable ring-to-ring link switching or end-to-end link switching according to preset switching capabilities after a link failure. This solves the problem that existing SRv6 tunnels currently lack end-to-end 50ms switching capability in cross-WAN scenarios. Attached Figure Description
[0017] Figure 1 A flowchart illustrating the communication method provided in the embodiments of this application;
[0018] Figure 2 A network topology diagram of SRv6 segmented deployment based on Binding SID provided for an embodiment of this application;
[0019] Figure 3 This is a schematic diagram of the message encapsulation structure provided in an embodiment of this application;
[0020] Figure 4 A schematic diagram of a first message structure provided in an embodiment of this application;
[0021] Figure 5 This is a schematic diagram of another first message structure provided in an embodiment of this application;
[0022] Figure 6 This is a schematic diagram of another first message structure provided in an embodiment of this application;
[0023] Figure 7 This is a schematic diagram of another first message structure provided in an embodiment of this application;
[0024] Figure 8 A network topology diagram for another SRv6 segmented deployment based on Binding SID provided in this application embodiment;
[0025] Figure 9 A structural diagram of a communication device provided in an embodiment of this application;
[0026] Figure 10 The network device hardware structure provided in the embodiments of this application. Detailed Implementation
[0027] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0028] The terminology used in this application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. The singular forms “a,” “the,” and “the” used in this application and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any or all possible combinations of one or more of the corresponding listed items.
[0029] It should be understood that although the terms first, second, third, etc., may be used in this application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."
[0030] The communication method provided in the embodiments of this application will be described in detail below. See also... Figure 1 , Figure 1 A flowchart illustrating a communication method provided in an embodiment of this application. This method is applied to a first node and may include the following steps.
[0031] Step 110: When the first node is the source node, a first packet is generated. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent the ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first packet, and the forwarding node indicated by each forwarding node SID is in the link on the ring.
[0032] Specifically, an SRv6 network includes multiple nodes, such as a source node, a destination node, intermediate nodes, etc. The controller can display the SRv6 network topology information to the user via a display device. The user inputs the source node and destination node into the controller based on the topology information and the source and destination nodes. The controller calculates the path from the source node to the destination node based on the topology information and the source and destination nodes.
[0033] The path calculated by the controller can be divided into multiple segments, each with various network topologies, such as ring networks. The controller configures a Binding SID for each ring network. The controller can generate an SRv6 Policy from the source node to the destination node, which includes a BSID identifier, a Color identifier, and an End-point identifier. The BSID identifier indicates the SID of the ingress node; the Color identifier indicates the Color attribute of the forwarding path, specifically distinguishing multiple SRv6 Policies between the same source and destination nodes; and the End-point identifier indicates the IPv6 address of the destination node for the SRv6 TE Policy.
[0034] The SRv6 Policy consists of multiple Candidate Paths with different priorities. Each candidate path includes one or more paths identified by a list of SIDs.
[0035] In this embodiment of the application, the SID list includes at least one bound SID and the SID of the destination node.
[0036] The controller can send the SRv6 Policy to each node in the path through the first configuration command, so that when each node receives a message that matches the SRv6 Policy, it will forward the message through the path within the SRv6 Policy.
[0037] Understandably, when the controller calculates the path from the source node to the destination node, in addition to configuring a binding SID for each ring network, it also establishes a mapping relationship between each binding SID and the node SID of the node in the ring network indicated by that binding SID.
[0038] The controller can send the above mapping relationship to the entry node of the ring network through the second configuration command. The entry node is the first node to enter the ring. The entry node will be described in detail in subsequent embodiments and will not be repeated here.
[0039] After receiving the above configuration instructions, the first node stores the SRv6 Policy and mapping relationship locally.
[0040] After the above configuration, the source node, i.e. the first node, receives a second message that conforms to the SRv6 Policy. This second message can specifically be a data packet sent by the upstream network device of the source node.
[0041] The source node can redirect the second packet to the SRv6 Policy according to some existing redirection rules (e.g., source node redirection policy, color attribute redirection policy, destination node redirection policy, etc.), which can realize the forwarding of the packet from the source node to the destination node.
[0042] The source node can obtain a list of SIDs from the SRv6 Policy, and from the SID list, obtain a set of bound SIDs and the destination node's SID. Based on the number of SIDs in the SID list, the source node can determine the first SL. The source node encapsulates a first IPv6 basic header and a first SRH header on the outer layer of the second packet. The first IPv6 basic header includes the first SL, and the first SRH header includes a set of bound SIDs and the destination node's SID. The set of bound SIDs includes at least one bound SID, and each bound SID represents a ring in the path between the source node and the destination node.
[0043] Understandably, the first SRH includes a segment list, which contains multiple elements, each storing a SID. The destination node's SID and at least one binding SID are stored in their respective elements in order of proximity.
[0044] After the source node determines the first SL, it retrieves the SID corresponding to the first SL from the first SRH header based on the first SL.
[0045] The first SL identifies the next SID to be viewed, and its initial value is the difference between n and the first value (e.g., the first value is 1), i.e., n-1 (n identifies the number of SIDs included in the segment list). SL is decremented by 1 for each node visited. For example, if the segment list includes 4 SIDs, the initial value of the first SL is 3. The source node retrieves the element numbered 3 from the segment list in the first SRH header, i.e., the Segment List [3]. The source node retrieves the SIDs stored in the Segment List [3].
[0046] After obtaining the SID from the first SRH header, the source node identifies the SID. If the obtained SID is a bound SID, the source node retrieves a set of forwarding node SIDs that match the bound SID from the locally stored mapping relationship. This set of forwarding node SIDs includes at least one forwarding node SID, and the at least one forwarding node SID forms a forwarding path for forwarding the first packet, with each forwarding node SID indicating a forwarding node located on a link within the ring.
[0047] After the source node obtains the set of forwarding node SIDs, it performs encapsulation processing again. A second IPv6 basic header and a second SRH header are encapsulated outside the first IPv6 basic header to obtain the first packet. This second SRH header includes the set of forwarding node SIDs.
[0048] Understandably, the second IPv6 basic header includes a second Segment List (SL), whose initial value is the difference between n and the first value (e.g., the first value is 1), i.e., n-1 (where n identifies the number of SIDs included in the segment list). The second SRH includes a segment list, which contains multiple elements, each storing one SID. The set of forwarding node SIDs includes at least one forwarding node SID, stored in its corresponding element in order of proximity.
[0049] For example, if the segment list includes 3 SIDs, then the initial value of the first SL is 2.
[0050] The source node searches the forwarding table to determine the next hop and outgoing interface according to the existing packet forwarding method. Then, the source node encapsulates the second IPv6 basic header and the second SRH header on the outer layer of the first IPv6 basic header according to the existing SRv6 protocol. The above process will not be repeated.
[0051] Step 120: Send the first message to the second node on the forwarding path.
[0052] Specifically, according to the description in step 110, after the source node generates the first message, it sends the first message to the second node on the forwarding path. The second node is the next-hop node of the source node.
[0053] Therefore, using the communication method provided in this application, when the first node is the source node, the first node generates a first message, which includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent the ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. At least one forwarding node SID forms a forwarding path for forwarding the first message, and the forwarding node indicated by each forwarding node SID is in a link on the ring. On the forwarding path, the first node sends the first message to the second node.
[0054] Thus, by binding SID technology, end-to-end SRv6 tunnel segmentation and segmentation detection are achieved. During segmentation detection, different detection cycles can be configured to enable ring-to-ring link switching or end-to-end link switching according to preset switching capabilities after a link failure. This solves the problem that existing SRv6 tunnels currently lack end-to-end 50ms switching capability in cross-WAN scenarios.
[0055] Optionally, in this embodiment of the application, the process of forwarding the received data packets when the first node acts as an intermediate node is also included.
[0056] Specifically, when the first node is an intermediate node, the intermediate node receives the third message sent by the previous hop node. This third message can be a data packet sent by the previous hop node. The third message includes a third IPv6 basic header, a third SRH header, a fourth IPv6 basic header, and a fourth SRH header.
[0057] The third IPv6 basic header and the third SRH header can be referred to as the outer header; the fourth IPv6 basic header and the fourth SRH header can be referred to as the inner header. The third IPv6 basic header includes the third SL and the destination address, the fourth IPv6 basic header includes the fourth SL, and the fourth SRH header includes a set of binding SIDs, which includes at least one binding SID, each binding SID representing a ring in the path between the source node and the destination node.
[0058] If the destination address indicates the first node and the third SL is the second value (e.g., the second value is specifically 0), then the intermediate node will remove the third IPv6 basic header and the third SRH header from the third packet. Based on the difference between the fourth SL and the first value (e.g., the first value is specifically 1), the intermediate node will retrieve the SID corresponding to the difference from the fourth SRH header.
[0059] If the obtained SID is a bound SID, the intermediate node retrieves a set of forwarding node SIDs that match the bound SID from the locally stored mapping relationship. This set of forwarding node SIDs includes at least one forwarding node SID, and the at least one forwarding node SID forms a forwarding path for forwarding the third packet, with each forwarding node SID indicating a forwarding node in a link on the ring.
[0060] After obtaining the set of forwarding node SIDs, the intermediate node performs encapsulation processing again. A fifth IPv6 basic header and a fifth SRH header are encapsulated outside the fourth IPv6 basic header to obtain the fourth packet. This fifth SRH header includes the set of forwarding node SIDs.
[0061] After the intermediate node generates the fourth message, it sends the fourth message to the third node on the forwarding path. This third node is the next-hop node of the intermediate node.
[0062] It should be noted that the above intermediate nodes are common nodes of the two ring networks, that is, the exit node of the previous ring and the entry node of the next ring. The entry and exit nodes will be described in detail in subsequent embodiments, and will not be repeated here.
[0063] Optionally, in this embodiment of the application, before receiving the third message, the intermediate node also receives multiple configuration instructions issued by the controller and stores the contents of the configuration instructions locally.
[0064] Specifically, the intermediate node receives a first configuration instruction sent by the controller, which includes an SRv6 Policy with a set of bound SIDs. The intermediate node also receives a second configuration instruction sent by the controller, which includes a mapping relationship between each bound SID and the node SIDs of each node on the ring indicated by each bound SID; the intermediate node stores the SRv6 Policy and the mapping relationship locally.
[0065] Optionally, in this embodiment, each ring further includes a protection path for the forwarding path. The node SIDs of at least one protection node constituting the protection path form a protection node SID set, and the protection node SID set matches the binding SID used to represent the ring. The forwarding path and protection path on the ring will be described in detail in subsequent embodiments, and will not be repeated here.
[0066] Optionally, in the embodiments of this application, the SIDs of each node on each ring form a set of forwarding node SIDs and a set of protection node SIDs, respectively. The first node also establishes and stores the mapping relationship between the bound SIDs and the sets of forwarding node SIDs and protection node SIDs locally.
[0067] Optionally, in this embodiment of the application, it also includes the case where the first message generated by the source node when detecting the path is a protocol message.
[0068] Specifically, in one possible implementation, when performing end-to-end detection of the entire path between the source node and the destination node, the first message is a protocol message. The first message includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, a second SRH header, and a payload.
[0069] The first SRH header includes a set of binding SIDs, each containing at least one binding SID, and each binding SID represents a ring along the path between the source and destination nodes. The second SRH header includes a set of forwarding node SIDs that match a binding SID. This set of forwarding node SIDs includes at least one forwarding node SID, and these at least one forwarding node SIDs form a forwarding path for forwarding the first packet, with each forwarding node SID indicating a forwarding node located on a link within the ring.
[0070] The second SRH header also includes the OAM engine SID, and the payload carries the OAM PDU (the specific OAM PDU processing flow is defined in ITU G.8113.1 and ITU G.8013). The OAM engine SID is used to ensure that when a node with an OAM engine receives the first message, it forwards the first message, stripped of the first IPv6 header and the first SRH header, to the OAM engine via the Ethernet port, based on the OAM engine SID. According to the OAM PDU, the OAM engine performs the corresponding OAM processing.
[0071] In another possible implementation, when performing ring network detection on the path between the source node and the destination node, the first message is a protocol message. The first message includes the sixth IPv6 basic header, the sixth SRH header, and the payload.
[0072] Understandably, the first message only includes one layer of encapsulation.
[0073] The sixth SRH header includes the OAM engine SID, and the payload carries the OAM PDU (the specific OAM PDU processing flow is defined in ITU G.8113.1 and ITU G.8013). The OAM engine SID is used to ensure that when a node with an OAM engine receives the first message, it forwards the first message to the OAM engine via the Ethernet port based on the OAM engine SID. Based on the OAM PDU included in the first message, the OAM engine performs the corresponding OAM processing.
[0074] The two types of protocol messages will be described in detail in subsequent embodiments, and will not be repeated here.
[0075] Optionally, in this embodiment of the application, before the first node generates the protocol message, it also receives a third configuration instruction issued by the controller.
[0076] Specifically, the first node receives a third configuration instruction sent by the controller, which includes the SID of the OAM engine; the first node stores the SID of the OAM engine locally.
[0077] The SID of the aforementioned OAM engine can also be configured by the node itself.
[0078] Optionally, in the embodiments of this application, the OAM PDU carries a message for connectivity detection (e.g., a CC message) or a message for fault alarm (e.g., an RDI / AIS alarm message) so that the OAM engine performs on-ring hardware switching of the SRv6 tunnel or end-to-end hardware switching of the SRv6 tunnel.
[0079] The communication method provided in the embodiments of this application will be described in detail below. See also... Figure 2 , Figure 2 This is a network topology diagram of SRv6 segmented deployment based on Binding SID, provided for an embodiment of this application.
[0080] exist Figure 2 In this scenario, multiple nodes between the client and server are located in an SRv6 network. The SRv6 network includes nodes a, b, c, d, e, f, g, h, i, j, k, and x. The client connects to node a, and the server connects to node g. Each node has its own SID; for example, node a's SID is a::, node b's SID is b::, node c's SID is c::, node d's SID is d::, node e's SID is e::, node f's SID is f::, node g's SID is g::, node h's SID is h::, node i's SID is i::, node j's SID is j::, node k's SID is k::, and node x's SID is x::.
[0081] In this embodiment, node a is the source node and node g is the destination node. The path between node a and node g can be divided into multiple ring networks, such as ring 1, ring 2, and ring 3. Each ring includes a forwarding path and a corresponding protection path. For example, in ring 1, nodes a, b, and c form a forwarding path, and nodes a, x, and k form a protection path; in ring 2, nodes c, d, and e form a forwarding path, and nodes k, j, and i form a protection path; in ring 3, nodes e and f form a forwarding path, and nodes i and h form a protection path.
[0082] For example, Figure 2 In the diagram, solid lines represent forwarding paths, dashed lines represent protection paths, and dotted lines represent protection paths within each ring network, each with its own independent SID binding.
[0083] In the aforementioned ring network, nodes entering a ring network are called ingress nodes, such as nodes a, c, e, k, and i. Nodes leaving a ring network are called egress nodes, such as nodes c, e, i, and k. Some nodes have a dual role, serving as both ingress and egress nodes, such as nodes c, e, i, and k.
[0084] The controller can display the SRv6 network topology information to the user via a display device. The user inputs the source node and destination node into the controller based on the topology information, as well as the source and destination nodes. The controller then calculates the path from the source node to the destination node based on the topology information and the source and destination nodes.
[0085] The controller configures a Binding SID for each ring network. For example, the Binding SID for Ring 1 is L::; the Binding SID for Ring 2 is M::; and the Binding SID for Ring 3 is N::.
[0086] The controller can generate an SRv6 policy for the journey from the source node to the destination node. This SRv6 policy includes a list of SIDs that identify the forwarding path between node a and node g. For example, g::, N::, M::, L::.
[0087] The controller can send the SRv6 Policy to each node in the path through the first configuration command, so that when each node receives a message that matches the SRv6 Policy, it will forward the message through the path within the SRv6 Policy.
[0088] When the controller calculates the path from the source node to the destination node, in addition to configuring a binding SID for each ring network, it also establishes a mapping relationship between each binding SID and the node SIDs of the nodes on the ring network indicated by that binding SID. For example, L:: is mapped to a::, b::, c::, k::, and x:: on ring 1; M:: is mapped to c::, d::, e::, i::, j::, and k:: on ring 2; and N:: is mapped to e::, f::, h::, and i:: on ring 3.
[0089] Of course, each bound SID can also establish mapping relationships with the node SIDs of the nodes forming the forwarding path and the node SIDs of the nodes forming the protection path on the ring network indicated by the bound SID. For example, L:: is mapped to a::, b::, and c:: on ring 1; L:: is mapped to a::, k::, and x:: on ring 1; M:: is mapped to c::, d::, and e:: on ring 2; M:: is mapped to i::, j::, and k:: on ring 2; N:: is mapped to e:: and f:: on ring 3; N:: is mapped to h:: and i:: on ring 3.
[0090] The controller can send the above mapping relationship to the entry nodes of the ring network through the second configuration command. For example, the second configuration command can be sent to node a, node c, node e, node i and node k.
[0091] Let's take nodes a and c as examples. After receiving the above configuration commands, nodes a and c store the SRv6 Policy and its mapping relationship locally.
[0092] In one implementation, after node a receives the original message sent by the client that conforms to the SRv6 Policy, node a redirects the original message into the SRv6 Policy, thereby realizing the forwarding of the original message from the source node to the destination node.
[0093] Node a can obtain the SID list from the SRv6 Policy, and from the SID list, obtain the bound SID set {N::, M::, L::} and the destination node's SID {g::}. Based on the number of SIDs in the SID list, the source node can determine the initial value of the first SL to be 4-1=3. Node a encapsulates the first IPv6 basic header and the first SRH header on the outer layer of the original packet. For example... Figure 3 As shown, Figure 3 This is a schematic diagram of the message encapsulation structure provided in an embodiment of this application.
[0094] exist Figure 3 In the first IPv6 basic header, there is a first SL, and the first SRH header includes the binding SID set {N::, M::, L::} and the destination node SID {g::}.
[0095] Understandably, the first SRH includes a segment list, which contains multiple elements, each storing a SID. The destination node's SID and at least one binding SID are stored in their respective elements in order of proximity.
[0096] After node a determines the first SL, it obtains the SID stored in the Segment List[3] from the first SRH header, i.e., L::, based on the fact that the first SL is 3.
[0097] After node a obtains the SID from the first SRH header, it identifies the SID. In this embodiment, the SID obtained by node a is the bound SID L::. Then, node a obtains the set of forwarding node SIDs {a::, b::, c::} that match L:: from the locally stored mapping relationship based on L::.
[0098] After node a obtains the forwarding node SID set {a::, b::, c::}, it performs encapsulation processing again. A second IPv6 basic header and a second SRH header are encapsulated outside the first IPv6 basic header to obtain the first packet. For example... Figure 4 As shown, Figure 4 This is a schematic diagram of a first message structure provided in an embodiment of this application. Figure 4 In this second SRH header, the forwarding node SID set {a::, b::, c::} is included.
[0099] Understandably, the second IPv6 basic header includes the second SL. Based on the number of SIDs in the SID list, node a can determine the initial value of the second SL as 3-1=2. The second SRH includes a segment list, which contains multiple elements, each storing one SID. The destination node's SID and at least one binding SID are stored in their respective elements in order of proximity.
[0100] After receiving the first message, node a uses the existing message forwarding method to look up the forwarding table to determine the next hop and outgoing interface, which is node b. On the forwarding path, node a sends the first message to node b.
[0101] In another implementation, node c receives a first message sent by node b. This first message includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. Node c obtains the destination address and the second SL from the second IPv6 basic header.
[0102] If the destination address indicates node c and the second SL is 0, then node c will remove the second IPv6 basic header and the second SRH header from the first packet. Node c obtains the first SL from the first IPv6 basic header. Based on the difference between the first SL and 1, i.e., 3-1=2. After node a determines the first SL, based on the first SL being 2, it obtains the SID stored in the Segment List[2] from the first SRH header, i.e., M::.
[0103] After node c obtains the SID from the first SRH header, it identifies the SID. In this embodiment, the SID obtained by node c is the bound SID M::. Then, node c obtains the set of forwarding node SIDs {c::, d::, e::} that match M:: from the locally stored mapping relationship based on M::.
[0104] After node a obtains the forwarding node SID set {c::, d::, e::}, it performs encapsulation processing again. A new second IPv6 basic header and a new second SRH header are encapsulated outside the first IPv6 basic header to obtain the new first packet. For example... Figure 5 As shown, Figure 5 This is a schematic diagram of another first message structure provided for an embodiment of this application. Figure 5 In this new second SRH header, the forwarding node SID set {c::, d::, e::} is included.
[0105] Understandably, the new second IPv6 basic header includes the new second SL. Based on the number of SIDs in the SID list, node c can determine that the initial value of the new second SL is 3-1=2. The second SRH includes a segment list, which contains multiple elements, each storing one SID. The destination node's SID and at least one binding SID are stored in their respective elements in order of proximity.
[0106] After receiving the new first message, node c uses the existing message forwarding method to look up the forwarding table to determine the next hop and outgoing interface; that is, the next hop is node d. On the forwarding path, node c sends the new first message to node d.
[0107] In summary, by binding SIDs, segmented deployment on the end-to-end forwarding path in SRv6 networking is achieved. In addition to the end-to-end protection tunnel (dashed line), each ring network also has an independent protection tunnel bound to SIDs (dotted line).
[0108] In practical applications, considering that BFD technology can only be used to detect the continuity of a path and does not have alarm transmission capability or hardware switching capability, the SRv6 OAM technology is extended based on the description of the above embodiments.
[0109] In one scenario, node g includes an OAM engine, which can be configured within the FPGA of node g. The CPU within node g interfaces with the OAM engine via an Ethernet port. The controller assigns a SID to the OAM engine based on network topology information, for example, g-0::. The controller distributes the OAM engine SID to nodes a and g via configuration commands. Nodes a and g store the OAM engine SID locally.
[0110] When performing end-to-end detection of the entire path between node a and node g, node a generates a first message, which is a protocol message. The first message includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, a second SRH header, and a payload. For example... Figure 6 As shown, Figure 6 This is a schematic diagram of another first message structure provided in an embodiment of this application.
[0111] exist Figure 6 In this embodiment, the first IPv6 basic header, the first SRH header, and the second IPv6 basic header have the same format as described in the previous embodiment, and will not be repeated here. The second SRH header also includes the OAM engine SID. The OAM engine SID is stored in the Segment List[0]. The payload carries the OAM PDU, and the OAM PDU format strictly conforms to ITU G.8113.1 MPLS-TP OAM and G.8013 Ethernet OAM.
[0112] After node a generates the first packet, it forwards the first packet along the forwarding path. When the first packet arrives at node g, node g forwards the first packet according to the existing SRv6 protocol. Node g strips the first IPv6 basic header and the first SRH header, and forwards the first packet stripped of the first IPv6 basic header and the first SRH header to the OAM engine indicated by the OAM engine SID through the Ethernet port.
[0113] After receiving the first packet from which the first IPv6 basic header and the first SRH header have been stripped, the OAM engine obtains the OAM PDU. Based on the OAM PDU, the OAM engine performs the corresponding OAM processing.
[0114] In summary, the OAM engine SID, as the last hop of the SRH header, enables the OAM PDU to be delivered to the OAM engine for processing, and also enables end-to-end detection within the SRv6 network.
[0115] In another scenario, node c includes an OAM engine, which can be configured within the FPGA of node c. The CPU within node c interfaces with the OAM engine via an Ethernet port. The controller assigns a SID to the OAM engine based on the network topology information, for example, c-0::. The controller distributes the OAM engine SID to nodes a and c via configuration commands. Nodes a and c store the OAM engine SID locally.
[0116] When performing path detection in a ring network between node a and node c, node a generates a first message, which is a protocol message. The first message includes a third IPv6 basic header, a third SRH header (to distinguish it from the aforementioned IPv6 basic header and SRH header), and a payload. For example... Figure 7 As shown, Figure 7 This is a schematic diagram of another first message structure provided in an embodiment of this application.
[0117] exist Figure 7 In this example, the third IPv6 basic header has the same format as described in the previous embodiments, and will not be repeated here. The third SRH header also includes the OAM engine SID. The OAM engine SID is stored in the Segment List[0]. The payload carries the OAM PDU, and the OAM PDU format strictly conforms to ITU G.8113.1 MPLS-TP OAM and G.8013 Ethernet OAM.
[0118] After node a generates the first packet, it forwards the first packet along the forwarding path of ring 1. When the first packet arrives at node c, node c forwards the first packet according to the existing SRv6 protocol. Node c forwards the first packet to the OAM engine indicated by the OAM engine SID via the Ethernet port.
[0119] After receiving the first message, the OAM engine retrieves the OAM PDU from it. Based on the OAM PDU, the OAM engine performs the corresponding OAM processing.
[0120] In summary, the OAM engine SID, as the last hop of the SRH header, enables the OAM PDU to be delivered to the OAM engine for processing, and also enables segmented path detection within the SRv6 network.
[0121] In this embodiment, the OAM PDU can be used to carry connectivity detection messages, such as CC messages, or fault alarm messages, such as RDI / AIS alarm messages. This enables on-ring hardware switching or end-to-end hardware switching of the SRv6 tunnel.
[0122] In summary, in practical applications, end-to-end detection can be constructed as follows: Figure 8 The hierarchical and layered structure shown, Figure 8 This is another network topology diagram for SRv6 segmented deployment based on Binding SID, provided as an embodiment of this application. By constructing multi-level binding SIDs, the end-to-end path is segmented into three or more layers. Different levels of detection and hardware failover are deployed in different ranges to achieve end-to-end 50ms failover capability.
[0123] For example: in Figure 8For example, a 3.3ms CC detection can be deployed at the segmentation layer. Since this segmentation layer is typically a metropolitan area or campus network, the distance and number of nodes are controllable, so the deployment risk is low. A 10ms CC detection can be deployed at the second-level segmentation layer, and a 50ms CC detection can be deployed at the end-to-end tunnel layer. In this way, when a link fails, the OAM at the segmentation layer is the first to detect the fault and trigger path switching, which can complete the path switching within 10ms. The second-level segmentation layer and the end-to-end tunnel layer are unaware of the fault, achieving end-to-end switching capability within 50ms.
[0124] Based on the same inventive concept, embodiments of this application also provide a communication device corresponding to the communication method. See also Figure 9 , Figure 9 The communication device provided in this application embodiment is applied to a first node, and the device includes:
[0125] The generation unit 910 is configured to generate a first packet when the first node is a source node. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first data packet, and the forwarding node indicated by each forwarding node SID is in a link on the ring.
[0126] The sending unit 920 is used to send the first message to the second node on the forwarding path.
[0127] Optionally, the generation unit 910 is specifically used to obtain the second message;
[0128] The second message is redirected to the SRv6 Policy, which includes a SID list, the SID list including the set of bound SIDs and the SID of the destination node;
[0129] The first IPv6 basic header and the first SRH header are encapsulated in the outer layer of the second message. The first IPv6 basic header includes the first SL.
[0130] Based on the first SL, obtain the SID corresponding to the first SL from the first SRH header;
[0131] If the obtained SID is the bound SID, then based on the bound SID, obtain the set of forwarding node SIDs that match the bound SID from the locally stored mapping relationship;
[0132] The first packet is obtained by encapsulating the second IPv6 basic header and the second SRH header on the outer layer of the first IPv6 basic header.
[0133] Optionally, the apparatus further includes: a receiving unit (not shown in the figure), configured to receive a third message when the first node is an intermediate node, the third message including a third IPv6 basic header, a third SRH header, a fourth IPv6 basic header and a fourth SRH header, the third IPv6 basic header including a third SL and a destination address, the fourth IPv6 basic header including a fourth SL, the fourth SRH header including a set of binding SIDs, the set of binding SIDs including at least one binding SID, each binding SID being used to represent a ring included in the path between the source node and the destination node;
[0134] A stripping unit (not shown in the figure) is used to strip the third IPv6 basic header and the third SRH header from the third packet if the destination address indicates the first node and the third SL is the second value.
[0135] The first acquisition unit (not shown in the figure) is used to acquire the SID corresponding to the difference between the fourth SL and the first value from the fourth SRH header;
[0136] The second acquisition unit (not shown in the figure) is used to, if the acquired SID is the bound SID, acquire a set of forwarding node SIDs that match the bound SID from the mapping relationship stored locally, the set of forwarding node SIDs including at least one forwarding node SID, the at least one forwarding node SID forming a forwarding path for forwarding the third packet, and the forwarding node indicated by each forwarding node SID being in the link on the ring;
[0137] An encapsulation unit (not shown in the figure) is used to encapsulate a fifth IPv6 basic header and a fifth SRH header on the outer layer of the fourth IPv6 basic header to obtain a fourth packet. The fifth SRH header includes the set of forwarding node SIDs.
[0138] The sending unit 920 is further configured to send the fourth message to the third node on the forwarding path.
[0139] Optionally, the ring also includes a protection path for the forwarding path, and the node SIDs of at least one protection node constituting the protection path form a protection node SID set, which matches the binding SID used to represent the ring.
[0140] Optionally, the receiving unit (not shown in the figure) is further configured to receive a first configuration instruction sent by the controller, the first configuration instruction including an SRv6 Policy having the set of bound SIDs;
[0141] Receive a second configuration instruction sent by the controller, the second configuration instruction including the mapping relationship between each bound SID and the node SID of each node on the ring indicated by each bound SID;
[0142] The device further includes a storage unit (not shown in the figure) for locally storing the SRv6 Policy and the mapping relationship.
[0143] Optionally, the SIDs of each node form a set of forwarding node SIDs and a set of protection node SIDs, respectively.
[0144] The storage unit (not shown in the figure) is also used to establish and store the mapping relationship between the bound SID and the set of forwarding node SIDs and the set of protection node SIDs locally.
[0145] Optionally, when performing end-to-end detection, the first message is a protocol message, and the second SRH header also includes an OAM engine SID. The OAM engine SID is used to enable a node with an OAM engine to forward a first message stripped of the first IPv6 basic header and the first SRH header to the OAM engine via an Ethernet port after receiving the first message, based on the OAM engine SID. Based on the OAMPDU included in the first message stripped of the first IPv6 basic header and the first SRH header, the OAM engine performs the corresponding OAM processing.
[0146] Optionally, when performing on-ring detection, the first message is a protocol message. The first message includes a sixth SRH header, which includes an OAM engine SID. The OAM engine SID is used to enable a node with an OAM engine to forward the first message to the OAM engine via an Ethernet port after receiving the first message, based on the OAM engine SID. Based on the OAM PDU included in the first message, the OAM engine performs the corresponding OAM processing.
[0147] Optionally, the receiving unit (not shown in the figure) is further configured to receive a third configuration instruction sent by the controller, the third configuration instruction including the SID of the OAM engine;
[0148] The storage unit (not shown in the figure) is also used to store the SID of the OAM engine locally.
[0149] Optionally, the OAM PDU carries a message for connectivity detection or a message for fault alarm, so that the OAM engine performs on-ring hardware switching or end-to-end hardware switching of the SRv6 tunnel.
[0150] Therefore, using the communication apparatus provided in this application, when the first node is the source node, the first node generates a first message, which includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first message, and the forwarding node indicated by each forwarding node SID is in a link on the ring. On the forwarding path, the first node sends the first message to the second node.
[0151] Thus, by using SID binding technology, end-to-end SRv6 tunnel segmentation and segmentation detection are achieved. During segmentation detection, different detection cycles can be configured to enable ring-to-ring link switching or end-to-end link switching according to preset switching capabilities after a link failure. This solves the problem that existing SRv6 tunnels currently lack end-to-end 50ms switching capability in cross-WAN scenarios.
[0152] Based on the same inventive concept, embodiments of this application also provide a network device, such as... Figure 10 As shown, the system includes a processor 1010, a transceiver 1020, and a machine-readable storage medium 1030. The machine-readable storage medium 1030 stores machine-executable instructions that can be executed by the processor 1010. The processor 1010 is prompted by the machine-executable instructions to execute the communication method provided in the embodiments of this application. Figure 9 The communication device shown can be used as follows: Figure 10 The hardware structure of the network device shown is implemented.
[0153] The aforementioned computer-readable storage medium 1030 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Optionally, the computer-readable storage medium 1030 may also be at least one storage device located remotely from the aforementioned processor 1010.
[0154] The processor 1010 mentioned above can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0155] In this embodiment of the application, the processor 1010 reads the machine-executable instructions stored in the machine-readable storage medium 1030, and is prompted by the machine-executable instructions to enable the processor 1010 itself and the transceiver 1020 to execute the communication method described in the aforementioned embodiment of the application.
[0156] In addition, this application provides a machine-readable storage medium 1030 that stores machine-executable instructions. When called and executed by the processor 1010, the machine-executable instructions cause the processor 1010 itself and the transceiver 1020 to execute the communication method described in the aforementioned application.
[0157] The specific implementation process of the functions and roles of each unit in the above device can be found in the implementation process of the corresponding steps in the above method, and will not be repeated here.
[0158] For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to in the description of the method embodiments. The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this application according to actual needs. Those skilled in the art can understand and implement this without creative effort.
[0159] For the embodiments of communication devices and machine-readable storage media, since the methods involved are basically similar to those of the aforementioned method embodiments, the description is relatively simple, and relevant details can be found in the descriptions of the method embodiments.
[0160] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A communication method, characterized in that, The method is applied to the first node, and the method includes: When the first node is the source node, a first packet is generated. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, which includes at least one binding SID. Each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID. The at least one forwarding node SID forms a forwarding path for forwarding the first packet, and the forwarding node indicated by each forwarding node SID is in a link on the ring. On the forwarding path, the first message is sent to the second node; Each ring is configured with a different detection cycle.
2. The method according to claim 1, characterized in that, The generation of the first message specifically includes: Obtain the second message; The second message is redirected to the SRv6 Policy, which includes a SID list, the SID list including the set of bound SIDs and the SID of the destination node; The first IPv6 basic header and the first SRH header are encapsulated in the outer layer of the second message. The first IPv6 basic header includes the first SL. Based on the first SL, obtain the SID corresponding to the first SL from the first SRH header; If the obtained SID is the bound SID, then based on the bound SID, obtain the set of forwarding node SIDs that match the bound SID from the locally stored mapping relationship; The first packet is obtained by encapsulating the second IPv6 basic header and the second SRH header on the outer layer of the first IPv6 basic header.
3. The method according to claim 1, characterized in that, The method further includes: When the first node is an intermediate node, a third message is received. The third message includes a third IPv6 basic header, a third SRH header, a fourth IPv6 basic header, and a fourth SRH header. The third IPv6 basic header includes a third SL and a destination address. The fourth IPv6 basic header includes a fourth SL. The fourth SRH header includes a set of binding SIDs. The set of binding SIDs includes at least one binding SID. Each binding SID is used to represent the ring included in the path between the source node and the destination node. If the destination address indicates the first node and the third SL is the second value, then the third IPv6 basic header and the third SRH header are stripped from the third message; Based on the difference between the fourth SL and the first value, the SID corresponding to the difference is obtained from the fourth SRH header; If the obtained SID is the bound SID, then according to the bound SID, a set of forwarding node SIDs matching the bound SID is obtained from the mapping relationship stored locally. The set of forwarding node SIDs includes at least one forwarding node SID, and the at least one forwarding node SID forms a forwarding path for forwarding the third message, and the forwarding node indicated by each forwarding node SID is in the link on the ring. The fourth packet is obtained by encapsulating the fifth IPv6 basic header and the fifth SRH header on the outer layer of the fourth IPv6 basic header. The fifth SRH header includes the set of forwarding node SIDs. On the forwarding path, the fourth message is sent to the third node.
4. The method according to any one of claims 1 or 3, characterized in that, The ring also includes a protection path for the forwarding path, and the node SIDs of at least one protection node constituting the protection path form a protection node SID set, which matches the binding SID used to represent the ring.
5. The method according to any one of claims 1 or 3, characterized in that, Before generating the first message or receiving the third message, the method further includes: Receive a first configuration instruction sent by the controller, the first configuration instruction including an SRv6 Policy having the set of bound SIDs; Receive a second configuration instruction sent by the controller, the second configuration instruction including the mapping relationship between each bound SID and the node SID of each node on the ring indicated by each bound SID; The SRv6 Policy and the mapping relationship are stored locally.
6. The method according to claim 5, characterized in that, The SIDs of each node respectively form a set of forwarding node SIDs and a set of protection node SIDs; the method further includes: Establish and store the mapping relationship between the bound SID, the set of forwarding node SIDs, and the set of protection node SIDs locally.
7. The method according to claim 1, characterized in that, When performing end-to-end detection, the first message is a protocol message, and the second SRH header also includes an OAM engine SID. The OAM engine SID is used to enable a node with an OAM engine to forward a first message stripped of the first IPv6 basic header and the first SRH header to the OAM engine via an Ethernet port after receiving the first message. Based on the OAM PDU included in the first message stripped of the first IPv6 basic header and the first SRH header, the OAM engine performs the corresponding OAM processing.
8. The method according to claim 1, characterized in that, When performing on-ring detection, the first message is a protocol message. The first message includes a sixth SRH header, which includes an OAM engine SID. The OAM engine SID is used to enable a node with an OAM engine to forward the first message to the OAM engine via an Ethernet port after receiving the first message, based on the OAM engine SID. Based on the OAM PDU included in the first message, the OAM engine performs the corresponding OAM processing.
9. The method according to any one of claims 7 or 8, characterized in that, Before generating the first message, the method further includes: Receive a third configuration instruction sent by the controller, the third configuration instruction including the SID of the OAM engine; The SID of the OAM engine is stored locally.
10. The method according to any one of claims 7 or 8, characterized in that, The OAM PDU carries messages for connectivity detection or fault alarms, enabling the OAM engine to perform on-ring hardware switching or end-to-end hardware switching of the SRv6 tunnel.
11. A communication device, characterized in that, The device is applied to the first node, and the device includes: A generation unit is configured to generate a first packet when the first node is a source node. The first packet includes a first IPv6 basic header, a first SRH header, a second IPv6 basic header, and a second SRH header. The first SRH header includes a set of binding SIDs, the set of binding SIDs includes at least one binding SID, and each binding SID is used to represent a ring included in the path between the source node and the destination node. The second SRH header includes a set of forwarding node SIDs that match a binding SID. The set of forwarding node SIDs includes at least one forwarding node SID, and the at least one forwarding node SID forms a forwarding path for forwarding the first packet, with each forwarding node SID indicating a forwarding node located in a link on the ring. The sending unit is used to send the first message to the second node on the forwarding path.