一种路由信息的处理方法及装置与流程

文档序号:31995833发布日期:2022-11-02 04:43阅读:49来源:国知局
一种路由信息的处理方法及装置与流程
一种路由信息的处理方法及装置
1.本技术要求于2021年4月30日提交的申请号为202110485519.3、发明名称为“一种解决现有bgp spf协议草案缺陷问题的方法”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及通信技术领域,尤其涉及一种路由信息的处理方法及装置。


背景技术:

3.边界网关协议(border gateway protocol,bgp)的主要功能是在支持该协议的自治系统(autonomy systems,as)之间交换网络可达性信息(network layer reachability information,nlri)。
4.网络设备在通过bgp获得nlri后,可以基于该nlri进行报文转发路径的计算。例如,可以采用最短路径优先(spf)算法进行路径计算,此时该报文转发路径计算方法可以称为bgp spf。
5.然而,目前bgp还存在一些缺陷,在某些网络场景下,存在无法通过bgp spf计算报文转发路径的问题。


技术实现要素:

6.本技术实施例提供一种路由信息的处理方法及装置,用于解决现有bgp spf协议的缺陷。
7.第一方面,本技术实施例提供一种路由信息的处理方法,该方法可以应用于支持bgp技术的网络。假设该网络包括第一网络设备、第二网络设备和第三网络设备,所述第一网络设备与所述第二网络设备之间通过第一链路连接,所述第一网络设备与所述第二网络设备之间建立有边界网关协议bgp邻居关系,所述第一网络设备与所述第三网络设备之间建立有bgp邻居关系。在一种可能的实现方式中,建立有邻居关系的网络设备之间通过直接连接的方式相连。
8.下面介绍第一方面提供的实施例方法。
9.第一网络设备可以从第二网络设备接收第一路由信息,第一路由信息包括目标网络的第一nlri。所述第一nlri可以为节点nlri,或链路nlri,或拓扑前缀nlri等。基于所述第一网络设备感知与所述第二网络设备之间不可达,所述第一网络设备可以向第三网络设备发送第二信息。所述第二信息可以用于指示所述第三网络设备选择第三路由信息。所述第三路由信息是指,通告至所述第三网络设备的路径(称作通告路径)未经过第一链路的路由信息。第三网络设备可以基于选择第三路由信息来计算至目标网络的路由。并且,所述第一网络设备在发送所述第二信息之后的第一时长内,可以在本地的链路数据库lsdb中保持所述第一nlri,以计算本地至所述目标网络的报文转发路径(或称路由)。
10.第一网络设备感知与第二网络设备之间不可达后,一方面,第一网络设备可以向
第三网络设备发送第二信息,以指示第三网络设备选择通告路径未经过第一链路的第三路由信息,有利于第三网络设备基于第三路由信息中的第一nlri计算至目标网络的报文转发路径。另一方面,第一网络设备可以在第一时长内在lsdb中保持第一nlri,以基于第一nlri计算至目标网络的报文转发路径。从而解决现有bgp spf协议的缺陷,减少或避免某些网络场景下网络设备无法计算至目标网络的报文转发路径的问题。
11.在一种可能的实现方式中,所述第一网络设备感知与所述第二网络设备之间不可达的方式可以包括但不限于:所述第一网络设备感知所述第二网络设备发生故障,或者,所述第一网络设备感知所述第一链路发生故障,或者,所述第一网络设备感知所述第一链路对应的本地端口发生故障。
12.在一种可能的实现方式中,所述第三路由信息可以包括所述第一nlri。相应的,第三路由信息和第一路由信息均为目标网络产生的路由信息,只是二者的通告路径不同,有利于第三网络设备优先选择目标网络产生的、通告路径未经过第一链路的路由信息,进而有利于第三网络设备基于第三路由信息中的第一nlri计算至目标网络的报文转发路径。
13.在一种可能的实现方式中,所述第二信息包括所述第一nlri。第一网络设备从第二网络设备接收到第一路由信息后,并且,第一网络设备感知与第二网络设备之间不可达后,可以从第一路由信息中获取该故障可能影响的nlri(即第一nlri),之后向第三网络设备发送携带第一nlri的第二信息,有利于第三网络设备选择其他通告路径到达本地的路由信息(即第三路由信息),进而有利于第三网络设备基于第三路由信息中的第一nlri计算至目标网络的报文转发路径。
14.在一种可能的实现方式中,所述第一网络设备在向所述第三网络设备发送所述第二信息之后,基于第三网络设备接收到了第三路由信息,并且第三网络设备根据第二信息选择了第三路由信息,第三网络设备可以根据第三路由信息向第一网络设备发送第四路由信息,所述第四路由信息包括所述第一nlri。可见,第一网络设备通过向第三网络设备发送第二信息,不仅可以使得第三网络设备选择通告路径未经过第一链路的第三路由信息,还能触发第三网络设备根据选择的第三路由信息向自己发送通告路径未经过第一链路的第四路由信息,从而有利于第一网络设备基于第四路由信息中的第一nlri计算至目标网络的报文转发路径。
15.在一种可能的实现方式中,所述第一网络设备从所述第三网络设备接收第四路由信息之后,所述第一网络设备可以选择所述第四路由信息,以计算至所述目标网络的路由。之后,所述第一网络设备可以将所述第四路由信息中的第一nlri保存在所述lsdb中。第一网络设备选择接收到的第四路由信息,并且将所述第四路由信息中的第一nlri保存在所述lsdb中,有利于第一网络设备基于第四路由信息中的第一nlri计算至目标网络的报文转发路径。
16.在一种可能的实现方式中,第二信息可以为目标网络产生的、且通告路径经过第一链路的路由信息,例如,第二信息可以为第一网络设备根据第一路由信息发送的。第三网络设备接收到第二信息后,可以根据第二信息中的第一nlri计算至目标网络的报文转发路径(或称路由)。本技术实施例不限定第二信息为第一网络设备根据第一路由信息向第三网络设备发送的首个路由信息。例如,在第一网络设备向第三网络设备发送第二信息之前,第一网络设备可以根据第一路由信息向第三网络设备发送第五路由信息。在这种情况下,第
三网络设备可以在接收到第二信息后,将本地保存的第五路由信息替换为第二信息。
17.在一种可能的实现方式中,所述第二信息还包括第二优先级属性,所述第三路由信息还包括第三优先级属性,所述第二优先级属性用于指示所述第二信息(或第二信息携带的第一nlri)的优先级,所述第三优先级属性用于指示所述第三路由信息(或第三路由信息携带的第一nlri)的优先级,并且,所述第二信息所指示的优先级低于所述第三路由信息所指示的优先级。通过在通告路径经过第一链路的路由信息中携带指示较低优先级的优先级属性,有利于指示第三网络设备选择通告路径未经过第一链路的路由信息。
18.在一种可能的实现方式中,所述第一路由信息还包括第一优先级属性,所述第一优先级属性用于指示所述第一路由信息(或第一路由信息携带的第一nlri)的优先级。第一网络设备感知与第二网络设备之间不可达后,可以根据第一路由信息向第三网络设备发送第二信息,并且,所述第二信息所指示的优先级低于所述第一路由信息所指示的优先级。在向第三网络设备通告第一路由信息之前,第一网络设备可以修改第一路由信息中的优先级属性,以降低通告路径经过第一链路的路由信息的优先级,有利于指示第三网络设备选择通告路径未经过第一链路的路由信息。
19.在一种可能的实现方式中,基于所述第一网络设备感知与所述第二网络设备之间不可达,所述第一网络设备可以将本地保存的所述第一路由信息中的所述第一优先级属性修改为所述第二优先级属性。可选的,第一网络设备可以响应于该修改而向第三网络设备发送第二信息。例如,第一网络设备通过第二信息指示第三网络设备将之前接收到的第五路由信息更新为第二信息。
20.在一种可能的实现方式中,基于在所述第一时长后所述第一网络设备与所述第二网络设备之间仍然不可达,所述第一网络设备可以删除本地保存的修改后的第一路由信息(携带第二优先级属性)。
21.在一种可能的实现方式中,基于在所述第一时长内所述第一网络设备与所述第二网络设备之间恢复可达,所述第一网络设备可以将本地保存的所述第一路由信息中的所述第二优先级属性修改为所述第一优先级属性。为了减少网络抖动,第一网络设备可以不在感知到恢复可达后立即恢复第一路由信息的优先级属性,而是在一定时长(例如第二时长)后将本地保存的所述第一路由信息中的所述第二优先级属性修改为所述第一优先级属性。第二时长的起始时刻可以对应于第一网络设备感知与第二网络设备之间恢复可达,或者对应于第一时长超时。
22.在一种可能的实现方式中,所述第一网络设备在接收到所述第一路由信息之后,所述第一网络设备根据所述第一路由信息向所述第三网络设备发送第五路由信息。所述第二信息可以用于向所述第三网络设备撤销所述第五路由信息。例如,可选的,第二信息携带在bgp报文的撤销域中,第二信息包括该第一nlri,以指示第三网络设备删除从第一网络设备接收的、携带该第一nlri的路由信息(即第五路由信息)。
23.在一种可能的实现方式中,所述第一网络设备在感知与所述第二网络设备之间不可达之后,所述第一网络设备可以删除本地保存的所述第一路由信息。可选的,第一网络设备可以响应于删除本地(例如输入路由信息数据库)保存的第一路由信息而向第三网络设备发送第二信息。第一网络设备删除本地保存的第一路由信息后,若接收到第四路由信息,便可以选择第四路由信息,并将第四路由信息中的第一nlri保存在本地的lsdb中。
24.本技术权利要求书和发明内容中的第一方面所提供的方案将在具体实施方式中图8至图11对应的实施例进行具体介绍,此处暂不展开介绍。
25.第二方面,本技术实施例提供一种路由信息的处理方法。该方法可以应用于支持bgp技术的网络。假设该网络包括第一网络设备、第二网络设备、第三网络设备和第四网络设备,所述第一网络设备与所述第二网络设备之间通过第一链路连接,所述第一网络设备与所述第二网络设备之间建立有边界网关协议bgp邻居关系,所述第一网络设备与所述第三网络设备之间建立有bgp邻居关系,所述第三网络设备与所述第四网络设备之间建立有bgp邻居关系。在一种可能的实现方式中,建立有邻居关系的网络设备之间通过直接连接的方式相连。
26.下面介绍第二方面提供的实施例方法。
27.第三网络设备可以分别从第一网络设备和第四网络设备接收第二信息和第三路由信息,其中,所述第三路由信息通告至所述第三网络设备的路径(称作通告路径)未经过第一链路,第二信息可以用于指示所述第三网络设备选择第三路由信息。第三网络设备可以根据第二信息选择第三路由信息。
28.在一种可能的实现方式中,所述第三路由信息包括所述对应于网络的第一nlri。
29.在一种可能的实现方式中,第二信息包括第一nlri。
30.在一种可能的实现方式中,第二信息为第一网络设备在感知到与第二网络设备之间不可达而发送的,其中,第二网络设备层向第一网络设备发送第一路由信息,该第一路由信息携带目标网络对应的第一nlri。第三网络设备根据第二信息选择第三路由信息,有利于基于第三路由信息中的第一nlri计算至目标网络的报文转发路径。
31.在一种可能的实现方式中,第三网络设备选择第三路由信息之后,可以根据第三路由信息向第一网络设备发送第四路由信息。其中,所述第四路由信息包括所述第一nlri。
32.在一种可能的实现方式中,所述第二信息还包括第二优先级属性,所述第三路由信息还包括第三优先级属性,所述第二优先级属性用于指示所述第二信息的优先级,所述第三优先级属性用于指示所述第三路由信息的优先级,并且,所述第二信息所指示的优先级低于所述第三路由信息所指示的优先级。
33.在一种可能的实现方式中,第三网络设备根据第二优先级属性和第三优先级属性从第二信息和第三路由信息中选择第三路由信息。
34.在一种可能的实现方式中,在第三网络设备接收到第二信息之前,第三网络设备还从第一网络设备接收到第五路由信息,该第五路由信息包括第一nlri。
35.在一种可能的实现方式中,第二信息用于向所述第三网络设备撤销所述第五路由信息。第三网络设备接收到第二信息后,可以根据第二信息将本地保存的第五路由信息删除。
36.第二方面涉及的第一网络设备、第二网络设备和第三网络设备对应于第一方面涉及的相应网络设备,第二方面中第一网络设备、第二网络设备和第三网络设备所执行的步骤以及有益效果可以参考第一方面中相应网络设备所执行的步骤和有益效果来理解,此处不再赘述。
37.第三方面,本技术实施例还提供另一种路由信息的处理方法,该方法适用于支持扩展bgp协议的网络,该网络包括第一网络设备、第二网络设备和第三网络设备。所述第一
网络设备与所述第二网络设备之间通过第一链路连接,所述第一网络设备与第二网络设备之间建立有边界网关协议bgp邻居关系,所述第二网络设备与所述第三网络设备之间建立有bgp邻居关系。在一种可能的实现方式中,建立有邻居关系的网络设备之间通过直接连接的方式相连。
38.该扩展bgp协议主要在现有bgp协议的基础上做出了如下两方面扩展。
39.1)路由信息中携带优先级属性,例如,在路由信息的路径属性域中新增一种扩展团体(extend community)属性,该优先级属性用于指示所在路由信息(或所在路由信息携带的nlri)的优先级。
40.2)在bgp nlri选择过程的选择规则中增加一条与优先级属性相关的选择规则(称作优先级选择规则),例如,优先级选择规则可以包括:优选优先级属性所指示的优先级较高的路由信息。
41.下面介绍第三方面提供的实施例方法。
42.第一网络设备向第二网络设备发送第一路由信息,所述第一路由信息包括第一nlri和第一优先级属性,所述第一优先级属性用于指示所述第一路由信息的优先级,所述第一优先级属性指示所述第二网络设备从所述第一路由信息和第二路由信息中选择适合路由信息,所述第二路由信息为第三网络设备发送给所述第二网络设备的路由信息,所述第二路由信息包括所述第一nlri和第二优先级属性,所述第二优先级属性用于指示所述第二路由信息的优先级,所述适合路由信息为所述第一路由信息和所述第二路由信息中优先级较高的路由信息。
43.可见,网络设备之间可以通告带有优先级属性的路由信息,该优先级属性可以用作选择nlri的规则,从而有利于控制网络设备对nlri的选择过程。
44.在一种可能的实现方式中,所述适合路由信息对应的网络设备为所述第一网络设备和所述第三网络设备中bgp标识(identifier)较小的网络设备。
45.在一种可能的实现方式中,所述适合路由信息中优先级属性的数值大于非适合路由信息中优先级属性的数值,所述非适合路由信息为所述第一路由信息和所述第二路由信息中未被所述第一网络设备选择的路由信息。
46.在一种可能的实现方式中,网络设备在通告选择的路由信息之前可以修改其中的优先级属性。
47.在一种可能的实现方式中,在所述第一网络设备向所述第二网络设备发送所述第一路由信息之前,所述第一网络设备从第四网络设备接收第三路由信息,所述第四网络设备和所述第一网络设备之间建立有bgp邻居关系。假设第一网络设备和第二网络设备之间通过第一链路连接,所述第一网络设备与第二网络设备之间建立邻居关系。所述第三路由信息包括所述第一nlri和第三优先级属性,所述第三优先级属性用于指示所述第三路由信息的优先级。
48.在一种可能的实现方式中,所述第一路由信息为所述第一网络设备对所述第三路由信息进行修改而得到的,所述第三优先级属性与所述第一优先级属性不同。
49.在一种可能的实现方式中,在所述第一网络设备从所述第四网络设备接收第三路由信息之后,在所述第一网络设备向所述第二网络设备发送所述第一路由信息之前,基于所述第一网络设备感知与所述第四网络设备不可达,第一网络设备可以将第三路由信息中
的第三优先级属性修改为第一优先级属性,所述第一优先级属性所确定的优先级低于所述第三优先级属性所确定的优先级。
50.可见,第一网络设备从第四网络设备接收到第三路由信息后,若感知到与该第四网络设备之间不可达,可以降低该第三路由信息的优先级,之后选择向第二网络设备通告该修改后的路由信息。有利于第二网络设备优先选择目标网络产生的、通告路径未经过第一链路的路由信息,进而有利于第二网络设备计算至目标网络的报文转发路径。
51.在一种可能的实现方式中,所述第一网络设备在向所述第二网络设备发送所述第一路由信息之后,基于第二网络设备接收到了第二路由信息,并且第二网络设备根据第一路由信息选择了第二路由信息,第二网络设备可以根据第二路由信息向第一网络设备发送第四路由信息,所述第四路由信息包括所述第一nlri。
52.可见,第一网络设备通过向第二网络设备发送第一路由信息,不仅可以使得第二网络设备选择通告路径未经过第一链路的第二路由信息,还能触发第二网络设备根据选择的第二路由信息向自己发送通告路径未经过第一链路的第四路由信息,从而有利于第一网络设备基于第四路由信息中的第一nlri计算至目标网络的报文转发路径。
53.在一种可能的实现方式中,所述第一网络设备从所述第二网络设备接收第四路由信息之后,所述第一网络设备可以选择所述第四路由信息。之后,所述第一网络设备可以将所述第四路由信息中的第一nlri保存在所述lsdb中。第一网络设备选择接收到的第四路由信息,并且将所述第四路由信息中的第一nlri保存在所述lsdb中,有利于第一网络设备基于第四路由信息中的第一nlri计算至目标网络的报文转发路径。
54.第四方面,本技术实施例提供另一种路由信息的处理方法。该方法可以应用于支持扩展bgp技术的网络。假设该网络包括第一网络设备、第二网络设备和第三网络设备,所述第一网络设备与所述第二网络设备之间通过第一链路,所述第一网络设备与所述第二网络设备之间建立有边界网关协议bgp邻居关系,所述第二网络设备与所述第三网络设备之间建立有bgp邻居关系。在一种可能的实现方式中,建立有邻居关系的网络设备之间通过直接连接的方式相连。
55.下面介绍第四方面提供的实施例方法。
56.第二网络设备分别从第一网络设备和第三网络设备接收第一路由信息和第二路由信息,所述第一路由信息包括第一nlri和第一优先级属性,所述第二路由信息包括所述第一nlri和第二优先级属性,所述第一优先级属性和所述第二优先级属性分别用于指示相应路由信息的优先级。所述第二网络设备根据所述第二优先级属性和所述第一优先级属性从所述第一路由信息和所述第二路由信息中选择适合路由信息,所述适合路由信息为所述第二路由信息和所述第一路由信息中优先级较高的路由信息。
57.在一种可能的实现方式中,所述适合路由信息对应的网络设备为所述第一网络设备和所述第三网络设备中bgp标识(identifier)较小的网络设备。
58.在一种可能的实现方式中,所述适合路由信息中优先级属性的数值大于非适合路由信息中优先级属性的数值,所述非适合路由信息为所述第一路由信息和所述第二路由信息中未被所述第一网络设备选择的路由信息。
59.在一种可能的实现方式中,在所述第一网络设备向所述第二网络设备发送所述第一路由信息之前,所述第一网络设备向第二网络设备发送第五路由信息,第五路由信息包
括第一nlri。所述第五路由信息包括所述第一nlri和第三优先级属性,所述第三优先级属性用于指示所述第五路由信息的优先级。
60.在一种可能的实现方式中,所述第三优先级属性与所述第一优先级属性不同。
61.在一种可能的实现方式中,所述第一优先级属性所确定的优先级低于所述第三优先级属性所确定的优先级。
62.在一种可能的实现方式中,第二网络设备在接收到第一路由信息之后,可以用第一路由信息替换本地保存的第五路由信息。
63.在一种可能的实现方式中,所述第一网络设备在向所述第二网络设备发送所述第一路由信息之后,基于第二网络设备接收到了第二路由信息,第二网络设备可以根据第一优先级属性和第二优先级属性从第一路由信息和第二路由信息中选择优先级较高的第二路由信息。之后,第二网络设备可以根据第二路由信息向第一网络设备发送第四路由信息,所述第四路由信息包括所述第一nlri。
64.第四方面涉及的第一网络设备、第二网络设备和第三网络设备对应于第三方面涉及的相应网络设备,第四方面中第一网络设备、第二网络设备和第三网络设备所执行的步骤和有益效果可以参考第三方面中相应网络设备所执行的步骤和有益效果来理解,此处不再赘述。
65.本技术发明内容中的第三方面和第四方面所提供的方案将在具体实施方式中图5和图6对应的实施例中进行具体介绍,此处暂不展开介绍。
66.第五面,本技术实施例提供了一种网络设备。该网络设备可以是实体网络设备,也可以是实体网络设备中的装置,或者是能够与实体网络设备匹配使用的装置。或者,该网络设备可以是虚拟网络设备,例如虚拟交换机或虚拟路由器等。
67.一种设计中,该网络设备可以包括执行第一方面或第二方面或第三方面或第四方面中所描述的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。
68.第六方面,本技术实施例提供一种网络设备,该网络设备包括处理器和存储器,存储器用于存储指令,所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的指令时,可以实现上述第一方面或第二方面或第三方面或第四方面所描述的方法。所述通信装置还可以包括通信接口,所述通信接口用于该装置与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块、管脚或其它类型的通信接口,其它设备可以为终端设备。
69.第七方面,本技术实施例提供提供了一种芯片系统,该芯片系统包括:处理器,还可以包括存储器,用于实现上述第一方面或第二方面或第三方面或第四方面所描述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
70.第八方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质中包括指令,当指令在计算机上运行时,使得计算机执行如本技术实施例上述第一方面或第二方面或第三方面或第四方面的任意一种可能的实现方式中的方法。
71.第九方面,本技术实施例提供一种计算机程序产品,该计算机程序产品包括指令,当指令在计算机上运行时,使得计算机执行如本技术实施例上述第一方面或第二方面或第三方面或第四方面的任意一种可能的实现方式中的方法。
protocol version 4,ipv4)拓扑前缀nlri,或者为网际协议版本6(internet protocol version 6,ipv6)拓扑前缀nlri。
89.一个网络设备可以从建立有邻居关系的另一个网络设备(简称bgp邻居)接收bgp报文(例如更新报文或更新消息)。该bgp报文可以携带bgp路由信息(简称路由信息),该路由信息可以包括新的nlri或发生变化的nlri。或者,该bgp报文可以携带撤销信息,该撤销信息包括nlri,用于撤销之前发送的包括该nlri的bgp路由信息。之后,该网络设备可以对接收到的具有相同nlri的路由信息执行选择过程(例如称作bgp nlri选择过程),以选择适合路由信息(eligible route)。之后网络设备可以向bgp邻居继续通告(advertise)选择的路由信息,并且将选择的路由信息中的nlri等保存在链路状态数据库(link state database,lsdb)中。lsdb用于计算报文转发路径,网络设备将nlri保存在lsdb后,可以基于该nlri计算至该nlri对应的目标网络的报文转发路径。
90.在一种可能的实现方式中,路由信息包括nlri域和路径属性域(path attributes field)。可选的,本技术实施例所提到的nlri可以指nlri域中的nlri前缀。该路径属性域可以包括一个或多个属性。网络设备在继续通告选择的路由信息之前,可以对选择的路由信息中的属性进行修改,之后向bgp邻居发送修改后的路由信息。例如,为了解决路由环路问题,该路径属性域可以包括自治系统(autonomy systems,as)路径(as_path)属性,该as_path属性可以用于指示路由信息的通告路径。网络设备在继续通告选择的路由信息之前,可以在选择的路由信息中的as_path属性中增加本地as标识(例如as编号),之后将修改后的路由信息发送给bgp邻居。
91.由于网络设备在向bgp邻居通告选择的路由信息之前一般会对路由信息中的属性进行修改,例如,在as_path属性中添加本地的as标识,因此,假设网络设备选择路由信息1,那么本技术实施例将网络设备向bgp邻居通告选择的路由信息1称作,网络设备根据选择的路由信息1向bgp邻居发送路由信息2,其中路由信息1和路由信息2在nlri域携带相同的nlri(或nlri前缀)。
92.前文提到,网络设备可以将选择的路由信息中的nlri等保存在lsdb中,该“nlri等”是为了表明,本技术实施例不限定网络设备仅将选择的路由信息中的nlri保存在lsdb中,可选的,网络设备还可以将选择的路由信息中的其他信息与该nlri关联保存在lsdb中,例如,可以将路径属性域中的一个或多个属性与该nlri关联保存在lsdb中。
93.网络设备本地的数据库除了前文提到的lsdb以外,一般还包括输入路由信息数据库和本地路由信息数据库。其中,该输入路由信息数据库可以指adj-rib-in(简称ribin),ribin存储从bgp邻居接收到的路由信息。其中,该本地路由信息数据库可以指loc-rib(简称rib-l),rib-l存储有网络设备在选择过程中选择的路由信息。
94.下面基于图1所示的网络,结合图2介绍网络设备之间交换nlri的过程。
95.图2所示的网络与图1所示的网络相同,图2和图1相比,添加了带有箭头的线段,以表示网络设备之间交换nlri的过程。下面介绍各带有箭头的线段所对应的过程。
96.s1.1、网络设备e可以向网络设备d发送路由信息e(简称e),e包括网络设备e的nlri(称作nlri-e),nlri-e可以用于计算至网络设备e的报文转发路径。例如,该nlri-e可以包括网络设备e的网际互连协议(internet protocol,ip)地址。
97.s1.2、网络设备d从网络设备e接收e之后,可以将e保存在本地的输入路由信息库
(例如ribin)中。网络设备d可以选择e并将e保存在本地路由信息库(例如rib-l)中。之后,网络设备d可以分别向网络设备b和网络设备c通告该e,并将选择的e中的nlri-e等保存在本地的lsdb中。由于网络设备d在通告选择的e之前一般会对e中的属性进行修改,例如,在as_path属性中添加本地的as标识,因此,本技术实施例将网络设备d根据选择的e向网络设备b和网络设备c发送的路由信息称作路由信息ed(简称ed)。
98.s1.3、网络设备b从网络设备d接收ed后,可以将ed保存在本地的ribin中。网络设备b可以选择ed并将ed保存在rib-l中。之后,网络设备b可以选择向网络设备a通告该ed,并且将选择的ed中的nlri-e等保存在本地的lsdb中。基于与s1.2中描述的类似原因,本技术实施例将网络设备b根据选择的ed向网络设备a发送的路由信息称作路由信息edb(简称edb)。
99.s1.4、网络设备c从网络设备d接收ed后,可以将路由信息保存在本地的ribin中。网络设备c可以选择ed并将ed保存在rib-l中。之后,网络设备c可以选择分别向网络设备a和网络设备f通告该ed,并且将选择的ed中的nlri-e等保存在本地的lsdb中。基于与s1.2中描述的类似原因,本技术实施例将网络设备c选择向网络设备a通告的ed称作路由信息edc(简称edc)。
100.网络设备f从网络设备c接收edc后,可以将edc保存在本地的输入路由信息库中。网络设备f可以选择edc并将edc保存在rib-l中。之后,网络设备f可以将选择的edc中的nlri-e等保存在本地的lsdb中。
101.s1.5、网络设备a分别从网络设备b和网络设备c接收到edb和edc后,可以将edb和edc保存在本地的ribin中。之后,网络设备a可以对ribin中的edb和edc执行bgp nlri选择过程。
102.目前bgp nlri选择过程的选择规则包括:优选从bgp标识(identifier)较大的网络设备接收到的路由信息。为了便于描述,将该选择规则称作bgp标识选择规则。
103.假设图2所示的网络设备按照bgp标识从大到小的顺序依次为:网络设备a、网络设备c、网络设备b和网络设备d。那么,网络设备a按照bgp标识选择规则可以选择edc作为适合路由信息,并将edc保存在本地的rib-l中。
104.之后,网络设备a可以选择向网络设备b通告该edc,并且将选择的路由信息edc中的nlri-e等保存在本地的lsdb中。基于与s1.2中描述的类似原因,本技术实施例将网络设备a根据选择的edc向网络设备b发送的路由信息称作路由信息edca(简称edca)。
105.s1.6、网络设备b从网络设备a接收edca之后,可以将edca保存在本地的ribin中。之后,网络设备b可以对ribin中的edca和ed执行bgp nlri选择过程。基于步骤s1.5中对各网络设备的bgp标识大小的假设,网络设备b可以根据bgp标识选择规则选择edca作为适合路由信息,并用edca替换本地的rib-l中的ed。
106.之后,网络设备b一方面可以选择向网络设备d通告该edca。基于与s1.2中描述的类似原因,本技术实施例将网络设备b选择向网络设备d通告的edca称作路由信息edcab(简称edcab)。网络设备d查看edcab中的as_path属性,通过环路检测而丢弃该edcab。
107.网络设备b另一方面可以向网络设备a发送撤销信息edb’(简称edb’),用于撤销之前发送的edb。在一种可能的实现方式中,该edb’可以为bgp报文的撤销域中的信息,网络设备b通过在bgp报文的撤销域中写入edb的nlri-e,可以指示网络设备a删除在本地的ribin
中的edb。
108.网络设备a删除本地的ribin中的edb后,图2所示的网络设备所保存的nlri-e收敛,此时,网络设备e以外的各网络设备中本地的ribin、rib-l和lsdb中的信息例如为图2所示的相应文本框中的内容。图2仅示出了ribin、rib-l和lsdb中与上述nlri-e通告过程相关的信息,ribin、rib-l和lsdb中还可以包括其他信息。通过图2中文本框的内容可以看出,图2所示的各个网络设备之间通过nlri交换过程,均在lsdb中保存了网络设备e发布的nlri-e,可以基于lsdb中的nlri-e计算至网络设备e的报文转发路径。
109.在本技术实施例中,网络设备之间可以通过更新(update)消息来发送路由信息。
110.然而,目前bgp还存在一些缺陷,在某些网络场景下,存在无法计算报文转发路径的问题。
111.例如,继续参考图2,假设各网络设备保存的nlri-e在时刻t0收敛,在t0之后的某个时刻(称作时刻t1)网络设备c感知与网络设备d之间不可达,图2所示的网络设备需要再次执行nlri交换过程。图3示出了图2中的网络设备按照现有协议执行的nlri交换过程。图3中,横轴坐标代表时刻,纵轴坐标代表图2所示的网络设备,横轴坐标和纵轴坐标用于共同确定一个文本框,该文本框代表该纵轴坐标所表示的网络设备,该文本框中的内容代表该网络设备在横轴坐标对应的时刻的本地信息。该本地信息包括ribin、rib-l和lsdb中关于nlri-e的信息。图3中,以带有箭头的线段代表网络设备对路由信息的通告操作,以文本框中文字上的删除线代表网络设备对相应本地信息的删除操作,以文本框中文字底部的下划线代表网络设备对相应本地信息的添加操作。
112.网络设备c感知与网络设备d之间不可达后,网络设备d本地保存的与nlri-e相关的信息不变,因此,图3未示出网络设备d对应的文本框。
113.下面结合图3对图2中各网络设备再次执行的nlri交换过程进行介绍。
114.假设图2中各网络设备保存的nlri-e在时刻t0收敛,保存的与nlri-e相关的信息参考图3中t0对应的文本框中的内容。
115.在t1时刻,网络设备c感知到与网络设备d之间不可达,网络设备c开启定时器1(图3中未示出),假设该定时器1的时长被设置为t,并且在定时器1超时前保持本地保存的nlri-e相关的信息,即在ribin中保持ed,相应的,可以在rib-l中保持ed,并且在lsdb中保持nlri-e。
116.在t1+t时刻,定时器1超时,网络设备c从本地的ribin中删除ed,相应的,会继续从本地的rib-l中删除ed,从本地的lsdb中删除nlri-e。网络设备c从本地的rib-l中删除ed后,可以分别向网络设备a和网络设备f发送用于撤销edc的撤销信息edc’。
117.为了便于描述,本技术实施例假设网络设备之间通告路由信息所需的时长相同,并且用δ代表该时长。和网络设备之间通告路由信息所需的时长相比,网络设备对本地存储的信息进行删除或添加的操作所需的时长一般很短,因此,为了便于描述网络设备再次执行的nlri交换过程,在图3中将间隔时长较短的多个操作对应于同一时刻。但是,本技术实施例不限定图3中对应于同一时刻的多个操作一定要同时执行。
118.在t1+t+δ时刻,假设网络设备a和网络设备f均从网络设备c接收到edc’。网络设备a和网络设备f均从本地的ribin中删除edc,相应的,继续从本地的rib-l中删除edc,从本地的lsdb中删除nlri-e。此外,网络设备a在从本地的rib-l中删除edc后,可以向网络设备b
发送用于撤销edca的撤销信息edca’。
119.在t1+t+2δ时刻,假设网络设备b从网络设备a接收到edca’。网络设备b从本地的ribin中删除edca,相应的,继续从本地的rib-l中删除edca。由于本地的ribin中还保存有ed,网络设备b选择该ed,并将ed保存在本地的rib-l中,并将ed中的nlri-e等保存在lsdb中。网络设备b将ed保存在本地的rib-l之后,可以向网络设备a通告ed。基于与s1.2中描述的类似原因,本技术实施例将网络设备b向网络设备a通告的ed(或称根据ed向网络设备a发送的路由信息)称作edb。
120.在t1+t+3δ时刻,假设网络设备a从网络设备b接收到edb。网络设备a将edb保存在本地的ribin中,选择该edb,并将edb保存在本地的rib-l中,继而将edb中的nlri-e等保存在lsdb中。网络设备a将edb保存在本地的rib-l之后,可以向网络设备c通告edb。基于与s1.2中描述的类似原因,本技术实施例将网络设备a向网络设备c通告的edb称作edba。
121.在t1+t+4δ时刻,假设网络设备c从网络设备a接收到edba。网络设备c将edba保存在本地的ribin中,选择该edba,并将edba保存在本地的rib-l中,继而将edba中的nlri-e等保存在lsdb中。网络设备c将edba保存在本地的rib-l之后,可以向网络设备f通告edba。基于与s1.2中描述的类似原因,本技术实施例将网络设备c向网络设备f通告的edba称作edbac。
122.在t1+t+5δ时刻,假设网络设备f从网络设备c接收到edbac。网络设备f将edbac保存在本地的ribin中,选择该edbac,并将edbac保存在本地的rib-l中,继而将edbac中的nlri-e等保存在lsdb中。
123.网络设备b、网络设备a、网络设备c和网络设备f保存的nlri-e在时刻t1+t+5δ收敛。可见,收敛时长为t+5δ,并且,在收敛过程中,虽然网络设备a、网络设备c和网络设备f均与网络设备e之间存在可达链路,但是,网络设备a、网络设备c和网络设备f分别在4δ、2δ和4δ对应的时长内在本地的lsdb中未保存nlri-e(参见图3中设备c对应的虚线框),无法计算至网络设备e的报文转发路径。
124.通过分析图3的相关内容发现,现有协议的缺陷主要在于,虽然网络设备b本地保存有经过正常通告路径(即可达链路)而到达网络设备b的路由信息(即ed),但是,由于网络设备b只能在接收到由网络设备c发出的、经过网络设备a通告的用于撤销edca的撤销信息(即edca’)之后,才能再次触发bgp nlri选择过程,导致网络设备a、网络设备c和网络设备f在故障后的较长时长内本地未保存nlri-e,进而无法计算至网络设备e的报文转发路径。
125.为了解决现有协议中的缺陷所引起的技术问题,例如,可以对bgp协议做出如下两点扩展。1、路由信息中携带优先级属性,例如,在路由信息的路径属性域中新增一种扩展团体(extend community)属性,该优先级属性用于指示所在路由信息的优先级。2、在bgp nlri选择过程的选择规则中增加一条与优先级属性相关的选择规则(称作优先级选择规则),例如,优先级选择规则可以包括:优选优先级属性所指示的优先级较高的路由信息。
126.在一种可能的实现方式中,与前文介绍的路由信息中路径属性域中的其他属性类似的,网络设备在继续通告选择的路由信息之前,可以对选择的路由信息中的优先级属性进行修改,之后向bgp邻居通告修改后的路由信息。网络设备通过修改优先级属性可以提高或降低相应路由信息的优先级,进而控制bgp邻居的bgp nlri选择过程。
127.可选的,在bgp nlri选择过程的选择规则中,该优先级选择规则先于现有的bgp标
识选择规则。示例性的,对于网络设备接收到的nlri相同的两个路由信息(分别称作路由信息1和路由信息2),网络设备在对这两个路由信息进行bgp nlri选择过程中,可以先按照优先级选择规则选择适合路由信息,具体的,若路由信息1的优先级属性所指示的优先级高于路由信息2的优先级属性所指示的优先级,则网络设备可以选择路由信息作为适合路由信息。若路由信息1的优先级属性和路由信息2的优先级属性所指示的优先级的高低相同,那么,网络设备可以按照现有的bgp标识选择规则来选择适合路由信息。
128.本技术实施例不限定优先级选择规则在bgp nlri选择过程中作为第一优先的选择规则。假设,bgp nlri选择过程的选择规则还包括第一规则,该第一规则先于优先级选择规则,那么,网络设备在对路由信息1和路由信息2进行bgp nlri选择过程中,可以先按照第一规则选择适合路由信息,若无法按照第一规则选择适合路由信息,再按照优先级选择规则来选择适合路由信息。
129.通过上述协议扩展,有利于丰富bgp nlri选择过程的选择规则,进而有利于控制网络设备(例如网络设备b)的bgp nlri选择过程,从而有利于解决现有协议缺陷。
130.基于上述扩展bgp协议,本技术实施例提供一种路由信息的选择方法,该方法适用于支持经过上述扩展bgp协议的网络。该网络可以例如为图1或图2所示的网络,或者例如为图4所示的网络。
131.图4示出了本技术实施例所适用的另一种可能的网络,参考图4,该网络包括第一网络设备401、第二网络设备402和第三网络设备403,图4仍然通过网络设备之间的连线表示网络设备之间的邻居关系,即第一网络设备401与第二网络设备402之间建立有邻居关系,第二网络设备402与第三网络设备403之间建立有邻居关系。在一种可能的实现方式中,图4中建立有邻居关系的网络设备之间通过直接连接的方式相连。在一种可能的实现方式中,图4所示的网络可以包括更多的网络设备,可选的,图4所示的网络设备和图4未示出的更多的网络设备可以采用环形组网的方式建立邻居关系,例如形成图1或图2所示的网络。
132.第一网络设备401、第二网络设备402和第三网络设备403可以是支持bgp技术的转发设备,该转发设备可以是交换机,或路由器,或其他支持转发报文或数据的设备或网元。在一种可能的实现方式中,该网络设备可以是网络中的物理实体或物理实体中的装置(例如芯片或功能模块)。或者,在一种可能的实现方式中,网络设备可以是运行在物理实体中的虚拟设备(例如虚拟机或容器),示例性的,该虚拟设备可以是虚拟路由器或虚拟交换机等。
133.图5示出了本技术实施例路由信息的选择方法一种可能的流程,参考图5,本技术路由信息的选择方法一种可能的实施例可以包括步骤s501至步骤s503。
134.s501、第一网络设备向第二网络设备发送第一路由信息;
135.第一网络设备和第二网络设备可以分别参考图4所示的第一网络设备401和第二网络设备402进行理解。相应的,第一网络设备和第二网络设备均为支持经过上述扩展bgp协议的转发设备,并且,第一网络设备和第二网络设备之间建立有bgp邻居关系(简称邻居关系)。
136.在一种可能的实现方式中,第一网络设备可以向第二网络设备发送更新消息,并且通过在更新消息中携带第一路由信息,向第二网络设备通告选择的路由信息。
137.在一种可能的实现方式中,第一路由信息可以携带nlri和优先级属性。
138.在一种可能的实现方式中,该nlri为节点nlri,或者为链路nlri,或者为拓扑前缀nlri。其中,拓扑前缀nlri可以为ipv4拓扑前缀nlri,或者为ipv6拓扑前缀nlri。可选的,该nlri可以为路由信息中nlri域中的nlri前缀。
139.可选的,优先级属性为路由信息中的一种扩展团体属性,所述优先级属性用于指示所在路由信息的优先级。
140.示例性的,优先级属性的格式可以为类型(type,t)长度(length,l)值(value,v)这种可变格式,相应的,优先级属性包括t字段、l字段和v字段,其中,t字段描述标签和/或编码格式,l字段定义v字段的长度,v字段表示优先级属性实际的数值。示例性的,l字段所定义的v字段的长度为1个字节,v字段可以表示0至255之间的任意一个整数。在一种可能的实现方式中,路由信息的优先级为优先级属性中的v字段所表示的数值。在一种可能的实现方式中,路由信息的优先级所对应的数值越大,其所在路由信息的优先级越高。
141.为了便于描述,将第一路由信息中的nlri称作第一nlri,将第一路由信息中的优先级属性称作第一优先级属性。
142.s502、第三网络设备向第二网络设备发送第二路由信息;
143.第三网络设备可以参考图4所示的第三网络设备403进行理解。相应的,第三网络设备为支持经过上述扩展bgp协议的转发设备,并且,第三网络设备和第二网络设备之间建立有邻居关系。
144.在一种可能的实现方式中,第三网络设备可以向第二网络设备发送更新消息,并且通过在更新消息中携带第二路由信息,向第二网络设备通告选择的路由信息。
145.第二路由信息可以携带nlri和优先级属性。并且,第二路由信息中的nlri与第一路由信息携带的nlri相同,因此,本技术实施例将第二路由信息中的nlri称作第一nlri。此外,第二路由信息携带的优先级属性与第一路由信息携带的优先级属性可以不同,为了便于区分,将第二路由信息中的优先级属性称作第二优先级属性。第二优先级属性用于指示第二路由信息的优先级。
146.在一种可能的实现方式中,第二优先级属性与第一优先级属性不同可以指,第二先级属性所指示的优先级与第一优先级属性所指示的优先级的高低不同。更为具体的,可选的,第二优先级属性与第一优先级属性不同可以体现在,第二优先级属性的v字段所表示的数值与第一优先级属性的v字段所表示的数值不同。
147.关于nlri和优先级属性的理解可以参考步骤s501中的相关描述,此处不再赘述。
148.s503、第二网络设备根据第一优先级属性和第二优先级属性从第一路由信息和第二路由信息中选择适合路由信息;
149.第二网络设备可以分别从第一网络设备和第三网络设备接收第一路由信息和第二路由信息。关于第一路由信息和第二路由信息的理解可以分别参考步骤s501和步骤s502中的相关内容,此处不再赘述。
150.在一种可能的实现方式中,第二网络设备可以在bgp nlri选择过程中按照前文介绍的优先级选择规则选择适合路由信息,即根据第一优先级属性和第二优先级属性从第一路由信息和第二路由信息中选择适合路由信息。
151.具体的,第二网络设备可以确定第一路由信息中第一优先级属性所指示的优先级,并且确定第二路由信息中第二优先级属性所指示的优先级。之后,第二网络设备可以从
第一路由信息和第二路由信息中选择优先级较高的路由信息作为适合路由信息。
152.在一种可能的实现方式中,若优先级属性的v字段所表示的数值代表优先级,那么第二网络设备可以从第一路由信息和第二路由信息中选择优先级属性的v字段所表示的数值较大的路由信息。
153.可选的,在bgp nlri选择过程的选择规则中,该优先级选择规则先于现有的bgp标识选择规则。本技术实施例将第一路由信息和第二路由信息中未被第二网络设备选择的路由信息称作非适合路由信息。在一种可能的实现方式中,适合路由信息对应的网络设备的bgp标识可以小于非适合路由信息对应的网络设备的bgp标识。本技术实施例不限定优先级选择规则在bgp nlri选择过程中作为第一优先的选择规则。关于该优先级选择规则与其他选择规则(例如bgp标识选择规则)之间的关系可以参考前文的相关描述,此处不再赘述。
154.通过上述步骤s501至步骤s503可以看出,第一网络设备和第三网络设备可以通过向第二网络设备发送的路由信息中的优先级属性来控制第二网络设备的bgp nlri选择过程,从而有利于解决现有协议缺陷。
155.图5对应的实施例中,本技术不限定步骤s502一定在步骤s501之后执行,在一种可能的实现方式中,步骤s502可以在步骤501之前执行,或者与步骤s501同时执行。
156.在一种可能的实现方式中,第一网络设备可以为第一nlri的产生(origin)设备,第一nlri对应的网络设备可以为第一网络设备。第一网络设备产生并向图4所示网络中网络设备通告携带第一nlri的路由信息。该第二网络设备或第三网络设备可以基于第一nlri计算至第一网络设备的报文转发路径。可选的,第一网络设备和第三网络设备之间可以建立有邻居关系,或者,第一网络设备可以经过其他网络设备向第三网络设备通告携带第一nlri的路由信息。在一种可能的实现方式中,第一网络设备在产生的路由信息(例如第一路由信息)中,按照默认字段填写优先级属性。假设优先级属性中v字段可以表示的数值为0至255之间的任意一个整数(包括0和255),那么,作为举例,该默认字段所表示的数值可以为1。
157.在一种可能的实现方式中,第一网络设备不是第一nlri的产生设备。相应的,在一种可能的实现方式中,图4所示的网络还可以包括第四网络设备404。第一网络设备401与第四网络设备404之间建立有邻居关系。在一种可能的实现方式中,第一网络设备401和第四网络设备404之间通过直接连接的方式相连。在一种可能的实现方式中,图4对应实施例中的第一nlri可以为图2对应实施例中的nlri-e,第四网络设备404、第一网络设备401、第二网络设备402和第三网络设备403可以分别为图2所示网络中的网络设备e、网络设备d、网络设备c和网络设备a,或者,分别为图2所示网络中的网络设备d、网络设备c、网络设备a和网络设备b,或者,分别图2所示网络中的网络设备c、网络设备a、网络设备b和网络设备d。在一种可能的实现方式中,在步骤s501之前,图5对应的实施例方法还可以包括步骤s504。
158.s504、第一网络设备从第四网络设备接收第三路由信息。
159.第四网络设备可以参考图4所示的第四网络设备404进行理解,此处不再赘述。
160.在一种可能的实现方式中,第四网络设备可以向第一网络设备发送更新消息,并且通过在更新消息中携带第三路由信息,向第一网络设备通告选择的路由信息。
161.第三路由信息可以携带第一nlri和第三优先级属性。在一种可能的实现方式中,第一网络设备在bgp nlri选择过程中选择第三路由信息,之后根据该第三路由信息向第二
网络设备发送第一路由信息。
162.在一种可能的实现方式中,在步骤s501之前,图5对应的实施例还可以包括步骤s505。
163.s505、第一网络设备将第三路由信息中的第三优先级属性修改为第一优先级属性。
164.第一网络设备在接收到第三路由信息之后,可以将第三路由信息中的第三优先级属性修改为第一优先级属性,之后根据修改后的第三路由信息向第二网络设备发送第一路由信息。
165.在一种可能的实现方式中,对第三优先级属性进行修改后的优先级属性(即第一优先级属性)所指示的优先级可以高于第三优先级属性所指示的优先级。示例性的,假设第三优先级属性的v字段所表示的数值为1,第一优先级属性的v字段所表示的数值可以为2。假设第二路由信息中的第二优先级属性所表示的数值为1,那么步骤s503所选择的适合路由信息为第一路由信息。
166.或者,在一种可能的实现方式中,对第三优先级属性进行修改后的优先级属性(即第一优先级属性)所指示的优先级可以低于第三优先级属性所指示的优先级。示例性的,假设第三优先级属性的v字段所表示的数值为1,第一优先级属性的v字段所表示的数值可以为0。相应的,步骤s503所选择的适合路由信息为第二路由信息。
167.以第二优先级属性和第三优先级属性均高于第一优先级属性为例,相应的,步骤s503所选择的适合路由信息为第二路由信息,在一种可能的实现方式中,在步骤s503之后,图4对应的方法实施例还可以包括步骤s506和步骤s507。
168.s506、第二网络设备根据第二路由信息向第一网络设备发送第四路由信息。
169.第二网络设备选择第二路由信息为适合路由信息后,可以将第二路由信息中的第一nlri等保存在本地的lsdb中,并且向第一网络设备通告选择的第二路由信息,即根据第二路由信息向第一网络设备发送第四路由信息。其中,第四路由信息携带第一nlri和第二优先级属性。
170.在一种可能的实现方式中,第二网络设备可以向第一网络设备发送更新消息,并且通过在更新消息中携带第四路由信息,向第一网络设备通告选择的路由信息。
171.s507、第一网络设备根据第一优先级属性和第二优先级属性从第四路由信息和修改后的第三路由信息中选择第四路由信息;
172.由于第二优先级属性高于第一优先级属性,因此,第一网络设备根据优先级选择规则对修改后的第三路由信息和接收到的第四路由信息进行bgp nlri选择过程时,选择第四路由信息作为适合路由信息。
173.第一网络设备选择第四路由信息之后,可以将第四路由信息中的第一nlri等保存在本地的lsdb中。可选的,第一网络设备可以向第四网络设备通告选择的第四路由信息。
174.通过以上介绍的步骤可以发现,第一网络设备在从第四网络设备接收到第三路由信息后,可以通过修改第三路由信息中的优先级属性来降低经过第四网络设备通告至第一网络设备的路由信息的优先级,进而有利于从第二网络设备获取经过其他通告路径到达第一网络设备的路由信息(即第四路由信息),并且选择保存经过其他通告路径到达第一网络设备的路由信息(即第四路由信息)。
175.假设在步骤s504之后,在步骤s501之前,第一网络设备与第四网络设备之间不可达。在一种可能的实现方式中,图5对应的实施例还可以包括步骤s508。
176.s508、第一网络设备感知与第四网络设备之间不可达;
177.第一网络设备与第四网络设备之间不可达是指,第一网络设备与第四网络设备之间不存在能够转发报文的链路。本技术实施例不限定第一网络设备与第四网络设备之间不可达的原因,作为举例,第一网络设备与第四网络设备之间不可达的原因包括如下故障中的至少一种:第一网络设备和/或第四网络设备故障,第一网络设备和第四网络设备之间的链路(称作第一链路)故障,以及第一网络设备中对应于第一链路的端口故障。
178.在一种可能的实现方式中,第一网络设备响应于感知与第四网络设备之间不可达而执行步骤s505,并且,第一优先级属性所指示的优先级低于第三优先级属性所指示的优先级。
179.可见,基于上述对bgp协议的扩展,有利于网络设备在感知某个通告路径不可达后,调整网络中各网络设备所选择的路由信息的通告路径,进而有利于网络设备保存经过正常通告路径的路由信息,以保障向目标网络转发报文。
180.在一种可能的实现方式中,在第一网络设备感知与第四网络设备之间不可达之后的第一时长后,若第一网络设备与第四网络设备之间仍然不可达,第一网络设备可以删除本地保存的修改后的第三路由信息。
181.在一种可能的实现方式中,在第一网络设备感知与第四网络设备之间不可达之后的第一时长内,若第一网络设备与第四网络设备之间恢复可达状态,第一网络设备可以将第三路由信息中的优先级属性恢复为第三优先级属性。假设第三优先级属性所指示的优先级与第二优先级属性所指示的优先级相同,并且第四网络设备的bgp标识大于第二网络设备的bgp标识,那么第一网络设备可以从ribin中保存的第三路由信息和第四路由信息中选择第三路由信息。之后,第一网络设备可以向第二网络设备通告该第三路由信息,并将第三路由信息中的nlri等保存在本地的lsdb中。
182.在一种可能的实现方式中,为了减少网络抖动,第一网络设备可以在感知与第四网络设备之间恢复可达状态的第二时长后,将第三路由信息中的优先级属性恢复为第三优先级属性。
183.在一种可能的实现方式中,在步骤s504之后,在步骤s508之前,图5对应的实施例方法还可以包括步骤s509。
184.s509、第一网络设备根据第三路由信息向第二网络设备发送第五路由信息;
185.第一网络设备接收到第三路由信息后,在一种可能的实现方式中,可以选择第三路由信息。之后,第一网络设备可以将第三路由信息中的第一nlri等保存在本地的lsdb中,并且可以向第二网络设备通告选择的第三路由信息,即根据第三路由信息向第二网络设备发送第五路由信息。第五路由信息携带第一nlri,并且,其优先级属性为第三优先级属性。
186.在一种可能的实现方式中,第二网络设备接收到第五路由信息之后,可以选择第五路由信息,并且将第五路由信息中的第一nlri等保存在本地的lsdb中,并且向第三网络设备通告选择的第五路由信息。
187.在一种可能的实现方式中,第一网络设备可以向第二网络设备发送更新消息,并且通过在更新消息中携带第五路由信息,向第二网络设备通告选择的路由信息。
188.在一种可能的实现方式中,在步骤s507之后,图5对应的实施例方法还可以包括步骤s510。
189.s510、基于第一时长后第一网络设备与第二网络设备之间仍不可达,第一网络设备删除修改后的第三路由信息;
190.若第一网络设备感知与第四网络设备之间不可达的第一时长后,第一网络设备与第四网络设备之间仍然不可达,那么第一网络设备可以删除修改后的第三路由信息。
191.s511、基于第一时长内第一网络设备与第二网络设备恢复可达,第一网络设备在第二时长后将第三路由信息的第一优先级属性修改为第三优先级属性。
192.若第一网络设备感知与第四网络设备之间不可达的第一时长内,第一网络设备与第四网络设备之间恢复可达状态,那么第一网络设备可以将第三路由信息中的优先级属性恢复为第三优先级属性。为了减少网络抖动,第一网络设备可以在第一网络设备与第四网络设备之间恢复可达状态或在第一时长超时后的第二时长后,将第三路由信息的第一优先级属性修改为第三优先级属性。
193.之后,第一网络设备可以对本地保存的携带第一nlri的路由信息(例如第三路由信息和第四路由信息)执行bgp nlri选择过程。之后,第一网络设备可以将选择的第三路由信息中的第一nlri等保存在本地的lsdb中,并向第二网络设备通告选择的第三路由信息,触发第二网络设备再次执行bgp nlri选择过程。
194.图5作为举例示出了本技术实施例一种可能的流程,重点介绍了第一网络设备和第二网络设备选择优先级较高的路由信息的过程,图5对应的实施例还可以包括更多的步骤。例如,可选的,在步骤s501之后,第二网络设备可以将本地保存的第五路由信息更新为第一路由信息。之后,可选的,第二网络设备可以选择第一路由信息。之后可选的,第二网络设备可以根据第一路由信息向第三网络设备发送第六路由信息,第六路由信息携带第一nlri,并且携带第一优先级属性。可选的,由于第一优先级属性所指示的优先级低于第二优先级属性所指示的优先级,因此,第二路由信息可以为第三网络设备根据第六路由信息执行bgp nlri选择过程后发送的。
195.下面结合图1所示的网络介绍图5对应的实施例方法一种可能的具体流程。假设图5对应实施例中的第一nlri对应于图1所示网络设备e的nlri-e。假设第四网络设备、第一网络设备、第二网络设备和第三网络设备分别为图1所示网络中的网络设备d、网络设备c、网络设备a和网络设备b。假设图1所示的各个网络设备均支持本技术实施例介绍的扩展bgp协议。
196.在一种可能的实现方式中,图1所示的各个网络设备可以按照图2对应的实施例过程来通告nlri-e至第一次收敛。但是,和图2对应的实施例不同的是,各网络设备通告的路由信息包括优先级属性,并且,在第一次收敛之前,各网络设备在通告路由信息的过程中不改变优先级属性。假设,在第一次收敛之前,路由信息中优先级属性所表示的优先级为1,并且,优先级对应的数值越大,优先级越高。
197.假设图1中各网络设备保存的nlri-e在时刻t0收敛,在t0之后的某个时刻(称作时刻t1),网络设备c感知与网络设备d之间不可达,图1所示的网络设备需要再次执行nlri交换过程,直至nlri-e在各个网络设备中达到故障之后的收敛。图6示出了图1中的网络设备按照本技术实施例提供的扩展bgp协议执行的nlri交换过程。和图3不同的,图6在代表路由
信息的字母后增加
“‑
0”或
“‑
1”,以代表该路由信息中的优先级属性所指示的优先级为0或1。图6中,以文本框中文字底部的下划线代表网络设备对相应本地信息的添加或更新操作。关于图6与图3中其他相同的内容(例如横轴坐标、纵轴坐标、删除线、带有箭头的线段以及文本框等),可以参考图3对应的相关描述来理解,此处不再赘述。
198.假设图1中各网络设备保存的nlri-e在时刻t0收敛,保存的与nlri-e相关的信息参考图6中t0对应的文本框中的内容。
199.在t1时刻,网络设备c感知到与网络设备d之间不可达,网络设备c修改ribin中ed-1的优先级属性,使其优先级属性所表示的数值为0,本技术实施例将修改后的ed-1称作ed-0。之后,网络设备c将选择的ed-0保存在rib-l中,并且根据ed-0分别向网络设备a和网络设备f通告edc-0。
200.和图3对应的实施例类似的,为了便于描述,图6对应的实施例假设网络设备之间通告路由信息所需的时长相同,并且用δ代表该时长。和网络设备之间通告路由信息所需的时长相比,网络设备对本地存储的信息进行删除或添加的操作所需的时长一般很短,因此,为了便于描述网络设备再次执行的nlri交换过程,在图6中将间隔时长较短的多个操作对应于同一时刻。但是,本技术实施例不限定图6中对应于同一时刻的多个操作一定要同时执行。
201.在t1+δ时刻,网络设备a和网络设备f分别从网络设备c接收到edc-0,并分别将本地的ribin中保存的edc-1更新为edc-0,继而分别将选择的edc-0保存在本地的rib-l。之后,网络设备a可以根据edc-0向网络设备b通告edca-0。
202.在t1+2δ时刻,网络设备b从网络设备a接收到edca-0。网络设备b将本地ribin中的edca-1更新为edca-0。由于edca-0的优先级属性所指示的优先级低于本地ribin中的ed-1的优先级属性所指示的优先级,因此,网络设备可以选择ed-1。之后,网络设备b将ed-1保存在本地的rib-l中,并将ed-1中的nlri-e等保存在lsdb中。网络设备b将ed-1保存在本地的rib-l之后,可以向网络设备a通告edb-1。
203.在t1+3δ时刻,网络设备a从网络设备b接收到edb-1,并将edb-1保存在本地的ribin中。网络设备a从本地的ribin中的edb-1和edc-0中选择edc-0,将edb-1中的nlri-e等保存在本地的rib-l中。网络设备a将edb-1替换edc-0保存在本地的rib-l之后,可以一方面向网络设备c通告edb-1(将发送的路由信息称作edba-1),另一方面向网络设备b通告用于撤销edca-0的撤销信息edca-0’。
204.在t1+4δ时刻,网络设备c和网络设备b分别从网络设备a接收到edba-1和edca-0’。网络设备b可以根据edca-0’从本地ribin中删除edca-0。网络设备c将edba-1保存在本地的ribin中,从edba-1和ed-0中选择该edba-1,并将edba-1保存在本地的rib-l中,继而将edba-1中的nlri-e等保存在lsdb中。网络设备c将edba-1保存在本地的rib-l之后,可以一方面向网络设备f通告edbac-1,另一方面可以根据ed-0分别向网络设备f和网络设备a通告用于撤销edc-0的撤销信息edc-0’。
205.在t1+5δ时刻,网络设备f和网络设备a分别从网络设备c接收到edca-0’。网络设备f根据edc-0’从本地ribin中删除edc-0,将edbac-1保存在本地的ribin中,选择该edbac-1,并将edbac-1保存在本地的rib-l中,继而将edbac-1中的nlri-e等保存在lsdb中。网络设备a根据edc-0’从本地ribin中删除edc-0。
206.网络设备b、网络设备a、网络设备c和网络设备f保存的nlri-e在时刻t1+5δ时刻收敛。可见,收敛时长为5δ,小于图3对应实施例中的t+5δ,有利于缩短故障后再次收敛的时长。并且,在收敛过程中,网络设备a、网络设备c和网络设备f始终在本地的lsdb中保存nlri-e,可以计算至网络设备e的报文转发路径。
207.与图3对应实施例类似的,在一种可能的实现方式中,网络设备c在感知与网络设备d之间不可达后,可以开启定时器1(图6中未示出),该定时器1的时长被设置为t。若在定时器1超时前,网络设备c与网络设备d之间仍然不可达,网络设备c可以在定时器1超时后(例如在时刻t1+t)从ribin中删除ed-0。
208.为了解决现有协议中的缺陷所引起的技术问题,例如,本技术实施例还提供另一种路由信息的处理方法。该方法适用于支持上述扩展bgp协议的网络。该网络可以例如为图1或图2所示的网络,或者例如为图7所示的网络。
209.图7示出了本技术实施例所适用的另一种可能的网络,参考图7,该网络包括第一网络设备701、第二网络设备702和第三网络设备703,图7仍然通过网络设备之间的连线表示网络设备之间的邻居关系,即第一网络设备701与第二网络设备702之间建立有邻居关系,第一网络设备701与第三网络设备703之间建立有邻居关系。在一种可能的实现方式中,图7中建立有邻居关系的网络设备之间通过直接连接的方式相连。在一种可能的实现方式中,图7所示的网络可以包括更多的网络设备,可选的,图7所示的网络设备和图7未示出的更多的网络设备可以采用环形组网的方式建立邻居关系,例如形成图1或图2所示的网络。
210.在一种可能的实现方式中,关于第一网络设备701、第二网络设备702和第三网络设备703的理解可以分别参考图4中第一网络设备401、第四网络设备404和第二网络设备402的相关介绍,此处不再赘述。
211.图8示出了本技术实施例方法另一种可能的流程。参考图8,本技术另一种可能的实施例方法可以包括步骤s801至步骤s804。在一种可能的实现方式中,图8所示实施例中的第一网络设备至第三网络设备可以分别参考图7所示网络中的第一网络设备701至第三网络设备703进行理解。在一种可能的实现方式中,图8对应实施例中的第一nlri对应于图2对应的实施例中网络设备e的nlri-e,第二网络设备、第一网络设备和第三网络设备分别为图1或图2所示网络中的网络设备d、网络设备c和网络设备a。
212.s801、第二网络设备向第一网络设备发送第一路由信息;
213.第一网络设备和第二网络设备之间建立有bgp邻居关系,假设第一网络设备和第二网络设备之间可以通过第一链路传输路由信息。可选的,第一链路为直连链路。本技术实施例将第二网络设备向第一网络设备发送的路由信息称作第一路由信息。
214.第一路由信息可以携带对应于目标网络的nlri,为了便于描述,本技术实施例将第一路由信息中的nlri称作第一nlri。
215.在一种可能的实现方式中,第二网络设备可以向第一网络设备发送更新消息,并且通过在更新消息中携带第一路由信息,向第一网络设备通告选择的路由信息。
216.s802、第一网络设备感知与第二网络设备之间不可达;
217.本技术实施例不限定第一网络设备与第二网络设备之间不可达的原因,作为举例,第一网络设备与第二网络设备之间不可达的原因包括如下故障中的至少一种:第一网络设备和/或第二网络设备故障,第一网络设备和第二网络设备之间的第一链路故障,以及
第一网络设备中对应于第一链路的端口故障。
218.s803、第一网络设备根据第一路由信息向第三网络设备发送第二信息;
219.第一网络设备感知到与第二网络设备之间不可达后,可以根据第一路由信息向第三网络设备发送第二信息。
220.在一种可能的实现方式中,第二信息携带第一nlri,并且,第二信息用于指示第三网络设备选择第三路由信息。其中,第三路由信息携带第一nlri,并且,第三路由信息到达第三网络设备的通告路径未经过第一链路。
221.在一种可能的实现方式中,第一网络设备可以向第三网络设备发送更新消息,并且通过在更新消息中携带第二信息,该第二信息可以为路由信息,用于向第三网络设备通告选择的路由信息,或者第二信息可以为撤销信息,用于撤销先前发送过的携带第一nlri的路由信息。
222.s804、第一网络设备在发送第二信息之后的第一时长内,在lsdb中保持第一nlri;
223.第一网络设备在发送第二信息之后的第一时长内,可以在lsdb中保持第一nlri,以计算从第一网络设备至目标网络的报文转发路径(或称路由)。
224.第一网络设备感知与第二网络设备之间不可达后,一方面,第一网络设备可以向第三网络设备发送第二信息,以指示第三网络设备选择通告路径未经过第一链路的第三路由信息,有利于第三网络设备基于第三路由信息中的第一nlri计算至目标网络的报文转发路径。另一方面,第一网络设备可以在第一时长内在lsdb中保持第一nlri,以基于第一nlri计算至目标网络的报文转发路径。
225.在一种可能的实现方式中,在步骤s802之后,图8对应的实施例方法还可以包括步骤s805和步骤s806。
226.s805、第三网络设备根据第二信息选择第三路由信息;
227.基于第三网络设备本地保存有携带第一nlri且通告路径未经过第一链路的第三路由信息,第三网络设备在接收到第二信息之后可以选择第三路由信息。之后可以将第三路由信息中的第一nlri等保存在本地的lsdb中。
228.s806、第三网络设备根据第三路由信息向第一网络设备发送第四路由信息;
229.第三网络设备在选择第三路由信息之后,可以向第一网络设备通告该第三路由信息,即根据第三路由信息向第一网络设备发送第四路由信息。其中,第四路由信息携带第一nlri,并且,第四路由信息的通告路径也未经过第一链路。
230.第三网络设备根据第三路由信息向第一网络设备发送第四路由信息,有利于第一网络设备保存通告路径未经过第一链路的、携带第一nlri的路由信息,有利于第一网络设备计算至目标网络的报文转发路径。
231.在一种可能的实现方式中,第三网络设备可以向第一网络设备发送更新消息,并且通过在更新消息中携带第四路由信息,向第一网络设备通告选择的路由信息。
232.在一种可能的实现方式中,在步骤s806之后,图8对应的实施例方法还可以包括步骤s807。
233.s807、第一网络设备选择第四路由信息;
234.s808、第一网络设备将第四路由信息中的第一nlri保存在lsdb中。
235.第一网络设备在接收到来自第三网络设备的第四路由信息后,可以选择第四路由
信息。之后,第一网络设备可以将第四路由信息中的第一nlri保存在本地的lsdb中。
236.至此,第一网络设备选择了通告路径未经过第一链路的第四路由信息,有利于第一网络设备基于第四路由信息中的第一nlri计算至目标网络的报文转发路径。
237.在一种可能的实现方式中,图7所示的网络还可以包括第四网络设备704。第三网络设备703与第四网络设备704之间建立有邻居关系。在一种可能的实现方式中,第三网络设备703和第四网络设备704之间通过直接连接的方式相连。对第四网络设备704的理解可以参考图4中第三网络设备403的相关介绍,此处不再赘述。图8对应的实施例中的第四网络设备可以参考图7所示的第四网络设备704进行理解。
238.在一种可能的实现方式中,在步骤s805之前,图8对应的实施例方法还可以包括步骤s809。
239.s809、第四网络设备向第三网络设备发送第三路由信息;
240.在一种可能的实现方式中,第四网络设备可以向第三网络设备发送更新消息,并且通过在更新消息中携带第三路由信息,向第三网络设备通告选择的路由信息。
241.本技术实施例不限定步骤s809和步骤s803之间的时序先后,只要步骤s809在步骤s805之前执行即可。
242.在一种可能的实现方式中,图8对应实施例中的网络设备可以支持前文介绍的扩展bgp协议,图8对应的实施例中所涉及的各个路由信息可以包括图5对应实施例中的优先级属性,图8对应的实施例中涉及的第二信息可以参考图5对应的实施例中的第二路由信息进行理解。下面通过图9所示的流程,介绍图8对应的实施例在这种情况下的细化步骤。参考图9,本技术路由信息的处理方法可以包括步骤s901至步骤s913。
243.在一种可能的实现方式中,图9所示实施例中的第一网络设备至第三网络设备可以分别参考图7所示网络中的第一网络设备701至第三网络设备703进行理解。在一种可能的实现方式中,图9对应实施例中的第一nlri对应于图2对应的实施例中网络设备e的nlri-e,第二网络设备、第一网络设备和第三网络设备分别为图1或图2所示网络中的网络设备d、网络设备c和网络设备a。
244.s901、第二网络设备向第一网络设备发送第一路由信息;
245.s902、第一网络设备向第三网络设备发送第五路由信息;
246.s903、第一网络设备感知与第二网络设备之间不可达;
247.s904、第一网络设备将第一路由信息中的第一优先级属性修改为第二优先级属性;
248.s905、第一网络设备向第三网络设备发送第二信息;
249.s906、第一网络设备在第一时长内在lsdb中保持第一nlri;
250.第一网络设备在感知与第二网络设备之间不可达之后的第一时长内,可以不删除修改后的第一路由信息。并且,第一网络设备在接收到第四路由信息之前,可以将修改后的第一路由信息中的第一nlri等保存在本地的lsdb中。第一网络设备在接收并选择第四路由信息之后,可以将第四路由信息中的第一nlri等保存在本地的lsdb中。
251.可见,若第一网络设备在第一时长内未接收到第四路由信息,那么第一网络设备在lsdb中保持的第一nlri来自修改后的第一路由信息。若第一网络设备在第一时长内接收到第四路由信息,那么第一网络设备在lsdb中保持的第一nlri先来自修改后的第一路由信
息,后替换为来自第四路由信息。
252.第一网络设备在感知与第二网络设备之间不可达之后的第一时长后,若第一网络设备与第二网络设备之间仍然不可达,那么第一网络设备可以删除修改后的第一路由信息。
253.第一网络设备在感知与第二网络设备之间不可达之后的第一时长后,若第一网络设备与第二网络设备之间恢复可达状态,那么第一网络设备可以将第一路由信息中的优先级属性恢复为第一优先级属性,之后可以对保存的携带第一nlri的路由信息(例如再次修改后的第一路由信息和第四路由信息)再次执行bgp nlri选择过程。
254.为了减少网络抖动,第一网络设备与第二网络设备之间恢复可达状态之后的第二时长内,第一网络设备暂不执行将第一路由信息中的优先级属性恢复为第一优先级属性的步骤,而是在第二时长后将第一路由信息中的优先级属性恢复为第一优先级属性。
255.s907、第四网络设备向第三网络设备发送第三路由信息;
256.s908、第三网络设备根据第二优先级属性和第三优先级属性从第二信息和第三路由信息中选择第三路由信息;
257.s909、第三网络设备向第一网络设备发送第四路由信息;
258.s910、第一网络设备根据第二优先级和第三优先级从第四路由信息和修改后的第一路由信息中选择第四路由信息;
259.s911、第一网络设备将第四路由信息中的第一nlri保存在lsdb中;
260.s912、基于第一网络设备与第二网络设备在第一时长后仍然不可达,第一网络设备在第一时长后删除修改后的第一路由信息;
261.s913、基于第一网络设备与第二网络设备在第一时长后可达,第一网络设备在第二时长后将第一路由信息的第二优先级属性修改为第一优先级属性。
262.图9对应的实施例与图8对应的实施例中,相同措辞具有相同含义。并且,由于图9对应的实施例基于前文介绍的扩展bgp协议,因此在图9对应的实施例中,第二网络设备、第一网络设备、第三网络设备和第四网络设备所执行的步骤还可以分别参考图5所示实施例中的第四网络设备、第一网络设备、第二网络设备和第三网络设备所执行的相应步骤进行理解,图9对应的实施例中的第一路由信息、第五路由信息、第二信息、第三路由信息和第四路由信息还可以分别参考图5所示实施例中的第三路由信息、第五路由信息、第一路由信息、第二路由信息和第四路由信息进行理解,图9对应的实施例中的第一优先级属性、第二优先级属性和第三优先级属性还可以分别参考图5对应的实施例中的第三优先级属性、第一优先级属性和第二优先级属性进行理解,此处不再赘述。
263.在一种可能的实现方式中,图8对应实施例中的第二信息可以用于撤销之前发送的路由信息。下面通过图10所示的流程,介绍图8对应的实施例在这种情况下的细化步骤。参考图10,本技术路由信息的处理方法可以包括步骤s1001至步骤s1012。
264.在一种可能的实现方式中,图10所示实施例中的第一网络设备至第三网络设备可以分别参考图7所示网络中的第一网络设备701至第三网络设备703进行理解。在一种可能的实现方式中,图10对应实施例中的第一nlri对应于图2对应的实施例中网络设备e的nlri-e,第二网络设备、第一网络设备和第三网络设备分别为图1或图2所示网络中的网络设备d、网络设备c和网络设备a。
265.s1001、第二网络设备向第一网络设备发送第一路由信息;
266.步骤s1001参考图8对应的实施例中的步骤s801进行理解,此处不再赘述。
267.s1002、第一网络设备向第三网络设备发送第五路由信息;
268.第一网络设备接收到第一路由信息后,可以将第一路由信息保存在本地的输入路由信息库(例如ribin)中,并选择第一路由信息。之后,第一网络设备可以将第一路由信息中的第一nlri保存在本地的lsdb中,并且向第三网络设备通告选择的第一路由信息,具体的,可以根据第一路由信息向第三网络设备发送第五路由信息。第五路由信息携带第一nlri,具体的,可以在nlri域中携带第一nlri。
269.s1003、第一网络设备感知与第二网络设备之间不可达;
270.步骤s1003可以参考图8对应的实施例中的步骤s802进行理解,此处不再赘述。
271.s1004、第一网络设备删除本地保存的第一路由信息;
272.第一网络设备感知到与第二网络设备之间不可达后,可以删除本地保存的第一路由信息。具体的,在一种可能的实现方式中,第一网络设备可以从本地的输入路由信息库(例如ribin)中删除第一路由信息。本技术实施例不限定第一网络设备在感知到不可达后立即删除第一路由信息,例如,第一网络设备可以在一定时长(例如图3或图6对应的实施例中的t)后执行步骤s1004,但是该时长(例如t)小于图10对应的实施例中的第一时长,也就是说,第一网络设备在删除ribin中的第一路由信息后,还需保持rib-l中的第一路由信息。
273.s1005、第一网络设备向第三网络设备发送第二信息;
274.第一网络设备响应于从输入路由信息库中删除第一路由信息,可以继而向第三网络设备发送第二信息。第二信息用于撤销第一网络设备之前向第三网络设备发送的第五路由信息。
275.在一种可能的实现方式中,第一网络设备可以向第三网络设备发送更新消息,并且通过在更新消息中携带第二信息,向第三网络设备撤销先前发送的第五路由信息。
276.具体的,例如,bgp报文(例如更新报文或更新消息)在撤销域携带第二信息,第二信息包括第一nlri。
277.s1006、第一网络设备在第一时长内在lsdb中保持第一nlri;
278.第一网络设备在感知与第二网络设备之间不可达之后的第一时长内,可以在lsdb中保持第一nlri。
279.在一种可能的实现方式中,在第一网络设备接收到第四路由信息之前,第一网络设备可以通过在第一时长内不删除rib-l中的第一路由信息来保持lsdb中的第一nlri。
280.在第一时长内,若第一网络设备接收到第四路由信息,第一网络设备可以选择第四路由信息,并将第四路由信息替换第一路由信息保存在rib-l中,进而将第四路由信息中的第一nlri保存在本地的lsdb中。
281.在第一时长后,若第一网络设备未收到第四路由信息,第一网络设备可以删除rib-l中的第一路由信息。
282.s1007、第三网络设备根据第二信息删除本地保存的第五路由信息;
283.第三网络设备接收到第二信息后,可以读取第二信息中的第一nlri,之后将本地保存的(例如本地的ribin中保存的)第五路由信息删除。
284.s1008、第四网络设备向第三网络设备发送第三路由信息;
285.图10对应的实施例不限定步骤s1008一定在步骤s1007之后执行,在一种可能的实现方式中,步骤s1008可以在步骤s1007之前执行,或者在步骤s1005之前执行,只要步骤s1008在步骤s1009之前执行即可。
286.s1009、第三网络设备选择第三路由信息;
287.由于第五路由信息已被删除,第三网络设备可以选择接收到的第三路由信息。
288.s1010、第三网络设备根据选择的第三路由信息向第一网络设备发送第四路由信息;
289.s1011、第一网络设备选择第四路由信息;
290.s1012、第一网络设备将第四路由信息中的第一nlri保存在lsdb中。
291.步骤s1010和步骤s1012可以分别参考图8对应的实施例中的步骤s806至步骤s808进行理解,此处不再赘述。
292.图10对应的实施例与图8对应的实施例中,相同措辞具有相同含义,因此,图10对应的实施例中的、与图8对应的实施例中措辞相同的内容,可以参考图8对应的实施例进行理解,此处不再赘述。
293.下面结合图1所示的网络介绍图10对应的实施例方法一种可能的具体流程。假设图10对应实施例中的第一nlri对应于网络设备e,将第一nlri称作nlri-e。假设第二网络设备、第一网络设备、第三网络设备和第四网络设备分别为图1所示网络中的网络设备d、网络设备c、网络设备a和网络设备b。假设图1所示的各个网络设备均支持本技术实施例介绍的扩展bgp协议。
294.在一种可能的实现方式中,图1所示的各个网络设备可以按照图2对应的实施例过程来通告nlri-e至第一次收敛。
295.假设图1中各网络设备保存的nlri-e在时刻t0收敛,在t0之后的某个时刻(称作时刻t1),网络设备c感知与网络设备d之间不可达,图1所示的网络设备需要再次执行nlri交换过程,直至nlri-e在各个网络设备中达到故障之后的收敛。
296.图11示出了图1中的网络设备按照图10对应的实施例执行的nlri交换过程。图11中,以文本框中文字底部的下划线代表网络设备对相应本地信息的添加或更新操作。关于图11与图3中其他相同的内容(例如横轴坐标、纵轴坐标、删除线、带有箭头的线段以及文本框等),可以参考图3对应的相关描述来理解,此处不再赘述。
297.假设图1中各网络设备保存的nlri-e在时刻t0收敛,保存的与nlri-e相关的信息参考图11中t0对应的文本框中的内容。
298.在时刻t1,网络设备c感知到与网络设备d之间不可达,网络设备c开启定时器1(图11中未示出),假设该定时器1的时长被设置为t,并且在定时器1超时前保持本地保存的nlri-e相关的信息,即在ribin中保持ed,相应的,可以在rib-l中保持ed,并且在lsdb中保持nlri-e。
299.在时刻t1+t,网络设备c删除ribin中的ed,但不删除rib-l中的ed,相应的,可以在lsdb中保持nlri-e。之后,网络设备c分别向网络设备a和网络设备f发送用于撤销之前发送的edc的撤销信息(称作edc’)。
300.和图3对应的实施例类似的,由于不同网络设备之间通告路由信息的时长一般差异不大,因此,为了便于描述,图11对应的实施例假设网络设备之间通告路由信息所需的时
长相同,并且用δ代表该时长。和网络设备之间通告路由信息所需的时长相比,网络设备对本地存储的信息进行删除或添加的操作所需的时长一般很短,因此,为了便于描述网络设备再次执行的nlri交换过程,在图11中将间隔时长较短的多个操作对应于同一时刻。但是,本技术实施例不限定图11中对应于同一时刻的多个操作一定要同时执行。
301.在t1+t+δ时刻,假设网络设备a和网络设备f均从网络设备c接收到edc’。网络设备a和网络设备f均从本地的ribin中删除edc,相应的,继续从本地的rib-l中删除edc,从本地的lsdb中删除nlri-e。此外,网络设备a在从本地的rib-l中删除edc后,可以向网络设备b发送用于撤销edca的撤销信息edca’。
302.在t1+t+2δ时刻,假设网络设备b从网络设备a接收到edca’。网络设备b从本地的ribin中删除edca,相应的,继续从本地的rib-l中删除edca。由于本地的ribin中还保存有ed,网络设备b选择该ed,并将ed保存在本地的rib-l中,并将ed中的nlri-e等保存在lsdb中。网络设备b将ed保存在本地的rib-l之后,可以向网络设备a通告选择的ed。基于与s1.2中描述的类似原因,本技术实施例将网络设备b向网络设备a通告的ed称作edb。
303.在t1+t+3δ时刻,假设网络设备a从网络设备b接收到edb。网络设备a将edb保存在本地的ribin中,选择该edb,并将edb保存在本地的rib-l中,继而将edb中的nlri-e等保存在lsdb中。网络设备a将edb保存在本地的rib-l之后,可以向网络设备c通告edb。基于与s1.2中描述的类似原因,本技术实施例将网络设备a向网络设备c通告的edb称作edba。
304.在t1+t+4δ时刻,假设网络设备c从网络设备a接收到edba。网络设备c将edba保存在本地的ribin中,选择该edba,并将edba替换ed保存在本地的rib-l中,继而将edba中的nlri-e等保存在lsdb中。网络设备c将edba保存在本地的rib-l之后,可以向网络设备f通告edba。基于与s1.2中描述的类似原因,本技术实施例将网络设备c向网络设备f通告的edba称作edbac。
305.在t1+t+5δ时刻,假设网络设备f从网络设备c接收到edbac。网络设备a将edbac保存在本地的ribin中,选择该edbac,并将edbac保存在本地的rib-l中,继而将edbac中的nlri-e等保存在lsdb中。
306.网络设备b、网络设备a、网络设备c和网络设备f保存的nlri-e在时刻t1+t+5δ收敛。在收敛过程中,若图10对应的实施例中的第一时长大于t+4δ,那么网络设备c与网络设备e之间始终存在可达链路,以计算至网络设备e的报文转发路径。
307.上面介绍了本技术实施例路由信息的处理方法,下面介绍本技术网络设备的结构。该网络设备可以为图5所示实施例方法中的第一网络设备或第二网络设备,或者为图6所示实施例方法中的网络设备c或网络设备a,或者为图8所示实施例方法中的第一网络设备或第三网络设备,或者为图9所示实施例方法中的第一网络设备或第三网络设备,或者为图10所示实施例方法中的第一网络设备或第三网络设备,或者为图11所示实施例方法中的网络设备c或网络设备a。或者,网络设备也可以是能够与相应设备匹配使用的装置。该网络设备可以安装在相应设备中,示例性的,该网络设备可以为芯片系统。本技术实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
308.图12是本技术实施例网络设备的一个结构示意图。参阅图12,该网络设备12包括处理器1201、存储器1202。
309.处理器1201可以是一个或多个cpu,该cpu可以是单核cpu,也可以是多核cpu。
310.存储器1202包括但不限于是随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom或者快闪存储器)、快闪存储器、或光存储器等。存储器1202中保存有操作系统和程序指令的代码。
311.可选的,该网络设备12还包括通信接口1203。通信接口1203可以是有线接口,例如光纤分布式数据接口(fiber distributed data interface,fddi)、千兆以太网(gigabit ethernet,ge)接口;通信接口1203也可以是无线接口。通信接口1203用于接收来自于bgp邻居发送的路由信息。
312.可选地,网络设备12还包括总线1204,上述处理器1201、存储器1202通常通过总线1204相互连接,也可以采用其他方式相互连接。
313.可选地,处理器1201通过读取存储器1202中保存的程序指令实现本技术实施例路由信息的处理方法,或者,处理器1201也可以通过内部存储的程序指令实现本技术实施例路由信息的处理方法。例如,处理器1201根据存储器1202保存的指令来执行图5所示实施例方法中第一网络设备或第二网络设备执行的步骤,或者,执行图6所示实施例方法中网络设备c或网络设备a执行的步骤,或者,执行图8所示实施例方法中第一网络设备或第三网络设备执行的步骤,或者,执行图8所示方法实施例中第一网络设备或第三网络设备执行的步骤,或者,执行图9所示实施例方法中第一网络设备或第三网络设备执行的步骤,或者执行图10所示实施例方法中第一网络设备或第三网络设备执行的步骤,或者,执行图11所示实施例方法中网络设备c或网络设备a执行的步骤。处理器1201实现上述步骤的更多细节请参阅前面各个实施例方法中的描述,在这里不再重复。
314.本技术实施例还提供一种网络设备。图13为本技术实施例网络设备的结构示意图。参阅图13,该网络设备13包括发送模块1301。示例性的,该发送模块1301用于执行步骤s501或步骤509。该网络设备13还可以包括接收模块1302,示例性的,该接收模块1302用于执行步骤s506或步骤s504。该网络设备13还可以包括故障感知模块1303,示例性的,该故障感知模块可以用于执行步骤s508。该网络设备13还可以包括保存模块1304,示例性的,该保存模块1304可以用于执行步骤s505或步骤s510。保存模块1304可以与网络设备13中的一个或多个模块连接,为了图13的简洁,图13所示的网络设备13中未示出保存模块1304与其他模块之间的连线。该网络设备还可以包括选择模块1305,示例性的,该选择模块1305可以用于执行步骤s507。具体执行过程请参考上述方法实施例中相应步骤的详细描述,这里不再赘述。
315.本技术实施例还提供一种网络设备。图14为本技术实施例网络设备的结构示意图。参阅图14,该网络设备14包括接收模块1401和选择模块1402。示例性的,该接收模块1401用于执行步骤s501或步骤s502或步骤s509。示例性的,该选择模块1402用于执行步骤s503。该网络设备14还可以包括发送模块1403,示例性的,该发送模块1403用于执行步骤s506。具体执行过程请参考上述方法实施例中相应步骤的详细描述,这里不再赘述。
316.本技术实施例还提供一种网络设备。图15为本技术实施例网络设备的结构示意图。参阅图15,该网络设备15包括接收模块1501、故障感知模块1502、发送模块1503和保存模块1504。示例性的,该接收模块1501可以用于执行步骤s801或步骤s806或步骤s901或步骤s909或步骤s1001或步骤s1010。示例性的,该故障感知模块1502用于执行步骤s802、步骤
s903或步骤s1003。示例性的,该发送模块1503用于执行步骤s803、步骤s902、步骤s905、步骤s1002或步骤s1005。示例性的,该保存模块1504用于执行步骤s804、步骤s808、步骤s904、步骤s906、步骤s911、步骤s912、步骤s913、步骤s1004、步骤s1006、或步骤s1012。保存模块1504可以与网络设备15中的一个或多个模块连接,为了图15的简洁,图15所示的网络设备15中未示出保存模块1504与其他模块之间的连线。在一种可能的实现方式中,网络设备15还包括选择模块1505,示例性的,选择模块1505用于执行步骤s807、步骤s910、或步骤s1011。具体执行过程请参考上述方法实施例中相应步骤的详细描述,这里不再赘述。
317.本技术实施例还提供一种网络设备。图16为本技术实施例网络设备的结构示意图。参阅图16,该网络设备16包括接收模块1601和选择模块1602。示例性的,该接收模块1601可以用于执行步骤s803或步骤s803或步骤s902或步骤s905或步骤s907或步骤s1002或步骤s1005或步骤s1008。示例性的,该选择模块1602用于执行步骤s805或步骤s908或步骤s1009。在一种可能的实现方式中,该网络设备16还可以包括发送模块1603。示例性的,该发送模块1603用于执行步骤s806、步骤s909或步骤s1010。在一种可能的实现方式中,该网络设备16还可以包括删除模块1604。示例性的,该删除模块1604用于执行步骤s1007。具体执行过程请参考上述方法实施例中相应步骤的详细描述,这里不再赘述。
318.本技术实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
319.图13至图16所描述的装置实施例仅仅是示意性的。图13至图16中的模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以图13所示的网络设备13为例,采用软件实现时,图13所示网络设备中的发送模块1301可以由处理器1201读取存储器1202中存储的程序指令后,生成的一个或多个软件功能模块来实现。本技术实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。图13至图16中的模块也可以由网络设备中的不同硬件分别实现,例如,以图14所示网络设备14为例,接收模块1401由图12中的通信接口1203实现,选择模块1402由图12中处理器1201共同实现。显然上述功能模块也可以采用软件硬件相结合的方式来实现,例如接收模块1401由通信接口1203实现,而选择模块1402是处理器1201读取存储器1202中存储的程序指令后生成的软件功能模块。
320.图13至图16所示的网络设备能够实现的技术效果、各个模块实现上述功能的更多细节请参阅前面各个方法实施例中的相应描述,在这里不再赘述。
321.参考图17,本技术实施例还提供一种芯片17,该芯片17包括处理器1701和通信接口1702,通信接口1702和处理器1701耦合,处理器1701用于运行计算机程序或指令,从而实现本技术上述任意一个方法实施例提供的方法。
322.一个示例中,该通信接口1702(或称接口电路)例如可以是该芯片17上的输入/输出接口、管脚或电路等。该处理器1701可执行存储器存储的计算机指令,以使该芯片17执行上述任一方法实施例。可选地,该存储器可以为该芯片17内的存储单元,如寄存器、缓存等,或者,该存储器可以是计算机设备内的位于所述芯片17外部的存储器,如只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。可选的,该处理器1701,可以是一个通用中央处理器(cpu),微处理器,特定应用集成电路(application-specific integrated circuit,
asic),或一个或多个用于控制上述任一方法实施例的程序执行的集成电路。
323.上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
324.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机执行指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
325.本技术实施例还提供一种网络(或称通信系统),该网络可以包括第一网络设备和第二网络设备,该第一网络设备和第二网络设备分别用于执行图5所示实施例方法中相应网络设备所执行的步骤。
326.本技术实施例还提供一种网络(或称通信系统),该网络包括第一网络设备、第二网络设备和第三网络设备。其中,该第一网络设备、第二网络设备和第三网络设备用于分别执行图8或图9或图10所示实施例方法中相应网络设备所执行的步骤。
327.本技术实施例中,至少一个是指一个或多个,多个是指两个或两个以上,本技术不做限制。在本技术实施例中,“/”可以表示前后关联的对象是一种“或”的关系,例如,a/b可以表示a或b;“和/或”可以用于描述关联对象存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。为了便于描述本技术实施例的技术方案,在本技术实施例中,可以采用“第一”、“第二”等字样对功能相同或相似的技术特征进行区分。该“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。在本技术实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明,被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
328.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
329.本领域普通技术人员将会理解,当使用软件实现本技术实施例的各个方面、或各个方面的可能实现方式时,上述各个方面、或各个方面的可能实现方式可以全部或部分地以计算机程序产品的形式实现。计算机程序产品是指存储在计算机可读介质中的计算机可读指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。
330.计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可
读存储介质包括但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合。如计算机可读存储介质为随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)。
331.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本技术的这些修改和变型属于本发明权利要求的范围之内,则本发明也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1