Route notification and message transmission method and device

By issuing the IPv6 address prefix of the third-party underlying underlay network in the SRv6 environment, the problem of complex service encapsulation during third-party network access is solved, and a simplified packet traversal process and reduced encapsulation overhead are achieved.

CN119728538APending Publication Date: 2025-03-28HUAWEI TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311250962.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-26
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

In the SRv6 environment, when accessing a third-party network, nodes need to encapsulate multiple tunnels for packets, resulting in complex service encapsulation.

Method used

By routing the IPv6 address prefix of the third-party underlay network, the solution to cross the third-party underlay network is simplified and the encapsulation overhead is reduced.

Benefits of technology

It realizes the process of simplifying the process of packets passing through third-party underlay networks in the SRv6 environment, reducing packaging overhead and improving the simplicity of service packaging.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728538A_ABST
    Figure CN119728538A_ABST
Patent Text Reader

Abstract

The invention discloses a route notification method and device and a message transmission method and device. Taking a route notification method as an example, a first node receives a first route from a second node, the first route comprises a first IPv6 address prefix of a first interface of the second node, and the second node accesses a third-party underlay network through the first interface and communicates with the first node through the third-party underlay network; the first node obtains the SRv6SID of the second node according to the first route, and the SRv6SID comprises the first IPv6 address prefix. Therefore, in the SRv6 environment, the IPv6 address prefix accessed to the third-party underlay network is published through the route, and the SRv6SID obtained based on the IPv6 address prefix can be iterated to the SRv6 tunnel in the third-party underlay network, so that the scheme of traversing the third-party underlay network is simplified, and the encapsulation overhead is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communication technology, and in particular to a method and device for routing announcement and message transmission. Background Art

[0002] Currently, governments, enterprises, and other organizations deploy their own metropolitan area networks (MANs). Access methods include direct connections such as fiber optic access and dedicated line access, as well as indirect access through third-party networks provided by operators.

[0003] When accessing a third-party network, in an environment based on segment routing for IPv6 (SRv6), nodes usually need to encapsulate multiple tunnels for messages based on the published routing information to support end-to-end network traversal. For example, the outer layer encapsulates a Generic Routing Encapsulation (GRE) tunnel and the inner layer encapsulates an SRv6 tunnel, resulting in complex service encapsulation. Summary of the Invention

[0004] The present application discloses a routing announcement and message transmission method and apparatus. In an SRv6 environment, the IPv6 address prefix of a third-party underlying underlay network is published through routing, which can simplify the solution of traversing the third-party underlay network and reduce encapsulation overhead.

[0005] In a first aspect, the present application provides a route announcement method, the method comprising: a first node receives a first route from a second node, the first route including a first IPv6 address prefix of a first interface of the second node, wherein the first node communicates with the second node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; the first node obtains the SRv6 SID of the second node based on the first route, the SRv6 SID including the first IPv6 address prefix.

[0006] Exemplarily, the first node and the second node may be devices with routing and forwarding capabilities, such as routers, switches, load balancers, and firewalls, or may be components within the device, such as boards, line cards, chips, and the like.

[0007] Here, the third-party underlay network (eg, the first third-party underlay network) is neither the network where the first node is located nor the network where the second node is located. For example, the network where the first node is located and the network where the second node is located are both owned by the enterprise.

[0008] Exemplarily, the third-party underlay network may be a network provided by a third party. The network type of the third-party underlay network may include, for example, at least one of an internet public network, a long-term evolution (LTE) network, a fifth-generation mobile communication technology (5G) network, and a multi-protocol label switching (MPLS) L3VPN network.

[0009] Exemplarily, the first IPv6 address prefix is ​​determined by the first node based on the IPv6 address of the first interface and the mask corresponding to the first interface. The first IPv6 address of the first interface and the mask corresponding to the first interface are both allocated by the first third-party underlay network. The allocation method can be dynamic configuration or static configuration. Therefore, the first IPv6 address prefix can be understood as an IPv6 address prefix allocated to the first interface by the first third-party underlay network. Here, the first IPv6 address prefix of the first interface can also be understood as an IPv6 address prefix for the second node to access the first third-party underlay network through the first interface, and other nodes in the network can be routed to the second node in the first third-party underlay network through the first IPv6 address prefix.

[0010] Illustratively, the first interface of the second node may be a physical interface or a logical interface (eg, a loopback interface).

[0011] In the above method, on the control plane, the first node obtains the first IPv6 address prefix used by the second node to access the third-party underlay network from the route published by the second node. The locator of the SRv6 SID of the second node adopts the routing network segment allocated by the third-party underlay network (that is, the first IPv6 address prefix), so that the first node can be routed to the second node in the third-party underlay network through the SRv6 SID of the second node, which is conducive to iterating to the SRv6 tunnel on the forwarding plane and reducing encapsulation overhead.

[0012] Optionally, the first route also includes a first domain identifier corresponding to the first interface, where the first domain identifier is used to indicate the network type of the first third-party underlay network. In this way, based on the first domain identifier, the first node can determine whether the network type of the third-party underlay network it accesses is the same as the network type of the third-party underlay network accessed by the second node through the first interface, facilitating subsequent route selection.

[0013] Optionally, the first route further includes a second IPv6 address prefix of a second interface of the second node, wherein the second node accesses the second third-party underlay network through the second interface.

[0014] It is understood that the first interface and the second interface are different, and the network type of the first third-party underlay network is different from the network type of the second third-party underlay network. In other words, the second node can access multiple different third-party underlay networks through multiple interfaces, and there is no limit on the number of third-party underlay networks that the second node can access.

[0015] Optionally, the first route also includes a second domain identifier corresponding to the second interface, where the second domain identifier is used to indicate the network type of the second third-party underlay network. In this way, based on the second domain identifier, the first node can determine whether the network type of the third-party underlay network it accesses is the same as the network type of the third-party underlay network accessed by the second node through the second interface, facilitating subsequent route selection.

[0016] Optionally, the first route is an Underlay Transport Network (UTN) route, and the first route further includes an identifier of the second node.

[0017] Here, the first route is a UTN route. It can be understood that the route type in the first route indicates a route that carries an address prefix indicating access to a third-party underlay network. It is a newly added route. The UTN route is just a name for this type of route and does not limit the route to be called only a UTN route.

[0018] Exemplarily, the identifier of the second node is used to identify the second node and is globally unique.

[0019] Optionally, the identifier of the second node may be a site identifier (site id) of the second node. In another implementation, the locator of the SRv6 SID locally allocated to the second node may also be used as the identifier of the second node.

[0020] In this way, a new UTN route is added to carry the IPv6 address prefix used by the second node to access the third-party underlay network, so that the first node can reach the second node through the IPv6 address prefix in the third-party underlay network.

[0021] Optionally, the method also includes: the first node receives a second route from the second node, the second route is a virtual private network VPN route, and the second route includes an identifier of the second node and a VPN identifier of the second node; the first node obtains the SRv6 SID of the second node according to the first route, including: the first node generates the SRv6 SID according to the first IPv6 address prefix and the VPN identifier of the second node, wherein the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

[0022] Here, the function of the SRv6 SID is locally allocated by the second node. In another implementation, the SRv6 SID further includes arguments, where the arguments are also locally allocated by the second node.

[0023] Optionally, the second route includes an extended community attribute, where the extended community attribute includes an identifier of the second node and function information for generating the SRv6 SID, where the function information includes a VPN identifier of the second node.

[0024] Here, the number of extended community attributes carried by the second route is not limited. For example, in the second route, the identifier of the second node and the VPN identifier of the second node can be carried by one extended community attribute or two extended community attributes.

[0025] In the above implementation, since both the first route (i.e., the UTN route) and the second route (i.e., the VPN route) include the identifier of the second node, the first node determines the association between the first route and the second route through the identifier of the second node, thereby generating an SRv6 SID that can be routed to the second node in the third-party underlay network based on the first IPv6 address prefix and the VPN identifier of the second node.

[0026] Optionally, the method also includes: the first node receives a third route from the second node, the third route is a Border Gateway Protocol (BGP) IPv6 unicast route, the third route includes a third IPv6 address prefix, the third route includes an extended community attribute, and the extended community attribute includes an identifier of the second node; the first node receives a fourth route from the third node, the fourth route is a VPN route, the fourth route includes the SRv6VPN SID of the third node, and the SRv6 VPN SID of the third node includes the third IPv6 address prefix; the first node obtains the SRv6 SID of the second node according to the first route, including: the first node searches for the third route according to the SRv6 VPN SID of the third node in the fourth route to obtain the identifier of the second node; the first node searches for the first route according to the identifier of the second node to obtain the first IPv6 address prefix; and the first node generates the SRv6 SID according to the first IPv6 address prefix.

[0027] Here, the SRv6 VPN SID of the third node is configured for the third node under a third IPv6 address prefix. The third IPv6 address prefix is ​​assigned to the network where the third node resides (i.e., the enterprise's own network) and is an IPv6 address prefix that can be routed to the third node by other nodes through the enterprise's own network.

[0028] In the above implementation, since the SRv6 VPN SID of the third node includes the third IPv6 address prefix, the first node determines that the fourth route (which is a VPN route) from the third node is associated with the third route (which is a BGP IPv6 unicast route) from the second node, and determines based on the identifier of the second node that the third route is associated with the first route (which is a UTN route) from the second node. Finally, based on the first IPv6 address prefix in the first route, an SRv6 SID that can be routed to the second node in the third-party underlay network can be generated.

[0029] Optionally, the first route is a BGP IPv6 unicast route, the first route also includes a third IPv6 address prefix, the first route includes an extended community attribute, and the extended community attribute includes the first IPv6 address prefix; the method also includes: the first node receives a fourth route from a third node, the fourth route is a VPN route, the fourth route includes the SRv6 VPN SID of the third node, and the SRv6 VPN SID of the third node includes the third IPv6 address prefix; the first node obtains the SRv6 SID of the second node according to the first route, including: the first node searches for the first route according to the SRv6 VPN SID of the third node in the fourth route to obtain the first IPv6 address prefix; the first node generates the SRv6 SID according to the first IPv6 address prefix.

[0030] Exemplarily, in the first route, the third IPv6 address prefix may be carried by a Network Layer Reachability Information (NLRI) attribute.

[0031] When the above implementation method is implemented, when the first route (i.e., BGP IPv6 unicast route) received from the second node carries the third IPv6 address prefix and the IPv6 address prefix used by the second node to access the third-party underlay network, the first node can generate an SRv6 SID that can be routed to the second node in the third-party underlay network based on the first route and the fourth route (i.e., VPN route) from the third node.

[0032] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPN SID includes the first IPv6 address prefix; wherein the SRv6 SID is the first SRv6 VPN SID.

[0033] By implementing the above implementation, the first node can directly obtain the first SRv6VPN SID from the first route (which is a VPN route) and use the first SRv6 VPN SID as the SRv6 SID of the second node, so that the second node can be reached through the SRv6 SID in the third-party underlay network.

[0034] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPN SID includes the first IPv6 address prefix; the first route also includes a second SRv6VPN SID, the second SRv6 VPN SID includes the second IPv6 address prefix; the method also includes: determining the first SRv6 VPN SID as the SRv6 SID.

[0035] By implementing the above implementation, the first node can directly obtain multiple SRv6 VPN SIDs of the second node from the first route (which is a VPN route), and can select an SRv6 VPN SID from them based on the routing policy for traversing the third-party underlay network.

[0036] Optionally, the method further includes: the first node generating an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message being the SRv6 SID; and the first node sending the SRv6 message to the second node through the first third-party underlay network.

[0037] By implementing the above implementation, on the forwarding plane, the SRv6 SID of the second node is encapsulated as the destination address carried in the IPv6 header of the SRv6 message, so that the message can be iterated to the SRv6 tunnel. Because the locator of the SRv6 SID of the second node is the prefix of the first IPv6 address, the message can traverse the third-party underlay network.

[0038] Optionally, the method also includes: the first node generates an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message is the SRv6 SID, and the segment routing header SRH of the SRv6 message includes the SRv6 VPN SID of the third node; the first node sends the SRv6 message to the second node through the first third-party underlay network.

[0039] By implementing the above implementation method, on the forwarding plane, the SRv6 SID of the second node is encapsulated as the destination address of the IPv6 header of the SRv6 message, so that the SRv6 message is iterated to the SRv6 tunnel section from the first node to the second node, traversing the third-party underlay network between the first node and the second node; the SRv6 VPN SID of the third node is encapsulated into the segment routing header (SRH) of the SRv6 message, so that the SRv6 message can be iterated to the SRv6 tunnel section from the second node to the third node.

[0040] Optionally, the method also includes: the first node receives a VPN service message, the destination address carried in the IP header of the VPN service message is the destination IP address; the first node generates an SRv6 message, including: the first node generates the SRv6 message according to the VPN service message, and the SRv6 SID is obtained by the first node by searching the routing table based on the destination IP address.

[0041] In a second aspect, the present application provides a route announcement method, the method comprising: a second node generates a first route, the first route including a first IPv6 address prefix of a first interface, wherein the second node communicates with the first node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; the second node sends the first route to the first node.

[0042] Here, the first node and the second node can refer to the description of the corresponding content of the first aspect above. The description of the first IPv6 address prefix, the third-party underlay network, and the first interface can also refer to the description of the corresponding content of the first aspect above, which will not be repeated here.

[0043] In the above method, on the control plane, the second node advertises the first IPv6 address prefix used by the second node to access the third-party underlay network through a route, so that the receiving end of the route (i.e., the first node) can generate an SRv6 SID that can be routed to the second node in the third-party underlay network based on the first IPv6 address prefix in the route. In other words, the idea of ​​traversing the third-party underlay network by iterating to an SRv6 tunnel is proposed, which is conducive to simplifying the encapsulation of the message.

[0044] Optionally, the first route also includes a first domain identifier corresponding to the first interface, where the first domain identifier is used to indicate the network type of the first third-party underlay network. In this manner, the second node also indicates the network type of the first third-party underlay network by carrying the first domain identifier in the first route, thereby facilitating route selection by the receiving end of the first route based on the first domain identifier.

[0045] Optionally, the first route further includes a second IPv6 address prefix of a second interface, wherein the second node accesses the second third-party underlay network through the second interface. In other words, if the second node accesses multiple third-party underlay networks through multiple interfaces, the first route can carry multiple IPv6 address prefixes allocated by the multiple third-party underlay networks, thereby facilitating route selection at the receiving end of the route.

[0046] Optionally, the first route further includes a second domain identifier corresponding to the second interface, where the second domain identifier is used to indicate a network type of the second third-party underlay network.

[0047] Optionally, the first route is an underlying transport network (UTN) route, and the first route further includes an identifier of the second node.

[0048] Here, the first route is a UTN route. It can be understood that the route type in the first route indicates a route that carries an address prefix indicating access to a third-party underlay network. It is a newly added route. The UTN route is just a name for this type of route and does not limit the route to be called only a UTN route.

[0049] Optionally, the identifier of the second node is a site identifier of the second node. The identifier of the second node can also refer to the description of the corresponding content of the first aspect above, and will not be repeated here.

[0050] In this way, a new UTN route is added to carry the IPv6 address prefix used by the second node to access the third-party underlay network, so that the first node can reach the second node through the IPv6 address prefix in the third-party underlay network.

[0051] Optionally, the method further includes: the second node sending a second route to the first node, where the second route is a VPN route and the second route includes an identifier of the second node and a VPN identifier of the second node.

[0052] In the above implementation, the second node sends the first route (a UTN route) and the second route (a VPN route) separately. Therefore, if the second node's VPN route remains unchanged and only the underlying interface connecting to the third-party underlay network changes, the second node only needs to update the UTN route, not the VPN route. This decouples the UTN and VPN routing information, which helps reduce network bandwidth consumption. Furthermore, because both the first route (a UTN route) and the second route (a VPN route) contain the second node's identifier, the first node can determine the association between the first and second routes using the second node's identifier, thereby generating an SRv6 SID routable to the second node in the third-party underlay network based on the first IPv6 address prefix and the second node's VPN identifier.

[0053] Optionally, the second route carries an extended community attribute, where the extended community attribute includes an identifier of the second node and function information for generating an SRv6 VPN SID, where the function information includes a VPN identifier of the second node.

[0054] Here, the function of the SRv6 SID is local allocation by the second node. The number of extended community attributes carried by the second route is not limited.

[0055] Optionally, the method also includes: the second node sending a third route to the first node, the third route is a BGP IPv6 unicast route, the third route includes a third IPv6 address prefix, the third route includes an extended community attribute, and the extended community attribute includes an identifier of the second node.

[0056] Here, the third IPv6 address prefix and the third route can refer to the description of the corresponding content of the first aspect above, and will not be repeated here.

[0057] In the above implementation, the first route (which is a UTN route) and the third route (which is a BGP IPv6 unicast route) both include the identifier of the second node, so that the first node can determine the association between the first route and the third route through the identifier of the second node, thereby obtaining the first IPv6 address prefix to generate an SRv6 SID that can be routed to the second node in the third-party underlay network.

[0058] Optionally, the first route is a BGP IPv6 unicast route, the first route includes a third IPv6 address prefix, the first route includes an extended community attribute, and the extended community attribute includes the first IPv6 address prefix.

[0059] Exemplarily, in the first route, the third IPv6 address prefix may be carried by a Network Layer Reachability Information (NLRI) attribute.

[0060] In the implementation method described above, the second node carries the third IPv6 address prefix and the first IPv6 address prefix simultaneously through BGP IPv6 unicast routing. Since the first IPv6 address prefix is ​​the only route to the second node in the third-party underlay network, the BGP IPv6 unicast routing does not need to carry the identifier of the second node. Compared with the method in which the third IPv6 address prefix and the first IPv6 address prefix are respectively carried by two routes, the consumption of network resources is reduced.

[0061] Optionally, the first route is a VPN route, including a first IPv6-based segment route virtual private network segment identifier (SRv6 VPN SID), and the first SRv6 VPN SID including the first IPv6 address prefix. In this way, the second node can directly advertise the SRv6 VPN SID including its own IPv6 address prefix for accessing the third-party underlay network through the VPN route, allowing the first node to iterate to the SRv6 tunnel through the SRv6 VPN SID and traverse the third-party underlay network.

[0062] Optionally, the first route is a VPN route, including a first IPv6-based segment route virtual private network segment identifier (SRv6 VPN SID), the first SRv6 VPN SID including the first IPv6 address prefix; and a second SRv6 VPN SID including the second IPv6 address prefix. In this way, the second node can carry multiple SRv6 VPN SIDs via a VPN route, facilitating route selection at the receiving end of the route (i.e., the first node).

[0063] Optionally, the method includes: the second node receives a first message from the first node through the first interface, the first message is an SRv6 message, the destination address carried in the IPv6 message header of the first message is an SRv6SID, and the locator of the SRv6 SID is the first IPv6 address prefix; the second node processes the first message to obtain a second message.

[0064] In the above implementation, on the forwarding plane, since the locator of the destination address SRv6 SID of the first message is the first IPv6 address prefix of the first interface, and the second node is connected to the third-party underlay network through the first interface, the second node can receive the first message through the first interface, thus enabling the message to traverse the third-party underlay network.

[0065] Optionally, the destination address is an SRv6 VPN SID; the source address carried by the IPv6 header of the second message is the address of the second node, and the destination address carried by the IPv6 header of the second message is the SRv6VPN SID of the third node; or, the source address carried by the IP header of the second message is the source IP address, and the destination address carried by the IP header of the second message is the destination IP address.

[0066] Here, both the source IP address and the destination IP address are private network addresses.

[0067] Exemplarily, the second node processes the first message to obtain the second message by: determining that the destination address SRv6 VPN SID belongs to a local SRv6 VPN SID table and obtaining a corresponding VRF routing table (or VPN instance routing table); searching the VRF routing table based on the destination IP address to obtain next-hop information; and processing the first message based on the function of the SRv6 SID and the next-hop information to obtain the second message. The VRF routing table may be a VRF routing table corresponding to the destination address SRv6 VPN SID or a VRF routing table corresponding to the function of the destination address SRv6 VPN SID, without specific limitation.

[0068] Furthermore, when the next hop information indicates the information of the third node, the source address carried by the IPv6 header of the second message is the address of the second node, and the destination address carried by the IPv6 header of the second message is the SRv6VPN SID of the third node; when the next hop information indicates the information of the user device, the source address carried by the IP header of the second message is the source IP address, and the destination address carried by the IP header of the second message is the destination IP address.

[0069] By implementing the above implementation, the destination address SRv6 VPN SID carried in the message can be uniquely routed to the second node in the third-party underlay network. The second node can process the first message in combination with the next hop information found to obtain the second message to be sent.

[0070] Optionally, the function of the SRv6 SID includes a VPN identifier of the second node.

[0071] Optionally, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node, the second message is an SRv6 message, the source address carried by the IPv6 message header of the second message is the address of the second node, and the destination address carried by the IPv6 message header of the second message is the SRv6 VPN SID of the third node.

[0072] By implementing the above implementation, on the forwarding plane, the destination address SRv6 SID carried in the message can be uniquely routed to the second node in the third-party underlay network. By using the SRH of the message to carry the SRv6 VPNSID of the third node to update the destination address of the message, the message can be iterated to the SRv6 tunnel from the second node to the third node through the SRv6 VPN SID of the third node.

[0073] In a third aspect, the present application provides a message transmission method, the method including: a first node generates an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message is an SRv6 SID, the SRv6 SID includes a first IPv6 address prefix of a first interface of a second node, the first node communicates with the second node through a third-party underlying underlay network, and the second node accesses the third-party underlying underlay network through the first interface; the first node sends the SRv6 message to the second node through the third-party underlay network.

[0074] Here, the first IPv6 address prefix, the first interface, etc. can refer to the description of the corresponding content of the first aspect above, and will not be repeated here.

[0075] In the above method, by encapsulating the SRv6 SID of the second node as the destination address carried in the IPv6 header of the SRv6 message, the message can be iterated to the SRv6 tunnel. Because the locator of the SRv6 SID of the second node is the first IPv6 address prefix used by the second node to access the third-party underlay network, the message can traverse the third-party underlay network. Compared with the method of using encapsulation GRE tunnel to achieve network traversal, the encapsulation overhead is reduced and the solution implementation is simpler.

[0076] Optionally, the destination address is an SRv6 VPN SID.

[0077] By implementing the above implementation, the message can be iterated to the SRv6 tunnel from the first node to the second node through the destination address SRv6 VPN SID, which simplifies the encapsulation overhead and makes the solution implementation more concise.

[0078] Optionally, the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

[0079] Here, the VPN identifier of the second node is locally allocated by the second node.

[0080] By implementing the above implementation method, the first IPv6 address prefix is ​​used as the locator of the SRv6 SID of the second node, so that routing to the second node can be achieved in the third-party underlay network. The VPN identifier of the second node can be carried by the function of the SRv6 SID to match the corresponding VPN instance.

[0081] Optionally, the segment routing header SRH of the SRv6 message carries the SRv6 VPN SID of the third node.

[0082] By implementing the above implementation method, the SRv6 SID of the second node is encapsulated as the destination address of the IPv6 header of the SRv6 message, so that the SRv6 message is iterated to the SRv6 tunnel from the first node to the second node, traversing the third-party underlay network between the first node and the second node; the SRv6 VPN SID of the third node is encapsulated into the segment routing header (SRH) of the SRv6 message, so that the SRv6 message can be iterated to the SRv6 tunnel from the second node to the third node.

[0083] In a fourth aspect, the present application provides a message transmission method, the method comprising: a second node receives a first message from a first node through a first interface, the first message is an SRv6 message, the destination address carried in the IPv6 message header of the first message is an SRv6 SID, and the locator of the SRv6 SID is the first IPv6 address prefix of the first interface, wherein the second node communicates with the first node through a third-party underlying underlay network, and the second node accesses the third-party underlay network through the first interface; the second node processes the first message to obtain a second message.

[0084] Here, the first IPv6 address prefix, the first interface, etc. can refer to the description of the corresponding content of the first aspect above, and will not be repeated here.

[0085] In the above method, since the locator of the destination address SRv6 SID of the first message is the first IPv6 address prefix of the first interface, and the second node is connected to the third-party underlay network through the first interface, the second node can receive the first message through the first interface, thereby achieving message traversal of the third-party underlay network.

[0086] Optionally, the destination address is an SRv6 VPN SID; the source address carried by the IPv6 header of the second message is the address of the second node, and the destination address carried by the IPv6 header of the second message is the SRv6VPN SID of the third node; or, the source address carried by the IP header of the second message is the source IP address, and the destination address carried by the IP header of the second message is the destination IP address.

[0087] Here, the destination address is the SRv6 VPN SID. The coefficients of the corresponding content of the second aspect mentioned above can be referred to and will not be repeated here.

[0088] By implementing the above implementation, the destination address SRv6 VPN SID carried in the message can be uniquely routed to the second node in the third-party underlay network. The second node can process the first message in combination with the next hop information found to obtain the second message to be sent.

[0089] Optionally, the function of the SRv6 SID includes a VPN identifier of the second node.

[0090] By implementing the above implementation, the second node can quickly match the corresponding VPN instance locally through the VPN identifier of the second node carried by the function of the SRv6 SID.

[0091] Optionally, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node, the second message is an SRv6 message, the source address carried by the IPv6 message header of the second message is the address of the second node, and the destination address carried by the IPv6 message header of the second message is the SRv6 VPN SID of the third node.

[0092] By implementing the above implementation method, the destination address SRv6 SID carried in the message can be uniquely routed to the second node in the third-party underlay network. By using the SRH of the message to carry the SRv6 VPN SID of the third node to update the destination address of the message, the message can be iterated to the SRv6 tunnel from the second node to the third node through the SRv6 VPN SID of the third node.

[0093] In a fifth aspect, the present application provides a device for route announcement, which is a first node or is included in the first node, and the device includes: a transceiver unit, used to receive a first route from a second node, the first route including a first IPv6 address prefix of a first interface of the second node, wherein the first node communicates with the second node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; a processing unit, used to obtain the SRv6 SID of the second node based on the first route, and the SRv6 SID includes the first IPv6 address prefix.

[0094] Optionally, the first route further includes a first domain identifier corresponding to the first interface, where the first domain identifier is used to indicate a network type of the first third-party underlay network.

[0095] Optionally, the first route further includes a second IPv6 address prefix of a second interface of the second node, wherein the second node accesses the second third-party underlay network through the second interface.

[0096] Optionally, the first route further includes a second domain identifier corresponding to the second interface, where the second domain identifier is used to indicate a network type of the second third-party underlay network.

[0097] Optionally, the first route is an underlying transport network (UTN) route, and the first route further includes an identifier of the second node.

[0098] Optionally, the transceiver unit is further used to receive a second route from the second node, where the second route is a virtual private network VPN route, and the second route includes an identifier of the second node and a VPN identifier of the second node; the processing unit is specifically used to: generate the SRv6 SID based on the first IPv6 address prefix and the VPN identifier of the second node, wherein the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

[0099] Optionally, the second route includes an extended community attribute, the extended community attribute includes an identifier of the second node and function information for generating the SRv6 SID, and the function information includes a VPN identifier of the second node.

[0100] Optionally, the transceiver unit is further used to receive a third route from the second node, the third route being a Border Gateway Protocol BGP IPv6 unicast route, the third route including a third IPv6 address prefix, the third route including an extended community attribute, and the extended community attribute including an identifier of the second node; and to receive a fourth route from the third node, the fourth route being a VPN route, the fourth route including the SRv6 VPN SID of the third node, and the SRv6 VPN SID of the third node including the third IPv6 address prefix; the processing unit is specifically used to: search for the third route according to the SRv6 VPN SID of the third node in the fourth route to obtain the identifier of the second node; search for the first route according to the identifier of the second node to obtain the first IPv6 address prefix; and generate the SRv6 SID according to the first IPv6 address prefix.

[0101] Optionally, the first route is a BGP IPv6 unicast route, the first route also includes a third IPv6 address prefix, the first route includes an extended community attribute, and the extended community attribute includes the first IPv6 address prefix; the transceiver unit is further used to receive a fourth route from a third node, the fourth route is a VPN route, the fourth route includes the SRv6 VPN SID of the third node, and the SRv6 VPN SID of the third node includes the third IPv6 address prefix; the processing unit is specifically used to: search for the first route according to the SRv6 VPN SID of the third node in the fourth route to obtain the first IPv6 address prefix; and generate the SRv6 SID according to the first IPv6 address prefix.

[0102] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPN SID includes the first IPv6 address prefix; wherein the SRv6 SID is the first SRv6 VPN SID.

[0103] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPN SID includes the first IPv6 address prefix; the first route also includes a second SRv6VPN SID, the second SRv6VPN SID includes the second IPv6 address prefix; the processing unit is used to: determine the first SRv6VPN SID as the SRv6 SID.

[0104] Optionally, the processing unit is further used to generate an SRv6 message, and the destination address carried in the IPv6 message header of the SRv6 message is the SRv6 SID; the transceiver unit is further used to send the SRv6 message to the second node through the first third-party underlay network.

[0105] Optionally, the processing unit is further used to generate an SRv6 message, the destination address carried by the IPv6 message header of the SRv6 message is the SRv6 SID, and the segment routing header SRH of the SRv6 message includes the SRv6VPN SID of the third node; the transceiver unit is further used to send the SRv6 message to the second node through the first third-party underlay network.

[0106] Optionally, the identifier of the second node is a site ID of the second node.

[0107] In a sixth aspect, the present application provides a device for route announcement, which is a second node or is included in the second node, and the device includes: a processing unit for generating a first route, the first route including a first IPv6 address prefix of a first interface, wherein the second node communicates with the first node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; a transceiver unit for sending the first route to the first node.

[0108] Optionally, the first route further includes a first domain identifier corresponding to the first interface, where the first domain identifier is used to indicate a network type of the first third-party underlay network.

[0109] Optionally, the first route further includes a second IPv6 address prefix of a second interface, wherein the second node accesses the second third-party underlay network through the second interface.

[0110] Optionally, the first route further includes a second domain identifier corresponding to the second interface, where the second domain identifier is used to indicate a network type of the second third-party underlay network.

[0111] Optionally, the first route is an underlying transport network (UTN) route, and the first route further includes an identifier of the second node.

[0112] Optionally, the transceiver unit is further configured to send a second route to the first node, where the second route is a VPN route and includes an identifier of the second node and a VPN identifier of the second node.

[0113] Optionally, the second route carries an extended community attribute, where the extended community attribute includes an identifier of the second node and function information for generating an SRv6 VPN SID, where the function information includes a VPN identifier of the second node.

[0114] Optionally, the transceiver unit is further used to send a third route to the first node, where the third route is a BGP IPv6 unicast route, includes a third IPv6 address prefix, contains an extended community attribute, and includes an identifier of the second node.

[0115] Optionally, the first route is a BGP IPv6 unicast route, the first route includes a third IPv6 address prefix, the first route includes an extended community attribute, and the extended community attribute includes the first IPv6 address prefix.

[0116] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, and the first SRv6 VPN SID includes the first IPv6 address prefix.

[0117] Optionally, the first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPN SID includes the first IPv6 address prefix; the first route also includes a second SRv6VPN SID, the second SRv6 VPN SID includes the second IPv6 address prefix.

[0118] Optionally, the transceiver unit is further used to receive a first message from the first node through the first interface, where the first message is an SRv6 message, the destination address carried in the IPv6 message header of the first message is the SRv6 SID, and the locator of the SRv6 SID is the first IPv6 address prefix; the processing unit is further used to process the first message to obtain a second message.

[0119] Optionally, the destination address is an SRv6 VPN SID; the source address carried by the IPv6 header of the second message is the address of the second node, and the destination address carried by the IPv6 header of the second message is the SRv6VPN SID of the third node; or, the source address carried by the IP header of the second message is the source IP address, and the destination address carried by the IP header of the second message is the destination IP address.

[0120] Optionally, the function of the SRv6 SID includes a VPN identifier of the second node.

[0121] Optionally, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node, the second message is an SRv6 message, the source address carried by the IPv6 message header of the second message is the address of the second node, and the destination address carried by the IPv6 message header of the second message is the SRv6 VPN SID of the third node.

[0122] Optionally, the identifier of the second node is a site identifier of the second node.

[0123] In the seventh aspect, the present application provides a device for message transmission, which is a first node or is included in the first node, and the device includes: a processing unit, used to generate an SRv6 message, the destination address carried by the IPv6 message header of the SRv6 message is an SRv6 SID, and the SRv6 SID includes the first IPv6 address prefix of the first interface of the second node, the first node communicates with the second node through a third-party underlying underlay network, and the second node accesses the third-party underlay network through the first interface; a transceiver unit, used to send the SRv6 message to the second node through the third-party underlay network.

[0124] Optionally, the destination address is an SRv6 VPN SID.

[0125] Optionally, the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

[0126] Optionally, the segment routing header SRH of the SRv6 message carries the SRv6 VPN SID of the third node.

[0127] In an eighth aspect, the present application provides a device for message transmission, which is a second node or is included in the second node, and the device includes: a transceiver unit, used to receive a first message from a first node through a first interface, the first message is an SRv6 message, the destination address carried by the IPv6 message header of the first message is an SRv6 SID, and the locator of the SRv6 SID is the first IPv6 address prefix of the first interface, wherein the second node communicates with the first node through a third-party underlying underlay network, and the second node accesses the third-party underlay network through the first interface; a processing unit, used to process the first message to obtain a second message.

[0128] Optionally, the destination address is an SRv6 VPN SID; the source address carried by the IPv6 header of the second message is the address of the second node, and the destination address carried by the IPv6 header of the second message is the SRv6VPN SID of the third node; or, the source address carried by the IP header of the second message is the source IP address, and the destination address carried by the IP header of the second message is the destination IP address.

[0129] Optionally, the function of the SRv6 SID includes a VPN identifier of the second node.

[0130] Optionally, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node, the second message is an SRv6 message, the source address carried by the IPv6 message header of the second message is the address of the second node, and the destination address carried by the IPv6 message header of the second message is the SRv6 VPN SID of the third node.

[0131] In the ninth aspect, the present application provides a communication node, which includes at least one processor and an interface circuit, and the processor is used to execute instructions and / or data interaction through the interface circuit, so that the node executes the method in the above-mentioned first aspect or any possible implementation of the first aspect, or executes the method in the above-mentioned second aspect or any possible implementation of the second aspect, or executes the method in the above-mentioned third aspect or any possible implementation of the third aspect, or executes the method in the above-mentioned fourth aspect or any possible implementation of the fourth aspect.

[0132] In the tenth aspect, the present application provides a communication system, which includes a first node and a second node, wherein the first node is used to execute the method in any possible implementation of the above-mentioned first aspect and / or third aspect, and the second node is used to execute the method in any possible implementation of the above-mentioned second aspect and / or fourth aspect.

[0133] Furthermore, the first node may be an apparatus in any possible implementation of the fifth or seventh aspect, or may be a communication node in the ninth aspect. The second node may be an apparatus in any possible implementation of the sixth or eighth aspect, or may be a communication node in the ninth aspect.

[0134] In the eleventh aspect, the present application provides a computer-readable storage medium comprising computer instructions, which, when executed by a processor, implement the method of the first aspect or any possible implementation of the first aspect, or the method of the second aspect or any possible implementation of the second aspect, or execute the method of the third aspect or any possible implementation of the third aspect, or execute the method of the fourth aspect or any possible implementation of the fourth aspect.

[0135] In the twelfth aspect, the present application provides a computer program product, which, when executed by a processor, implements the method in the first aspect or any possible embodiment of the first aspect, or implements the method in the second aspect or any possible implementation of the second aspect, or executes the method in the third aspect or any possible implementation of the third aspect, or executes the method in the fourth aspect or any possible implementation of the fourth aspect.

[0136] Illustratively, the computer program product may include a software product, such as a software installation package, or a hardware product, such as a computer-readable storage medium. BRIEF DESCRIPTION OF THE DRAWINGS

[0137] Figure 1 This is a schematic diagram of the architecture of a communication system provided by an embodiment of the present application;

[0138] Figure 2 This is a schematic diagram of the architecture of another communication system provided in an embodiment of the present application;

[0139] Figure 3 This is a flow chart of a routing advertisement method provided by an embodiment of the present application;

[0140] Figure 4A This is a schematic diagram of an application scenario provided by an embodiment of the present application;

[0141] Figure 4B This is another application scenario diagram provided by an embodiment of the present application;

[0142] Figure 5 This is a flow chart of a message transmission method provided by an embodiment of the present application;

[0143] Figure 6A This is a schematic diagram of a message forwarding process provided by an embodiment of the present application;

[0144] Figure 6B This is a schematic diagram of a message forwarding process provided by an embodiment of the present application;

[0145] Figure 7 This is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0146] Figure 8 This is a structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0147] It should be noted that the prefixes such as "first" and "second" used in this application are only for distinguishing different description objects, and do not have any limiting effect on the position, order, priority, quantity or content of the described objects. For example, if the described object is a "field", then the ordinal number before the "field" in the "first field" and the "second field" does not limit the position or order between the "fields", and "first" and "second" do not limit whether the "fields" they modify are in the same message, nor do they limit the order of the "first field" and the "second field". For another example, if the described object is a "level", then the ordinal number before the "level" in the "first level" and the "second level" does not limit the priority between the "levels". For another example, the number of described objects is not limited by the prefix and can be one or more. Taking "first device" as an example, the number of "devices" can be one or more. In addition, the objects modified by different prefixes can be the same or different. For example, if the described object is a "device," then the "first device" and the "second device" can be the same device, the same type of device, or different types of devices. For another example, if the described object is "information," then the "first information" and the "second information" can be information of the same content or information of different contents. In short, the use of prefixes to distinguish the described objects in the embodiments of this application does not constitute a limitation on the described objects. For the description of the described objects, please refer to the description in the context of the claims or embodiments, and the use of such prefixes should not constitute an unnecessary limitation.

[0148] It should be noted that the descriptions used in the embodiments of the present application, such as "at least one of a1, a2, ..., and an" and the like, include any one of a1, a2, ..., and an existing alone, and any combination of any multiple of a1, a2, ..., and an, each of which can exist alone. For example, the description "at least one of a, b, and c" includes a alone, b alone, c alone, a combination of a and b, a combination of a and c, a combination of b and c, or a combination of ab and c.

[0149] To facilitate understanding, the following first introduces relevant terms that may be involved in the embodiments of this application.

[0150] (1) SRv6 SID based on IPV6 protocol

[0151] Segment Routing (SR) divides a network path into segments. Each segment is identified by a segment ID (SID). The ID that identifies an SRv6 segment is called an SRv6 SID. An SRv6 SID is a 128-bit value that generally consists of a locator, function, and arguments. They are described below:

[0152] Locator (location identifier): A locator identifies a network node in the network topology, providing location information. It is used to route and forward packets to that node, making network commands addressable. Routes corresponding to locators are aggregatable. In SRv6 SIDs, locators are variable in length, adapting to networks of varying sizes.

[0153] Function: An ID value assigned by a network node to a local forwarding instruction, used to identify the forwarding action to be performed by the instruction. In SRv6 network programming, different forwarding behaviors are expressed using different functions. For example, the well-known functions End, End.X, End.DX4, and End.DX6 are defined. Functions can be used to identify the virtual private network (VPN) of the network node.

[0154] Arguments (variables): Also referred to as args, these are optional information in the SRv6 SID. As a supplement to function, args are parameters required for command execution. These parameters may include streams, services, or other related information.

[0155] (2) Software-Defined Wide Area Network

[0156] Software-Defined WAN (SD-WAN) is a software-defined wide area network (WAN) technology. Using a centralized controller to intelligently manage and optimize the network, SD-WAN provides more flexible enterprise network connections. This not only addresses the issues of internet instability and the high cost of dedicated lines, improving network reliability and security, but also meets the immediacy and real-time requirements of applications such as remote working, video conferencing, remote desktop, telemedicine, and payment transactions.

[0157] (3) Dedicated virtual network

[0158] A dedicated virtual private network (VPN) creates a dedicated channel over a normal physical connection to isolate and maintain confidentiality. VPNs generally include IPsec-VPN and MPLS-VPN. IPsec-VPN refers to an Internet-based VPN, while MPLS-VPN refers to a VPN based on a carrier's MPLS.

[0159] See also Figure 1 , Figure 1 This is a schematic diagram of the architecture of a communication system provided by an embodiment of the present application. Figure 1 As shown, the system includes a first node, a second node, and a third node. The first node communicates with the second node via a third-party underlay network, and the second node communicates with the third node via the enterprise's own network. For example, the second node can be directly connected to the third node, or the second node can be connected to the third node via at least one node.

[0160] Here, the third-party underlay network can be a network provided by a third party. The network type of the third-party underlay network includes, for example, at least one of the Internet public network, the long-term evolution (LTE) network, the fifth-generation mobile communication technology (5G) network, and the Multi-Protocol Label Switching (MPLS) L3VPN network.

[0161] Understandably, Figure 1 In this scenario, the third-party underlay network is neither the network where the first node is located nor the network where the second node is located. For example, the network where the first node is located, the network where the second node is located, and the network where the third node is located are all owned by the enterprise.

[0162] Here, there is no limit on the number of third-party underlay networks to which the first node is connected, and there is no limit on the number of third-party underlay networks to which the second node is connected.

[0163] For example, Figure 2 This is another architecture diagram of a communication system provided in an embodiment of the present application. Figure 1 , it can be seen that Figure 2In the example, the second node is connected to two third-party underlay networks (third-party underlay network 1 and third-party underlay network 2). The interfaces of the second node include interface 1 and interface 2. The second node accesses third-party underlay network 1 through interface 1, and the second node accesses third-party underlay network 2 through interface 2. Interface 1 is different from interface 2, and the network type of third-party underlay network 1 is different from the network type of third-party underlay network 2.

[0164] Here, interface 1 and interface 2 may be physical interfaces or logical interfaces, which are not specifically limited here.

[0165] Understandably, Figure 2 In this example, when the first node is connected only to third-party underlay network 1 (i.e., the first node is connected to third-party underlay network 1 through interface 3), the second node can only communicate with the first node through third-party underlay network 1. When the first node is connected to both third-party underlay network 1 and third-party underlay network 2, i.e., the first node is connected to third-party underlay network 1 through interface 3 and the first node is connected to third-party underlay network 2 through interface 4, the second node can communicate with the first node through third-party underlay network 1, or the second node can communicate with the first node through third-party underlay network 2.

[0166] In the embodiment of the present application, the third-party underlay network can allocate an IPv6 address and mask information to each interface connected to it. Figure 2 Taking interface 1 of the second node in the example, the IPv6 address prefix of interface 1 can be determined based on the mask information and IPv6 address assigned to interface 1 by third-party underlay network 1. Here, the IPv6 address prefix of interface 1 can also be understood as an IPv6 address prefix assigned to interface 1 by third-party underlay network 1, that is, an IPv6 address prefix that the second node uses to access third-party underlay network 1 through interface 1. Other nodes in the network can reach the second node through the IPv6 address prefix of interface 1 in third-party underlay network 1.

[0167] The IPv6 address prefix of interface 1 can be uniquely routed to the second node in third-party underlay network 1 .

[0168] Exemplarily, any of the above-mentioned first node, second node and third node can be a physical router, physical switch, physical load balancer, physical firewall and other devices with routing and forwarding capabilities, or can be a component within the device, and the component can be, for example, a single board, line card, chip, etc.

[0169] As an example, in Figure 1 In the embodiment, the first node is further connected to the user equipment 1, the first node may be an access router (Access Router), the second node may be an aggregation node (Aggregation Node), the third node may be a provider edge (Provider Edge, PE) device, and the third node is further connected to the user equipment 2.

[0170] For example, Figure 1 The communication system shown can be applied to various application scenarios, such as wide area networks, SD-WAN scenarios, etc.

[0171] It should be noted that Figure 1 or Figure 2 This is only an exemplary architecture diagram, but not limited to Figure 1 or Figure 2 The system shown includes the number of network elements. Figure 1 or Figure 2 Not shown, but Figure 1 or Figure 2 In addition to the functional entities shown, Figure 1 or Figure 2 Other functional entities may also be included. In addition, the method provided in the embodiment of the present application can be applied to Figure 1 or Figure 2 The communication system shown in FIG. 1 is a schematic diagram of a communication system. Of course, the method provided in the embodiment of the present application can also be applied to other communication systems, such as Figure 1 The communication system shown may also not include a third node, that is, the second node is directly connected to the user equipment.

[0172] In the existing scheme, Figure 1 The third-party underlay network shown is the Internet. To traverse the third-party Internet, SRv6 generally uses VPN over IPsec over GRE. Figure 1In the example, the enterprise to which user device 1 belongs needs to apply for an Internet dedicated line and a fixed public IP address from the operator of the third-party underlay network, and establish a GRE tunnel between the first node and the second node, and run SRv6 over GRE between the first node and the third node. When the first node receives the service message, if it wants to communicate with the peer device across the third-party Internet, in addition to encapsulating the service message with an SRv6 tunnel, it also needs to encapsulate a GRE tunnel. This brings new encapsulation overhead, making service encapsulation complicated. In response to the above problems, the embodiment of the present application provides a routing announcement and message transmission method, which can realize message traversal of a third-party underlay network with less encapsulation overhead, and also makes the solution implementation simpler.

[0173] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.

[0174] based on Figure 1 or Figure 2 In the system architecture shown, if it is desired to enable the message generated by the first node to traverse the third-party underlay network, the second node needs to update the route to be published on the control plane to inform the first node of the IPv6 address prefix that can be routed to the second node in the third-party underlay network. Accordingly, the first node processes the received route accordingly on the control plane.

[0175] See also Figure 3 , Figure 3 This is a flow chart of a routing notification method provided by an embodiment of the present application. This method can be applied to the above Figure 1 or Figure 2 The method includes but is not limited to the following steps:

[0176] S301: The second node generates a first route, where the first route includes a first IPv6 address prefix of a first interface. The second node communicates with the first node through a third-party underlay network 1, and the second node accesses the third-party underlay network 1 through the first interface.

[0177] Here, the second node communicates with the first node through the third-party underlay network 1 , which means that the first node is also connected to the third-party underlay network 1 .

[0178] Here, the third-party underlay network 1 may be a network provided by a third party. The network type of the third-party underlay network 1 may include, for example, at least one of an internet public network, a long-term evolution (LTE) network, a fifth-generation mobile communication technology (5G) network, and a multi-protocol label switching (MPLS) L3VPN network.

[0179] It can be understood that the third-party underlay network 1 is neither the network where the second node is located, nor the network where the first node is located.

[0180] Here, the first interface may be a physical interface of the second node, or may be a logical interface of the second node (eg, a loopback interface).

[0181] Here, the first IPv6 address prefix is ​​determined by the second node based on the IPv6 address of the first interface and the mask corresponding to the first interface, and the first IPv6 address of the first interface and the mask corresponding to the first interface are both allocated by the third-party underlay network 1. Here, the third-party underlay network 1 can configure the IPv6 address and mask information of the first interface using static configuration or Dynamic Host Configuration Protocol (DHCP).

[0182] Here, the first IPv6 address prefix can be understood as the IPv6 address prefix assigned by the third-party underlay network 1 to the first interface of the second node, or as an IPv6 address prefix with which the second node accesses the third-party underlay network 1 through the first interface, or as an IPv6 address prefix with which other nodes can reach the second node through the third-party underlay network 1.

[0183] Exemplarily, the length of the first IPv6 address prefix is ​​less than or equal to 64. In some possible embodiments, if the length of the first IPv6 address prefix is ​​greater than 64, when the SRv6 SID of the second node needs to be generated based on the first IPv6 address prefix, for example, it is necessary to constrain the length of the function information and / or the length of the agrs information in the SRv6 SID of the second node. Here, the function information and / or agrs information in the SRv6 SID of the second node may be locally allocated by the second node.

[0184] In some possible embodiments, the first route also includes a first domain identifier corresponding to the first interface, and the first domain identifier is used to indicate the network type of the third-party underlay network 1. The network type of the third-party underlay network 1 can also refer to the description of the corresponding content above and will not be repeated here.

[0185] Here, there is no limit on the number of third-party underlay networks that the second node accesses. In some possible embodiments, the second node accesses multiple third-party underlay networks through different interfaces. For example, the second node accesses third-party underlay network 1 through the first interface and also accesses third-party underlay network 2 through the second interface. In this case, the first route also includes the second IPv6 address prefix of the second interface. The second IPv6 address prefix of the second interface can refer to the description of the first IPv6 address prefix of the first interface and will not be repeated here.

[0186] Exemplarily, the first interface is different from the second interface, and the network type of the third-party underlay network 1 is different from the network type of the third-party underlay network 2 .

[0187] Furthermore, the first route also includes a second domain identifier corresponding to the second interface, and the second domain identifier is used to indicate the network type of the third-party underlay network 2. The classification of the network type of the third-party underlay network 2 can refer to the description of the corresponding content above and will not be repeated here.

[0188] In one implementation, the first route is an Underlay Transport Network (UTN) route, and the UTN route also includes an identifier of the second node. Here, the first route is a UTN route, which can be understood as indicating a route type that carries an address prefix indicating access to a third-party underlay network. The UTN route is simply a name for this type of route and does not limit the route to being called a UTN route.

[0189] Here, the identifier of the second node is used to identify the second node, and the identifier of the second node is a globally unique identifier of the second node. For example, the identifier of the second node can be a site identifier of the second node, or a locator locally allocated to the second node can be used as the identifier of the second node.

[0190] Furthermore, as an example, when the first route is a UTN route, the second node also generates a second route, which is a virtual private network (VPN) route, wherein the second route includes the identifier of the second node and the VPN identifier of the second node. In this way, the receiving end of the first route and the second route (i.e., the first node) can determine the association between the first route and the second route through the identifier of the second node.

[0191] Exemplarily, the second route is a VPN route, and the second route includes an identifier of the second node and a VPN identifier of the second node. As an example, the second route includes an extended community attribute, which includes the identifier of the second node and function information for generating an SRv6 VPN SID, where the function information includes the VPN identifier of the second node. The VPN identifier of the second node is not limited to being carried only by the extended community attribute in the VPN route; it may also be carried via other extended attributes.

[0192] Here, the VPN identifier of the second node is locally allocated by the second node. In some possible embodiments, the second node is also locally allocated agrs information for generating an SRv6 VPN SID. In this case, the extended community attribute of the second route also carries the agrs information. Here, there is no limit on the number of extended community attributes in the second route. For example, in the second route, the identifier of the second node and the VPN identifier of the second node can be carried by one extended community attribute or by multiple extended community attributes.

[0193] Here, the second route also includes the identifier of the second route, the private network address and the next hop information. The identifier of the second route is RD (Route Distinguisher) and RT (Route Target).

[0194] As can be seen, the UTN routes generated by the second node are independent of the VPN routes generated by the second node, achieving decoupling of UTN and VPN routing information. For example, if multiple VPNs are configured on the second node and, in a specific application scenario, the VPN routes of the second node remain unchanged and only the interface connecting to the third-party underlay network changes, the second node only needs to update the UTN routes, not the VPN routes. This decoupling of UTN and VPN routing information helps reduce network bandwidth consumption.

[0195] In one implementation, the UTN route generated by the second node may not be decoupled from the VPN route generated by the second node, that is, the information in the UTN route may be directly carried by the VPN route. In this case, if the first route is a VPN route, the first route may carry the information in the UTN route via an extended community attribute. For other information in the first route, reference may be made to the relevant description of the VPN route generated by the second node. Furthermore, since the first IPv6 address prefix can be used to uniquely route to the second node in third-party underlay network 1, and the second IPv6 address prefix can be used to uniquely route to the second node in third-party underlay network 2, the first route does not need to carry the identifier of the second node.

[0196] Furthermore, as an example, when the first route is a UTN route, the second node may also generate a third route, and the third route is a Border Gateway Protocol (BGP) IPv6 unicast route. The third route includes a third IPv6 address prefix and an identifier of the second node. Here, the third IPv6 address prefix is ​​allocated to the network where the third node is located (i.e., the enterprise's own network), and the third IPv6 address prefix is ​​an IPv6 address prefix that other nodes can route to the third node through the enterprise's own network. In this way, the receiving end of the third route and the first route (i.e., the first node) can determine that the third route is associated with the first route based on the identifier of the second node, and can also determine that the third route is associated with the fourth route received from the third node based on the third IPv6 address prefix, and the fourth route is a VPN route.

[0197] Exemplarily, the third route including the third IPv6 address prefix and the identifier of the second node may be: the third route includes the third IPv6 address prefix, the third route includes an extended community attribute, and the extended community attribute includes the identifier of the second node.

[0198] For example, the third route generated by the second node is recorded as BGP IPv6 unicast route 1. BGP IPv6 unicast route 1 is obtained by the second node by processing BGP IPv6 unicast route 2 received from the third node. The second node modifies the next hop information in BGP IPv6 unicast route 2 to generate BGP IPv6 unicast route 1.

[0199] Exemplarily, the third route further includes next hop information and a color attribute. In the embodiment of the present application, the color attribute is used by the first node to distinguish SRv6 tunnels.

[0200] In this way, the UTN route (ie, the first route) generated by the second node is independent of the BGP IPv6 unicast route (ie, the third route) generated by the second node, thereby achieving decoupling of the UTN route and the BGP IPv6 unicast route.

[0201] In one implementation, the first route is a BGP IPv6 unicast route, further comprising a third IPv6 address prefix, and further comprising an extended community attribute, wherein the extended community attribute comprises the first IPv6 address prefix. The third IPv6 address prefix can be described in the aforementioned corresponding content. It can be seen that, compared to the aforementioned UTN route being independent of the BGP IPv6 unicast route, when the first route is a BGP IPv6 unicast route, the address prefix used by the second node to access the third-party underlay network is directly carried by the BGP IPv6 unicast route, and the first route does not need to carry the identifier of the second node.

[0202] Exemplarily, when the first route also includes the first domain identifier corresponding to the first interface, the first domain identifier can also be carried by the extended community attribute of the first route. Similarly, when the first route also includes the second domain identifier corresponding to the above-mentioned second IPv6 address prefix and the second interface, the second IPv6 address prefix and the second domain identifier can also be carried by at least one extended community attribute of the first route.

[0203] In one implementation, the first route is a VPN route, and the first route includes the first IPv6 address prefix of the first interface, which means that the first route includes a first SRv6 VPN SID, and the first SRv6 VPN SID includes the first IPv6 address prefix of the first interface. Exemplarily, the first SRv6 VPN SID is generated by the second node based on the first IPv6 address prefix and an identifier of the second node, wherein a locator of the first SRv6 VPN SID is the first IPv6 address prefix, and a function of the first SRv6 VPN SID includes the identifier of the second node.

[0204] Furthermore, when the first route is a VPN route, the first route also includes the second IPv6 address prefix of the second interface (i.e., the second node accesses the third-party underlay network 2 through the second interface), which means that the first route also includes a second SRv6 VPN SID, and the second SRv6 VPN SID includes the second IPv6 address prefix of the second interface. The generation of the second SRv6 VPN SID can refer to the description of the generation method of the first SRv6 VPN SID and is not repeated here.

[0205] Exemplarily, when the first route is a VPN route, the first route further includes an identifier of the first route (such as the above-mentioned RD and RT), a private network address, and next hop information.

[0206] It can be seen that when the second node accesses different third-party underlay networks through multiple interfaces, multiple SRv6 VPN SIDs can be carried through VPN routing. Each of these multiple SRv6 VPN SIDs corresponds to one of the multiple interfaces of the second node, thereby enabling routing to the second node in the corresponding third-party underlay network.

[0207] In another implementation, the first route is a VPN route and includes a community extension attribute. The community extension attribute includes the first IPv6 address prefix and function information used to generate an SRv6 VPN SID. The function information includes the VPN identifier of the second node. It can be seen that, compared to the above-mentioned method in which the UTN route is independent of the VPN route, when the first route is a VPN route, the address prefix used by the second node to access the third-party underlay network is directly carried by the first route, and the first route does not need to carry the identifier of the second node.

[0208] S302: The second node sends a first route to the first node.

[0209] In one implementation, the first route is the above-mentioned UTN route, and the second node sending the first route to the first node means that the second node sends the first route to the first node via a border network protocol BGP.

[0210] Furthermore, when the second node generates the second route, the second route is a VPN route. The second node also sends the second route to the first node, for example, by sending the second route to the first node via BGP. The content of the VPN route generated by the second node can be found in the description of the corresponding content in S301 above and is not repeated here.

[0211] It can be understood that if the second node has already published the second route in the history and the current second route has not changed, then there is no need to send the second route again.

[0212] See also Figure 4A , Figure 4A This is a schematic diagram of an application scenario provided by an embodiment of the present application. It can be seen that Figure 4A exist Figure 1On the basis of this, an SRv6 tunnel is established between the first node and the second node. On the control plane, the second node needs to send a UTN route (i.e., a first route) and a VPN route (i.e., a second route) to the first node. For the contents of the UTN route and the VPN route, please refer to the description of the corresponding contents in the case where the first route is a UTN route in S301.

[0213] Furthermore, when the second node generates the third route, which is a BGP IPv6 unicast route, the second node sends the third route to the first node.

[0214] See also Figure 4B , Figure 4B This is another application scenario diagram provided by the embodiment of the present application. It can be seen that Figure 4B exist Figure 1 On the basis of , an SRv6 tunnel is established between the first node and the third node. On the control plane, the second node sends the UTN route (i.e., the first route) and BGP IPv6 unicast route 1 (i.e., the third route) to the first node. For the details of the UTN route and BGP IPv6 unicast route 1, please refer to the description of the corresponding content in S301 when the first route is the UTN route. It can be seen that Figure 4B In , the third node also sends a VPN route (i.e., the fourth route) to the first node. Figure 4B In the example, BGP IPv6 unicast route 1 is obtained based on BGP IPv6 unicast route 2 sent by the third node. Since the second node is the demarcation point between the third-party underlay network and the enterprise's own network and the second node is cross-domain, the second node modifies the next hop information. Here, for other information in BGP IPv6 unicast route 1 and UTN route, please refer to the description of the corresponding content in the above S301.

[0215] In one implementation, the first route is a VPN route, and the second node sending the first route to the first node means: the second node sends the first route to the first node via BGP. Here, the first route can refer to the description of the corresponding content in the case where the first route is a VPN route in S301 above, and will not be repeated here.

[0216] In one implementation, the first route is a BGP IPv6 unicast route. Here, the content of the first route can refer to the description of the corresponding content in the case where the first route is a BGP IPv6 unicast route in S301 above, and will not be repeated here.

[0217] S303: The first node obtains the SRv6 SID of the second node according to the first route, where the SRv6 SID includes the first IPv6 address prefix.

[0218] In the embodiment of the present application, when the first route is a UTN route, since the route received by the first node may be different in different application scenarios, the process of obtaining the SRv6 SID of the second node may refer to the following method 1 or method 2:

[0219] Method 1:

[0220] The first node receives a first route (which is a UTN route) from the second node. The first node also receives a second route from the second node, where the second route is a VPN route. The first node obtains the SRv6 SID of the second node according to the first route, including: the first node obtains the SRv6 SID of the second node according to the first route and the second route.

[0221] Exemplarily, obtaining the SRv6 SID of the second node based on the first route and the second route may include generating the SRv6 SID of the second node based on the first IPv6 address prefix and the VPN identifier of the second node, wherein a locator of the SRv6 SID is the first IPv6 address prefix, and a function of the SRv6 SID includes the VPN identifier of the second node. It is understood that the SRv6 SID may be routed to the first interface of the second node via a third-party underlay network.

[0222] Furthermore, if the first route also includes the second IPv6 address prefix of the second interface (i.e., the second node is connected to the third-party underlay network 2 through the second interface), then when the first node is also connected to the third-party underlay network 2, the first node can also obtain another SRv6 SID of the second node based on the second IPv6 address prefix and the VPN identifier of the second node, wherein the SRv6 SID corresponds to the second interface, the locator of the SRv6 SID is the second IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node. For example, if the first node is not connected to the third-party underlay network 2, the first node can ignore the second IPv6 address prefix of the second interface in the first route.

[0223] Method 2:

[0224] A first node receives a first route (which is a UTN route) from a second node. The first node also receives a third route from the second node, where the third route is a BGP IPv6 unicast route. The first node also receives a fourth route from the third node, where the fourth route is a VPN route. The first node obtains the SRv6 SID of the second node based on the first route, including: the first node obtains the SRv6 SID of the second node based on the first route, the second route, and the third route.

[0225] Here, the fourth route includes the SRv6 VPN SID of the third node, which includes the third IPv6 address prefix. The SRv6 VPN SID of the third node is configured by the third node in the network segment indicated by the third IPv6 address prefix. As can be seen from the foregoing, the third route carries the third IPv6 address prefix. In some possible embodiments, the fourth route also includes the fourth route identifier, private network address, and next hop information.

[0226] Exemplarily, the first node obtains the SRv6 SID of the second node based on the first route, the second route, and the third route. This may be: the first node searches for the third route based on the SRv6 VPN SID of the third node in the fourth route to obtain the identifier of the second node; searches for the first route based on the identifier of the second node to obtain the first IPv6 address prefix; and generates the SRv6 SID of the second node based on the first IPv6 address prefix, where the locator of the SRv6 SID is the first IPv6 address prefix.

[0227] Furthermore, the third route (being a BGP IPv6 unicast route) can also serve as a public VPN route. In this case, it also carries the public network VPN information of the second node. For example, the public network VPN information can be carried via an extended community attribute of the third route or other extended methods. The public network VPN information can be understood as a public attribute. In this case, the first node generates the SRv6 SID of the second node based on the first IPv6 address prefix. This can be: the first node generates the SRv6 SID of the second node based on the first IPv6 address prefix and the public network VPN information of the second node. In some possible embodiments, if the third route does not carry the VPN identifier of the second node, the SRv6 SID of the second node may also be generated based on the first IPv6 address prefix and preset information. Here, the preset information can be an address generation rule agreed upon by the second node and the first node. The preset information is used by the first node to generate a 128-bit SRv6 SID based on the IPv6 address prefix assigned by a third-party underlay network.

[0228] For example, if the first route also includes the second IPv6 address prefix of the second interface (i.e., the second node is connected to the third-party underlay network 2 through the second interface), then if the first node is also connected to the third-party underlay network 2, the first node can also generate another SRv6 SID that can be routed to the second node based on the second IPv6 address prefix, and the locator of the SRv6 SID is the second IPv6 address prefix. For example, if the first node is not connected to the third-party underlay network 2, the first node can ignore the second IPv6 address prefix of the second interface in the first route.

[0229] In an embodiment of the present application, when the first route is a BGP IPv6 unicast route, the first node receives the first route from the second node, and the first node also receives a fourth route from the third node, the fourth route is a VPN route, the fourth route includes the SRv6 VPN SID of the third node, and the SRv6 VPN SID of the third node includes a third IPv6 address prefix. Then, the first node obtains the SRv6 SID of the second node according to the first route, including: the first node obtains the SRv6 SID of the second node according to the first route and the fourth route.

[0230] Exemplarily, obtaining the SRv6 SID of the second node according to the first route and the fourth route can be: searching the first route according to the SRv6 VPN SID of the third node in the fourth route to obtain the first IPv6 address prefix; generating the SRv6 SID of the second node according to the first IPv6 address prefix, where the locator of the SRv6 SID is the first IPv6 address prefix.

[0231] Furthermore, if the first route also includes the second IPv6 address prefix of the second interface (i.e., the second node is connected to third-party underlay network 2 through the second interface), then if the first node is also connected to third-party underlay network 2, the first node can also generate another SRv6 SID that can be routed to the second node based on the second IPv6 address prefix, and the locator of this SRv6 SID is the second IPv6 address prefix. For another example, if the first node is not connected to third-party underlay network 2, the first node can ignore the second IPv6 address prefix of the second interface in the first route.

[0232] In one implementation, when the first route is a VPN route, the first node receives the first route from the second node, and the first node obtains the SRv6 SID of the second node based on the first route.

[0233] As an example, the first route includes a first SRv6 VPNSID, and the first SRv6 VPNSID includes a first IPv6 address prefix. Then, the SRv6 SID of the second node is the first SRv6 VPNSID.

[0234] As an example, the first route includes a first SRv6 VPN SID and a second SRv6 VPN SID, wherein the first SRv6 VPN SID includes the first IPv6 address prefix and the second SRv6 VPN SID includes the second IPv6 address prefix. In this case, the first node determines the first SRv6 VPN SID as the SRv6 SID of the second node.

[0235] For example, the first SRv6 VPN SID as the SRv6 SID of the second node can be selected by the first node from the first SRv6 VPN SID and the second SRv6 VPN SID based on a routing policy. Here, the routing policy can be, for example, a policy established using BGP route priority or a route iteration policy statically configured by a device.

[0236] As another example, when the first route is a VPN route and the first route carries the above-mentioned first IPv6 address prefix and the VPN identifier of the second node, obtaining the SRv6 SID of the second node according to the first route can be: generating the SRv6 SID of the second node according to the VPN identifier of the second node and the first IPv6 address prefix, wherein the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

[0237] Exemplarily, when the first node obtains multiple IPv6 address prefixes (such as the first IPv6 address prefix and the second IPv6 address prefix mentioned above) from the second node, the first node can determine whether to generate an SRv6 SID routed to the second node in the third-party underlay network based on whether it is connected to the third-party underlay network corresponding to the IPv6 address prefix.

[0238] Exemplarily, after obtaining the SRv6 SID of the second node, the first node may store the SRv6 SID in a local VPN routing and forwarding table.

[0239] It can be seen that when implementing the embodiments of the present application, in the SRv6 scenario, the target node publishes the IPv6 address prefix obtained by its own interface for accessing the third-party underlying underlay network through routing, so that the receiving end of the route can uniquely route to the target node in the third-party underlay network through the IPv6 address prefix, which is conducive to iterating to the SRv6 tunnel through the IPv6 address prefix on the forwarding plane.

[0240] See also Figure 5 , Figure 5 This is a flow chart of a message transmission method provided by an embodiment of the present application. This method can be applied to the above Figure 1 or Figure 2 In some possible embodiments, the communication system further includes Figure 1 or Figure 2 The method includes but is not limited to the following steps:

[0241] S501: The first node generates a first message. The first message is an SRv6 message. The destination address carried in the IPv6 message header of the first message is an SRv6 SID. The SRv6 SID includes the first IPv6 address prefix of the first interface of the second node. The second node accesses third-party underlay network 1 through the first interface. The first node communicates with the second node through third-party underlay network 1.

[0242] In one implementation, the destination address carried in the IPv6 header of the first message is the SRv6 VPN SID. This implementation may correspond to the above Figure 3 In the embodiment, the first route is a VPN route and the first route includes the first SRv6 VPN SID (including the first IPv6 address prefix), which can also correspond to the above Figure 3 In the embodiment, the first route (which is a UTN route) and the second route (which is a VPN route) are considered.

[0243] Exemplarily, the locator of the SRv6 SID is the first IPv6 address prefix and the function of the SRv6 SID includes the VPN identifier of the second node.

[0244] Exemplarily, the process of the first node generating the first message may be: the first node searches the local VPN routing table based on the destination IP address, and obtains the SRv6 SID of the next hop corresponding to the destination IP address as the above-mentioned SRv6 SID, and the SRv6 SID includes the first IPv6 address prefix of the first interface, that is, the SRv6 SID is the SRv6 SID of the second node, and uses the SRv6 SID as the destination address of the IPv6 message header and the address of the first node (for example, the loopback address) as the source address of the IPv6 message header to encapsulate and obtain the first message, which is an SRv6 message.

[0245] Exemplarily, the first node first receives a virtual private network VPN service message, the source address carried in the IP header of the VPN service message is the source IP address, the destination address carried in the IP header of the VPN service message is the destination IP address, and the first node generates a first message, including: the first node generates the first message based on the VPN service message, and the destination address SRv6 SID carried in the IPv6 message header of the first message is obtained by the first node searching the routing table based on the destination IP address.

[0246] In another implementation, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node. This implementation may correspond to the above Figure 3 In this embodiment, the first node receives a BGP IPv6 unicast route from the second node.

[0247] S502: The first node sends a first message to the second node through the third-party underlay network 1.

[0248] S503: The second node processes the first message to obtain a second message.

[0249] In one implementation, if the destination address carried in the IPv6 header of the first message is the SRv6VPN SID, the source address carried in the IPv6 header of the second message is the loopback address of the second node, and the destination address carried in the IPv6 header of the second message is the SRv6VPN SID of the third node. In some possible implementations, when the second node is directly connected to the user equipment, the source address carried in the IP header of the second message is the source IP address, and the destination address carried in the IP header of the second message is the destination IP address. Here, both the source IP address and the destination IP address are private network addresses.

[0250] Exemplarily, the SRv6VPN SID may be directly obtained by the first node from the VPN route sent by the second node, or may be generated by the first node based on the received first IPv6 address prefix and the VPN identifier of the second node.

[0251] Exemplarily, the locator of the SRv6 SID is the first IPv6 address prefix and the function of the SRv6 SID includes the VPN identifier of the second node.

[0252] As an example, the second node processes the first message to obtain the second message, which can be: the second node determines that the destination address SRv6 SID belongs to the local SRv6 VPN SID table (that is, the destination address SRv6 SID is locally allocated to the second node), and obtains the VRF routing table (or VPN instance routing table) corresponding to the SRv6 SID; the second node searches the VRF routing table according to the destination IP address to obtain the next hop information; the second node processes the first message according to the function of the SRv6 SID and the next hop information to obtain the second message.

[0253] As an example, the second node processes the first message to obtain the second message, which can be: the second node searches the local SRv6 VPN SID table based on the destination address SRv6 SID to obtain the VRF routing table corresponding to the function of the destination address SRv6 SID; the second node searches the VRF routing table according to the destination IP address to obtain the next hop information; the second node processes the first message according to the function of the SRv6 SID and the next hop information to obtain the second message.

[0254] Further, the second node sends a second message to the next hop based on the next hop information.

[0255] In another implementation, the segment routing header SRH of the first message carries the SRv6 VPN SID of the third node, the second message is an SRv6 message, the source address carried by the IPv6 message header of the second message is the address of the second node (for example, the loopback address of the second node), and the destination address carried by the IPv6 message header of the second message is the SRv6 VPNSID of the third node.

[0256] Furthermore, the second node sends a second message to the third node.

[0257] It can be seen that when implementing the embodiment of the present application, when the node and the target node are interconnected through a third-party underlay network, on the forwarding plane, the node encapsulates the SRv6 SID of the target node (its locator is the IPv6 address prefix of the target node accessing the third-party underlay network) as the destination address of the IPv6 message header of the SRv6 message. In this way, the SRv6 SID of the target node is iterated to the SRv6 tunnel, thereby realizing the message traversing the third-party underlay network.

[0258] In the above Figure 3 Based on the embodiments, the message forwarding process is described below using some specific scenarios.

[0259] See also Figure 6A , Figure 6A This is a schematic diagram of a message forwarding process provided by this application. Figure 6A In the example, the ACC (i.e., the first node) and the AGG (i.e., the second node) are both connected to the same third-party underlay network. Assume that an SRv6 tunnel is established between the ACC and the AGG. Assume that the AGG publishes a first route to the ACC. The first route is a VPN route (the VPN route carries the first IPv6 address prefix used by the AGG to access the third-party underlay network). The behavior of the ACC and AGG on the control plane can refer to the above. Figure 3 The corresponding content in the embodiment is described as follows:

[0260] Step 1: CPE1 sends packet 1 to the ACC. The source address in the IP header of packet 1 is CPE1's private network address 1.1.1.1, and the destination address in the IP header of packet 1 is CPE2's private network address 2.2.2.2.

[0261] Step 2: After receiving packet 1 from the interface bound to the VPN instance, the ACC searches the VPN routing table, matches the destination address prefix, and finds the next hop information and the associated SRv6 SID. It then encapsulates packet 1 into an SRv6 packet, packet 2, using the SRv6 SID (the AGG's SRv6 SID) as the destination address. The ACC then sends packet 2 to the AGG via the third-party underlay network.

[0262] Step 3: The AGG receives packet 2 and uses the SRv6 SID of packet 2's destination address to search its local SRv6 VPN SID table. It matches the forwarding action and VPN instance routing table corresponding to the SRv6 SID. Based on the corresponding forwarding action, the AGG decapsulates the packet, removes the IPv6 header of packet 2, and uses the inner packet's destination address 2.2.2.2 to search the VPN instance routing table to obtain the next hop information. Since the next hop information indicates the PE's address, the AGG encapsulates the packet with an IPv6 header to obtain packet 3. The source address of the IPv6 header of packet 3 is the AGG's loopback address, and the destination address of the IPv6 header is the PE's SRv6 VPN SID. The AGG then forwards packet 3 to the PE.

[0263] Step 4: The PE receives packet 3 and searches its local SRv6 VPN SID table based on the destination address of packet 3 (that is, the PE's SRv6 VPN SID). It matches the forwarding action corresponding to the destination address, decapsulates the packet based on the forwarding action, removes the IPv6 header from packet 3, uses the inner packet's destination address 2.2.2.2, and searches the VPN instance routing table corresponding to the PE's SRv6 VPN SID. The PE then forwards the packet to CPE2.

[0264] I understand. Figure 6A This is just an example of an application scenario and does not limit the application scenario to include only Figure 6A The node shown. Figure 6A It can be seen that AGG is directly connected to PE.

[0265] In some possible embodiments, the AGG may also be connected to the PE through at least one node. In this case, the communication between the AGG and the PE may adopt SRv6 BE or SRv6 Plolicy, which is not specifically limited here.

[0266] In some possible embodiments, Figure 6A The AGG in the example can also be directly connected to CPE2. In this case, in the above description, when the AGG receives packet 2, it uses the SRv6 SID of the destination address of packet 2 to search the local SRv6 VPN SID table, matches the forwarding action corresponding to the destination address SRv6 SID and the VPN instance routing table. Based on the corresponding forwarding action, the AGG decapsulates the packet, removes the IPv6 header of packet 2, uses the inner packet's destination address 2.2.2.2 to search the VPN instance routing table, and then directly forwards the packet to CPE2.

[0267] See also Figure 6B , Figure 6B This is another schematic diagram of the message forwarding process provided by the present application. Figure 6B In this example, the ACC (i.e., the first node) and the AGG (i.e., the second node) are both connected to the same third-party underlay network. Assuming that an SRv6 tunnel is established between the ACC and the PE (i.e., the third node), the routing announcement on the control plane can be referred to. Figure 4B According to the description above, the forwarding process of the message from CPE1 is as follows:

[0268] Step 1: CPE1 sends packet 1 to the ACC. The source address in the IP header of packet 1 is CPE1's private network address 1.1.1.1, and the destination address in the IP header of packet 1 is CPE2's private network address 2.2.2.2.

[0269] Step 2: After receiving packet 1 from the interface bound to the VPN instance, the ACC inserts an SRH header into packet 1. For example, the SRH header carries the PE's SRv6 VPN SID. It also encapsulates the IPv6 header to obtain packet 2. The source address of the IPv6 header is the ACC's loopback address, the destination address is the AGG's SRv6 SID, and the locator of the AGG's SRv6 SID is the first IPv6 address prefix. The ACC then sends the packet to the AGG through the third-party underlay network.

[0270] Step 3: The AGG receives packet 2, determines that the destination address of packet 2 matches the first IPv6 address prefix, decapsulates packet 2, obtains the next-hop SRv6 VPN SID (that is, the PE's SRv6 VPN SID) from the SRH header, updates the destination address of the IPv6 packet header to the SRv6 VPN SID, and updates the source address of the IPv6 packet header to the AGG's loopback address. Packet 3 is generated and forwarded to the PE by searching the routing table.

[0271] Step 4: The PE receives packet 3 and searches its local SRv6 VPN SID table based on the destination address of packet 3 (that is, the PE's SRv6 VPN SID). It matches the forwarding action corresponding to the PE's SRv6 VPN SID for that destination address. Based on the forwarding action, the PE decapsulates the packet, removes the IPv6 header from packet 3, uses the inner packet's destination address 2.2.2.2, and searches the VPN instance routing table corresponding to the PE's SRv6 VPN SID. The PE then forwards the packet to CPE2.

[0272] I understand. Figure 6B This is just an example of an application scenario and does not limit the application scenario to include only Figure 6B The node shown. Figure 6B As can be seen, the AGG is directly connected to the PE. In some possible embodiments, the AGG may also be connected to the PE through at least one node. In this case, the communication between the AGG and the PE may use SRv6 BE or SRv6 Plolicy, which is not specifically limited here.

[0273] See also Figure 7 , Figure 7 1 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application. Communication device 50 can be used to implement the methods described in the above embodiments of the present application. Communication device 50 can be a network device such as a router or switch, or a component of such a network device capable of implementing the above methods, such as a board, chip, or line card.

[0274] In one implementation, the communication device 50 may be the above Figure 3 or Figure 5 In another implementation, the communication device 50 may also be Figure 3 or Figure 5 The second node in .

[0275] like Figure 7 As shown, the communication device 50 includes a processor 501, a memory 502, and a transceiver 503. It should be understood that the embodiment of the present application does not limit the number of processors and memories in the communication device 50.

[0276] Exemplarily, when the communication device 50 is the above-mentioned first node, the processor 501 is configured to obtain the SRv6 SID of the second node based on a first route received from the second node, the first route including a first IPv6 address prefix of a first interface of the second node, wherein the first node communicates with the second node via a first third-party underlying underlay network, the second node accesses the first third-party underlay network via the first interface, and the SRv6 SID includes the first IPv6 address prefix. In another implementation, the processor 501 is further configured to generate an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message being the SRv6 SID, the SRv6 SID including the first IPv6 address prefix of the first interface of the second node, the second node accesses the first third-party underlay network via the first interface, and the first node communicates with the second node via the third-party underlay network.

[0277] Exemplarily, when the communication device 50 is the above-mentioned second node, the processor 501 is used to generate a first route, the first route including the first IPv6 address prefix of the first interface, wherein the second node communicates with the first node through the first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface. In another implementation, the processor 501 is further used to process a first message received from the first node to obtain a second message, wherein the first message is an SRv6 message, the destination address carried in the IPv6 message header of the first message is an SRv6 SID, the locator of the SRv6 SID is the first IPv6 address prefix of the first interface, the second node accesses the first third-party underlay network through the first interface, and the second node communicates with the first node through the first third-party underlay network.

[0278] The processor 501 may be composed of one or more processors, such as a central processing unit (CPU), a network processor (NP), or a combination of a CPU and a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0279] The transceiver 503 may be, for example, a communication interface or an optical module. Taking application to the control plane as an example, when the communication device 50 is the first node, the transceiver 503 is used to receive the first route, and in some possible embodiments, the transceiver 503 is also used to receive the second route, etc. When the communication device 50 is the second node, the transceiver 503 is used to send the first route, and in some possible embodiments, the transceiver 503 is also used to send the second route, etc.

[0280] The memory 502 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, a random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto. The memory 502 may exist independently or be integrated with the processor 501.

[0281] The memory 502 stores a processing unit and a transceiver unit, wherein the transceiver unit is used to store the programs and data required for the transceiver 503 to perform the above operations, for example, S302 or S502, and the processing unit is used to store the programs and data required for the processor 501 to perform the above operations, for example, S301 or S303 or S501 or S503.

[0282] In a specific implementation, the communication device 50 may correspond to the first node in the above method embodiment. For example, each module in the communication device 50 may be used to implement Figure 3 For details of the steps on the first node side in the embodiment shown, please refer to the above Figure 3 For the sake of brevity, the relevant description of the embodiment will not be repeated here; for example, each module in the communication device 50 can be used to implement Figure 5 For details of the steps on the first node side in the embodiment shown, please refer to the above Figure 5 For the sake of brevity, the relevant descriptions of the embodiments are not repeated here.

[0283] In a specific implementation, the communication device 50 may correspond to the second node in the above method embodiment. For example, each module in the communication device 50 may be used to implement Figure 3 For details of the steps on the second node side in the embodiment shown, please refer to the above Figure 3 For the sake of brevity, the relevant description of the embodiment will not be repeated here; for example, each module in the communication device 50 can be used to implement Figure 5 For details of the steps on the second node side in the embodiment shown, please refer to the above Figure 5 For the sake of brevity, the relevant descriptions of the embodiments are not repeated here.

[0284] See also Figure 8 , Figure 8 4 is a structural diagram of another communication device provided in an embodiment of the present application, wherein the communication device 40 includes a processing unit 410 and a transceiver unit 412. The communication device 40 can be implemented by hardware, software, or a combination of hardware and software.

[0285] Among them, the transceiver unit 412 is used to perform the transceiver-related operations involved in the above-mentioned method embodiments of the present application, and the processing unit 410 is used to perform operations other than the transceiver-related operations involved in the above-mentioned method embodiments of the present application.

[0286] In one specific implementation, when the communication device 40 is the first node or is included in the first node:

[0287] On the control plane, the transceiver unit 412 is configured to receive a first route from the second node, the first route including a first IPv6 address prefix of a first interface of the second node, wherein the first node communicates with the second node via a first third-party underlying underlay network, and the second node accesses the first third-party underlay network via the first interface; the processing unit 410 is configured to obtain an SRv6 SID of the second node according to the first route, the SRv6 SID including the first IPv6 address prefix. The communication device 40 can be used to implement Figure 3 The method on the first node side described in the embodiment. Figure 3 In an embodiment, the transceiver unit 412 may be used to execute S302 , and the processing unit 410 may be used to execute S303 .

[0288] On the forwarding plane, the processing unit 410 is used to generate an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message is an SRv6SID, and the SRv6 SID includes the first IPv6 address prefix of the first interface of the second node, and the second node accesses the third-party underlying underlay network through the first interface; the transceiver unit 412 is used to send the SRv6 message to the second node through the third-party underlay network. The communication device 40 can also be used to implement Figure 5 The method on the first node side described in the embodiment. Figure 5 In an embodiment, the transceiver unit 412 may be configured to execute S502 , and the processing unit 410 may be configured to execute S503 .

[0289] In one specific implementation, when the communication device 40 is the second node or is included in the second node:

[0290] On the control plane, the processing unit 410 is configured to generate a first route, the first route including a first IPv6 address prefix of a first interface, wherein a second node communicates with the first node via a first third-party underlying underlay network, and the second node accesses the first third-party underlay network via the first interface; the transceiver unit 412 is configured to send the first route to the first node. The communication device 40 can be used to implement Figure 3 The method on the second node side described in the embodiment. Figure 3 In an embodiment, the processing unit 410 may be used to execute S301 , and the transceiver unit 412 may be used to execute S302 .

[0291] On the forwarding plane, the transceiver unit 412 is used to receive a first message from the first node through the first interface, the first message is an SRv6 message, the destination address carried in the IPv6 message header of the first message is an SRv6 SID, and the locator of the SRv6 SID is the first IPv6 address prefix of the first interface, wherein the second node accesses the third-party underlay network through the first interface; the processing unit 410 is used to process the first message to obtain a second message. The communication device 40 can also be used to implement Figure 5 The method on the second node side described in the embodiment. Figure 5 In an embodiment, the transceiver unit 412 may be configured to execute S502 , and the processing unit 410 may be configured to execute S503 .

[0292] It should be understood that the division of the various units in the above communication device 40 is only a division of logical functions. In actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. In addition, the units in the communication device can implement any of the above methods or realize the functions of the various units of the device in the form of a processor calling software. Alternatively, the units in the communication device can be implemented in the form of hardware circuits, and the functions of some or all units can be realized by designing the hardware circuits. The hardware circuits can be, for example, application-specific integrated circuits (ASICs) or programmable logic devices (PLDs). All units of the above devices can be implemented in the form of a processor calling software, or in the form of hardware circuits, or in part by a processor calling software, and the remaining parts can be implemented in the form of hardware circuits.

[0293] It can be seen that each unit in the communication device can be one or more processors (or processing circuits) configured to implement the above method. In addition, each unit in the above device can be fully or partially integrated together, or can be implemented independently, which is not specifically limited here.

[0294] In the embodiments described above, the descriptions of each embodiment have their own emphasis. For parts not described in detail in a particular embodiment, please refer to the relevant descriptions of other embodiments. In addition, in the various embodiments of this application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced to each other. The technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.

[0295] It should be noted that, those skilled in the art can see that all or part of the steps in the various methods of the above embodiments can be completed by a program to instruct relevant hardware. The program can be stored in a computer-readable storage medium, and the storage medium includes a read-only memory (ROM), a random access memory (RAM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), a one-time programmable read-only memory (OTPROM), an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, magnetic disk storage, magnetic tape storage, or any other computer-readable medium that can be used to carry or store data.

[0296] The technical solution of the present application may essentially or contribute to the part or all or part of the technical solution in the form of a software product. The computer program product is stored in a storage medium and includes a number of instructions for enabling a device (which may be a personal computer, a server, or a network device, a robot, a single-chip microcomputer, a chip, a robot, etc.) to execute all or part of the steps of the method described in each embodiment of the present application.

Claims

1. A routing advertisement method, characterized in that: The method comprises: A first node receives a first route from a second node, where the first route includes a first IPv6 address prefix of a first interface of the second node, wherein the first node communicates with the second node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; The first node obtains the SRv6 SID of the second node according to the first route, where the SRv6 SID includes the first IPv6 address prefix.

2. The method according to claim 1, characterized in that The first route also includes a second IPv6 address prefix of a second interface of the second node, wherein the second node accesses the second third-party underlay network through the second interface.

3. The method according to claim 1 or 2, characterized in that: The first route is an underlying transport network UTN route, and the first route also includes an identifier of the second node.

4. The method according to claim 3, characterized in that The method further comprises: The first node receives a second route from the second node, where the second route is a virtual private network VPN route, and the second route includes an identifier of the second node and a VPN identifier of the second node; The first node obtaining, according to the first route, the SRv6 SID of the second node, including: The first node generates the SRv6 SID according to the first IPv6 address prefix and the VPN identifier of the second node, wherein the locator of the SRv6 SID is the first IPv6 address prefix, and the function of the SRv6 SID includes the VPN identifier of the second node.

5. The method according to claim 3, characterized in that: The method further comprises: The first node receives a third route from the second node, where the third route is a Border Gateway Protocol BGP IPv6 unicast route, the third route includes a third IPv6 address prefix, the third route includes an extended community attribute, and the extended community attribute includes an identifier of the second node; The first node receives a fourth route from a third node, where the fourth route is a VPN route, the fourth route includes an SRv6 VPN SID of the third node, and the SRv6 VPN SID of the third node includes the third IPv6 address prefix; The first node obtaining, according to the first route, the SRv6 SID of the second node, including: The first node searches for the third route according to the SRv6 VPN SID of the third node in the fourth route to obtain an identifier of the second node; The first node searches for the first route according to the identifier of the second node to obtain the first IPv6 address prefix; The first node generates the SRv6 SID according to the first IPv6 address prefix.

6. The method according to claim 1 or 2, characterized in that: The first route is a VPN route, the first route includes a first IPv6 protocol-based segment routing virtual private network segment identifier SRv6 VPN SID, the first SRv6 VPNSID includes the first IPv6 address prefix; wherein the SRv6 SID is the first SRv6 VPN SID.

7. The method according to claim 4 or 6, characterized in that: The method further comprises: The first node generates an SRv6 message, where the destination address carried in the IPv6 message header of the SRv6 message is the SRv6SID; The first node sends the SRv6 message to the second node through the first third-party underlay network.

8. The method according to claim 5, characterized in that The method further comprises: The first node generates an SRv6 message, the destination address carried in the IPv6 message header of the SRv6 message is the SRv6SID, and the segment routing header SRH of the SRv6 message includes the SRv6 VPN SID of the third node; The first node sends the SRv6 message to the second node through the first third-party underlay network.

9. A routing advertisement method, characterized in that: The method comprises: The second node generates a first route, where the first route includes a first IPv6 address prefix of the first interface, wherein the second node communicates with the first node through a first third-party underlying underlay network, and the second node accesses the first third-party underlay network through the first interface; The second node sends the first route to the first node.

10. The method according to claim 9, characterized in that The first route also includes a second IPv6 address prefix of a second interface, wherein the second node accesses the second third-party underlay network through the second interface.

11. The method according to claim 9 or 10, characterized in that: The first route is an underlying transport network UTN route, and the first route also includes an identifier of the second node.

12. The method according to claim 11, characterized in that The method further comprises: The second node sends a second route to the first node, where the second route is a VPN route and includes an identifier of the second node and a VPN identifier of the second node.

13. The method according to claim 11, characterized in that The method further comprises: The second node sends a third route to the first node, where the third route is a BGP IPv6 unicast route, includes a third IPv6 address prefix, contains an extended community attribute, and includes an identifier of the second node.

14. The method according to claim 9 or 10, characterized in that The first route is a VPN route, the first route includes a first segment route virtual private network segment identifier SRv6 VPNSID based on the IPv6 protocol, and the first SRv6VPNSID includes the first IPv6 address prefix.

15. The method according to any one of claims 9 to 14, characterized in that the method comprises: The second node receives a first message from the first node through the first interface, where the first message is an SRv6 message, a destination address carried in an IPv6 message header of the first message is an SRv6 SID, and a locator of the SRv6 SID is the first IPv6 address prefix; The second node processes the first message to obtain a second message.

16. A message transmission method, characterized in that: The method comprises: The first node generates an SRv6 message, where the destination address carried in the IPv6 message header of the SRv6 message is an SRv6 SID, and the SRv6 SID includes a first IPv6 address prefix of a first interface of the second node, the first node communicates with the second node through a third-party underlying underlay network, and the second node accesses the third-party underlay network through the first interface; The first node sends the SRv6 message to the second node through the third-party underlay network.

17. A communication device, characterized in that: The communication device includes a transceiver unit and a processing unit, and the communication device is used to implement the method according to any one of claims 1 to 8, or the method according to any one of claims 9 to 15, or the method according to claim 16.

18. A communication node, characterized in that: The node includes a memory and a processor, the memory stores computer program instructions, and the processor executes the computer program instructions to enable the device to perform the method according to any one of claims 1 to 8, or the method according to any one of claims 9 to 15, or the method according to claim 16.

19. A computer program product, characterized in that When the computer program product runs on a processor, the method according to any one of claims 1 to 8, or the method according to any one of claims 9 to 15, or the method according to claim 16 is implemented.

Citation Information

Cited By

  • Routing table establishment method and device based on public and private network intercommunication

    CN120979998A