一种减少路由环路的方法、装置及系统与流程

文档序号:31791464发布日期:2022-10-14 15:34阅读:44来源:国知局
一种减少路由环路的方法、装置及系统与流程
一种减少路由环路的方法、装置及系统
1.本技术是向中国知识产权局提交的申请日为2020年9月29日、申请号为202080002694.6、发明名称为“一种减少路由环路的方法、装置及系统”的申请的分案申请。
技术领域
2.本技术涉及通信技术领域,尤其涉及一种减少路由环路的方法、装置及系统。


背景技术:

3.动态路由协议中间系统到中间系统(intermediate system to intermediate system,is-is)、开放式最短路径优先(open shortest path first,ospf)、边界网关协议(border gateway protocol,bgp)在现网中得到广泛的应用。在已有的组网方案中通常涉及is-is多进程路由互引、ospf多进程路由互引或ospf与bgp路由互引等各种互引的场景。如果某一个重发布路由的路由设备的路由前缀配置不当,会触发路由出现三层环路。其中,路由重发布是指路由设备将路由表中其他协议域(或其他进程)的路由在当前协议域(或当前进程)发布。在is-is和ospf组网方案中,每个进程的链路状态数据库(link state database,lsdb)信息和路由信息是隔离的,可以分别运行不同的业务。一台设备可以通过配置多个ospf进程或者多个is-is进程来模拟多台设备。
4.在图1所示的网络环境中,路由设备rt1发布路由,且rt1/rt2/rt3/rt4/rt5运行路由协议1,rt4/rt5/rt6/rt7运行路由协议2;在rt4和rt5设备,路由协议1和路由协议2做互相引入,由于路由协议(进程)间防环机制欠缺,即rt5经过路由协议2学到后,rt5又重发布回路由协议1,在协议1的协议域内出现路由前缀重叠的情况,所以并不能有效的避免上述环路情况出现;并且在环路故障期间路径跟踪程序(tracert)只能显示涉及的环路设备,需要逐台设备登陆,才能确认哪台设备是环路的触发源,环路检测的耗时长;而且环路正在发生时才能做tracert操作,故障消失后定位困难。


技术实现要素:

5.本技术实施例提供一种减少路由环路的方法、装置及系统,用以解决环路故障定位和恢复困难且时间长的技术问题。
6.第一方面,本技术实施例提供一种减少路由环路的方法,包括:
7.第一网络设备接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述第一网络设备运行第一路由协议和第二路由协议,所述第一路由协议与所述第二路由协议不同。所述第一网络设备根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路。响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,所述第一网络设备不向所述第二网络设备发布所述第一路由;或者,所述第一网络设备上报告警信息,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
8.现在已有技术的多协议互引场景中,若第一路由协议与第二路由协议互引,第一路由协议中的路由在引入第二路由协议时,由于协议间的环路判断机制不完善,所以在多进程或多协议互引场景很多时候不能提供合理的方式来防止这种环路故障出现。基于该问题,分析现在已有的技术可以确定,现在已有技术中协议互引的时可能会出现路由前缀重叠,所以本技术实施例所提供的方法,在网络设备发布某一路由前,先根据该路由所携带的标识信息(设备标识和/或协议标识)判断是否会引发路由环路,如果存在风险,则可以直接放弃发布该路由;或者是生成告警信息提示发布该路由可能会引发路由环路,使得网络设备能够在引发路由环路的位置或者是时刻定位路由环路,利于后续环路故障的定位进而缩短环路故障检测的时间。
9.在该实施例所适用的场景中,发送告警信息(该告警信息可以包括环路故障出现的位置、出现环路故障的时间信息等)的方式可以有多种;第一种,路由设备进行了环路判断并得到判断结果(该判断结果可以是存在路由环路或不存在路由环路);将该判断结果记录在日志信息中上报到应用层,使得检测环路故障时可以通过该日志信息确定出现路由环路的位置以及时间等信息;进而快速确定并解决环路故障。第二种,该多协议场景中,包括一个与各个网络设备(该实施例中可以是路由设备)连接的网管设备(或者是该场景中的某一个路由设备设置为承担网管设备的功能),路由设备在判断存在路由环路后,则将告警信息上报给该网管设备;使得后续环路故障检测的时候可以直接在该网管设备确定环路故障的信息。
10.在上述实施例中,网络设备可以通过源协议标识、源设备标识两个参数分别确定是否存在路由环路也可以结合使用确定是否存在路由环路,结合使用的时候两个参数的使用方式与分别使用时相同,只是在两个参数同时使用时,需要确定先通过源设备标识进行路由环路判断还是先通过源协议标识进行路由环路判断,用两个参数进行判断的方案除了参数的先后判断顺序外,其他具体实现和通过一个参数判断的方式相同;基于该特性以下主要针对两个参数分别使用时的方法实现进行进一步的说明:
11.在一种可选的实施方式中,根据所述源设备标识确定发布所述第一路由存在路由环路时,所述第一网络设备根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路包括:所述第一网络设备根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
12.通过设备标识可以明确的确定多协议中发布第一路由的网络设备的设备标识(该设备标识实际应用中可以是router-id),从而可以追溯发布过第一路由的一个或者多个网络设备,在通过设备标识识别是否发生路由环路的同时,还可以根据追溯到的发布过第一路由的网络设备进行告警,确定环路出现的位置以及时间等信息。
13.在一种可选的实施方式中,若所述第一路由所属的路由协议为开放式最短路径优先ospf、边界网关协议bgp或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
14.进一步,在一种可选的实施方式中,因为不同协议类型在具体发布路由的时候所采用的方式不同,所以基于不同类型的路由协议,标识信息会携带在不同的信息中,具体实现可以是:若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标
识信息携带在链路状态广播lsa中;若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中;若所述第一路由所属的路由协议的类型为边界网关协议bgp,则所述标识信息携带在bgp更新报文中。
15.另外,在一种可选的实施方式中,还可以根据所述源协议标识确定发布所述第一路由存在路由环路,则对应的第一网络设备根据所述标识信息确定向运行所述第二网络协议的第二网络设备发布所述第一路由会引发路由环路包括:所述第一网络设备根据所述源协议标识与所述第二网络设备所运行的第二路由协议的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由相同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
16.在一种可选的实施方式中,当标识信息为源协议标识时,因为不同协议类型获取到协议标识的方式不同,所以在该实施例中源协议标识可以是:若所述第一路由所属的路由协议为ospf,则所述源协议标识为与所述ospf的进程对应的路由器标识;若所述第一路由所属的路由协议为is-is,则所述源协议标识为与所述is-is的进程对应的路由器标识;若所述第一路由协议的类型为bgp,则所述源协议标识所述第一路由协议的自治域as号。
17.在一种可选的实施方式中,基于上述不同协议类型所确定的源协议标识,进一步对应的携带源协议标识的方式可以是:若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中;若所述第一路由所属的路由协议的类型为bgp,则所述标识信息携带在更新报文的路径属性中。
18.第二方面,提供一种减少路由环路的方法,该方法包括:第一网络设备接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述第一网络设备运行第一进程和第二进程,所述第一进程与所述第二进程不同;所述第一网络设备根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,所述第一网络设备不向所述第二网络设备发布所述第一路由;或者,所述第一网络设备上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
19.在一种可选的实施方式中,所述第一网络设备根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路包括:所述第一网络设备根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
20.在一种可选的实施方式中,若所述第一路由所属的路由协议为开放式最短路径优先ospf或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
21.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中。
22.在一种可选的实施方式中,所述第一网络设备根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路包括:所述第一网络设备根据
所述源协议标识与所述第二网络设备所运行的第二进程对应的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由相同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
23.在一种可选的实施方式中,若所述第一路由所属的路由协议为ospf,则所述源协议标识为与所述ospf的进程对应的路由器标识;若所述第一路由所属的路由协议为is-is,则所述源协议标识为与所述is-is的进程对应的路由器标识。
24.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中。
25.上述第一方面和第二方面所提供的方法,区别在于第一方面所提供方法针对的是多协议互引场景,第二方面所提供方法针对的是多进程互引场景;上述两种方法的具体实现原理类似,而且两种方法在具体实现时候可能会存在相互重叠的情况,所以上述两种方法的描述可以相互印证以及相互说明。当然第二方面方法中的各种细节内容可以引用第一方面所描述的内容,为了描述简单在此不再赘述第二方面方法的各种细节内容。
26.第三方面,提供一种网络设备,该网络设备包括:
27.接收单元,用于接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述网络设备运行第一路由协议和第二路由协议,所述第一路由协议与所述第二路由协议不同;
28.处理单元用于根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路;确定不向所述第二网络设备发布所述第一路由;或者,上报告警信息,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
29.在一种可选的实施方式中,所述处理单元具体用于根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
30.在一种可选的实施方式中,若所述第一路由所属的路由协议为开放式最短路径优先ospf、边界网关协议bgp或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
31.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中;若所述第一路由所属的路由协议的类型为边界网关协议bgp,则所述标识信息携带在bgp更新报文中。
32.在一种可选的实施方式中,所述处理单元具体用于根据所述源协议标识与所述第二网络设备所运行的第二路由协议的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由相同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
33.在一种可选的实施方式中,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程的路由器标识;若所述第一路由所属的路由协议为is-is,则所述
源协议标识为所述is-is的进程的路由器标识;若所述第一路由协议的类型为bgp,则所述源协议标识所述第一路由协议的自治域as号。
34.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中;若所述第一路由所属的路由协议的类型为bgp,则所述标识信息携带在更新报文的路径属性中。
35.第四方面,提供一种网络设备,该网络设备包括接收单元和处理单元。接收单元用于接收第一协议报文,所述第一保报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述第一网络设备运行第一进程和第二进程,所述第一进程与所述第二进程不同;处理单元用于根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;确定不向所述第二网络设备发布所述第一路由;或者,上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
36.在一种可选的实施方式中,所述处理单元具体用于根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
37.在一种可选的实施方式中,若所述第一路由所属的路由协议为开放式最短路径优先ospf或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
38.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中。
39.在一种可选的实施方式中,所述处理单元具体用于根据所述源协议标识与所述第二网络设备所运行的第二进程对应的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由相同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
40.在一种可选的实施方式中,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程的路由器标识;若所述第一路由所属的路由协议为is-is,则所述源协议标识为所述is-is的进程的路由器标识。
41.在一种可选的实施方式中,若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中。
42.第五方面,提供一种减少路由环路的系统,该系统包括第一网络设备和第二网络设备;其中第一网络设备运行第一路由协议和第二路由协议,所述第一路由协议与所述第二路由协议不同:
43.第一网络设备用于接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识;根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路;并响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;或者,上报告警信息,
所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
44.在一种可选的实施方式中,所述系统还包括:
45.网管设备用于接收所述告警信息。
46.该实施例中,该网管设备可以是该场景中的各个路由设备连接,但是与该场景中的路由设备独立开的网管设备;则路由设备发送告警信息时,则将该告警信息发送到该网管设备。
47.当然该实现方式中该网管设备也可以是该场景中的某一个路由设备承担网管设备的功能,其他没有网管功能的路由设备在判断存在路由环路后,则将告警信息上报给该具有网管功能的路由设备。
48.通过告警信息上报,使得环路故障出现后的环路故障检测可以直接在该网管设备确定环路故障的信息,缩短检测时延。
49.第六方面,提供一种减少路由环路的系统,该系统包括第一网络设备和第二网络设备;其中第一网络设备运行第一进程和第二进程,所述第一进程与所述第二进程不同:
50.第一网络设备用于接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识;根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;或者,上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
51.第七方面,提供一种减少路由环路的方法,该方法包括第一网络设备将标识信息添加到第一报文,并将第一报文发送给第二网络设备,第一报文包括第一路由。其中该标识信息包括发布所述第一路由的第一网络设备的标识或所述第一路由所属的路由协议的源协议标识,该标识信息用于指示第二网络设备根据标识信息判断是否会发生环路。
52.在一种可选的实施方式中,第一网络设备运行第一路由协议和第二路由协议,或者第一网络设备运行第一进程和第二进程。
53.第八方面,提供一种减少路由环路的网络设备,该网络设备用于执行第七方面或第七方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第七方面或第七方面的任意一种可能的实现方式中的方法的单元。
54.第九方面,提供一种减少路由环路的网络设备,该网络设备包括:处理器、通信接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第七方面或第七方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。
55.第十方面,提供一种芯片,所述芯片与电子设备中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的程序指令,实现如第一方面或第二方面任一实施方式所述的方法。
56.第十一方面,提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如第一方面或第二方面任
一实施方式所述的方法。
57.第十二方面,本技术实施例提供了一种网络设备,该网络设备包括:处理器、通信接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面、第二方面、第一方面的任意一种可能的实现方式中或第二方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。
附图说明
58.图1为现在已有技术中多协议或多进程互引的网络环境架构示意图;
59.图2为本发明实施例提供的一种减少路由环路的方法的流程示意图;
60.图3为本发明实施例提供的方法适用于ospf和isis互相引入的网络环境构架示意图;
61.图4为本发明实施例提供的方法适用于图3所示的场景的方法流程示意图;
62.图5为本发明实施例提供的方法适用于bgp和isis互相引入的网络环境构架示意图;
63.图6为本发明实施例提供的方法适用于图5所示的场景的方法流程示意图;
64.图7为本发明实施例提供的方法适用于ospf和isis互相引入的网络环境构架示意图;
65.图8为本发明实施例提供的方法适用于图7所示的场景的方法流程示意图;
66.图9为本发明实施例提供的另外一种减少路由环路的方法的流程示意图;
67.图10为本发明实施例提供的一种网络设备的结构示意图;
68.图11为本发明实施例提供的另外一种网络设备的结构示意图;
69.图12为本发明实施例提供的一种网络设备的结构示意图;
70.图13为本发明实施例提供的一种防止路由环路的系统的结构示意图。
具体实施方式
71.基于本技术实施例所要解决的技术问题分析可以确定,在多进程或多协议路由互引技术中,重发布的路由没有控制路由前缀范围,使得重发布路由的路由前缀可能会出现重叠现象,从而导致业务流量在两个路由协议中形成环路;路由协议内防环机制比较完备,但是路由协议或进程间防环机制欠缺,所以现在多进程或多协议路由互引技术并不能有效的避免多进程或多协议路由互引技术中出现的路由环路故障问题,并且上述路由环路故障为网络级故障,故障定位和恢复困难且时间长。
72.根据上述技术问题分析,本技术实施例提供的减少路由环路的方法,路由设备发布某一路由前,会通过一定的方式对发布的路由进行是否会出现路由环路的风险确认,如果发布该路由会产生路由环路,则不发布该路由或发送告警信息,所述告警信息用于标识网络设备再向其他网络设备发布所述第一路由会引发路由环路。
73.本发明实施例所公开方法中所提及的网络设备在实现该实施例方法的应用场景中可以是路由设备,该路由设备可应用于多种组网方案的多协议或者多进程路由互引场景,本技术实施例所提供方法所适用的场景可以是如图1所示的多路由设备交互场景,在图1所示的场景中,一些路由设备只运行一个路由协议(例如:rt2、rt3、rt6和rt7),一些路由
设备运行两种或者更多种不同的路由协议(例如:rt4和rt5);本实施例方法中所描述的多协议或多进程互引场景,则发生在rt4和rt5中。在该实施例中,因为路由设备根据路由中携带的标识信息来确定发布路由是否会产生路由环路,对于重发布的路由,则可以直接从第一路由中获取到标识信息;对于路由设备作为原始路由设备在发布路由的时候,则可以按照预设的方式将标识信息携带在路由中。所以图1中的路由设备中,rt4和rt5出现多协议路由互引场景时通过本技术实施例所提供的方法可以实现路由环路检测。
74.鉴于上述路由设备的结构,下面将结合附图,对本技术实施例所提供的一种减少路由环路的方法进行详细的说明,该方法可以包括步骤(如图2所示):
75.步骤201,第一网络设备接收第一报文。
76.第一报文携带标识信息和第一路由,标识信息包括发布第一路由的设备的源设备标识或第一路由所属的路由协议的源协议标识,第一网络设备运行第一路由协议和第二路由协议,第一路由协议与第二路由协议不同。
77.其中,标识信息用于标识发布第一路由的设备的源设备标识或所述第一路由所属的路由协议的协议标识,换句话说,标识信息既可以是发布第一路由的设备的源设备标识和第一路由所属的路由协议的协议标识,也可以是第一路由的设备的源设备标识或者第一路由所属的路由协议的协议标识中的任意一个。
78.本技术中的第一路由所属的路由协议可以是从本次发布第一路由的网络设备的ip路由表里面查找到的路由协议。源设备标识是本次发布第一路由并携带标识信息的网络设备的设备标识。
79.步骤202,第一网络设备根据标识信息确定向运行第二路由协议的第二网络设备发布第一路由会引发路由环路。
80.在该实施例中,向运行所述第二路由协议的第二网络设备发布第一路由(即第一网络设备将第一路由从第一路由协议引入第二路由协议)时,会根据第一路由所对应的标识信息来确定向运行所述第二路由协议的第二网络设备发布所述第一路由是否会引发路由环路。在上述实施例中,网络设备可以通过源协议标识或源设备标识确定是否存在路由环路也可以结合使用确定是否存在路由环路,结合使用的时候两个参数的使用方式与分别使用时相同,只是在两个参数同时使用时,需要确定先通过源设备标识进行路由环路判断还是先通过源协议标识进行路由环路判断,其他具体实现和通过一个参数判断的方式相同。第一网络设备根据标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路包括:
81.方式一,如果标识信息包括发布所述第一路由的设备的源设备标识,则确定是否会引发路由环路的方式可以是:
82.第一网络设备根据源设备标识中包含与第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
83.方式二,如果标识信息包括第一路由所属的路由协议的源协议标识,则确定是否会引发路由环路的方式可以是:
84.第一网络设备根据源协议标识与第二网络设备所运行的第二路由协议的协议标识相同,且第二网络设备所包括的路由中有与所述第一路由相同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
85.步骤203,响应于第一网络设备确定向第二网络设备发布第一路由会引发路由环路,第一网络设备不向所述第二网络设备发布所述第一路由;或者,所述第一网络设备上报告警信息,告警信息用于标识所述第一网络设备向第二网络设备发布第一路由会引发路由环路。
86.在该实施例所适用的场景中,发送告警信息(该告警信息可以包括环路故障出现的位置、出现环路故障的时间信息等)的方式可以有多种;第一种,网络设备进行了路由环路判断,并得到判断结果(该判断结果可以是存在路由环路或不存在路由环路);将该判断结果记录在日志信息中并上报到应用层,使得可以通过该日志信息确定出现路由环路的位置以及时间等信息,进而快速确定路由环路故障。第二种,在多协议场景中,包括一个与各个网络设备连接的网管设备(或者是该场景中的某一个网络设备被设置为承担网管设备的功能),网络设备在判断存在路由环路后,则将告警信息上报给该网管设备;使得后续路由环路故障检测的时候可以根据网管设备接收的告警信息确定环路故障的相关信息。
87.在该实施例中,网络设备通过报文中携带的路由对应的源协议标识或者源设备标识,确定如果将该路由发布到其他协议域(即运行所述第二路由协议的第二网络设备)可能会出现路由环路,则会不发布路由或者是发送告警信息,本技术实施例提供的方法在达到避免环路故障的同时还能最大限度的不影响路由学习的效果。
88.在多协议互引场景中,若有两个及以上的网络设备同时运行第一路由协议与第二路由协议,并且还存在路由协议互引(重发布)的情况,则第一路由协议中的路由在引入第二路由协议时,则可能会出现路由协议间的环路问题,基于该问题,由于重发布路由的优先级可能比原始路由的优先级更高,所以路由设备依然会选择重发布路由,所以导致协议互引时可能会出现路由前缀重叠(即环路故障)。
89.本技术实施例所提供的方法,在路由设备重发布某一路由前,先根据该重发布的路由所携带的信息(设备标识和/或协议标识)判断是否会出现路由环路,如果会引发路由环路,则可以直接放弃发布路由;或者是生成告警信息提示发布该路由会引发路由环路,使得网络设备在发布路由之前能够在引发路由环路的位置或者是时刻定位路由环路,从而不发布路由或确定定位路由环路的信息利于后续路由环路故障的定位进而缩短环路故障检测的时间。
90.因为本技术实施例中路由设备在发布路由之前,需要通过路由对应的标识信息来避免协议互引所造成的环路故障,如果发布的路由已经有对应的标识信息,则直接获取该标识信息进行判断;如果要发布的路由没有标识信息,网络设备则根据本技术实施例所提供的方法将标识信息携带在该次发布的路由中。因为获取携带标识信息和获取标识信息的方式是完全对应一致的,所以在该实施例中就统一描述;但是因为标识信息为源设备标识和源协议标识时,所对应的内容不同,而且标识信息的携带方式也会不同,以下结合具体的参数分别进行详细的说明:
91.方式a,标识信息是源协议标识,具体可以是:
92.首先,源协议标识是基于第一路由所属的路由协议的类型确定的;例如:如果第一路由所属的路由协议为ospf或is-is,在进行路由发布的时候可以通过进程实现,该实施例可以将协议标识与第一路由所属的路由协议的进程的路由器标识(router-id)对应,具体可以直接使用进程对应的router-id作为标识信息携带在第一路由中;如果第一路由所属
的路由协议为bgp,因为bgp没有进程则可以将第一路由所属的路由协议对应的自治系统(autonomous system,as)号作为标识信息携带在第一路由中,具体可以如表1所示:
[0093][0094]
表1
[0095]
其中:a1,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程对应的路由器标识;若所述第一路由所属的路由协议为is-is,则所述源协议标识为所述is-is的进程对应的路由器标识;最优化简洁的实现方式即直接将进程对应的router-id作为所述标识信息;当然在该实例中也可以按照一定的方式对router-id进行转换处理后得到标识信息,具体实现方式可以包括多种只要得到的标识信息能够标示第一路由协议即可,其他实现方式不在此赘述。
[0096]
在确定标识信息所对应的内容后,网络设备可以选择多种方式将该标识信息携带在第一路由中,该实施例中可以选择的方式是将标识信息转为tag值携带在要发布的路由(即第一路由)的标签(tag)属性中。
[0097]
即若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中;
[0098]
对应的第一网络设备接收到第一路由后,则可以从接收到的第一路由的tag属性中确定所述第一路由携带的标识信息(该实施例中,标识信息可以是进程对应的router-id)。
[0099]
a2,当若所述第一路由协议的类型为bgp,则所述源协议标识所述第一路由协议的自治域as号。最优化简洁的实现方式即直接将as号作为所述标识信息。
[0100]
在确定标识信息是as号,路由设备可以通过以下方式将该标识信息携带在第一路由中,则所述标识信息携带在更新(update)报文的路径属性中。具体该标识信息可以携带在征求意见稿(requirement for comments,rfc)4721协议bgp update报文的路由属性(path attributes)中。具体实现可以是:
[0101]
因为每个bgp路由属性都具有flags和type code两个字段,则该实施例中path attributes具体可以如表2所示的结构:
[0102]
flags值为0x80,表示该属性为可选非过渡属性(optional non-transitive);
[0103]
type code值可以设定为100(0x64),内容为4字节,携带该bgp路由的标识信息。
[0104]
字段名长度字段值flags1字节0x80type code1字节暂定0x64
length1字节0x04value4字节tag值
[0105]
表2
[0106]
第一网络设备接收到第一路由,可以从第一路由对应的update报文的path attributes中确定所述第一路由携带的标识信息(该实施例中,标识信息可以是as号)。
[0107]
第一网络设备如果作为路由发布的源设备也可以通过与上述方式对应的方式在发布的第一路由中携带标识信息,进一步的,第一网络设备将携带标识信息的报文发送到第二网络设备后,第二网络设备则可以通过对应的方式获取到标识信息;第二网络设备再次发布第一路由之前,基于该标识信息判断发布该第一路由是否会出现路由环路(该判断过程与上述实施例步骤201~203相同),并基于判断的结果进行对应的操作避免路由环路;以及为后续环路故障的检测提供相关的定位信息等,提高环路故障检测的效率。该实施例中,若第一网络设备接收到携带有源协议标识的第一路由具体实现可以是:
[0108]
步骤1,第一网络设备接收到第一路由,在再一次重发布该第一路由之前,从第一路由中得到标识信息,该标识信息包括源协议标识。
[0109]
步骤2,根据源协议标识确定第一路由所属的路由协议。例如,前述方式a1中标识信息是通过进程对应的router-id得到,则该步骤对应的会将标识信息还原为进程对应的router-id。
[0110]
步骤3,所述第一网络设备根据所述源协议标识与所述第二网络设备所对应的第二路由协议的协议标识相同(就是在第二路由协议的协议域内确定是否有源协议标识相同的协议标志),且所述第二网络设备所包括的路由中有与所述第一路由同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路;如图1所示,第二路由协议的协议域内是指rt4、rt5、rt6和rt7所形成的环路范围内,如果rt4、rt5、rt6和rt7中任一路由设备中存储有与源协议标识相同的协议标志,则被认定为在第二路由协议的协议域内确定是否有源协议标识相同的协议标志。
[0111]
步骤4,第一网络设备确定会产生路由环路后,不发布第一路由。
[0112]
基于上述方式一标识信息是协议标识,以下结合具体的多协议互引场景对本技术实施例所提供的方法做进一步详细的说明,具体场景可以是:
[0113]
场景1、ospf与is-is互引(互引场景如图3所示)为例进行具体说明,其他互引的具体实现与举例的实现步骤相似此处不再赘述:
[0114]
如图3所示的场景,网络设备为路由设备,具体路由设备rt1发布原始路由(1.1.1.1),在rt4和rt5中ospf进程100和is-is进程200做互相引入。本技术实施例所提供的方法应用到该场景,可以包括以下步骤(方法流程如图4所示):
[0115]
步骤401,rt4将路由1.1.1.1从ospf进程100引入is-is进程200时,将协议标识(ospf进程100的router-id)转换为tag值(该tag值对应源协议标识)携带在重发布路由的tag属性中。
[0116]
如图3所示的场景,ospf进程100的router-id为(4.4.4.4),通过设定方式转换为tag值;例如:将4.4.4.4转化为16进制的0x04040404作为所述tag值。当然还可以通过其他方式将router-id转换为tag值,只要路由设备能够在接收到tag值后正确的解析出对应router-id即可。
[0117]
在该实施例中,如图3所示的路由发布方向,rt4将路由1.1.1.1从ospf进程100引入is-is进程200后,通过进程200,第一路由传输到rt5。然后rt5根据自身设置的协议互引规则,则又会将1.1.1.1引入ospf进程100中;
[0118]
步骤402,rt5设备将is-is进程200中的路由1.1.1.1引入ospf进程100时,根据路由中携带的tag值(0x04040404)还原出原始router-id(4.4.4.4),rt5发现ospf进程100中存在router-id为4.4.4.4的设备(rt4是进程100中已经存在的设备),而且ospf进程100中已经有路由1.1.1.1(步骤401路由1.1.1.1最初就是从进程100引入进程200中的),基于上述条件rt5确定重发布路由会引发路由环路。
[0119]
在该实施例中,所述标识信息中所携带的协议标识(即tag值(0x04040404)还原出原始router-id)为在本次发布第一路由(1.1.1.1)的路由设备rt4的ip路由表里面查找到的所述第一路由所属的路由协议ospf进程100的协议标识router-id 4.4.4.4。
[0120]
步骤403,rt5不再将1.1.1.1引入到ospf进程100。
[0121]
场景2、在很多环路故障场景下,环路中路由设备所设置的bgp的as号相同,所以本技术实施例可以基于bgp的as号确定协议互引的是否会出现环路,具体ospf与bgp互引或者is-is与bgp互引,都可以通过在路由中携带的协议标识来实现路由环路的预判,因为具体实现步骤类似,为了描述简洁该场景就以bgp与isis互引(互引场景如图5所示)为例进行具体说明,其他互引的具体实现与举例的实现步骤相似不再赘述:
[0122]
如图5所示互引场景,设备rt6发布原始路由(6.6.6.6),is-is进程100和bgp做互相引入。本技术实施例所提供的方法应用到该场景,可以包括以下步骤(方法流程如图6所示):
[0123]
步骤601,rt4将路由6.6.6.6从bgp引入is-is进程100时,将bgp的as号(as number)转换为tag值携带在更新(update)报文的路径属性中;基于上一实例中步骤401中tag值的转换原则,该实施例中可以将as number转换成的tag值为65500。
[0124]
作为标识信息的as号为在本次发布第一路由(6.6.6.6)的路由设备rt4配置的bgp的as号码。
[0125]
如图5所示,根据进程100的路由发布方向,路由6.6.6.6在经过rt2、rt3到rt5;因为rt5运行两个不同的路由协议,所以在该路由设备中会进行协议互引,具体:
[0126]
步骤602,rt5设备将is-is进程100中的路由6.6.6.6引入bgp时,根据路由中携带的tag值还原出as号(该实施例中将65500还原出对应的as号),rt5发现还原出的as号与bgp协议的as号相同,而且bgp协议域中已经有路由6.6.6.6,rt5确定重发布第一路由会引起路由环路。
[0127]
步骤603,rt5不再将6.6.6.6引入到bgp。
[0128]
方式b、标识信息是源设备标识,具体可以是:
[0129]
在该实施例中,通过标识信息确定是否会产生环路路由之前,第一网络设备可以在第一路由中获取发布所述第一路由的设备的路由器标识;当然根据路由协议类型的不同,第一路由携带标识信息的方式以及携带的内容也可能会有差异,具体可以如表3所示:
[0130][0131][0132]
表3
[0133]
基于表3所示的情况,针对不同的协议类型在第一路由中携带标识信息可以通过以下方式实现,具体:
[0134]
b1,若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则标识信息携带在链路状态广播(link-state advertisement,lsa);具体的该标识信息可以携带在11类链路状态广播lsa中对应第一路由的类型长度值(type length value,tlv)中;在该实施例中,可以将该标识信息定义为ospf协议报文中的重发布列表(redistribute list)属性。
[0135]
该实施例中各种ospf lsa报文头可以是如下表4所示的格式,表格中有斜线底纹的部分是ospf公共的lsa报文头,其余部分为本技术实施例中所添加的属性信息所对应的内容:
[0136][0137]
表4
[0138]
其中,该redistribute list属性的内容格式以及解析方式等由ls type(链路状态类型)、link state id(链路状态标识)、network mask(网络掩码)和redistribute-list等四个参数形成的参数组确定;一个参数组对应一个重发布路由前缀,如果重发布路由前缀有多个则表格中
“……”
部分则对应携带多组参数组与该多个重发布路由前缀一一对应;具体的该redistribute list属性中所包括的字段可以是如下表5所示的含义:
[0139][0140][0141]
表5
[0142]
b2,若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中;在该实施例中,同样该标识信息可以定义为is-is协议中的redistribute-list属性。
[0143]
该redistribute-list属性可以作为sub tlv放在is-is各种类型的前缀tlv中,前缀tlv具体包括:
[0144]
is-is的135号the_extended_ip_reachability_tlv(rfc3784)
[0145]
is-is的235号multi-topology_reachable_ipv4_prefixes_tlv(rfc5120)
[0146]
is-is的236号ipv6_reachability_tlv(rfc5308)
[0147]
is-is的237号multi-topology_reachable_ipv6_prefixes_tlv(rfc5120)。
[0148]
当然该redistribute-list属性设置在is-is的前缀tlv中时,具体该redistribute-list属性所包括的字段可以是如下表6所示的含义:
[0149]
字段名长度字段值sub tlv type1字节0x0alength1字节0x08value8字节携带两个设备标识
[0150]
表6
[0151]
b3,若所述第一路由所属的路由协议的类型为边界网关协议bgp,则所述标识信息携带在bgp更新报文中。在该实施例中,可以将该标识信息定义为bgp协议路由属性中的redistribute-list属性。
[0152]
因为每个bgp路由属性都具有flags和type code两个字段,则该实施例中用于携带设备标识的redistribute-list属性所包括的字段可以是如表7所示的含义:
[0153]
flags值可以是0x80,表示该属性为可选非过渡属性(optional non-transitive);
[0154]
type code值可以是110(0x6e),属性内容可以是8字节,携带标识信息所要指示的设备标识:
[0155]
字段名长度字段值flags1字节0x80type code1字节暂定0x6elength1字节0x08value8字节携带两个设备标识
[0156]
表7
[0157]
对应的如果网络设备作为接收到第一路由,并准备再发布第一路由(即在再发布路由之前,需要确定第一路由携带的标识信息的设备),网络设备则确定bgp update报文的path attributes中是否存在redistribute-list属性,如果存在则从所述redistribute-list属性中获取包括所述网络设备发布第一路由之前至少一个发布所述第一路由的设备的设备标识。
[0158]
在该实施例中,如果网络设备作为再次发布第一路由的网络设备,在再次发布所述第一路由之前,从获取该第一路由中携带的标识信息,确定该标识信息中所携带的源设备标识(即在该网络设备发布该第一路由之前,发布过所述第一路由的网络设备的设备标识);进一步,判断该源设备标识中是否包括第一网络设备的设备标识,若包括,则确定发布所述第一路由存在路由环路。
[0159]
基于上述内容,路由设备携带源设备标识的方式,则判断该源设备标识中是否包括该网络设备的设备标识的方式可以是:该网络设备收到第一路由时查看路由携带的redistribute-list中是否包含自身的设备标识(router-id),如果存在,则说明发不第一路由会产生路由环路,发送告警信息。
[0160]
基于上述方式b实施例所公开的方法,以下结合具体的多协议或多进程互引场景对本技术实施例所提供的方法做进一步详细的说明,具体场景可以是:
[0161]
ospf与is-is互引、ospf与bgp互引、is-is与bgp互引(当然在该实施例中bgp包括公网bgp和私网bgp)等互引的场景,上述几种互引的情况都可以通过在路由中携带设备标识来实现路由环路的预判,因为具体实现步骤类似,为了描述简洁该场景就以ospf与is-is互引(互引场景如图7所示)为例进行具体说明,其他互引的具体实现与举例的实现步骤相似此处不再赘述:
[0162]
如图7所示的场景,设备rt1发布原始路由(1.1.1.1),ospf进程100和is-is进程200做互相引入。本技术实施例所提供的方法应用到该场景,可以包括以下步骤(如图8所示):
[0163]
步骤801,rt4将路由1.1.1.1从ospf进程100引入isis进程200时,将rt4的router-id(4.4.4.4)携带在发布路由的redistribute-list属性中;
[0164]
如图7所示,基于进程200的路由发布方向,路由1.1.1.1通过进程200传输到rt5;
[0165]
步骤802,rt5设备将is-is进程200的路由1.1.1.1引入ospf进程100,将本次发布路由1.1.1.1的设备标识router-id(5.5.5.5)追加到redistribute-list属性,追加设备标识后的redistribute-list属性中包含4.4.4.4和5.5.5.5;
[0166]
根据图7所示的路由发布方向,通过ospf进程100,路由1.1.1.1经过rt3和rt2后到rt4;
[0167]
步骤803,rt4再次在ospf进程100中计算出路由1.1.1.1时,对路由中携带的
redistribute-id属性进行解析,得到设备标识4.4.4.4和5.5.5.5;其中包括与自身的router-id4.4.4.4相同的router-id,则确定重发布路由发生环路,上报路由环路告警。
[0168]
当然基于上述方式b所提供的不同协议类型不同的设备标识携带方式,针对不同的协议互引情况,步骤801中将设备router-id携带在重发布路由的redistribute-list属性的方式会有不同,为了方便描述该实施例中将所有类型的协议携带设备标识的属性信息都定义为redistribute-list属性,在具体的实际操作中当然可以对该名称进行调整,但不管该属性信息的名称为什么,在具体实现时,路由设备都可以通过上述方式b所提供的方式得到各个协议类型所对应的能够携带设备标识的属性信息。进一步该实施例在执行步骤803时,可以基于属性信息的生成方式对应的解析出属性信息中所携带的设备标识。
[0169]
在本技术实施例中,网络设备为了更加精确的确定发布路由之后是否会出现路由环路,还可以将协议标识和源设备标识两个因素结合来实现对路由环路的判断,具体实现可以是:
[0170]
网络设备发布第一路由前,确定第一路由中携带的标识信息;该标识信息中用于标识所述路由设备重发布第一路由之前发布所述第一路由的设备的源设备标识和所述第一路由所属的路由协议的源协议标识;即该第一标识信息包括源协议标识和源设备标识。
[0171]
然后路由设备首先根据上述方式二所提供的方法(利用协议标识)判断重发布所述第一路由是否存在路由环路;如果确定存在路由环路,则不发布所述第一路由或发送告警信息;否则,根据上述方式一所提供的方法(利用源设备标识)判断发布所述第一路由是否存在路由环路,如果引发路由环路则不发布第一路由或发送告警信息,否则发布第一路由。
[0172]
当然上述实现实例只是上述方式一和方式二的一种结合方式,在具体的使用实例中也可以先通过设备标识判断重发布第一路由之后是否会引发路由环路,然后再通过协议标识进行二次确认,在本技术实施例中并不限定上述方式一和方式二组合使用时的具体顺序。通过方式一和方式二结合,使得路由设备在重发布路由时能够更精确的确定重发布的路由是否会造成路由环路,提高路由环路的识别率。
[0173]
另外一个实施例,提供一种减少路由环路的方法,该实施例所提供的方法中第一网络设备是一个多进程运行的设备,该方法包括(如图9所示):
[0174]
步骤901,第一网络设备接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述第一网络设备运行第一进程和第二进程,所述第一进程与所述第二进程不同;
[0175]
其中,所述源协议标识可以是从本次发布的第一路由的网络设备的ip路由表里面查找到协议标识。
[0176]
步骤902,所述第一网络设备根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;
[0177]
在该实施例中,基于标识信息的不同(可以是源设备标识也可以是源协议标识),所述第一网络设备根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路的具体实现可以是:
[0178]
1、所述第一网络设备根据所述源设备标识中包含与所述第一网络设备的设备标
识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0179]
2、所述第一网络设备根据所述源协议标识与所述第二网络设备所运行的第二进程对应的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0180]
步骤903,响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,所述第一网络设备不向所述第二网络设备发布所述第一路由;或者,所述第一网络设备上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0181]
基于上述标识信息所对应为源设备标识或源协议标识,该实例中源协议标识与源设备标识所对应的内容以及携带方式不相同;具体实现可以是:
[0182]
因为在现在已有技术中路由协议类型中ospf和is-is存在进程,bgp则不存在;所以该实施例中的方法针对的协议类型为ospf和is-is,其中具体实现标识信息生成和携带的方式可以是:
[0183]
(1)标识信息为协议标识,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程的路由器标识;
[0184]
若所述第一路由所属的路由协议为is-is,则所述源协议标识为所述is-is的进程的路由器标识。
[0185]
对应的,将标识信息携带在第一路由中的方式可以是:所述标识信息携带在所述第一路由的标签(tag)属性中。
[0186]
(2)标识信息为设备标识,若所述第一路由所属的路由协议为开放式最短路径优先ospf或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
[0187]
对应的携带所述标识信息的方式可以是:
[0188]
若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;
[0189]
若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中。
[0190]
因为图9实施例提供的基于进程实现路由环路判断与前述基于路由协议判断方式是类似的,所以在图9所示实施方式中所提供的方法与前述图2~图8所示的实施例方法细节可以参照说明,其中标识信息的得到以及携带方式等都是相同的处理过程,所以该实施例的各种实现细节都可以参照前述实施例所提供的方案,此处不再赘述。
[0191]
如图10所示,本技术实施例还提供一种网络设备可能的结构示意图,该网络设备1000可以实现图2中第一网络设备的功能,对于网络设备各单元具备的功能可以参考上述方法步骤中的描述。
[0192]
该网络设备1000可以包括以下功能结构模块:
[0193]
接收单元1001用于接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述网络设备运行第一路由协议和第二路由协议,所述第一路由协议与所述第二路由协议不同;
[0194]
处理单元1002用于根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路;确定不向所述第二网络设备发布所述第一路由;或者,上报告警信息,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0195]
因为标识信息可以是源设备标识和/或源协议标识,所以该实施例中针对两种不同的标识信息具体实现方式分别可以是:
[0196]
针对标识信息是源设备标识:处理单元1002具体用于根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0197]
进一步,若所述第一路由所属的路由协议为开放式最短路径优先ospf、边界网关协议bgp或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
[0198]
在标识信息为源设备标识的实例中,携带标识信息的方式可以是:
[0199]
若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;
[0200]
若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中;
[0201]
若所述第一路由所属的路由协议的类型为边界网关协议bgp,则所述标识信息携带在bgp更新报文中。
[0202]
针对标识信息是源协议标识:所述处理单元1002具体用于根据所述源协议标识与所述第二网络设备所运行的第二路由协议的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0203]
进一步的,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程的路由器标识;
[0204]
若所述第一路由所属的路由协议为is-is,则所述源协议标识为所述is-is的进程的路由器标识;
[0205]
若所述第一路由协议的类型为bgp,则所述源协议标识所述第一路由协议的自治域as号。
[0206]
在标识信息为源设备标识的实例中,携带标识信息的方式可以是:
[0207]
若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中;
[0208]
若所述第一路由所属的路由协议的类型为bgp,则所述标识信息携带在更新报文的路径属性中。
[0209]
如图11所示,本技术实施例还提供另外一种网络设备可能的结构示意图,该网络设备1100可以实现图4、图6和图8中rt5的功能,以及图9中第一网络设备的功能,对于网络设备各单元具备的功能可以参考上述方法步骤中的描述。
[0210]
该网络设备1100包括接收单元1101和处理单元1102。
[0211]
接收单元1101用于接收第一协议报文,所述第一保报文携带标识信息和第一路
由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识,所述第一网络设备运行第一进程和第二进程,所述第一进程与所述第二进程不同;
[0212]
处理单元1102用于根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;确定不向所述第二网络设备发布所述第一路由;或者,上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0213]
因为标识信息可以是源设备标识和/或源协议标识,所以该实施例中针对两种不同的标识信息具体实现方式分别可以是:
[0214]
针对标识信息是源设备标识:所述处理单元1102具体用于根据所述源设备标识中包含与所述第一网络设备的设备标识相同的设备标识,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0215]
进一步,若所述第一路由所属的路由协议为开放式最短路径优先ospf或中间系统到中间系统is-is,则所述源设备标识为所述发布所述第一路由的设备的路由器标识。
[0216]
在标识信息为源设备标识的实例中,携带标识信息的方式可以是:
[0217]
若所述第一路由所属的路由协议的类型为开放式最短路径优先ospf,则所述标识信息携带在链路状态广播lsa中;
[0218]
若所述第一路由所属的路由协议的类型为中间系统到中间系统is-is,则所述标识信息携带在类型长度值tlv中。
[0219]
针对标识信息是源协议标识:所述处理单元1102具体用于根据所述源协议标识与所述第二网络设备所运行的第二进程对应的协议标识相同,且所述第二网络设备所包括的路由中有与所述第一路由同前缀的路由,确定向所述第二网络设备发布所述第一路由会引发路由环路。
[0220]
进一步的,若所述第一路由所属的路由协议为ospf,则所述源协议标识为所述ospf的进程的路由器标识;
[0221]
若所述第一路由所属的路由协议为is-is,则所述源协议标识为所述is-is的进程的路由器标识。
[0222]
在标识信息为源设备标识的实例中,携带标识信息的方式可以是:
[0223]
若所述第一路由所属的路由协议的类型为ospf或is-is,则所述标识信息携带在所述第一路由的标签属性中。
[0224]
本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0225]
其中,集成的模块既可以采用硬件的形式实现时,网络设备可以是图12所示的结构,则图10和图11中所提供处理单元可以对应图12中的处理器1201。处理器1201,可以是一个中央处理器(central processing unit,cpu),也可以是特定集成电路(application specific integrated circuit,asic),或者是被配置成实施本技术实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digital signal processor,dsp),或,一个
或者多个现场可编程门阵列(field programmable gate array,fpga)。该网络设备还可以包括通信接口1202,通信接口1202用于与其他网络设备进行通信。该网络设备还包括:存储器1203,用于存储处理器1201执行的程序。存储器1203可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,用于存储可实现本技术方法的程序代码、tsn域内网络设备的配置文件或其他内容。存储器1203是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0226]
处理器1201用于执行存储器1203存储的程序代码,所述处理器1201。本技术实施例中不限定上述通信接口1202、处理器1201以及存储器1203之间的具体连接介质。本技术实施例在图12中以存储器1203、处理器1202以及通信接口1202之间通过总线1204连接,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0227]
在一个示例中,通信接口1202用于接收第一报文,第一报文携带标识信息和第一路由,标识信息包括发布第一路由的设备的源设备标识或第一路由所属的路由协议的源协议标识。第一网络设备运行第一路由协议和第二路由协议,第一路由协议与第二路由协议不同。
[0228]
处理器1201用于执行根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路。
[0229]
处理器1201用于执行响应于确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;
[0230]
或者,处理器1201用于执行响应于确定向所述第二网络设备发布所述第一路由会引发路由环路,上报告警信息,告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0231]
在一个示例中,通信接口1202用于接收第一报文,第一报文携带标识信息和第一路由,标识信息包括发布第一路由的设备的源设备标识或第一路由所属的路由协议的源协议标识。第一网络设备运行第一进程和第二进程,第一进程与第二进程不同。
[0232]
处理器1201用于执行根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路。
[0233]
处理器1201用于执行响应于确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;
[0234]
或者,处理器1201用于执行响应于确定向所述第二网络设备发布所述第一路由会引发路由环路,上报告警信息,告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0235]
该网络设备1200可以实现图4、图6和图8中rt5的功能,以及图2和图9中第一网络设备的功能,具体可以参考与附图相关的方法的描述。
[0236]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0237]
如图13所示,本技术实施例还提供一种减少路由环路的系统,该系统包括应用于多协议或者多进程路由互引场景中的网络设备,该系统至少包括第一网络设备1301和第二网络设备1302;其中第一网络设备运行第一路由协议和第二路由协议,所述第一路由协议与所述第二路由协议不同。
[0238]
第二网络设备1302用于将标识信息添加到第一报文中,并发送第一报文。
[0239]
第一网络设备1301用于接收第一报文。所述第一报文携带标识信息和第一路由,标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识;根据所述标识信息确定向运行所述第二路由协议的第二网络设备发布所述第一路由会引发路由环路;并响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;或者,上报告警信息,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0240]
上述是基于路由协议互引的场景,在基于进程互引的场景,则第一网络设备1301可以运行第一进程和第二进程,所述第一进程与所述第二进程不同。
[0241]
第二网络设备1302用于将标识信息添加到第一报文中,并发送第一报文。
[0242]
第一网络设备1301用于接收第一报文,所述第一报文携带标识信息和第一路由,所述标识信息包括发布所述第一路由的设备的源设备标识或所述第一路由所属的路由协议的源协议标识;根据所述标识信息确定向运行所述第二进程的第二网络设备发布所述第一路由会引发路由环路;响应于所述第一网络设备确定向所述第二网络设备发布所述第一路由会引发路由环路,不向所述第二网络设备发布所述第一路由;或者,上报告警信息,其中,所述告警信息用于标识所述第一网络设备向所述第二网络设备发布所述第一路由会引发路由环路。
[0243]
该系统中的网络设备进行路由环路判断的时候是基于上述实施例所提供的方式,具体实现不在赘述。
[0244]
进一步,该系统该可以包括网管设备1303,用于接收所述告警信息。
[0245]
该实施例中,该网管设备可以与该场景中的各个网络设备都连接也可以与只与某几个网络设备连接,该网管设备可以是与该场景中的网络设备独立开的网管设备;则网络设备发送告警信息时,则将该告警信息发送到该网管设备。
[0246]
当然该实现方式中该网管设备也可以是该场景中的某一个网络设备承担网管设备的功能,其他没有网管功能的网络设备在判断存在路由环路后,则将告警信息上报给该具有网管功能的网络设备。
[0247]
通过告警信息上报,使得环路故障出现后的环路故障检测可以直接在该网管设备确定环路故障的信息,缩短检测时延。
[0248]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0249]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0250]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0251]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0252]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1