WO2022257917A1 - 路径规划方法及相关设备 - Google Patents

路径规划方法及相关设备 Download PDF

Info

Publication number
WO2022257917A1
WO2022257917A1 PCT/CN2022/097358 CN2022097358W WO2022257917A1 WO 2022257917 A1 WO2022257917 A1 WO 2022257917A1 CN 2022097358 W CN2022097358 W CN 2022097358W WO 2022257917 A1 WO2022257917 A1 WO 2022257917A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
link
network device
tunnel
interface
Prior art date
Application number
PCT/CN2022/097358
Other languages
English (en)
French (fr)
Inventor
钟明明
何春辉
吴杨
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022257917A1 publication Critical patent/WO2022257917A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3492Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3423Multimodal routing, i.e. combining two or more modes of transportation, where the modes can be any of, e.g. driving, walking, cycling, public transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks

Definitions

  • the present invention relates to the field of communication technology, in particular to a path planning method and related equipment.
  • Load balance refers to that when a network node forwards traffic, it distributes the load (traffic) going to the same destination address to multiple links/paths for forwarding.
  • Load balancing technology is widely used because it can flexibly expand link resources, increase network capacity, and improve network reliability. According to the type of sharing path, it can be divided into trunk load balancing, routing load balancing, tunnel load balancing, etc.
  • tunnel load balancing means that in a virtual private network (virtual private network, VPN) scenario, there are multiple tunnels to the same destination node on the ingress node, and the traffic is shared among the multiple tunnels for forwarding.
  • Tunneling provides a technology for encapsulating one type of packet in another type of packet so that the packet can be transmitted on a heterogeneous network, and the channel through which the encapsulated packet is transmitted is called a tunnel.
  • a tunnel is an integral part of building a VPN, and is used to transparently transmit VPN data from one VPN node to another.
  • Common tunnel types such as label switched path (label switched path) and constraint-based routed label switched path (CR-LSP), etc., all support the tunnel load balancing function.
  • the load balancing function includes equal-cost multiple path (ECMP) and unequal-cost multiple path (UCMP).
  • ECMP equal-cost multiple path
  • UCMP unequal-cost multiple path
  • the present application discloses a path planning method and related equipment, which can prevent multiple load-balanced tunnels from passing through the same path, thereby alleviating network path congestion.
  • the present application provides a path planning method, which includes:
  • a tunnel equivalent multipath ECMP group for traffic load balancing is configured on the first network device, wherein members of the tunnel ECMP group are composed of multiple tunnels, and the multiple tunnels include a first tunnel, and the first tunnel is based on the first tunnel.
  • One path forwards traffic to the destination address; when the first path fails, the second path is calculated according to the path information of each path passed by each of the multiple tunnels except the first tunnel, and the second path is calculated.
  • the second path is disjoint from each of the other paths; rerouting the first tunnel to the second path.
  • the above-mentioned second path is disjoint with each of the above-mentioned other paths, and includes at least one of the following:
  • the second path and each of the other paths are both link and node disjoint
  • the second path and each of the other paths are best effort disjoint.
  • This application solves the problem of network congestion after the failure by planning a path that is disjoint with the existing path of the ECMP member of the tunnel used for load balancing after the path in the tunnel fails.
  • the existing solution based on constraint planning path still needs to follow the constraint path after failure, and cannot reroute to other feasible paths, resulting in service interruption and reducing network reliability.
  • This application can quickly reroute after path failure To another equal-cost path to achieve load sharing of traffic, reducing network congestion.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the limited path information is known only during the path planning of the members in the load-balanced tunnel ECMP group, which can avoid affecting the path planning in other cases.
  • the above path information includes at least one of the following:
  • the device identifier of each network device in each of the other paths where the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;
  • An interface identifier of each network device communication interface in each other path where the interface identifier of each network device communication interface is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.
  • the above path information includes the link cost of each link
  • the above calculation of the second path includes: according to the link cost of each link, determining the multiple links.
  • the tunnel ECMP group after configuring the above-mentioned tunnel ECMP group, it includes: adjusting the link overhead of each link in the tunnel ECMP group, and the adjusted link overhead of each link is greater than the pre-adjusted link overhead. Link cost for each link.
  • the above-mentioned path information includes the link priority of each link
  • the above-mentioned calculation of the second path includes: according to the link priority of each link, determining the through multiple links.
  • the tunnel ECMP group after configuring the tunnel ECMP group, it includes: adjusting the link priority of each link in the tunnel ECMP group, and the adjusted link priority of each link is lower than that before adjustment The link priority of each link.
  • the above-mentioned path information includes a link identifier of each link
  • the above-mentioned calculation of the second path includes: according to the link identifier of each link, determining the multiple links.
  • the above method further includes: after configuring the tunnel ECMP group, setting the link identifier for each link in the tunnel ECMP group.
  • the path information includes a device identifier of each network device in each other path
  • the calculation of the second path includes: according to the device identifier of each network device in each other path Identify, determine the multiple network devices that the second path passes through.
  • the above method further includes: after configuring the tunnel ECMP group, setting the device identifier for each network device of each path in the tunnel ECMP group.
  • the above-mentioned path information includes an interface identifier of each network device communication interface in each other path
  • the above-mentioned calculation of the second path includes: the network device communication interface is a network device in the path In the case of an incoming interface, according to the first interface identifier of each network equipment incoming interface in each of the other paths, determine a plurality of network equipment incoming interfaces that the second path passes through; In the case of the outbound interface of the network equipment, determine the multiple outbound interfaces of the network equipment that the second path passes through according to the second interface identifier of each outbound interface of the network equipment in each other path.
  • the above method further includes: when the communication interface of the network device is the inbound interface of the network device in the path, after configuring the tunnel ECMP group, for each path in the tunnel ECMP group
  • the first interface identifier is set for each network device incoming interface; in the case that the network device communication interface is the network device outgoing interface in the path, after the tunnel ECMP group is configured, each path in the tunnel ECMP group passes through
  • the second interface identifier is set for each outgoing interface of the network device.
  • the present application provides a path planning method, which includes:
  • the first path and the second path are disjoint, in other words, the target object in the second path
  • the target object in the second path There is at least one target object in which the path information is not set, and both the first tunnel and the second tunnel are members of a tunnel equivalent cost multipath ECMP group.
  • This application marks the target objects in the planned path so that the path of other tunnel ECMP group members will not be planned to the same path. Compared with the existing scheme, the load balance is much more This solution not only solves the congestion problem caused by the equal-cost path planning to the same path, but also does not limit the rerouting capability of the network, and improves the reliability of the network.
  • the above-mentioned first path is disjoint to the above-mentioned second path, and includes at least one of the following:
  • Links between the first path and the second path are disjoint
  • the first path and the second path are best-effort disjoint.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the limited path information is known only during the path planning of the members in the load-balanced tunnel ECMP group, which can avoid affecting the path planning in other cases.
  • the above-mentioned target object is a link
  • the above-mentioned setting of path information for the target object in the first path includes: adjusting the link cost of each link in the first path, and the adjusted The link cost of each link in the first path is greater than the link cost of each link in the first path before adjustment, and the path information includes the adjusted link cost of each link in the first path The link cost of the road.
  • the above-mentioned target object is a link
  • the above-mentioned setting of path information for the target object in the first path includes: adjusting the link priority of each link in the first path, after adjustment The link priority of each link in the first path is less than the link priority of each link in the first path before adjustment, and the path information includes the adjusted Link priority for each link.
  • the above-mentioned target object is a link
  • the above-mentioned setting of path information for the target object in the first path includes: setting a link identifier for each link in the first path, and the first The link identifier of each link in the 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 ID of each link in the first path road sign.
  • the above-mentioned target object is a network device
  • the above-mentioned setting of path information for the target object in the first path includes: setting a device identifier for each network device in the first path, and 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, and the path information includes the device identifier of each network device in the first path.
  • the above-mentioned target object is a network device communication interface
  • the above-mentioned setting of path information for the target object in the first path includes:
  • a first interface identifier is set for each incoming interface of the network device in the first path, and the incoming interface of each network device in the first path
  • the first interface identifier is used to identify that the incoming interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the first interface identifier of the incoming interface of each network device in the first path ;
  • a second interface identifier is set for each outgoing interface of the network device in the first path, and the outgoing interface of each network device in the first path
  • the second interface identifier is used to identify that the outgoing interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the second interface identifier of the outgoing interface of each network device in the first path .
  • the present application provides a path planning device, which includes:
  • a configuration unit configured to configure a tunnel equivalent multipath ECMP group for traffic load balancing on the first network device, wherein members of the tunnel ECMP group are composed of multiple tunnels, the multiple tunnels include the first tunnel, the The first tunnel forwards traffic to the destination address based on the first path;
  • a calculation unit configured to calculate a second path according to the path information of each path passed by each tunnel of the plurality of tunnels except the first tunnel when a failure occurs on the first path, and the second path disjoint from each of the other paths;
  • a rerouting unit configured to reroute the first tunnel to the second path.
  • the above-mentioned second path is disjoint with each other path, and includes at least one of the following:
  • the second path and each of the other paths are both link and node disjoint
  • the second path and each of the other paths are best effort disjoint.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the above path information includes at least one of the following:
  • the device identifier of each network device in each of the other paths where the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;
  • An interface identifier of each network device communication interface in each other path where the interface identifier of each network device communication interface is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.
  • the above path information includes the link cost of each link
  • the above calculating unit is specifically configured to: determine the multiple paths passed by the second path according to the link cost of each link link.
  • the above-mentioned device further includes a first adjustment unit, configured to adjust the link overhead of each link in the tunnel ECMP group after the tunnel ECMP group is configured, and the adjusted The link cost of each link is greater than the link cost of each link before adjustment.
  • the above-mentioned path information includes the link priority of each link
  • the above-mentioned calculation unit is specifically configured to: according to the link priority of each link, determine the multiple links.
  • the above-mentioned device further includes a second adjustment unit, configured to adjust the link priority of each link in the tunnel ECMP group after the tunnel ECMP group is configured, and the adjusted link priority of each link in the tunnel ECMP group The link priority of each link is lower than the link priority of each link before adjustment.
  • the above-mentioned path information includes a link identifier of each link, and the above-mentioned calculation unit is specifically configured to: determine a plurality of link.
  • the above device further includes a first setting unit, configured to set the link identifier for each link in the tunnel ECMP group after the tunnel ECMP group is configured.
  • the path information includes a device identifier of each network device in each other path
  • the calculation unit is specifically configured to: according to the device identifier of each network device in each other path, Multiple network devices that the second path passes through are determined.
  • the above device further includes a second setting unit, configured to set the device identifier for each network device of each path in the tunnel ECMP group after the tunnel ECMP group is configured.
  • the above-mentioned path information includes an interface identifier of each network device communication interface in each other path, and the above-mentioned calculation unit is specifically used for:
  • the network device communication interface is an incoming interface of a network device in a path
  • the network device communication interface according to the first interface identifier of each incoming interface of a network device in each other path, determine a plurality of network devices that the second path passes through Ingress interface;
  • the network device communication interface is an outgoing interface of the network device in the path
  • the second interface identifier of the outgoing interface of each network device in each of the other paths determine the plurality of network devices that the second path passes through out interface.
  • the above device further includes a third setting unit, configured to:
  • the network device communication interface is the network device ingress interface in the path
  • the tunnel ECMP group after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface passed by each path in the tunnel ECMP group;
  • the network device communication interface is the outgoing interface of the network device in the path
  • the second interface identifier for each outgoing interface of the network device passed by each path in the tunnel ECMP group.
  • the present application provides a path planning device, which includes:
  • a calculation unit configured to calculate a first path passed by the first tunnel between the first network device and the second network device
  • a setting unit configured to set path information for a target object in the first path, where 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 further configured to calculate a second path passed by the second tunnel between the first network device and the second network device based on the path information, the first path and the second path are disjoint, in other words, the second At least one of the target objects in the path does not have the path information set.
  • the first tunnel and the second tunnel are members of a tunnel equivalent multipath ECMP group.
  • the above-mentioned first path is disjoint to the above-mentioned second path, and includes at least one of the following:
  • Links between the first path and the second path are disjoint
  • the first path and the second path are best-effort disjoint.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the above-mentioned target object is a link
  • the setting unit is specifically used for:
  • the adjusted link cost of each link in the first path is greater than the link cost of each link in the first path before adjustment Cost, where the path information includes the adjusted link cost of each link in the first path.
  • the above-mentioned target object is a link
  • the above-mentioned setting unit is specifically used for:
  • the path information includes the adjusted link priority of each link in the first path.
  • the above-mentioned target object is a link
  • the above-mentioned setting unit is specifically used for:
  • the path information includes the link identifier of each link in the first path.
  • the above-mentioned target object is a network device, and the above-mentioned setting unit is specifically used for:
  • the path information includes the device identification of each network device in the first path.
  • the above-mentioned target object is a communication interface of a network device, and the above-mentioned setting unit is specifically used for:
  • a first interface identifier is set for each incoming interface of the network device in the first path, and the incoming interface of each network device in the first path
  • the first interface identifier is used to identify that the incoming interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the first interface identifier of the incoming interface of each network device in the first path ;
  • a second interface identifier is set for each outgoing interface of the network device in the first path, and the outgoing interface of each network device in the first path
  • the second interface identifier is used to identify that the outgoing interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the second interface identifier of the outgoing interface of each network device in the first path .
  • the present application provides a path planning device, which may include a processor and a memory, configured to implement the path planning method described in the foregoing first aspect and its possible implementation manners.
  • the memory is coupled to the processor, and when the processor executes the computer program stored in the memory, the device may implement the method described in the first aspect or any possible implementation manner of the first aspect.
  • the device may further include a communication interface, which is used for the device to communicate with other devices.
  • the communication interface may be a transceiver, a circuit, a bus, a module, or other types of communication interfaces.
  • the communication interface includes a receiving interface and a sending interface, the receiving interface is used for receiving messages, and the sending interface is used for sending messages.
  • the device may include:
  • a processor configured to configure a tunnel equivalent multipath ECMP group for traffic load balancing on the first network device, wherein members of the tunnel ECMP group are composed of multiple tunnels, the multiple tunnels include the first tunnel, the The first tunnel forwards traffic to the destination address based on the first path; when the first path fails, according to the path information of each path passed by each of the tunnels except the first tunnel, calculate a second path, the second path being disjoint from each of the other paths; rerouting the first tunnel to the second path.
  • the computer program in the memory in this application can be stored in advance or can be stored after being downloaded from the Internet 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 the present application is an indirect coupling or connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • the present application provides a path planning device, which may include a processor and a memory, configured to implement the path planning method described in the above second aspect and its possible implementation manners.
  • the memory is coupled to the processor, and when the processor executes the computer program stored in the memory, the device may implement the method described in the second aspect or any possible implementation manner of the second aspect.
  • the device may further include a communication interface, which is used for the device to communicate with other devices.
  • the communication interface may be a transceiver, a circuit, a bus, a module, or other types of communication interfaces.
  • the communication interface includes a receiving interface and a sending interface, the receiving interface is used for receiving messages, and the sending interface is used for sending messages.
  • the device may include:
  • a processor configured to calculate a first path passed by the first tunnel between the first network device and the second network device; set path information for a target object in the first path, where the target object is a link, or the target The object is a network device, or the target object is a network device communication interface; based on the path information, a second path through which a second tunnel between the first network device and the second network device passes is calculated, and the target object in the second path At least one target object is not configured with the path information, and the first tunnel and the second tunnel are members of a tunnel equivalent cost multipath ECMP group.
  • the computer program in the memory in this application can be stored in advance or can be stored after being downloaded from the Internet 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 the present application is an indirect coupling or connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • the present application provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and the computer program is executed by a processor to implement any one of the above-mentioned first aspect and its possible implementation manners. described method.
  • the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and the computer program is executed by a processor to implement any one of the above-mentioned second aspect and its possible implementation manners. described method.
  • the present application provides a computer program product, which, when running on a computer, causes the computer to execute the method described in any one of the above first aspects.
  • the present application provides a computer program product, which, when running on a computer, causes the computer to execute the method described in any one of the above first aspects.
  • the devices described in the third to sixth aspects, the computer storage media in the seventh and eighth aspects, and the computer program products in the ninth and tenth aspects are all used to execute The method provided by any one of the first aspect and the second aspect. Therefore, the beneficial effects that it can achieve can refer to the beneficial effects in the corresponding method, and will not be repeated here.
  • FIG. 1 is a schematic diagram of tunnel load balancing between two network devices
  • Figure 2 is a schematic diagram of the paths of ECMP member tunnels
  • FIG. 3 is a schematic diagram of a network system architecture applicable to the present application.
  • FIG. 4 is a schematic flow chart of the path planning method provided by the present application.
  • Figure 5A and Figure 5B are schematic diagrams showing the path of the tunnel
  • Figure 6A and Figure 6B are schematic diagrams showing the path of the tunnel
  • Figure 7A and Figure 7B are schematic diagrams showing the path of the tunnel
  • FIG. 8 is a schematic diagram of a tunnel rerouting path
  • Figure 9 and Figure 10 are schematic diagrams of the logical structure of the device provided by the present application.
  • FIG. 11 is a schematic diagram of the hardware structure of the device provided by the present application.
  • FIG. 1 is a schematic diagram of tunnel load balancing between two network devices.
  • FIG. 1 in order to increase the transmission bandwidth of the traffic, multiple tunnels can be created between the network device 1 and the network device 2, and the multiple tunnels can realize the traffic load between the network device 1 and the network device 2 share.
  • the network device may be a customer edge device (customer edge, CE), a provider edge device (provider edge, PE), a provider backbone router (provider, P), etc.
  • Network devices may also be referred to as network nodes or nodes.
  • the tunnel is an indispensable part of constructing a virtual private network (virtual private network, VPN), and is used for transparently transmitting VPN data from one VPN node to another VPN node.
  • VPN virtual private network
  • the above multiple tunnels are members of an equal cost multiple path (equal cost multiple path, ECMP) group.
  • the ECMP means that there are multiple equal-cost paths from the same starting node to the same destination node, and the traffic is evenly distributed on these equal-cost paths, regardless of the difference in path bandwidth; A path whose path cost (cost value) is equal to the destination node.
  • the communication path between the above-mentioned network device 1 and network device 2 can be abstracted as a link, and each tunnel of the multiple tunnels sends the traffic of the network device 1 through this link to the network device 2, therefore, the paths of the plurality of tunnels are equal-cost paths, and thus the plurality of tunnels belong to ECMP group members.
  • the specific path of the tunnel is calculated according to the shortest path algorithm, and the member tunnels of the ECMP group are equal-cost paths, when planning the paths of the member tunnels of the ECMP group, it is easy to plan the paths of multiple members of the ECMP group In this case, the load sharing function of traffic will be weakened, which may easily cause path congestion.
  • FIG. 2 shows a schematic diagram of a partial network structure.
  • 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.
  • the two paths are not equal-cost paths
  • the two load-balancing tunnels created between network device B and network device G, and when it is necessary to plan paths for the two tunnels, calculate according to the shortest path algorithm, the two The path of the tunnel will be planned on the same path (for example, the first path), as shown in FIG. 2 .
  • all the traffic between network device B and network device G will be transmitted through the first path, and load sharing of traffic cannot be realized, which may easily cause congestion of the first path.
  • ECMP tunnel members can be planned on different paths through path constraints or bandwidth constraints, such as constraint-based routed label switched paths (CR-LSP) and the like.
  • CR-LSP constraint-based routed label switched paths
  • this solution limits the dynamic rerouting capability of the tunnel and reduces the reliability of the network. For example, when a constrained path fails, due to path constraints, rerouting is still routed to the constrained path of the fault, and will not be rerouted to other non-faulty paths (limiting the rerouting capability), which will cause traffic transmission If there is an interruption, the business will also be interrupted (reducing the reliability of the network).
  • the present application provides a path planning method.
  • the applicable system architecture of the method includes a plurality of network devices, the plurality of network devices constitute a traffic forwarding network, these network devices include customer edge equipment CE, operating Provider edge equipment PE and carrier backbone router P and other equipment.
  • multiple links can be configured between two network devices that can communicate in the system architecture.
  • the network system architecture shown in FIG. 3 includes a controller, and the controller can obtain a topology view of the network, so as to plan a forwarding path of traffic in the network, and the like.
  • the controller may be a software defined network (software defined network, SDN) controller or an operation and maintenance center (operation and maintenance center, OMC), etc.
  • the above network system architecture does not include a controller, then, the forwarding path of the traffic may be calculated by the network device based on the shortest path algorithm.
  • FIG. 4 it shows the path planning method provided by the present application.
  • the execution subject of the method can be The controller; if the system architecture to which the 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 network device may be the subject of execution of the method. Regardless of whether the subject of execution of the method is a controller or a network device in a specific implementation, the subject of execution of the method is collectively referred to as an execution device below.
  • the method may include, but is not limited to, the following steps:
  • the first network device may be any network device in the above-mentioned system architecture
  • the terminal network device of the plurality of tunnels configured for traffic load balancing may be another network device in the system architecture, which may be is called the second network device, then the above-mentioned destination address is the address of the second network device.
  • the above multiple tunnels may be configured by a controller in the network system, that is, the execution device is the controller.
  • the multiple tunnels may be configured by the above-mentioned first network device, that is, the executing device is the first network device.
  • a specific traffic transmission path is correspondingly calculated for each of the multiple member tunnels of the above ECMP group.
  • the execution device can set path information for the target objects in these paths, and the target objects can be links in the path, network devices in the path, or networks in the path Device communication interface.
  • the communication interface of the network device in the path can be the input interface of the network device in the path, or the output interface of the network device in the path. It should be noted that the communication interface of the network device in the path only includes the link The interface connected to the path does not include the interfaces of other links not connected to the path in the network equipment of the path.
  • the path information is only valid for members of the ECMP group. That is, when planning specific traffic transmission paths for the above multiple tunnels, these path information can be used as marks to plan different tunnels on different transmission paths as much as possible.
  • the above 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, and each network device in the path or the interface identifier of each network device communication interface in the path, etc.
  • the foregoing path information includes a cost value of each link in the path.
  • the execution device calculates and obtains the traffic transmission path of one of the above multiple tunnels (for convenience of description, hereinafter referred to as the first target path)
  • it can adjust the cost value of each link in the first target path , so that the cost value of each link after adjustment is greater than the cost value before adjustment.
  • the cost value of each link can be adjusted to a cost value that is several times, ten times, tens of times, hundreds of times, thousands of times or tens of thousands of times larger than before adjustment.
  • the size is not limited.
  • the adjusted link cost value in the first target path is only valid when planning the paths of tunnels other than the one tunnel among the above-mentioned multiple tunnels.
  • the link cost value in the first target path The link cost value is still processed according to the link cost value before adjustment. That is, when calculating the traffic transmission path of other tunnels that are load-balanced with the certain tunnel, because the link cost value of the first destination path is relatively large, and based on the principle of the shortest path algorithm, the execution device will bypass the cost value larger link, so that the other tunnel is planned on a path disjoint with the first target path.
  • FIG. 5A and FIG. 5B by way of example.
  • a tunnel ECMP group including two tunnels is created between network device B and network device I for load sharing the traffic between the two devices.
  • the execution device calculates the specific transmission path of the first tunnel to obtain the path: network device B ⁇ network device G ⁇ network device I.
  • the execution device can adjust the cost value of the link in the path, for example, increase the cost value of each link in the path by 10000, and the adjusted link cost value can be seen in Figure 5B.
  • the execution device calculates the transmission path of the second tunnel, based on the principle of the shortest path, the link cost value in the path network device B ⁇ network device G ⁇ network device I is very large , the execution device will avoid the path, so the calculated transmission path of the second tunnel is: network device B ⁇ network device C ⁇ network device E ⁇ network device I. In this way, the transmission paths of two different member tunnels in the load-sharing ECMP group are planned on different paths.
  • the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint.
  • multiple links may be configured between two network devices, in this case, although the links in the two paths do not intersect, the network devices in the two paths may intersect.
  • the foregoing path information includes a link priority of each link in the path.
  • the execution device may adjust the link priority of each link in the first target path, so that the link priority of each link after adjustment is lower than that before adjustment. link priority.
  • the link priority of each link can be adjusted to one level, two levels or three levels lower than before the adjustment, and this application does not make any specific adjustments to the priority levels limit.
  • the adjusted link priority is not the lowest level of link priority. If the link priority of the first target path is adjusted to the lowest level of link priority, it may make the first target path The links in the ECMP group are no longer available when calculating the paths of other tunnel members in the ECMP group. At this time, 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 In this case, the paths of other tunnel members in the ECMP group cannot be successfully calculated.
  • the above-mentioned link priority may be determined according to the bandwidth of the link.
  • the greater the bandwidth of the link the higher the priority of the link.
  • the smaller the bandwidth of the link the higher the priority of the link. the lower the grade.
  • Table 1 refers to Table 1 as an example.
  • Table 1 exemplarily shows 6 levels of link priority, level 1 is the highest link priority, level 6 is the lowest link priority, and levels from 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.
  • the adjusted link priority in the first target path is only valid when planning the paths of tunnels other than the one tunnel in the above-mentioned multiple tunnels.
  • the first target The link priority in the path is still processed according to the link priority before adjustment. That is, when calculating the traffic transmission path of other tunnels that are load-balanced with one of the above tunnels, since the link priority of the first target path is low, and based on the principle of high priority selection, the execution device will bypass this link. A link with a lower link priority, so that the other tunnel is planned on a path disjoint with the first target path.
  • FIG. 6A and FIG. 6B for example.
  • FIG. 6A assuming that the priority of each link is 2, a tunnel ECMP group including two tunnels is created between network device B and network device I for load sharing the traffic between the two devices. Assume that the execution device calculates the specific transmission path of the first tunnel to obtain the path: network device B ⁇ network device G ⁇ network device I. After the path is calculated, the execution device can adjust the priority of the links in the path, for example, increase the priority of each link in the path by 1, and the adjusted link priority can be seen in FIG. 6B .
  • the execution device calculates the transmission path of the second tunnel, based on the principle of high priority selection, since the link in the path network device B ⁇ network device G ⁇ network device I The priority is low, and the execution device will avoid this path, so the calculated transmission path of the second tunnel is another path, for example, the other path is: network device B ⁇ network device C ⁇ network device E ⁇ network equipment I. In this way, the transmission paths of two different member tunnels in the load-sharing ECMP group are planned on different paths.
  • the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint.
  • multiple links may be configured between two network devices, in this case, although the links in the two paths do not intersect, the network devices in the two paths may intersect.
  • the path information includes a link identifier of each link in the path.
  • a link identifier may be set for each link in the first target path.
  • the function of the link identifier is to indicate that the link with the link identifier set is occupied by the above-mentioned ECMP group.
  • the link identifier can be any user-defined identifier, such as a certain character, a certain number or a certain letter, etc. , this application does not limit the specific link identifier.
  • the link identifier set by the link in the first target path is only valid when planning the traffic transmission path of other tunnels that are load-balanced by the above-mentioned certain tunnel. That is, when planning the traffic transmission path of the other tunnel, the execution device will bypass the link for which the link identifier is set, so as to plan the other tunnel on a path disjoint with the first target path.
  • FIG. 7A and FIG. 7B by way of example.
  • FIG. 7A it is assumed that a tunnel ECMP group including two tunnels is created between network device B and network device I for load sharing traffic between the two devices.
  • the execution device calculates the specific transmission path of the first tunnel to obtain the path: network device B ⁇ network device G ⁇ network device I.
  • the executing device may set an identifier for the link in the path, the identifier may be Z, for example, and refer to FIG. 7B for the link after the identifier is set.
  • the execution device After setting the link ID, when the execution device calculates the transmission path of the second tunnel, based on the already set link ID, it knows that the link with the link ID set has been occupied by the above-mentioned ECMP group, and the execution device will avoid The identified link is set, so that the calculated transmission path of the second tunnel is another path, for example, the other path is: network device B ⁇ network device C ⁇ network device E ⁇ network device I. In this way, the transmission paths of two different member tunnels in the load-sharing ECMP group are planned on different paths.
  • the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint.
  • multiple links may be configured between two network devices, in this case, although the links in the two paths do not intersect, the network devices in the two paths may intersect.
  • the foregoing path information includes a device identifier of each network device in the path.
  • an identifier may be set for each network device in the first target path.
  • the role of this logo is to indicate that the network device with this logo is occupied by the above-mentioned ECMP group.
  • This logo can be any self-defined logo, such as a certain character, a certain number or a certain letter, etc.
  • the identification of the network device is not limited.
  • the identifier set by the network device in the first target path is only valid when planning traffic transmission paths of other tunnels that are load-balanced by the above-mentioned certain tunnel. That is, when planning the traffic transmission path of the other tunnel, the execution device will bypass the network device for which the identifier is set, so as to plan the other tunnel on a path disjoint with the first target path.
  • the disjointness of two paths realized in this embodiment actually means that the network devices in the two paths are disjoint or the nodes in the paths are disjoint .
  • Two paths with disjoint nodes must have disjoint links.
  • the path information includes an interface identifier of each network device communication interface in the path.
  • the network device communication interface is an inbound interface of a network device in the path
  • an interface identifier can be set for each inbound interface of the network device in the first target path, for convenience description, the interface identifier may be referred to as the first interface identifier.
  • the role of the first interface identifier is to indicate that the inbound interface of the network device for which the identifier is set is occupied by the above-mentioned ECMP group.
  • the first interface identifier can be any custom identifier, such as a certain character, a certain number or a certain letter Etc., this application does not limit the identification of specific network device ingress interfaces.
  • the ingress interface of the network device is the ingress interface of the traffic transmitted through the first target path on the network device.
  • the first interface identifier set by the inbound interface of the network device in the first target path is only valid when planning the traffic transmission path of other tunnels that are load-balanced by the above-mentioned certain tunnel. That is, when planning the traffic transmission path of the other tunnel, the execution device will bypass the inbound interface of the network device for which the first interface identifier is set, so as to plan the other tunnel on a path disjoint with the first target path.
  • an interface identifier may be set for each outgoing interface of the network device in the first target path.
  • the interface identifier of the outgoing interface of the network device may be the same as or different from the first interface identifier of the incoming interface of the network device.
  • the interface identifier of the outgoing interface of the network device may be referred to as the second interface identifier.
  • the function of the second interface identifier is to indicate that the outbound interface of the network device with the identifier set is occupied by the above-mentioned ECMP group.
  • the identifier can be any custom identifier, such as a certain character, a certain number or a certain letter, etc. This application does not limit the identification of the specific outgoing interface of the network device.
  • the outbound interface of the network device is an outbound interface on the network device for traffic transmitted through the first target path.
  • the second interface identifier set by the outbound interface of the network device in the first target path is only valid when planning the traffic transmission path of other tunnels that are load balanced by the above-mentioned certain tunnel. That is, when planning the traffic transmission path of the other tunnel, the execution device will bypass the outgoing interface of the network device with the second interface identifier set, so as to plan the other tunnel on a path disjoint with the first target path.
  • the disjointness of two paths realized in this embodiment is actually the The links are disjoint.
  • multiple communication interfaces may be configured between two network devices, that is, there are multiple links correspondingly connected, in this case, although the links in the two paths do not intersect, the two paths Network devices in may intersect.
  • the path disjoint among the tunnel members of the above-mentioned ECMP group may be best-effort disjoint, that is, when the paths among the tunnel members of multiple ECMP groups must intersect, for example,
  • the multiple paths can only pass through a certain link or network device to reach the destination address, and if there is no other link or network device to replace, the multiple paths can pass through the certain link or network device together, but In addition, other links or network devices in the plurality of paths are no longer intersected.
  • the above path information is set in the specific traffic transmission paths corresponding to the multiple tunnels created between the above first network device and the second network device.
  • the multiple tunnels include a first tunnel, and the first tunnel forwards traffic of the first network device to the second network device based on the first path.
  • the execution device may perform rerouting calculation to recalculate a normal communication path for the first tunnel.
  • the execution device may avoid each path based on the path information in each path corresponding to the tunnels except the first tunnel among the above multiple tunnels, and recalculate the traffic transmission path of the first tunnel to obtain the second tunnel.
  • two paths so that the second path is disjoint to each path corresponding to other tunnels in the plurality of tunnels except the first tunnel.
  • at least one of the target objects in the second path is not configured with the above path information.
  • the path information in each path includes the link cost of each link in each path; then, the executing device may avoid For each link, multiple links passed by the second path are obtained through calculation.
  • the path information in each path includes the link cost of each link in each path; then, the executing device may avoid For each link, multiple links passed by the second path are obtained through calculation.
  • the path information in each path includes the link priority of each link in each path; then, the execution device may base on the link priority of each link , avoiding each link, and calculating multiple links passed by the above-mentioned second path.
  • the execution device may base on the link priority of each link , avoiding each link, and calculating multiple links passed by the above-mentioned second path.
  • the path information in each path includes a link identifier of each link in each path; then, the executing device may, based on the link identifier of each link, avoid Each link is opened, and multiple links passed by the above-mentioned second path are obtained through calculation.
  • the executing device may, based on the link identifier of each link, avoid Each link is opened, and multiple links passed by the above-mentioned second path are obtained through calculation.
  • the path information in each path includes an identifier of each network device in each path; then, the executing device may, based on the identifier of each network device in each path, By avoiding each network device in each path, a plurality of network devices passed by the above-mentioned second path are obtained through calculation.
  • the executing device may, based on the identifier of each network device in each path, By avoiding each network device in each path, a plurality of network devices passed by the above-mentioned second path are obtained through calculation.
  • the path information in each path includes the first interface identifier of each network device ingress interface in each path; then, the executing device may The first interface identifier of the incoming interface of the network device avoids each incoming interface of the network device in each path, and calculates a plurality of incoming interfaces of the network equipment that the second path passes through.
  • the path information in each path includes the second interface identifier of the outgoing interface of each network device in each path; then, the executing device may The second interface identifier of the outgoing interface of the network device avoids the outgoing interface of each network device in each path, and calculates the multiple outgoing interfaces of the network device that the second path passes through.
  • the executing device may The second interface identifier of the outgoing interface of the network device avoids the outgoing interface of each network device in each path, and calculates the multiple outgoing interfaces of the network device that the second path passes through.
  • the second path is disjoint to each path, which may be that the second path is disjoint to links between each path, or the second path is disjoint to nodes between each path , or, the second path is disjoint with links and nodes between each path, or, the second path is best-effort disjoint with each path.
  • the second path is disjoint to each path, which may be that the second path is disjoint to links between each path, or the second path is disjoint to nodes between each path , or, the second path is disjoint with links and nodes between each path, or, the second path is best-effort disjoint with each path.
  • the execution device calculates and obtains the above-mentioned second path, it reroutes the above-mentioned first tunnel to the second path, that is, continues to forward traffic through the second path, and quickly restores the smooth transmission of network traffic, and because the The second path is not intersected with the paths of other tunnels, so that the load of the network can be better shared, the network congestion can be alleviated, the speed of network traffic forwarding can be increased, and the performance of the network can be improved.
  • the execution device may also set path information for the second path.
  • path information setting refer to the foregoing description, and details are not repeated here.
  • Such a design can make subsequent planning of a new tunnel path between the first network device and the second network device, based on the information of the second path, plan the new tunnel path to a location disjoint with the second path. on the path.
  • FIG. 8 refers to FIG. 8 as an example.
  • the execution device may first plan a tunnel path, assuming that the path obtained through planning is the path 1 above. Then, the execution device sets the path information for the path 1.
  • the path 2 is: node 3 ⁇ node 9 ⁇ node 10 ⁇ node 6 ⁇ node 4 ⁇ (link d) node 2 ⁇ (link a) node 1 .
  • the present application solves the problem of network congestion after a failure by planning a path disjoint with the existing ECMP member's path after a path failure occurs in the tunnel.
  • the constrained path still needs to be taken after a failure, and cannot be rerouted to other feasible paths, resulting in service interruption and reducing network reliability. Routing to another equal-cost path realizes load sharing of traffic and reduces network congestion.
  • each device includes a corresponding hardware structure and/or software module for performing each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software drives hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
  • the embodiments of the present application may divide the device into functional modules according to the above method example, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules. It should be noted that the division of modules in this embodiment of the present application is schematic, and is only a logical function division, and there may be other division methods in actual implementation.
  • FIG. 9 shows a schematic diagram of a possible logical structure of the device.
  • the device may be the above-mentioned execution device, or may be a chip in the execution device, or may be the Execute the processing system in the device, etc.
  • the apparatus 900 includes a configuration unit 901 , a calculation unit 902 and a rerouting unit 903 . in:
  • the configuration unit 901 is configured to configure a tunnel equivalent multipath ECMP group for traffic load balancing on the first network device, wherein members of the tunnel ECMP group are composed of multiple tunnels, and the multiple tunnels include the first tunnel, The first tunnel forwards traffic to the destination address based on the first path; the configuration unit 901 may perform the configuration operation described in step S401 shown in FIG. 4 .
  • the calculation unit 902 is configured to calculate a second path according to the path information of each path passed by each of the multiple tunnels except the first tunnel when the first path fails, and the second path The path is disjoint to each other path; the calculation unit 902 may perform the calculation operation described in step S402 shown in FIG. 4 .
  • the rerouting unit 903 is configured to reroute the first tunnel to the second path; the rerouting unit 903 may perform the rerouting operation described in step S403 shown in FIG. 4 .
  • the above-mentioned second path is disjoint with each other path, and includes at least one of the following:
  • the second path and each of the other paths are both link and node disjoint
  • the second path and each of the other paths are best effort disjoint.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the above path information includes at least one of the following:
  • the device identifier of each network device in each of the other paths where the device identifier of each network device is used to identify that each network device has been occupied by the tunnel ECMP group;
  • An interface identifier of each network device communication interface in each other path where the interface identifier of each network device communication interface is used to identify that each network device communication interface has been occupied by the tunnel ECMP group.
  • the above-mentioned path information includes the link cost of each link
  • the above-mentioned calculation unit 902 is specifically configured to: determine how many times the second path passes through according to the link cost of each link. links.
  • the above-mentioned device further includes a first adjustment unit, configured to adjust the link overhead of each link in the tunnel ECMP group after the tunnel ECMP group is configured, and the adjusted The link cost of each link is greater than the link cost of each link before adjustment.
  • the above-mentioned path information includes the link priority of each link
  • the above-mentioned calculation unit 902 is specifically configured to: according to the link priority of each link, determine multiple links.
  • the above-mentioned device further includes a second adjustment unit, configured to adjust the link priority of each link in the tunnel ECMP group after the tunnel ECMP group is configured, and the adjusted link priority of each link in the tunnel ECMP group The link priority of each link is lower than the link priority of each link before adjustment.
  • the above-mentioned path information includes a link identifier of each link
  • the above-mentioned calculation unit 902 is specifically configured to: determine how many times the second path passes through according to the link identifier of each link. links.
  • the above device further includes a first setting unit, configured to set the link identifier for each link in the tunnel ECMP group after the tunnel ECMP group is configured.
  • the path information includes the device identifier of each network device in each other path
  • the calculation unit 902 is specifically configured to: according to the device identifier of each network device in each other path , to determine a plurality of network devices that the second path passes through.
  • the above device further includes a second setting unit, configured to set the device identifier for each network device of each path in the tunnel ECMP group after the tunnel ECMP group is configured.
  • the path information includes an interface identifier of each network device communication interface in each other path
  • the calculation unit 902 is specifically configured to:
  • the network device communication interface is an incoming interface of a network device in a path
  • the network device communication interface according to the first interface identifier of each incoming interface of a network device in each other path, determine a plurality of network devices that the second path passes through Ingress interface;
  • the network device communication interface is an outgoing interface of the network device in the path
  • the second interface identifier of the outgoing interface of each network device in each of the other paths determine the plurality of network devices that the second path passes through out interface.
  • the above device further includes a third setting unit, configured to:
  • the network device communication interface is the network device ingress interface in the path
  • the tunnel ECMP group after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface passed by each path in the tunnel ECMP group;
  • the network device communication interface is the outgoing interface of the network device in the path
  • the second interface identifier for each outgoing interface of the network device passed by each path in the tunnel ECMP group.
  • FIG. 10 shows a schematic diagram of a possible logical structure of the device.
  • the device may be the above-mentioned execution device, or may be a chip in the execution device, or may be the Execute the processing system in the device, etc.
  • the device 1000 includes a computing unit 1001 and a setting unit 1002 . in:
  • the calculation unit 1001 is configured to calculate the first path passed by the first tunnel between the first network device and the second network device; the calculation unit 1001 can perform the calculation of ECMP group members described in the specific description of step S402 shown in FIG. 4 The operation of the path of the tunnel.
  • the setting unit 1002 is configured to set path information for the target object in the first path, the target object is a link, or the target object is a network device, or the target object is a network device communication interface; the setting unit 1002 can execute the As described in the specific description of step S402 shown in 4, the operation of setting path information for the target object in the path of the ECMP group member tunnel.
  • the calculation unit 1001 is further configured to calculate a second path passed 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 is not set With the path information, the first tunnel and the second tunnel belong to members of a tunnel equivalent cost multipath ECMP group.
  • the above path information is only valid for members in the tunnel ECMP group.
  • the above-mentioned target object is a link
  • the setting unit 1002 is specifically used for:
  • the adjusted link cost of each link in the first path is greater than the link cost of each link in the first path before adjustment Cost, where the path information includes the adjusted link cost of each link in the first path.
  • the above-mentioned target object is a link
  • the above-mentioned setting unit 1002 is specifically configured to:
  • the path information includes the adjusted link priority of each link in the first path.
  • the above-mentioned target object is a link
  • the above-mentioned setting unit 1002 is specifically configured to:
  • the path information includes the link identifier of each link in the first path.
  • the above-mentioned target object is a network device, and the above-mentioned setting unit 1002 is specifically configured to:
  • the path information includes the device identification of each network device in the first path.
  • the above-mentioned target object is a communication interface of a network device, and the above-mentioned setting unit 1002 is specifically used for:
  • a first interface identifier is set for each incoming interface of the network device in the first path, and the incoming interface of each network device in the first path
  • the first interface identifier is used to identify that the incoming interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the first interface identifier of the incoming interface of each network device in the first path ;
  • a second interface identifier is set for each outgoing interface of the network device in the first path, and the outgoing interface of each network device in the first path
  • the second interface identifier is used to identify that the outgoing interface of each network device in the first path has been occupied by the tunnel ECMP group, and the path information includes the second interface identifier of the outgoing interface of each network device in the first path .
  • FIG 11 is a schematic diagram of a possible hardware structure of the device provided by this application.
  • the device may be the execution device described in the above embodiment, or may be a chip in the execution device, or may be a chip in the execution device. processing system, 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 may be connected to each other or through a bus 1104 .
  • the memory 1102 is used to store computer programs and data of the device 1100, and the memory 1102 may include but not limited to random access memory (random access memory, RAM), read-only memory (read-only memory, ROM), and Erase programmable read-only memory (erasable programmable read only memory, EPROM) or portable read-only memory (compact disc read-only memory, CD-ROM), etc.
  • random access memory random access memory
  • ROM read-only memory
  • EPROM erasable programmable read only memory
  • portable read-only memory compact disc read-only memory, CD-ROM
  • the communication interface 1103 includes a sending interface and a receiving interface, and there may be multiple communication interfaces 1103, which are used to support the device 1100 to communicate, for example, to receive or send data or messages.
  • the processor 1101 may be a central processing unit, a general processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof.
  • the processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and the like.
  • the processor 1101 may be configured to read the program stored in the above-mentioned memory 1102, so that the apparatus 1100 executes the operations performed by the executing device in any one of the path planning methods described above in FIG. 4 and its possible embodiments.
  • the processor 1101 may be configured to read the program stored in the above-mentioned memory 1102, and perform the following operations: configure a tunnel equivalent cost multipath ECMP group for traffic load balancing on the first network device, where , the members of the tunnel ECMP group are composed of multiple tunnels, the multiple tunnels include the first tunnel, and the first tunnel forwards traffic to the destination address based on the first path; when the first path fails, according to the multiple tunnels Except for the path information of each other path passed by each tunnel other than the first tunnel, a second path is calculated, and the second path is disjoint with each other path; rerouting the first tunnel to the second path Two paths.
  • the processor 1101 may be configured to read the program stored in the above-mentioned memory 1102, and perform the following operation: calculate the first path passed by the first tunnel between the first network device and the second network device ; Set path information for the target object in the first path, the target object is a link, or the target object is a network device, or the target object is a network device communication interface; calculate the first network device and the second network device based on the path information
  • the first tunnel and the second tunnel belong to a tunnel ECMP group member.
  • the embodiment of the present application also provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and the computer program is executed by a processor to implement the above-mentioned any embodiment in FIG. 4 and its possible method embodiments. perform the operations performed by the device described in the method described above.
  • the embodiment of the present application also provides a computer program product.
  • the computer program product is read and executed by a computer, the execution device in the method described in any one of the above-mentioned FIG. 4 and its possible method embodiments operation will be executed.
  • this application solves the problem of network congestion after a failure by planning a path that is disjoint with the existing path of the ECMP member of the tunnel used for load balancing after the path in the tunnel fails.
  • the existing solution based on constraint planning path still needs to follow the constraint path after failure, and cannot reroute to other feasible paths, resulting in service interruption and reducing network reliability.
  • This application can quickly reroute after path failure To another equal-cost path to achieve load sharing of traffic, reducing network congestion.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种路径规划方法及相关设备,该方法包括:在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,隧道ECMP组的成员由多条隧道组成,多条隧道包括第一隧道,第一隧道基于第一路径向目的地址转发流量(S401);在第一路径发生故障时,根据多条隧道除了第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,第二路径与其它每条路径不相交(S402);将第一隧道重路由到第二路径(S403)。能够缓解网络拥塞。

Description

路径规划方法及相关设备
本申请要求于2021年06月11日提交中国专利局、申请号为202110656450.6、申请名称为“路径规划方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,尤其涉及一种路径规划方法及相关设备。
背景技术
负载均衡(load balance),指的是网络节点在转发流量时,将去往同一个目的地址的负载(流量)分摊到多条链路/路径上进行转发。负载均衡技术由于可以灵活扩展链路资源,提升网络容量,提高网络可靠性,而被广泛应用。按照分担路径类型不同,又可分为Trunk负载均衡、路由负载均衡、隧道负载均衡等。
其中,隧道负载均衡是指虚拟专用网络(virtual private network,VPN)场景下,在入口节点上存在去往同一个目的节点的多条隧道,流量被分担到该多条隧道上进行转发。隧道提供了将一种类型报文封装在另一种类型报文中,使报文能够在异种网络中传输的技术,而封装后的报文传输的通道称为隧道。隧道是构建VPN不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个VPN节点。目前常见的隧道类型,例如标签交换路径(label switched path)和基于约束路由的标签交换路径(constraint-based routed label switched path,CR-LSP)等,都支持隧道负载均衡功能。
负载均衡功能包括等价多路径(equal cost multiple path,ECMP)和非等价多路径(unequal-cost multiple path,UCMP)两种方式。对于ECMP的隧道负载均衡,当参与负载均衡的多个隧道经过同一条路径时,容易造成路径拥堵的问题。
发明内容
本申请公开了一种路径规划方法及相关设备,能够避免负载均衡的多个隧道经过同一条路径,从而缓解了网络的路径拥堵。
第一方面,本申请提供一种路径规划方法,该方法包括:
在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。
可选的,上述第二路径与上述其它每条路径不相交,包括以下至少一项:
该第二路径和该其它每条路径之间链路不相交;
该第二路径和该其它每条路径之间节点不相交;
该第二路径和该其它每条路径之间为链路和节点均不相交;
该第二路径和该其它每条路径之间为尽力而为不相交。
本申请在隧道中的路径出现故障后,通过规划与现有的用于负载均衡的隧道ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,现有的基于约束规划路径的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
在本申请中,限定设置的路径信息只在负载均衡的隧道ECMP组内成员的路径规划时才有晓,可以避免影响其它情况下的路径规划。
一种可能的实施方式中,上述路径信息包括以下至少一项:
上述其它每条路径中的每条链路的链路开销;
该其它每条路径中的每条链路的链路优先级;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算该第二路径,包括:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。
一种可能的实施方式中,在配置上述隧道ECMP组之后,包括:调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的开销调高,从而使得后续规划其它ECMP隧道成员的路径时因开销过大而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算该第二路径,包括:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。
一种可能的实施方式中,在配置该隧道ECMP组之后,包括:调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的优先级调低,从而使得后续规划其它ECMP隧道成员的路径时因优先级过低而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算该第二路径,包括:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述方法还包括:在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个链路设置特定的链路标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定链路标识的链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标 识,上述计算该第二路径,包括:根据该其它每条路径中的每个网络设备的设备标识,确定该第二路径所经过的多个网络设备。
一种可能的实施方式中,上述方法还包括:在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备设置特定的设备标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定设备标识的网络设备,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算该第二路径,包括:在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。
一种可能的实施方式中,上述方法还包括:在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备入接口(或每个网络设备出接口)设置特定的接口标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定接口标识的网络设备入接口(或网络设备出接口),从而实现了将不同的ECMP成员隧道规划到不同路径上。
第二方面,本申请提供一种路径规划方法,该方法包括:
计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;
对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;
基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,所述第一路径和所述第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道均属于隧道等价多路径ECMP组的成员。
本申请通过对已经规划过的路径中的目标对象进行标记,以便于规划其它隧道ECMP组成员的路径时不会规划到相同的路径上,相比于现有方案通过约束来将负载均衡的多个路径规划到不同的传输路径上,本方案既解决了等价路径规划到同一个路径导致的拥塞问题,还不会限制网络重路由的能力,提高了网络的可靠性。
一种可能的实施方式中,上述第一路径与上述第二路径不相交,包括以下至少一项:
该第一路径和该第二路径之间链路不相交;
该第一路径和该第二路径之间节点不相交;
该第一路径和该第二路径之间为链路和节点均不相交;
该第一路径和该第二路径之间为尽力而为不相交。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
在本申请中,限定设置的路径信息只在负载均衡的隧道ECMP组内成员的路径规划时才有晓,可以避免影响其它情况下的路径规划。
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的开销调高,从而使得后续规划其它ECMP隧道成员的路径时因开销过大而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的优先级调低,从而使得后续规划其它ECMP隧道成员的路径时因优先级过低而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个链路设置特定的链路标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定链路标识的链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述目标对象为网络设备,上述对该第一路径中的目标对象设置路径信息,包括:为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备设置特定的设备标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定设备标识的网络设备,从而实现了将不同的ECMP成员隧道规划到不同路径上。
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述对该第一路径中的目标对象设置路径信息,包括:
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备入接口(或每个网络设备出接口)设置特定的接口标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定接口标识的网络设备入接口(或网络设备出接口),从而实现了将不同的ECMP成 员隧道规划到不同路径上。
第三方面,本申请提供一种路径规划设备,该设备包括:
配置单元,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;
计算单元,用于在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;
重路由单元,用于将该第一隧道重路由到该第二路径。
一种可能的实施方式中,上述第二路径与该其它每条路径不相交,包括以下至少一项:
该第二路径和该其它每条路径之间链路不相交;
该第二路径和该其它每条路径之间节点不相交;
该第二路径和该其它每条路径之间为链路和节点均不相交;
该第二路径和该其它每条路径之间为尽力而为不相交。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
一种可能的实施方式中,上述路径信息包括以下至少一项:
上述其它每条路径中的每条链路的链路开销;
该其它每条路径中的每条链路的链路优先级;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算单元具体用于:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第一调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算单元具体用于:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第二调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算单元具体用于:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第一设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标识,上述计算单元具体用于:根据该其它每条路径中的每个网络设备的设备标识,确定该第二路径所经过的多个网络设备。
一种可能的实施方式中,上述设备还包括第二设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算单元具体用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;
在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。
一种可能的实施方式中,上述设备还包括第三设置单元,用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;
在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。
第四方面,本申请提供一种路径规划设备,该设备包括:
计算单元,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;
设置单元,用于对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备的通信接口;
该计算单元,还用于基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,该第一路径和该第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息。其中,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。
一种可能的实施方式中,上述第一路径与上述第二路径不相交,包括以下至少一项:
该第一路径和该第二路径之间链路不相交;
该第一路径和该第二路径之间节点不相交;
该第一路径和该第二路径之间为链路和节点均不相交;
该第一路径和该第二路径之间为尽力而为不相交。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
一种可能的实施方式中,上述目标对象为链路,该设置单元具体用于:
调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。
一种可能的实施方式中,上述目标对象为链路,上述设置单元具体用于:
调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。
一种可能的实施方式中,上述目标对象为链路,上述设置单元具体用于:
为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。
一种可能的实施方式中,上述目标对象为网络设备,上述设置单元具体用于:
为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备 标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述设置单元具体用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。
第五方面,本申请提供一种路径规划设备,该设备可以包括处理器和存储器,用于实现上述第一方面及其可能的实施方式描述的路径规划方法。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以使得该设备实现上述第一方面或第一方面任一种可能的实现方式所述的方法。
该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。该通信接口包括接收接口和发送接口,该接收接口用于接收消息,该发送接口用于发送消息。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是设备、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于设备、单元或模块之间的信息交互。
第六方面,本申请提供一种路径规划设备,该设备可以包括处理器和存储器,用于实现上述第二方面及其可能的实施方式描述的路径规划方法。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以使得该设备实现上述第二方面或第二方面任一种可能的实现方式所述的方法。
该设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。该通信接口包括接收接口和发送接口,该接收接口用于接收消息,该发送接口用于发送消息。
在一种可能的实现中,该设备可以包括:
存储器,用于存储计算机程序;
处理器,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;基于该路径信息计算第一网络设备与第二网络设备之间的第 二隧道经过的第二路径,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是设备、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于设备、单元或模块之间的信息交互。
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面及其可能的实施方式中任意一项所述的方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第二方面及其可能的实施方式中任意一项所述的方法。
第九方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得该计算机执行如上述第一方面任意一项所述的方法。
第十方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得该计算机执行如上述第一方面任意一项所述的方法。
可以理解地,上述提供的第三方面至第六方面所述的设备、第七方面和第八方面所述的计算机存储介质以及第九方面和第十方面所述的计算机程序产品均用于执行第一方面和第二方面中任一项所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1所示为两个网络设备之间隧道负载均衡的一种示意图;
图2所示为ECMP成员隧道的路径示意图;
图3所示为本申请适用的一种网络系统架构示意图;
图4所示为本申请提供的路径规划方法的流程示意图;
图5A和图5B所示为隧道的路径示意图;
图6A和图6B所示为隧道的路径示意图;
图7A和图7B所示为隧道的路径示意图;
图8所示为隧道重路由的路径示意图;
图9和图10所示为本申请提供的装置的逻辑结构示意图;
图11所示为本申请提供的装置的硬件结构示意图。
具体实施方式
下面结合附图对本申请的实施例进行描述。
首先介绍一下本申请需要解决的技术问题以及适用的场景。
参见图1,图1所示为两个网络设备之间隧道负载均衡的一种示意图。图1中可以看到,为了增加流量的传输带宽,可以在网络设备1和网络设备2之间创建多条隧道,该多条隧道可以实现该网络设备1和网络设备2之间的流量的负载分担。
本申请中,网络设备可以是客户端边缘设备(customer edge,CE)、运营商边缘设备(provider edge,PE)和运营商骨干路由器(provider,P)等。网络设备也可以称为网络节点或节点。
具体的,隧道是构建虚拟专用网络(virtual private network,VPN)不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个VPN节点。隧道的创建只需要明确隧道起点和终点的网络设备,隧道具体通过的路径是根据最短路径算法计算得到的。
在具体实现中,上述多条隧道属于等价多路径(equal cost multiple path,ECMP)组的成员。该ECMP是指同一个起始节点到达同一目的地节点有多条等价路径,流量在这些等价路径上平均分配,不会考虑路径带宽的差异;等价路径是指从该起始节点到达该目的地节点的路径开销(cost值)相等的路径。对于上述多个隧道来说,可以将上述网络设备1和网络设备2之间通信的路径抽象为一个链路,该多个隧道的每个隧道都是通过该链路将网络设备1的流量发送到网络设备2,因此,该多个隧道的路径为等价路径,从而该多个隧道属于ECMP组成员。
但是,由于隧道具体通过的路径是根据最短路径算法计算得到,且ECMP组的成员隧道为等价路径,因此,在规划ECMP组成员隧道的路径时,容易将ECMP组的多个成员的路径规划到同一条路径上,这种情况下流量的负载分担功能将被削弱,容易造成路径拥塞。
例如,可以参见图2,图2示例性示出了部分网络结构示意图,在图2中,从网络设备B到网络设备G的路径有两条,第一条路径为:网络设备B→网络设备C→网络设备E→网络设备G,第二条路径为:网络设备B→网络设备D→网络设备F→网络设备G。假设该两条路径不是等价路径,那么,在网络设备B和网络设备G之间创建有两条负载均衡隧道,并且需要为该两条隧道规划路径时,按照最短路径算法计算,该两条隧道的路径将被规划到同一条路径(例如第一条路径)上,如图2所示。这种情况下,网络设备B和网络设备G之间的流量将全部从该第一条路径传输,无法实现流量的负载分担,容易造成该第一路径的拥塞。
现有的方案中可以通过路径约束或者带宽约束的方法将ECMP隧道成员规划到不同的路径上,例如基于约束路由的标签交换路径(constraint-based routed label switched path,CR-LSP)等。但是,这种方案限制了隧道的动态重路由能力,降低网络的可靠性。例如,当约束的路径出现故障后,由于存在路径约束,重路由还是路由到该故障的约束路径,不会重路由到其它未发生故障的路径(限制了重路由能力),这会导致流量传输中断,业务也跟着中断(降低了网络的可靠性)。
为了将隧道ECMP成员的路径规划到不同的路径上,但又不会限制隧道的动态重路由能力,本申请提供了一种路径规划方法。在介绍该方法之前,先示例性介绍一下该方法适用的系统架构,参见图3。图3示例性示出了本申请适用的一种网络系统架构示意图,该系统架构包括多个网络设备,该多个网络设备构成了流量的转发网络,这些网络设备包括客户端边缘设备CE、运营商边缘设备PE和运营商骨干路由器P等设备。
需要说明的是,该系统架构中可通信的两个网络设备之间可以配置有多条链路。
一种可能的实施方式中,图3所示网络系统架构中包括控制器,该控制器可以获知该网络的拓扑视图,从而可以规划网络中流量的转发路径等。示例性地,该控制器可以是软件定义网络(software defined network,SDN)控制器或者操作维护中心(operation and maintenance center,OMC)等。
另一种可能的实施方式中,上述网络系统架构中不包括控制器,那么,流量的转发路径可以通过网络设备基于最短路径算法计算得到。
需要说明的是,上述图3所示系统架构仅为一个示例,本申请提供的路径规划方法适用 的系统架构不限于上述描述的系统架构。
参见图4,示出了本申请提供的路径规划方法,若该方法应用的网络系统架构中包括上述控制器,网络中流量的转发路径由该控制器计算得到,那么该方法的执行主体可以是该控制器;若该方法应用的系统架构中不包括控制器,网络中的流量的转发路径通过网络设备基于最短路径算法计算得到,那么,该方法的执行主体可以是该网络设备。不管具体实现中该方法的执行主体是控制器还是网络设备,下面统一将该方法的执行主体称为执行设备。该方法可以包括但不限于如下步骤:
S401、在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量。
示例性地,该第一网络设备可以是上述系统架构中的任意一个网络设备,上述配置的用于流量负载均衡的多个隧道的终点网络设备可以是该系统架构中的另一个网络设备,可以称为第二网络设备,那么上述目的地址为该第二网络设备的地址。
可选的,上述多个隧道可以由网络系统中的控制器来配置,即执行设备为该控制器。或者,可选的,该多个隧道可以由上述第一网络设备来配置,即执行设备为该第一网络设备。
S402、在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交。
在具体实施例中,上述ECMP组的多个成员隧道中每个隧道都对应计算了一条具体的流量传输路径。具体的,执行设备在计算得到这些传输路径之后,可以为这些路径中的目标对象设置路径信息,该目标对象可以为路径中的链路,或为路径中的网络设备,或为路径中的网络设备通信接口。该路径中的网络设备通信接口可以为该路径中的网络设备入接口,或者为该路径中的网络设备出接口,需要说明的是,该路径中的网络设备通信接口仅包括该路径中的链路连接的接口,不包括该路径的网络设备中其它不连接该路径的链路的接口。
可选的,这些路径信息仅针对该ECMP组内成员有效。即,在为上述多个隧道规划具体的流量传输路径时,可以以这些路径信息为标记,尽可能地将不同的隧道规划到不同的传输路径上。
上述路径信息可以包括以下的至少一项:路径中每条链路的cost值、路径中每条链路的链路优先级、路径中每条链路的链路标识、路径中每个网络设备的标识或者路径中的每个网络设备通信接口的接口标识等。
一种可能的实施方式中,上述路径信息包括路径中每条链路的cost值。具体的,执行设备计算得到上述多个隧道中某一个隧道的流量传输路径(为了便于描述,后面简称为第一目标路径)后,可以调整该第一目标路径中的每条链路的cost值,使得该每条链路调整之后的cost值大于调整之前的cost值。示例性地,可以将该每条链路的cost值调整为比调整前大几倍、十几倍、几十倍、上百倍、上千倍或者上万倍的cost值,本申请对具体调整的大小不做限制。
可选的,该第一目标路径中调整之后的链路cost值只在规划上述多个隧道中该某一个隧道之外的其它隧道的路径时有效,除此之外,该第一目标路径中的链路cost值还是按照调整之前的链路cost值处理。即在计算与该某一个隧道负载均衡的其它隧道的流量传输路径时,由于该第一目标路径的链路cost值较大,而本着最短路径算法的原则,执行设备会绕过该cost值较大的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径上。为了便于理解,可以示例性参见图5A和图5B。
在图5A中,假设每个链路的cost值都是10,网络设备B和网络设备I之间创建了包括 两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。按照最短路径原则,执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以调整该路径中链路的cost值,例如,将该路径中每个链路中的cost值均增加10000,调整后的链路cost值可以参见图5B。调整完该路径的链路cost值后,执行设备再计算第二个隧道的传输路径时,基于最短路径原则,由于路径网络设备B→网络设备G→网络设备I中的链路cost值很大,该执行设备会避开该路径,从而计算得到的该第二个隧道的传输路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。
由于上述实施方式是通过调整链路的cost值来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。
另一种可能的实施方式中,上述路径信息包括路径中每条链路的链路优先级。具体的,执行设备计算得到上述第一目标路径后,可以调整该第一目标路径中的每条链路的链路优先级,使得该每条链路调整之后的链路优先级低于调整之前的链路优先级。示例性地,可以将该每条链路的链路优先级调整为比调整前低一级、两级或者三级等等的链路优先级,本申请对具体调整的优先级级数不做限制。
但是,可选的,调整后的链路优先级不是最低级别的链路优先级,若上述第一目标路径的链路优先级调整为最低级别的链路优先级,可能使得该第一目标路径中的链路在后续计算ECMP组内其它隧道成员的路径时不再可用,这时,若该ECMP组内其它隧道成员的路径中有链路与该第一目标路径中的链路重合的情况下,导致该ECMP组内其它隧道成员的路径无法算路成功。
示例性的,上述链路优先级可以是根据链路的带宽来确定的,链路的带宽越大则该链路的优先级越高,反之,链路的带宽越小则该链路的优先级越低。为了便于理解,可以示例性地参见表1。
表1
链路带宽 链路优先级
200G 1
100G 2
50G 3
25G 4
10G 5
1G 6
表1示例性示出了6个等级的链路优先级,等级1级为最高的链路优先级,等级6级为最低的链路优先级,等级从1级到6级表示链路优先级从最高级到最低级。可以看到,链路带宽越大链路优先级越高,链路带宽越小链路优先级越低。
可选的,该第一目标路径中调整之后的链路优先级只在规划上述多个隧道中的所述某一个隧道之外的其它隧道的路径时有效,除此之外,该第一目标路径中的链路优先级还是按照调整之前的链路优先级处理。即在计算与上述某一个隧道负载均衡的其它隧道的流量传输路径时,由于该第一目标路径的链路优先级较低,而本着优先级高优先选择的原则,执行设备会绕过该链路优先级较低的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径 上。为了便于理解,可以示例性参见图6A和图6B。
在图6A中,假设每个链路的优先级都是2级,网络设备B和网络设备I之间创建了包括两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。假设执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以调整该路径中链路的优先级,例如,将该路径中每个链路中的优先级均增加1级,调整后的链路优先级可以参见图6B。调整完该路径的链路优先级后,执行设备再计算第二个隧道的传输路径时,基于优先级高优先选择的原则,由于路径网络设备B→网络设备G→网络设备I中的链路优先级较低,该执行设备会避开该路径,从而计算得到的该第二个隧道的传输路径为另外一条路径,例如该另外一条路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。
同理,由于上述实施方式是通过调整链路的优先级来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。
另一种可能的实施方式中,上述路径信息包括路径中每条链路的链路标识。具体的,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每条链路设置链路标识。该链路标识的作用即为指示设置了该链路标识的链路被上述ECMP组占用,该链路标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的链路标识不做限制。
可选的,该第一目标路径中的链路设置的该链路标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该链路标识的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径上。为了便于理解,可以示例性参见图7A和图7B。
在图7A中,假设网络设备B和网络设备I之间创建了包括两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。假设执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以为该路径中链路的设置标识,该标识例如可以为Z,设置标识后的链路可以参见图7B。设置完链路标识后,执行设备再计算第二个隧道的传输路径时,基于已经设置的链路标识,获知设置了链路标识的链路已经被上述ECMP组占用,该执行设备会避开设置了标识的链路,从而计算得到的该第二个隧道的传输路径为另外一条路径,例如该另外一条路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。
同理,由于上述实施方式是通过设置链路标识来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。
另一种可能的实施方式中,上述路径信息包括路径中每个网络设备的设备标识。具体的,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备设置标识。该标识的作用即为指示设置了该标识的网络设备被上述ECMP组占用,该标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备的标识不 做限制。
可选的,该第一目标路径中的网络设备设置的该标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该标识的网络设备,从而将该其它隧道规划到与该第一目标路径不相交的路径上。
由于上述实施方式是通过对网络设备设置标识来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的网络设备不相交或者说路径中的节点不相交。节点不相交的两条路径,链路一定不相交。
另一种可能的实施方式中,上述路径信息包括路径中的每个网络设备通信接口的接口标识。在该网络设备通信接口为路径中的网络设备入接口的情况下,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备入接口设置接口标识,为了便于描述,可以称该接口标识为第一接口标识。该第一接口标识的作用即为指示设置了该标识的网络设备入接口被上述ECMP组占用,该第一接口标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备入接口的标识不做限制。该网络设备入接口为通过该第一目标路径传输的流量在该网络设备上的入接口。
可选的,该第一目标路径中的网络设备入接口设置的该第一接口标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该第一接口标识的网络设备入接口,从而将该其它隧道规划到与该第一目标路径不相交的路径上。
在该网络设备通信接口为路径中的网络设备出接口的情况下,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备出接口设置接口标识。该网络设备出接口的接口标识可以与上述网络设备入接口的第一接口标识相同或者不同,为了便于区分,本申请中,可以将该网络设备出接口的接口标识称为第二接口标识。该第二接口标识的作用即为指示设置了该标识的网络设备出接口被上述ECMP组占用,该标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备出接口的标识不做限制。该网络设备出接口为通过该第一目标路径传输的流量在该网络设备上的出接口。
可选的,该第一目标路径中的网络设备出接口设置的该第二接口标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该第二接口标识的网络设备出接口,从而将该其它隧道规划到与该第一目标路径不相交的路径上。
由于上述实施方式是通过对网络设备通信接口设置接口标识来避免路径相交,一个通信接口连接的是一条链路,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多个通信接口,即对应连接有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。
一种可能的实施方式中,上述的ECMP组的隧道成员中的路径不相交可以是尽力而为不相交,即当多个ECMP组的隧道成员中的路径中必须有相交的情况下,例如,该多个路径只能通过某一个链路或者网络设备才能到达目的地址,而没有其它链路或者网络设备可替代的情况下,该多个路径可以共同通过该某一个链路或者网络设备,但除此之外,该多个路径中的其它链路或网络设备不再相交。
基于上述的描述,上述第一网络设备和第二网络设备之间创建的多个隧道对应的具体的流量传输路径中均设置有上述路径信息。基于上述步骤S401的描述,该多个隧道中包括第一 隧道,该第一隧道是基于第一路径来将第一网络设备的流量转发到上述第二网络设备。在该第一路径出现故障时,执行设备可以进行重路由计算重新为该第一隧道计算一条可以正常通信的路径。
具体的,执行设备可以基于上述多个隧道中除了该第一隧道以外的其它隧道对应的每条路径中的路径信息,避开该每条路径,重新计算该第一隧道的流量传输路径得到第二路径,从而使得该第二路径与该多个隧道中除了第一隧道以外的其它隧道对应的每条路径不相交。具体的,该第二路径中的目标对象中至少有一个目标对象未设置有上述路径信息。
一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路开销;那么,执行设备可以基于该每条链路的链路开销,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图5A和图5B对应的描述,此处不再赘述。
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路优先级;那么,执行设备可以基于该每条链路的链路优先级,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图6A和图6B对应的描述,此处不再赘述。
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路标识;那么,执行设备可以基于该每条链路的链路标识,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图7A和图7B对应的描述,此处不再赘述。
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备的标识;那么,执行设备可以基于该每条路径中的每个网络设备的标识,避开该每条路径中的每个网络设备,计算得到上述第二路径所经过的多个网络设备。具体的实现过程可以参考前述的描述,此处不再赘述。
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备入接口的第一接口标识;那么,执行设备可以基于该每条路径中的每个网络设备入接口的第一接口标识,避开该每条路径中的每个网络设备入接口,计算得到上述第二路径所经过的多个网络设备入接口。具体的实现过程可以参考前述的描述,此处不再赘述。
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备出接口的第二接口标识;那么,执行设备可以基于该每条路径中的每个网络设备出接口的第二接口标识,避开该每条路径中的每个网络设备出接口,计算得到上述第二路径所经过的多个网络设备出接口。具体的实现过程可以参考前述的描述,此处不再赘述。
可选的,该第二路径与该每条路径不相交,可以是该第二路径与该每条路径之间链路不相交,或者,该第二路径与该每条路径之间节点不相交,或者,该第二路径与该每条路径之间链路和节点均不相交,或者,该第二路径与该每条路径之间尽力而为不相交。关于具体不相交的描述可以参见前面内容的描述,此处不再赘述。
S403、将该第一隧道重路由到该第二路径。
具体实施例中,执行设备计算得到上述第二路径后,将上述第一隧道重路由到该第二路径,即通过该第二路径继续转发流量,快速恢复了网络流量的畅通传输,且由于该第二路径与上述其它隧道的路径不相交,从而可以更好的负载分担网络的流量,减轻网络拥塞,提高网络流量转发的速度,进而提升了网络的性能。
一种可能的实施方式中,执行设备计算得到上述第二路径后,也可以为该第二路径设置路径信息,具体路径信息的设置可以参见前面的描述,此处不再赘述。这么设计可以使得后续继续规划第一网络设备和第二网络设备之间新的隧道路径时,也可以基于该第二路径的信息,将该新的隧道路径规划到与该第二路径不相交的路径上。为了便于理解,可以示例性参见图8。
在图8所示的网络结构中,假设多个业务流量先汇聚到节点3,节点3和节点1之间创建了用于负载均衡的包括两条成员隧道的ECMP组,初始规划的该两条隧道的路径分别为节点3和节点1之间的两条链路。但是,当该节点3和节点1之间的两链路出现故障后,会触发从节点3到节点1之间的两个ECMP成员隧道重路由,现有的方案中,按照最短路径算法,进行重路由计算之后的该两个隧道均重路由到同一条路径上,该路径例如为路径1:节点3→节点5→节点7→节点8→节点4→(链路c)节点2→(链路b)节点1,如图8中所示路径1。这种情况下,两个隧道的流量均通过该路径转发,失去了负载分担的功能,容易造成该路径的拥塞。而采用本申请提供的路由规划方法,执行设备可以先规划一个隧道的路径,假设规划得到的路径为上述路径1。然后,执行设备为该路径1设置路径信息,具体的设置可以参见前述的描述,此处不再赘述。然后,再规划另一个隧道的路径,执行设备可以基于设置的路径1的路径信息,尽可能地绕开该路径1,规划得到如图8中所示的路径2。该路径2为:节点3→节点9→节点10→节点6→节点4→(链路d)节点2→(链路a)节点1。
需要说明的是,虽然上述图8中的路径1和路径2都经过节点4和节点2,但具体走的链路不同,所以该路径1和路径2是链路不相交的两条路径。假设,节点1和节点2之间只有一条链路,此时,路径1和路径2都会经过该链路,但由于路径1和路径2之间其它的链路均不相交,因此,也可以说该路径1和路径2为链路尽力而为不相交的两条路径。
综上所述,本申请在隧道中的路径出现故障后,通过规划与现有的ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,相比于现有的约束规划的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。
上述主要对本申请实施例提供的路径规划方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本文中所公开的实施例描述的各示例的单元及步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了装置的一种可能的逻辑结构示意图,该装置可以是上述执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置900包括配置单元901、计算单元902和重路由单元903。其 中:
配置单元901,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;配置单元901可以执行图4所示的步骤S401中所述的配置操作。
计算单元902,用于在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;计算单元902可以执行图4所示的步骤S402中所述的计算操作。
重路由单元903,用于将该第一隧道重路由到该第二路径;重路由单元903可以执行图4所示的步骤S403中所述的重路由操作。
一种可能的实施方式中,上述第二路径与该其它每条路径不相交,包括以下至少一项:
该第二路径和该其它每条路径之间链路不相交;
该第二路径和该其它每条路径之间节点不相交;
该第二路径和该其它每条路径之间为链路和节点均不相交;
该第二路径和该其它每条路径之间为尽力而为不相交。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
一种可能的实施方式中,上述路径信息包括以下至少一项:
上述其它每条路径中的每条链路的链路开销;
该其它每条路径中的每条链路的链路优先级;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算单元902具体用于:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第一调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算单元902具体用于:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第二调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算单元902具体用于:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。
一种可能的实施方式中,上述设备还包括第一设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标识,上述计算单元902具体用于:根据该其它每条路径中的每个网络设备的设备标识,确定 该第二路径所经过的多个网络设备。
一种可能的实施方式中,上述设备还包括第二设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算单元902具体用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;
在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。
一种可能的实施方式中,上述设备还包括第三设置单元,用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;
在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。
图9所示装置900中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图10示出了装置的一种可能的逻辑结构示意图,该装置可以是上述执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置1000包括计算单元1001和设置单元1002。其中:
计算单元1001,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;计算单元1001可以执行图4所示步骤S402的具体描述中所述的计算ECMP组成员隧道的路径的操作。
设置单元1002,用于对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;设置单元1002可以执行图4所示步骤S402的具体描述中所述的,为ECMP组成员隧道的路径中的目标对象设置路径信息的操作。
该计算单元1001,还用于基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。
一种可能的实施方式中,上述目标对象为链路,该设置单元1002具体用于:
调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。
一种可能的实施方式中,上述目标对象为链路,上述设置单元1002具体用于:
调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。
一种可能的实施方式中,上述目标对象为链路,上述设置单元1002具体用于:
为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于 标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。
一种可能的实施方式中,上述目标对象为网络设备,上述设置单元1002具体用于:
为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述设置单元1002具体用于:
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。
图10所示装置1000中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。
图11所示为本申请提供的装置的一种可能的硬件结构示意图,该装置可以是上述实施例所述的执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置1100包括:处理器1101、存储器1102和通信接口1103。处理器1101、通信接口1103以及存储器1102可以相互连接或者通过总线1104相互连接。
示例性的,存储器1102用于存储装置1100的计算机程序和数据,存储器1102可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
通信接口1103包括发送接口和接收接口,通信接口1103的个数可以为多个,用于支持装置1100进行通信,例如接收或发送数据或消息等。
示例性的,处理器1101可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1101可以用于读取上述存储器1102中存储的程序,使得装置1100执行如上述图4及其可能的实施例中所述的任一种路径规划方法中所述执行设备所做的操作。
一种可能的实施方式中,处理器1101可以用于读取上述存储器1102中存储的程序,执行如下操作:在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。
另一种可能的实施方式中,处理器1101可以用于读取上述存储器1102中存储的程序,执行如下操作:计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,其中,该第一路径和该第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息。该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。
图11所示装置1100中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述图4及其可能的方法实施例中任一实施例所述方法中所述执行设备所做的操作。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述图4及其可能的方法实施例中任一实施例所述方法中所述执行设备所做的操作将被执行。
综上所述,本申请在隧道中的路径出现故障后,通过规划与现有的用于负载均衡的隧道ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,现有的基于约束规划路径的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (45)

  1. 一种路径规划方法,其特征在于,所述方法包括:
    在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,所述隧道ECMP组的成员由多条隧道组成,所述多条隧道包括第一隧道,所述第一隧道基于第一路径向目的地址转发流量;
    在所述第一路径发生故障时,根据所述多条隧道除了所述第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,所述第二路径与所述其它每条路径不相交;
    将所述第一隧道重路由到所述第二路径。
  2. 根据权利要求1所述的方法,其特征在于,所述第二路径与所述其它每条路径不相交,包括以下至少一项:
    所述第二路径和所述其它每条路径之间链路不相交;
    所述第二路径和所述其它每条路径之间节点不相交;
    所述第二路径和所述其它每条路径之间为链路和节点均不相交;
    所述第二路径和所述其它每条路径之间为尽力而为不相交。
  3. 根据权利要求1或2所述的方法,其特征在于,所述路径信息仅针对所述隧道ECMP组内成员有效。
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述路径信息包括以下至少一项:
    所述其它每条路径中的每条链路的链路开销;
    所述其它每条路径中的每条链路的链路优先级;
    所述其它每条路径中的每条链路的链路标识,所述每条链路的链路标识用于标识所述每条链路已经被所述隧道ECMP组占用;
    所述其它每条路径中的每个网络设备的设备标识,所述每个网络设备的设备标识用于标识所述每个网络设备已经被所述隧道ECMP组占用;
    所述其它每条路径中的每个网络设备通信接口的接口标识,所述每个网络设备通信接口的接口标识用于标识所述每个网络设备通信接口已经被所述隧道ECMP组占用。
  5. 根据权利要求4所述的方法,其特征在于,所述路径信息包括所述每条链路的链路开销,所述计算所述第二路径,包括:
    根据所述每条链路的链路开销,确定所述第二路径所经过的多个链路。
  6. 根据权利要求5所述的方法,其特征在于,在配置所述隧道ECMP组之后,包括:
    调整所述隧道ECMP组中每条链路的链路开销,调整后的所述每条链路的链路开销大于调整前的所述每条链路的链路开销。
  7. 根据权利要求4所述的方法,其特征在于,所述路径信息包括所述每条链路的链路优先级,所述计算所述第二路径,包括:
    根据所述每条链路的链路优先级,确定所述第二路径所经过的多个链路。
  8. 根据权利要求7所述的方法,其特征在于,在配置所述隧道ECMP组之后,包括:
    调整所述隧道ECMP组中每条链路的链路优先级,调整后的所述每条链路的链路优先级小于调整前的所述每条链路的链路优先级。
  9. 根据权利要求4所述的方法,其特征在于,所述路径信息包括所述每个链路的链路标 识,所述计算所述第二路径,包括:
    根据所述每条链路的链路标识,确定所述第二路径所经过的多个链路。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    在配置所述隧道ECMP组之后,为所述隧道ECMP组中的每条链路设置所述链路标识。
  11. 根据权利要求4所述的方法,其特征在于,所述路径信息包括所述其它每条路径中的每个网络设备的设备标识,所述计算所述第二路径,包括:
    根据所述其它每条路径中的每个网络设备的设备标识,确定所述第二路径所经过的多个网络设备。
  12. 根据权利要求11所述的方法,其特征在于,所述方法还包括:
    在配置所述隧道ECMP组之后,为所述隧道ECMP组中每条路径的每个网络设备设置所述设备标识。
  13. 根据权利要求4所述的方法,其特征在于,所述路径信息包括所述其它每条路径中的每个网络设备通信接口的接口标识,所述计算所述第二路径,包括:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,根据所述其它每条路径中的每个网络设备入接口的第一接口标识,确定所述第二路径所经过的多个网络设备入接口;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,根据所述其它每条路径中的每个网络设备出接口的第二接口标识,确定所述第二路径所经过的多个网络设备出接口。
  14. 根据权利要求13所述的方法,其特征在于,所述方法还包括:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,在配置所述隧道ECMP组之后,为所述隧道ECMP组中每条路径经过的每个网络设备入接口设置所述第一接口标识;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,在配置所述隧道ECMP组之后,为所述隧道ECMP组中每条路径经过的每个网络设备出接口设置所述第二接口标识。
  15. 一种路径规划方法,其特征在于,所述方法包括:
    计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径,所述第一隧道为隧道等价多路径ECMP组的成员;
    对所述第一路径中的目标对象设置路径信息,所述目标对象为链路,或所述目标对象为网络设备,或所述目标对象为网络设备的通信接口;
    基于所述路径信息,计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,所述第一路径与所述第二路径不相交,所述第二路径为所述隧道ECMP组的成员。
  16. 根据权利要求15所述的方法,其特征在于,所述路径信息仅针对所述隧道ECMP组内成员有效。
  17. 根据权利要求15或16所述的方法,其特征在于,所述目标对象为链路,所述对所述第一路径中的目标对象设置路径信息,包括:
    调整所述第一路径中的每条链路的链路开销,调整后的所述第一路径中的每条链路的链路开销大于调整前的所述第一路径中的每条链路的链路开销,所述路径信息包括所述调整后的所述第一路径中的每条链路的链路开销。
  18. 根据权利要求15或16所述的方法,其特征在于,所述目标对象为链路,所述对所述第一路径中的目标对象设置路径信息,包括:
    调整所述第一路径中的每条链路的链路优先级,调整后的所述第一路径中的每条链路的链路优先级小于调整前的所述第一路径中的每条链路的链路优先级,所述路径信息包括所述调整后的所述第一路径中的每条链路的链路优先级。
  19. 根据权利要求15或16所述的方法,其特征在于,所述目标对象为链路,所述对所述第一路径中的目标对象设置路径信息,包括:
    为所述第一路径中的每条链路设置链路标识,所述第一路径中的每条链路的所述链路标识用于标识所述第一路径中的每条链路已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每条链路的所述链路标识。
  20. 根据权利要求15或16所述的方法,其特征在于,所述目标对象为网络设备,所述对所述第一路径中的目标对象设置路径信息,包括:
    为所述第一路径中的每个网络设备设置设备标识,所述第一路径中的每个网络设备的所述设备标识用于标识所述第一路径中的每个网络设备已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备的所述设备标识。
  21. 根据权利要求15或16所述的方法,其特征在于,所述目标对象为网络设备通信接口,所述对所述第一路径中的目标对象设置路径信息,包括:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,为所述第一路径中的每个网络设备入接口设置第一接口标识,所述第一路径中的每个网络设备入接口的所述第一接口标识用于标识所述第一路径中的每个网络设备入接口已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备入接口的所述第一接口标识;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,为所述第一路径中的每个网络设备出接口设置第二接口标识,所述第一路径中的每个网络设备出接口的所述第二接口标识用于标识所述第一路径中的每个网络设备出接口已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备出接口的所述第二接口标识。
  22. 一种路径规划设备,其特征在于,所述设备包括:
    配置单元,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,所述隧道ECMP组的成员由多条隧道组成,所述多条隧道包括第一隧道,所述第一隧道基于第一路径向目的地址转发流量;
    计算单元,用于在所述第一路径发生故障时,根据所述多条隧道除了所述第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,所述第二路径与所述其它每条路径不相交;
    重路由单元,用于将所述第一隧道重路由到所述第二路径。
  23. 根据权利要求22所述的设备,其特征在于,所述第二路径与所述其它每条路径不相交,包括以下至少一项:
    所述第二路径和所述其它每条路径之间链路不相交;
    所述第二路径和所述其它每条路径之间节点不相交;
    所述第二路径和所述其它每条路径之间为链路和节点均不相交;
    所述第二路径和所述其它每条路径之间为尽力而为不相交。
  24. 根据权利要求22或23所述的设备,其特征在于,所述路径信息仅针对所述隧道ECMP组内成员有效。
  25. 根据权利要求22-24任一项所述的设备,其特征在于,所述路径信息包括以下至少一项:
    所述其它每条路径中的每条链路的链路开销;
    所述其它每条路径中的每条链路的链路优先级;
    所述其它每条路径中的每条链路的链路标识,所述每条链路的链路标识用于标识所述每 条链路已经被所述隧道ECMP组占用;
    所述其它每条路径中的每个网络设备的设备标识,所述每个网络设备的设备标识用于标识所述每个网络设备已经被所述隧道ECMP组占用;
    所述其它每条路径中的每个网络设备通信接口的接口标识,所述每个网络设备通信接口的接口标识用于标识所述每个网络设备通信接口已经被所述隧道ECMP组占用。
  26. 根据权利要求25所述的设备,其特征在于,所述路径信息包括所述每条链路的链路开销,所述计算单元具体用于:
    根据所述每条链路的链路开销,确定所述第二路径所经过的多个链路。
  27. 根据权利要求26所述的设备,其特征在于,所述设备还包括第一调整单元,用于在配置所述隧道ECMP组之后,
    调整所述隧道ECMP组中每条链路的链路开销,调整后的所述每条链路的链路开销大于调整前的所述每条链路的链路开销。
  28. 根据权利要求25所述的设备,其特征在于,所述路径信息包括所述每条链路的链路优先级,所述计算单元具体用于:
    根据所述每条链路的链路优先级,确定所述第二路径所经过的多个链路。
  29. 根据权利要求28所述的设备,其特征在于,所述设备还包括第二调整单元,用于在配置所述隧道ECMP组之后,
    调整所述隧道ECMP组中每条链路的链路优先级,调整后的所述每条链路的链路优先级小于调整前的所述每条链路的链路优先级。
  30. 根据权利要求25所述的设备,其特征在于,所述路径信息包括所述每个链路的链路标识,所述计算单元具体用于:
    根据所述每条链路的链路标识,确定所述第二路径所经过的多个链路。
  31. 根据权利要求30所述的设备,其特征在于,所述设备还包括第一设置单元,用于在配置所述隧道ECMP组之后,为所述隧道ECMP组中的每条链路设置所述链路标识。
  32. 根据权利要求25所述的设备,其特征在于,所述路径信息包括所述其它每条路径中的每个网络设备的设备标识,所述计算单元具体用于:
    根据所述其它每条路径中的每个网络设备的设备标识,确定所述第二路径所经过的多个网络设备。
  33. 根据权利要求32所述的设备,其特征在于,所述设备还包括第二设置单元,用于在配置所述隧道ECMP组之后,为所述隧道ECMP组中每条路径的每个网络设备设置所述设备标识。
  34. 根据权利要求25所述的设备,其特征在于,所述路径信息包括所述其它每条路径中的每个网络设备通信接口的接口标识,所述计算单元具体用于:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,根据所述其它每条路径中的每个网络设备入接口的第一接口标识,确定所述第二路径所经过的多个网络设备入接口;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,根据所述其它每条路径中的每个网络设备出接口的第二接口标识,确定所述第二路径所经过的多个网络设备出接口。
  35. 根据权利要求34所述的设备,其特征在于,所述设备还包括第三设置单元,用于:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,在配置所述隧道ECMP组之后,为所述隧道ECMP组中每条路径经过的每个网络设备入接口设置所述第一接口标识;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,在配置所述隧道ECMP 组之后,为所述隧道ECMP组中每条路径经过的每个网络设备出接口设置所述第二接口标识。
  36. 一种路径规划设备,其特征在于,所述设备包括:
    计算单元,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径,所述第一隧道属于隧道等价多路径ECMP组的成员;
    设置单元,用于对所述第一路径中的目标对象设置路径信息,所述目标对象为链路,或所述目标对象为网络设备,或所述目标对象为网络设备的通信接口;
    所述计算单元,还用于基于所述路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,所述第一路径与所述第二路径不相交,所述第二隧道属于所述隧道ECMP组的成员。
  37. 根据权利要求36所述的设备,其特征在于,所述路径信息仅针对所述隧道ECMP组内成员有效。
  38. 根据权利要求36或37所述的设备,其特征在于,所述目标对象为链路,所述设置单元具体用于:
    调整所述第一路径中的每条链路的链路开销,调整后的所述第一路径中的每条链路的链路开销大于调整前的所述第一路径中的每条链路的链路开销,所述路径信息包括所述调整后的所述第一路径中的每条链路的链路开销。
  39. 根据权利要求36或37所述的设备,其特征在于,所述目标对象为链路,所述设置单元具体用于:
    调整所述第一路径中的每条链路的链路优先级,调整后的所述第一路径中的每条链路的链路优先级小于调整前的所述第一路径中的每条链路的链路优先级,所述路径信息包括所述调整后的所述第一路径中的每条链路的链路优先级。
  40. 根据权利要求36或37所述的设备,其特征在于,所述目标对象为链路,所述设置单元具体用于:
    为所述第一路径中的每条链路设置链路标识,所述第一路径中的每条链路的所述链路标识用于标识所述第一路径中的每条链路已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每条链路的所述链路标识。
  41. 根据权利要求36或37所述的设备,其特征在于,所述目标对象为网络设备,所述设置单元具体用于:
    为所述第一路径中的每个网络设备设置设备标识,所述第一路径中的每个网络设备的所述设备标识用于标识所述第一路径中的每个网络设备已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备的所述设备标识。
  42. 根据权利要求36或37所述的设备,其特征在于,所述目标对象为网络设备通信接口,所述设置单元具体用于:
    在所述网络设备通信接口为路径中的网络设备入接口的情况下,为所述第一路径中的每个网络设备入接口设置第一接口标识,所述第一路径中的每个网络设备入接口的所述第一接口标识用于标识所述第一路径中的每个网络设备入接口已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备入接口的所述第一接口标识;
    在所述网络设备通信接口为路径中的网络设备出接口的情况下,为所述第一路径中的每个网络设备出接口设置第二接口标识,所述第一路径中的每个网络设备出接口的所述第二接口标识用于标识所述第一路径中的每个网络设备出接口已经被所述隧道ECMP组占用,所述路径信息包括所述第一路径中的每个网络设备出接口的所述第二接口标识。
  43. 一种路径规划设备,其特征在于,包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述设备执行如权利要求1-14任一项所述的方法;或者,所述处理器用于调用所述计算机程序,以使得所述设备执行如权利要求15-21任一项所述的方法。
  44. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-21任意一项所述的方法。
  45. 一种计算机程序产品,包括计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现权利要求1-21任意一项所述的方法。
PCT/CN2022/097358 2021-06-11 2022-06-07 路径规划方法及相关设备 WO2022257917A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110656450.6A CN115468572A (zh) 2021-06-11 2021-06-11 路径规划方法及相关设备
CN202110656450.6 2021-06-11

Publications (1)

Publication Number Publication Date
WO2022257917A1 true WO2022257917A1 (zh) 2022-12-15

Family

ID=84365020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/097358 WO2022257917A1 (zh) 2021-06-11 2022-06-07 路径规划方法及相关设备

Country Status (2)

Country Link
CN (1) CN115468572A (zh)
WO (1) WO2022257917A1 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067532A1 (en) * 2007-03-27 2010-03-18 Kddi Corporation Communication Path Control System, Program, and Storage Medium Therefor
CN101953124A (zh) * 2008-02-15 2011-01-19 思科技术公司 在数据通信网络中构造绕过多条不可用链路的修复路径
CN105634973A (zh) * 2014-10-30 2016-06-01 华为数字技术(苏州)有限公司 基于负载均衡的路由方法和设备
US9923798B1 (en) * 2012-06-28 2018-03-20 Juniper Networks, Inc. Dynamic load balancing of network traffic on a multi-path label switched path using resource reservation protocol with traffic engineering
US10237206B1 (en) * 2017-03-05 2019-03-19 Barefoot Networks, Inc. Equal cost multiple path group failover for multicast
CN110417569A (zh) * 2018-04-28 2019-11-05 华为技术有限公司 一种网络链路故障处理方法和隧道端点设备
CN110986979A (zh) * 2019-11-27 2020-04-10 浙江工商大学 一种基于强化学习的sdn多路径路由规划方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067532A1 (en) * 2007-03-27 2010-03-18 Kddi Corporation Communication Path Control System, Program, and Storage Medium Therefor
CN101953124A (zh) * 2008-02-15 2011-01-19 思科技术公司 在数据通信网络中构造绕过多条不可用链路的修复路径
US9923798B1 (en) * 2012-06-28 2018-03-20 Juniper Networks, Inc. Dynamic load balancing of network traffic on a multi-path label switched path using resource reservation protocol with traffic engineering
CN105634973A (zh) * 2014-10-30 2016-06-01 华为数字技术(苏州)有限公司 基于负载均衡的路由方法和设备
US10237206B1 (en) * 2017-03-05 2019-03-19 Barefoot Networks, Inc. Equal cost multiple path group failover for multicast
CN110417569A (zh) * 2018-04-28 2019-11-05 华为技术有限公司 一种网络链路故障处理方法和隧道端点设备
CN110986979A (zh) * 2019-11-27 2020-04-10 浙江工商大学 一种基于强化学习的sdn多路径路由规划方法

Also Published As

Publication number Publication date
CN115468572A (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
US11588733B2 (en) Slice-based routing
US9736278B1 (en) Method and apparatus for connecting a gateway router to a set of scalable virtual IP network appliances in overlay networks
US20150043348A1 (en) Traffic Flow Redirection between Border Routers using Routing Encapsulation
US9678840B2 (en) Fast failover for application performance based WAN path optimization with multiple border routers
US9537785B2 (en) Link aggregation group (LAG) link allocation
US9559985B1 (en) Weighted cost multipath routing with intra-node port weights and inter-node port weights
US12052177B1 (en) Apparatus and method for providing hybrid access coordination
WO2022057810A1 (zh) 业务报文的转发方法、sr策略的发送方法、设备及系统
CN109088822B (zh) 数据流量转发方法、装置、系统、计算机设备及存储介质
JP2020156088A (ja) パケット伝送方法及び装置
US20200322838A1 (en) Scalable reachability for movable destinations attached to a leaf-spine switching architecture
CN103441930B (zh) 一种mpls te分组转发与管理方法及装置
EP3474504B1 (en) Leaf-to-spine uplink bandwidth advertisement to leaf-connected servers
US9197545B2 (en) Highly scalable modular system with high reliability and low latency
WO2024093778A1 (zh) 一种报文处理方法以及相关装置
WO2021139304A1 (zh) 一种多云互联的方法及设备
CN104796346B (zh) 一种实现l3vpn业务负载分担的方法、设备及系统
CN114615155A (zh) 用于部署业务的方法及装置
WO2022257917A1 (zh) 路径规划方法及相关设备
CN111464443A (zh) 基于服务功能链的报文转发方法、装置、设备及存储介质
CN111740917A (zh) 一种报文转发方法和装置
KR102092091B1 (ko) 소프트웨어 정의 네트워크에서 고가용성 및 고신뢰성을 제공하는 방법, 장치 및 컴퓨터 프로그램
RU2678470C1 (ru) Способ мультимаршрутизации блоков данных в коммутируемой сети
CN106302215A (zh) 一种转发报文的方法及装置
WO2018179922A1 (ja) 通信装置、通信制御方法、及び通信システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22819515

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22819515

Country of ref document: EP

Kind code of ref document: A1