一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SR本地防微环的方法和装置与流程

2021-11-24 22:09:00 来源:中国专利 TAG:

一种sr本地防微环的方法和装置
【技术领域】
1.本发明涉及通信领域,特别是涉及一种sr本地防微环的方法和装置。


背景技术:

2.在分段路由(segment routing,简写为sr)的使用中,在出现链路故障时,拓扑中路由节点感知到链路故障后,将重新进行路由收敛。由于sr的控制平面基于内部网关协议(interior gateway protocol,简写为igp)扩展实现,链路状态数据库是分布式的,每个控制平面的管理节点仅能获取到本控制平面内的链路状态,无法获取到全网状态,使得igp在无序收敛时可能会产生环路,环路会在转发路径的设备都完成收敛之后消失,这种暂态环路一般被称为微环(micro loop)。微环可能导致网络丢包、时延抖动和报文乱序等一系列问题。
3.目前已存在一些解决微环问题的方法,如segment routing ipv6协议中包含了解决微环问题的策略。但是,目前的防微环方法通常需要使用拓扑无关无环交替(topology

independent loop

free alternate,简写为ti

lfa)功能,需要依赖能够支持此功能的设备,并且无法对本地微环、远端微环、正切微环、回切微环的不同场景进行区分。
4.鉴于此,如何克服现有技术所存在的缺陷,解决目前防微环方法兼容性较差的现象,是本技术领域待解决的问题。


技术实现要素:

5.针对现有技术的以上缺陷或改进需求,本发明解决了目前防微环方法依赖特定设备功能并且无法适应不同场景的问题。
6.本发明实施例采用如下技术方案:
7.第一方面,本发明提供了一种sr本地防微环的方法,包括:
8.感知业务链路中出现故障的连接;
9.由源节点开始,为链路故障后每个下一跳发生变化的节点生成节点标签,为每个发生变化的节点的下一跳节点生成邻接标签,直至到达目的节点,其中,下一跳的节点与源节点之间的距离大于等于2跳;
10.根据节点标签和邻接标签,生成源节点至目的节点的临时标签路径,并下发临时转发表。
11.优选的,所述源节点感知业务链路中出现故障的连接,还包括:
12.获取故障前源节点至目的节点的第一最短路径,并获取故障后源节点至目的节点的第二最短路径;
13.判断第一最短路径和第二最短路径是否相同;
14.若相同,不重新计算转发路径。
15.优选的,所述获取故障后源节点至目的节点的第二最短路径之后,还包括:
16.第二最短路径对应的转发表不进行下发。
17.优选的,所述判断第一最短路径和第二最短路径是否相同,还包括:
18.由源节点开始,依次比较第一最短路径和第二最短路径中每一个节点,直至查找到第一个不相同的节点;
19.为第一个不相同的节点之前的节点生成节点标签,为第一个不相同的节点生成邻接标签;
20.由第一个不相同的节点开始,为每个符合要求的节点生成节点标签或邻接标签,直至到达目的节点。
21.优选的,所述获取故障前源节点至目的节点的第一最短路径,或所述获取故障后源节点至目的节点的第二最短路径,具体包括:
22.使用ospf协议对源节点至目的节点间所有的节点进行收敛;
23.使用spf算法计算源节点至目的节点间的第一最短路径或第二最短路径。
24.优选的,所述为链路故障后每个下一跳发生变化的节点生成节点标签,为每个发生变化的节点的下一跳节点生成邻接标签,还包括:
25.若下一跳的节点与源节点之间的距离小于2跳,且下一跳的节点发生变化,为下一跳的节点生成邻接标签;
26.若下一跳的节点未发生变化,不生成标签。
27.优选的,所述生成源节点至目的节点的临时标签路径之后,还包括:
28.检查源节点到网络拓扑中其它所有节点的临时标签路径是否都已计算完成;
29.若存在未生成临时标签路径的剩余节点,生成源节点至每个剩余节点的临时标签路径。
30.优选的,还包括:
31.当源节点感知业务链路故障恢复,再次进行防微环计算。
32.优选的,所述生成源节点至目的节点的临时标签路径,具体包括:
33.使用标签栈保存临时标签路径。
34.另一方面,本发明提供了一种sr本地防微环的装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的sr本地防微环的方法。
35.与现有技术相比,本发明实施例的有益效果在于:仅依靠路由路径的查找进行防微环处理,不依赖于其他设备,不依赖于除sr外的其他功能,解决了在重路由或拓扑发生变化重新收敛时的微环问题,避免了由于微环存在导致网络丢包、时延抖动和报文乱序等一系列问题。本方法对正切微环、回切微环均适用,无需区分正切微环、回切微环、本地微环还是远端微环,也不需要依赖特定的设备功能,解决了不同设备和场景下防微环实现方式不同导致的兼容性问题。
【附图说明】
36.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本发明实施例提供的一种sr本地防微环的方法流程图;
38.图2为本发明实施例提供的一种sr本地防微环的方法流程图;
39.图3为本发明实施例提供的一种sr本地防微环的方法流程图;
40.图4为本发明实施例提供的一种sr本地防微环的方法流程图;
41.图5为本发明实施例提供的一种路由器环形拓扑示意图;
42.图6为本发明实施例提供的一种路由器网络拓扑图;
43.图7为本发明实施例提供的一种sr本地防微环的方法流程图;
44.图8为本发明实施例提供的一种以源节点s为根的spf树示意图;
45.图9为本发明实施例提供的一种路由器网络拓扑图;
46.图10为本发明实施例提供的一种路由器网络拓扑图;
47.图11为本发明实施例提供的一种sr本地防微环的装置结构示意图。
【具体实施方式】
48.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
49.本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
50.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
51.实施例1:
52.在现有的分段路由网络控制方式中,igp在无序收敛时可能会产生微环,微环可能导致网络丢包、时延抖动和报文乱序等一系列问题。而现有的部分防微环技术方案中,设备间相互依赖,实现方式复杂。并且不同设备间防微环实现方式不同,存在兼容性问题。本实施例中,分段路由sr本地防微环方法,以sr功能为基础,在使用dijkstra算法等最短路径(shortest path,简写为spf)算法进行算路的过程中,获取一条临时标签路径,更新临时转发表,约束转发的流量,实现设备本地防微环功能。当网络中所有节点均已收敛,不存在微环后,则下发主用转发表,并将临时转发表切换到主用转发表,结束防微环过程。
53.如图1所示,本发明实施例提供的sr本地防微环的方法具体步骤如下。
54.步骤101:感知业务链路中出现故障的连接。
55.当业务链路出现故障时,需要先对出现故障的连接进行感知,判断故障是否影响现有源节点至目的节点的连接路径。出现故障后,若源节点至目的节点的连接路径发生变化,则有可能会产生微环,需要进行防微环处理;若源节点至目的节点的连接路径不变,则无需进行防微环处理。
56.如图2所示,感知业务链路中出现故障的连接可以使用以下步骤具体实现。
57.步骤201:获取故障前源节点至目的节点的第一最短路径,并获取故障后源节点至目的节点的第二最短路径。
58.在实际的网络资源调度中,源节点至目的节点间的业务链路通过spf算法进行计算。
59.如图3所示,第一最短路径和第二最短路径的计算方法具体如下。
60.步骤301:使用开放式最短路径优先(open shortest path first,简写为ospf)协议对源节点至目的节点间所有的节点进行收敛。
61.sr业务中,为了获取可进行路由交换的网络节点,需要使用igp协议(如ospf协议)发现网内其他路由器并交换路由条目,直至所有路由条目都交换完成的过程。igp协议在收敛后,应该保证所有路由器接口都在本地链路状态数据库(link state database,简写为lsdb)中。这就意味着网内所有路由器的lsdb在网络收敛后都应该是一样的,每一台路由器都知道网内所有路由链路。
62.步骤302:使用spf算法计算源节点至目的节点间的第一最短路径或第二最短路径。
63.进行网络收敛后,igp协议使用spf算法,为每台路由器都生成一个以自己为根节点的最短路径优先树,对树自根节点开始进行深度遍历,即可生成相应的路由路径。
64.每当链路发生故障时,都需要使用步骤301

步骤302对源节点和目的节点之间的最短路径进行计算。为了进行区别,本实施例中,将故障前的最短路径称为第一最短路径,将故障后的最短路径称为第二最短路径。
65.进一步的,由于故障后计算的第二最短路径中可能存在微环,因此获取第二最短路径之后,第二最短路径对应的转发表不进行下发,等待后续步骤中进行防微环处理后再进行下发。这种方式既加快了收敛速度,又减少了表项的下发,提高了性能。
66.步骤202:判断第一最短路径和第二最短路径是否相同。
67.在网络环境不变的情况下,使用同样的最短路径算法计算出的最短路径相同。在网络环境发生变化时,可以通过计算源节点和目的节点间的第二最短路径,并将其与故障前的第一最短路径相比较,来判断业务路径是否发生了变化。
68.步骤203:若相同,不重新计算转发路径。
69.若故障前后计算出的第一最短路径和第二最短路径相同,说明链路故障对源节点到目的节点的路由下一跳无影响,不会进行临时标签路径计算和临时转发表下发。
70.步骤204:若不同,重新计算转发路径。
71.若故障前后计算出的第一最短路径和第二最短路径不同,说明链路故障对源节点到目的节点的路由下一跳有影响。并且,对于最短路径上的其他所有节点,链路故障前后,源节点到其他节点最短路径均发生变化,则将形成全邻接临时标签路径,并更新临时转发表。
72.经过步骤201

步骤204,可以完成对业务链路中出现故障的连接的感知,确定是否需要对业务路径进行防微环处理。
73.进一步的,当源节点感知业务链路故障恢复后,网络的业务链路再次发生变化,需要再次计算源节点至目的节点间的业务路径,此时,为了避免计算中产生微环,需要再次进行防微环计算。由于业务故障和业务恢复可视为互逆的网络拓扑变化,因此,本实施例提供的方法也适用于避免链路恢复时的回切微环。同样的,当网络中出现其它链路变化,如设备上下线、设备间路由连接新建或中断、链路带宽等属性变化等情况时,也需要再次进行防微环计算。
74.步骤102:由源节点开始,为链路故障后每个下一跳发生变化的节点生成节点标
签,为每个发生变化的节点的下一跳节点生成邻接标签,直至到达目的节点。
75.为了便于防微环计算,如图4所示,还可以对路径中不存在微环的节点逐个通过节点标签进行标记。
76.步骤401:由源节点开始,依次比较第一最短路径和第二最短路径中每一个节点,直至查找到第一个不相同的节点。
77.在实际场景中,由源节点开始,依次比较第一最短路径和第二最短路径的每一个节点。若未找到不相同的节点,表明两个路径相同,第二最短路径中也不存在微环,不需进行防微环处理。若找到不相同的节点,表明两个路径不同,不同的部分可能存在微环,需要进行防微环处理。
78.步骤402:为第一个不相同的节点之前的节点生成节点标签。
79.查找到第一个不相同的节点之后,由于第一最短路径为链路变化前使用的业务路径,其中不存在微环。因此,业务路径发生变化后形成的第二最短路径中,与第一最短路径相同的部分也不存在微环,可以为该部分下一跳发生变化的节点生成节点标签进行标记。
80.步骤403:由第一个不相同的节点开始,为每个符合要求的节点生成节点标签或邻接标签,直至到达目的节点。
81.下一跳的节点与源节点之间的距离小于2跳时,源节点可直接根据出接口查找到下一跳,无需标签标记节点;当下一跳的节点与源节点之间的距离大于等于2跳,则需要进行标签标记节点。
82.通过步骤401

步骤403,通过节点标签标记了源节点和目的节点间所有不会产生微环的路径节点,在后续步骤中,可以通过节点标签筛选出这些节点组成无微环的路径。
83.步骤103:根据节点标签和邻接标签,生成源节点至目的节点的临时标签路径,并下发临时转发表。
84.在步骤102中获得了所有不会产生微环的路径节点,将这些路径节点由源节点至目的节点依次连接,即可在源节点至目的节点之间形成全邻接临时标签路径,并更新临时转发表。在具体实施中,可以使用标签栈保存临时标签路径,这种方式能有效减少标签栈深度,降低系统资源的占用。
85.进一步的,在计算最短路径后,源节点和目的节点之间的节点可能并未全部进行计算,为了生产临时标签路径,还需要检查源节点到网络拓扑中其它所有节点的临时标签路径是否都已计算完成。若存在未生成临时标签路径的剩余节点,生成源节点至每个剩余节点的临时标签路径。
86.经过本实施例中提供的步骤101

步骤103后,即可完成sr业务的防微环计算,避免收敛过程中出现微环。本实施例提供的sr本地防微环的方法,实现了独立于其他设备的防微环功能,对拓扑中的其他设备无依赖,避免了微环导致的网络丢包、时延抖动和报文乱序等一系列问题;减少了防微环计算过程的复杂度,降低了维护难度;对于设备间不同防微环方法,均可兼容;减少了标签池资源的占用。
87.实施例2:
88.基于实施例1提供的sr本地防微环的方法,本实施例通过具体实施场景中的实例对于实施例1中提供的防微环方法步骤进行进一步说明。
89.以图5为例,路由器r1

r4组成环形拓扑,r1

r2双向链路开销(cost)为100,r2

r3、
r3

r4、r4

r1双向链路开销(cost)为10。
90.r4到r3链路故障前,r4到r3的最短路径路如图5中实线箭头所示:r4通过接口e0/1直接到r3。此时,由r4到r3的流量将直接通过r4的接口e0/1到达r3。
91.当r4与r3之间的链路发生故障时,拓扑中路由节点感知到链路故障后,将重新进行路由收敛,只有当收敛先后顺序为r3、r2、r1、r4时,拓扑中将无微环存在。当节点r4先收敛,r1后收敛时,对于节点r4,到达r3的最短路径路由为r4经过接口e0/2到下一跳为r1,然而对于r1,由于还未收敛,仍然保持原有到达r3最短路径路由,即r1通过接口e0/3到下一跳r4,此时r4到r3流量会先到r1,然后经由r1再到达r4,即在r1与r4之间形成微环,导致r4到r3的流量发生丢失,此微环为正切微环。当r1收敛后,r1与r4之间的微环消失。同理,如果r4、r1已经收敛,而r2还未收敛,则在r2与r1之间形成微环,当r2收敛后,微环消失。
92.r4到r3链路故障后,节点r4到达r3的最短路径路由为r4经过接口e0/2到下一跳为r1,节点r1到达r3的最短路径路由为r1经过接口e0/3到下一跳为r2。当r4到r3链路恢复时,拓扑中节点感知到链路恢复,将重新进行路由收敛,当r1先收敛,r4后收敛,则对于节点r1收敛后到达r3的最短路径路由为r1经接口e0/3到下一跳r4,此时r4到r3的流量会先到r1,然后再经由r1到达r4,在r1和r4之间形成微环,此微环为回切微环。
93.为了防止上述收敛过程中可能产生的微环,在图6所示的网络拓扑图中,以正切防微环为例,基于实施例1中的步骤,对防微环的具体过程进行说明。
94.图6网络中所有节点均开启sr功能,处于同一sr网络,当源节点s与目的节点d之间的链路故障(down)前,各节点的最短路径如下。
95.(1)s到d的最短路径记为path1s

d{e0/1,d};
96.(2)s到a的最短路径记为path2s

a{e0/2,n,a};
97.(3)b到d的最短路径记为path3b

d{e0/3,c,d};
98.(4)a到b的最短路径记为path4a

b{e0/4,n,s,d,c,b}。
99.当s和d之间的链路down时,具体的防微环处理步骤如下。
100.根据步骤101,源节点s感知到链路故障。获取故障前源节点s至目的节点d的最短路径,作为第一最短路径。
101.根据步骤201,启动spf计算,节点s通过spf计算生成一条到达节点d的最短路径作为第二最短路径,最短路径的具体计算过程可以使用步骤301

步骤302实现。第二最短路径由源节点s开始,出接口为e0/2,下一跳为节点n,整条最短路径记为path5s

d{e0/2,n,a,b,c,d},此时还未进行防微环处理,不会进行正式表项下发。
102.根据步骤202,将链路故障前后源节点s到目的节点d的最短路径进行比较,判断到达目的节点d的路由下一跳是否发生变化。如未发生变化,表示链路故障对本条路由无影响,不进行防微环处理。如果下一跳发生变化,表明链路故障对本条路由有影响,开始根据步骤401

步骤403进行微环存在可能性判断和标记。为了便于描述,记故障后最短路径path5s

d中源节点s的下一跳节点为p。图6的网络拓扑中,故障前path1s

d的下一跳为d,故障后path5s

d的下一跳为n,下一跳发生变化,记path5s

d中节点n为p。
103.为了同时进行判断和标记,避免多次遍历造成的效率损失,如图7所示,步骤401

步骤403中的方案可以变化为以下对每个节点依次比较和标记的方案。进行比较时,由源节点s作为第一个节点p,沿第二最短路径向后逐个将节点作为节点p进行处理,直至到达目的
节点d为止。
104.步骤501:判断故障前后path5s

d中节点p的下一跳节点是否发生变化。如发生变化,进入步骤502;如未发生变化,进入步骤503。
105.步骤502:判断源节点s到节点p的经过的跳数是否大于或等于2,是则生成节点p的节点标签;否则生成节点p的邻接标签。
106.步骤503:如果p节点为目的节点d,则跳到步骤504;否则以下一跳节点为新的p节点,重新跳转到步骤501。
107.步骤504:根据计算获得的标签,生成临时标签路径,并下发临时转发表,约束流量。
108.步骤505:检查节点s到拓扑中其他所有节点的临时标签路径是否均已计算完成。如完成,则结束分段路由sr本地防微环计算过程;否则分别以未生成临时标签路径的节点为目的节点,重新开始步骤502中的计算。
109.在图6所示的网络拓扑中,以源节点s为根的spf树如图8所示。图8中可见,当节点s与节点d之间的链路故障后,如果节点s先收敛,节点n后收敛,在s、n之间将形成微环。当节点s与节点d之间的链路发生故障后,s到d的最短路径为path5s

d{e0/2,n,a,b,c,d}。图8中,链路变化后的spf树,与链路故障前的spf树对比,path5s

d中s到a、b到d的最短路径未发生变化,此时节点s生成节点b、d的节点标签la、ld,path5s

d中a到b的最短路径发生变化,节点s生成a到b的邻接标签la

b。此时节点s生成临时标签路径{e0/2,la,la

b,ld}。这种方式能有效减少标签栈深度,降低系统资源的占用。
110.通过步骤501

步骤505的处理,图6所提供的网络拓扑场景下,链路down后最短路径path5s

d中,节点s到a,b到d,与链路断开前path2s

a、path3b

d无变化,则源节点s生成节点a和d的节点标签la、ld。而a到b与链路断开前path4a

b发生变化,节点s生成a到b的邻接标签la

b,最后生成临时标签路径{e0/2,la,la

b,ld},并下发临时转发表,约束流量转发。
111.进一步的,如图9所示的网络拓扑中,通过步骤202的判断可知,网络down前后第一最短路径和第二最短路径相同,每个节点的下一跳都未发生变化,此时,以源节点s为根的spf树如图10所示。在图9所示的网络拓扑中,当节点a与节点d之间的链路故障后,如果节点a先收敛,节点b后收敛,则在a、b之间将形成微环。而节点a与节点d之间的链路故障前后,节点s到节点d的下一跳均未发生变化,如图10所示,故障前后,节点s的下一跳均为节点n,那么此时节点s不进行本地防微环计算,同时不会下发临时转发表。同理,网络拓扑中节点n也不会进行本地防微环计算,同时不会下发临时转发表。这种方式既加快了收敛速度,又减少了表项的下发,提高了性能。
112.通过本实施例中提供的具体场景可知,实施例1中提供的sr本地防微环的方法,能够有效防止收敛过程中微环的产生,提供了一种不依赖设备和平台、简便有效、占用资源较少的sr本地防微环技术方案。
113.实施例3:
114.在上述实施例1至实施例2提供的sr本地防微环的方法的基础上,本发明还提供了一种可用于实现上述方法的sr本地防微环的装置,如图11所示,是本发明实施例的装置架构示意图。本实施例的sr本地防微环的装置包括一个或多个处理器21以及存储器22。其中,
图11中以一个处理器21为例。
115.处理器21和存储器22可以通过总线或者其他方式连接,图11中以通过总线连接为例。
116.存储器22作为一种sr本地防微环方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例2中的sr本地防微环方法。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行sr本地防微环的装置的各种功能应用以及数据处理,即实现实施例1至实施例2的sr本地防微环的方法。
117.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
118.程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例2中的sr本地防微环的方法,例如,执行以上描述的图1

图4和图7所示的各个步骤。
119.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(read only memory,简写为:rom)、随机存取存储器(random access memory,简写为:ram)、磁盘或光盘等。
120.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献