一种路由选择的方法、装置、设备、系统及存储介质与流程
未命名
09-22
阅读:54
评论:0
1.本技术涉及通信技术领域,尤其涉及一种路由选择的方法、装置、设备、系统及存储介质。
背景技术:
2.边际网关协议(border gateway protocol,bgp)是一种广泛应用的网络协议。基于bgp架构的网络系统包括多个网络设备。多个网络设备之间可以相互通告路由,并基于路由进行信息交互。具体地,网络设备可以向其他网络设备发送通告报文,通告报文包括该网络设备的路由信息。其他网络设备在接收到通告报文之后,可以根据通告报文所包括的路由信息生成在转发表项(又称路由表项)中。这样,在转发数据报文时,可以根据数据报文的互联网协议(internet protocol,ip)地址查找转发表项,确定数据报文的转发路径。
3.但是,如果网络系统的环境较为复杂,网络设备的路由可能不稳定。而路由不稳定可能浪费网络设备的计算资源。
技术实现要素:
4.本技术实施例提供了一种路由选择的方法、装置、设备、系统及存储介质,旨在根据路由震荡的频繁程度确定路由优先级,以减少路由计算的频率和更新路由表的频率。
5.第一方面,本技术实施例提供了一种路由选择的方法,该方法可以应用于网络系统中的第一网络设备。第一网络设备与网络系统中的第二网络设备连接。第一网络设备例如可以是路由器或交换机等设备。具体地,所述路由选择的方法包括:第一网络设备接收第二网络设备通告的第一路由。接着,第一网络设备根据第一路由被更新的频繁程度确定第一路由的第一震荡统计信息,并基于第一路由的第一震荡统计信息确定第一路由属性信息。其中,第一震荡统计信息表示第一路由被更新的频繁程度,例如可以表示第一路由震荡的频率。第一路由属性信息为与路由相关的路由属性信息,用于指示路由的路由优先级。路由的路由优先级表示在路由选择过程中被选择的先后顺序。具体地,第一路由属性信息可以是第一路由的路由属性信息,也可以是第一网络设备存储的、除第一路由以外的与第一路由对应的路由前缀相同的其他路由的路由属性信息。这样,在根据第一震荡统计信息调整第一网络设备所存储的路由的路由优先级之后,第一网络设备基于路由优先级进行路由选择。在路由选择的过程中,第一网络设备从与第一路由对应的路由前缀相同的一条或多条路由中,选择路由优先级最高的路由作为目标路由,再根据目标路由进行后续处理。如此,使得被选中的目标路由为候选路由集合中被更新的频繁程度最低的路由,即候选路由集合中最稳定的路由,该路由出现路由震荡的可能性最低,减少了第一网络设备重新进行路由计算并更新路由表的概率,节省了第一网络设备的计算资源。另一方面,第一网络设备根据路由优先级选择目标路由,使得第一网络设备不会因路由震荡丢弃或抑制路由,第一网络设备所承载的业务不会因路由被丢弃或抑制而中断。
6.在一种可能的设计中,第一网络设备中没有存储与第一路由对应的路由前缀相同
的其他路由,即第一网络设备中第一网络设备中第一路由对应的路由前缀仅对应一条路由。那么第一路由属性信息可以是第一路由的路由属性信息。第一路由属性信息用于指示第一路由的路由优先级。在进行路由选择时,无论第一路由的路由优先级高低,第一网络设备可以将第一路由确定为目标路由。接着,第一网络设备根据第一路由生成第一转发表项,和/或,第一网络设备向其他网络设备通告第一路由。也就是说,如果第一网络设备中某个路由前缀唯一,无论该路由前缀对应的路由的震荡情况如何,第一网络设备都可以将该路由确定为目标路径。如此,第一网络设备不会因路由震荡丢弃或抑制路由,第一网络设备所承载的业务不会因路由被丢弃或抑制而中断。
7.在一种可能的设计中,第一网络设备中存储有与第一路由对应的路由前缀相同的其他路由,即第一网络设备中第一路由对应的路由前缀对应多条路由。那么第一路由属性信息可以是第一路由的路由属性信息,用于指示第一路由的路由优先级。相应地,如果第一震荡统计信息指示第一路由的震荡频繁,第一网络设备可以向降低第一路由的路由优先级的方向调整第一路由属性信息。
8.在一种可能的设计中,第一网络设备中存储有与第一路由对应的路由前缀相同的其他路由,即第一网络设备中存储有多条路由前缀为第一路由对应的路由前缀的路由。那么第一路由属性信息可以是第一网络设备所存储的、除第一路由以外的、路由前缀为第一路由对应的路由前缀的路由的路由属性信息。相应地,如果第一震荡统计信息指示第一路由的震荡频繁,第一网络设备可以调整第一网络设备所存储的除第一路由以外的其他路由前缀为第一路由对应的路由前缀的路由的路由属性信息,以提升这些路由的路由优先级。这样,在与第一路由对应的路由前缀的多条路由中,第一路由的路由优先级未改变,但是其他路由的路由优先级提升,相当于降低了第一路由的路由优先级。
9.在一种可能的设计中,第一网络设备还与第三网络设备连接。第一网络设备通过与第三网络设备之间的连接接收第三网络设备通告的路由。第三网络设备向第一网络设备通告的路由可以称为第二路由。第一网络设备根据第二路由的第二震荡统计信息确定第二路由属性信息。第二路由属性信息可以用于指示第二路由的路由优先级。如果第一路由对应的路由前缀与第二路由对应的路由前缀相同,第一网络设备可以根据第一路由的路由优先级和第二路由的路由优先级,从第一路由和第二路由中选择路由优先级较高的路由在作为目标路由,并基于目标路由进行路由下发和/或路由通告。例如,如果第一路由的路由优先级高于第二路由的路由优先级,第一网络设备将第一路由确定为目标路由,并基于第一路由生成第一转发表项,和/或,向其他网络设备通告第一路由。如果第一路由的路由优先级低于第二路由的路由优先级,第一网络设备将第二路由确定为目标路由,基于第二路由生成第二转发表项,和/或,向其他网络设备通告第二路由。
10.在一种可能的设计中,假设第一网络设备将确定第二路由为目标路由。在第一网络设备运行的过程中,如果第二路由不可用,例如第一网络设备与第二网络设备之间的链路断开,那么第一网络设备可以从路由前缀为第二路由对应的路由前缀中的路由中,选择可用且路由优先级最高的路由作为目标路由。例如第一网络设备可以将第一路由确定为目标路由,并基于第一路由生成第一转发表项,和/或,向其他网络设备通告第一路由。
11.在一种可能的设计中,第二网络设备向第一网络设备发送第一报文,以调整第一网络设备存储的第一路由。其中,调整第一路由包括但不限于:新增第一路由、删除第一路
由、修改第一路由和修改第一路由的路由属性信息。相应地,第一震荡统计信息可以根据第二网络设备发送第一报文的频率确定。即,第一网络设备可以统计预设时间内第二网络设备发送第一报文的数量,进而确定第二网络设备发送第一报文的频率,以得到第一震荡统计信息。
12.在一种可能的设计中,所述第一报文用于向所述第一网络设备通告所述第一路由,或,所述第一报文用于指示所述第一网络设备删除存储的所述第一路由,或,所述第一报文用于指示所述第一网络设备更新所述第一网络设备存储的所述第一路由。
13.在一种可能的设计中,第一震荡统计信息包括第二网络设备发送第一报文的频率。相应地,在根据第一路由的第一震荡统计信息确定第一路由属性信息时,第一网络设备可以比较第一震荡统计信息与第一震荡阈值的大小,并比较第一震荡统计信息与第二震荡阈值的大小。第一震荡阈值大于或等于第二震荡阈值。如果第一震荡统计信息大于或等于第一震荡阈值,说明第一路由被更新的频率较高,第一路由的稳定性较差。第一网络设备可以调整第一路由属性信息,以降低第一路由的路由优先级。如果第一震荡统计信息小于第二震荡阈值,说明第一路由被更新的频率较低,第一路由的稳定性较好。第一网络设备可以调整第一路由属性信息,以提高第一路由的路由优先级。
14.在一种可能的设计中,第一震荡统计信息表示单位时间内第一路由被更新的次数的变化趋势,即表示第一路由的稳定性的变化趋势。相应地,第一震荡统计信息可以根据第二网络设备发送第一报文的频率在预设时间段内的变化量确定。
15.在一种可能的设计中,第一震荡统计信息根据第二网络设备发送第一报文的频率在预设时间段内的变化量确定。相应地,在根据第一路由的第一震荡统计信息确定第一路由属性信息时,第一网络设备可以比较第一震荡统计信息与第一震荡变化阈值的大小,并比较第一震荡统计信息与第二震荡变化阈值的大小。所述第一震荡阈值大于或等于所述第二震荡阈值。如果第一震荡统计信息大于第一震荡变化阈值,说明第一路由被更新的频率在预设时间段内的变化趋势为提高,第一路由的稳定性变差。那么第一网络设备可以调整第一路由属性信息,以降低第一路由的路由优先级。如果第一震荡统计信息小于第二震荡变化阈值,说明第一路由被更新的频率在预设时间段内的变化趋势为降低,第一路由的稳定性变好。那么第一网络设备可以调整第一路由属性信息,以提高第一路由的路由优先级。
16.在一种可能的设计中,第一网络设备和第二网络设备可以基于bgp连接或基于内部网关协议(interior gateway protocol,igp)连接。如果第一网络设备和第二网络设备基于bgp连接,第一通告报文可以为bgp更新(bgp update)报文。如果第一网络设备和第二网络设备基于igp连接,第一通告报文可以是链路状态通告(link state advertisement,lsa)报文或链路状态数据包(link state packet,lsp)报文。具体地,如果第一网络设备和第二网络设备基于开放式最短路径优先(open shortest path first,ospf)协议连接,第一通告报文为lsa报文。如果第一网络设备和第二网络设备基于中间系统中间系统(intermediate system intermediate system,isis)协议连接,第一通告报文为lsp报文。
17.在一种可能的设计中,第一路由属性信息包括以下任意一项或多项:所述第一路由的多出口标识(multi-exit discriminator,med)属性值、所述第一路由的本地优先级(local preference)值和所述第一路由的自治系统(autonomous system,as)路径(as path)信息。
18.第二方面,本技术实施例提供了一种路由选择的装置,所述装置应用于第一网络设备,包括:获取单元,用于获取第二网络设备通告的第一路由;处理单元,用于根据所述第一路由的第一震荡统计信息确定第一路由属性信息;根据所述第一路由属性信息进行路由选择。
19.在一种可能的设计中,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述处理单元,具体用于根据所述第一路由生成第一转发表项,和/或,向其他网络设备通告所述第一路由。
20.在一种可能的设计中,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一路由的路由属性信息,所述第一路由属性信息用于指示所述第一路由的路由优先级。
21.在一种可能的设计中,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一网络设备上与所述第一路由前缀相同的其他路由的路由属性信息,所述第一路由属性信息用于指示所述第一网络设备上所述第一路由前缀相同的其他路由中每条路由的路由优先级。
22.在一种可能的设计中,所述与所述第一路由对应的路由前缀相同的其他路由包括第二路由,所述处理单元,具体用于确定所述第一路由的路由优先级高于所述第二路由的路由优先级;所述处理单元,还用于根据所述第一路由生成第二转发表项,和/或,还用于向其他网络设备通告所述第一路由。
23.在一种可能的设计中,所述与所述第一路由对应的路由前缀相同的其他路由包括第三路由,所述处理单元,具体用于确定所述第一路由的路由优先级低于所述第三路由的路由优先级;根据所述第三路由生成第一转发表项,和/或,所述第一网络设备向其他网络设备通告所述第三路由;响应于所述第三路由不可用,根据所述第一路由生成第一转发表项,和/或,向其他网络设备通告所述第一路由。
24.在一种可能的设计中,所述处理单元,还用于根据所述第二网络设备发送第一报文的频率确定所述第一震荡统计信息,所述第一报文用于更新所述第一网络设备的所述第一路由。
25.在一种可能的设计中,所述第一报文用于向所述第一网络设备通告所述第一路由,或,所述第一报文用于指示所述第一网络设备删除存储的所述第一路由,或,所述第一报文用于指示所述第一网络设备更新所述第一网络设备存储的所述第一路由。
26.在一种可能的设计中,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率,所述处理单元,具体用于响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率高于第一震荡阈值,调整所述第一路由属性信息,以降低所述第一路由的路由优先级;或者,响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率小于第二震荡阈值,调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡阈值大于或等于所述第二震荡阈值。
27.在一种可能的设计中,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率在预设时间段内的变化量。
28.在一种可能的设计中,所述处理单元,具体用于响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量高于第一震荡变
化阈值,调整所述第一路由属性信息,以降低所述第一路由的路由优先级;或者,响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量小于第二震荡变化阈值,调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡变化阈值大于或等于所述第二震荡变化阈值。
29.在一种可能的设计中,第一网络设备和第二网络设备可以基于bgp连接或基于igp连接。如果第一网络设备和第二网络设备基于bgp连接,第一通告报文可以为bgp update报文。如果第一网络设备和第二网络设备基于igp连接,第一通告报文可以是lsa报文或lsp报文。具体地,如果第一网络设备和第二网络设备基于ospf协议连接,第一通告报文为lsa报文。如果第一网络设备和第二网络设备基于isis协议连接,第一通告报文为lsp报文。
30.在一种可能的设计中,所述第一路由属性信息包括以下任意一项或多项:所述第一路由的med属性值、所述第一路由的local preference值和所述第一路由的as path信息。
31.第三方面,本技术提供了一种网络设备,所述网络设备包括存储器和处理器,所述存储器用于存储指令或程序代码,所述处理器用于运行所述指令或程序代码,以使得所述网络设备执行如前述第一方面任一项所述的路由选择的方法。
32.第四方面,本技术提供了一种系统,所述系统包括第一网络设备和第二网络设备;所述第二网络设备,用于向所述第一网络设备通告第一路由;所述第一网络设备,用于实现如前述第一方面任一项所述的路由选择的方法。
33.第五方面,本技术提供了一种计算机可读存储介质,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机如前述第一方面所述的路由选择的方法。
34.第六方面,本技术提供了一种计算机程序产品,包括程序,当所述程序在计算机上运行时,使得所述计算机如前述第一方面所述的路由选择的方法。
35.第七方面,提供了一种芯片,包括:接口电路和处理器,该接口电路和处理器相连接,该处理器用于使得芯片执行第一方面或第一方面的任意一种可能的设计中的方法。
附图说明
36.图1-a为本技术实施例提供的系统100的一种网络架构图;
37.图1-b为本技术实施例提供的系统100的另一种网络架构图;
38.图2为本技术实施例提供的路由选择的方法的一种信令交互图;
39.图3为本技术实施例提供的惩罚值随时间变化的一种示意图;
40.图4为本技术实施例提供的路由选择的装置400的一种结构示意图;
41.图5为本技术实施例提供的一种设备500的结构示意图;
42.图6为本技术实施例提供的一种设备600的结构示意图。
具体实施方式
43.下面结合附图对传统技术、本技术实施例提供的路由选择的方法进行介绍。
44.在路由通告阶段,网络设备可以通过bgp报文或igp报文向其他网络设备通告自身的路由信息。上述用于通告路由信息的报文被称为通告报文。在接收到通告报文之后,网络设备可以根据通告报文所包括的路由信息生成转发表项。转发表项包括其他网络设备的路
由信息和对应的出接口。这样,在接收到数据报文之后,网络设备可以根据数据报文的目的地址查找转发表项,进而通过对应的出接口转发数据报文。
45.参见图1-a,该图为本技术实施例提供的系统100的一种网络架构图。在图1-a中,系统100包括设备111、设备112、网络设备121、网络设备122、网络设备123、网络设备124和网络设备125。其中,网络设备121分别与设备111和网络设备125连接,网络设备122分别与设备111和网络设备123连接,网络设备123分别与网络设备122和网络设备125连接。网络设备124分别与设备112和网络设备125连接。网络设备125包括端口x、端口y和端口z。网络设备125通过端口x与网络设备121连接,网络设备125通过端口y与网络设备124连接,网络设备125通过端口z与网络设备123连接。
46.为便于说明,假设图1所示的系统基于互联网协议第四版(internet protocol version 4,ipv4)实现,且设备111的ip地址为100.1.1.1/32,设备112的ip地址为200.2.2.2/32。相应地,与设备111的ip地址对应的路由前缀可以为100.1.0.0/16,与设备112的ip地址对应的路由前缀为200.2.0.0/16,表示路由前缀包括ip地址的前16位。
47.为了实现设备111和设备112设备之间的信息交互,网络设备之间可以进行路由通告。具体地,网络设备121可以向网络设备125发送通告报文a1。通告报文a1用于通告网络设备121的路由,与端口x相对应,包括设备111对应的路由前缀100.1.0.0/16。通告报文b1用于通告网络设备122的路由,与端口z相对应,包括设备111对应的路由前缀100.1.0.0/16。通告报文c1用于通告网络设备124的路由,与端口y相对应,包括设备112对应的路由前缀200.2.0.0/16/。
48.相应地,网络设备125可以根据通告报文a1、通告报文b1和通告报文c1进行路由计算,并生成转发表项。由于通告报文a1所通告的路由和通告报文b1所通告的路由都与路由前缀100.1.0.0/16对应,网络设备125通过路由计算从通告报文a1所通告的路由和通告报文b1所通告的路由中选择一条路由,作为路由前缀100.1.0.0/16对应的路由。例如,网络设备125可以通过路由计算,丢弃来自网络设备122的路由,并根据通告报文a1和通告报文c1生成转发表项。生成的转发表项中包括路由前缀100.1.0.0/16和端口x之间的对应关系,以及路由前缀200.2.0.0/16和端口y之间的对应关系。
49.假设设备112向设备111发送数据报文d1。在网络设备122接收到数据报文d1之后,网络设备122可以根据数据报文d1的目的ip地址查找转发表项,并根据转发表项确定数据报文d1通过端口x转发。数据报文d1的具体传输过程如图1-a所示。
50.但是,如果网络系统的环境不稳定,网络设备中存储的转发表项可能出现改变。例如,如果网络系统出现路由震荡,网络设备之间可能会多次进行路由通告和更新。但是,网络设备在接收到新通告的路由之后,会重新进行路由计算,并将新通告的路由更新到转发表项中。重新计算路由和更新转发表项会消耗网络设备的计算资源,可能影响到网络设备的正常工作。
51.举例说明。如果网络设备125与网络设备121之间的链路不稳定,网络设备125和网络设备121之间的连接可能出现多次断开和重连,消耗网络设备125的计算资源。
52.例如,在网络设备125与网络设备121之间的连接断开之后,网络设备121对应的路由不可用,网络设备125重新进行路由计算。通过路由计算,网络设备125得到路由前缀100.1.0.0/16与端口z之间的对应关系,并更新转发表项。具体地,更新后的转发表项包括
路由前缀100.1.0.0/16和端口z之间的对应关系,以及路由前缀200.2.0.0/16和端口y之间的对应关系。
53.假设设备112向设备111发送数据报文d2。在接收到数据报文d2之后,网络设备122可以根据数据报文d2的目的ip地址查找转发表项,并根据转发表项确定数据报文d1通过端口z转发。数据报文d2的具体传输过程如图1-b所示。
54.在网络设备125与网络设备121之间的连接建立之后,网络设备121会生成新的通告报文a2并向网络设备125发送。通告报文a2与端口x相对应,包括路由前缀100.1.0.0/16。在接收通告报文a2之后,网络设备125再次进行路由计算,得到路由前缀100.1.0.0/16和端口x之间的对应关系并更新转发表项。假设设备112向设备111发送数据报文d3,数据报文d3的具体传输过程如图1-a所示。
55.可见,如果网络系统的环境不稳定,例如网络系统出现路由震荡,网络系统中的网络设备可能会频繁地进行路由计算和路由表的更新。如此,消耗了网络设备的计算资源,可能影响网络设备的正常工作。
56.另外,假设在某条路由震荡较为频繁的情况下丢弃或抑制这条路由,虽然一定程度上可以节省网络设备的计算资源。但是如果网络设备仅有一条路由可用,那么关闭路由可能导致网络设备与其他网络设备之间的连接断开,进而导致业务中断。或者,如果网络设备包括两条或更多路由,且所述两条或多条路由之间存在主备关系,用于对网络设备进行路由保护,那么关闭震荡频繁的路由可能导致设备失去路由保护。
57.为了解决上述提及的路由计算和路由表更新频繁的问题,本技术实施例提供了一种路由选择的方法,旨在根据路由震荡的频繁程度确定路由优先级,以减少路由计算的频率和更新路由表的频率。
58.本技术实施例提供的路由选择的方法可以应用于图1-a所示的系统。具体地,所述路由选择的方法可以由图1-a所示实施例中网络设备121、网络设备122、网络设备123、网络设备124和网络设备125中任意一个或多个网络设备执行。该系统可以是基于ipv4的网络系统,也可以是基于互联网协议第六版(internet protocol version 6,ipv6)的网络系统。相应地,所述ip地址可以是ipv4地址,也可以是ipv6地址。
59.本技术实施例中,设备111和设备112可以是网络设备,也可以是终端设备。如果设备111和设备112中的任意一个设备为网络设备,那么该设备可以是用户边缘(customer edge,ce)。其中,终端设备可以称为用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)或终端等。终端设备是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片。例如,终端设备可以是具有无线连接功能的手持式设备、车载设备等。终端设备可以为手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备、虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端或有线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端或支持5g接入的家庭网关设备(5g
→
residential gateway,5g
→
rg)等。
60.所述网络设备可以是具有转发功能的设备,比如:路由器(router)或交换机(switch)等转发设备,还可以是服务器或者终端设备等具有转发功能的设备。可选地,网络设备可以是部署在网络边缘的运营商边缘(provider edge,pe)设备,例如可以是图1-a中的网络设备121、网络设备122或网络设备124;也可以是部署在网络内部的运营商(provider,p)设备,例如可以是图1-a中的网络设备123或网络设备125。
61.在一些可能的实现方式中,所述路由选择的方法可以由网络设备的控制面执行。或者,在一些其他可能的实现方式中,所述路由选择的方法还可以由独立的控制面设备执行。例如,在软件定义网络(software defined network,sdn)网络或虚拟化网络功能(virtualized network function,vnf)等应用场景中,所述路由选择的方法也可以由服务器执行,该服务器可以作为控制面设备执行网络设备控制面所执行的方法。
62.下面以本技术实施例提供的技术方案由第一网络设备执行为例,结合图2对本技术实施例提供的技术方案进行介绍。参见图2,该图为本技术实施例提供的路由选择的方法的一种信令交互图,包括:
63.s201:第一网络设备获取第二网络设备通告的第一路由。
64.在本技术实施例中,第一网络设备和第二网络设备之间为相邻的网络设备,第一网络设备可以获取第二网络设备通告的第一路由。另外,如果第一网设备还与第三网络设备相邻,第一网络设备也可以获取第三网络设备通告的第二路由。相应地,前述第二网络设备多次向第一网络设备通告路由,包括第二网络设备多次向第一网络设备发送第一报文。
65.也就是说,对于第一网络设备而言,第二网络设备通告的路由被称为第一路由,第三网络设备通告的路由被称为第二路由。如果第二网络设备多次向第一网络设备通告路由,每次通告的路由都可以被称为第一路由。如果第三网络设备多次向第一网络设备通告路由,每次通告的路由都可以被称为第二路由。可以理解的是,第二网络设备通告的多个第一路由可能相同,也可能不同,即第二网络设备在不同时间向第一网络设备通告的路由可能不同。
66.在一些可能的实现中,第二网络设备通过第一通告报文向第一网络设备通告第一路由。第一通告报文用于向第一网络设备通告第一路由。相应地,前述第二网络设备多次向第一网络设备通告第一路由,可以包括第二网络设备多次向第一网络设备发送第一通告报文。如果第一网络设备和第二网络设备基于bgp连接,第一通告报文可以为bgp update报文。如果第一网络设备和第二网络设备基于igp连接,第一通告报文可以是lsa报文或lsp报文。具体地,如果第一网络设备和第二网络设备基于ospf协议连接,第一通告报文为lsa报文。如果第一网络设备和第二网络设备基于isis协议连接,第一通告报文为lsp报文。
67.除了通告报文以外,第二网络设备还可以向第一网络设备发送其他报文,用于对第一路由进行更新。在本技术实施例中,第二网络设备向第一网络设备发送的、用于更新第一路由的报文被统称为第一报文。显然,所述第一报文包括上述第一通告报文。具体地,更新第一路由包括但不限于:通告第一路由、撤销第一路由和修改第一路由。其中,通告第一路由又可以被称为添加第一路由,撤销第一路由又可以被称为删除第一路由,修改第一路由是指修改第一路由的相关信息,例如可以包括修改第一路由对应的ip地址。在一些可能的实现中,修改第一路由也可以包括撤销原有的第一路由并添加新的第一路由。
68.在一些可能的实现中,第二网络设备发送的第一报文可能未对第一报文进行实质
上的更新。例如根据第一报文更新之后第一路由的路由前缀,和根据第一报文更新之前第一路由对应的路由前缀可能相同。
69.与第一报文相似,第三网络设备也可以向第一网络设备发送第二报文,第二报文用于更新第二路由。这里不再赘述。
70.在接收到第二网络设备通告的第一路由之后,第一网络设备确定第一路由的第一震荡统计信息。第一震荡统计信息体现第一路由被更新的频繁程度。例如,第一震荡统计信息可以表示单位时间内第一路由被更新的次数。具体地,第一网络设备可以在接收到第二网络设备通告的第一路由之后确定第一震荡统计信息。或者,第一网络设备可以间隔预设时间确定第一震荡统计信息。或者,第一网络设备可以在第二网络设备通告第一路由的次数达到预设值之后确定第一震荡统计信息。本技术实施例对第一网络设备确定第一震荡统计信息的时间不作限定。
71.在本技术实施例中,第一网络设备确定第一震荡统计信息包括但不限于以下三种实现方式。
72.实现方式一:第一震荡统计信息根据预设时间内第一路由被更新的次数确定。
73.在第一种可能的实现中,第一网络设备可以记录第一路由被更新的时间,并根据预设时间内第一路由被更新的次数确定第一震荡统计信息。即,第一震荡统计信息表示第一路由被更新的速度。相应地,第一震荡统计信息越大,说明第一路由被更新的频率越高,第一路由越不稳定性。第一震荡统计信息越小,说明第一路由被更新的频率越低,第一路由越稳定性。
74.根据前文介绍可知,第二网络设备通过向第一网络设备发送第一报文更新第一路由。相应地,第一网络设备可以将第二网络设备发送一条第一报文,视为对第一路由的一次更新。即,第一震荡统计信息根据预设时间内第一网络设备接收第一报文的数量确定。
75.具体地,第一网络设备可以记录接收每条第一报文的时间,并根据接收第一报文的时间计算在预设时间内接收到第一报文的数量,得到第一震荡统计信息。或者,第一网络设备周期性统计接收到的第一报文的数量,并根据周期内接收到的第一报文的数量确定第一震荡统计信息。
76.根据前文介绍可知,第一报文可能并未对第一路由做实质性的更新。但是在计算第一震荡统计信息时,第一网络设备可以任意接收到的第一报文,确定为用于计算第一震荡统计信息的第一报文。或者,第一网络设备也可以将用于对第一路由进行实质性更新的第一报文,确定为用于计算第一震荡统计信息的报文。
77.需要说明的是,第一报文用于对第一路由进行更新,但是第一路由的更新可能不仅基于第一报文。例如,如果第一网络设备和第二网络设备之间的链路断开,导致第一路由不可用,第一路由出现更新。但是第二网络设备并不向第一网络设备发送第一报文。对于这种情况,第一网络设备可以综合第一路由被更新的次数和接收的第一报文的数量确定第一震荡统计信息。
78.具体地,第一网络设备可以监控第一报文的接收情况和第一路由被更新的情况。如果第一网络设备确定接收到第一报文,第一网络设备可以将更新参数加一。如果第一网络设备确定第一路由被更新,且第一路由被更新之前第一网络设备并未接收第一报文,第一网络设备可以将更新次数加一。假设第一网络设备周期性确定第一震荡统计信息。那么
在一个周期结束时,第一网络设备可以根据这个周期的更新参数和周期时长确定第一震荡统计信息。
79.实现方式二:第一震荡统计信息根据第一路由被更新的频率在预设时间内的变化量确定。
80.在一些可能的实现中,第一震荡统计信息表示预设时间内第一路由被更新的次数的变化取值,即表示第一路由的稳定性的变化趋势。那么,第一震荡统计信息可以根据第一路由被更新的频率在预设时间内的变化量确定。例如,第一网络设备统计每个周期内第一路由被更新的次数,并根据第一路由被更新的次数和周期时长确定第一路由被更新的频率。接着,第一网络设备计算本周期内第一路由被更新的频率,与上个周期内第一路由被更新的频率的差值,并根据差值确定第一震荡统计信息。
81.与实现方式一类似,实现方式二中第一网络设备也可以根据第二网络设备发送第一报文的时间确定第一路由被更新的频率。这里不再赘述。
82.可以理解的是,在上述实现方式二中,第一震荡统计信息可以为负值。
83.实现方式三:第一震荡统计信息根据第一路由的惩罚值(penalty value)确定。
84.在第三种可能的实现中,第一网络设备可以设置第一路由的惩罚值,并根据第一路由被更新的时间和次数调整第一路由的路由惩罚值。具体地,可以为第一震荡统计信息设置半衰期(half-life)。如果检测到第一路由被更新,第一网络设备可以增加第一路由的惩罚值,例如第一网络设备可以为第一路由的惩罚值增加固定值或加一。如果第一路由在半衰期内未被更新,第一网络设备将第一路由的惩罚值减半。
85.举例说明。假设第一路由的惩罚值在t=0时等于0,第一路由在t=t0时被更新,且半衰期为t。那么第一网络设备可以在t=t0时为第一路由的惩罚值增加128,第一路由在t=t0时的惩罚值为128。如果第一路由在从t=t0到t=t0+t之间未被更新,第一网络设备可以在t=t0+t时将第一路由的惩罚值减半,那么第一路由在t=t0+t时的惩罚值为64。如果第一路由又在t=t0+1.5t时被更新,第一网络设备在t=t0+1.5t时为第一路由的惩罚值增加128,第一路由在t=t0+1.5t时的惩罚值为192。具体地,第一震荡参数的变化趋势可以如图3所示。
86.与实现方式一类似,实现方式三中第一网络设备也可以根据第二网络设备发送第一报文的时间确定第一路由的惩罚值。这里不再赘述。
87.可以理解的是,如果第三网络设备还向第一网络设备通告第二路由,第一网络设备可以根据第二路由被更新的频繁程度确定第二路由的第二震荡统计信息。关于确定第二震荡统计信息的方法可以参考上述确定第一震荡统计信息的方法,这里不再赘述。
88.s202:第一网络设备根据第一震荡统计信息确定第一路由属性信息。
89.在确定第一震荡统计信息之后,第一网络设备可以根据第一震荡统计信息确定第一路由属性信息。其中,第一路由属性信息用于指示第一网络设备所存储的路由的路由优先级。某条路由的路由优先级的高低表示该路由在路由选择过程中被选中的顺序的先后。路由的路由优先级越低,路由选择过程中第一网络设备选择该路由的顺序越靠后。路由的路由优先级越高,路由选择过程中第一网络设备选择该路由的顺序越靠前。关于路由选择的介绍可以参见s203,这里不再赘述。
90.具体地,如果第一震荡统计信息指示第一路由被更新的频繁程度较高,说明第一
路由可能在较短时间内被多次进行更新。那么如果第一网络设备选择了第一路由,第一网络设备可能需要频繁地更新转发表项,导致浪费第一网络设备的计算资源。因此,为了节省第一网络设备的计算资源,第一网络设备可以调整第一路由属性信息,以降低第一路由的路由优先级。
91.如果第一震荡统计信息指示第一路由被更新的频繁程度较低,说明第一路由被更新的可能性较小。那么如果第一网络设备选择了第一路由,第一网络设备更新转发表项的频率较低,对第一网络设备的计算资源的浪费较少。第一网络设备可以调整第一路由属性信息,以提高第一路由的路由优先级。
92.在一些可能的实现方式中,为了判断第一路由被更新的频繁程度,第一网络设备可以比较第一震荡统计信息与第一震荡阈值的大小,并比较第一震荡统计信息与第二震荡阈值的大小。其中,第一震荡阈值大于或等于第二震荡阈值。第一震荡阈值表示需要降低第一路由的路由优先级时,第一震荡统计信息的取值。第二震荡阈值表示需要增加第一路由的路由优先级时,第一震荡统计信息的取值。
93.如果第一震荡统计信息大于或等于第一震荡阈值,说明第一路由被更新的较为频繁,第一网络设备可以调整第一路由属性信息,以降低第一路由的路由优先级。如果第一震荡统计信息小于第二震荡阈值,说明第一路由被更新的频率较低,第一网络设备可以调整第一路由属性信息,以提高第一路由的路由优先级。
94.在本技术实施例中,第一路由属性信息可以是第一路由的路由属性信息,也可以是其他路由的路由属性信息。其中,所述其他路由为第一网络设备所存储的、除第一路由以外的、路由前缀与第一路由对应的路由前缀相同的所有路由。也就是说,对于图1-a所示的实现方式,如果网络设备121对应的震荡统计信息出现变化,网络设备125可以调整来自网络设备121的路由的路由属性信息,也可以调整来自网络设备123的路由的路由属性信息。
95.相应地,如果第一路由属性信息为第一路由的路由属性信息,那么第一网络设备调整第一路由属性信息以提高第一路由的路由优先级包括:第一网络设备调整第一路由的路由属性信息,以提高第一路由的路由优先级;第一网络设备调整第一路由属性信息以降低第一路由的路由优先级包括:第一网络设备调整第一路由的路由属性信息,以降低第一路由的路由优先级。
96.如果第一路由属性信息为第一网络设备中除第一路由以外其他路由的路由属性信息,第一网络设备调整第一路由属性信息以提高第一路由的路由优先级包括:第一网络设备调整第一网络设备中除第一路由以外其他所有路由的路由属性信息,以降低除第一路由以外其他所有路由的路由优先级。这样,在与第一路由对应的路由前缀的多条路由中,第一路由的路由优先级未改变,但是其他路由的路由优先级降低,相当于提升了第一路由的路由优先级。
97.如果第一路由属性信息为第一网络设备中除第一路由以外其他路由的路由属性信息,第一网络设备调整第一路由属性信息以降低第一路由的路由优先级包括:第一网络设备调整除第一路由以外其他所有路由的路由属性信息,提升除第一路由以外其他所有路由的路由优先级,以降低第一路由的路由优先级。这样,在与第一路由对应的路由前缀的多条路由中,第一路由的路由优先级未改变,但是其他路由的路由优先级提升,相当于降低了第一路由的路由优先级。
98.为了便于理解,后文以第一路由属性信息为第一路由的路由属性信息为例进行介绍。在一些可能的实现方式中,第一路由属性信息可以是第一路由的路由属性信息中与路由选择相关的路由属性信息。例如,第一路由属性信息包括但不限于第一路由的med属性值、第一路由的local preference值和第一路由的as path等相关信息。下面分别进行介绍。
99.实现方式一:第一路由属性信息包括第一路由的med属性值。
100.第一网络设备调整第一路由属性信息以增加第一路由的路由优先级包括:第一网络设备增加第一路由的med属性值;第一网络设备调整第一路由属性信息以降低第一路由的路由优先级包括:第一网络设备减小第一路由的med属性值。
101.具体地,增加第一路由的med属性值可以包括:将第一路由的med属性值增加预设值,或,将第一路由的med属性值与预设值相乘。减小第一路由的med属性值可以包括:将第一路由的med属性值减小预设值,或,将第一路由的med属性值与预设值相除。
102.实现方式二:第一路由属性信息包括第一路由的local preference值。
103.第一网络设备调整第一路由属性信息以增加第一路由的路由优先级包括:第一网络设备减小第一路由的local preference值;第一网络设备调整第一路由属性信息以降低第一路由的路由优先级包括:第一网络设备增加第一路由的local preference值。
104.具体地,增加第一路由的local preference值可以包括:将第一路由的local preference值增加预设值,或,将第一路由的local preference值与预设值相乘。减小第一路由的local preference值可以包括:将第一路由的local preference值减小预设值,或,将第一路由的local preference值与预设值相除。
105.实现方式三:第一路由属性信息包括第一路由的as path。
106.第一网络设备调整第一路由属性信息以增加第一路由的路由优先级包括:第一网络设备降低第一路由的as path的长度;第一网络设备调整第一路由属性信息以降低第一路由的路由优先级包括:第一网络设备增加第一路由的as path的长度。具体地,第一网络设备可以在第一路由的as path的最后一位添加预设as标识。预设as标识可以是第一网络设备所属的as的标识,也可以是预设的as标识,该预设的as标识被用于调整路由的路由优先级。或者,第一网络设备可以获取位于第一路由的as path末尾的as标识,并将该as标识添加到第一路由的as path的末尾。
107.降低第一路由的as path的长度需要删除第一路由的as path中as的标识。这样,可能导致as path中信息的丢失,导致网络设备无法根据第一路由的as path确定第一路由经过的as。因此,为了减少as path中信息的丢失,第一网络设备可以删除第一路由的as path中重复的as的标识。如果第一路由的as path中不包括重复的as标识,第一网络设备可以增加第一网络设备中除第一路由以外其他路由的as path的长度。
108.在实际的应用场景中,为了减少as path中信息的丢失,第一网络设备可以增加第一网络设备所存储的、与第一路由对应的路由前缀相同的其他路由的as path的长度。
109.可以理解的是,第一网络设备还可以通过其他方式调整第一路由属性信息。例如可以根据第一震荡统计信息等比例调整第一路由属性信息。或者,第一网络设备也可以将第一震荡统计信息作为第一路由属性信息。第一震荡统计信息越高,说明第一路由被更新的越频繁,第一路由的路由优先级越低。
110.s203:第一网络设备根据第一路由属性信息进行路由选择。
111.在确定第一路由属性信息之后,第一网络设备可以根据第一路由属性信息所代表的路由优先级进行路由选择。其中,路由选择是指从一条或多条路由中选择一条路由作为目标路由,以便对目标路由进行路由下发和/或路由通告。即,目标路由为用于路由下发和/或路由通告的路由。
112.第一路由的路由优先级根据第一路由属性信息确定。根据前文介绍可知,第一路由属性信息可以包括第一路由的med属性值、local preference值和as path等相关信息。相应地,第一路由的路由优先级可以通过第一路由的属性值的大小确定。例如,假设第一路由属性信息包括第一路由对应的med属性值,那么第一路由对应的med属性值越高,表示第一路由的路由优先级越低。
113.具体地,根据路由优先级进行路由选择的规则为:从候选路由集合中选择路由优先级最高的路由作为目标路由。其中,候选路由集合包括一条或多条路由。如果候选路由集合包括多条路由,候选路由集合所包括的路由对应的路由前缀相同。也就是说,如果候选路由集合除第一路由以外还包括其他路由,所述其他路由对应的路由前缀与第一路由对应的路由前缀相同。关于确定候选路由集合的方法这里不再赘述。
114.如果候选路由集合仅包括一条路由(即第一路由),表示第一网络设备上没有存储与第一路由对应的路由前缀相同的其他路由,第一网络设备将第一路由确定为目标路由。也就是说,无论第一路由的路由优先级高低,如果第一网络设备上没有存储与第一路由对应的路由前缀相同的其他路由,第一网络设备将第一路由确定为目标路由。
115.为了便于理解,下面以第一网络设备上存储有至少一条与第一路由对应的路由前缀相同的其他路由(即候选路由集合包括多条路由)为例进行说明。
116.如果候选路由集合包括多条路由,第一网络设备可以根据多条路由中每条路由的路由优先级,从多条路由中选择路由优先级最高的路由作为目标路由。
117.举例说明。假设第三网络设备向第一网络设备通告第二路由,且第二路由对应的路由前缀与第一路由对应的路由前缀相同。其中,第二路由对应的路由前缀与第一路由对应的路由前缀相同是指第二路由对应的路由前缀与第一路由对应的路由前缀相同。
118.在接收到第三网络设备通告的第二路由之后,第一网络设备根据第二路由的第二震荡统计信息确定第二路由对应的第二路由属性信息,第二路由属性信息用于指示第二路由的路由优先级。接着,第一网络设备可以根据第一路由属性信息和第二路由属性信息,比较第一路由的路由优先级与第二路由的路由优先级的高低。
119.如果第一路由的路由优先级低于第二路由的路由优先级,且第一网络设备未接收到其他对应的路由前缀与第一路由对应的路由前缀相同的路由,第一网络设备将第二路由确定为目标路由。如果第二路由的路由优先级低于第一路由的路由优先级,且第一网络设备未接收到其他对应的路由前缀与第一路由对应的路由前缀相同的路由,第一网络设备将第一路由确定为目标路由。
120.通过前文介绍可知,路由优先级越低,该路由被更新的频繁程度越高,表示该路由越不稳定。这样,选择路由优先级更高的路由作为目标路由,使得被选中的目标路由为候选路由集合中被更新的频繁程度最低的路由,即目标路由为候选路由集合中最稳定的路由。这样,根据路由的路由优先级确定目标路由,如果候选路由集合中其他路由出现震荡,第一
网络设备不用重新进行路由计算,节省了第一网络设备的计算资源。
121.根据前文介绍可知,目标路由用于路由下发和/或路由通告。下面以第一网络设备将第一路由确定为目标路由为例,分别对路由下发和路由通告进行介绍。
122.首先介绍路由下发。
123.路由下发是指根据目标路由生成转发表项并下发到转发面。根据前文介绍可知,本技术实施例提供的技术方案可以由网络设备的控制面执行。在确定目标路由之后,控制面可以将确定的目标路由下发给转发面,以便转发面基于目标路由转发数据报文。
124.具体地,如果第一网络设备为具有控制面和转发面的功能的网络设备,上述s201-s203由第一网络设备的控制面执行。在将第一路由确定为目标路由之后,第一网络设备的控制面可以基于第一路由生成转发表项。接着,第一网络设备的控制面将生成的转发表项下发到第一网络设备的转发面,以便第一网络设备的转发面根据转发表项转发数据报文。如果第一网络设备为控制面设备,第一网络设备可以向转发面设备下发基于目标路由生成的转发表项。
125.下面介绍路由通告。
126.在基于bgp或igp架构的网络系统中,网络设备可以将接收到的路由扩散给其他网络设备。该过程被称为路由通告。相应地,在将第一路由确定为目标路由之后,第一网络设备可以向其他网络设备通告第一路由。其中,所述其他网络设备可以包括一个或多个与第一网络设备连接的网络设备。例如,如果第一网络设备还与第四网络设备连接,第一网络设备向第四网络设备发送第一路由。可选地,第一网络设备还可以向第四网络设备发送第一路由属性信息。
127.可以理解的是,上述第四网络设备为与第一网络设备相邻的网络设备,例如可以是除第二网络设备和第三网络设备以外其他的网络设备,也可以是第二网络设备或第三网络设备。
128.在第一网络设备工作的过程中,第一网络设备所存储的路由可能出现变化。如果第一路由和/或第二路由出现了改变,第一网络设备可以调整目标路由。
129.具体地,在第一路由的第一震荡统计信息发生变化之后,第一网络设备根据新的第一震荡统计信息更新第一路由属性信息。同样,在第二路由的第二震荡统计信息发生变化之后,第一网络设备根据新的第二震荡统计信息更新第二路由属性信息。如果第一路由属性信息和/或第二路由属性信息出现了变化,第一网络设备重新确定第一路由的路由优先级和第二路由的路由优先级,并基于新的路由优先级进行路由选择。如果修改后第一路由的路由优先级低于修改后第二路由的路由优先级,第一网络设备将第二路由确定为目标路由,第一路由为非目标路由。接着,第一网络设备根据第二路由进行路由通告和/或路由下发。
130.根据前文介绍可知,网络设备之间的链路可能不稳定,导致两个网络设备之间的连接断开。在本技术实施例中,如果目标路由对应的连接断开,第一网络设备可以将路由优先级低于目标路由的路由确定为新的目标路由。具体地,第一网络设备可以从候选路由集合中选择除第一路由以外其他路由中路由优先级最高的路由确定为目标路由
131.例如,假设第一网络设备确定第一路由为目标路由,第二路由为非目标路由。如果第一网络设备和第二网络设备之间的链路被断开,第一路由处于不可用的状态。那么为了
正常转发数据报文,第一网络设备可以从候选路由集合中选择路由优先级低于第一路由的路由优先级的路由作为目标路由。因此,如果确定第一路由不可用,第一网络设备可以将第二路由确定为目标路由,并基于第二路由进行路由下发和/或路由通告。
132.需要说明的是,上述“第一路由处于不可用的状态”可以是第一网络设备与第二网络设备之间的连接断开导致的,也可以是其他原因导致的,例如可能是第一路由被第二网络设备撤销导致的。可以理解的是,无论何种原因导致第一路由不可用,第一网络设备可以在确定第一路由不可用之后将目标路由调整为第二路由。
133.下面结合图1-a所示的系统,以第一网络设备为网络设备125、第二网络设备为网络设备123、第三网络设备为网络设备121,第四网络设备为网络设备124为例,对上述方法做详细介绍。在下述实施例中,第一路由属性信息为第一路由的路由属性信息,第二路由属性信息为第二路由的属性信息。
134.根据前文介绍可知,网络设备121、网络设备123和网络设备124可以向网络设备125发送通告报文。根据通告报文,网络设备125接收到来自网络设备123的第一路由,来自网络设备121的第二路由和来自网络设备124的第三路由。其中,第一路由对应路由前缀100.1.0.0/16和端口z,第二路由对应路由前缀为100.1.0.0/16和端口x,第三路由对应路由前缀为200.2.0.0/16和端口y。
135.根据第一路由被更新的频繁程度,网络设备125确定第一震荡统计信息,并基于第一震荡统计信息确定第一路由属性信息。根据第二路由被更新的频繁程度,网络设备125确定第二震荡统计信息,并基于第二震荡统计信息确定第二路由属性信息。根据第三路由被更新的频繁程度,网络设备125确定第三震荡统计信息,并基于第三震荡统计信息确定第三路由属性信息。
136.假设第一路由属性信息、第二路由属性信息和第三路由属性信息均包括med属性值,第一路由、第二路由和第三路由分别对应的初始med属性值均为500。如果网络设备123到网络设备125之间的链路较为稳定,第一震荡统计信息指示第一路由较为稳定,那么网络设备125可以将第一路由对应的med属性值加100,第一路由属性信息中med属性值为600。
137.如果网络设备121到网络设备125之间的链路不稳定,第二震荡统计信息指示第二路由被更新的较为频繁,那么网络设备125可以将第二路由对应的med属性值加200,第二路由属性信息中的med属性值为700。网络设备124到网络设备125之间的链路较为稳定,第三震荡统计信息指示第三路由较为稳定,那么网络设备125可以将第三路由对应的med属性值加100,第三路由属性信息中的med属性值为600。
138.由于第一路由对应的路由前缀为100.1.0.0/16,和第二路由的路由前缀100.1.0.0/16相同,网络设备125根据第一路由路由属性信息和第二路由属性信息从第一路由和第二路由中选择路由优先级比较高的目标路由。由于第一路由对应med属性值为600,第二路由对应的med属性值为700,网络设备125将第一路由确定为路由前缀100.1.0.0/16对应目标路由,并基于第一路由和第三路由生成转发表项。具体地,网络设备125生成的转发表项包括路由前缀100.1.0.0/16和端口z之间的对应关系,以及路由前缀200.2.0.0/16和端口y之间的对应关系。这样,来自设备112的数据报文,通过路径“网络设备124
→
网络设备125
→
网络设备123
→
网络设备122”传输到网络设备111。
139.如果网络设备125与网络设备123之间的连接被断开,第一路由不可用。网络设备
125可以从接收到的路由中,查找与路由前缀100.1.0.0/16对应的其他路由,并从中选取路由优先级最高的路由作为目标路由。也就是说,网络设备125可以将第二路由确定为目标路由,并基于第二路由和第三路由生成转发表项。具体地,网络设备125生成的转发表项包括路由前缀100.1.0.0/16和端口x之间的对应关系,以及路由前缀200.2.0.0/16和端口t之间的对应关系。这样,来自设备112的数据报文,通过路径“网络设备124
→
网络设备125
→
网络设备121”传输到网络设备111。
140.如果网络环境发生改变,第一路由在短时间内被反复更新,网络设备125可以根据第一路由被更新的情况调整第一震荡统计信息,并基于新的第一震荡统计信息更新第一路由属性信息。如果预设时间内第一路由被更新的次数,高于同时段内第二路由被更新的次数,网络设备125可以将第一路由属性信息中med属性值调整为800。这样,由于第一路由对应的med属性值大于第二路由对应的med属性值,网络设备125将第二路由确定为路由前缀100.1.0.0对应的目标路由。相应地,网络设备125生成的转发表项包括路由前缀100.1.0.0和端口x之间的对应关系,以及路由前缀200.2.0.0和端口t之间的对应关系。来自设备112的数据报文,通过路径“网络设备124
→
网络设备125
→
网络设备121”传输到网络设备111。
141.参见图4,本技术实施例还提供了一种路由选择的装置400,该路由选择的装置400可以实现图2所示实施例中第一网络设备的功能。该路由选择的装置400包括获取单元410和处理单元420。其中,获取单元410用于实现图2中接收第一路由的部分,处理单元20用于实现图2所示实施例中的s202和s203。
142.具体的,处理单元410,用于获取第二网络设备通告的第一路由。
143.发送单元420,用于根据所述第一路由的第一震荡统计信息确定第一路由属性信息,;根据所述第一路由属性信息进行路由选择。
144.具体执行过程请参考上述图2所示实施例中相应步骤的详细描述,这里不再一一赘述。
145.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,处理单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
146.图5是本技术实施例提供的一种设备500的结构示意图。上文中的路由选择的装置400可以通过图5所示的设备来实现。参见图5,该设备500包括至少一个处理器501,通信总线502以及至少一个网络接口504,可选地,该设备500还可以包括存储器503。
147.处理器501可以是一个通用中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)或一个或多个用于控制本技术方案程序执行的集成电路(integrated circuit,ic)。处理器可以用于对报文或周期参数进行处理,以实现本技术实施例中提供的路由选择的方法。
148.比如,当图2中的第一网络设备通过图5所示的设备来实现时,该处理器501可以用于:获取第二网络设备通告的第一路由;根据所述第一路由的第一震荡统计信息确定第一路由属性信息;根据所述第一路由属性信息进行路由选择。
149.通信总线502用于在处理器501、网络接口504和存储器503之间传送信息。
150.存储器503可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,存储器503还可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器503可以是独立存在,通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
151.可选地,存储器503用于存储执行本技术实施例提供的技术方案的程序代码或指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器501也可以存储执行本技术实施例提供的技术方案的程序代码或指令,在这种情况下处理器501不需要到存储器503中读取程序代码或指令。
152.网络接口504可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(ran)或无线局域网(wireless local area networks,wlan)等。在本技术实施例中,网络接口504可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口504可以为以太接口(ethernet)接口、快速以太(fast ethernet,fe)接口或千兆以太(gigabit ethernet,ge)接口等。
153.在具体实现中,作为一种实施例,设备500可以包括多个处理器,例如图6中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
154.图6是本技术实施例提供的一种设备600的结构示意图。图2中的各个设备可以通过图6所示的设备来实现。参见图6所示的设备结构示意图,设备600包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板包括cpu和存储器,主控板负责对设备600中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(line processing unit,lpu)或线卡(line card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备600也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(switch fabric unit,sfu)。接口板包括cpu、存储器、转发引擎和接口卡(interface card,ic),其中接口卡可以包括一个或多个网络接口。网络接口可以为ethernet接口、fe接口或ge接口等。cpu与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备600的ip地址,则将该报文发送给主控板或接口板的cpu进行处理;如果接收到的报文的目的地址不是设备600的ip地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和目标接口,将该报文转发到该目的地址对应的目标接口。转发引
擎可以是网络处理器(network processor,np)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板cpu。在一些实施例中,cpu也可执行转发引擎的功能,比如基于通用cpu实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过asic或现场可编程门阵列(field programmable gate array,fpga)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。
155.本技术实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述图2所示实施例中由第一网络设备执行的路由选择的方法。
156.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
157.示例性的,该芯片系统可以是fpga,可以是asic,还可以是系统芯片(system on chip,soc),还可以是cpu,还可以是np,还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
158.应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
159.本技术实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由第一网络设备执行的路由选择的方法。
160.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由第一网络设备执行的路由选择的方法。
161.本技术实施例还提供了一种系统,所述系统包括第一网络设备和第二网络设备,所述第一设备用于执行以上方法实施例提供的、由第一网络设备执行的路由选择的方法,所述第二设备用于执行以上方法实施例中通告第一路由的方法。可以理解的是,第二网络设备也可以执行本技术实施例提供的路由选择的方法。
162.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
163.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
164.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
165.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。
166.另外,在本技术各个实施例中的各模块单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。
167.所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
168.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
169.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。
170.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种路由选择的方法,其特征在于,包括:第一网络设备获取第二网络设备通告的第一路由;所述第一网络设备根据所述第一路由的第一震荡统计信息确定第一路由属性信息;所述第一网络设备根据所述第一路由属性信息进行路由选择。2.根据权利要求1所述的方法,其特征在于,所述第一网络设备未存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一网络设备根据所述第一路由属性信息进行路由选择包括:所述第一网络设备根据所述第一路由生成第一转发表项,和/或,所述第一网络设备向其他网络设备通告所述第一路由。3.根据权利要求1所述的方法,其特征在于,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一路由的路由属性信息,所述第一路由属性信息用于指示所述第一路由的路由优先级。4.根据权利要求1所述的方法,其特征在于,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一网络设备所存储的与所述第一路由前缀相同的其他路由的路由属性信息,所述第一路由属性信息用于指示所述第一网络设备上所述第一路由前缀相同的其他路由中每条路由的路由优先级。5.根据权利要求3或4所述的方法,其特征在于,所述与所述第一路由对应的路由前缀相同的其他路由包括第二路由,所述第一网络设备根据所述第一路由属性信息进行路由选择包括:所述第一网络设备确定所述第一路由的路由优先级高于所述第二路由的路由优先级;所述第一网络设备根据所述第一路由生成第一转发表项,和/或,所述第一网络设备向其他网络设备通告所述第一路由。6.根据权利要求3或4所述的方法,其特征在于,所述与所述第一路由对应的路由前缀相同的其他路由包括第三路由,所述第一网络设备根据所述第一路由属性信息进行路由选择包括:所述第一网络设备确定所述第一路由的路由优先级低于所述第三路由的路由优先级;所述第一网络设备根据所述第三路由生成第二转发表项,和/或,所述第一网络设备向其他网络设备通告所述第三路由;响应于所述第三路由不可用,所述第一网络设备根据所述第一路由生成第一转发表项,和/或,所述第一网络设备向其他网络设备通告所述第一路由。7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:所述第一网络设备根据所述第二网络设备发送第一报文的频率确定所述第一震荡统计信息,所述第一报文用于更新所述第一网络设备的所述第一路由。8.根据权利要求7所述的方法,其特征在于,所述第一报文用于向所述第一网络设备通告所述第一路由,或,所述第一报文用于指示所述第一网络设备删除存储的所述第一路由,或,所述第一报文用于指示所述第一网络设备修改所述第一网络设备存储的所述第一路由。9.根据权利要求7或8所述的方法,其特征在于,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率,所述第一网络设备根据所述第一路由的第一震荡统计
信息确定第一路由属性信息包括:响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率高于第一震荡阈值,所述第一网络设备调整所述第一路由属性信息,以降低所述第一路由的路由优先级;响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率小于第二震荡阈值,所述第一网络设备调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡阈值大于或等于所述第二震荡阈值。10.根据权利要求7或8所述的方法,其特征在于,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率在预设时间段内的变化量。11.根据权利要求10所述的方法,其特征在于,所述第一网络设备根据所述第一路由的第一震荡统计信息确定第一路由属性信息包括:响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量高于第一震荡变化阈值,所述第一网络设备调整所述第一路由属性信息,以降低所述第一路由的路由优先级;响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量小于第二震荡变化阈值,所述第一网络设备调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡变化阈值大于或等于所述第二震荡变化阈值。12.根据权利要求7-11任一项所述的方法,其特征在于,所述第一报文为边际网关协议bgp更新update报文。13.根据权利要求3所述的方法,其特征在于,所述第一路由属性信息包括以下任意一项或多项:所述第一路由的多出口区分med属性值、所述第一路由的本地优先级localpreference值和所述第一路由的自治系统as路径path信息。14.一种路由选择的装置,其特征在于,所述装置应用于第一网络设备,包括:获取单元,用于获取第二网络设备通告的第一路由;处理单元,用于根据所述第一路由的第一震荡统计信息确定第一路由属性信息;根据所述第一路由属性信息进行路由选择。15.根据权利要求14所述的装置,其特征在于,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述处理单元,具体用于根据所述第一路由生成第一转发表项,和/或,向其他网络设备通告所述第一路由。16.根据权利要求14所述的装置,其特征在于,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一路由的路由属性信息,所述第一路由属性信息用于指示所述第一路由的路由优先级。17.根据权利要求14所述的装置,其特征在于,所述第一网络设备存储有与所述第一路由对应的路由前缀相同的其他路由,所述第一路由属性信息为所述第一网络设备上与所述第一路由前缀相同的其他路由的路由属性信息,所述第一路由属性信息用于指示所述第一网络设备上所述第一路由前缀相同的其他路由中每条路由的路由优先级。
18.根据权利要求16或17所述的装置,其特征在于,所述与所述第一路由对应的路由前缀相同的其他路由包括第二路由,所述处理单元,具体用于确定所述第一路由的路由优先级高于所述第二路由的路由优先级;所述处理单元,还用于根据所述第一路由生成第二转发表项,和/或,还用于向其他网络设备通告所述第一路由。19.根据权利要求16或17所述的装置,其特征在于,所述与所述第一路由对应的路由前缀相同的其他路由包括第三路由,所述处理单元,具体用于确定所述第一路由的路由优先级低于所述第三路由的路由优先级;根据所述第三路由生成第一转发表项,和/或,所述第一网络设备向其他网络设备通告所述第三路由;响应于所述第三路由不可用,根据所述第一路由生成第一转发表项,和/或,向其他网络设备通告所述第一路由。20.根据权利要求14-19任一项所述的装置,其特征在于,所述处理单元,还用于根据所述第二网络设备发送第一报文的频率确定所述第一震荡统计信息,所述第一报文用于更新所述第一网络设备的所述第一路由。21.根据权利要求20所述的装置,其特征在于,所述第一报文用于向所述第一网络设备通告所述第一路由,或,所述第一报文用于指示所述第一网络设备删除存储的所述第一路由,或,所述第一报文用于指示所述第一网络设备修改所述第一网络设备存储的所述第一路由。22.根据权利要求20或21所述的装置,其特征在于,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率,所述处理单元,具体用于响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率高于第一震荡阈值,调整所述第一路由属性信息,以降低所述第一路由的路由优先级;或者,响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率小于第二震荡阈值,调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡阈值大于或等于所述第二震荡阈值。23.根据权利要求20或21所述的装置,其特征在于,所述第一震荡统计信息包括所述第二网络设备发送所述第一报文的频率在预设时间段内的变化量。24.根据权利要求23所述的装置,其特征在于,所述处理单元,具体用于响应于所述第一震荡统计信息指示第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量高于第一震荡变化阈值,调整所述第一路由属性信息,以降低所述第一路由的路由优先级;或者,响应于所述第一震荡统计信息指示所述第二网络设备发送所述第一报文的频率在所述预设时间段内的变化量小于第二震荡变化阈值,调整所述第一路由属性信息,以提高所述第一路由的路由优先级,所述第一震荡变化阈值大于或等于所述第二震荡变化阈值。25.根据权利要求20-24任一项所述的装置,其特征在于,所述第一报文为边际网关协议bgp更新update报文。26.根据权利要求16所述的装置,其特征在于,所述第一路由属性信息包括以下任意一项或多项:
所述第一路由的多出口区分med属性值、所述第一路由的本地优先级local preference值和所述第一路由的自治系统as路径path信息。27.一种网络设备,其特征在于,所述网络设备包括存储器和处理器,所述存储器用于存储指令或程序代码,所述处理器用于运行所述指令或程序代码,以使得所述网络设备执行如权利要求1-13任一项权利要求所述的路由选择的方法。28.一种系统,其特征在于,所述系统包括第一网络设备和第二网络设备;所述第二网络设备,用于向所述第一网络设备通告第一路由;所述第一网络设备,用于实现如权利要求1-13任一项权利要求所述的路由选择的方法。29.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上执行时,使得所述计算机实现如权利要求1-13任一项权利要求所述的路由选择的方法。30.一种计算机程序产品,其特征在于,包括程序,当所述程序在计算机上运行时,使得所述计算机实现如权利要求1-13任一项权利要求所述的路由选择的方法。
技术总结
本申请公开了一种路由选择的方法、装置、设备、系统及存储介质,旨在根据路由震荡的频繁程度确定路由优先级,以减少路由计算的频率和更新路由表的频率。其中,所述路由选择的方法包括:第一网络设备获取第二网络设备通告的第一路由;所述第一网络设备根据所述第一路由的第一震荡统计信息确定第一路由属性信息;所述第一网络设备根据所述第一路由属性信息进行路由选择。行路由选择。行路由选择。
技术研发人员:李兴诺
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.11
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/