掌桥专利:专业的专利平台
掌桥专利
首页

路由计算方法、装置、存储介质及电子装置

文献发布时间:2023-06-19 19:30:30


路由计算方法、装置、存储介质及电子装置

技术领域

本发明涉及通信领域,具体而言,涉及一种路由计算方法、装置、存储介质及电子装置。

背景技术

随着5G、多云、物联网的发展以及行业数字化进程的深入,网络需要服务的范围(从5G承载网的接入、汇聚、核心再到骨干网、云数据中心、虚拟化/容器化网元的调度)、规模(海量物联网终端)和颗粒度(区分同一租户的不同应用)都需要提升,同时网络需要能用一种更灵活的方式被上层应用所使用(或者叫驱动)。网络比以往任何时候都需要成为一个平台。传统网络要应对这些新的需求很困难,网络需要一种创新的传送技术来统一各个不同的域,从而打破孤岛,提供一致的SLA,并通过统一的接口供上层调用。业界公认的技术就是分段路由(SR,Segment Routing)。

SR具有源路由和状态只存于边缘的特点,使其可以支撑超大规模的流量工程。SR其中一个关键功能是SR-TE。SR-TE将用户的意图转换为Segment列表,Segment列表是指Segment的有序列表,其中每个Segment的代表特定操作,然后边缘设备引导流量至Segment列表所对应的路径上。可应用于Segment Routing MPLS和Segment Routing IPv6的场景。

为了SR-TE后续创新(包括SRv6)打造更加坚实的基础,思科在2017年提出了全新的SR-TE体系:分段路由策略SR Policy。SR Policy完全抛弃了隧道口的概念,是重新设计的一条SR-TE体系,并且draft-itef-spring-segment-routing-policy-08正式定义了SRPolicy。

SR Policy由以下三元组标识:

头端:SR Policy生成/实现的地方;

颜色:是任意的32位数值,用于区分同一头端和端点对之间的多条SR Policy;

端点:SR Policy的终结点,或称为尾端,是一个IPv4/IPv6地址。

颜色是SR Policy的重要属性,通常代表意图,可简单理解为SR Policy路由过程中的算路最优策略,表示到达端点的特定方式(例如低延迟、低成本等)。这个新的基本概念用于实现SR-TE的自动化。基于SR Policy的SR-TE将BGP路由置于解决方案的核心,通过对业务路由进行着色实现自动生成SR Policy和自动引流至SR Policy。

如前所述,SR Policy由(头端,颜色,端点)三元组标识。在给定的头端节点上,SRPolicy由(颜色,端点)二元组标识。SR Policy的候选路径代表将流量从相应SR Policy头端传送到端点的特定方式。每条候选路径(Cpath,Candidate Path)有一个偏好值(Preference)。路径的偏好值越高则越优选。SR Policy具有至少一条候选路径,其中具有最高偏好值的有效候选路径是活动候选路径。每条候选路径可以具有一个或者多个Segment列表(SL,Segment List),每个SL具有关联的负载均衡权重w。引导至此路径的流量根据权重比例,在所有的有效SL之间进行负载均衡。在SR-MPLS中,Segment是MPLS标签,Segment列表是MPLS标签栈。对于被引导至SR Policy的数据包,此标签栈(Segment列表)将被压入到数据包报头中。图1为一个SR Policy的路径模型。

那么根据SR Policy的流量信息,如何在网络中进行路径计算,以获得满足不同要求的Cpath集合,显得尤为重要,相关技术中缺少相关计算方法。

针对相关技术中存在的无法根据路由策略进行路由计算的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种路由计算方法、装置、存储介质及电子装置,以至少解决相关技术中存在的无法根据路由策略进行路由计算的问题。

根据本发明实施例的一个方面,提供了一种路由计算方法,包括:接收客户端发送的路由请求,其中,所述路由请求用于请求按照预定策略计算头端到尾端之间的目标路由;对所述路由请求进行分析,以确定出所述预定策略中包括的所述头端到所述尾端之间的候选路径Cpath的负载类型以及约束信息;基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由。

在一个示例性实施例中,在基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由之前,所述方法还包括:接收目标设备上报的全网的拓扑数据信息;基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由包括:基于所述拓扑数据信息确定所述Cpath中包括的可用分段列表SL;基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由。

在一个示例性实施例中,所述负载类型包括等值负载分担ECMP或非等值负载分担UCMP;所述约束信息包括强制约束信息和尽力约束信息。

在一个示例性实施例中,在所述负载类型包括所述ECMP的情况下,基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由包括:确定所述预定策略中包括的预先配置的目标带宽以及所述目标路由的目标数量;重复执行如下操作,直至确定出所述目标路由为止:基于所述目标数量对所述目标带宽进行均分,以得到均分带宽;按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL;在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;在确定不存在允许承载所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值大于1的情况下,对所述目标数量的取值进行调整,其中,所述目标数量的调整后的取值小于所述目标数量的调整前的取值。

在一个示例性实施例中,在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL之后,所述方法还包括:在确定不存在满足所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值等于1的情况下,停止路由计算。

在一个示例性实施例中,对所述目标数量的取值进行调整包括:将所述目标数量的取值减1。

在一个示例性实施例中,在所述负载类型包括所述UCMP的情况下,基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由包括:确定所述预定策略中包括的预先配置的目标带宽;在确定所述预定策略中包括预先配置的权重系数的情况下,按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL,其中,所述权重系数中包括的各个系数所对应的带宽之和为所述目标带宽;在确定存在满足所述权重系数所对应的带宽的所述目标SL的情况下,将所述目标SL确定为所述目标路由。

在一个示例性实施例中,在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL之后,所述方法还包括:在确定不存在满足所述权重系数所对应的带宽的所述目标SL的情况下,停止路由计算。

在一个示例性实施例中,在确定所述预定策略中不包括所述权重系数的情况下,所述方法还包括:按照所述预定策略中包括的所述目标路由的目标数量对所述目标带宽进行均分,以得到均分带宽;按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的所述目标SL;在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;在确定所述可用SL中包括的允许承载所述均分带宽的第一可用SL的数量小于所述目标数量的情况下,确定所述目标带宽中包括的未被均分至所述第一可用SL中的剩余带宽;按照所述第一可用SL的最大承载带宽将所述剩余带宽分配至所述第一可用SL中;在确定将所述剩余带宽全部分配至所述第一可用SL中的情况下,将所述第一可用SL确定为所述目标路由;在确定仅将所述剩余带宽中包括的部分剩余带宽分配至所述第一可用SL中的情况下,从所述可用SL中包括的除所述第一可用SL之外的可用SL中确定出能够承载所述剩余带宽中包括的除所述部分剩余带宽之外的其余剩余带宽的第二可用SL,将所述第一可用SL和所述第二可用SL确定为所述目标路由。

在一个示例性实施例中,所述强制约束信息包括链路级别的强制约束信息、SL级别的强制约束信息。

在一个示例性实施例中,所述尽力约束信息包括尽力避开链路、节点的约束信息,其中,按照约束优先级由高到低,所述尽力约束信息包括:链路分离、节点分离、网元分离、共享风险链路组SRLG分离、共享风险节点组SRNG分离、域分离。

在一个示例性实施例中,基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由包括:在确定当前配置的所述Cpath为需要配置的多个Cpath中的一个Cpath,且需要配置的多个Cpath中包括有已配置完成的其他Cpath的情况下,确定其他Cpath中所涉及到的链路和节点;基于其他Cpath中所包括的链路和节点更新所述约束信息;基于所述负载类型和更新后的所述约束信息进行路由计算,以得到所述目标路由。

根据本发明实施例的又一个方面,还提供了一种路由计算装置,包括:第一接收模块,用于接收客户端发送的路由请求,其中,所述路由请求用于请求按照预定策略计算头端到尾端之间的目标路由;分析模块,用于对所述路由请求进行分析,以确定出所述预定策略中包括的所述头端到所述尾端之间的候选路径Cpath的负载类型以及约束信息;计算模块,用于基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由。

根据本发明实施例的又一个方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明实施例的又一个方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述任一项方法实施例中的步骤。

通过本发明,通过对客户端发送的路由请求进行分析,以确定出预定路由策略中包括的头端和尾端之间的候选路径Cpath的负载类型以及约束信息,然后根据负载类型和约束信息进行路由计算,即可得到满足预定路由策略的目标路由。解决了相关技术中存在的无法根据路由策略进行路由计算的问题,达到了保证按照预定路由策略进行路由计算的成功率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是相关技术中SR Policy路径模型示意图;

图2是本发明实施例的路由计算方法的移动终端硬件结构框图;

图3是根据本发明实施例的路由计算方法流程图;

图4是根据本发明实施例的路由计算系统简化示意图;

图5是根据本发明具体实施例的路由计算方法流程图;

图6是根据本发明具体实施例的不同尽力分离约束类型的权重示意图;

图7是根据本发明具体实施例的ECMP路由示例拓扑图;

图8是根据本发明具体实施例的UCMP路由示例拓扑图;

图9是根据本发明实施例的路由计算装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1是相关技术中SR Policy路径模型示意图,如图1所示,一个Sr Policy具有多个Cpath(Candidate Path),每一个Cpath内包含多个SL。根据单个Cpath内的SL的负载权重是否要一致,SR Policy的流量负载形式又可以分为等价多路径(Equal Cost MultiplePath,ECMP,或称为等值负载分担)和非等价多路径(Unequal Cost Multiple Path,UCMP,或称为非等值负载分担)两种类。ECMP表示单个Cpath内所有SL的负载权重都一样。UCMP则不要求一样,只要求根据SL的负载权重对SR Policy的流量能够全部分担即可。假如SRPolicy的总流量为Bw,则第i个SL所分担的流量对应的计算公式(1)为:

那么根据SR Policy的流量信息,如何在网络中进行路径计算,获得满足要求的Cpath集合,控制器算法起着至关重要的作用。

本申请实施例能够支持ECMP算路与UCMP算路,同时支持各种复杂的路由策略与路由约束。

常用的路由策略,即SR Policy三元组的颜色所表征的路由最优策略有:

最小时延策略:SL途经所有的链路的时延加和最小;

最小跳数策略:SL途经链路个数最小;

最大物理带宽策略:SL途经所有的链路,各个链路中最小物理带宽值最大(取所有链路物理带宽的最小值作为判断依据,越大越好);

最大剩余带宽:SL途经所有的链路,各个链路中最小剩余的物理带宽值最大(取所有最大剩余物理带宽的最小值作为判断依据,越大越好);

最小带宽利用率:SL途经所有的链路,各个链路中最大带宽利用率最小(取所有链路带宽利用率的最大值作为依据,越大越差);

组合策略:上述几种路由策略可两两进行叠加。策略1+策略2,是指当按照策略1计算得到了多条等价路径后,需要再从这批路径中选择策略2最优的。

复杂的路由策略包含以下多种类型:

约束类型一:算路强约束

带宽约束:Policy携带带宽算路时,要求计算出的Cpath按照SL的权重进行流量分担时,经过的链路要满足带宽约束;

亲和力约束:分为任意排除(全排)EXCLUDE_ANY,全部包含INCLUDE_ALL,任意包含INCLUDE_ANY,一个Cpath请求里会包含上述三种亲和力约束,链路的亲和力要在上述三种条件下都满足才可以,否则认为链路不可走;

必排约束:分为必排节点,必排链路,容易理解,算路时过滤掉这些元素;

最大时延约束:Cpath一旦配置最大时延约束,SL途经链路的时延之和必须小于最大时延;

最小时延约束:Cpath一旦配置最小时延约束,SL途经链路的时延之和必须大于最小时延;

时延差约束:SL级别的时延差约束阈值T,对Cpath内的多条SL分别求总的时延,要求各个SL的时延差不能超过阈值,计算公式与链路界别的阈值计算类似;

流量阈值门限约束:链路的实时带宽利用率阈值T时,不经过该链路;此外,当policy携带流量算路时,若按照SL权重进行带宽分配到某链路上时,要求链路叠加后的带宽利用率也不能超过该阈值T;

最大跳数约束:该约束只在“最小跳数策略”下才生效,要求SL途经链路的个数要小于最小跳数约束;

链路丢包率约束:配置该阈值后,要求SL途经的链路的丢包率都不能超过该阈值;

V4、V6算路:若指定了V4,则只考虑V4链路,V6链路视为非法;反之同样;

约束类型二:算路尽力约束

尽力排除约束:分离尽力排除节点、尽力排除链路,算路时,尽量不经过这些元素;

SRLG分离约束:两条SL之间,尽量避免途经具有相同SRLG的链路;

约束类型三:Cpath内的分离策略

节点尽量分离,两条SL的节点不能完全重合。完全重合的概念是节点从头到尾完全一致。如两条SL都依次经过了A,B,C三个节点,算作完全重合。若一条SL经过了A,B,C,另一条经过了A,D,B,C,则不算重合;

链路分离:链路尽量分离,配不配都一样,默认策略。两条SL不能完全重合,完全重合的概念是从头到尾三层链路完全一致,类似节点完全重合的道理;

约束类型四:Cpath间的分离策略

如果SR Policy配置了Cpath间的链路分离约束,计算第N个Cpath时,会把前N-1个Cpath的所有SL经过的链路当做尽力排除链路。若当前Cpath选择了网元分离,则也会把前N-1个Cpath经过的所有非头尾节点当做尽力排除节点。

经过上述约束分析可知,SR Policy的路由约束复杂多变,本申请实施例将主要从ECMP/UCMP算路、强制约束、尽力约束三方面来介绍控制器算法处理方案。

本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图2是本发明实施例的路由计算方法的移动终端硬件结构框图。如图2所示,移动终端可以包括一个或多个(图2中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器204,在一个示例性实施例中,上述移动终端还可以包括用于通信功能的传输设备206以及输入输出设备208。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。

存储器204可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的路由计算方法对应的计算机程序,处理器202通过运行存储在存储器204内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备206包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备206可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种路由计算方法,图3是根据本发明实施例的路由计算方法流程图,如图3所示,该流程包括如下步骤:

步骤S302,接收客户端发送的路由请求,其中,所述路由请求用于请求按照预定策略计算头端到尾端之间的目标路由;

步骤S304,对所述路由请求进行分析,以确定出所述预定策略中包括的所述头端到所述尾端之间的候选路径Cpath的负载类型以及约束信息;

步骤S306,基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由。

通过上述步骤,通过对客户端发送的路由请求进行分析,以确定出预定路由策略中包括的头端和尾端之间的候选路径Cpath的负载类型以及约束信息,然后根据负载类型和约束信息进行路由计算,即可得到满足预定路由策略的目标路由。解决了相关技术中存在的无法根据路由策略进行路由计算的问题,达到了保证按照预定路由策略进行路由计算的成功率的效果。

其中,上述步骤的执行主体可以为管控产品,或控制器,或IP网络控制器,或路径计算单元,例如,管控产品IP控制器,上述步骤的执行主体还可以是其他的具备类似处理能力的处理设备或处理单元等,但不限于此。下面以IP控制器执行上述操作为例(仅是一种示例性说明,在实际操作中还可以是其他的设备或模块来执行上述操作)进行说明:

在上述实施例中,IP控制器接收客户端发送的路由请求,其中,路由请求用于请求按照预定策略计算头端到尾端之间的目标路由,例如,预定策略为常用的路由策略,或组合策略,或复杂的路由策略,如算路强约束或算路尽力约束或分离策略等,再对路由请求中包括的SR Policy进行分析,以确定出预定策略中包括的头端到尾端之间的候选路径Cpath的负载类型以及约束信息,例如,分析SR Policy的负载分担方式是ECMP或UCMP,以及约束信息的类型,然后基于负载类型和约束信息进行路由计算,以得到目标路由。解决了相关技术中存在的无法根据路由策略进行路由计算的问题,达到了保证按照预定路由策略进行路由计算的成功率的效果。

在一个可选的实施例中,在基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由之前,所述方法还包括:接收目标设备上报的全网的拓扑数据信息;基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由包括:基于所述拓扑数据信息确定所述Cpath中包括的可用分段列表SL;基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由。在本实施例中,IP控制器具备收集全局拓扑信息的能力,在基于负载类型和约束信息进行路由计算以得到目标路由之前,还可由IP控制器收集全网的拓扑数据信息,例如,接收目标设备(如网络设备,或路由设备)上报的全网的拓扑数据信息;上述路由计算可先基于IP控制器收集的拓扑数据信息,确定Cpath中包括的可用分段列表SL,然后基于负载类型和约束信息进行路由计算,以从可用SL中确定出目标路由。通过本实施例,实现了收集全局拓扑数据信息的目的,以及基于全局拓扑数据信息确定目标路由的目的。

在一个可选的实施例中,所述负载类型包括等值负载分担ECMP或非等值负载分担UCMP;所述约束信息包括强制约束信息和尽力约束信息。在本实施例中,负载类型可以是等值负载分担ECMP,ECMP表示单个Cpath内所有SL的负载权重都一样;负载类型还可以是非等值负载分担UCMP,UCMP则不要求一样,只要求根据SL的负载权重对SR Policy的流量能够全部分担即可;上述约束信息可以包括强制约束信息和尽力约束信息,约束信息可以包括算路强约束,例如,带宽约束,亲和力约束,必排约束,最大时延约束,时延差约束等,约束信息还可以包括算路尽力约束,例如,尽力排除约束,SRLG分离约束等。通过本实施例,实现了根据不同负载类型及不同的约束信息进行路由计算的目的。

在一个可选的实施例中,在所述负载类型包括所述ECMP的情况下,基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由包括:确定所述预定策略中包括的预先配置的目标带宽以及所述目标路由的目标数量;重复执行如下操作,直至确定出所述目标路由为止:基于所述目标数量对所述目标带宽进行均分,以得到均分带宽;按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL;在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;在确定不存在允许承载所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值大于1的情况下,对所述目标数量的取值进行调整,其中,所述目标数量的调整后的取值小于所述目标数量的调整前的取值。在本实施例中,在负载类型包括ECMP的情况下,先确定预定策略中包括的目标带宽及目标路由的目标数量,目标数量可以为一个或多个,例如,SR Policy配置了带宽Bw,Cpath内指定的SL条数为N,可将Bw均分为N份,构造N个算路请求,然后,基于强制约束信息和尽力约束信息判断可用的SL中国是否存在满足均分带宽的N个目标SL,如果存在则将N个目标SL确定为目标路由,即相当于路由计算成功;当确定不存在满足均分带宽的N个目标SL时,对目标数量的取值进行调整,例如,对目标数量的取值进行减1(如N-1),即尝试将Bw均分为N-1份。通过本实施例,实现了基于负载类型为ECMP及不同的约束信息进行路由计算的目的。

在一个可选的实施例中,在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL之后,所述方法还包括:在确定不存在满足所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值等于1的情况下,停止路由计算。在本实施例中,当确定可用SL中不存在满足均分带宽的目标数量的目标SL的情况下,对目标数量的取值进行减1后循环执行前述对目标带宽进行均分、判断是否存在目标数量的目标SL等操作,当目标数量的取值等于1的情况下,将停止路由计算,即直至减小到为Cpath只计算一条SL为止。

在一个可选的实施例中,对所述目标数量的取值进行调整包括:将所述目标数量的取值减1。在本实施例中,对目标数量的取值进行调整可采取减1的方式,如上述将N个目标SL减为N-1个目标SL,再进行N-1个算路请求。

在一个可选的实施例中,在所述负载类型包括所述UCMP的情况下,基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由包括:确定所述预定策略中包括的预先配置的目标带宽;在确定所述预定策略中包括预先配置的权重系数的情况下,按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL,其中,所述权重系数中包括的各个系数所对应的带宽之和为所述目标带宽;在确定存在满足所述权重系数所对应的带宽的所述目标SL的情况下,将所述目标SL确定为所述目标路由。在本实施例中,在负载类型包括UCMP的情况下,先确定预定策略中包括的目标带宽,且在确定预先配置了SL的权重系数的情况下,严格按照权重系数比例对应的SL带宽约束进行SL路径计算,例如,SL的约束带宽可根据前述公式(1)计算得到,在确定存在满足权重系数所对应的带宽的目标SL的情况下,将目标SL确定为目标路由。通过本实施例,实现了对携带了权重系数的SL的流量约束路由进行计算的目的。

在一个可选的实施例中,在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL之后,所述方法还包括:在确定不存在满足所述权重系数所对应的带宽的所述目标SL的情况下,停止路由计算。在本实施例中,当确定不存在满足上述权重系数所对应的带宽的目标SL的情况下,则停止路由计算。

在一个可选的实施例中,在确定所述预定策略中不包括所述权重系数的情况下,所述方法还包括:按照所述预定策略中包括的所述目标路由的目标数量对所述目标带宽进行均分,以得到均分带宽;按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的所述目标SL;在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;在确定所述可用SL中包括的允许承载所述均分带宽的第一可用SL的数量小于所述目标数量的情况下,确定所述目标带宽中包括的未被均分至所述第一可用SL中的剩余带宽;按照所述第一可用SL的最大承载带宽将所述剩余带宽分配至所述第一可用SL中;在确定将所述剩余带宽全部分配至所述第一可用SL中的情况下,将所述第一可用SL确定为所述目标路由;在确定仅将所述剩余带宽中包括的部分剩余带宽分配至所述第一可用SL中的情况下,从所述可用SL中包括的除所述第一可用SL之外的可用SL中确定出能够承载所述剩余带宽中包括的除所述部分剩余带宽之外的其余剩余带宽的第二可用SL,将所述第一可用SL和所述第二可用SL确定为所述目标路由。在本实施例中,当预定策略中不包括上述权重系数的情况下,即用户没有指定SL的权重系数时,则由控制器来决定各条SL的权重系数,例如,按照上述ECMP负载类型的路由算法,得出K条满足约束的SL,当K等于目标数量N时,则将目标数量的目标SL确定为目标路由,直接算路结束;当可用SL中包括的允许承载均分带宽的第一可用SL的数量K小于目标数量N时,例如,K条SL已经分担了带宽Bw1,确定出Policy未被分配的带宽是Bw2=Bw-Bw1,尝试将Bw2尽力加塞到已有的K条SL中,若Bw2全部加塞成功,算路成功。若加塞了Bw3,则确定Policy还剩余Bw4=Bw2-Bw3的带宽没有被分担,则根据Bw4再去计算N-K条SL。通过本实施例,实现了对于负载类型为UCMP且预定策略中不包括权重系数的情况下进行路由计算的目的。

在一个可选的实施例中,所述强制约束信息包括链路级别的强制约束信息、SL级别的强制约束信息。在本实施例中,上述强制约束信息包括链路级别和SL级别的强制约束信息。

在一个可选的实施例中,所述尽力约束信息包括尽力避开链路、节点的约束信息,其中,按照约束优先级由高到低,所述尽力约束信息包括:链路分离、节点分离、网元分离、共享风险链路组SRLG分离、共享风险节点组SRNG分离、域分离。在本实施例中,尽力约束信息包括尽力避开链路、节点的约束信息,根据避开优先级可可设计具有层次化区分的权重,例如,尽力约束信息的优先级为:链路分离>节点分离>网元分离>共享风险链路组SRLG分离>=共享风险节点组SRNG分离>=域分离。通过本实施例,实现了根据不同尽力约束信息以及尽力约束信息的不同优先级进行路由计算的目的。

在一个可选的实施例中,基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由包括:在确定当前配置的所述Cpath为需要配置的多个Cpath中的一个Cpath,且需要配置的多个Cpath中包括有已配置完成的其他Cpath的情况下,确定其他Cpath中所涉及到的链路和节点;基于其他Cpath中所包括的链路和节点更新所述约束信息;基于所述负载类型和更新后的所述约束信息进行路由计算,以得到所述目标路由。在本实施例中,针对需要配置多个Cpath的情况,在确定出当前配置的Cpath时,先确定其他Cpath中的链路和节点,并根据其他Cpath中的链路和节点更新约束信息,然后,再基于负载类型及更新后的约束信息进行路由计算。通过本实施例,针对需要配置多个Cpath的场景,实现了根据已配置Cpath对约束信息进行及时更新的目的,以及基于负载类型和更新后的约束信息进行路由计算的目的。

显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。下面结合具体实施例对本发明进行具体说明:

图4是根据本发明实施例的路由计算系统简化示意图,如图4所示,该系统包括设备、南向接口、PCE模块、北向接口,实际上一个完整的控制器还包含很多其它模块,此处只罗列出了本发明主要涉及到的模块,其中,

设备:实际的IP网络设备,如路由器、交换机;

南向接口:南向接口是管控产品与交换机交互的模块,采用协议使得控制器可以采集到光设备信息;

PCE组件:PCE模块实际上包含了很多模块,其自身就是一个比较复杂的系统。本发明中主要涉及的路由模块只是其一部分,除了路由模块,还有资源管理模块,图管理模块。PCE通过协调调度各模块之间的交互,达到路由计算的目的;

北向接口:主要指的就是业务配置客户端,是更上层的应用模块。

本发明实施例应用于管控产品IP控制器路径计算单元(Path CalculateElement,PCE),控制器收集全局拓扑信息的能力,借助控制器的全局视野,PCE可以利用IP网络拓扑进行路径计算,涉及到的重要环境组件主要有以下三个:

业务配置客户端:用户使用该界面可以配置SR Policy,如添加Policy的AZ点、Cpath个数、Cpath的优先级、Cpath内的SL数目、各种约束等。用户在界面触发操作后,发起的路由请求会到PCE;

PCE:该模块是本发明的实施模块,PCE会执行上述用户发起的算路请求,利用当前网络的状态信息计算路由计算;

设备下发:设备层根据PCE返回的路由结果,进行业务通道下发,成功后即可用于带宽/流量的转发。

图5是根据本发明具体实施例的路由计算方法流程图,如图5所示,为了方便陈述算路流程,我们假设SR Policy配置多个Cpath,该流程包括如下步骤:

步骤S11:控制器收集信息:控制器需要有全网的拓扑数据信息,包括网络的节点信息、链路信息,更细致的划分还有链路的可用资源信息。转发设备通过南向协议将这些信息上报给控制器;

步骤S12:SR Policy请求分析。分析SR Policy的负载分担方式,如果是ECMP,则进入步骤S13,否则是UCMP进入步骤S14,开始计算第一条Cpath;

步骤S13:ECMP路由:SR Policy配置了带宽Bw,Cpath内指定的SL条数为N。将Bw均分为N分,构造N个算路请求,按照分离策略依次调用步骤S15和S16来计算出N条SL。若N条SL全部计算成功,则整体Cpath算路成功。如果不能计算出N条SL,则尝试将Bw均分为N-1份,同样的按照分离策略依次调用步骤S15和步骤S16,直至减小到为Cpath只计算一条SL;

步骤S14:UCMP路由:当用户指定了SL的权重系数时,严格按照权重系数比例对应的SL带宽约束进行SL路径计算。SL的约束带宽根据公式1可计算得到。没有指定SL数量时,则控制器来决定各条SL的权重系数。首先调用ECMP路由模块,可以得到K(K<=N)条满足约束的SL。当K等于N时,则直接算路结束,所有的SL权重系数都为1。当K小于N时,K条SL已经分担了带宽Bw1,Policy未被分配的带宽是Bw2=Bw-Bw1.尝试将Bw2尽力加塞到已有的K条SL中,若Bw2全部加塞成功,算路成功。若加塞了Bw3,则Policy还剩余Bw4=Bw2-Bw3的带宽没有被分担,则根据Bw4再去计算N-K条SL。上述流程可以由递归实现;

步骤S15:单个SL路由算法模块:内置了K最短路径计算算法,可以进行多次算路,类似一个迭代器,供其它步骤调用,单迭代器有迭代次数上限,当达到S14的上限时,即使不满足强约束,也会终止PCE算路流程,此时算路失败。该模块需要设计权重阅读器来约束路径经过的链路,如对于SR Policy配置的强制排除的链路、节点,不满足亲和力、丢包率、流量阈值门限的链路,要求严格不能经过,针对不能经过的链路和节点,当算法经过时,将其的链路权重设置成无穷大,这类强制约束主要是链路级别的,即只要在过滤链路时进行处理即可。对于尽量避开的链路、节点,根据避开优先级可可设计具有层次化区分的权重。例如,假设当前的尽力分离的优先级为:链路分离失败>节点分离失败>网元分离失败>共享风险链路组(SRLG,Share Risk Link Group)分离失败>=共享风险节点组(SRNG,Share RiskNode Group)分离失败>=域分离失败。经验值告诉我们,一条路径的跳数不太可能超过64跳,于是我们使得层次权重有64倍数关系。在有基础值initalMax的情况下,不同尽力分离约束类型的权重如图6所示,图6是根据本发明具体实施例的不同尽力分离约束类型的权重示意图,注意,这里令SRLG和SRNG以及域分离失败的权重等于initialMax,因为initialMax本身也是一个非常大的值,要远大于链路本身的权重值;

步骤S16:SL结果校验,校验是否满足SL级别的强制约束,如是否满足最大时延约束、最小时延约束、时延差约束、最大跳数约束。上述几种约束约束如果不满足,则继续调用单个SL路由算法模块,寻求满足强约束的SL路径;

步骤S17:若SR Policy配置了多个Cpath,当前Cpath计算结束后,计算下一个Cpath。将已经计算出的所有Cpath涉及到的链路和节点记录下来,根据用户配置的Cpath间的分离等级,如果是强制分离则将链路和节点集合添加到下一个Cpath的算路强制排除约束中,如果是尽力分离则将链路和节点集合添加到下一个Cpath的算路尽力排除约束中;

步骤S18:结果返回,PCE将计算得到SR Policy路由结果返回,设备进行转发。

需要说明的是,图5中未示出上述步骤S17、S18,步骤S17是针对需要配置多个Cpath的场景,如果SR Policy仅配置单个Cpath,在执行上述步骤S11-S16后,可直接执行步骤S18;上述实施例主要在IP控制器内实施,尤其是在控制器内的PCE模块实施。

通过上述实施例,提供了一种SR Policy场景下的多约束算法,能够保证SRPolicy的路由质量严格满足用户要求,体现SR Policy的精细化定制结果。具体包括:

多路由策略:可以支持常见的六种路由策略,以及六种策略可以两两组合;

ECMP:Policy配置所需带宽Bw,Cpath指定SL数量N;尽量计算出N条SL,N条SL的负载权重完全一样,都是1;

UCMP:Policy配置所需带宽Bw,Cpath指定SL数量N,尽量从计算出N条SL,若SRPolicy已经携带了各条SL的权重系数,则严格按照所携带的系数进行SL的流量约束路由,若不携带各条SL的权重系数,则需要控制器对权重系数进行指定;

强制分离约束:严格遵守用户指定的强制约束;

尽力分离约束:遵守用户指定的尽力约束;

控制器算路计算得到SR Policy的路径后,将路由下发到设备,设备根据SL信息进行流量的转发。

为了使本发明实施例的目的、技术方案和优点更加清晰,下面结合附图对本发明的实施例作详细描述。下面通过参考附图描述的实施例是示例型的,仅用于解释本发明,而不能解释为对本发明的限制。为了方便陈述,我们假设SR Policy只配置了一个Cpath,算路最优策略是时延最小策略,重点介绍ECMP和UCMP场景下SL如何进行流量分担。

具体实施例一:ECMP负载分担示例

图7是根据本发明具体实施例的ECMP路由示例拓扑图,如图7所示,链路上括号内的左侧数据代表链路的时延,右侧数据代表链路的剩余带宽资源。假设当前SR Policy的最优路由测试为时延最优,配置了强制排除链路A---E,Cpath中SL的数目N=3,且要求SL之间尽量分离。对Policy进行路由计算,下面按不同场景分别进行说明:

场景1:假设SR Policy的配置带宽为Bw=60

将Bw进行3等分,尝试计算3条SL;

计算第一条SL1:根据最优策略,计算得到为A---B---F,承担带宽20;

计算第二条SL2:将SL1经过的链路当作尽力排除链路,计算得到A---C---F,承担带宽20;

计算第三条SL3:将SL1、SL2经过的链路都当作尽力排除链路,计算得到A---D---F,承担流量20;

SL1、SL2、SL3都计算成功,权重系数都是1,此时Cpath计算成功,SR Policy也计算成功。

场景2:假设SR Policy的配置带宽为Bw=90

将Bw进行3等分,尝试计算3条SL;

计算第一条SL1:根据最优策略,计算得到为A---B---F,承担带宽30;

计算第二条SL2:将SL1经过的链路当作尽力排除链路,计算得到A---C---F,承担带宽30;

计算第三条SL3:由于A---D---F所能承载的最大带宽是20,所以计算失败。

SL3失败后,尝试将SR Policy的Bw进行2等分,尝试计算2条SL,可以计算成功,此时SL1:A---B---F承担带宽45;SL2:A---C---F承担带宽45。Cpath计算成功,SR Policy也计算成功。

具体实施例二:UCMP负载分担示例

图8是根据本发明具体实施例的UCMP路由示例拓扑图,如图8所示,链路上括号内的左侧数据代表链路的时延,右侧数据代表链路的剩余带宽资源。假设当前SR Policy的最优路由测试为时延最优,且要求SL之间尽量分离。对Policy进行路由计算,下面按不同场景分别进行说明:

场景1:假设SR Policy的配置带宽为Bw=60,且指定了SL的权重比例为2:3:1,Cpath中SL的数目N=3

计算第一条SL1:该路径的带宽约束为20,计算得到A---D---F(因为其时延最优);

计算第二条SL2:该路径的带宽约束为30,计算得到A---C----F;

计算第三条SL3:该路径的带宽约束为10,计算得到A---E-----F;

SL1、SL2、SL3都计算成功,权重系数都是分别是2、3、1,此时Cpath计算成功,SRPolicy也计算成功。

场景2:假设SR Policy的配置带宽为Bw=60,不指定SL的权重比例,Cpath中SL的数目N=3

先调用ECMP的路由方式,可计算得到SL1:A---D---F,SL2:A---C---F,SL3:A---B---F,权重系数都为1,此时Cpath计算成功,SR Policy也计算成功。

场景3:假设SR Policy的配置带宽为Bw=100,不指定SL的权重比例,Cpath中SL的数目N=4

先调用ECMP的路由方式,只计算得到SL1:A---C---F,承担带宽25;SL2:A---B---F,承担带宽25;之后将剩余的50带宽往SL1和SL2中加塞,加塞后SL1承担了30带宽,SL2承担了40带宽,还剩余30带宽。根据剩余的30带宽再去调用UCMP计算2(N-2=2)条SL。只可以计算出SL3:A---D---F,承担带宽15,将剩余的15带宽尝试往SL3中加塞,加塞后SL3承担了20带宽,此时整个Policy还剩余带宽10,根据剩余的带宽10再去调用UCMP计算1条SL,可以计算得到SL4:A---E---F。此时Cpath计算成功,SL1、SL2、SL3、SL4的权重系数分别为:3:4:2:1。SR Policy也计算成功。

在本实施例中还提供了一种路由计算装置,如图9所示,图9是根据本发明实施例的路由计算装置的结构框图,该装置包括:

第一接收模块902,用于接收客户端发送的路由请求,其中,所述路由请求用于请求按照预定策略计算头端到尾端之间的目标路由;

分析模块904,用于对所述路由请求进行分析,以确定出所述预定策略中包括的所述头端到所述尾端之间的候选路径Cpath的负载类型以及约束信息;

计算模块906,用于基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由。

在一个可选的实施例中,上述装置还包括:第二接收模块,用于在基于所述负载类型和所述约束信息进行路由计算,以得到所述目标路由之前,接收目标设备上报的全网的拓扑数据信息;上述计算模块906包括:第一确定子模块,用于基于所述拓扑数据信息确定所述Cpath中包括的可用分段列表SL;第一计算子模块,用于基于所述负载类型和所述约束信息进行路由计算,以从所述可用SL中确定出所述目标路由。

在一个可选的实施例中,上述负载类型包括等值负载分担ECMP或非等值负载分担UCMP;上述约束信息包括强制约束信息和尽力约束信息。

在一个可选的实施例中,在所述负载类型包括所述ECMP的情况下,上述计算模块906包括:第二确定子模块,用于确定所述预定策略中包括的预先配置的目标带宽以及所述目标路由的目标数量;执行子模块,用于重复执行如下操作,直至确定出所述目标路由为止,其中,所述执行子模块包括:均分单元,用于基于所述目标数量对所述目标带宽进行均分,以得到均分带宽;判断单元,用于按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL;确定单元,用于在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;调整单元,用于在确定不存在允许承载所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值大于1的情况下,对所述目标数量的取值进行调整,其中,所述目标数量的调整后的取值小于所述目标数量的调整前的取值。

在一个可选的实施例中,上述装置还包括:第一停止模块,用于在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的目标SL之后,在确定不存在满足所述均分带宽的所述目标数量的目标SL,且在确定所述目标数量的取值等于1的情况下,停止路由计算。

在一个可选的实施例中,上述调整单元包括:调整子单元,用于将所述目标数量的取值减1。

在一个可选的实施例中,在所述负载类型包括所述UCMP的情况下,上述计算模块906包括:第三确定子模块,用于确定所述预定策略中包括的预先配置的目标带宽;判断子模块,用于在确定所述预定策略中包括预先配置的权重系数的情况下,按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL,其中,所述权重系数中包括的各个系数所对应的带宽之和为所述目标带宽;第四确定子模块,用于在确定存在满足所述权重系数所对应的带宽的所述目标SL的情况下,将所述目标SL确定为所述目标路由。

在一个可选的实施例中,上述装置还包括:第二停止模块,用于在按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述权重系数所对应的带宽的目标SL之后,在确定不存在满足所述权重系数所对应的带宽的所述目标SL的情况下,停止路由计算。

在一个可选的实施例中,上述装置还包括:在确定所述预定策略中不包括所述权重系数的情况下,均分模块,用于按照所述预定策略中包括的所述目标路由的目标数量对所述目标带宽进行均分,以得到均分带宽;判断模块,用于按照所述强制约束信息和所述尽力约束信息判断所述可用SL中是否存在满足所述均分带宽的所述目标数量的所述目标SL;第一确定模块,用于在确定存在允许承载所述均分带宽的所述目标数量的所述目标SL的情况下,将所述目标数量的所述目标SL确定为所述目标路由;第二确定模块,用于在确定所述可用SL中包括的允许承载所述均分带宽的第一可用SL的数量小于所述目标数量的情况下,确定所述目标带宽中包括的未被均分至所述第一可用SL中的剩余带宽;分配模块,用于按照所述第一可用SL的最大承载带宽将所述剩余带宽分配至所述第一可用SL中;第三确定模块,用于在确定将所述剩余带宽全部分配至所述第一可用SL中的情况下,将所述第一可用SL确定为所述目标路由;第四确定模块,用于在确定仅将所述剩余带宽中包括的部分剩余带宽分配至所述第一可用SL中的情况下,从所述可用SL中包括的除所述第一可用SL之外的可用SL中确定出能够承载所述剩余带宽中包括的除所述部分剩余带宽之外的其余剩余带宽的第二可用SL,将所述第一可用SL和所述第二可用SL确定为所述目标路由。

在一个可选的实施例中,上述强制约束信息包括链路级别的强制约束信息、SL级别的强制约束信息。

在一个可选的实施例中,上述尽力约束信息包括尽力避开链路、节点的约束信息,其中,按照约束优先级由高到低,上述尽力约束信息包括:链路分离、节点分离、网元分离、共享风险链路组SRLG分离、共享风险节点组SRNG分离、域分离。

在一个可选的实施例中,上述计算模块906包括:第五确定子模块,用于在确定当前配置的所述Cpath为需要配置的多个Cpath中的一个Cpath,且需要配置的多个Cpath中包括有已配置完成的其他Cpath的情况下,确定其他Cpath中所涉及到的链路和节点;更新子模块,用于基于其他Cpath中所包括的链路和节点更新所述约束信息;第二计算子模块,用于基于所述负载类型和更新后的所述约束信息进行路由计算,以得到所述目标路由。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 遮挡率的计算方法、装置、存储介质和电子装置
  • 路由数据处理方法、装置、电子设备及存储介质
  • 逐拍心率计算方法、装置、电子设备及存储介质
  • 深度算法精度计算方法、装置、电子设备、可读存储介质
  • 一种文本相似度计算方法、装置、电子设备及存储介质
  • 确定性路由的计算方法、装置、存储介质和电子设备
  • 路由路径计算方法、装置、电子设备及存储介质
技术分类

06120115935175