Path planning method and related device

CN115468572BActive Publication Date: 2026-08-18HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110656450.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-11
Publication Date
2026-08-18
Estimated Expiration
2041-06-11

AI Technical Summary

Technical Problem

对于ECMP的隧道负载均衡,当参与负载均衡的多个隧道经过同一条路径时,容易造成路径拥堵的问题

Benefits of technology

[0126]第九方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得该计算机执行如上述第一方面任意一项所述的方法。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115468572B_ABST
    Figure CN115468572B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a path planning method and related equipment, the method comprising: configuring a tunnel equal-cost multi-path (ECMP) group for traffic load balancing on a first network device, wherein members of the tunnel ECMP group are composed of a plurality of tunnels, the plurality of tunnels comprising a first tunnel, the first tunnel forwarding traffic to a destination address based on a first path; when the first path fails, calculating a second path based on path information of each other path passed through by each other tunnel of the plurality of tunnels except the first tunnel, the second path being disjoint with each other path; and rerouting the first tunnel to the second path. The present application can alleviate network congestion.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a path planning method and related equipment. Background Technology

[0002] Load balancing refers to the process by which network nodes distribute traffic destined for the same address across multiple links / paths during forwarding. Load balancing technology is widely used because it can flexibly expand link resources, increase network capacity, and improve network reliability. Depending on the type of path being shared, it can be further divided into trunk load balancing, routing load balancing, tunnel load balancing, etc.

[0003] In Virtual Private Network (VPN) scenarios, tunnel load balancing refers to the distribution of traffic across multiple tunnels leading to the same destination node at the ingress node. A tunnel provides a technique for encapsulating one type of packet within another, enabling transmission across heterogeneous networks. The channel through which these encapsulated packets are transmitted is called a tunnel. Tunnels are an indispensable part of VPN construction, used to transparently transfer VPN data from one VPN node to another. Common tunnel types, such as label-switched paths and constraint-based routed label-switched paths (CR-LSP), all support tunnel load balancing.

[0004] Load balancing functionality includes two methods: equal-cost multiple path (ECMP) and unequal-cost multiple path (UCMP). For ECMP tunnel load balancing, when multiple tunnels participating in load balancing traverse the same path, path congestion can easily occur. Summary of the Invention

[0005] This application discloses a path planning method and related equipment, which can prevent multiple tunnels in load balancing from passing through the same path, thereby alleviating network path congestion.

[0006] Firstly, this application provides a path planning method, which includes:

[0007] A tunnel equal cost multipath (ECMP) group for traffic load balancing is configured on a first network device. The tunnel ECMP group consists of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path. When the first path fails, a second path is calculated based on the path information of each of the other paths traversed by each of the other tunnels (excluding the first tunnel). The second path does not intersect with any of the other paths. The first tunnel is then rerouted to the second path.

[0008] Optionally, the second path described above does not intersect with any of the other paths described above, including at least one of the following:

[0009] The links between this second path and each of the other paths are not intersecting;

[0010] The nodes of this second path do not intersect with those of each of the other paths;

[0011] The second path and each of the other paths are not intersecting in terms of links or nodes;

[0012] The second path and each of the other paths are to be as close as possible to each other.

[0013] This application addresses post-failure network congestion by planning a non-intersecting path with existing ECMP members used for load balancing within the tunnel. Furthermore, existing constraint-based path planning schemes still require traversing the constrained path after a failure, preventing rerouting to other feasible paths and leading to service interruptions and reduced network reliability. This application, however, can quickly reroute traffic to an equivalent path after a path failure, achieving load balancing and alleviating network congestion.

[0014] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0015] In this application, the path information is limited to the path planning of members within the load-balanced tunnel ECMP group, which can avoid affecting path planning in other situations.

[0016] In one possible implementation, the path information includes at least one of the following:

[0017] The link cost of each link in each of the other paths mentioned above;

[0018] The link priority of each link in each of the other paths;

[0019] The link identifier of each link in each of the other paths, which is used to identify that each link has been occupied by the tunnel ECMP group;

[0020] The device identifier of each network device in each of the other paths, the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;

[0021] The interface identifier of each network device communication interface in each of the other paths is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.

[0022] In one possible implementation, the path information includes the link cost of each link, and the calculation of the second path includes: determining the multiple links traversed by the second path based on the link cost of each link.

[0023] In one possible implementation, after configuring the aforementioned tunnel ECMP group, the method includes: adjusting the link cost of each link in the tunnel ECMP group, wherein the adjusted link cost of each link is greater than the original link cost of each link.

[0024] In this application, by increasing the cost of each link in the planned path of an ECMP tunnel member, the cost of planning other ECMP tunnel members in the future will be too high, so that these links will be bypassed. This achieves the goal of planning different ECMP member tunnels onto different paths.

[0025] In one possible implementation, the path information includes the link priority of each link, and the calculation of the second path includes: determining the multiple links traversed by the second path based on the link priority of each link.

[0026] In one possible implementation, after configuring the tunnel ECMP group, the method includes: adjusting the link priority of each link in the tunnel ECMP group, wherein the adjusted link priority of each link is lower than the original link priority of each link.

[0027] In this application, by lowering the priority of each link in the planned path of an ECMP tunnel member, the subsequent planning of paths for other ECMP tunnel members will bypass these links due to their low priority, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0028] In one possible implementation, the path information includes the link identifier of each link, and the calculation of the second path includes: determining the multiple links traversed by the second path based on the link identifier of each link.

[0029] In one possible implementation, the method further includes setting the link identifier for each link in the tunnel ECMP group after configuring the tunnel ECMP group.

[0030] In this application, by setting a specific link identifier for each link in the planned path of an ECMP tunnel member, the links with specific link identifiers are bypassed when planning the paths of other ECMP tunnel members, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0031] In one possible implementation, the path information includes the device identifier of each network device in each of the other paths, and the calculation of the second path includes: determining the multiple network devices traversed by the second path based on the device identifier of each network device in each of the other paths.

[0032] In one possible implementation, the method further includes setting a device identifier for each network device on each path in the tunnel ECMP group after configuring the tunnel ECMP group.

[0033] In this application, by setting a specific device identifier for each network device in the planned path of an ECMP tunnel member, the network devices with specific device identifiers can be bypassed when planning the paths of other ECMP tunnel members, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0034] In one possible implementation, the path information includes the interface identifier of each network device communication interface in each of the other paths, and the calculation of the second path includes: when the network device communication interface is a network device ingress interface in the path, determining the multiple network device ingress interfaces traversed by the second path based on the first interface identifier of each network device ingress interface in each of the other paths; and when the network device communication interface is a network device egress interface in the path, determining the multiple network device egress interfaces traversed by the second path based on the second interface identifier of each network device egress interface in each of the other paths.

[0035] In one possible implementation, the method further includes: when the network device communication interface is a network device ingress interface in the path, after configuring the tunnel ECMP group, setting the first interface identifier for each network device ingress interface traversed by each path in the tunnel ECMP group; and when the network device communication interface is a network device egress interface in the path, after configuring the tunnel ECMP group, setting the second interface identifier for each network device egress interface traversed by each path in the tunnel ECMP group.

[0036] In this application, by setting a specific interface identifier for each network device ingress interface (or each network device egress interface) in the planned path of an ECMP tunnel member, the subsequent planning of paths for other ECMP tunnel members will bypass these network device ingress interfaces (or network device egress interfaces) with specific interface identifiers, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0037] Secondly, this application provides a path planning method, which includes:

[0038] Calculate the first path traversed by the first tunnel between the first network device and the second network device;

[0039] Set path information for the target object in the first path, where the target object is a link, a network device, or a network device communication interface;

[0040] Based on the path information, the second path through which the second tunnel between the first network device and the second network device passes is calculated. The first path and the second path do not intersect. In other words, at least one of the target objects in the second path does not have the path information set. Both the first tunnel and the second tunnel are members of the Tunnel Equivalent Multipath (ECMP) group.

[0041] This application marks target objects in the already planned path so that when planning paths for other tunnel ECMP members, they will not be planned onto the same path. Compared with the existing solution that uses constraints to plan multiple load-balanced paths onto different transmission paths, this solution not only solves the congestion problem caused by planning equivalent paths onto the same path, but also does not limit the network's rerouting capability, thus improving network reliability.

[0042] In one possible implementation, the first path and the second path do not intersect, including at least one of the following:

[0043] The links between the first path and the second path do not intersect;

[0044] The nodes of the first path and the second path do not intersect;

[0045] The first path and the second path are not intersecting in terms of links or nodes;

[0046] The first path and the second path are to do their best to avoid intersecting.

[0047] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0048] In this application, the path information is limited to the path planning of members within the load-balanced tunnel ECMP group, which can avoid affecting path planning in other situations.

[0049] In one possible implementation, the target object is a link, and setting path information for the target object in the first path includes: adjusting the link cost of each link in the first path, wherein the adjusted link cost of each link in the first path is greater than the original link cost of each link in the first path, and the path information includes the adjusted link cost of each link in the first path.

[0050] In this application, by increasing the cost of each link in the planned path of an ECMP tunnel member, the cost of planning other ECMP tunnel members in the future will be too high, so that these links will be bypassed. This achieves the goal of planning different ECMP member tunnels onto different paths.

[0051] In one possible implementation, the target object is a link, and setting path information for the target object in the first path includes: adjusting the link priority of each link in the first path, wherein the adjusted link priority of each link in the first path is lower than the original link priority of each link in the first path, and the path information includes the adjusted link priority of each link in the first path.

[0052] In this application, by lowering the priority of each link in the planned path of an ECMP tunnel member, the subsequent planning of paths for other ECMP tunnel members will bypass these links due to their low priority, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0053] In one possible implementation, the target object is a link, and setting path information for the target object in the first path includes: setting a link identifier for each link in the first path, wherein the link identifier of each link in the first path is used to identify that each link in the first path has been occupied by the tunnel ECMP group, and the path information includes the link identifier of each link in the first path.

[0054] In this application, by setting a specific link identifier for each link in the planned path of an ECMP tunnel member, the links with specific link identifiers are bypassed when planning the paths of other ECMP tunnel members, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0055] In one possible implementation, the target object is a network device, and setting path information for the target object in the first path includes: setting a device identifier for each network device in the first path, wherein the device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the device identifier of each network device in the first path.

[0056] In this application, by setting a specific device identifier for each network device in the planned path of an ECMP tunnel member, the network devices with specific device identifiers can be bypassed when planning the paths of other ECMP tunnel members, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0057] In one possible implementation, the target object is a network device communication interface, and setting path information for the target object in the first path includes:

[0058] When the network device communication interface is the network device ingress interface in the path, a first interface identifier is set for each network device ingress interface in the first path. The first interface identifier of each network device ingress interface in the first path is used to identify that each network device ingress interface in the first path has been occupied by the tunnel ECMP group. The path information includes the first interface identifier of each network device ingress interface in the first path.

[0059] When the network device communication interface is the network device outgoing interface in the path, a second interface identifier is set for each network device outgoing interface in the first path. The second interface identifier of each network device outgoing interface in the first path is used to identify that each network device outgoing interface in the first path has been occupied by the tunnel ECMP group. The path information includes the second interface identifier of each network device outgoing interface in the first path.

[0060] In this application, by setting a specific interface identifier for each network device ingress interface (or each network device egress interface) in the planned path of an ECMP tunnel member, the subsequent planning of paths for other ECMP tunnel members will bypass these network device ingress interfaces (or network device egress interfaces) with specific interface identifiers, thereby realizing the planning of different ECMP member tunnels onto different paths.

[0061] Thirdly, this application provides a path planning device, which includes:

[0062] A configuration unit is configured on a first network device to configure a tunnel equal cost multipath (ECMP) group for traffic load balancing, wherein the members of the tunnel ECMP group consist of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path;

[0063] The calculation unit is used to calculate a second path when the first path fails, based on the path information of each of the other paths traversed by each of the multiple tunnels other than the first tunnel, wherein the second path does not intersect with each of the other paths.

[0064] The rerouting unit is used to reroute the first tunnel to the second path.

[0065] In one possible implementation, the second path does not intersect with any of the other paths, including at least one of the following:

[0066] The links between this second path and each of the other paths are not intersecting;

[0067] The nodes of this second path do not intersect with those of each of the other paths;

[0068] The second path and each of the other paths are not intersecting in terms of links or nodes;

[0069] The second path and each of the other paths are to be as close as possible to each other.

[0070] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0071] In one possible implementation, the path information includes at least one of the following:

[0072] The link cost of each link in each of the other paths mentioned above;

[0073] The link priority of each link in each of the other paths;

[0074] The link identifier of each link in each of the other paths, which is used to identify that each link has been occupied by the tunnel ECMP group;

[0075] The device identifier of each network device in each of the other paths, the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;

[0076] The interface identifier of each network device communication interface in each of the other paths is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.

[0077] In one possible implementation, the path information includes the link cost of each link, and the calculation unit is specifically used to: determine the multiple links traversed by the second path based on the link cost of each link.

[0078] In one possible implementation, the device further includes a first adjustment unit, configured to adjust the link cost of each link in the tunnel ECMP group after configuring the tunnel ECMP group, wherein the adjusted link cost of each link is greater than the unadjusted link cost of each link.

[0079] In one possible implementation, the path information includes the link priority of each link, and the calculation unit is specifically used to: determine the multiple links traversed by the second path based on the link priority of each link.

[0080] In one possible implementation, the device further includes a second adjustment unit, configured to adjust the link priority of each link in the tunnel ECMP group after configuring the tunnel ECMP group, wherein the adjusted link priority of each link is lower than the original link priority of each link.

[0081] In one possible implementation, the path information includes the link identifier of each link, and the calculation unit is specifically used to: determine the multiple links traversed by the second path based on the link identifier of each link.

[0082] In one possible implementation, the device further includes a first setting unit for setting the link identifier for each link in the tunnel ECMP group after configuring the tunnel ECMP group.

[0083] In one possible implementation, the path information includes the device identifier of each network device in each of the other paths, and the calculation unit is specifically used to: determine the multiple network devices traversed by the second path based on the device identifier of each network device in each of the other paths.

[0084] In one possible implementation, the device further includes a second setting unit for setting the device identifier for each network device on each path in the tunnel ECMP group after configuring the tunnel ECMP group.

[0085] In one possible implementation, the path information includes the interface identifier of each network device communication interface in each of the other paths, and the calculation unit is specifically used for:

[0086] When the network device communication interface is the network device ingress interface in the path, the multiple network device ingress interfaces traversed by the second path are determined according to the first interface identifier of each network device ingress interface in each of the other paths.

[0087] When the network device communication interface is the network device outgoing interface in the path, the multiple network device outgoing interfaces traversed by the second path are determined according to the second interface identifier of each network device outgoing interface in each of the other paths.

[0088] In one possible implementation, the device further includes a third setting unit for:

[0089] When the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface traversed by each path in the tunnel ECMP group;

[0090] When the network device communication interface is the network device outgoing interface in the path, after configuring the tunnel ECMP group, set the second interface identifier for each network device outgoing interface traversed by each path in the tunnel ECMP group.

[0091] Fourthly, this application provides a path planning device, the device comprising:

[0092] A computing unit is used to calculate the first path traversed by the first tunnel between the first network device and the second network device;

[0093] The setting unit is used to set path information for the target object in the first path, wherein the target object is a link, or the target object is a network device, or the target object is a communication interface of a network device.

[0094] The computing unit is also used to calculate, based on the path information, a second path traversed by the second tunnel between the first network device and the second network device. The first path and the second path do not intersect; in other words, at least one target object in the second path does not have the path information set. The first tunnel and the second tunnel are members of the Tunnel Equivalent Multipath (ECMP) group.

[0095] In one possible implementation, the first path and the second path do not intersect, including at least one of the following:

[0096] The links between the first path and the second path do not intersect;

[0097] The nodes of the first path and the second path do not intersect;

[0098] The first path and the second path are not intersecting in terms of links or nodes;

[0099] The first path and the second path are to do their best to avoid intersecting.

[0100] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0101] In one possible implementation, the target object is a link, and the setting unit is specifically used for:

[0102] The link cost of each link in the first path is adjusted so that the link cost of each link in the first path after adjustment is greater than the link cost of each link in the first path before adjustment. The path information includes the link cost of each link in the first path after adjustment.

[0103] In one possible implementation, the target object is a link, and the setting unit is specifically used for:

[0104] The link priority of each link in the first path is adjusted so that the link priority of each link in the first path after adjustment is lower than the link priority of each link in the first path before adjustment. The path information includes the link priority of each link in the first path after adjustment.

[0105] In one possible implementation, the target object is a link, and the setting unit is specifically used for:

[0106] A link identifier is set for each link in the first path. The link identifier of each link in the first path is used to identify that each link in the first path has been occupied by the tunnel ECMP group. The path information includes the link identifier of each link in the first path.

[0107] In one possible implementation, the target object is a network device, and the setting unit is specifically used for:

[0108] A device identifier is set for each network device in the first path. The device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group. The path information includes the device identifier of each network device in the first path.

[0109] In one possible implementation, the target object is a network device communication interface, and the setting unit is specifically used for:

[0110] When the network device communication interface is the network device ingress interface in the path, a first interface identifier is set for each network device ingress interface in the first path. The first interface identifier of each network device ingress interface in the first path is used to identify that each network device ingress interface in the first path has been occupied by the tunnel ECMP group. The path information includes the first interface identifier of each network device ingress interface in the first path.

[0111] When the network device communication interface is the network device outgoing interface in the path, a second interface identifier is set for each network device outgoing interface in the first path. The second interface identifier of each network device outgoing interface in the first path is used to identify that each network device outgoing interface in the first path has been occupied by the tunnel ECMP group. The path information includes the second interface identifier of each network device outgoing interface in the first path.

[0112] Fifthly, this application provides a path planning device, which may include a processor and a memory for implementing the path planning method described in the first aspect and its possible implementations. The memory is coupled to the processor, and when the processor executes a computer program stored in the memory, the device can implement the method described in the first aspect or any possible implementation of the first aspect.

[0113] The device may also include a communication interface for communicating with other devices. For example, the communication interface may be a transceiver, circuit, bus, module, or other type of communication interface. The communication interface includes a receiving interface for receiving messages and a sending interface for sending messages.

[0114] In one possible implementation, the device may include:

[0115] Memory, used to store computer programs;

[0116] A processor is configured on a first network device to configure a Tunnel Equal Cost Multipath (ECMP) group for traffic load balancing, wherein the ECMP group consists of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path; when the first path fails, a second path is calculated based on path information of each of the other paths traversed by each of the other tunnels besides the first tunnel, the second path being disjoint from each of the other paths; and the first tunnel is rerouted to the second path.

[0117] It should be noted that the computer program in the memory of this application can be pre-stored or downloaded from the Internet and stored when using the device. This application does not specifically limit the source of the computer program in the memory. The coupling in the embodiments of this application is an indirect coupling or connection between devices, units, or modules, which can be electrical, mechanical, or other forms, for information interaction between devices, units, or modules.

[0118] Sixthly, this application provides a path planning device, which may include a processor and a memory for implementing the path planning method described in the second aspect and its possible implementations. The memory is coupled to the processor, and when the processor executes a computer program stored in the memory, the device can implement the method described in the second aspect or any possible implementation of the second aspect.

[0119] The device may also include a communication interface for communicating with other devices. For example, the communication interface may be a transceiver, circuit, bus, module, or other type of communication interface. The communication interface includes a receiving interface for receiving messages and a sending interface for sending messages.

[0120] In one possible implementation, the device may include:

[0121] Memory, used to store computer programs;

[0122] The processor is configured to calculate a first path traversed by a first tunnel between a first network device and a second network device; set path information for target objects in the first path, wherein the target object is a link, a network device, or a network device communication interface; calculate a second path traversed by a second tunnel between the first network device and the second network device based on the path information, wherein at least one target object in the second path does not have the path information set, and the first tunnel and the second tunnel are members of the Tunnel Equivalent Multipath (ECMP) group.

[0123] It should be noted that the computer program in the memory of this application can be pre-stored or downloaded from the Internet and stored when using the device. This application does not specifically limit the source of the computer program in the memory. The coupling in the embodiments of this application is an indirect coupling or connection between devices, units, or modules, which can be electrical, mechanical, or other forms, for information interaction between devices, units, or modules.

[0124] In a seventh aspect, this application provides a computer-readable storage medium storing a computer program that is executed by a processor to implement the method described in any of the first aspects and their possible embodiments.

[0125] Eighthly, this application provides a computer-readable storage medium storing a computer program that is executed by a processor to implement the method described in any of the second aspect and its possible embodiments.

[0126] Ninthly, this application provides a computer program product that, when run on a computer, causes the computer to perform the method described in any of the first aspects above.

[0127] In a tenth aspect, this application provides a computer program product that, when run on a computer, causes the computer to perform the method described in any of the first aspects above.

[0128] It is understood that the devices described in aspects three through six, the computer storage media described in aspects seven and eight, and the computer program products described in aspects nine and ten are all used to perform the methods provided in any one of aspects one and two. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects in the corresponding methods, and will not be repeated here. Attached Figure Description

[0129] The accompanying drawings used in the embodiments of this application will be described below.

[0130] Figure 1 The diagram shows a schematic of tunnel load balancing between two network devices.

[0131] Figure 2 The diagram shows the path of the ECMP member tunnel;

[0132] Figure 3 The diagram shown is a schematic of a network system architecture applicable to this application;

[0133] Figure 4 The diagram shown is a flowchart of the path planning method provided in this application;

[0134] Figure 5A and Figure 5B The diagram shown is a schematic representation of the tunnel's path.

[0135] Figure 6A and Figure 6B The diagram shown is a schematic representation of the tunnel's path.

[0136] Figure 7A and Figure 7B The diagram shown is a schematic representation of the tunnel's path.

[0137] Figure 8 The diagram shown is a schematic of the tunnel rerouting path.

[0138] Figure 9 and Figure 10 The diagram shown is a schematic diagram of the logic structure of the device provided in this application;

[0139] Figure 11 The diagram shown is a schematic representation of the hardware structure of the device provided in this application. Detailed Implementation

[0140] The embodiments of this application will now be described with reference to the accompanying drawings.

[0141] First, let me introduce the technical problems that this application aims to solve and the applicable scenarios.

[0142] See Figure 1 , Figure 1 The diagram shows a schematic of tunnel load balancing between two network devices. Figure 1 As can be seen, in order to increase the transmission bandwidth of traffic, multiple tunnels can be created between network device 1 and network device 2. These multiple tunnels can realize the load sharing of traffic between network device 1 and network device 2.

[0143] In this application, the network device can be a customer edge (CE), a provider edge (PE), or a provider backbone router (P), etc. The network device can also be referred to as a network node or node.

[0144] Specifically, tunnels are an indispensable part of building a virtual private network (VPN), used to transparently transmit VPN data from one VPN node to another. Creating a tunnel only requires specifying the network devices at the tunnel's starting and ending points; the specific path the tunnel takes is calculated using a shortest path algorithm.

[0145] In the specific implementation, the aforementioned tunnels are members of the Equal Cost Multiple Path (ECMP) group. ECMP means that there are multiple equal-cost paths from the same originating node to the same destination node, and traffic is evenly distributed across these equal-cost paths, regardless of differences in path bandwidth. An equal-cost path is a path with the same cost value from the originating node to the destination node. For the aforementioned tunnels, the communication path between network device 1 and network device 2 can be abstracted as a single link. Each of these tunnels sends traffic from network device 1 to network device 2 through this link; therefore, the paths of these tunnels are equal-cost paths, and thus, these tunnels belong to the ECMP group.

[0146] However, since the specific path of the tunnel is calculated based on the shortest path algorithm, and the tunnels of ECMP group members are equivalent paths, when planning the path of ECMP group member tunnels, it is easy to plan the paths of multiple members of ECMP group onto the same path. In this case, the load sharing function of traffic will be weakened, which can easily cause path congestion.

[0147] For example, see Figure 2 , Figure 2 An exemplary diagram of a partial network structure is shown. Figure 2 In the diagram, there are two paths from network device B to network device G. The first path is: Network Device B → Network Device C → Network Device E → Network Device G. The second path is: Network Device B → Network Device D → Network Device F → Network Device G. Assuming these two paths are not equivalent, when creating two load-balanced tunnels between network devices B and G, and planning paths for these tunnels, the shortest path algorithm will calculate that the two tunnels will be mapped to the same path (e.g., the first path). Figure 2 As shown in the diagram, in this scenario, all traffic between network device B and network device G will be transmitted through the first path, making load balancing impossible and potentially causing congestion on that first path.

[0148] Existing solutions can use path constraints or bandwidth constraints to plan ECMP tunnel members onto different paths, such as constraint-based routed labelswitched path (CR-LSP). However, this approach limits the tunnel's dynamic rerouting capability, reducing network reliability. For example, when a constrained path fails, due to the path constraint, rerouting will still return to the failed constrained path, rather than to other unaffected paths (limiting rerouting capability). This leads to traffic interruption and service disruption (reducing network reliability).

[0149] To plan the paths of tunnel ECMP members onto different paths without limiting the tunnel's dynamic rerouting capability, this application provides a path planning method. Before introducing this method, an exemplary system architecture to which this method is applicable is first described, see [link to relevant documentation]. Figure 3 . Figure 3 An exemplary diagram of a network system architecture to which this application applies is shown. This system architecture includes multiple network devices that constitute a traffic forwarding network. These network devices include client edge devices (CE), carrier edge devices (PE), and carrier backbone routers (P), etc.

[0150] It should be noted that multiple links can be configured between two network devices that can communicate in this system architecture.

[0151] In one possible implementation, Figure 3The network system architecture shown includes a controller that can obtain a topology view of the network, thereby planning the forwarding paths of traffic in the network. For example, the controller can be a software-defined network (SDN) controller or an operation and maintenance center (OMC), etc.

[0152] In another possible implementation, the network system architecture described above does not include a controller. In this case, the forwarding path of traffic can be calculated by the network devices based on the shortest path algorithm.

[0153] It should be noted that the above Figure 3 The system architecture shown is only an example, and the system architecture to which the path planning method provided in this application is applicable is not limited to the system architecture described above.

[0154] See Figure 4 This paper illustrates the path planning method provided in this application. If the network system architecture to which this method is applied includes the aforementioned controller, and the forwarding path of traffic in the network is calculated by the controller, then the executing entity of this method can be the controller. If the system architecture to which this method is applied does not include a controller, and the forwarding path of traffic in the network is calculated by the network device based on the shortest path algorithm, then the executing entity of this method can be the network device. Regardless of whether the executing entity of this method is a controller or a network device in the specific implementation, the executing entity of this method will be uniformly referred to as the executing device below. This method may include, but is not limited to, the following steps:

[0155] S401. Configure a Tunnel Equivalent Multipath (ECMP) group for traffic load balancing on the first network device, wherein the ECMP group consists of multiple tunnels, including a first tunnel, which forwards traffic to the destination address based on a first path.

[0156] For example, the first network device can be any network device in the above system architecture, and the endpoint network device of the multiple tunnels configured for traffic load balancing can be another network device in the system architecture, which can be called the second network device. In that case, the destination address is the address of the second network device.

[0157] Optionally, the aforementioned multiple tunnels can be configured by a controller in the network system, i.e., the executing device is the controller. Alternatively, the aforementioned multiple tunnels can be configured by the aforementioned first network device, i.e., the executing device is the first network device.

[0158] S402. When the first path fails, a second path is calculated based on the path information of each of the other paths traversed by each of the multiple tunnels except the first tunnel. The second path does not intersect with each of the other paths.

[0159] In a specific embodiment, each tunnel in the multiple member tunnels of the aforementioned ECMP group corresponds to a calculated specific traffic transmission path. Specifically, after calculating these transmission paths, the executing device can set path information for target objects in these paths. These target objects can be links in the path, network devices in the path, or communication interfaces of network devices in the path. The communication interfaces of the network devices in the path can be either ingress interfaces or egress interfaces. It should be noted that the communication interfaces of the network devices in the path only include interfaces connected to links in the path, excluding interfaces of other network devices in the path that are not connected to links in the path.

[0160] Optionally, this path information is only valid for members within the ECMP group. That is, when planning specific traffic transmission paths for the aforementioned multiple tunnels, this path information can be used as a marker to plan different tunnels onto different transmission paths as much as possible.

[0161] The aforementioned path information may include at least one of the following: the cost value of each link in the path, the link priority of each link in the path, the link identifier of each link in the path, the identifier of each network device in the path, or the interface identifier of the communication interface of each network device in the path, etc.

[0162] In one possible implementation, the path information includes the cost value of each link in the path. Specifically, after the execution device calculates the traffic transmission path of one of the multiple tunnels (hereinafter referred to as the first target path for ease of description), it can adjust the cost value of each link in the first target path so that the adjusted cost value of each link is greater than the original cost value. For example, the cost value of each link can be adjusted to be several times, tens of times, hundreds of times, thousands of times, or even tens of thousands of times larger than the original cost value. This application does not limit the specific adjustment size.

[0163] Optionally, the adjusted link cost value in the first target path is only valid when planning paths for tunnels other than the one mentioned above. Otherwise, the link cost value in the first target path is treated as the link cost value before adjustment. That is, when calculating the traffic transmission path for other tunnels that are load-balanced with the one mentioned tunnel, because the link cost value of the first target path is relatively large, the executing device will bypass the link with the larger cost value according to the principle of the shortest path algorithm, thus planning the other tunnels onto paths that do not intersect with the first target path. For ease of understanding, please refer to the example provided. Figure 5A and Figure 5B .

[0164] exist Figure 5A In this scenario, assuming each link has a cost value of 10, a tunnel ECMP group consisting of two tunnels is created between network device B and network device I to load balance traffic between them. Following the shortest path principle, the executing device calculates the specific transmission path for the first tunnel, resulting in the path: Network Device B → Network Device G → Network Device I. After calculating this path, the executing device can adjust the cost values ​​of the links in this path, for example, by increasing the cost value of each link in the path by 10000. The adjusted link cost values ​​can be found in [reference needed]. Figure 5B After adjusting the link cost value of the first path, when the executing device calculates the transmission path for the second tunnel, based on the shortest path principle, it avoids the path B→G→I because the link cost is very high. Therefore, the calculated transmission path for the second tunnel is: B→C→E→I. This achieves the goal of planning the transmission paths of two different member tunnels in a load-sharing ECMP group onto different paths.

[0165] Since the above implementation avoids path intersection by adjusting the cost value of the links, the non-intersection of the two paths achieved by this implementation is actually the non-intersection of the links within those two paths. Alternatively, since multiple links may be configured between two network devices, in this case, although the links within the two paths are non-intersecting, the network devices within those two paths may intersect.

[0166] In another possible implementation, the path information includes the link priority of each link in the path. Specifically, after the execution device calculates the first target path, it can adjust the link priority of each link in the first target path so that the adjusted link priority is lower than the original link priority. For example, the link priority of each link can be adjusted to be one, two, or three levels lower than the original priority, etc. This application does not limit the specific number of priority levels adjusted.

[0167] However, optionally, the adjusted link priority is not the lowest level link priority. If the link priority of the first target path is adjusted to the lowest level link priority, the links in the first target path may no longer be available when calculating the paths of other tunnel members in the ECMP group. In this case, if there are links in the paths of other tunnel members in the ECMP group that overlap with the links in the first target path, the paths of other tunnel members in the ECMP group will fail to be calculated successfully.

[0168] For example, the link priority mentioned above can be determined based on the link bandwidth. The higher the bandwidth of the link, the higher the priority of the link, and vice versa. For ease of understanding, please refer to Table 1 for example.

[0169] Table 1

[0170] Link bandwidth Link priority 200G 1 100G 2 50G 3 25G 4 10G 5 1G 6

[0171] Table 1 illustrates six levels of link priority, with level 1 being the highest and level 6 the lowest. Levels 1 to 6 represent link priorities from highest to lowest. It can be seen that the greater the link bandwidth, the higher the link priority, and the smaller the link bandwidth, the lower the link priority.

[0172] Optionally, the adjusted link priority in the first target path is only effective when planning paths for tunnels other than the aforementioned tunnel among the multiple tunnels. Otherwise, the link priority in the first target path is handled according to the link priority before adjustment. That is, when calculating the traffic transmission path for other tunnels that are load-balanced with the aforementioned tunnel, because the link priority of the first target path is low, and following the principle of prioritizing higher priority, the executing device will bypass the link with the lower priority, thereby planning the other tunnel onto a path that does not intersect with the first target path. For ease of understanding, please refer to the example provided. Figure 6A and Figure 6B .

[0173] exist Figure 6AIn this scenario, assuming each link has a priority level of 2, a tunnel ECMP group consisting of two tunnels is created between network device B and network device I to load balance traffic between them. Assume the executing device calculates the specific transmission path for the first tunnel as: Network device B → Network device G → Network device I. After calculating this path, the executing device can adjust the priorities of the links in this path, for example, increasing the priority of each link in the path by one level. The adjusted link priorities can be found in [reference needed]. Figure 6B After adjusting the link priority of the first path, when the executing device calculates the transmission path for the second tunnel, based on the principle of prioritizing higher priorities, it will avoid the path B→G→I due to its lower link priority. Therefore, the calculated transmission path for the second tunnel will be an alternative path, for example: B→C→E→I. This achieves the goal of planning the transmission paths of two different member tunnels in a load-sharing ECMP group onto different paths.

[0174] Similarly, since the above implementation avoids path intersection by adjusting link priorities, the non-intersection of the two paths achieved by this implementation is actually the non-intersection of the links within those two paths. Alternatively, since multiple links may be configured between two network devices, in this case, although the links within the two paths are non-intersecting, the network devices within those two paths may intersect.

[0175] In another possible implementation, the path information includes a link identifier for each link in the path. Specifically, after the execution device calculates the first target path, it can set a link identifier for each link in the first target path. The function of the link identifier is to indicate that the link with the set link identifier is occupied by the ECMP group. The link identifier can be any custom identifier, such as a character, a number, or a letter, etc. This application does not limit the specific link identifier.

[0176] Optionally, the link identifier set in the first target path is only valid when planning the traffic transmission paths of other tunnels in the aforementioned tunnel load balancing. That is, when planning the traffic transmission paths of these other tunnels, the executing device will bypass the links with the set link identifier, thereby planning these other tunnels onto paths that do not intersect with the first target path. For ease of understanding, please refer to the example provided. Figure 7A and Figure 7B .

[0177] exist Figure 7AIn this scenario, assume that a tunnel ECMP group consisting of two tunnels is created between network device B and network device I to load balance traffic between them. Assume the executing device calculates the specific transmission path of the first tunnel as: Network Device B → Network Device G → Network Device I. After calculating this path, the executing device can set an identifier for the links in this path, such as Z. The links after setting the identifier can be found in [reference needed]. Figure 7B After setting the link identifier, when the executing device calculates the transmission path for the second tunnel, based on the already set link identifier, it learns that the link with the set link identifier is already occupied by the aforementioned ECMP group. The executing device will then avoid the linked link with the set identifier, thus calculating a different transmission path for the second tunnel. For example, this different path might be: Network Device B → Network Device C → Network Device E → Network Device I. This achieves the goal of planning the transmission paths of two different member tunnels in a load-sharing ECMP group onto different paths.

[0178] Similarly, since the above implementation avoids path intersection by setting link identifiers, the non-intersection of the two paths achieved by this implementation is actually the non-intersection of the links within those two paths. Alternatively, since multiple links may be configured between two network devices, in this case, although the links within the two paths are non-intersecting, the network devices within those two paths may intersect.

[0179] In another possible implementation, the path information includes the device identifier of each network device in the path. Specifically, after the device calculates the first target path, an identifier can be set for each network device in the first target path. The purpose of this identifier is to indicate that the network device with the identifier is occupied by the ECMP group. The identifier can be any custom identifier, such as a character, a number, or a letter, etc. This application does not limit the identifier of specific network devices.

[0180] Optionally, the identifier set by the network device in the first target path is only valid when planning the traffic transmission paths of other tunnels in the aforementioned tunnel load balancing. That is, when planning the traffic transmission paths of these other tunnels, the executing device will bypass the network device with the identifier set, thereby planning these other tunnels onto paths that do not intersect with the first target path.

[0181] Since the above implementation avoids path intersections by setting identifiers for network devices, the non-intersection of two paths achieved by this implementation actually means that the network devices in the two paths do not intersect, or that the nodes in the paths do not intersect. Two paths with non-intersecting nodes must also have non-intersecting links.

[0182] In another possible implementation, the path information includes the interface identifier of each network device communication interface in the path. When the network device communication interface is a network device ingress interface in the path, after the execution device calculates the first target path, it can set an interface identifier for each network device ingress interface in the first target path. For ease of description, this interface identifier can be referred to as the first interface identifier. The function of the first interface identifier is to indicate that the network device ingress interface with this identifier is occupied by the ECMP group. The first interface identifier can be any custom identifier, such as a character, a number, or a letter, etc. This application does not limit the identifier of a specific network device ingress interface. The network device ingress interface is the ingress interface of the traffic transmitted through the first target path on the network device.

[0183] Optionally, the first interface identifier set on the network device ingress interface in the first target path is only valid when planning the traffic transmission paths of other tunnels in the aforementioned tunnel load balancing. That is, when planning the traffic transmission paths of these other tunnels, the executing device will bypass the network device ingress interface with the first interface identifier set, thereby planning these other tunnels onto paths that do not intersect with the first target path.

[0184] When the network device communication interface is an outgoing interface of a network device in the path, after the device calculates the first target path, an interface identifier can be set for each outgoing interface of the network device in the first target path. The interface identifier of the outgoing interface can be the same as or different from the first interface identifier of the incoming interface of the network device. For ease of distinction, in this application, the interface identifier of the outgoing interface can be referred to as the second interface identifier. The function of the second interface identifier is to indicate that the outgoing interface of the network device with this identifier is occupied by the ECMP group. This identifier can be any custom identifier, such as a character, a number, or a letter, etc. This application does not limit the identifier of a specific outgoing interface of the network device. The outgoing interface of the network device is the outgoing interface of the traffic transmitted through the first target path on this network device.

[0185] Optionally, the second interface identifier set on the network device's outgoing interface in the first target path is only valid when planning the traffic transmission paths of other tunnels in the aforementioned tunnel load balancing. That is, when planning the traffic transmission paths of these other tunnels, the executing device will bypass the network device's outgoing interface that has the second interface identifier set, thereby planning these other tunnels onto paths that do not intersect with the first target path.

[0186] Since the above implementation avoids path intersection by setting interface identifiers for the communication interfaces of network devices, and each communication interface connects to one link, the non-intersection of two paths achieved by this implementation is actually the non-intersection of the links within those two paths. Alternatively, since two network devices may be configured with multiple communication interfaces, i.e., correspondingly connected to multiple links, in this case, although the links within the two paths do not intersect, the network devices within those two paths may intersect.

[0187] In one possible implementation, the non-intersecting paths among the tunnel members of the aforementioned ECMP group can be a best-effort non-intersecting approach. That is, when paths among the tunnel members of multiple ECMP groups must intersect, for example, when multiple paths can only reach the destination address through a certain link or network device and there are no other links or network devices that can be substituted, the multiple paths can all pass through that certain link or network device. However, other than that, the other links or network devices among the multiple paths do not intersect.

[0188] Based on the above description, the specific traffic transmission paths corresponding to the multiple tunnels created between the first network device and the second network device all contain the aforementioned path information. Based on the description of step S401, these multiple tunnels include a first tunnel, which forwards traffic from the first network device to the second network device based on a first path. When the first path fails, the executing device can perform rerouting calculations to recalculate a path that allows normal communication for the first tunnel.

[0189] Specifically, the execution device can, based on the path information of each path corresponding to the other tunnels (excluding the first tunnel) among the aforementioned plurality of tunnels, bypass each of those paths and recalculate the traffic transmission path of the first tunnel to obtain a second path, thereby ensuring that the second path does not intersect with each path corresponding to the other tunnels among the plurality of tunnels (excluding the first tunnel). Specifically, at least one target object in the second path does not have the aforementioned path information set.

[0190] In one possible implementation, the path information in each path includes the link cost of each link in that path; then, the execution device can calculate the multiple links traversed by the second path by avoiding each link based on the link cost of each link. The specific implementation process can be referred to the foregoing description, for example, exemplarily referring to... Figure 5A and Figure 5B The corresponding descriptions will not be repeated here.

[0191] In another possible implementation, the path information in each path includes the link priority of each link in each path; then, the execution device can calculate the multiple links traversed by the second path by avoiding each link based on the link priority of each link. The specific implementation process can be referred to the foregoing description, for example, exemplarily referring to... Figure 6A and Figure 6B The corresponding descriptions will not be repeated here.

[0192] In another possible implementation, the path information in each path includes the link identifier of each link in each path; then, the execution device can calculate the multiple links traversed by the second path by avoiding each link based on the link identifier of each link. The specific implementation process can be referred to the foregoing description, for example, exemplarily referring to... Figure 7A and Figure 7B The corresponding descriptions will not be repeated here.

[0193] In another possible implementation, the path information in each path includes the identifier of each network device in each path; then, the execution device can calculate the multiple network devices traversed by the second path by avoiding each network device in each path based on the identifier of each network device in each path. The specific implementation process can be referred to the foregoing description, and will not be repeated here.

[0194] In another possible implementation, the path information in each path includes a first interface identifier for each network device ingress interface in each path; then, the execution device can calculate the multiple network device ingress interfaces traversed by the second path by avoiding each network device ingress interface in each path based on the first interface identifier for each network device ingress interface in each path. The specific implementation process can be referred to the foregoing description, and will not be repeated here.

[0195] In another possible implementation, the path information in each path includes a second interface identifier for each network device outgoing interface in each path. Then, the executing device can calculate the multiple network device outgoing interfaces traversed by the second path by avoiding each network device outgoing interface in each path, based on the second interface identifier of each network device outgoing interface in each path. The specific implementation process can be referred to the foregoing description, and will not be repeated here.

[0196] Optionally, the second path does not intersect with each of the other paths. This could mean that the links between the second path and each of the other paths do not intersect, or that the nodes between the second path and each of the other paths do not intersect, or that both the links and nodes between the second path and each of the other paths do not intersect, or that the second path strives to avoid intersecting with each of the other paths. For a detailed description of what constitutes non-intersection, please refer to the preceding content; it will not be repeated here.

[0197] S403, reroute the first tunnel to the second path.

[0198] In a specific embodiment, after the execution device calculates the second path, it reroutes the first tunnel to the second path, that is, it continues to forward traffic through the second path, which quickly restores the smooth transmission of network traffic. Since the second path does not intersect with the paths of the other tunnels, it can better distribute the network traffic, reduce network congestion, improve the speed of network traffic forwarding, and thus improve the network performance.

[0199] In one possible implementation, after the execution device calculates the second path, it can also set path information for this second path. The specific path information settings can be found in the preceding description and will not be repeated here. This design allows for the subsequent planning of new tunnel paths between the first and second network devices, which can be planned based on the information of the second path and onto paths that do not intersect with the second path. For ease of understanding, please refer to the example provided. Figure 8 .

[0200] exist Figure 8 In the network structure shown, assume that multiple service traffic flows first converge to node 3. An ECMP group consisting of two member tunnels is created between node 3 and node 1 for load balancing. The initial planned paths for these two tunnels are two links between node 3 and node 1. However, when the two links between node 3 and node 1 fail, it triggers rerouting of the two ECMP member tunnels from node 3 to node 1. In existing solutions, according to the shortest path algorithm, after rerouting calculation, both tunnels are rerouted to the same path, which is, for example, path 1: Node 3 → Node 5 → Node 7 → Node 8 → Node 4 → (Link c) Node 2 → (Link b) Node 1, as shown. Figure 8The path shown is Path 1. In this case, traffic from both tunnels is forwarded through this path, losing its load-sharing function and easily causing congestion on this path. However, using the routing planning method provided in this application, the execution device can first plan the path of one tunnel, assuming the planned path is Path 1 as described above. Then, the execution device sets the path information for Path 1; the specific settings can be found in the preceding description and will not be repeated here. Then, the execution device plans the path of the other tunnel, and based on the set path information of Path 1, it can bypass Path 1 as much as possible, planning the path as shown above. Figure 8 The path shown is 2. Path 2 is: Node 3 → Node 9 → Node 10 → Node 6 → Node 4 → (Link d) Node 2 → (Link a) Node 1.

[0201] It should be noted that, although the above Figure 8 Path 1 and Path 2 both pass through nodes 4 and 2, but they follow different links. Therefore, Path 1 and Path 2 are two paths whose links do not intersect. Alternatively, if there is only one link between nodes 1 and 2, both Path 1 and Path 2 will pass through that link. However, since all other links between Path 1 and Path 2 do not intersect, it can also be said that Path 1 and Path 2 are two paths whose links do not intersect.

[0202] In summary, this application addresses post-failure network congestion by planning a path that does not intersect with existing ECMP member paths after a path failure. Furthermore, compared to existing constraint planning schemes, which still require traversing the constrained path after a failure and cannot reroute to other feasible paths, leading to service interruptions and reduced network reliability, this application can quickly reroute to an equivalent path after a path failure, achieving load balancing and alleviating network congestion.

[0203] The foregoing mainly describes the path planning method provided in the embodiments of this application. It is understood that each device, in order to achieve the corresponding functions, includes hardware structures and / or software modules for executing each function. Based on the units and steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0204] This application embodiment can divide the device into functional modules according to the above method example. For example, each function can be divided into its own functional module, or two or more functions can be integrated into one module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0205] When dividing each function into modules according to its corresponding function. Figure 9 A schematic diagram of a possible logical structure of the device is shown. This device can be the aforementioned execution device, a chip within the execution device, or a processing system within the execution device, etc. The device 900 includes a configuration unit 901, a computing unit 902, and a rerouting unit 903. Wherein:

[0206] Configuration unit 901 is configured on a first network device to configure a Tunnel Equal Cost Multipath (ECMP) group for traffic load balancing, wherein the ECMP group consists of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path; configuration unit 901 can perform... Figure 4 The configuration operation described in step S401 is shown.

[0207] Calculation unit 902 is configured to, when a failure occurs in the first path, calculate a second path based on the path information of each of the other paths traversed by each of the plurality of tunnels excluding the first tunnel, wherein the second path does not intersect with any of the other paths; calculation unit 902 can perform... Figure 4 The calculation operation described in step S402 shown.

[0208] Rerouting unit 903 is used to reroute the first tunnel to the second path; rerouting unit 903 can perform... Figure 4 The rerouting operation described in step S403 is shown.

[0209] In one possible implementation, the second path does not intersect with any of the other paths, including at least one of the following:

[0210] The links between this second path and each of the other paths are not intersecting;

[0211] The nodes of this second path do not intersect with those of each of the other paths;

[0212] The second path and each of the other paths are not intersecting in terms of links or nodes;

[0213] The second path and each of the other paths are to be as close as possible to each other.

[0214] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0215] In one possible implementation, the path information includes at least one of the following:

[0216] The link cost of each link in each of the other paths mentioned above;

[0217] The link priority of each link in each of the other paths;

[0218] The link identifier of each link in each of the other paths, which is used to identify that each link has been occupied by the tunnel ECMP group;

[0219] The device identifier of each network device in each of the other paths, the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;

[0220] The interface identifier of each network device communication interface in each of the other paths is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.

[0221] In one possible implementation, the path information includes the link cost of each link, and the calculation unit 902 is specifically used to: determine the multiple links traversed by the second path based on the link cost of each link.

[0222] In one possible implementation, the device further includes a first adjustment unit, configured to adjust the link cost of each link in the tunnel ECMP group after configuring the tunnel ECMP group, wherein the adjusted link cost of each link is greater than the unadjusted link cost of each link.

[0223] In one possible implementation, the path information includes the link priority of each link, and the calculation unit 902 is specifically used to: determine the multiple links traversed by the second path according to the link priority of each link.

[0224] In one possible implementation, the device further includes a second adjustment unit, configured to adjust the link priority of each link in the tunnel ECMP group after configuring the tunnel ECMP group, wherein the adjusted link priority of each link is lower than the original link priority of each link.

[0225] In one possible implementation, the path information includes the link identifier of each link, and the calculation unit 902 is specifically used to: determine the multiple links traversed by the second path based on the link identifier of each link.

[0226] In one possible implementation, the device further includes a first setting unit for setting the link identifier for each link in the tunnel ECMP group after configuring the tunnel ECMP group.

[0227] In one possible implementation, the path information includes the device identifier of each network device in each of the other paths, and the calculation unit 902 is specifically used to: determine the multiple network devices traversed by the second path based on the device identifier of each network device in each of the other paths.

[0228] In one possible implementation, the device further includes a second setting unit for setting the device identifier for each network device on each path in the tunnel ECMP group after configuring the tunnel ECMP group.

[0229] In one possible implementation, the path information includes the interface identifier of each network device communication interface in each of the other paths, and the calculation unit 902 is specifically used for:

[0230] When the network device communication interface is the network device ingress interface in the path, the multiple network device ingress interfaces traversed by the second path are determined according to the first interface identifier of each network device ingress interface in each of the other paths.

[0231] When the network device communication interface is the network device outgoing interface in the path, the multiple network device outgoing interfaces traversed by the second path are determined according to the second interface identifier of each network device outgoing interface in each of the other paths.

[0232] In one possible implementation, the device further includes a third setting unit for:

[0233] When the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface traversed by each path in the tunnel ECMP group;

[0234] When the network device communication interface is the network device outgoing interface in the path, after configuring the tunnel ECMP group, set the second interface identifier for each network device outgoing interface traversed by each path in the tunnel ECMP group.

[0235] Figure 9 The specific operation and beneficial effects of each unit in the device 900 shown can be found in the above description. Figure 4 The descriptions of the possible method embodiments are not repeated here.

[0236] When dividing each function into modules according to its corresponding function. Figure 10 A schematic diagram of a possible logical structure of the device is shown. This device can be the aforementioned execution device, a chip within the execution device, or a processing system within the execution device, etc. The device 1000 includes a computing unit 1001 and a setting unit 1002. Wherein:

[0237] The calculation unit 1001 is used to calculate the first path traversed by the first tunnel between the first network device and the second network device; the calculation unit 1001 can perform... Figure 4 The operation of calculating the path of the ECMP group member tunnel is described in the specific description of step S402 shown.

[0238] Setting unit 1002 is used to set path information for a target object in the first path, wherein the target object is a link, a network device, or a network device communication interface; setting unit 1002 can perform... Figure 4 The specific description of step S402 shows the operation of setting path information for target objects in the path of ECMP group member tunnels.

[0239] The computing unit 1001 is also used to calculate the second path traversed by the second tunnel between the first network device and the second network device based on the path information. At least one of the target objects in the second path does not have the path information set. The first tunnel and the second tunnel are members of the Tunnel Equivalent Multipath (ECMP) group.

[0240] In one possible implementation, the aforementioned path information is only valid for members within the tunnel's ECMP group.

[0241] In one possible implementation, the target object is a link, and the setting unit 1002 is specifically used for:

[0242] The link cost of each link in the first path is adjusted so that the link cost of each link in the first path after adjustment is greater than the link cost of each link in the first path before adjustment. The path information includes the link cost of each link in the first path after adjustment.

[0243] In one possible implementation, the target object is a link, and the setting unit 1002 is specifically used for:

[0244] The link priority of each link in the first path is adjusted so that the link priority of each link in the first path after adjustment is lower than the link priority of each link in the first path before adjustment. The path information includes the link priority of each link in the first path after adjustment.

[0245] In one possible implementation, the target object is a link, and the setting unit 1002 is specifically used for:

[0246] A link identifier is set for each link in the first path. The link identifier of each link in the first path is used to identify that each link in the first path has been occupied by the tunnel ECMP group. The path information includes the link identifier of each link in the first path.

[0247] In one possible implementation, the target object is a network device, and the setting unit 1002 is specifically used for:

[0248] A device identifier is set for each network device in the first path. The device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group. The path information includes the device identifier of each network device in the first path.

[0249] In one possible implementation, the target object is a network device communication interface, and the setting unit 1002 is specifically used for:

[0250] When the network device communication interface is the network device ingress interface in the path, a first interface identifier is set for each network device ingress interface in the first path. The first interface identifier of each network device ingress interface in the first path is used to identify that each network device ingress interface in the first path has been occupied by the tunnel ECMP group. The path information includes the first interface identifier of each network device ingress interface in the first path.

[0251] When the network device communication interface is the network device outgoing interface in the path, a second interface identifier is set for each network device outgoing interface in the first path. The second interface identifier of each network device outgoing interface in the first path is used to identify that each network device outgoing interface in the first path has been occupied by the tunnel ECMP group. The path information includes the second interface identifier of each network device outgoing interface in the first path.

[0252] Figure 10 The specific operation and beneficial effects of each unit in the device 1000 shown can be found in the above description. Figure 4 The descriptions of the possible method embodiments are not repeated here.

[0253] Figure 11The diagram shows a possible hardware structure of the device provided in this application. This device can be the execution device described in the above embodiments, or it can be a chip within the execution device, or it can be a processing system within the execution device, etc. The device 1100 includes: a processor 1101, a memory 1102, and a communication interface 1103. The processor 1101, the communication interface 1103, and the memory 1102 can be interconnected or interconnected via a bus 1104.

[0254] For example, memory 1102 is used to store computer programs and data of device 1100. Memory 1102 may include, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM).

[0255] The communication interface 1103 includes a sending interface and a receiving interface. There can be multiple communication interfaces 1103, which are used to support the device 1100 in communication, such as receiving or sending data or messages.

[0256] For example, processor 1101 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. Processor 1101 can be used to read the program stored in the aforementioned memory 1102, causing device 1100 to execute as described above. Figure 4 The operations performed by the execution device in any of the path planning methods described in its possible embodiments.

[0257] In one possible implementation, the processor 1101 can be used to read the program stored in the memory 1102 and perform the following operations: configure a tunnel equal cost multipath (ECMP) group for traffic load balancing on the first network device, wherein the members of the tunnel ECMP group consist of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path; when the first path fails, calculate a second path based on the path information of each of the other paths traversed by each of the other tunnels besides the first tunnel, wherein the second path does not intersect with each of the other paths; and reroute the first tunnel to the second path.

[0258] In another possible implementation, processor 1101 can be used to read the program stored in memory 1102 and perform the following operations: calculate a first path traversed by a first tunnel between a first network device and a second network device; set path information for target objects in the first path, wherein the target object is a link, a network device, or a network device communication interface; calculate a second path traversed by a second tunnel between the first network device and the second network device based on the path information, wherein the first path and the second path do not intersect, in other words, at least one target object in the second path does not have the path information set. The first tunnel and the second tunnel are members of the Tunnel Equivalent Multipath (ECMP) group.

[0259] Figure 11 The specific operation and beneficial effects of each unit in the device 1100 shown can be found in the above description. Figure 4 The descriptions of the possible method embodiments are not repeated here.

[0260] This application also provides a computer-readable storage medium storing a computer program that is executed by a processor to perform the above-described tasks. Figure 4 The operations performed by the execution device in any of the possible method embodiments described herein.

[0261] This application also provides a computer program product, which, when read and executed by a computer, performs the above-mentioned... Figure 4 The operations performed by the execution device in any of the possible method embodiments will be executed.

[0262] In summary, this application addresses network congestion after a path failure within a tunnel by planning a path that does not intersect with the existing ECMP members used for load balancing. Furthermore, existing constraint-based path planning schemes still require traversing the constrained path after a failure, preventing rerouting to other feasible paths, leading to service interruptions and reduced network reliability. This application, however, can quickly reroute to an equivalent path after a path failure, achieving load balancing and alleviating network congestion.

[0263] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A path planning method, characterized in that, The method includes: A tunnel equal cost multipath (ECMP) group for traffic load balancing is configured on a first network device, wherein the members of the tunnel ECMP group consist of multiple tunnels, including a first tunnel that forwards traffic to a destination address based on a first path; When the first path fails, a second path is calculated based on the path information of each of the other paths traversed by each of the multiple tunnels other than the first tunnel. The second path does not intersect with any of the other paths. The first tunnel is rerouted to the second path.

2. The method according to claim 1, characterized in that, The second path does not intersect with any of the other paths, including at least one of the following: The links between the second path and each of the other paths are not intersecting; The nodes of the second path and each of the other paths do not intersect; The second path and each of the other paths are not intersecting in terms of links or nodes; The second path and each of the other paths are designed to be non-intersecting.

3. The method according to claim 1, characterized in that, The path information is only valid for members within the tunnel ECMP group.

4. The method according to any one of claims 1-3, characterized in that, The path information includes at least one of the following: The link cost of each link in each of the other paths; The link priority of each link in each of the other paths; The link identifier of each link in each of the other paths, wherein the link identifier of each link is used to identify that each link has been occupied by the tunnel ECMP group; The device identifier of each network device in each of the other paths, wherein the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group; The interface identifier of each network device communication interface in each of the other paths is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.

5. The method according to claim 4, characterized in that, The path information includes the link cost of each link, and the calculation of the second path includes: Based on the link cost of each link, the multiple links traversed by the second path are determined.

6. The method according to claim 5, characterized in that, After configuring the tunnel ECMP group, the following is included: Adjust the link cost of each link in the tunnel ECMP group so that the adjusted link cost of each link is greater than the original link cost of each link.

7. The method according to claim 4, characterized in that, The path information includes the link priority of each link, and the calculation of the second path includes: Based on the link priority of each link, the multiple links traversed by the second path are determined.

8. The method according to claim 7, characterized in that, After configuring the tunnel ECMP group, the following is included: The link priority of each link in the tunnel ECMP group is adjusted so that the link priority of each link after adjustment is lower than the link priority of each link before adjustment.

9. The method according to claim 4, characterized in that, The path information includes the link identifier of each link, and the calculation of the second path includes: Based on the link identifier of each link, the multiple links traversed by the second path are determined.

10. The method according to claim 9, characterized in that, The method further includes: After configuring the tunnel ECMP group, set the link identifier for each link in the tunnel ECMP group.

11. The method according to claim 4, characterized in that, The path information includes the device identifier of each network device in each of the other paths, and the calculation of the second path includes: Based on the device identifier of each network device in each of the other paths, the multiple network devices traversed by the second path are determined.

12. The method according to claim 11, characterized in that, The method further includes: After configuring the tunnel ECMP group, set the device identifier for each network device on each path in the tunnel ECMP group.

13. The method according to claim 4, characterized in that, The path information includes the interface identifier of each network device communication interface in each of the other paths, and the calculation of the second path includes: When the network device communication interface is the network device ingress interface in the path, the multiple network device ingress interfaces traversed by the second path are determined according to the first interface identifier of each network device ingress interface in each of the other paths. When the network device communication interface is the network device outgoing interface in the path, the multiple network device outgoing interfaces traversed by the second path are determined according to the second interface identifier of each network device outgoing interface in each of the other paths.

14. The method according to claim 13, characterized in that, The method further includes: When the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, the first interface identifier is set for each network device ingress interface traversed by each path in the tunnel ECMP group. When the network device communication interface is the network device outgoing interface in the path, after configuring the tunnel ECMP group, the second interface identifier is set for each network device outgoing interface traversed by each path in the tunnel ECMP group.

15. A path planning method, characterized in that, The method includes: Calculate the first path traversed by the first tunnel between the first network device and the second network device, wherein the first tunnel is a member of the Tunnel Equivalent Multipath (ECMP) group; Set path information for the target object in the first path, wherein the target object is a link, or the target object is a network device, or the target object is a communication interface of a network device; Based on the path information, a second path is calculated for the second tunnel between the first network device and the second network device. The first path and the second path do not intersect, and the second path is a member of the tunnel ECMP group.

16. The method according to claim 15, characterized in that, The path information is only valid for members within the tunnel ECMP group.

17. The method according to claim 15 or 16, characterized in that, The target object is a link, and setting path information for the target object in the first path includes: The link cost of each link in the first path is adjusted so that the link cost of each link in the first path after adjustment is greater than the link cost of each link in the first path before adjustment. The path information includes the link cost of each link in the first path after adjustment.

18. The method according to claim 15 or 16, characterized in that, The target object is a link, and setting path information for the target object in the first path includes: The link priority of each link in the first path is adjusted so that the link priority of each link in the first path after adjustment is lower than the link priority of each link in the first path before adjustment. The path information includes the link priority of each link in the first path after adjustment.

19. The method according to claim 15 or 16, characterized in that, The target object is a link, and setting path information for the target object in the first path includes: A link identifier is set for each link in the first path. The link identifier of each link in the first path is used to identify that each link in the first path has been occupied by the tunnel ECMP group. The path information includes the link identifier of each link in the first path.

20. The method according to claim 15 or 16, characterized in that, The target object is a network device, and setting path information for the target object in the first path includes: A device identifier is set for each network device in the first path. The device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group. The path information includes the device identifier of each network device in the first path.

21. The method according to claim 15 or 16, characterized in that, The target object is a network device communication interface, and setting path information for the target object in the first path includes: When the network device communication interface is a network device ingress interface in the path, a first interface identifier is set for each network device ingress interface in the first path. The first interface identifier of each network device ingress interface in the first path is used to identify that each network device ingress interface in the first path has been occupied by the tunnel ECMP group. The path information includes the first interface identifier of each network device ingress interface in the first path. When the network device communication interface is a network device outgoing interface in the path, a second interface identifier is set for each network device outgoing interface in the first path. The second interface identifier of each network device outgoing interface in the first path is used to identify that each network device outgoing interface in the first path has been occupied by the tunnel ECMP group. The path information includes the second interface identifier of each network device outgoing interface in the first path.

22. A path planning device, characterized in that, The device includes: A configuration unit is configured on a first network device to configure a tunnel equal cost multipath (ECMP) group for traffic load balancing, wherein the members of the tunnel ECMP group consist of multiple tunnels, the multiple tunnels including a first tunnel, the first tunnel forwarding traffic to a destination address based on a first path; The calculation unit is used to calculate a second path when the first path fails, based on the path information of each of the other paths traversed by each of the multiple tunnels other than the first tunnel, wherein the second path does not intersect with each of the other paths. A rerouting unit is used to reroute the first tunnel to the second path.

23. The device according to claim 22, characterized in that, The second path does not intersect with any of the other paths, including at least one of the following: The links between the second path and each of the other paths are not intersecting; The nodes of the second path and each of the other paths do not intersect; The second path and each of the other paths are not intersecting in terms of links or nodes; The second path and each of the other paths are designed to be non-intersecting.

24. The device according to claim 22, characterized in that, The path information is only valid for members within the tunnel ECMP group.

25. The device according to any one of claims 22-24, characterized in that, The path information includes at least one of the following: The link cost of each link in each of the other paths; The link priority of each link in each of the other paths; The link identifier of each link in each of the other paths, wherein the link identifier of each link is used to identify that each link has been occupied by the tunnel ECMP group; The device identifier of each network device in each of the other paths, wherein the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group; The interface identifier of each network device communication interface in each of the other paths is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.

26. The device according to claim 25, characterized in that, The path information includes the link cost of each link, and the calculation unit is specifically used for: Based on the link cost of each link, the multiple links traversed by the second path are determined.

27. The device according to claim 26, characterized in that, The device also includes a first adjustment unit for configuring the tunnel ECMP group afterward. Adjust the link cost of each link in the tunnel ECMP group so that the adjusted link cost of each link is greater than the original link cost of each link.

28. The device according to claim 25, characterized in that, The path information includes the link priority of each link, and the calculation unit is specifically used for: Based on the link priority of each link, the multiple links traversed by the second path are determined.

29. The device according to claim 28, characterized in that, The device also includes a second adjustment unit for configuring the tunnel ECMP group afterward. The link priority of each link in the tunnel ECMP group is adjusted so that the link priority of each link after adjustment is lower than the link priority of each link before adjustment.

30. The device according to claim 25, characterized in that, The path information includes the link identifier of each link, and the calculation unit is specifically used for: Based on the link identifier of each link, the multiple links traversed by the second path are determined.

31. The device according to claim 30, characterized in that, The device further includes a first setting unit, used to set the link identifier for each link in the tunnel ECMP group after configuring the tunnel ECMP group.

32. The device according to claim 25, characterized in that, The path information includes the device identifier of each network device in each of the other paths, and the calculation unit is specifically used for: Based on the device identifier of each network device in each of the other paths, the multiple network devices traversed by the second path are determined.

33. The device according to claim 32, characterized in that, The device further includes a second setting unit, used to set the device identifier for each network device on each path in the tunnel ECMP group after configuring the tunnel ECMP group.

34. The device according to claim 25, characterized in that, The path information includes the interface identifier of the communication interface of each network device in each of the other paths, and the calculation unit is specifically used for: When the network device communication interface is the network device ingress interface in the path, the multiple network device ingress interfaces traversed by the second path are determined according to the first interface identifier of each network device ingress interface in each of the other paths. When the network device communication interface is the network device outgoing interface in the path, the multiple network device outgoing interfaces traversed by the second path are determined according to the second interface identifier of each network device outgoing interface in each of the other paths.

35. The device according to claim 34, characterized in that, The device further includes a third setting unit, used for: When the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, the first interface identifier is set for each network device ingress interface traversed by each path in the tunnel ECMP group. When the network device communication interface is the network device outgoing interface in the path, after configuring the tunnel ECMP group, the second interface identifier is set for each network device outgoing interface traversed by each path in the tunnel ECMP group.

36. A path planning device, characterized in that, The device includes: The computing unit is used to calculate the first path traversed by the first tunnel between the first network device and the second network device, wherein the first tunnel is a member of the Tunnel Equivalent Multipath (ECMP) group. The setting unit is used to set path information for the target object in the first path, wherein the target object is a link, or the target object is a network device, or the target object is a communication interface of a network device; The calculation unit is also used to calculate, based on the path information, a second path through which the second tunnel between the first network device and the second network device passes, wherein the first path and the second path do not intersect, and the second tunnel belongs to a member of the tunnel ECMP group.

37. The device according to claim 36, characterized in that, The path information is only valid for members within the tunnel ECMP group.

38. The device according to claim 36 or 37, characterized in that, The target object is a link, and the setting unit is specifically used for: The link cost of each link in the first path is adjusted so that the link cost of each link in the first path after adjustment is greater than the link cost of each link in the first path before adjustment. The path information includes the link cost of each link in the first path after adjustment.

39. The device according to claim 36 or 37, characterized in that, The target object is a link, and the setting unit is specifically used for: The link priority of each link in the first path is adjusted so that the link priority of each link in the first path after adjustment is lower than the link priority of each link in the first path before adjustment. The path information includes the link priority of each link in the first path after adjustment.

40. The device according to claim 36 or 37, characterized in that, The target object is a link, and the setting unit is specifically used for: A link identifier is set for each link in the first path. The link identifier of each link in the first path is used to identify that each link in the first path has been occupied by the tunnel ECMP group. The path information includes the link identifier of each link in the first path.

41. The device according to claim 36 or 37, characterized in that, The target object is a network device, and the setting unit is specifically used for: A device identifier is set for each network device in the first path. The device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group. The path information includes the device identifier of each network device in the first path.

42. The device according to claim 36 or 37, characterized in that, The target object is a network device communication interface, and the setting unit is specifically used for: When the network device communication interface is a network device ingress interface in the path, a first interface identifier is set for each network device ingress interface in the first path. The first interface identifier of each network device ingress interface in the first path is used to identify that each network device ingress interface in the first path has been occupied by the tunnel ECMP group. The path information includes the first interface identifier of each network device ingress interface in the first path. When the network device communication interface is a network device outgoing interface in the path, a second interface identifier is set for each network device outgoing interface in the first path. The second interface identifier of each network device outgoing interface in the first path is used to identify that each network device outgoing interface in the first path has been occupied by the tunnel ECMP group. The path information includes the second interface identifier of each network device outgoing interface in the first path.

43. A path planning device, characterized in that, The device includes a processor and a memory; wherein the memory is used to store a computer program, and the processor is used to invoke the computer program to cause the device to perform the method as described in any one of claims 1-14; or, the processor is used to invoke the computer program to cause the device to perform the method as described in any one of claims 15-21.

44. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method described in any one of claims 1-21.

45. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method according to any one of claims 1-21.

Citation Information

Patent Citations

  • Network link fault processing method and tunnel endpoint equipment

    CN110417569A

  • Network path allocation model training method and device, and path allocation method and device

    CN111340192A