Message forwarding method, system, storage medium and electronic device
By replacing and decapsulating packet headers at the boundary nodes between the SRv6 and MPLS domains and utilizing the MPLS label forwarding table, the packet forwarding problem from the SRv6 domain to the MPLS domain is solved, achieving efficient cross-domain forwarding and network management optimization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZTE CORP
- Filing Date
- 2021-03-05
- Publication Date
- 2026-08-04
AI Technical Summary
In the existing technology, there is no protocol or solution to solve the problem of forwarding data packets from the SRv6 domain to nodes within the MPLS domain at the boundary nodes between the SRv6 domain and the MPLS domain.
By including the BSID in MPLS label form in the message sent by the source node, the border node replaces it with SRv6-Policy, and decapsulates the IPv6 header and its extension header in the SRv6 field. The message is then forwarded by querying the MPLS label forwarding table based on the MPLS label.
It enables packet forwarding across SR-MPLS and SRv6 domains, creates end-to-end SR-Policies, reduces the forwarding pressure on network devices, and improves network scalability and management efficiency.
Smart Images

Figure CN115102900B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of communications, and more specifically, to a message forwarding method, system, storage medium, and electronic device. Background Technology
[0002] Because SR-MPLS has advantages such as source routing and using the existing MPLS data plane, it is already supported in current networks. If SRv6 is deployed to an existing network, the SRv6 network and the SR-MPLS network need to coexist and interoperate. For example... Figure 1 The diagram illustrates an SR-MPLS over SRv6 interoperability scenario. R1, R2, and R3 belong to the SR-MPLS network, R3, R4, and R5 belong to the SRv6 network, and R5, R6, and R7 belong to the SR-MPLS network. R3 and R5 are boundary nodes belonging to both the SR-MPLS and SRv6 networks. However, for nodes in both the SR-MPLS and SRv6 networks, when data packets are forwarded from the boundary node between the SRv6 and MPLS domains to nodes within the MPLS domain, there is currently no protocol or solution to address how to forward data packets after they leave node R5 and which forwarding table to consult. Summary of the Invention
[0003] This invention provides a message forwarding method, system, storage medium, and electronic device to at least solve the problem in the related art of how to forward data packets from the boundary node between the SRv6 domain and the MPLS domain to a node within the MPLS domain.
[0004] According to an embodiment of the present invention, a packet forwarding method is provided, the method comprising: a source node located in a first SR-MPLS domain sending a packet to a destination node located in a second SR-MPLS domain based on a segment routing policy (SR-Policy), wherein the SR-Policy segment list of the packet includes a BSID in MPLS label form for the packet to traverse an SRv6 domain located between the first SR-MPLS domain and the second SR-MPLS domain; after receiving the packet, a first border node replaces the BSID in MPLS label form with an SRv6-Policy segment whose destination address is the second border node. The first boundary node is the boundary node between the first SR-MPLS domain and the SRv6 domain, and the second boundary node is the boundary node between the SRv6 domain and the second SR-MPLS domain. After receiving the packet, the second boundary node decapsulates the IPv6 header and its extension header of the packet according to the behavior indication information carried in the SR-policy, and queries the MPLS label forwarding table according to the MPLS label to forward the packet in the second SR-MPLS domain until the packet is forwarded to the destination node.
[0005] In an exemplary embodiment, before the source node sends a message to the destination node based on the SR Policy, the method further includes: the controller sending an SR-Policy to the source node for the destination node whose destination address is a second SR-MPLS domain, wherein the SR-Policy includes a list of SR-Policy segments that have reached the destination node.
[0006] In an exemplary embodiment, before the source node sends a packet to the destination node based on the SR Policy information, the method further includes: the controller sending the SRv6-Policy with the destination address of the second border node to the first border node, wherein the SRv6-Policy includes a list of SRv6-Policy segments arriving at the second border node and the behavior indication information End.DM SID of the second border node, wherein the behavior indication information End.DM SID of the second border node indicates: decapsulate the IPv6 header and its extension header, and query the MPLS label forwarding table according to the MPLS label to forward the packet.
[0007] In an exemplary embodiment, the first border node replaces the BSID in MPLS label form with the SRv6 Policy whose destination address is the second border node, including: when the packet hits an MPLS BSID entry, the first border node encapsulates the packet with an IPv6 header and an SRH header, and places the End.DM SID in the last hop of the SRH.
[0008] In an exemplary embodiment, after receiving the packet, the second border node decapsulates the IPv6 header and its extended header of the packet, including: after receiving the packet, if the second border node finds that the destination address of the packet is itself and that it needs to perform the operation identified by the behavior indication information, then the second border node decapsulates the IPv6 header and its extended header according to the operation identified by the behavior indication information End.DM SID, and forwards the packet according to the MPLS label forwarding table.
[0009] In an exemplary embodiment, the behavior indication information is a Sub-TLV defined in the SR-Policy tunnel attribute: End.DM SID Sub-TLV. The End.DM SID Sub-TLV is used to identify the forwarding behavior of a node. When a specific node issues a BGP SRv6 Policy to this node, the End.DM SID Sub-TLV is extended. This field carries the End.DM SID Sub-TLV of the destination node of the SRv6 Policy. When the SRv6 Policy carries a BSID in the form of an MPLS label, it also carries the End.DM SID Sub-TLV.
[0010] In an exemplary embodiment, when the controller sends the SRv6-Policy to the first border node with the destination address of the second border node, it carries an End.DMSID Sub-TLV that identifies the forwarding behavior of the second border node.
[0011] In an exemplary embodiment, the method further includes: when the controller sends the SRv6-Policy with the destination address of the second border node to the first border node, when the SRv6 Policy carries a BSID in the form of an MPLS tag, it also carries an End.DM SID Sub-TLV.
[0012] In an exemplary embodiment, the method further includes: after the first boundary node receives the issued SRv6 Policy, if there is an MPLS tag form of BSID and End.DM SID Sub-TLV, then the End.DM SID Sub-TLV is stored in the MPLS BSID entry.
[0013] According to another embodiment of the present invention, a packet forwarding system is provided, the system comprising: a source node located in a first SR-MPLS domain, a destination node located in a second SR-MPLS domain, a first boundary node between the first SR-MPLS domain and the SRv6 domain, and a second boundary node between the SRv6 domain and the second SR-MPLS domain, wherein the source node is configured to send packets to the destination node based on a segment routing policy (SR-Policy), wherein the SR-Policy segment list of the packet includes a BSID in the form of an MPLS label for the packet to traverse the first SR-MPLS domain. - An SRv6 domain between the MPLS domain and the second SR-MPLS domain; the first border node, after receiving the packet, replaces the BSID in MPLS label form with the SRv6-Policy of the border node whose destination address is the boundary node between the SRv6 domain and the second SR-MPLS domain, and forwards the packet based on the SRv6-Policy; the second border node, after receiving the packet, decapsulates the IPv6 header of the packet according to the behavior indication information carried in the SR-policy to obtain the MPLS label, and forwards the packet to the destination node according to the MPLS label.
[0014] In one exemplary embodiment, the system further includes: a controller, configured to send an SR-Policy to the source node for a destination node whose destination address is a second SR-MPLS domain, wherein the SR-Policy includes a list of SR-Policy segments reaching the destination node.
[0015] In an exemplary embodiment, the controller is further configured to send the SRv6-Policy with the destination address of the second border node to the first border node, wherein the SRv6-Policy includes a list of SRv6-Policy segments arriving at the second border node and the behavior indication information End.DM SID of the second border node, wherein the behavior indication information End.DM SID of the second border node indicates: decapsulate the IPv6 header and its extension header, and query the MPLS label forwarding table according to the MPLS label to forward the packet.
[0016] In an exemplary embodiment, the first border node is further configured to, when the packet hits an MPLS BSID entry, encapsulate the packet with an IPv6 header and an SRH header, and place the End.DM SID in the last hop of the SRH.
[0017] In an exemplary embodiment, the second boundary node is further configured to, upon receiving the packet, if it discovers that the destination address of the packet is itself and that the operation identified by the behavior indication information is required, decapsulate the IPv6 header and its extension header according to the operation identified by the behavior indication information End.DM SID, and forward the packet by querying the MPLS label forwarding table according to the MPLS label.
[0018] According to yet another embodiment of the present invention, a computer-readable storage medium is also provided, wherein a computer program is stored therein, wherein the computer program is configured to perform the steps in any of the above method embodiments when executed.
[0019] According to yet another embodiment of the present invention, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0020] Through the embodiments of the present invention, an end-to-end SRPolicy is created from the source node to the destination node in the SR-MPLS domain, and the packet forwarding across the SRv6 domain, which does not support MPLS, is achieved by using a BSID in the form of an MPLS label. Attached Figure Description
[0021] Figure 1 This is a schematic diagram illustrating a scenario where SR-MPLS and SRv6 coexist, based on relevant technologies.
[0022] Figure 2 This is a flowchart of a message forwarding method according to an embodiment of the present invention;
[0023] Figure 3 This is a schematic diagram of the structure of a message forwarding system according to an embodiment of the present invention;
[0024] Figure 4 This is a schematic diagram of data packet encapsulation during the message forwarding process from R1 to R7 according to an embodiment of the present invention;
[0025] Figure 5 This is a flowchart of the message forwarding process from R1 to R7 according to an embodiment of the present invention;
[0026] Figure 6 This is a schematic diagram of the SR-policy information sent by the controller to the SR-policy head node according to an embodiment of the present invention;
[0027] Figure 7 This is a flowchart illustrating the SR-policy information sent by the controller to the SR-policy head node according to an embodiment of the present invention.
[0028] Figure 8 This is a schematic diagram of an extended Sub-TLV data structure according to an embodiment of the present invention. Detailed Implementation
[0029] The embodiments of the present invention will be described in detail below with reference to the accompanying drawings and examples.
[0030] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0031] To facilitate understanding of the present invention, the relevant terms and techniques involved in the present invention are briefly described below.
[0032] In network communication, segment routing (SR) is a source routing technology. When using this technology, forwarding points do not need to be aware of the service status; they only need to maintain topology point information. This decouples the number of service instances from the network, greatly improving the network's ability to support ubiquitous connectivity and its scalability. The principle of SR is that the source node pushes instructions carrying routing information onto the packet header, and intermediate forwarding points pop the relevant instructions hop by hop to forward the packet.
[0033] SR technology considers two encapsulation methods on the data plane: Multi-Protocol Label Switching (MPLS) encapsulation, reusing the MPLS data plane, and SRv6 encapsulation, using Internet Protocol Version 6 (IPv6) encapsulation. The SR architecture can run on both data planes. The MPLS forwarding plane can be applied to the SR model without any modifications. SRv6 technology adds an SRH (Segment Routing Header) header to IPv6 packets to store a list of 128-bit SRv6 SIDs (segment IDs) in IPv6 address format. A 128-bit SRv6 SID mainly consists of three parts: the LOC field (IPv6 prefix format, routable) identifying the node's location, the FUNC field (local identification) identifying the service and function, and the ARG field storing relevant parameters. A standard SRv6 SID can define the path information, service, and function information of a specific node.
[0034] Segment Routing Policy (SR Policy) provides a flexible method for selecting forwarding paths to meet different user forwarding needs. When there are multiple paths between the source and destination nodes in a segment routing network, using SR Policy to select forwarding paths appropriately not only facilitates network management and planning for administrators but also effectively reduces the forwarding load on network devices.
[0035] To support SR Policy, MP-BGP defines new sub-address families and adds SR Policy NLRI (Network Layer Reachability Information), i.e., SR Policy routes. SR-TE Policy routes contain relevant SR Policy configurations, including BSID, color, Endpoint, Preference, and Weight. After a device advertises an SR Policy route to its peers, the peers can also forward traffic according to the SR Policy.
[0036] The device supports adding the Color extended community attribute to BGP routes. After adding the Color extended community attribute to a BGP route, if the device receives a packet matching that route, it will look up the SR Policy with the same Color value based on the Color value in the route's Color extended community attribute. The device can then forward the packet via the SR-TE Policy. If no SR-TE Policy with the same Color value is found, the device will forward the packet via the optimal route.
[0037] To address the issue of how SR domain boundary nodes forward data packets, this invention provides a packet forwarding method. Figure 2 This is a flowchart of a message forwarding method according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps:
[0038] Step S202: The source node located in the first SR-MPLS domain sends a packet to the destination node located in the second SR-MPLS domain based on the segment routing policy SR-Policy. The SR-Policy segment list of the packet includes a BSID in the form of an MPLS label, so that the packet can pass through the SRv6 domain located between the first SR-MPLS domain and the second SR-MPLS domain.
[0039] Step S204: After receiving the packet, the first boundary node replaces the BSID in MPLS label form with the SRv6-Policy with the destination address of the second boundary node, and forwards the packet based on the SRv6-Policy. Here, the first boundary node is the boundary node between the first SR-MPLS domain and the SRv6 domain, and the second boundary node is the boundary node between the SRv6 domain and the second SR-MPLS domain.
[0040] In step S206, after receiving the packet, the second border node decapsulates the IPv6 header and its extended header of the packet according to the behavior indication information carried in the SR-policy, and queries the MPLS label forwarding table according to the MPLS label to forward the packet in the second SR-MPLS domain until the packet is forwarded to the destination node.
[0041] Before step S202 in this embodiment, the controller sends an SR-Policy to the source node with a destination address in the second SR-MPLS domain as the destination node. The SR-Policy includes a list of SR-Policy segments reaching the destination node. The controller then sends an SRv6-Policy to the first border node with a destination address in the second border node. This SRv6-Policy includes a list of SRv6-Policy segments reaching the second border node and the behavior indication information End.DM SID of the second border node. The End.DM SID indicates that the IPv6 header and its extension headers are decapsulated, and the packet is forwarded by querying the MPLS label forwarding table based on the MPLS label.
[0042] In step S204 of this embodiment, the first border node replaces the BSID in MPLS label form with the SRv6 Policy whose destination address is the second border node. This includes: when the packet hits an MPLS BSID entry, the first border node encapsulates the packet with an IPv6 header and an SRH header, and places the End.DM SID in the last hop of the SRH.
[0043] In step S206 of this embodiment, after the second border node receives the packet, it decapsulates the IPv6 header and its extended header of the packet, including: after the second border node receives the packet, it finds that the destination address of the packet is itself and that it needs to perform the operation identified by the behavior indication information. Then, the second border node decapsulates the IPv6 header and its extended header according to the operation identified by the behavior indication information End.DM SID, and forwards the packet according to the MPLS label forwarding table.
[0044] In this embodiment, the behavior indication information is the Sub-TLV defined in the SR-Policy tunnel attribute: End.DM SID Sub-TLV. The End.DM SID Sub-TLV is used to identify the forwarding behavior of a node. When a specific node sends a BGP SRv6 Policy to this node, the End.DM SID Sub-TLV is extended. This field carries the End.DM SID Sub-TLV of the destination node of the SRv6 Policy. When the SRv6 Policy carries a BSID in the form of an MPLS label, it also carries the End.DM SID Sub-TLV.
[0045] In this embodiment, when the controller sends the SRv6-Policy with the destination address of the second border node to the first border node, it carries the End.DM SID Sub-TLV that identifies the forwarding behavior of the second border node.
[0046] In this embodiment, when the controller sends the SRv6-Policy with the destination address of the second border node to the first border node, the SRv6 Policy carries both an MPLS-labeled BSID and an End.DM SID Sub-TLV. Upon receiving the sent SRv6 Policy, if the first border node has both an MPLS-labeled BSID and an End.DM SID Sub-TLV, it stores the End.DM SID Sub-TLV in the MPLS BSID entry.
[0047] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of the present invention.
[0048] This embodiment also provides a message forwarding system for implementing the above embodiments and preferred embodiments; details already described will not be repeated. Although the apparatus described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0049] Figure 3 This is a schematic diagram of the structure of a message forwarding system according to an embodiment of the present invention, such as... Figure 3 As shown, the system includes a source node 10, a destination node 20, a first boundary node 30, and a second boundary node 40.
[0050] The source node 10 is located in the first SR-MPLS domain, the destination node 20 is located in the second SR-MPLS domain, the first boundary node 30 is the boundary node between the first SR-MPLS domain and the SRv6 domain, and the second boundary node is the boundary node between the SRv6 domain and the second SR-MPLS domain.
[0051] The source node 10 is used to send a message to the destination node based on the segment routing policy SR-Policy, wherein the SR-Policy segment list of the message includes a BSID in the form of an MPLS label, so that the message can pass through the SRv6 domain located between the first SR-MPLS domain and the second SR-MPLS domain.
[0052] The first boundary node 20 is used to replace the BSID in MPLS label form with the SRv6-Policy of the boundary node whose destination address is between the SRv6 domain and the second SR-MPLS domain after receiving the packet, and forward the packet based on the SRv6-Policy.
[0053] The second border node is configured to, upon receiving the packet, decapsulate the IPv6 header of the packet according to the behavior indication information carried in the SR-policy to obtain the MPLS label, and forward the packet to the destination node according to the MPLS label.
[0054] In this embodiment, the system further includes a controller 50, which is used to send an SR-Policy to the source node for a destination node whose destination address is a second SR-MPLS domain. The SR-Policy includes a list of SR-Policy segments that reach the destination node.
[0055] The controller 50 is further configured to send the SRv6-Policy with the destination address of the second border node to the first border node, wherein the SRv6-Policy includes a list of SRv6-Policy segments arriving at the second border node and the behavior indication information End.DM SID of the second border node, wherein the behavior indication information End.DM SID of the second border node indicates: decapsulate the IPv6 header and its extension header, and query the MPLS label forwarding table according to the MPLS label to forward the packet.
[0056] In an exemplary embodiment, the first boundary node 30 is further configured to, when the packet hits an MPLS BSID entry, encapsulate the packet with an IPv6 header and an SRH header, and place the End.DM SID in the last hop of the SRH.
[0057] In an exemplary embodiment, the second boundary node 40 is further configured to, upon receiving the packet, if it discovers that the destination address of the packet is itself and that the operation identified by the behavior indication information End.DM SID needs to be performed, decapsulate the IPv6 header and its extension header according to the operation identified by the behavior indication information End.DM SID, and forward the packet according to the MPLS label forwarding table query based on the MPLS label.
[0058] To facilitate understanding of the present invention, embodiments in specific application scenarios are described below.
[0059] Example 1
[0060] This embodiment uses an SR-MPLS over SRv6 scenario as an example for description. Figure 4 This is a schematic diagram of data packet encapsulation during the message forwarding process from R1 to R7 according to an embodiment of the present invention. Figure 4 As shown, R1, R2, and R3 belong to the SR-MPLS network, R3, R4, and R5 belong to the SRv6 network, R5, R6, and R7 belong to the SR-MPLS network, and R3 and R5 are boundary nodes that belong to both the SR-MPLS and SRv6 networks. Figure 5 This is a flowchart of the message forwarding process from R1 to R7 according to an embodiment of the present invention, as follows: Figure 5 As shown, the message forwarding in this embodiment includes the following steps:
[0061] Step S502: Create an end-to-end SR Policy on R1 to R7, passing through SRv6 regions that do not support MPLS via BSID in the form of MPLS tags.
[0062] The specific segment-list on R1 is {R2,R3,BSID1,R6,R7}.
[0063] Step S504: After receiving the data packet, R3 replaces the BSID1 in MPLS tag form with the SRv6Policy with R5 as the destination, that is, pushes the SRH header of Segment-list End.X of R4--->R5 and R5's End.DM SID into it.
[0064] Since R3 stores the mapping relationship between BSID1 in MPLS tag form and SRv6 Policy with destination R5, R3 can directly push BSID1 into the SRv6 Policy list with destination R5 after seeing it.
[0065] The instruction represented by End.DM is "Decapsulate the IPv6 header and its extension headers, with the MPLS label below the IPv6 header, and query the MPLS label forwarding table based on the MPLS label to forward the packet".
[0066] Step S506: R5 receives the data packet, determines that the destination address is R5 and executes the End.DM SID operation. Then R5 decapsulates the IPv6 header and its extension header, and knows that there is an MPLS label under the IPv6 header. Based on the MPLS label, it queries the MPLS label forwarding table and forwards the packet to R6.
[0067] Example 2
[0068] Figure 6 This is a schematic diagram illustrating the SR-policy information sent by the controller to the SR-policy head node according to an embodiment of the present invention. Figure 6 In the SR-MPLS over SRv6 scenario shown, R1, R2, and R3 belong to the SR-MPLS network, R3, R4, and R5 belong to the SRv6 network, R5, R6, and R7 belong to the SR-MPLS network, and R3 and R5 are boundary nodes that belong to both the SR-MPLS and SRv6 networks. Figure 7 This is a flowchart illustrating the SR-policy information sent by the controller to the SR-policy head node according to an embodiment of the present invention, as follows: Figure 7 As shown, the process may include the following steps:
[0069] Step S702: The controller sends SR-MPLS Policy1 information with destination address R7 to node R1.
[0070] The SR-NPLS Policy1 information sent by the controller to R1 with a destination address of R7 may include:
[0071] SR-MPLS Policy1(end-point=R7);
[0072] segment-list=(R2,R3,BSID1,R6,R7).
[0073] Step S704: The controller sends SRv6 Policy2 information to R3 with the destination address R5. SRv6 Policy2 extends the existing SR-Policy information and adds behavior indication information for the R5 node.
[0074] The SRv6 Policy2 information sent by the controller to R3 with a destination address of R5 may include:
[0075] SRv6 Policy2(end-point=R5)segment-list=(End.x of R4-->R5)
[0076] MPLS BSID = BSID1;
[0077] End.DM = End.DM of R5.
[0078] Example 3
[0079] The SR-Policy tunnel attribute is defined in draft-ietf-idr-segment-routing-te-policy-09, which includes a series of Sub-TLVs used to carry related SR-Policy information. In this embodiment, a new Sub-TLV, END.DM SID Sub-TLV, is extended. This new Sub-TLV is used to identify the node's forwarding behavior. Specifically, the data structure of the END.DM SID Sub-TLV in this embodiment can be seen... Figure 8 As shown, Figure 8 As shown, the Sub-TLV may include the following fields: type, length, Flags, and Reserved, as well as the IPv6 Node Address.
[0080] In the above embodiments of the present invention, the SR policy information received by this node from a specific node carries END.DM SID information. Specifically, a new Sub-TLV is defined in the SR-Policy tunnel attribute: END.DM SID Sub-TLV is used to identify the forwarding behavior of the node.
[0081] When a specific node issues a BGP SRv6 Policy to this node, it extends the End.DM SID sub-TLV, which carries the End.DM SID of the destination node of the SRv6 Policy.
[0082] Specifically, when the SRv6 Policy carries a BSID in MPLS label format, it must also carry the End.DM SIDsub-TLV.
[0083] Specifically, when a node receives an SRv6 Policy from BGP, if it has a BSID in MPLS label form and an End.DMSID, then the End.DM SID is stored in the MPLS BSID entry.
[0084] Specifically, when a message hits the entry tag of the MPLS BSID, it encapsulates the IPv6 header and SRH, and places the End.DM SID in the last hop of the SRH.
[0085] Embodiments of the present invention also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to perform the steps in any of the above method embodiments when executed.
[0086] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.
[0087] Embodiments of the present invention also provide an electronic device including a memory and a processor, the memory storing a computer program and the processor being configured to run the computer program to perform the steps in any of the above method embodiments.
[0088] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0089] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0090] It is obvious to those skilled in the art that the modules or steps of the present invention described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those described herein, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the present invention is not limited to any particular combination of hardware and software.
[0091] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the principles of the present invention should be included within the scope of protection of the present invention.
Claims
1. A message forwarding method, characterized in that, include: A source node located in the first SR-MPLS domain sends a packet to a destination node located in the second SR-MPLS domain based on the segment routing policy SR-Policy. The SR-Policy segment list of the packet includes a BSID in the form of an MPLS label for the packet to pass through the SRv6 domain located between the first SR-MPLS domain and the second SR-MPLS domain. After receiving the packet, the first boundary node replaces the BSID in MPLS label form with the SRv6-Policy with the destination address of the second boundary node, and forwards the packet based on the SRv6-Policy. The first boundary node is the boundary node between the first SR-MPLS domain and the SRv6 domain, and the second boundary node is the boundary node between the SRv6 domain and the second SR-MPLS domain. After receiving the packet, the second border node decapsulates the IPv6 header and its extended header of the packet according to the behavior indication information carried in the SR-Policy, and queries the MPLS label forwarding table according to the MPLS label to forward the packet in the second SR-MPLS domain until the packet is forwarded to the destination node; Before the source node sends a message to the destination node based on the SR-Policy, the method further includes: the controller sending the SR-Policy of the destination node with the destination address being the second SR-MPLS domain to the source node, wherein the SR-Policy includes a list of SR-Policy segments that reach the destination node. Before the source node sends a packet to the destination node based on the SR-Policy, the process further includes: the controller sending the SRv6-Policy with the destination address of the second border node to the first border node. The SRv6-Policy includes a list of SRv6-Policy segments arriving at the second border node and the behavior indication information End.DM SID of the second border node. The behavior indication information End.DM SID of the second border node indicates that the IPv6 header and its extension header are decapsulated, and the packet is forwarded by querying the MPLS label forwarding table according to the MPLS label. The behavior indication information is the Sub-TLV defined in the SR-Policy tunnel attribute: End.DM SID Sub-TLV. The End.DM SID Sub-TLV is used to identify the forwarding behavior of a node. When a specific node sends a BGP SRv6-Policy to this node, it extends the End.DM SID Sub-TLV, and its field carries the End.DM SID Sub-TLV of the destination node of the SRv6-Policy. When the SRv6-Policy carries a BSID in the form of an MPLS label, it also carries the End.DM SID Sub-TLV.
2. The method according to claim 1, characterized in that, The first border node replaces the BSID in MPLS label form with the SRv6-Policy whose destination address is the second border node, including: When the packet hits an MPLS BSID entry, the first border node encapsulates the packet with an IPv6 header and an SRH header, and places the End.DM SID in the last hop of the SRH.
3. The method according to claim 1, characterized in that, After receiving the packet, the second border node decapsulates the IPv6 header and its extension headers, including: After receiving the packet, the second border node finds that the destination address of the packet is itself and that it needs to perform the operation identified by the behavior indication information. Then, the second border node decapsulates the IPv6 header and its extension header according to the operation identified by the behavior indication information End.DM SID, and forwards the packet according to the MPLS label forwarding table.
4. The method according to claim 1, characterized in that, When the controller sends the SRv6-Policy to the first border node with the destination address of the second border node, it carries the End.DM SID Sub-TLV that identifies the forwarding behavior of the second border node.
5. The method according to claim 4, characterized in that, Also includes: When the controller sends the SRv6-Policy with the destination address of the second boundary node to the first boundary node, if the SRv6-Policy carries a BSID in the form of an MPLS tag, it also carries the End.DM SID Sub-TLV.
6. The method according to claim 4, characterized in that, Also includes: After receiving the SRv6-Policy, if the first boundary node has an MPLS tag form of BSID and End.DM SID Sub-TLV, it saves the End.DM SID Sub-TLV in the MPLS BSID entry.
7. A message forwarding system, characterized in that, include: The source node located in the first SR-MPLS domain, the destination node located in the second SR-MPLS domain, the first boundary node between the first SR-MPLS domain and the SRv6 domain, and the second boundary node between the SRv6 domain and the second SR-MPLS domain, wherein, The source node is used to send a message to the destination node based on the segment routing policy SR-Policy, wherein the SR-Policy segment list of the message includes a BSID in the form of an MPLS label, so that the message can pass through the SRv6 domain located between the first SR-MPLS domain and the second SR-MPLS domain. The first boundary node is configured to, upon receiving the packet, replace the BSID in MPLS label form with the SRv6-Policy of the boundary node whose destination address is between the SRv6 domain and the second SR-MPLS domain, and forward the packet based on the SRv6-Policy. The second border node is used to, upon receiving the packet, decapsulate the IPv6 header of the packet according to the behavior indication information carried in the SR-Policy to obtain the MPLS label, and forward the packet to the destination node according to the MPLS label; The controller is configured to send an SR-Policy to the source node for a destination node whose destination address is in the second SR-MPLS domain, wherein the SR-Policy includes a list of SR-Policy segments that reach the destination node. The controller is further configured to send the SRv6-Policy with the destination address of the second border node to the first border node, wherein the SRv6-Policy includes a list of SRv6-Policy segments arriving at the second border node and the behavior indication information End.DM SID of the second border node, wherein the behavior indication information End.DM SID of the second border node indicates: decapsulate the IPv6 header and its extension header, and query the MPLS label forwarding table according to the MPLS label to forward the packet; The behavior indication information is the Sub-TLV defined in the SR-Policy tunnel attribute: End.DM SID Sub-TLV. The End.DM SID Sub-TLV is used to identify the forwarding behavior of a node. When a specific node sends a BGP SRv6-Policy to this node, the End.DM SID Sub-TLV is extended, and its field carries the End.DM SID Sub-TLV of the destination node of the SRv6-Policy. When the SRv6 Policy carries a BSID in the form of an MPLS label, it also carries the End.DM SID Sub-TLV.
8. The system according to claim 7, characterized in that, The first boundary node is further configured to, when the packet hits an MPLS BSID entry, encapsulate the packet with an IPv6 header and an SRH header, and place the End.DM SID in the last hop of the SRH.
9. The system according to claim 8, characterized in that, The second boundary node is further configured to, upon receiving the packet, if it discovers that the destination address of the packet is itself and that the operation identified by the behavior indication information is required, decapsulate the IPv6 header and its extension header according to the operation identified by the behavior indication information End.DM SID, and forward the packet by querying the MPLS label forwarding table according to the MPLS label.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method described in any one of claims 1 to 6.
11. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method described in any one of claims 1 to 6.