CN115468572A - Path planning method and related equipment - Google Patents
Path planning method and related equipment Download PDFInfo
- Publication number
- CN115468572A CN115468572A CN202110656450.6A CN202110656450A CN115468572A CN 115468572 A CN115468572 A CN 115468572A CN 202110656450 A CN202110656450 A CN 202110656450A CN 115468572 A CN115468572 A CN 115468572A
- Authority
- CN
- China
- Prior art keywords
- path
- link
- network device
- tunnel
- interface
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3492—Special 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3423—Multimodal routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
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
Description
技术领域technical field
本发明涉及通信技术领域,尤其涉及一种路径规划方法及相关设备。The present invention relates to the field of communication technology, in particular to a path planning method and related equipment.
背景技术Background technique
负载均衡(load balance),指的是网络节点在转发流量时,将去往同一个目的地址的负载(流量)分摊到多条链路/路径上进行转发。负载均衡技术由于可以灵活扩展链路资源,提升网络容量,提高网络可靠性,而被广泛应用。按照分担路径类型不同,又可分为Trunk负载均衡、路由负载均衡、隧道负载均衡等。Load balance refers to that when a network node forwards traffic, it distributes the load (traffic) destined for 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.
其中,隧道负载均衡是指虚拟专用网络(virtual private network,VPN)场景下,在入口节点上存在去往同一个目的节点的多条隧道,流量被分担到该多条隧道上进行转发。隧道提供了将一种类型报文封装在另一种类型报文中,使报文能够在异种网络中传输的技术,而封装后的报文传输的通道称为隧道。隧道是构建VPN不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个VPN节点。目前常见的隧道类型,例如标签交换路径(label switched path)和基于约束路由的标签交换路径(constraint-based routedlabel switched path,CR-LSP)等,都支持隧道负载均衡功能。Wherein, 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 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. Currently 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.
负载均衡功能包括等价多路径(equal cost multiple path,ECMP)和非等价多路径(unequal-cost multiple path,UCMP)两种方式。对于ECMP的隧道负载均衡,当参与负载均衡的多个隧道经过同一条路径时,容易造成路径拥堵的问题。The load balancing function includes two modes: equal cost multiple path (ECMP) and unequal-cost multiple path (UCMP). For ECMP tunnel load balancing, when multiple tunnels participating in load balancing pass through the same path, it is easy to cause path congestion.
发明内容Contents of the invention
本申请公开了一种路径规划方法及相关设备,能够避免负载均衡的多个隧道经过同一条路径,从而缓解了网络的路径拥堵。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.
第一方面,本申请提供一种路径规划方法,该方法包括:In a first aspect, the present application provides a path planning method, which includes:
在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。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.
可选的,上述第二路径与上述其它每条路径不相交,包括以下至少一项:Optionally, the above-mentioned second path is disjoint with each of the above-mentioned other paths, and includes at least one of the following:
该第二路径和该其它每条路径之间链路不相交;links between the second path and each of the other paths are disjoint;
该第二路径和该其它每条路径之间节点不相交;node disjoint between the second path and each of the other paths;
该第二路径和该其它每条路径之间为链路和节点均不相交;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.
本申请在隧道中的路径出现故障后,通过规划与现有的用于负载均衡的隧道ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,现有的基于约束规划路径的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。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. In addition, 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.
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
在本申请中,限定设置的路径信息只在负载均衡的隧道ECMP组内成员的路径规划时才有晓,可以避免影响其它情况下的路径规划。In this application, 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.
一种可能的实施方式中,上述路径信息包括以下至少一项:In a possible implementation manner, the above path information includes at least one of the following:
上述其它每条路径中的每条链路的链路开销;the link cost of each link in each of the other paths above;
该其它每条路径中的每条链路的链路优先级;the link priority of each link in each of the other paths;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;A link identifier of each link in each of the other paths, where the link identifier of each link is used to identify that each link has been occupied by the tunnel ECMP group;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;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;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。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.
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算该第二路径,包括:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。In a possible implementation manner, the above path information includes the link cost of each link, and the above calculation of the second path includes: according to the link cost of each link, determining the multiple links.
一种可能的实施方式中,在配置上述隧道ECMP组之后,包括:调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。In a possible implementation manner, 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.
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的开销调高,从而使得后续规划其它ECMP隧道成员的路径时因开销过大而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by increasing the cost of each link in the path of the planned ECMP tunnel member, so that when planning the path of other ECMP tunnel members in the future, these links are bypassed due to excessive overhead, thereby achieving Plan different ECMP member tunnels on different paths.
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算该第二路径,包括:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes the link priority of each link, and the above-mentioned calculation of the second path includes: according to the link priority of each link, determining the through multiple links.
一种可能的实施方式中,在配置该隧道ECMP组之后,包括:调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。In a possible implementation manner, 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.
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的优先级调低,从而使得后续规划其它ECMP隧道成员的路径时因优先级过低而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by lowering the priority of each link in the path of the planned ECMP tunnel member, so that these links are bypassed when the path of other ECMP tunnel members is planned in the future because the priority is too low, thereby Implemented the planning of different ECMP member tunnels on different paths.
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算该第二路径,包括:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes a link identifier of each link, and the above-mentioned calculation of the second path includes: according to the link identifier of each link, determining the multiple links.
一种可能的实施方式中,上述方法还包括:在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。In a possible implementation manner, the above method further includes: after configuring the tunnel ECMP group, setting the link identifier for each link in the tunnel ECMP group.
本申请中,通过为规划好的ECMP隧道成员的路径中的每个链路设置特定的链路标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定链路标识的链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific link identifier for each link in the path of the planned ECMP tunnel member, so that the subsequent planning of the paths of other ECMP tunnel members bypasses these links with specific link identifiers , so that different ECMP member tunnels can be planned on different paths.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标识,上述计算该第二路径,包括:根据该其它每条路径中的每个网络设备的设备标识,确定该第二路径所经过的多个网络设备。In a possible implementation manner, the path information includes a device identifier of each network device in each other path, and 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.
一种可能的实施方式中,上述方法还包括:在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。In a possible implementation manner, 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.
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备设置特定的设备标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定设备标识的网络设备,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific device identifier for each network device in the path of the planned ECMP tunnel member, so that these network devices with specific device identifiers are bypassed when planning the paths of other ECMP tunnel members in the future, so that Implemented the planning of different ECMP member tunnels on different paths.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算该第二路径,包括:在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。In a possible implementation manner, the above-mentioned path information includes an interface identifier of each network device communication interface in each other path, and 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.
一种可能的实施方式中,上述方法还包括:在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。In a possible implementation manner, 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.
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备入接口(或每个网络设备出接口)设置特定的接口标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定接口标识的网络设备入接口(或网络设备出接口),从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific interface identifier for each network device incoming interface (or each network device outgoing interface) in the path of the planned ECMP tunnel member, so that the subsequent planning of the path of other ECMP tunnel members bypasses the These network device incoming interfaces (or network device outgoing interfaces) with specific interface identifiers are set, so that different ECMP member tunnels can be planned on different paths.
第二方面,本申请提供一种路径规划方法,该方法包括:In a second aspect, the present application provides a path planning method, which includes:
计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;calculating a first path traversed by a first tunnel between the first network device and the second network device;
对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;Set path information for the 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 network device communication interface;
基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,所述第一路径和所述第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道均属于隧道等价多路径ECMP组的成员。Calculating 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 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.
本申请通过对已经规划过的路径中的目标对象进行标记,以便于规划其它隧道ECMP组成员的路径时不会规划到相同的路径上,相比于现有方案通过约束来将负载均衡的多个路径规划到不同的传输路径上,本方案既解决了等价路径规划到同一个路径导致的拥塞问题,还不会限制网络重路由的能力,提高了网络的可靠性。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.
一种可能的实施方式中,上述第一路径与上述第二路径不相交,包括以下至少一项:In a possible implementation manner, 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;
该第一路径和该第二路径之间节点不相交;Node disjoint between the first path and the second path;
该第一路径和该第二路径之间为链路和节点均不相交;Neither the link nor the node intersects between the first path and the second path;
该第一路径和该第二路径之间为尽力而为不相交。The first path and the second path are best-effort disjoint.
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
在本申请中,限定设置的路径信息只在负载均衡的隧道ECMP组内成员的路径规划时才有晓,可以避免影响其它情况下的路径规划。In this application, 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.
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。In a possible implementation manner, the above-mentioned target object is a link, and 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.
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的开销调高,从而使得后续规划其它ECMP隧道成员的路径时因开销过大而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by increasing the cost of each link in the path of the planned ECMP tunnel member, so that when planning the path of other ECMP tunnel members in the future, these links are bypassed due to excessive overhead, thereby achieving Plan different ECMP member tunnels on different paths.
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。In a possible implementation manner, the above-mentioned target object is a link, and 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.
本申请中,通过将规划好的ECMP隧道成员的路径中的每个链路的优先级调低,从而使得后续规划其它ECMP隧道成员的路径时因优先级过低而绕开这些链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by lowering the priority of each link in the path of the planned ECMP tunnel member, so that these links are bypassed when the path of other ECMP tunnel members is planned in the future because the priority is too low, thereby Implemented the planning of different ECMP member tunnels on different paths.
一种可能的实施方式中,上述目标对象为链路,上述对该第一路径中的目标对象设置路径信息,包括:为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。In a possible implementation manner, the above-mentioned target object is a link, and 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.
本申请中,通过为规划好的ECMP隧道成员的路径中的每个链路设置特定的链路标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定链路标识的链路,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific link identifier for each link in the path of the planned ECMP tunnel member, so that the subsequent planning of the paths of other ECMP tunnel members bypasses these links with specific link identifiers , so that different ECMP member tunnels can be planned on different paths.
一种可能的实施方式中,上述目标对象为网络设备,上述对该第一路径中的目标对象设置路径信息,包括:为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。In a possible implementation manner, the above-mentioned target object is a network device, and 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.
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备设置特定的设备标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定设备标识的网络设备,从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific device identifier for each network device in the path of the planned ECMP tunnel member, so that these network devices with specific device identifiers are bypassed when planning the paths of other ECMP tunnel members in the future, so that Implemented the planning of different ECMP member tunnels on different paths.
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述对该第一路径中的目标对象设置路径信息,包括:In a possible implementation manner, the above-mentioned target object is a network device communication interface, and the above-mentioned setting of path information for the target object in the first path includes:
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;In the case where the network device communication interface is an incoming interface of the network device in the path, 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 ;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。In the case where the network device communication interface is the outgoing interface of the network device in the 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 .
本申请中,通过为规划好的ECMP隧道成员的路径中的每个网络设备入接口(或每个网络设备出接口)设置特定的接口标识,从而使得后续规划其它ECMP隧道成员的路径时绕开这些设置了特定接口标识的网络设备入接口(或网络设备出接口),从而实现了将不同的ECMP成员隧道规划到不同路径上。In this application, by setting a specific interface identifier for each network device incoming interface (or each network device outgoing interface) in the path of the planned ECMP tunnel member, so that the subsequent planning of the path of other ECMP tunnel members bypasses the These network device incoming interfaces (or network device outgoing interfaces) with specific interface identifiers are set, so that different ECMP member tunnels can be planned on different paths.
第三方面,本申请提供一种路径规划设备,该设备包括:In a third aspect, the present application provides a path planning device, which includes:
配置单元,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;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.
一种可能的实施方式中,上述第二路径与该其它每条路径不相交,包括以下至少一项:In a possible implementation manner, the above-mentioned second path is disjoint with each other path, and includes at least one of the following:
该第二路径和该其它每条路径之间链路不相交;links between the second path and each of the other paths are disjoint;
该第二路径和该其它每条路径之间节点不相交;node disjoint between the second path and each of the other paths;
该第二路径和该其它每条路径之间为链路和节点均不相交;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.
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
一种可能的实施方式中,上述路径信息包括以下至少一项:In a possible implementation manner, the above path information includes at least one of the following:
上述其它每条路径中的每条链路的链路开销;the link cost of each link in each of the other paths above;
该其它每条路径中的每条链路的链路优先级;the link priority of each link in each of the other paths;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;A link identifier of each link in each of the other paths, where the link identifier of each link is used to identify that each link has been occupied by the tunnel ECMP group;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;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;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。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.
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算单元具体用于:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。In a possible implementation manner, the above path information includes the link cost of each link, and 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.
一种可能的实施方式中,上述设备还包括第一调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算单元具体用于:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes the link priority of each link, and the above-mentioned calculation unit is specifically configured to: according to the link priority of each link, determine the multiple links.
一种可能的实施方式中,上述设备还包括第二调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算单元具体用于:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。In a possible implementation manner, 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.
一种可能的实施方式中,上述设备还包括第一设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标识,上述计算单元具体用于:根据该其它每条路径中的每个网络设备的设备标识,确定该第二路径所经过的多个网络设备。In a possible implementation manner, the path information includes a device identifier of each network device in each other path, and 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.
一种可能的实施方式中,上述设备还包括第二设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算单元具体用于:In a possible implementation manner, 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:
在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;In the case that the network device communication interface is an incoming interface of a network device in a path, 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;
在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。In the case that the network device communication interface is an outgoing interface of the network device in the path, according to 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.
一种可能的实施方式中,上述设备还包括第三设置单元,用于:In a possible implementation manner, the above device further includes a third setting unit, configured to:
在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;In the case where the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface passed by each path in the tunnel ECMP group;
在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。In the case that the network device communication interface is the outgoing interface of the network device in the path, after configuring the tunnel ECMP group, set the second interface identifier for each outgoing interface of the network device passed by each path in the tunnel ECMP group.
第四方面,本申请提供一种路径规划设备,该设备包括:In a fourth aspect, 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;
该计算单元,还用于基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,该第一路径和该第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息。其中,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。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. Wherein, the first tunnel and the second tunnel are members of a tunnel equivalent multipath ECMP group.
一种可能的实施方式中,上述第一路径与上述第二路径不相交,包括以下至少一项:In a possible implementation manner, 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;
该第一路径和该第二路径之间节点不相交;Node disjoint between the first path and the second path;
该第一路径和该第二路径之间为链路和节点均不相交;Neither the link nor the node intersects between the first path and the second path;
该第一路径和该第二路径之间为尽力而为不相交。The first path and the second path are best-effort disjoint.
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
一种可能的实施方式中,上述目标对象为链路,该设置单元具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the setting unit is specifically used for:
调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。Adjusting the link cost of each link in the first path, 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.
一种可能的实施方式中,上述目标对象为链路,上述设置单元具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the above-mentioned setting unit is specifically used for:
调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。Adjusting the link priority of each link in the first path, the adjusted link priority of each link in the first path is less than the adjusted link priority of each link in the first path link priority, the path information includes the adjusted link priority of each link in the first path.
一种可能的实施方式中,上述目标对象为链路,上述设置单元具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the above-mentioned setting unit is specifically used for:
为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。Setting a link identifier for each link in the first path, where the link identifier of each link in the first path is used to identify that each link in the first path has been used by the tunnel ECMP group Occupied, the path information includes the link identifier of each link in the first path.
一种可能的实施方式中,上述目标对象为网络设备,上述设置单元具体用于:In a possible implementation manner, the above-mentioned target object is a network device, and the above-mentioned setting unit is specifically used for:
为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。Setting a device identifier for each network device in the first path, where the device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group, The path information includes the device identification of each network device in the first path.
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述设置单元具体用于:In a possible implementation manner, the above-mentioned target object is a communication interface of a network device, and the above-mentioned setting unit is specifically used for:
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;In the case where the network device communication interface is an incoming interface of the network device in the path, 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 ;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。In the case where the network device communication interface is the outgoing interface of the network device in the 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 .
第五方面,本申请提供一种路径规划设备,该设备可以包括处理器和存储器,用于实现上述第一方面及其可能的实施方式描述的路径规划方法。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以使得该设备实现上述第一方面或第一方面任一种可能的实现方式所述的方法。In a fifth aspect, 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. Exemplarily, 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.
在一种可能的实现中,该设备可以包括:In one possible implementation, the device may include:
存储器,用于存储计算机程序;memory for storing computer programs;
处理器,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。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.
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是设备、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于设备、单元或模块之间的信息交互。It should be noted that 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.
第六方面,本申请提供一种路径规划设备,该设备可以包括处理器和存储器,用于实现上述第二方面及其可能的实施方式描述的路径规划方法。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序时,可以使得该设备实现上述第二方面或第二方面任一种可能的实现方式所述的方法。In a sixth aspect, 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. Exemplarily, 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.
在一种可能的实现中,该设备可以包括:In one possible implementation, the device may include:
存储器,用于存储计算机程序;memory for storing computer programs;
处理器,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。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.
需要说明的是,本申请中存储器中的计算机程序可以预先存储也可以使用该设备时从互联网下载后存储,本申请对于存储器中计算机程序的来源不进行具体限定。本申请实施例中的耦合是设备、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于设备、单元或模块之间的信息交互。It should be noted that the computer program in the memory in this application can be pre-stored or stored after being downloaded from the Internet when using the device, and the source of the computer program in the memory is not specifically limited in this application. 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.
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面及其可能的实施方式中任意一项所述的方法。In a seventh aspect, 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.
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第二方面及其可能的实施方式中任意一项所述的方法。In an eighth aspect, 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.
第九方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得该计算机执行如上述第一方面任意一项所述的方法。In a ninth aspect, 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.
第十方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得该计算机执行如上述第一方面任意一项所述的方法。In a tenth aspect, 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.
可以理解地,上述提供的第三方面至第六方面所述的设备、第七方面和第八方面所述的计算机存储介质以及第九方面和第十方面所述的计算机程序产品均用于执行第一方面和第二方面中任一项所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。Understandably, 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.
附图说明Description of drawings
下面将对本申请实施例中所需要使用的附图作介绍。The drawings that need to be used in the embodiments of the present application will be introduced below.
图1所示为两个网络设备之间隧道负载均衡的一种示意图;FIG. 1 is a schematic diagram of tunnel load balancing between two network devices;
图2所示为ECMP成员隧道的路径示意图;Figure 2 is a schematic diagram of the paths of ECMP member tunnels;
图3所示为本申请适用的一种网络系统架构示意图;FIG. 3 is a schematic diagram of a network system architecture applicable to the present application;
图4所示为本申请提供的路径规划方法的流程示意图;FIG. 4 is a schematic flow chart of the path planning method provided by the present application;
图5A和图5B所示为隧道的路径示意图;Figure 5A and Figure 5B are schematic diagrams showing the path of the tunnel;
图6A和图6B所示为隧道的路径示意图;Figure 6A and Figure 6B are schematic diagrams showing the path of the tunnel;
图7A和图7B所示为隧道的路径示意图;Figure 7A and Figure 7B are schematic diagrams showing the path of the tunnel;
图8所示为隧道重路由的路径示意图;FIG. 8 is a schematic diagram of a tunnel rerouting path;
图9和图10所示为本申请提供的装置的逻辑结构示意图;Figure 9 and Figure 10 are schematic diagrams of the logical structure of the device provided by the present application;
图11所示为本申请提供的装置的硬件结构示意图。FIG. 11 is a schematic diagram of the hardware structure of the device provided by the present application.
具体实施方式detailed description
下面结合附图对本申请的实施例进行描述。Embodiments of the present application are described below in conjunction with the accompanying drawings.
首先介绍一下本申请需要解决的技术问题以及适用的场景。Firstly, the technical problems to be solved in this application and the applicable scenarios are introduced.
参见图1,图1所示为两个网络设备之间隧道负载均衡的一种示意图。图1中可以看到,为了增加流量的传输带宽,可以在网络设备1和网络设备2之间创建多条隧道,该多条隧道可以实现该网络设备1和网络设备2之间的流量的负载分担。Referring to FIG. 1, FIG. 1 is a schematic diagram of tunnel load balancing between two network devices. As can be seen in Figure 1, in order to increase the transmission bandwidth of the traffic, multiple tunnels can be created between the network device 1 and the
本申请中,网络设备可以是客户端边缘设备(customer edge,CE)、运营商边缘设备(provider edge,PE)和运营商骨干路由器(provider,P)等。网络设备也可以称为网络节点或节点。In this application, 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), and the like. Network devices may also be referred to as network nodes or nodes.
具体的,隧道是构建虚拟专用网络(virtual private network,VPN)不可或缺的部分,用于把VPN数据从一个VPN节点透明传送到另一个VPN节点。隧道的创建只需要明确隧道起点和终点的网络设备,隧道具体通过的路径是根据最短路径算法计算得到的。Specifically, the tunnel is an indispensable part of constructing a virtual private network (virtual private network, VPN), and is used to transparently transmit VPN data from one VPN node to another VPN node. To create a tunnel, you only need to specify the network devices at the start and end points of the tunnel, and the specific path that the tunnel passes is calculated based on the shortest path algorithm.
在具体实现中,上述多条隧道属于等价多路径(equal cost multiple path,ECMP)组的成员。该ECMP是指同一个起始节点到达同一目的地节点有多条等价路径,流量在这些等价路径上平均分配,不会考虑路径带宽的差异;等价路径是指从该起始节点到达该目的地节点的路径开销(cost值)相等的路径。对于上述多个隧道来说,可以将上述网络设备1和网络设备2之间通信的路径抽象为一个链路,该多个隧道的每个隧道都是通过该链路将网络设备1的流量发送到网络设备2,因此,该多个隧道的路径为等价路径,从而该多个隧道属于ECMP组成员。In a specific implementation, the above multiple tunnels belong to 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. For the above-mentioned multiple tunnels, the communication path between the above-mentioned network device 1 and
但是,由于隧道具体通过的路径是根据最短路径算法计算得到,且ECMP组的成员隧道为等价路径,因此,在规划ECMP组成员隧道的路径时,容易将ECMP组的多个成员的路径规划到同一条路径上,这种情况下流量的负载分担功能将被削弱,容易造成路径拥塞。However, since 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.
例如,可以参见图2,图2示例性示出了部分网络结构示意图,在图2中,从网络设备B到网络设备G的路径有两条,第一条路径为:网络设备B→网络设备C→网络设备E→网络设备G,第二条路径为:网络设备B→网络设备D→网络设备F→网络设备G。假设该两条路径不是等价路径,那么,在网络设备B和网络设备G之间创建有两条负载均衡隧道,并且需要为该两条隧道规划路径时,按照最短路径算法计算,该两条隧道的路径将被规划到同一条路径(例如第一条路径)上,如图2所示。这种情况下,网络设备B和网络设备G之间的流量将全部从该第一条路径传输,无法实现流量的负载分担,容易造成该第一路径的拥塞。For example, refer to FIG. 2, which shows a schematic diagram of a partial network structure. In FIG. 2, there are two paths from network device B to network device G, and the first path is: network device B→network device C→network device E→network device G, the second path is: network device B→network device D→network device F→network device G. Assuming that the two paths are not equal-cost paths, then there are 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 . In this case, 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隧道成员规划到不同的路径上,例如基于约束路由的标签交换路径(constraint-based routed labelswitched path,CR-LSP)等。但是,这种方案限制了隧道的动态重路由能力,降低网络的可靠性。例如,当约束的路径出现故障后,由于存在路径约束,重路由还是路由到该故障的约束路径,不会重路由到其它未发生故障的路径(限制了重路由能力),这会导致流量传输中断,业务也跟着中断(降低了网络的可靠性)。In existing solutions, ECMP tunnel members can be planned on different paths through path constraints or bandwidth constraints, such as a constraint-based routed label switched path (CR-LSP). However, 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).
为了将隧道ECMP成员的路径规划到不同的路径上,但又不会限制隧道的动态重路由能力,本申请提供了一种路径规划方法。在介绍该方法之前,先示例性介绍一下该方法适用的系统架构,参见图3。图3示例性示出了本申请适用的一种网络系统架构示意图,该系统架构包括多个网络设备,该多个网络设备构成了流量的转发网络,这些网络设备包括客户端边缘设备CE、运营商边缘设备PE和运营商骨干路由器P等设备。In order to plan the paths of tunnel ECMP members to different paths without restricting the dynamic rerouting capability of the tunnel, the present application provides a path planning method. Before introducing the method, first introduce the applicable system architecture of the method, as shown in FIG. 3 . Figure 3 exemplarily shows a schematic diagram of a network system architecture applicable to this application, the system architecture 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.
需要说明的是,该系统架构中可通信的两个网络设备之间可以配置有多条链路。It should be noted that multiple links can be configured between two network devices that can communicate in the system architecture.
一种可能的实施方式中,图3所示网络系统架构中包括控制器,该控制器可以获知该网络的拓扑视图,从而可以规划网络中流量的转发路径等。示例性地,该控制器可以是软件定义网络(software defined network,SDN)控制器或者操作维护中心(operation andmaintenance center,OMC)等。In a possible implementation manner, 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. Exemplarily, 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.
另一种可能的实施方式中,上述网络系统架构中不包括控制器,那么,流量的转发路径可以通过网络设备基于最短路径算法计算得到。In another possible implementation manner, 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.
需要说明的是,上述图3所示系统架构仅为一个示例,本申请提供的路径规划方法适用的系统架构不限于上述描述的系统架构。It should be noted that the above-mentioned system architecture shown in FIG. 3 is only an example, and the applicable system architecture of the path planning method provided in the present application is not limited to the system architecture described above.
参见图4,示出了本申请提供的路径规划方法,若该方法应用的网络系统架构中包括上述控制器,网络中流量的转发路径由该控制器计算得到,那么该方法的执行主体可以是该控制器;若该方法应用的系统架构中不包括控制器,网络中的流量的转发路径通过网络设备基于最短路径算法计算得到,那么,该方法的执行主体可以是该网络设备。不管具体实现中该方法的执行主体是控制器还是网络设备,下面统一将该方法的执行主体称为执行设备。该方法可以包括但不限于如下步骤:Referring to FIG. 4 , it shows the path planning method provided by the present application. If the network system architecture applied by the method includes the above-mentioned controller, and the forwarding path of the traffic in the network is calculated by the controller, then 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:
S401、在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量。S401. Configure a tunnel equivalent multipath ECMP group for traffic load balancing on the first network device, wherein the members of the ECMP group are composed of multiple tunnels, and the multiple tunnels include a first tunnel, and the first tunnel is based on The first path forwards traffic to the destination address.
示例性地,该第一网络设备可以是上述系统架构中的任意一个网络设备,上述配置的用于流量负载均衡的多个隧道的终点网络设备可以是该系统架构中的另一个网络设备,可以称为第二网络设备,那么上述目的地址为该第二网络设备的地址。Exemplarily, the first network device may be any network device in the above-mentioned system architecture, and 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.
可选的,上述多个隧道可以由网络系统中的控制器来配置,即执行设备为该控制器。或者,可选的,该多个隧道可以由上述第一网络设备来配置,即执行设备为该第一网络设备。Optionally, the above multiple tunnels may be configured by a controller in the network system, that is, the execution device is the controller. Or, optionally, the multiple tunnels may be configured by the above-mentioned first network device, that is, the executing device is the first network device.
S402、在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交。S402. When the first path fails, calculate a second path according to the path information of each path passed by each of the multiple tunnels except the first tunnel, and the second path is related to the other Each path is disjoint.
在具体实施例中,上述ECMP组的多个成员隧道中每个隧道都对应计算了一条具体的流量传输路径。具体的,执行设备在计算得到这些传输路径之后,可以为这些路径中的目标对象设置路径信息,该目标对象可以为路径中的链路,或为路径中的网络设备,或为路径中的网络设备通信接口。该路径中的网络设备通信接口可以为该路径中的网络设备入接口,或者为该路径中的网络设备出接口,需要说明的是,该路径中的网络设备通信接口仅包括该路径中的链路连接的接口,不包括该路径的网络设备中其它不连接该路径的链路的接口。In a specific embodiment, a specific traffic transmission path is correspondingly calculated for each of the multiple member tunnels of the above ECMP group. Specifically, after the execution device calculates these transmission paths, it 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.
可选的,这些路径信息仅针对该ECMP组内成员有效。即,在为上述多个隧道规划具体的流量传输路径时,可以以这些路径信息为标记,尽可能地将不同的隧道规划到不同的传输路径上。Optionally, 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.
上述路径信息可以包括以下的至少一项:路径中每条链路的cost值、路径中每条链路的链路优先级、路径中每条链路的链路标识、路径中每个网络设备的标识或者路径中的每个网络设备通信接口的接口标识等。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.
一种可能的实施方式中,上述路径信息包括路径中每条链路的cost值。具体的,执行设备计算得到上述多个隧道中某一个隧道的流量传输路径(为了便于描述,后面简称为第一目标路径)后,可以调整该第一目标路径中的每条链路的cost值,使得该每条链路调整之后的cost值大于调整之前的cost值。示例性地,可以将该每条链路的cost值调整为比调整前大几倍、十几倍、几十倍、上百倍、上千倍或者上万倍的cost值,本申请对具体调整的大小不做限制。In a possible implementation manner, the foregoing path information includes a cost value of each link in the path. Specifically, after 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. Exemplarily, 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.
可选的,该第一目标路径中调整之后的链路cost值只在规划上述多个隧道中该某一个隧道之外的其它隧道的路径时有效,除此之外,该第一目标路径中的链路cost值还是按照调整之前的链路cost值处理。即在计算与该某一个隧道负载均衡的其它隧道的流量传输路径时,由于该第一目标路径的链路cost值较大,而本着最短路径算法的原则,执行设备会绕过该cost值较大的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径上。为了便于理解,可以示例性参见图5A和图5B。Optionally, 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. In addition, 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. For ease of understanding, refer to FIG. 5A and FIG. 5B by way of example.
在图5A中,假设每个链路的cost值都是10,网络设备B和网络设备I之间创建了包括两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。按照最短路径原则,执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以调整该路径中链路的cost值,例如,将该路径中每个链路中的cost值均增加10000,调整后的链路cost值可以参见图5B。调整完该路径的链路cost值后,执行设备再计算第二个隧道的传输路径时,基于最短路径原则,由于路径网络设备B→网络设备G→网络设备I中的链路cost值很大,该执行设备会避开该路径,从而计算得到的该第二个隧道的传输路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。In FIG. 5A , assuming that the cost value of each link is 10, 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. According to the shortest path principle, 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 calculating the path, 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. After adjusting the link cost value of this path, when 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.
由于上述实施方式是通过调整链路的cost值来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。Since the above embodiment avoids path intersecting by adjusting the cost value of the link, the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint. In addition, optionally, since 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.
另一种可能的实施方式中,上述路径信息包括路径中每条链路的链路优先级。具体的,执行设备计算得到上述第一目标路径后,可以调整该第一目标路径中的每条链路的链路优先级,使得该每条链路调整之后的链路优先级低于调整之前的链路优先级。示例性地,可以将该每条链路的链路优先级调整为比调整前低一级、两级或者三级等等的链路优先级,本申请对具体调整的优先级级数不做限制。In another possible implementation manner, the foregoing path information includes a link priority of each link in the path. Specifically, after the execution device calculates and obtains the above-mentioned first target path, it 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. Exemplarily, 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.
但是,可选的,调整后的链路优先级不是最低级别的链路优先级,若上述第一目标路径的链路优先级调整为最低级别的链路优先级,可能使得该第一目标路径中的链路在后续计算ECMP组内其它隧道成员的路径时不再可用,这时,若该ECMP组内其它隧道成员的路径中有链路与该第一目标路径中的链路重合的情况下,导致该ECMP组内其它隧道成员的路径无法算路成功。However, optionally, 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.
示例性的,上述链路优先级可以是根据链路的带宽来确定的,链路的带宽越大则该链路的优先级越高,反之,链路的带宽越小则该链路的优先级越低。为了便于理解,可以示例性地参见表1。Exemplarily, 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. Conversely, the smaller the bandwidth of the link, the higher the priority of the link. the lower the grade. For ease of understanding, refer to Table 1 as an example.
表1Table 1
表1示例性示出了6个等级的链路优先级,等级1级为最高的链路优先级,等级6级为最低的链路优先级,等级从1级到6级表示链路优先级从最高级到最低级。可以看到,链路带宽越大链路优先级越高,链路带宽越小链路优先级越低。Table 1 exemplarily shows 6 levels of link priority, level 1 is the highest link priority,
可选的,该第一目标路径中调整之后的链路优先级只在规划上述多个隧道中的所述某一个隧道之外的其它隧道的路径时有效,除此之外,该第一目标路径中的链路优先级还是按照调整之前的链路优先级处理。即在计算与上述某一个隧道负载均衡的其它隧道的流量传输路径时,由于该第一目标路径的链路优先级较低,而本着优先级高优先选择的原则,执行设备会绕过该链路优先级较低的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径上。为了便于理解,可以示例性参见图6A和图6B。Optionally, 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. In addition, 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. For ease of understanding, refer to FIG. 6A and FIG. 6B for example.
在图6A中,假设每个链路的优先级都是2级,网络设备B和网络设备I之间创建了包括两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。假设执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以调整该路径中链路的优先级,例如,将该路径中每个链路中的优先级均增加1级,调整后的链路优先级可以参见图6B。调整完该路径的链路优先级后,执行设备再计算第二个隧道的传输路径时,基于优先级高优先选择的原则,由于路径网络设备B→网络设备G→网络设备I中的链路优先级较低,该执行设备会避开该路径,从而计算得到的该第二个隧道的传输路径为另外一条路径,例如该另外一条路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。In 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 . After adjusting the link priority of this path, when 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.
同理,由于上述实施方式是通过调整链路的优先级来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。Similarly, since the foregoing embodiment avoids path intersection by adjusting the priority of links, the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint. In addition, optionally, since 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.
另一种可能的实施方式中,上述路径信息包括路径中每条链路的链路标识。具体的,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每条链路设置链路标识。该链路标识的作用即为指示设置了该链路标识的链路被上述ECMP组占用,该链路标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的链路标识不做限制。In another possible implementation manner, the path information includes a link identifier of each link in the path. Specifically, after the execution device calculates and obtains the first target 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.
可选的,该第一目标路径中的链路设置的该链路标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该链路标识的链路,从而将该其它隧道规划到与该第一目标路径不相交的路径上。为了便于理解,可以示例性参见图7A和图7B。Optionally, 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. For ease of understanding, refer to FIG. 7A and FIG. 7B by way of example.
在图7A中,假设网络设备B和网络设备I之间创建了包括两个隧道的隧道ECMP组用于负载分担该两个设备之间的流量。假设执行设备计算第一个隧道的具体传输路径得到的路径为:网络设备B→网络设备G→网络设备I。计算得到该路径后,执行设备可以为该路径中链路的设置标识,该标识例如可以为Z,设置标识后的链路可以参见图7B。设置完链路标识后,执行设备再计算第二个隧道的传输路径时,基于已经设置的链路标识,获知设置了链路标识的链路已经被上述ECMP组占用,该执行设备会避开设置了标识的链路,从而计算得到的该第二个隧道的传输路径为另外一条路径,例如该另外一条路径为:网络设备B→网络设备C→网络设备E→网络设备I。这样就实现了将负载分担的ECMP组中两个不同的成员隧道的传输路径规划到不同的路径上。In 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. 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 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. 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.
同理,由于上述实施方式是通过设置链路标识来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。Similarly, since the above embodiment avoids path intersection by setting link identifiers, the disjointness of two paths realized in this embodiment actually means that the links in the two paths are disjoint. In addition, optionally, since 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.
另一种可能的实施方式中,上述路径信息包括路径中每个网络设备的设备标识。具体的,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备设置标识。该标识的作用即为指示设置了该标识的网络设备被上述ECMP组占用,该标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备的标识不做限制。In another possible implementation manner, the foregoing path information includes a device identifier of each network device in the path. Specifically, after the execution device calculates and obtains the first target 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.
可选的,该第一目标路径中的网络设备设置的该标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该标识的网络设备,从而将该其它隧道规划到与该第一目标路径不相交的路径上。Optionally, 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.
由于上述实施方式是通过对网络设备设置标识来避免路径相交,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的网络设备不相交或者说路径中的节点不相交。节点不相交的两条路径,链路一定不相交。Since the above-mentioned embodiment avoids path intersection by setting identifiers for network devices, 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.
另一种可能的实施方式中,上述路径信息包括路径中的每个网络设备通信接口的接口标识。在该网络设备通信接口为路径中的网络设备入接口的情况下,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备入接口设置接口标识,为了便于描述,可以称该接口标识为第一接口标识。该第一接口标识的作用即为指示设置了该标识的网络设备入接口被上述ECMP组占用,该第一接口标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备入接口的标识不做限制。该网络设备入接口为通过该第一目标路径传输的流量在该网络设备上的入接口。In another possible implementation manner, the path information includes an interface identifier of each network device communication interface in the path. In the case where the network device communication interface is an inbound interface of a network device in the path, after the execution device calculates and obtains the above-mentioned first target 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.
可选的,该第一目标路径中的网络设备入接口设置的该第一接口标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该第一接口标识的网络设备入接口,从而将该其它隧道规划到与该第一目标路径不相交的路径上。Optionally, 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.
在该网络设备通信接口为路径中的网络设备出接口的情况下,执行设备计算得到上述第一目标路径后,可以为该第一目标路径中的每个网络设备出接口设置接口标识。该网络设备出接口的接口标识可以与上述网络设备入接口的第一接口标识相同或者不同,为了便于区分,本申请中,可以将该网络设备出接口的接口标识称为第二接口标识。该第二接口标识的作用即为指示设置了该标识的网络设备出接口被上述ECMP组占用,该标识可以是任意自定义的标识,例如某个字符、某个数字或某个字母等等,本申请对具体的网络设备出接口的标识不做限制。该网络设备出接口为通过该第一目标路径传输的流量在该网络设备上的出接口。In the case that the network device communication interface is an outgoing interface of the network device in the path, after the executing device calculates and obtains 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. For ease of distinction, in this application, 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.
可选的,该第一目标路径中的网络设备出接口设置的该第二接口标识只在规划上述某一个隧道负载均衡的其它隧道的流量传输路径时有效。即在规划该其它隧道的流量传输路径时,执行设备会绕开设置了该第二接口标识的网络设备出接口,从而将该其它隧道规划到与该第一目标路径不相交的路径上。Optionally, 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.
由于上述实施方式是通过对网络设备通信接口设置接口标识来避免路径相交,一个通信接口连接的是一条链路,因此,这种实施方式实现的两条路径不相交实际上是该两条路径中的链路不相交。另外,可选的,由于两个网络设备之间可能配置有多个通信接口,即对应连接有多条链路,这种情况下,该两条路径中虽然链路不相交,该两条路径中的网络设备可能相交。Since the above-mentioned embodiment avoids path intersection by setting interface identifiers on the communication interfaces of network devices, one communication interface is connected to one link. Therefore, the disjointness of two paths realized in this embodiment is actually the The links are disjoint. In addition, optionally, since 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.
一种可能的实施方式中,上述的ECMP组的隧道成员中的路径不相交可以是尽力而为不相交,即当多个ECMP组的隧道成员中的路径中必须有相交的情况下,例如,该多个路径只能通过某一个链路或者网络设备才能到达目的地址,而没有其它链路或者网络设备可替代的情况下,该多个路径可以共同通过该某一个链路或者网络设备,但除此之外,该多个路径中的其它链路或网络设备不再相交。In a possible implementation manner, 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.
基于上述的描述,上述第一网络设备和第二网络设备之间创建的多个隧道对应的具体的流量传输路径中均设置有上述路径信息。基于上述步骤S401的描述,该多个隧道中包括第一隧道,该第一隧道是基于第一路径来将第一网络设备的流量转发到上述第二网络设备。在该第一路径出现故障时,执行设备可以进行重路由计算重新为该第一隧道计算一条可以正常通信的路径。Based on the above description, 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. Based on the description of step S401 above, the multiple tunnels include a first tunnel, and the first tunnel forwards the traffic of the first network device to the second network device based on the first path. When the first path fails, the execution device may perform rerouting calculation to recalculate a normal communication path for the first tunnel.
具体的,执行设备可以基于上述多个隧道中除了该第一隧道以外的其它隧道对应的每条路径中的路径信息,避开该每条路径,重新计算该第一隧道的流量传输路径得到第二路径,从而使得该第二路径与该多个隧道中除了第一隧道以外的其它隧道对应的每条路径不相交。具体的,该第二路径中的目标对象中至少有一个目标对象未设置有上述路径信息。Specifically, 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. Specifically, at least one of the target objects in the second path is not configured with the above path information.
一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路开销;那么,执行设备可以基于该每条链路的链路开销,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图5A和图5B对应的描述,此处不再赘述。In a possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, for example, reference may be made to the description corresponding to FIG. 5A and FIG. 5B , which will not be repeated here.
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路优先级;那么,执行设备可以基于该每条链路的链路优先级,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图6A和图6B对应的描述,此处不再赘述。In another possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, for example, reference may be made to the description corresponding to FIG. 6A and FIG. 6B , which will not be repeated here.
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每条链路的链路标识;那么,执行设备可以基于该每条链路的链路标识,避开该每条链路,计算得到上述第二路径所经过的多个链路。具体的实现过程可以参考前述的描述,例如示例性地可以参考对图7A和图7B对应的描述,此处不再赘述。In another possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, for example, reference may be made to the description corresponding to FIG. 7A and FIG. 7B , which will not be repeated here.
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备的标识;那么,执行设备可以基于该每条路径中的每个网络设备的标识,避开该每条路径中的每个网络设备,计算得到上述第二路径所经过的多个网络设备。具体的实现过程可以参考前述的描述,此处不再赘述。In another possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, which will not be repeated here.
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备入接口的第一接口标识;那么,执行设备可以基于该每条路径中的每个网络设备入接口的第一接口标识,避开该每条路径中的每个网络设备入接口,计算得到上述第二路径所经过的多个网络设备入接口。具体的实现过程可以参考前述的描述,此处不再赘述。In another possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, which will not be repeated here.
另一种可能的实施方式中,该每条路径中的路径信息包括该每条路径中的每个网络设备出接口的第二接口标识;那么,执行设备可以基于该每条路径中的每个网络设备出接口的第二接口标识,避开该每条路径中的每个网络设备出接口,计算得到上述第二路径所经过的多个网络设备出接口。具体的实现过程可以参考前述的描述,此处不再赘述。In another possible implementation manner, 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. For the specific implementation process, reference may be made to the foregoing description, which will not be repeated here.
可选的,该第二路径与该每条路径不相交,可以是该第二路径与该每条路径之间链路不相交,或者,该第二路径与该每条路径之间节点不相交,或者,该第二路径与该每条路径之间链路和节点均不相交,或者,该第二路径与该每条路径之间尽力而为不相交。关于具体不相交的描述可以参见前面内容的描述,此处不再赘述。Optionally, 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. For specific disjoint descriptions, reference may be made to the previous descriptions, which will not be repeated here.
S403、将该第一隧道重路由到该第二路径。S403. Reroute the first tunnel to the second path.
具体实施例中,执行设备计算得到上述第二路径后,将上述第一隧道重路由到该第二路径,即通过该第二路径继续转发流量,快速恢复了网络流量的畅通传输,且由于该第二路径与上述其它隧道的路径不相交,从而可以更好的负载分担网络的流量,减轻网络拥塞,提高网络流量转发的速度,进而提升了网络的性能。In a specific embodiment, after 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.
一种可能的实施方式中,执行设备计算得到上述第二路径后,也可以为该第二路径设置路径信息,具体路径信息的设置可以参见前面的描述,此处不再赘述。这么设计可以使得后续继续规划第一网络设备和第二网络设备之间新的隧道路径时,也可以基于该第二路径的信息,将该新的隧道路径规划到与该第二路径不相交的路径上。为了便于理解,可以示例性参见图8。In a possible implementation manner, after the execution device calculates and obtains the above-mentioned second path, it may also set path information for the second path. For specific 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. For ease of understanding, refer to FIG. 8 as an example.
在图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。In the network structure shown in Figure 8, it is assumed that multiple service flows converge to
需要说明的是,虽然上述图8中的路径1和路径2都经过节点4和节点2,但具体走的链路不同,所以该路径1和路径2是链路不相交的两条路径。假设,节点1和节点2之间只有一条链路,此时,路径1和路径2都会经过该链路,但由于路径1和路径2之间其它的链路均不相交,因此,也可以说该路径1和路径2为链路尽力而为不相交的两条路径。It should be noted that although the
综上所述,本申请在隧道中的路径出现故障后,通过规划与现有的ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,相比于现有的约束规划的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。To sum up, 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. In addition, compared with the existing constrained programming scheme, 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.
上述主要对本申请实施例提供的路径规划方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本文中所公开的实施例描述的各示例的单元及步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。The foregoing mainly introduces the path planning method provided by the embodiment of the present application. It can be understood that, in order to realize the above corresponding functions, each device includes a corresponding hardware structure and/or software module for performing each function. Combining the units and steps of each example described in the embodiments disclosed herein, 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. Skilled artisans 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.
在采用对应各个功能划分各个功能模块的情况下,图9示出了装置的一种可能的逻辑结构示意图,该装置可以是上述执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置900包括配置单元901、计算单元902和重路由单元903。其中:In the case of dividing each functional module corresponding to each function, 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
配置单元901,用于在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;配置单元901可以执行图4所示的步骤S401中所述的配置操作。The
计算单元902,用于在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;计算单元902可以执行图4所示的步骤S402中所述的计算操作。The
重路由单元903,用于将该第一隧道重路由到该第二路径;重路由单元903可以执行图4所示的步骤S403中所述的重路由操作。The rerouting
一种可能的实施方式中,上述第二路径与该其它每条路径不相交,包括以下至少一项:In a possible implementation manner, the above-mentioned second path is disjoint with each other path, and includes at least one of the following:
该第二路径和该其它每条路径之间链路不相交;links between the second path and each of the other paths are disjoint;
该第二路径和该其它每条路径之间节点不相交;node disjoint between the second path and each of the other paths;
该第二路径和该其它每条路径之间为链路和节点均不相交;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.
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
一种可能的实施方式中,上述路径信息包括以下至少一项:In a possible implementation manner, the above path information includes at least one of the following:
上述其它每条路径中的每条链路的链路开销;the link cost of each link in each of the other paths above;
该其它每条路径中的每条链路的链路优先级;the link priority of each link in each of the other paths;
该其它每条路径中的每条链路的链路标识,该每条链路的链路标识用于标识该每条链路已经被该隧道ECMP组占用;A link identifier of each link in each of the other paths, where the link identifier of each link is used to identify that each link has been occupied by the tunnel ECMP group;
该其它每条路径中的每个网络设备的设备标识,该每个网络设备的设备标识用于标识该每个网络设备已经被该隧道ECMP组占用;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;
该其它每条路径中的每个网络设备通信接口的接口标识,该每个网络设备通信接口的接口标识用于标识该每个网络设备通信接口已经被该隧道ECMP组占用。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.
一种可能的实施方式中,上述路径信息包括该每条链路的链路开销,上述计算单元902具体用于:根据该每条链路的链路开销,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes the link cost of each link, and the above-mentioned
一种可能的实施方式中,上述设备还包括第一调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路开销,调整后的该每条链路的链路开销大于调整前的该每条链路的链路开销。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该每条链路的链路优先级,上述计算单元902具体用于:根据该每条链路的链路优先级,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes the link priority of each link, and the above-mentioned
一种可能的实施方式中,上述设备还包括第二调整单元,用于在配置该隧道ECMP组之后,调整该隧道ECMP组中每条链路的链路优先级,调整后的该每条链路的链路优先级小于调整前的该每条链路的链路优先级。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该每个链路的链路标识,上述计算单元902具体用于:根据该每条链路的链路标识,确定该第二路径所经过的多个链路。In a possible implementation manner, the above-mentioned path information includes a link identifier of each link, and the above-mentioned
一种可能的实施方式中,上述设备还包括第一设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中的每条链路设置该链路标识。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备的设备标识,上述计算单元902具体用于:根据该其它每条路径中的每个网络设备的设备标识,确定该第二路径所经过的多个网络设备。In a possible implementation manner, the path information includes the device identifier of each network device in each other path, and the
一种可能的实施方式中,上述设备还包括第二设置单元,用于在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径的每个网络设备设置该设备标识。In a possible implementation manner, 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.
一种可能的实施方式中,上述路径信息包括该其它每条路径中的每个网络设备通信接口的接口标识,上述计算单元902具体用于:In a possible implementation manner, the path information includes an interface identifier of each network device communication interface in each other path, and the
在该网络设备通信接口为路径中的网络设备入接口的情况下,根据该其它每条路径中的每个网络设备入接口的第一接口标识,确定该第二路径所经过的多个网络设备入接口;In the case that the network device communication interface is an incoming interface of a network device in a path, 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;
在该网络设备通信接口为路径中的网络设备出接口的情况下,根据该其它每条路径中的每个网络设备出接口的第二接口标识,确定该第二路径所经过的多个网络设备出接口。In the case that the network device communication interface is an outgoing interface of the network device in the path, according to 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.
一种可能的实施方式中,上述设备还包括第三设置单元,用于:In a possible implementation manner, the above device further includes a third setting unit, configured to:
在该网络设备通信接口为路径中的网络设备入接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备入接口设置该第一接口标识;In the case where the network device communication interface is the network device ingress interface in the path, after configuring the tunnel ECMP group, set the first interface identifier for each network device ingress interface passed by each path in the tunnel ECMP group;
在该网络设备通信接口为路径中的网络设备出接口的情况下,在配置该隧道ECMP组之后,为该隧道ECMP组中每条路径经过的每个网络设备出接口设置该第二接口标识。In the case that the network device communication interface is the outgoing interface of the network device in the path, after configuring the tunnel ECMP group, set the second interface identifier for each outgoing interface of the network device passed by each path in the tunnel ECMP group.
图9所示装置900中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。For specific operations and beneficial effects of each unit in the apparatus 900 shown in FIG. 9 , refer to the corresponding descriptions in FIG. 4 and its possible method embodiments above, and details are not repeated here.
在采用对应各个功能划分各个功能模块的情况下,图10示出了装置的一种可能的逻辑结构示意图,该装置可以是上述执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置1000包括计算单元1001和设置单元1002。其中:In the case of dividing each functional module corresponding to each function, 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
计算单元1001,用于计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;计算单元1001可以执行图4所示步骤S402的具体描述中所述的计算ECMP组成员隧道的路径的操作。The
设置单元1002,用于对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;设置单元1002可以执行图4所示步骤S402的具体描述中所述的,为ECMP组成员隧道的路径中的目标对象设置路径信息的操作。The
该计算单元1001,还用于基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息,该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。The
一种可能的实施方式中,上述路径信息仅针对该隧道ECMP组内成员有效。In a possible implementation manner, the above path information is only valid for members in the tunnel ECMP group.
一种可能的实施方式中,上述目标对象为链路,该设置单元1002具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the
调整该第一路径中的每条链路的链路开销,调整后的该第一路径中的每条链路的链路开销大于调整前的该第一路径中的每条链路的链路开销,该路径信息包括该调整后的该第一路径中的每条链路的链路开销。Adjusting the link cost of each link in the first path, 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.
一种可能的实施方式中,上述目标对象为链路,上述设置单元1002具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the above-mentioned
调整该第一路径中的每条链路的链路优先级,调整后的该第一路径中的每条链路的链路优先级小于调整前的该第一路径中的每条链路的链路优先级,该路径信息包括该调整后的该第一路径中的每条链路的链路优先级。Adjusting the link priority of each link in the first path, the adjusted link priority of each link in the first path is less than the adjusted link priority of each link in the first path link priority, the path information includes the adjusted link priority of each link in the first path.
一种可能的实施方式中,上述目标对象为链路,上述设置单元1002具体用于:In a possible implementation manner, the above-mentioned target object is a link, and the above-mentioned
为该第一路径中的每条链路设置链路标识,该第一路径中的每条链路的该链路标识用于标识该第一路径中的每条链路已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每条链路的该链路标识。Setting a link identifier for each link in the first path, where the link identifier of each link in the first path is used to identify that each link in the first path has been used by the tunnel ECMP group Occupied, the path information includes the link identifier of each link in the first path.
一种可能的实施方式中,上述目标对象为网络设备,上述设置单元1002具体用于:In a possible implementation manner, the above-mentioned target object is a network device, and the above-mentioned
为该第一路径中的每个网络设备设置设备标识,该第一路径中的每个网络设备的该设备标识用于标识该第一路径中的每个网络设备已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备的该设备标识。Setting a device identifier for each network device in the first path, where the device identifier of each network device in the first path is used to identify that each network device in the first path has been occupied by the tunnel ECMP group, The path information includes the device identification of each network device in the first path.
一种可能的实施方式中,上述目标对象为网络设备通信接口,上述设置单元1002具体用于:In a possible implementation manner, the above-mentioned target object is a communication interface of a network device, and the above-mentioned
在该网络设备通信接口为路径中的网络设备入接口的情况下,为该第一路径中的每个网络设备入接口设置第一接口标识,该第一路径中的每个网络设备入接口的该第一接口标识用于标识该第一路径中的每个网络设备入接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备入接口的该第一接口标识;In the case where the network device communication interface is an incoming interface of the network device in the path, 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 ;
在该网络设备通信接口为路径中的网络设备出接口的情况下,为该第一路径中的每个网络设备出接口设置第二接口标识,该第一路径中的每个网络设备出接口的该第二接口标识用于标识该第一路径中的每个网络设备出接口已经被该隧道ECMP组占用,该路径信息包括该第一路径中的每个网络设备出接口的该第二接口标识。In the case where the network device communication interface is the outgoing interface of the network device in the 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 .
图10所示装置1000中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。For specific operations and beneficial effects of each unit in the apparatus 1000 shown in FIG. 10 , refer to the corresponding descriptions in FIG. 4 and its possible method embodiments above, and details are not repeated here.
图11所示为本申请提供的装置的一种可能的硬件结构示意图,该装置可以是上述实施例所述的执行设备,或者可以是该执行设备中的芯片,或者可以是该执行设备中的处理系统等。该装置1100包括:处理器1101、存储器1102和通信接口1103。处理器1101、通信接口1103以及存储器1102可以相互连接或者通过总线1104相互连接。Figure 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
示例性的,存储器1102用于存储装置1100的计算机程序和数据,存储器1102可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。Exemplarily, the
通信接口1103包括发送接口和接收接口,通信接口1103的个数可以为多个,用于支持装置1100进行通信,例如接收或发送数据或消息等。The
示例性的,处理器1101可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1101可以用于读取上述存储器1102中存储的程序,使得装置1100执行如上述图4及其可能的实施例中所述的任一种路径规划方法中所述执行设备所做的操作。Exemplarily, the
一种可能的实施方式中,处理器1101可以用于读取上述存储器1102中存储的程序,执行如下操作:在第一网络设备上配置用于流量负载均衡的隧道等价多路径ECMP组,其中,该隧道ECMP组的成员由多条隧道组成,该多条隧道包括第一隧道,该第一隧道基于第一路径向目的地址转发流量;在该第一路径发生故障时,根据该多条隧道除了该第一隧道以外的其它每条隧道所经过的其它每条路径的路径信息,计算第二路径,该第二路径与该其它每条路径不相交;将该第一隧道重路由到该第二路径。In a possible implementation manner, the
另一种可能的实施方式中,处理器1101可以用于读取上述存储器1102中存储的程序,执行如下操作:计算第一网络设备与第二网络设备之间的第一隧道经过的第一路径;对该第一路径中的目标对象设置路径信息,该目标对象为链路,或该目标对象为网络设备,或该目标对象为网络设备通信接口;基于该路径信息计算第一网络设备与第二网络设备之间的第二隧道经过的第二路径,其中,该第一路径和该第二路径不相交,换言之,该第二路径中的目标对象中至少有一个目标对象未设置有该路径信息。该第一隧道与该第二隧道属于隧道等价多路径ECMP组的成员。In another possible implementation manner, the
图11所示装置1100中各个单元的具体操作以及有益效果可以参见上述图4及其可能的方法实施例中对应的描述,此处不再赘述。For specific operations and beneficial effects of each unit in the apparatus 1100 shown in FIG. 11 , refer to the corresponding descriptions in FIG. 4 and its possible method embodiments above, and details are not repeated here.
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述图4及其可能的方法实施例中任一实施例所述方法中所述执行设备所做的操作。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.
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述图4及其可能的方法实施例中任一实施例所述方法中所述执行设备所做的操作将被执行。The embodiment of the present application also provides a computer program product. When 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.
综上所述,本申请在隧道中的路径出现故障后,通过规划与现有的用于负载均衡的隧道ECMP成员的路径不相交的路径,解决了故障后网络拥塞的问题。另外,现有的基于约束规划路径的方案,故障后仍然要走约束的路径,无法重路由到其它可行的路径,导致业务中断,降低网络可靠性,本申请在路径故障后,可以快速重路由到另外一条等价路径实现流量的负载分担,减缓网络拥塞。To sum up, 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. In addition, 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.
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and are not intended to limit it; although the application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: It is still possible to modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the technical solutions of the various embodiments of the application. scope.
Claims (45)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656450.6A CN115468572A (en) | 2021-06-11 | 2021-06-11 | Path planning method and related equipment |
PCT/CN2022/097358 WO2022257917A1 (en) | 2021-06-11 | 2022-06-07 | Path planning method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656450.6A CN115468572A (en) | 2021-06-11 | 2021-06-11 | Path planning method and related equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115468572A true CN115468572A (en) | 2022-12-13 |
Family
ID=84365020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110656450.6A Pending CN115468572A (en) | 2021-06-11 | 2021-06-11 | Path planning method and related equipment |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115468572A (en) |
WO (1) | WO2022257917A1 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4757826B2 (en) * | 2007-03-27 | 2011-08-24 | Kddi株式会社 | Communication path control device, program, and recording medium |
US7852751B2 (en) * | 2008-02-15 | 2010-12-14 | Cisco Technology, Inc. | Constructing repair paths around multiple non-available links in a data communications network |
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 |
CN105634973B (en) * | 2014-10-30 | 2019-07-12 | 华为数字技术(苏州)有限公司 | Method for routing and equipment based on load balancing |
US10237206B1 (en) * | 2017-03-05 | 2019-03-19 | Barefoot Networks, Inc. | Equal cost multiple path group failover for multicast |
CN110417569B (en) * | 2018-04-28 | 2021-09-21 | 华为技术有限公司 | Network link fault processing method and tunnel endpoint equipment |
CN110986979B (en) * | 2019-11-27 | 2021-09-10 | 浙江工商大学 | SDN multi-path routing planning method based on reinforcement learning |
-
2021
- 2021-06-11 CN CN202110656450.6A patent/CN115468572A/en active Pending
-
2022
- 2022-06-07 WO PCT/CN2022/097358 patent/WO2022257917A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022257917A1 (en) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3949293B1 (en) | Slice-based routing | |
EP2817928B1 (en) | Controller placement for fast failover in the split architecture | |
EP3698520B1 (en) | A communication routing system | |
US20150043348A1 (en) | Traffic Flow Redirection between Border Routers using Routing Encapsulation | |
US12052177B1 (en) | Apparatus and method for providing hybrid access coordination | |
US9559985B1 (en) | Weighted cost multipath routing with intra-node port weights and inter-node port weights | |
WO2007005307A1 (en) | Mechanism to load balance traffic in an ethernet network | |
US11089507B2 (en) | Scalable reachability for movable destinations attached to a leaf-spine switching architecture | |
EP3474504B1 (en) | Leaf-to-spine uplink bandwidth advertisement to leaf-connected servers | |
CN112054969B (en) | Method and device for realizing message mirror image | |
CN106130920A (en) | A kind of message forwarding method and device | |
WO2022057810A1 (en) | Service packet forwarding method, sr policy sending method, device, and system | |
KR102011021B1 (en) | Method and framework for traffic engineering in network hypervisor of sdn-based network virtualization platform | |
CN109088822B (en) | Data flow forwarding method, device, system, computer equipment and storage medium | |
CN103441930A (en) | MPLS TE packet forwarding and management method and device | |
WO2013173758A2 (en) | Highly scalable modular system with high reliability and low latency | |
WO2022257917A1 (en) | Path planning method and related device | |
CN114615155A (en) | Method and device for deploying service | |
CN111740917A (en) | Message forwarding method and device | |
WO2024093778A1 (en) | Packet processing method and related apparatus | |
WO2018179922A1 (en) | Communication device, communication control method, and communication system | |
KR102092091B1 (en) | Methods, apparatus and computer programs for providing high availability and reliability in software defined network | |
Vanamoorthy et al. | A hybrid approach for providing improved link connectivity in SDN. | |
CN112468391B (en) | Network fault delivery method and related product | |
CN108512771A (en) | A kind of method and apparatus that data stream load is shared |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |