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

拓扑信息的发布方法、网络拓扑收集方法及设备与流程

2022-05-11 11:20:04 来源:中国专利 TAG:

sid路由携带节点标识,或者新增一种用来上送设备全局信息的bgp ls路由携带节点标识,从而满足更多的应用场景。
10.在一种可能的实现方式中,所述第一bgp ls报文中的路由属性字段包括节点标识类型长度值(type length value,tlv),所述节点标识tlv的值包括所述节点标识,所述节点标识tlv的类型用于标识所述节点标识tlv携带节点标识。
11.以上提供的实现方式中,通过新增一种tlv来携带节点标识,便于控制器设备从新增的tlv中直接获得节点标识,减少网络的配置。
12.在一种可能的实现方式中,所述路由属性字段为节点属性字段或者链路属性字段。
13.在一种可能的实现方式中,所述节点标识用于标识所述第一网络设备;或者,所述节点标识用于标识第二网络设备,所述第二网络设备属于所述第一域,所述第二网络设备为所述第一域与所述第二域的边界路由设备。
14.在一种可能的实现方式中,在所述节点标识用于标识所述第二网络设备的情况下,所述第一网络设备根据所述节点标识,向控制器设备发布域内拓扑信息以及域间拓扑信息之前,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的所述节点标识。
15.在一种可能的实现方式中,所述第一网络设备接收所述第二网络设备发送的所述节点标识,包括:所述第一网络设备接收所述第二网络设备发送的内部网关协议(internal gateway protocol,igp)报文,所述igp报文包括所述节点标识;或者,所述第一网络设备接收所述第二网络设备发送的第二bgp-ls报文,所述第二bgp-ls报文包括所述节点标识。
16.在一种可能的实现方式中,所述第一网络设备根据所述节点标识,向控制器设备发布域内拓扑信息以及域间拓扑信息之前,所述方法还包括:所述第一网络设备接收第二网络设备发送的第三bgp-ls报文,所述第三bgp-ls报文包括所述域间拓扑信息。
17.在一种可能的实现方式中,所述节点标识包括以下一项或多项:bgp节点标识、igp节点标识、流量工程(traffic engineering,te)节点标识、系统id、互联网协议第四版(internet protocol version 4,ipv4)本地节点标识、互联网协议第六版(internet protocol version 6,ipv6)本地节点标识。
18.第二方面,提供了一种网络拓扑收集方法,在该方法中,控制器设备接收域内拓扑信息以及域间拓扑信息,所述域内拓扑信息以及所述域间拓扑信息均包括节点标识,所述节点标识用于标识网络设备,所述域内拓扑信息用于指示第一域内的拓扑,所述域间拓扑信息用于指示所述第一域与第二域之间的拓扑,所述第一域为所述网络设备所属的域;所述控制器设备根据所述节点标识,建立所述域内拓扑信息与所述域间拓扑信息之间的关联关系。
19.以上提供的方法中,控制器设备通过收集拓扑时,利用同一个节点标识将域内拓扑信息与域间拓扑关联起来,避免人工配置一致的节点标识带来的巨大工作量,从而降低网络配置的复杂度,因此提高了控制器设备收集拓扑的效率,便于控制器设备根据关联后的拓扑计算端到端的转发路径。
20.在一种可能的实现方式中,所述节点标识用于标识第一网络设备,所述控制器设备接收域内拓扑信息以及域间拓扑信息,包括:所述控制器设备接收所述第一网络设备发
送的所述域内拓扑信息以及所述域间拓扑信息;或者,所述控制器设备接收第二网络设备发送的所述域内拓扑信息以及所述域间拓扑信息,所述第二网络设备以及所述第一网络设备均属于第一域;或者,所述控制器设备接收所述第一网络设备发送的所述域内拓扑信息,所述控制器设备接收所述第二网络设备发送的所述域间拓扑信息;或者,所述控制器设备接收所述第一网络设备发送的所述域间拓扑信息,所述控制器设备接收所述第二网络设备发送的所述域内拓扑信息。
21.第三方面,提供了一种节点标识的发布方法,在该方法中,第二网络设备向第一网络设备发布节点标识,所述节点标识用于标识所述第二网络设备,所述节点标识用于关联域内拓扑信息与域间拓扑信息,所述域内拓扑信息用于指示第一域内的拓扑,所述域间拓扑信息用于指示第一域与第二域之间的拓扑,所述第一域为所述第二网络设备以及所述第一网络设备所属的域,所述第二网络设备为所述第一域与所述第二域的边界路由设备。
22.以上提供的方法中,边界路由设备通过将自身的节点标识通告给同一个域的网络设备,便于网络设备将边界路由设备的节点标识分别携带在域内拓扑和域间拓扑中并上送给控制器设备,因此便于控制器设备利用同一个节点标识将域内拓扑信息与域间拓扑自动地关联起来,避免人工配置一致的节点标识带来的巨大工作量,降低网络配置的复杂度,因此提高了控制器设备收集拓扑的效率。
23.在一种可能的实现方式中,所述第二网络设备向第一网络设备发布节点标识,包括:所述第二网络设备在所述第一域内泛洪igp报文,所述igp报文包括所述节点标识;或者,所述第二网络设备向所述第一网络设备发送bgp-ls报文,所述bgp-ls报文包括所述节点标识。
24.在一种可能的实现方式中,所述节点标识包括以下一项或多项:bgp节点标识、igp节点标识、te节点标识、系统id、ipv4本地节点标识、ipv6本地节点标识。
25.第四方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
26.在一些实施例中,第四方面提供的网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,第四方面提供的网络设备中的单元通过硬件或固件实现。第四方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
27.第五方面,提供了一种控制器设备,该控制器设备具有实现上述第二方面或第二方面任一种可选方式的功能。该控制器设备包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面任一种可选方式所提供的方法。
28.在一些实施例中,第五方面提供的控制器设备中的单元通过软件实现,控制器设备中的单元是程序模块。在另一些实施例中,第五方面提供的控制器设备中的单元通过硬件或固件实现。第五方面提供的控制器设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
29.第六方面,提供了一种网络设备,该网络设备具有实现上述第三方面或第三方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第三方面或第三方面任一种可选方式所提供的方法。
30.在一些实施例中,第六方面提供的网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,第六方面提供的网络设备中的单元通过硬件或固件实现。第六方面提供的网络设备的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
31.第七方面,提供了一种网络设备,该网络设备包括处理器和通信接口,该处理器用于执行指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,所述通信接口用于接收或发送报文。第七方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
32.第八方面,提供了一种控制器设备,该控制器设备包括处理器和通信接口,该处理器用于执行指令,使得该控制器设备执行上述第二方面或第二方面任一种可选方式所提供的方法,所述通信接口用于接收或发送报文。第八方面提供的控制器设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
33.第九方面,提供了一种网络设备,该网络设备包括处理器和通信接口,该处理器用于执行指令,使得该网络设备执行上述第三方面或第三方面任一种可选方式所提供的方法,所述通信接口用于接收或发送报文。第九方面提供的网络设备的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
34.第十方面,提供了一种网络设备,所述网络设备包括:主控板和接口板。进一步,所述网络设备还可以包括交换网板。所述网络设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述网络设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的单元。
35.第十一方面,提供了一种控制器设备,所述控制器设备包括:主控板和接口板。进一步,所述控制器设备还可以包括交换网板。所述控制器设备用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,所述控制器设备包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的单元。
36.第十二方面,提供了一种网络设备,所述网络设备包括:主控板和接口板。进一步,所述网络设备还可以包括交换网板。所述网络设备用于执行第三方面或第三方面的任意可能的实现方式中的方法。具体地,所述网络设备包括用于执行第三方面或第三方面的任意可能的实现方式中的方法的单元。
37.第十三方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
38.第十四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使控制器设备执行上述第二方面或第二方面任一种可选方式所提供的方法。
39.第十五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使网络设备执行上述第三方面或第三方面任一种可选方式所提供的方法。
40.第十六方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介质读取
该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
41.第十七方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。控制器设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该控制器设备执行上述第二方面或第二方面任一种可选方式所提供的方法。
42.第十八方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述第三方面或第三方面任一种可选方式所提供的方法。
43.第十九方面,提供了一种芯片,当该芯片在网络设备上运行时,使得网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
44.第二十方面,提供了一种芯片,当该芯片在控制器设备上运行时,使得控制器设备执行上述第二方面或第二方面任一种可选方式所提供的方法。
45.第二十一方面,提供了一种芯片,当该芯片在网络设备上运行时,使得网络设备执行上述第三方面或第三方面任一种可选方式所提供的方法。
46.第二十二方面,提供了一种网络系统,该网络系统包括上述第四方面、第七方面或第十方面所述的网络设备,该网络系统还包括上述第五方面、第八方面或第十一方面所述的控制器设备,该网络系统还包括上述第六方面、第九方面或第十二方面所述的网络设备。
附图说明
47.图1是本技术实施例提供的一种网络系统10的架构示意图;
48.图2是本技术实施例提供的一种拓扑信息的发布方法的流程图;
49.图3是本技术实施例提供的一种拓扑信息的发布方法的流程图;
50.图4是本技术实施例提供的一种拓扑信息的发布方法的流程图;
51.图5是本技术实施例提供的一种拓扑信息的发布方法的流程图;
52.图6是本技术实施例提供的一种拓扑信息的发布方法的流程图;
53.图7是本技术实施例提供的一种拓扑信息的发布方法的流程图;
54.图8是本技术实施例提供的一种拓扑信息的发布方法的流程图;
55.图9是本技术实施例提供的一种拓扑信息的发布方法的流程图;
56.图10是本技术实施例提供的一种拓扑信息的发布方法的流程图;
57.图11是本技术实施例提供的一种网络设备700的结构示意图;
58.图12是本技术实施例提供的一种控制器设备800的结构示意图;
59.图13是本技术实施例提供的一种网络设备900的结构示意图;
60.图14是本技术实施例提供的一种设备1000的结构示意图;
61.图15是本技术实施例提供的一种设备1100的结构示意图;
62.图16是本技术实施例提供的一种网络系统1200的结构示意图。
具体实施方式
63.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式做进一步地详细描述。
64.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第三”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一bgp-ls报文可以被称为第二bgp-ls报文,并且类似地,第二bgp-ls报文可以被称为第一bgp-ls报文。第一bgp-ls报文和第二bgp-ls报文都可以是bgp-ls报文,并且在某些情况下,可以是单独且不同的bgp-ls报文。
65.下面先对本技术实施例涉及的一些术语及特征进行解释说明。
66.(1)节点标识(identity,id)
67.节点标识用于在一个域中标识一个网络设备。节点标识包括很多种具体类型。在一个示例中,节点标识包括以下一项或多项:边界网关协议节点标识(border gateway protocol router identifier,bgp router-id)、内部网关协议节点标识(internal gateway protocol router-id,igp router-id)、流量工程节点标识(traffic engineering router-id,te router-id)、系统id(system-id)、ipv4本地节点标识(ipv4 router-id of local node)、ipv6本地节点标识(ipv6router-id of local node)。
68.(2)bgp节点标识(bgp router-id)
69.bgp router-id作为路由器上边界网关协议(border gateway protocol,bgp)协议进程与其他路由器上bgp协议进程交互的唯一标识。bgp router-id在一个自治系统(autonomous system,as)范围内唯一。在一个示例中,bgp router-id采用ipv4地址形式表示。例如,bgp router-id为网络设备中环回(loopback)口的互联网协议(internet protocol,ip)地址或者物理口的ip地址。
70.(3)系统id(system id)
71.系统id用来在区域内唯一标识一个设备(如主机或路由器)。系统id的长度例如为48比特(6字节)。
72.(4)te节点标识(te router-id)
73.te节点标识为一种节点id。te router-id的形式为ip地址。te router-id的定义详见请求评论(request for comments,rfc,一系列以编号排定的文件)中rfc5305 4.3节。
74.(5)igp
75.igp是指在一个as内部运行的路由协议。igp协议例如为开放式最短路径优先(open shortest path first,ospf)、中间系统到中间系统(intermediate system-to-intermediate system,is-is)等。
76.(6)bgp
77.bgp是一种用于as之间的动态路由协议。bgp主要用于交换as之间的可达路由信息,构建as域间的传播路径,防止路由环路的产生,并在as级别应用一些路由策略。
78.(7)拓扑(topology,topo)信息
79.拓扑信息是指包含网络拓扑的信息。拓扑信息包括而不限于节点信息以及链路信
息。节点信息为网络中包含的设备(节点)的信息。链路信息为网络中各个设备之间的链路的信息。在一个示例中,拓扑信息中的节点信息包含至少一个本地节点描述信息(local node descriptors)和至少一个远端节点描述信息(remote node descriptors)。在一个示例中,拓扑信息包括协议id(protocol-id)。协议id指示收集拓扑信息所基于的通信协议。在一个示例中,拓扑信息包括as号(as-number),as号用于标识拓扑信息对应的as。本实施例中的拓扑信息分为域内拓扑信息和域间拓扑信息。
80.(8)域内拓扑信息
81.域内拓扑信息指示一个域(如igp域)内的拓扑关系。域内拓扑信息可通过is-is协议、ospf协议或其他igp协议收集。域内拓扑信息中的协议id例如为is-is协议的id、ospf协议的id或其他igp协议的id。在一个示例中,域内拓扑信息中本地节点描述信息中的as号与远端节点描述信息中的as号相同。具体如何收集域内拓扑信息、如何上报域内拓扑信息可参考rfc7752协议。
82.(9)域间拓扑信息
83.域间拓扑信息指示不同域之间的拓扑关系。域间拓扑信息可通过bgp协议收集。域间拓扑信息中的协议id例如为bgp协议的id。在一个示例中,域间拓扑信息中本地节点描述信息中的as号与远端节点描述信息中的as号不同。具体如何收集域间拓扑信息、如何上报域间拓扑信息可参考draft-ietf-idr-bgpls-segment-routing-epe协议。
84.(10)域内拓扑信息与域间拓扑信息之间的关系
85.域内拓扑信息包括至少一个节点标识。域间拓扑信息包括至少一个节点标识。并且,域内拓扑信息以及域间拓扑信息包括至少一个相同的节点标识。由于域内拓扑信息和域间拓扑信息包含同一个节点标识,控制器设备能够利用节点标识,将域内拓扑信息与域间拓扑信息自动地关联起来,从而进行域内拓扑和域间拓扑的拼接。结合上面描述的节点标识的各种类型,域内拓扑信息与域间拓扑信息之间的关系涉及多种场景,下面以网络中存在网络设备a为例进行介绍。
86.在一个示例中,域内拓扑信息使用网络设备a的bgp router-id作为网络设备a的节点标识,域间拓扑信息也使用网络设备a的bgp router-id作为网络设备a的节点标识。由于域内拓扑信息和域间拓扑信息包括同一个bgp router-id,控制器能够利用bgp router-id将域内拓扑信息与域间拓扑信息自动地关联起来。
87.在另一个示例中,域内拓扑信息使用网络设备a的igp router-id作为网络设备a的节点标识,域间拓扑信息也使用网络设备a的igp router-id作为网络设备a的节点标识。由于域内拓扑信息和域间拓扑信息包括同一个igp router-id,控制器能够利用igp router-id将域内拓扑信息与域间拓扑信息自动地关联起来。
88.在另一个示例中,域内拓扑信息使用网络设备a的system-id作为网络设备a的节点标识,域间拓扑信息也使用网络设备a的system-id作为网络设备a的节点标识。由于域内拓扑信息和域间拓扑信息包括同一个system-id,控制器能够利用system-id将域内拓扑信息与域间拓扑信息自动地关联起来。
89.(11)bgp ls
90.bgp ls为网络拓扑收集的一种方式。bgp-ls用于汇总igp协议收集的拓扑信息上送给上层控制器,使得拓扑收集更加简单高效。
91.(12)bgp路由
92.bgp路由包含两个部分:路由前缀和路由属性。每条bgp路由包含一个路由属性。一个路由属性内部包含一个或多个子属性。
93.(13)bgp路由属性
94.bgp路由属性是bgp路由信息所携带的一组参数。bgp路由属性对路由进行了进一步地描述,表达了每条路由的各种特性,使得接收端能够根据路由属性值对路由进行过滤和选择。路由属性是bgp协议区分与其它协议的重要特征。bgp通过比较路由携带的属性,来完成路由选择、环路避免等工作。
95.(14)bgp可选非传递(optional non-transitive)路由属性
96.可选非传递路由属性是一种类型的bgp路由属性。如果bgp路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。
97.(15)bgp ls路由
98.bgp ls路由为一种携带网络拓扑信息的介质。bgp-ls路由包括六种类型,分别用来携带节点、链路、路由前缀信息、ipv6路由前缀信息、srv6 sid路由信息和te策略(te policy)路由信息。这几种路由相互配合,共同完成拓扑信息的传输。
99.(16)bgp ls节点路由(node路由)
100.bgp ls节点路由用于记录拓扑的节点信息。
101.(17)bgp ls网络层可达信息(network layer reachability information,nlri)
102.bgp-ls在bgp的基础上,引入了一系列新的nlri来携带链路、节点和ipv4/ipv6前缀相关信息,这种新的nlri叫做链路状态nlri(link-state nlri)。链路状态nlri通常携带在bgp-ls更新(bgp-ls update)报文的属性(attribute)中。
103.bgp-ls主要定义了如下几种链路状态nlri:node nlri(节点nlri);链路nlri(link nlri)、ipv4拓扑前缀nlri(ipv4 topology prefix nlri)、ipv6拓扑前缀nlri(ipv6 topology prefix nlri)。与此同时,针对上述nlri,bgp-ls还定义了相应的属性,用于携带链路、节点和ipv4/ipv6前缀相关的参数和属性。bgp-ls属性是以tlv的形式和对应的nlri携带在bgp-ls消息中。这些属性都属于bgp可选非传递属性,主要包括节点属性(node attribute)、链路属性(link attribute)和前缀属性(prefix attribute)。
104.(18)节点nlri(node nlri)
105.node nlri为本地节点描述符,包含一系列的节点描述符(结构为子tlv)。
106.(19)bgp ls属性
107.bgp-ls属性是以tlv的形式和对应的nlri携带在bgp-ls报文中。bgp-ls属性属于bgp可选非传递属性,主要包括节点属性(node attribute)、链路属性(link attribute)和前缀属性(prefix attribute)。
108.ip网络在转发流量时,当流量转发到一台网络设备时,通过在该网络设备上查询ip路由表才能知道流量下一跳是哪台网络设备。用户无法在头节点明确地知道流量具体的路径。因此,在用户规划网络时,通常需要在网络各个网络设备增加配置来引导流量。段路由(segment routing,sr)等流量工程提出之后,赋予用户直接定制流量完整转发路径的能力。具备这种能力的前提是能够获取网络拓扑信息。
109.拓扑信息可以分为域内拓扑和域间拓扑。控制器设备收集拓扑信息之后,控制器
设备根据拓扑信息计算端到端的流量转发路径,如sr策略(sr policy)等,用于指导流量按照指定路径转发。因此,控制器设备在收集到域内拓扑和域间拓扑时,需要能够将两种拓扑正确的拼接到一起。
110.目前,网络设备通过bgp-ls上报域内拓扑信息(igp拓扑信息)时,会使用ipv4本地节点标识作为节点标识;网络设备通过bgp-ls上报域间拓扑信息(bgp拓扑信息)时,使用bgp router-id作为节点标识。由于这两种节点标识的含义均不一致,且bgp-ls报文中无统一字段作为关联字段,导致控制器设备不能直接使用bgp router-id和ipv4本地节点标识进行域内拓扑和域间拓扑的拼接。
111.相关技术提供的一种方案中,控制器设备通过读取配置或者通过网络配置(network configuration,netconf)协议/yang(一种数据建模语言)接口查询转发设备信息,然后生成获取igp信息和bgp信息的映射关系。然而,这种方式面临诸多缺陷。第一,依赖必须配置bgp router-id,而非自动选择。第二,netconf/yang获取存在性能问题,当设备数量较多时,存在性能瓶颈。第三,控制器设备需要定期查询设备信息,因为当设备信息发生变化时,无主动通知方法。
112.相关技术提供的另一种方案中,具体地,将bgp router-id和域内拓扑信息中路由属性中ipv4本地节点标识(ipv4 router-id,tlv 1028)配置成一致,由于bgp信息被配置成和igp信息一样,从而实现域间拓扑和域内拓扑的拼接。然而,这种方式同样面临诸多缺陷。第一,依赖必须配置bgp router-id,而非自动选择。第二,设备部署时,必须提前规划各个设备的bgp router-id和ipv4本地节点标识。无法实现自动部署,且存在很大局限性。
113.总结来说,目前还没有能够动态获取bgp信息(bgp router-id)和ipv4本地节点标识关联关系的方法,也就无法实现bgp域间拓扑和igp域内拓扑的自动拼接。
114.而本技术的一些实施例中,通过扩展了bgp-ls上报内容信息,实现控制器设备动态获取网络设备的节点标识。这样,当控制器设备在计算端到端转发路径时,能够利用节点标识实现bgp域间拓扑和igp域内拓扑自动拼接。通过实现bgp域间拓扑和igp域内拓扑自动拼接,能够在诸多应用场景下获得收益。例如,当用户部署sr(v6)策略进行流量调优时,控制器设备通过拼接后的网络拓扑便于计算sr)策略路径。又如,控制器设备能够将端到端拓扑展示给用户。
115.下面介绍本技术实施例提供的系统运行环境。
116.图1是本技术实施例提供的网络系统10的架构示意图。网络系统10是对包含控制器设备以及网络设备的组网架构的举例说明。网络系统10支持控制器设备实现域内拓扑收集以及域间拓扑收集的功能。
117.具体而言,网络系统10包含多个网络设备以及控制器设备11。
118.网络设备用于收集拓扑信息并将拓扑信息上送至控制器设备11。网络设备例如为交换机或路由器。网络设备包括igp协议模块、bgp-ls协议模块等至少一个协议模块。igp协议模块用于支持网络设备基于igp协议通信,bgp-ls协议模块用于支持网络设备基于bgp-ls协议通信。
119.网络设备具体分为三类,分别是自治系统边界路由器(autonomous system boundary router,asbr)设备、网络侧边缘(provider edge,pe)设备以及客户侧边缘(customer edge,ce)设备。asbr设备包括asbr1、asbr2、asbr3以及asbr4。asbr1、asbr2、
asbr3以及asbr4均是as1与as2的边界路由设备。pe设备包括pe1、pe2、pe3以及pe4。ce设备包括ce1以及ce2。pe1以及pe2均与ce1相连。pe3以及pe4均与ce2相连。
120.其中,pe3、pe4、asbr3以及asbr4属于as1。pe3、pe4、asbr3以及asbr4之间存在as1的域内拓扑。pe1、pe2、asbr1以及asbr2属于as2。pe1、pe2、asbr1以及asbr2之间存在as2的域内拓扑。asbr3、asbr4、asbr1、asbr2之间还存在as1和as2的域间拓扑。
121.下面对网络系统10中不同设备之间的关系进行具体介绍。
122.pe3、pe4、asbr3以及asbr4基于igp协议互连。pe3、pe4、asbr3以及asbr4之间建立igp邻居关系。pe3、pe4、asbr3以及asbr4之间能够基于igp邻居关系交换路由信息,路由信息指示as1的域内拓扑。
123.pe1、pe2、asbr1以及asbr2基于igp协议互连。pe1、pe2、asbr1以及asbr2之间建立igp邻居。pe1、pe2、asbr1以及asbr2之间能够基于igp邻居关系交换路由信息,路由信息指示as2的域内拓扑。
124.在一个示例中,asbr3以及asbr1分别和控制器设备建立bgp-ls邻居。asbr3或者asbr1能够基于bgp-ls邻居关系向控制器设备发送bgp-ls报文(如bgp-ls更新消息)。其中,asbr3发送的bgp-ls报文携带as1的域内拓扑以及as1与as2的域间拓扑,asbr3通过向控制器设备发送bgp-ls报文,从而将as1的域内拓扑以及as1与as2的域间拓扑上报给控制器设备。asbr1发送的bgp-ls报文携带as2的域内拓扑以及as2与as1的域间拓扑,asbr1通过向控制器设备发送bgp-ls报文,从而将as2的域内拓扑以及as2与as1的域间拓扑上报给控制器设备。
125.在另一个示例中,pe3以及pe1分别与控制器设备建立了bgp-ls邻居。pe3或者pe1能够基于bgp-ls邻居关系向控制器设备上报bgp-ls报文(如bgp-ls更新消息)。其中,pe3发送的bgp-ls报文携带as1的域内拓扑以及as1与as2的域间拓扑,pe3通过向控制器设备发送bgp-ls报文,从而将as1的域内拓扑以及as1与as2的域间拓扑上报给控制器设备。pe1发送的bgp-ls报文携带as2的域内拓扑以及as2与as1的域间拓扑,pe1通过向控制器设备发送bgp-ls报文,从而将as2的域内拓扑以及as2与as1的域间拓扑上报给控制器设备。
126.pe3和控制器设备建立bgp sr策略邻居(如bgp srv6策略邻居)。
127.控制器设备11用于从网络设备接收拓扑信息,根据拓扑信息进行路径规划以及路径计算。控制器设备11例如为主机、服务器、交换机或路由器等。控制器设备11计算的路径包括域内路径以及域间路径中的至少一项。域内路径例如为as1内的路径或者as2内的路径。例如,域内路径为pe3与asbr3之间的igp路径。域间路径例如为as1与as2之间的路径。例如,域间路径为asbr3、asbr2之间的epe路径。
128.在一个示例中,控制器设备11通过与asbr设备(如asbr3以及asbr1)建立bgp-ls邻居关系,从而基于bgp-ls邻居关系收集asbr设备(如asbr3以及asbr1)上送的拓扑信息。
129.在另一个示例中,控制器设备11通过与pe设备(如pe3以及pe1)建立bgp-ls邻居关系,从而基于bgp-ls邻居关系收集pe设备(如pe3以及pe1)上送的拓扑信息。
130.在附图1所示的网络系统10中,控制器设备11通过bgp-ls邻居收集拓扑信息时,不仅会收集到域内拓扑(如as1的域内拓扑或者as2的域内拓扑),也会收集到域间拓扑(如as1与as2的域间拓扑)。在这一场景下,通过实施本技术实施例提供的技术方案,控制器设备11能够将域内拓扑与域间拓扑进行关联。
131.以上对系统运行环境进行了举例说明,下面对本技术实施例提供的方法流程进行介绍。
132.附图2是本技术实施例提供的一种拓扑信息的发布方法200的流程图。方法200以上送拓扑信息的设备为第一网络设备为例进行说明,方法200的交互主体包括第一网络设备以及控制器设备。
133.第一网络设备例如为交换机、路由器等。第一网络设备例如为asbr设备、pe设备、路由反射器(router reflector,rr)设备等。控制器设备例如为主机、服务器或个人计算机等。
134.为简明起见,下文多处将第一网络设备所属的域称为第一域,将第一网络设备所属的域之外的其他域称为第二域。例如,第一网络设备为附图1所示的系统运行环境中的pe3或者asbr3,第一域为as1,第二域为as2。
135.可选地,在第一网络设备不是asbr设备的情况下,方法200的交互主体还包括第二网络设备,该第二网络设备与第一网络设备属于同一个域,第二网络设备为第一网络设备所属的域中的边界路由设备。例如,第一网络设备是附图1所示的系统运行环境中的pe3,第二网络设备是asbr3。
136.示例性地,方法200包括以下s210至s240。
137.s210、第一网络设备获取节点标识。
138.第一网络设备获取的节点标识(拓扑信息包含的节点标识)与第一网络设备(上送拓扑信息的设备)之间的关系包括多种情况,下面通过两种情况举例说明。其中,以下情况一支持第一网络设备是asbr设备的场景。以下情况二支持第一网络设备不是asbr设备的场景。例如,当控制器设备与asbr设备建立bgp-ls邻居时,触发以下情况一;当控制器设备与非asbr设备建立bgp-ls邻居时,触发以下情况二。
139.情况一、节点标识为上送拓扑信息的设备的节点标识。
140.在情况一下,网络设备将自身的节点标识放在拓扑信息中并发给控制器设备。拓扑信息中的节点标识用于标识上送拓扑信息的设备。结合第一网络设备上送拓扑信息的场景,步骤s210例如为,第一网络设备获取第一网络设备的节点标识,该节点标识用于标识第一网络设备。
141.情况二、拓扑信息包含的节点标识为与上送拓扑信息的设备属于同一个域的其他设备的节点标识。
142.在情况二下,网络设备将自身所属的域中其他设备的节点标识放在拓扑信息中并发给控制器设备。在一个示例中,网络设备获得域中边界路由设备的节点标识,将边界路由设备的节点标识放在拓扑信息并发给控制器设备。结合第一网络设备上送拓扑信息的场景,步骤s210例如为,第一网络设备获取第二网络设备的节点标识,该节点标识用于标识第二网络设备。其中,第二网络设备属于第一域,第二网络设备为第一域与第二域的边界路由设备。
143.结合上面描述的情况一,s210中的节点标识包括以下一项或多项:第一网络设备的bgp节点标识、第一网络设备的te节点标识、第一网络设备的系统id、第一网络设备的ipv4本地节点标识、第一网络设备的ipv6本地节点标识。
144.结合上面描述的情况二,s210中的节点标识包括以下一项或多项:第二网络设备
的bgp节点标识、第二网络设备的te节点标识、第二网络设备的系统id、第二网络设备的ipv4本地节点标识、第二网络设备的ipv6本地节点标识。
145.s220、第一网络设备根据节点标识,向控制器设备发布域内拓扑信息以及域间拓扑信息。
146.结合第一网络设备属于第一域的场景,第一网络设备发布的域内拓扑信息用于指示第一域内的拓扑。第一网络设备发布的域间拓扑信息用于指示第一域与第二域之间的拓扑。结合上面描述的情况一,域内拓扑信息以及域间拓扑信息均包括第一网络设备的节点标识。结合上面描述的情况二,域内拓扑信息以及域间拓扑信息均包括第二网络设备的节点标识。
147.在一个示例中,第一网络设备基于bgp ls协议上送拓扑信息。具体而言,第一网络设备生成第一bgp ls报文;第一网络设备向控制器设备发送第一bgp ls报文。其中,第一bgp ls报文包括拓扑信息,且,第一bgp ls报文中的拓扑信息包含以上介绍的节点标识。在一个示例中,第一bgp ls报文为bgp-ls update报文。在一个示例中,第一网络设备将拓扑信息转换为bgp-ls路由,从而生成第一bgp ls报文。
148.第一bgp ls报文包括域内拓扑信息或者域间拓扑信息中的至少一项。换句话说,第一bgp ls报文的内容可以是域内拓扑信息,也可以是域间拓扑信息,或者既包含域内拓扑信息又包含域间拓扑信息。以下通过情况a和情况b,对第一bgp ls报文中拓扑信息涉及的可能情况具体说明。
149.情况a、第一网络设备将域内拓扑信息和域间拓扑信息分别封装到不同的bgp ls报文中。
150.具体而言,第一网络设备通过多个bgp ls报文分别向控制器设备上送域内拓扑信息以及域间拓扑信息。采用这种方式时,第一bgp ls报文包含以下情况a-1和情况a-2。
151.情况a-1、第一bgp ls报文包括域内拓扑信息而不包括域间拓扑信息。
152.具体地,第一网络设备根据包含节点标识的域内拓扑信息,生成第一bgp ls报文;此外,第一网络设备还根据包含该节点标识的域间拓扑信息,生成第四bgp ls报文。第一bgp ls报文包含域内拓扑信息,第四bgp ls报文包含域间拓扑信息。第一bgp ls报文中的域内拓扑信息与第四bgp ls报文中的域间拓扑信息包括同一个节点标识。
153.情况a-2、第一bgp ls报文包括域间拓扑信息而不包括域内拓扑信息。
154.具体地,第一网络设备根据包含节点标识的域间拓扑信息,生成第一bgp ls报文;此外,第一网络设备还根据包含该节点标识的域内拓扑信息,生成第四bgp ls报文。第一bgp ls报文包含域间拓扑信息,第四bgp ls报文包含域内拓扑信息。第一bgp ls报文中的域间拓扑信息与第四bgp ls报文中的域内拓扑信息包括同一个节点标识。
155.本实施例对以上介绍的情况a中上送域内拓扑信息以及域间拓扑信息的时序不做限定。在一个示例中,第一网络设备先上送域内拓扑信息,后上送域间拓扑信息。具体地,第一网络设备先向控制器设备发送包含域内拓扑信息的bgp ls报文,后向控制器设备发送包含域间拓扑信息的bgp ls报文。在另一个示例中,第一网络设备先上送域间拓扑信息,后上送域内拓扑信息。具体地,第一网络设备先向控制器设备发送包含域间拓扑信息的bgp ls报文,后向控制器设备发送包含域内拓扑信息的bgp ls报文。
156.情况b、第一网络设备将域内拓扑信息和域间拓扑信息封装到同一个bgp ls报文
中。
157.具体地,第一网络设备根据包含同一个节点标识的域内拓扑信息以及域间拓扑信息,生成第一bgp ls报文。第一bgp ls报文包括域内拓扑信息且包括域间拓扑信息。例如,如果域内拓扑信息与域间拓扑信息对应同一个路由属性,且域内拓扑信息与域间拓扑信息对应不同的路由前缀,第一网络设备将域内拓扑信息和域间拓扑信息打包在同一个bgp-ls update报文(第一bgp ls报文)。
158.如前文的术语介绍部分中的(15),bgp ls中涉及很多种路由类型。第一网络设备利用哪种类型的bgp ls路由携带节点标识包括多种具体实现方式。下面通过路由类型一至路由类型四对携带节点标识的路由类型举例说明。
159.路由类型一、携带节点标识的路由类型为bgp-ls节点路由。
160.第一网络设备将节点标识封装至bgp-ls节点路由,从而生成第一bgp ls报文。该第一bgp ls报文包括bgp-ls节点路由,bgp-ls节点路由包括节点标识。
161.路由类型二、携带节点标识的路由类型为新增的bgp-ls路由类型。
162.本实施例新增了一种bgp-ls路由类型,这种新增的bgp-ls路由类型用来上报设备全局信息。
163.设备全局信息包括一种或多种节点标识。例如,设备全局信息包括bgp节点标识、te节点标识、系统id、ipv4本地节点标识、ipv6本地节点标识中的至少两项。可选地,设备全局信息还包括节点标识之外的其他设备信息。
164.为了方便描述,下面将这种新增的bgp-ls路由类型称为目标路由类型。目标路由类型是指携带设备全局信息的一类bgp ls路由。第一网络设备将节点标识封装至目标bgp-ls路由,从而生成第一bgp ls报文。该第一bgp ls报文包括目标bgp-ls路由,目标路由类型的bgp ls路由包含路由前缀和路由属性。目标路由类型的bgp ls路由中的路由属性包括设备全局信息。目标bgp-ls路由的整体报文格式可参考以下表4相关的介绍。
165.例如,目标路由类型称为物理节点(physical node)路由。physical node路由包括物理节点nlri(physical node nlri)字段以及物理节点属性(physical node attribute)字段。physical node nlri字段用于携带路由前缀。physical node nlri字段包括nlri类型(nlri type)值。physical node nlri字段中的nlri type值与已有的bgp-ls路由(bgp-ls节点路由、bgp-ls链路路由等)中的nlri type值不同。physical node nlri字段中的nlri type值用于标识bgp ls路由的类型为physical node路由。physical node attribute字段用于携带路由属性。physical node attribute字段包括设备全局信息。
166.通过新增一种用来上报设备全局信息的bgp-ls路由类型,在纯ipv6网络中上报拓扑、bgp sr网络中上报拓扑、上报静态路由链路信息、上报直连链路信息等各种场景下,能够利用这种新增的bgp-ls路由类型携带的节点标识进行拓扑关联,从而起到数据源间数据相互连接的功能。例如,当通过bgp-ls上报bgp sr的拓扑时,可以利用新增的路由类型携带bgp router-id。当通过bgp-ls上报静态路由链路信息,可以利用新增的路由类型携带system-id。由于通过新增路由类型将bgp router-id和system-id上报给控制器设备,控制器设备通过bgp router-id和system-id能够将bgp sr网络的拓扑信息以及静态路由链路信息进行关联。
167.路由类型三、携带节点标识的路由类型为bgp-ls链路路由。
168.例如,第一网络设备将节点标识封装至bgp-ls链路路由,从而生成第一bgp ls报文。该第一bgp ls报文包括bgp-ls链路路由,bgp-ls链路路由包括节点标识。
169.路由类型四、携带节点标识的路由类型为bgp-ls srv6 sid路由。
170.例如,第一网络设备将节点标识封装至bgp-ls srv6 sid路由,从而生成第一bgp ls报文。该第一bgp ls报文包括bgp-ls srv6 sid路由,bgp-ls srv6 sid路由包括节点标识。
171.路由类型三以及路由类型四描述的方式有助于支持对等体出口流量工程(egress peer engineering,epe)场景。具体地,在epe场景下,第一网络设备需要将对等节点(peer-node)信息和对等邻接(peer-adjacency,peer-adj)信息通告给控制器设备。第一网络设备在通告peer-node信息时,可以将节点标识携带在bgp-ls链路路由或者bgp-ls srv6 sid路由中。第一网络设备在通告peer-adj信息时,可以将节点标识携带在bgp-ls链路路由中。
172.以上通过路由类型一至路由类型四,介绍了携带节点标识的几种可能的bgp ls路由类型。如何在上面介绍的几种bgp ls路由中携带节点标识包括多种方式。在一个示例中,通过路由属性字段中的tlv携带节点标识。具体地,第一bgp ls报文中的路由属性字段包括节点标识tlv。
173.节点标识tlv是指携带以上介绍的任一种节点标识的tlv。节点标识tlv包括类型字段、长度字段和值字段。节点标识tlv中的类型字段包括节点标识tlv的类型。节点标识tlv的类型用于标识节点标识tlv携带节点标识。节点标识tlv中的长度字段包括节点标识的长度。节点标识tlv中的值字段包括节点标识。在一个示例中,节点标识tlv为一种子tlv(sub tlv)。子tlv是指一个tlv内包括的另一个tlv。
174.本实施例对节点标识tlv携带在哪种路由属性字段不做限定。在一个示例中,节点标识tlv携带在第一bgp ls报文中的节点属性(node attribute)字段。在另一个示例中,节点标识tlv携带在第一bgp ls报文中的链路属性字段。
175.如何实现节点标识tlv包括多种方式,下面通过实现方式i和实现方式ii举例说明。
176.实现方式i、新增一种类型的tlv作为节点标识tlv。
177.具体地,在bgp ls的路由属性中新增一种用于携带节点标识的tlv。
178.例如,在节点标识为bgp router-id的情况下,在bgp ls的路由属性中新增一种类型的tlv携带bgp router-id。具体地,节点标识tlv为bgp节点标识tlv。bgp节点标识tlv的类型用于标识tlv携带bgp router-id。bgp节点标识tlv的值包括bgp router-id。例如,bgp节点标识tlv的格式如下表1所示。
179.表1
[0180][0181]
表1中子tlv类型(sub tlv type)表示bgp节点标识tlv的类型字段。sub tlv type字段的值表示tlv为一种携带bgp router-id的tlv。表1中的长度(length)表示bgp节点标识tlv的长度字段。表1以长度字段的值为4为例进行说明。
[0182]
bgp节点标识tlv和以上描述的各种路由类型可以采用任意方式结合。下面对一些
结合方式具体介绍。
[0183]
结合上面描述的路由类型一,使用bgp-ls节点路由携带bgp节点标识tlv。该第一bgp ls报文包括bgp-ls节点路由,bgp-ls节点路由包括bgp节点标识tlv。例如,bgp-ls节点路由中的路由属性字段包括bgp节点标识tlv。采用这种方式时,bgp节点标识可以理解为bgp-ls节点路由中路由属性中的一种子属性。
[0184]
结合上面描述的路由类型二,在新增的bgp-ls路由类型携带bgp节点标识tlv。具体地,该第一bgp ls报文包括目标路由类型的bgp ls路由(physical node路由),目标路由类型的bgp ls路由包括bgp节点标识tlv。例如,目标路由类型中的路由属性字段包括bgp节点标识tlv。采用这种方式时,bgp节点标识可以理解为新增类型的bgp-ls路由中路由属性中的一种子属性。
[0185]
结合上面描述的路由类型三,使用bgp-ls链路路由携带bgp节点标识tlv。该第一bgp ls报文包括bgp-ls链路路由,bgp-ls链路路由包括bgp节点标识tlv。例如,bgp-ls链路路由中的路由属性字段包括bgp节点标识tlv。采用这种方式时,bgp节点标识可以理解为bgp-ls链路路由中路由属性中的一种子属性。
[0186]
结合上面描述的路由类型四,使用bgp-ls srv6 sid路由携带bgp节点标识tlv。该第一bgp ls报文包括bgp-ls srv6 sid路由,bgp-ls srv6 sid路由包括bgp节点标识tlv。例如,bgp-ls srv6 sid路由中的路由属性字段包括bgp节点标识tlv。采用这种方式时,bgp节点标识可以理解为bgp-ls srv6 sid路由中路由属性中的一种子属性。
[0187]
以上通过bgp节点标识tlv,对如何在bgp ls的路由属性中新增tlv来携带节点标识进行了举例说明。结合节点标识的各种类型,上述bgp节点标识tlv可以替换为其他类型的节点标识tlv,例如将上述bgp节点标识tlv替换为系统id tlv、te节点标识tlv等。下面以系统id tlv为例进行具体说明。
[0188]
例如,在节点标识为system-id的情况下,在bgp ls的路由属性中新增一种类型的tlv携带system-id。具体地,节点标识tlv为系统id tlv。系统id tlv的类型用于标识tlv携带system-id。系统id tlv的值包括system-id。例如,系统id tlv的格式如下表2所示。
[0189]
表2
[0190][0191]
表2中sub tlv type表示系统id tlv的类型字段。sub tlv type字段的值表示tlv为一种携带system-id的tlv。表2中的length表示系统id tlv的长度字段。表2以长度字段的值为4或者16为例进行说明。
[0192]
系统id tlv和以上描述的各种路由类型可以采用任意方式结合。下面对一些结合方式具体介绍。
[0193]
结合上面描述的路由类型一,使用bgp-ls节点路由携带系统id tlv。该第一bgp ls报文包括bgp-ls节点路由,bgp-ls节点路由包括系统id tlv。例如,bgp-ls节点路由中的路由属性字段包括系统id tlv。采用这种方式时,system-id可以理解为bgp-ls节点路由中路由属性中的一种子属性。
[0194]
结合上面描述的路由类型二,在新增的bgp-ls路由类型携带系统id tlv。具体地,该第一bgp ls报文包括目标路由类型的bgp ls路由(physical node路由),目标路由类型
的bgp ls路由包括系统id tlv。例如,目标路由类型中的路由属性字段包括系统id tlv。采用这种方式时,system-id可以理解为新增类型的bgp-ls路由中路由属性中的一种子属性。
[0195]
结合上面描述的路由类型三,使用bgp-ls链路路由携带系统id tlv。该第一bgp ls报文包括bgp-ls链路路由,bgp-ls链路路由包括系统id tlv。例如,bgp-ls链路路由中的路由属性字段包括系统id tlv。采用这种方式时,system-id可以理解为bgp-ls链路路由中路由属性中的一种子属性。bgp-ls链路路由的格式可参考下表5相关的介绍。
[0196]
结合上面描述的路由类型四,使用bgp-ls srv6 sid路由携带系统id tlv。该第一bgp ls报文包括bgp-ls srv6 sid路由,bgp-ls srv6 sid路由包括系统id tlv。例如,bgp-ls srv6 sid路由中的路由属性字段包括系统id tlv。采用这种方式时,system-id可以理解为bgp-ls srv6 sid路由中路由属性中的一种子属性
[0197]
实现方式ii、沿用已定义类型的tlv作为节点标识tlv。
[0198]
例如,在节点标识为ipv4本地节点标识(ipv4 router-id of local node)的情况下,节点标识tlv为路由器ipv4标识tlv(ipv4 router-id of local node tlv)。路由器ipv4标识tlv中的类型字段包括1028,即类型值为1028。路由器ipv4标识tlv中的值字段包括ipv4本地节点标识。
[0199]
例如,在节点标识为ipv6本地节点标识(ipv6 router-id of local node)的情况下,节点标识tlv为路由器ipv6标识tlv(ipv6 router-id of local node tlv)。路由器ipv6标识tlv中的类型字段包括1029,即类型值为1029。路由器ipv6标识tlv中的值字段包括ipv6本地节点标识。
[0200]
路由器ipv4标识tlv以及ipv4 router-id of local node tlv这两种tlv的具体解释可参考rfc7752,在此不多做赘述。
[0201]
以上通过实现方式i和实现方式ii介绍了节点标识tlv的可能实现方式。本实施例对一个bgp ls报文中节点标识tlv的数量不做限定。例如,第一bgp ls报文包括一个或多个节点标识tlv。在一个示例中,第一bgp ls报文包括多种节点标识tlv,每种节点标识tlv携带一种类型的节点标识。例如,第一bgp ls报文包括bgp节点标识tlv以及系统id tlv。通过这种方式,能够通过一个bgp ls报文将同一设备的多种节点标识一起上报给控制器设备。
[0202]
s230、控制器设备从第一网络设备接收域内拓扑信息以及域间拓扑信息。
[0203]
控制器设备从第一网络设备接收第一bgp ls报文。控制器设备从第一bgp ls报文中获得域内拓扑信息或者域间拓扑信息中的至少一项。
[0204]
具体地,在上述情况a下,控制器设备不仅接收第一bgp ls报文,还接收第四bgp ls报文。其中,在情况a-1下,控制器设备从第一bgp ls报文获得域内拓扑信息,从第四bgp ls报文获得域间拓扑信息;在情况a-2下,控制器设备从第一bgp ls报文获得域间拓扑信息,从第四bgp ls报文获得域内拓扑信息。在上述情况b下,控制器设备接收第一bgp ls报文,控制器设备从第一bgp ls报文获得域内拓扑信息以及域间拓扑信息。
[0205]
s240、控制器设备根据节点标识,建立域内拓扑信息与域间拓扑信息之间的关联关系。
[0206]
由于域内拓扑信息以及域间拓扑信息包括同一个节点标识,控制器设备可以将节点标识作为域内拓扑信息与域间拓扑信息的关联字段,将域内拓扑信息与域间拓扑信息拼接起来。
[0207]
例如,在节点标识为bgp router-id的情况下,控制器设备通过bgp-ls收集到igp域内拓扑信息中,包含bgp router-id。控制器设备通过bgp-ls收集到域间链路信息中,同样包含bgp router-id。控制器设备可通过bgp router-id将域内拓扑和域间拓扑进行关联。
[0208]
又如,在节点标识为ipv4本地节点标识的情况下,控制器设备通过bgp-ls收集到域间拓扑信息中,包含ipv4本地节点标识。控制器设备通过bgp-ls收集到域内链路信息中,同样包含ipv4本地节点标识。控制器设备可通过ipv4本地节点标识将域内拓扑和域间拓扑进行关联。
[0209]
又如,在节点标识为system-id的情况下,控制器设备通过bgp-ls收集到域间拓扑信息中,包含system-id。控制器设备通过bgp-ls收集到域内链路信息中,同样包含system-id。控制器设备可通过system-id将域内拓扑和域间拓扑进行关联。
[0210]
结合以上介绍的路由类型二,控制器设备从第一bgp ls报文获得设备全局信息。控制器设备根据设备全局信息生成映射关系表。映射关系表包含同一台设备(如第一网络设备或第二网络设备)不同类型的节点标识之间的对应关系。例如,映射关系表如下表3所示。当控制器设备通过bgp-ls收集到域间链路信息和域内链路信息时,则可以通过域间链路中的bgp router-id和域内igp的ipv4 router-id of local node字段中携带的te router-id,根据映射关系表实现链路的拼接。
[0211]
表3
[0212]
bgp router-idte router-idsystem-id
[0213]
本实施例提供的方法,由于网络设备在上送拓扑时,在域内拓扑信息和域间拓扑信息中携带同一个节点标识,使得控制器设备利用收到的节点标识能够将域内拓扑信息与域间拓扑信息自动地关联起来,从而降低网络配置的复杂度,因此提高了控制器设备收集拓扑的效率。
[0214]
进一步地,帮助控制器设备自动实现域内链路和域间链路的正常拼接,便于控制器设备计算端到端的拓扑或路径信息。
[0215]
进一步地,控制器设备不需要通过netconf/yang等读取配置方式获取ipv4本地节点标识和bgp节点标识之间的映射关系,从而减少了配置操作。
[0216]
进一步地,在控制器设备收集拓扑信息时,网络设备不需要对ipv4本地节点标识和bgp节点标识做一致性强制要求,从而提高了灵活性。
[0217]
以上方法200中第一网络设备如何获得节点标识包括多种具体实现方式,以下通过实现方式(1)和实现方式(2)举例说明。其中,实现方式(1)支持第一网络设备是asbr设备的情况。实现方式(2)支持第一网络设备不是asbr设备,而第二网络设备是asbr设备的情况。
[0218]
实现方式(1)第一网络设备获得本地保存的节点标识。
[0219]
具体地,第一网络设备通过自身的一个或多个协议模块获得节点标识。例如,第一网络设备中的bgp协议模块收集第一网络设备的bgp节点标识、系统id以及te节点标识。
[0220]
在一个示例中,第一网络设备包含多种协议类型对应的协议模块,第一网络设备内部的不同协议模块进行交互以获得节点标识。例如,第一网络设备中的bgp-ls协议模块从igp协议模块收集ipv4本地节点标识或者ipv6本地节点标识。又如,第一网络设备中的
igp协议模块从bgp协议模块收集bgp节点标识。
[0221]
实现方式(2)第一网络设备与第二网络设备交互从而获得节点标识。
[0222]
第二网络设备通过将自身的节点标识发给第一网络设备,使得第一网络设备获得第二网络设备的节点标识。具体地,第二网络设备向第一网络设备发布节点标识,第一网络设备接收第二网络设备发送的节点标识。其中,节点标识用于标识第二网络设备。
[0223]
第二网络设备如何发布节点标识包括多种具体实现方式,下面通过实现方式(2-1)和实现方式(2-2)举例说明。
[0224]
实现方式(2-1)第二网络设备基于igp协议发布节点标识。
[0225]
具体地,第二网络设备生成igp报文,igp报文包括第二网络设备的节点标识。第二网络设备在第一域(igp域)内泛洪igp报文。第一网络设备接收第二网络设备发送的igp报文。第一网络设备从igp报文中获得第二网络设备的节点标识。
[0226]
例如,在节点标识为bgp节点标识的情况下,方式a的具体过程包括:第二网络设备中的igp协议模块从第二网络设备的bgp协议模块收集bgp router-id。当第二网络设备中的igp协议模块泛洪lsdb时,第二网络设备中的igp协议模块将收集到的bgp router-id携带在igp报文中,将igp报文泛洪给周边邻居(第一网络设备)。第一网络设备接收到igp报文时,从igp报文中获得bgp router-id,并将bgp router-id存储到lsdb中。
[0227]
第二网络设备通过泛洪携带bgp router-id的igp报文,使得igp域中的每个设备(如第一网络设备)都能通过igp报文获取到第二网络设备的bgp router-id。那么,当控制器设备与第一网络设备建立了bgp-ls邻居但没有与第二网络设备建立bgp-ls邻居时,由于第一网络设备有第二网络设备的bgp router-id,由第一网络设备负责通过bgp-ls报文将第二网络设备的bgp router-id上送给控制器设备,即可保证控制器设备得到第二网络设备的bgp router-id,有助于摆脱组网架构带来的限制。
[0228]
如何在igp报文中携带节点标识包括多种方式。在一个示例中,在igp报文中新增一种tlv来携带节点标识。具体地,第二网络设备发送的igp报文包括节点标识tlv。其中,该节点标识tlv例如携带在igp协议中的链路状态通告(link-state advertisement,lsa)报文中。例如,在节点标识为bgp节点标识的情况下,igp报文中包括bgp节点标识tlv。bgp节点标识tlv的格式可参考上表1相关的介绍。通过在igp报文中携带bgp节点标识tlv,bgp节点标识能够作为igp泛洪的一种属性,通过igp在域内进行泛洪。
[0229]
实现方式(2-2)第二网络设备基于bgp-ls协议通告节点标识。
[0230]
具体地,第二网络设备生成第二bgp ls报文。第二网络设备通过第二网络设备与第一网络设备之间的bgp-ls邻居关系,向第一网络设备发送第二bgp ls报文。
[0231]
第二bgp ls报文包括第二网络设备的节点标识。
[0232]
第二bgp ls报文可以和以上描述的四种路由类型相关的特征任意结合。例如,结合上述路由类型一,第二bgp ls报文包括bgp-ls节点路由,bgp-ls节点路由包括第二网络设备的节点标识。结合上述路由类型二,第二bgp ls报文包括目标路由类型的bgp ls路由,目标路由类型的bgp ls路由包括设备全局信息,设备全局信息包括第二网络设备的节点标识。结合上述路由类型三,第二bgp ls报文包括bgp-ls链路路由,bgp-ls链路路由包括第二网络设备的节点标识。结合上述路由类型四,第二bgp ls报文包括srv6 sid路由,srv6sid路由包括第二网络设备的节点标识。
[0233]
第二bgp ls报文可以和以上描述的节点标识tlv相关的特征任意结合。例如,第二bgp ls报文中的路由属性字段包括节点标识tlv。节点标识tlv包括而不限于bgp节点标识tlv、系统id tlv、路由器ipv4标识tlv、路由器ipv6标识tlv中的至少一项。
[0234]
第二bgp ls报文携带节点标识的方式与第一bgp ls报文携带节点标识的方式同理,实现细节请参考上述对第一bgp ls报文的介绍。
[0235]
以上方法200中第一网络设备如何获得域间拓扑信息包括多种具体实现方式,例如,在第一网络设备是asbr设备的情况下,由第一网络设备收集域间拓扑信息;又如,在第一网络设备不是asbr设备,而第二网络设备是asbr设备的情况下,第一网络设备接收第二网络设备发送的域间拓扑信息。具体地,第二网络设备生成第三bgp-ls报文,第三bgp-ls报文包括域间拓扑信息。第二网络设备向第一网络设备发送第三bgp-ls报文。第一网络设备接收第二网络设备发送的第三bgp-ls报文。第一网络设备从第三bgp-ls报文获得域间拓扑信息。其中,第三bgp-ls报文例如为bgp-ls update报文。
[0236]
以上方法200以域内拓扑信息和域间拓扑信息由同一个设备(第一网络设备)负责上送为例进行说明。在另一个示例中,域内拓扑信息和域间拓扑信息分别由不同的设备负责上送,下面进行具体介绍。
[0237]
例如,第一网络设备向控制器设备发送域内拓扑信息;第二网络设备向控制器设备发送域间拓扑信息。控制器设备从第一网络设备接收域内拓扑信息,控制器设备接收第二网络设备发送的域间拓扑信息。其中,第一网络设备发送的域内拓扑信息与第二网络设备发送的域间拓扑信息包括同一个节点标识。
[0238]
又如,第一网络设备向控制器设备发送域间拓扑信息;第二网络设备向控制器设备发送域内拓扑信息。控制器设备从第一网络设备接收域间拓扑信息,控制器设备接收第二网络设备发送的域内拓扑信息。其中,第一网络设备发送的域间拓扑信息与第二网络设备发送的域内拓扑信息包括同一个节点标识。
[0239]
其中,第二网络设备上送拓扑信息的方式与第一网络设备上送拓扑信息的方式同理,技术细节请参考第一网络设备上送拓扑信息的描述。
[0240]
以上方法200以基于bgp ls协议上送拓扑信息为例进行说明。在另一个示例中,采用bgp ls协议之外的其他方式上送拓扑信息。例如,采用路径计算单元通信协议(path computation element communication protocol,pcep)上送拓扑信息。具体地,网络设备收集拓扑信息,根据拓扑信息生成pcep报文,向控制器设备发送pcep报文,pcep报文携带节点标识。又如,网络设备基于netconf协议向控制器设备发布域内拓扑信息以及域间拓扑信息。
[0241]
以下对包含新增的bgp-ls路由类型(目标路由类型)的报文格式具体介绍。
[0242]
请参考表4,表4是对bgp ls报文格式的举例说明,表4所示的bgp ls报文包含目标路由类型的bgp ls路由,表4中的ipv4 router-id、ipv6 router-id、system-id是对设备全局信息的举例说明。
[0243]
表4
[0244][0245][0246]
其中,表4的第一行中的0-4、5-8等数字表示比特,如协议id字段位于第0比特至第8比特。以下对表4中各个字段的含义进行具体介绍。
[0247]
(1)物理节点nlri(物理节点网络层可达信息,physical node nlri)
[0248]
物理节点nlri属于一种节点nlri(node nlri)。物理节点nlri包括nlri类型(nlri type)字段、nlri长度(nlri length)字段、协议id(protocol id)字段、标识符(identifier)字段、本地节点描述信息(local node descriptor)字段。
[0249]
(1-1)nlri类型字段的值用于指示nlri的类型为物理节点nlri。例如,nlri类型字段的值为1,表明这个nlri是物理节点nlri。
[0250]
(1-2)nlri长度字段的值表示物理节点nlri的长度。nlri长度字段的值是变量(variable,var)。
[0251]
(1-3)协议id字段的值表示拓扑信息来源的协议号,例如is-is、ospf或bgp等。协议id字段的长度是1字节。
ls链路路由。bgp-ls链路路由包括链路属性(link attribute)字段。链路属性字段包括属性标志(attribute flag)字段、属性类型(attribute type)字段、属性长度(attribute length)字段、路由器ipv4标识tlv、路由器ipv6标识tlv、管理组tlv(administrative group tlv)、最大链路带宽tlv(maximum link bandwidth tlv)、te缺省开销tlv(te default metric tlv)、共享风险链路组tlv(shared risk link group tlv)、系统id tlv。
[0264]
表5
[0265][0266][0267]
其中,路由器ipv4标识tlv、路由器ipv6标识tlv以及系统id tlv是对节点标识tlv的举例说明。路由器ipv4标识tlv、路由器ipv6标识tlv以及系统id tlv分别携带了ipv4router-id、ipv6 router-id以及system-id。表5中节点标识tlv之外的其他tlv用于携带链路信息。此外,表5与表4相同的特征请参考上述对表4的介绍,在此不多做赘述。
[0268]
下面结合四个实例,对上述方法200举例说明。以下四个实例中的pe3和asbr3是对方法200中第一网络设备的举例说明,以下四个实例中asbr3的节点标识是对方法200中节点标识的举例说明。
[0269]
实例1:使用bgp router-id作为域内链路和域间链路之间的关联字段。
[0270]
实例1以图1中的pe3、asbr3、控制器设备交互执行为例进行说明。请参考附图3和附图4,附图3和附图4均是实例1的具体流程图。附图3和附图4所示的流程之间的区别是,附图3所示的流程适用于控制器设备和pe3为bgp ls邻居的组网架构,附图4所示的流程适用于控制器设备和asbr3为bgp-ls邻居的组网架构。实例1具体包含以下步骤s31至步骤s34。
[0271]
步骤s31:asbr3中的igp协议模块从asbr3中的bgp协议模块收集asbr3的bgp router-id。
[0272]
步骤s32:asbr3中的igp协议模块向周边邻居(pe3)泛洪lsdb时,将收集到的asbr3的bgp router-id泛洪给周边邻居(pe3)。bgp router-id可以使用igp的lsa等报文传递。pe3收到asbr3的bgp router-id之后,pe3将asbr3的bgp router-id存储到lsdb中。其中,igp泛洪的igp报文中新增tlv携带asbr3的bgp router-id,新增tlv的格式如表1所示。
[0273]
步骤s33:如附图3所示,pe3中的bgp-ls协议模块向pe3的igp协议模块收集拓扑信息。pe3的igp协议模块将asbr3的bgp router-id作为节点信息上报给pe3的bgp-ls协议模块;或者,如附图4所示,asbr3中的bgp-ls协议模块向asbr3中的igp协议模块收集拓扑信息。asbr3中的igp协议模块将asbr3中的bgp router-id作为节点信息上报给asbr3中的bgp-ls协议模块。
[0274]
步骤s34:如附图3所示,pe3中的bgp-ls协议模块收集到igp拓扑信息(域内拓扑信息)之后,pe3将igp拓扑信息封装成bgp-ls update报文,pe3通过bgp-ls邻居发布给控制器设备。其中,bgp-ls node路由属性携带bgp router-id,例如,新增如上述表1所示的tlv。
[0275]
或者,如附图4所示,asbr3中的bgp-ls协议模块收集到igp拓扑信息之后,asbr3将igp拓扑信息封装成bgp-ls update报文,asbr3通过bgp-ls邻居发布给控制器设备。其中,bgp-ls节点路由中的路由属性携带bgp router-id,例如,新增如上述表1所示的tlv。
[0276]
在以上实例1中,控制器设备通过bgp-ls收集到igp拓扑信息(域内拓扑信息)中,包含asbr3的bgp router-id。控制器设备通过bgp-ls收集到域间链路信息中,同样包含asbr3的bgp router-id。控制器设备可通过asbr3的bgp router-id将域内拓扑和域间拓扑进行关联。
[0277]
实例2:上报设备全局信息,用于域间链路和域内链路拼接。
[0278]
实例2以图1中的pe3、asbr3、控制器设备交互执行为例进行说明。请参考附图5和附图6,附图5和附图6均是实例2的具体流程图。附图5和附图6所示的流程之间的区别是,附图5所示的流程适用于控制器设备和pe3为bgp ls邻居的组网架构,附图6所示的流程适用于控制器设备和asbr3为bgp-ls邻居的组网架构。实例2具体包含以下步骤s41至步骤s43。
[0279]
步骤s41:asbr3中的bgp-ls协议模块收集asbr3的设备全局信息。设备全局信息例如包含bgp router-id、te router-id、system-id等内容。
[0280]
步骤s42:asbr3中的bgp-ls协议模块将收集到asbr3的设备全局信息,封装成bgp-ls update报文(新路由类型),发布给邻居(pe3)。
[0281]
步骤s43:如附图5所示,pe3中的bgp-ls协议模块将收集到asbr3的设备全局信息,封装成bgp-ls update报文(新增的路由类型),发布给控制器设备。或者,如附图6所示,asbr3中的bgp-ls协议模块将收集到asbr3的设备全局信息,封装成bgp-ls update报文(新增的路由类型),发布给控制器设备。控制器设备通过bgp-ls收集到asbr3的设备全局信息
之后,生成设备全局信息之间的映射关系表(如上表3所示)。
[0282]
在以上实例2中,当控制器设备通过bgp-ls收集到域间链路和域内链路信息时,则可以通过域间链路中的asbr3的bgp router-id和域内igp的ipv4 router-id of local node字段中携带的asbr3的te router-id根据上述映射关系表实现链路的拼接。
[0283]
实例3:使用ipv4本地节点标识(ipv4 router-id of local node)或者ipv6本地节点标识(ipv6 router-id of local node)作为域内链路和域间链路之间的关联字段。
[0284]
实例3以图1中的pe3、asbr3、控制器设备交互执行为例进行说明。请参考附图7和附图8,附图7和附图8均是实例3的具体流程图。附图7和附图8所示的流程之间的区别是,附图7所示的流程适用于控制器设备和pe3为bgp ls邻居的组网架构,附图8所示的流程适用于控制器设备和asbr3为bgp-ls邻居的组网架构。实例3具体包含以下步骤s51至步骤s54。
[0285]
步骤s51:asbr3中的bgp-ls协议模块从igp协议模块收集asbr3的ipv4本地节点标识或者ipv6本地节点标识。
[0286]
步骤s52:asbr3中的bgp-ls协议模块将收集到asbr3中的ipv4本地节点标识或者ipv6本地节点标识,封装到epe bgp-ls update报文属性中,并生成epe路由信息。其中,ipv4本地节点标识通过ipv4 router-id of local node(type1028)携带,ipv6本地节点标识通过ipv6 router-id of local node(type1029)携带。
[0287]
步骤s53:如附图7所示,asbr3中的bgp-ls协议模块将bgp-ls epe路由发布给pe3,该bgp-ls epe路由包括asbr3中的ipv4本地节点标识或者ipv6本地节点标识。
[0288]
步骤s54:如附图7所示,pe3中的bgp-ls协议模块将包含asbr3的ipv4本地节点标识或者ipv6本地节点标识的bgp-ls epe路由发布给控制器设备。或者,如附图8所示,asbr3中的bgp-ls协议模块将包含asbr3的ipv4本地节点标识或者ipv6本地节点标识的bgp-ls epe路由发布给控制器设备。
[0289]
在以上实例3中,控制器设备通过bgp-ls收集到域间拓扑信息中,包含asbr3的ipv4本地节点标识或者ipv6本地节点标识。具体地,bgp-ls报文中ipv4 router-id of local node(type1028)携带asbr3的ipv4本地节点标识;或,bgp-ls报文中ipv6 router-id of local node(type1029)携带asbr3的ipv6本地节点标识。此外,控制器设备通过bgp-ls收集到域内链路信息中,同样包含asbr3的ipv4本地节点标识或者ipv6本地节点标识。控制器设备可通过asbr3的ipv4本地节点标识或者ipv6本地节点标识将域内拓扑和域间拓扑进行关联。
[0290]
实例4:使用设备标识作为域内链路和域间链路之间的关联字段。
[0291]
实例4以图1中的pe3、asbr3、控制器设备交互执行为例进行说明。请参考附图9和附图10,附图9和附图10均是实例4的具体流程图。附图9和附图10所示的流程之间的区别是,附图9所示的流程适用于控制器设备和pe3为bgp ls邻居的组网架构,附图10所示的流程适用于控制器设备和asbr3为bgp-ls邻居的组网架构。实例4具体包含以下步骤s61至步骤s67。
[0292]
步骤s61:asbr3上bgp协议模块收集asbr3的system-id。
[0293]
步骤s62:如附图9所示,asbr3上bgp协议模块在生成bgp-ls epe路由时,将asbr3的system-id作为新增属性带在路由属性中,发布给周边设备pe3。system-id例如通过表2所示的tlv携带。
[0294]
步骤s63:如附图9所示,pe3将包含asbr3的system-id的epe路由信息,通过bgp-ls邻居发布给控制器设备。或者,如附图10所示,asbr3将包含asbr3的system-id的epe路由信息,通过bgp-ls邻居发布给控制器设备。
[0295]
步骤s64:asbr3上igp协议模块收集asbr3的system-id。
[0296]
步骤s65:asbr3上bgp-ls协议模块向asbr3的igp协议模块收集拓扑信息。asbr3的igp协议模块将system-id作为新的拓扑属性上报给asbr3的bgp-ls协议模块。bgp-ls协议模块将拓扑信息(新增system-id)封装成bgp-ls update报文。system-id例如通过表2所示的tlv携带。
[0297]
步骤s66:asbr3将bgp-ls生成的bgp-ls update报文(域内拓扑信息),通过bgp-ls邻居发布给pe3。
[0298]
步骤s67:如附图9所示,pe3将bgp-ls生成的bgp-ls update报文(域内拓扑信息),通过bgp-ls邻居发布给控制器设备。或者,如附图10所示,asbr3将bgp-ls生成的bgp-ls update报文(域内拓扑信息),通过bgp-ls邻居发布给控制器设备。
[0299]
在以上实例4中,控制器设备通过bgp-ls收集到域间拓扑的信息中,包含asbr3的system-id。控制器设备通过bgp-ls收集到域内链路信息中,同样包含asbr3的system-id。控制器设备可通过asbr3的system-id将域内拓扑和域间拓扑进行关联。
[0300]
以上介绍了本技术实施例的方法实施例,以下介绍本技术实施例的网络设备以及控制器设备。
[0301]
附图11示出了上述实施例中所涉及的第一网络设备的一种可能的结构示意图。附图11所示的网络设备700例如实现方法200中第一网络设备、实例1至实例4中asbr3、或者实例1至实例4中pe3的功能。
[0302]
请参考附图11,网络设备700包括获取单元701和发布单元702。网络设备700中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。网络设备700中的各个单元用于执行上述第一网络设备、pe3或者asbr3的相应功能。例如,获取单元701用于支持网络设备700执行s210。发布单元702用于支持网络设备700执行s220。又如,获取单元701用于支持网络设备700执行s33。发布单元702用于支持网络设备700执行s34。又如,获取单元701用于支持网络设备700执行s41。发布单元702用于支持网络设备700执行s43。又如,获取单元701用于支持网络设备700执行s51至s52。发布单元702用于支持网络设备700执行s54。又如,获取单元701用于支持网络设备700执行s61、s63、s64以及s66。发布单元702用于支持网络设备700执行s63以及s67。
[0303]
在一些实施例中,网络设备700还包括处理单元,处理单元用于支持网络设备700执行方法200、实例1至实例4中生成bgp-ls报文相关的步骤。
[0304]
在一些实施例中,网络设备700还包括接收单元,接收单元用于支持网络设备700执行方法200、实例1至实例4中接收节点标识、igp报文、bgp-ls报文相关的步骤。
[0305]
网络设备700的具体执行过程请参考方法200、实例1至实例4中相应步骤的详细描述,这里不再一一赘述。
[0306]
本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
[0307]
在一些实施例中,网络设备700中各个单元集成在一个单元中。例如,网络设备700
中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。获取单元701通过芯片中的处理电路实现。网络设备700中接收单元通过芯片中的输入接口实现。发布单元702通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑器件(programmable logic device,pld)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本技术通篇所描述的各种功能的电路的任意组合实现。
[0308]
在另一些实施例中,网络设备700各个单元单独物理存在。在另一些实施例中,网络设备700一部分单元单独物理存在,另一部分单元集成在一个单元中。例如,在一些实施例中,获取单元701和发布单元702是同一个单元。在另一些实施例中,获取单元701和发布单元702是不同的单元。在一些实施例中,不同单元的集成采用硬件的形式实现,即,不同单元对应于同一个硬件。又如,不同单元的集成采用软件单元的形式实现。
[0309]
在网络设备700中通过硬件实现的情况下,网络设备700中获取单元701、处理单元等例如通过设备1000中主控板1010上的中央处理器1011实现,又如通过设备1100中的处理器1101实现。网络设备700中发布单元702、接收单元等例如通过设备1000中接口板1030实现,又如通过设备1100中的通信接口1104实现。
[0310]
在网络设备700中通过软件实现的情况下,网络设备700中各个单元例如为设备1000中主控板1010上的中央处理器1011读取主控板1010上的存储器1012中存储的程序代码后生成的软件,又如为设备1100中处理器1101读取存储器1103中存储的程序代码后生成的软件。
[0311]
例如,网络设备700为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、pod中的至少一种。在一些实施例中,网络设备700以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现网络设备700。采用虚拟机的方式实现时,网络设备700例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出网络设备700。在另一些实施例中,网络设备700以容器(例如docker容器)的形式,部署在硬件设备上。例如,网络设备700执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建网络设备700。在另一些实施例中,网络设备700以pod的形式,部署在硬件设备上。pod包括多个容器,每个容器用于实现网络设备700中的一个或多个单元。
[0312]
附图12示出了上述实施例中所涉及的控制器设备的一种可能的结构示意图。附图12所示的控制器设备800例如实现方法200、实例1至实例4中控制器设备的功能。
[0313]
请参考附图12,控制器设备800包括接收单元801和拓扑关联单元802。控制器设备800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。控制器设备800中的各个单元用于执行上述方法200、实例1至实例4中控制器设备的相应功能。例如,接收单元801用于支持控制器设备800执行s230、实例1至实例4中接收bgp-ls update报文的步骤。拓扑关联单元802用于支持控制器设备800执行s240、实例1至实例4中关联域内拓扑和域间拓扑相关的步骤。控制器设备800的具体执行过程请参考方法200、实例1至实例4中相应步骤的详细描述,这里不再一一赘述。
[0314]
本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现
时可选地有另外的划分方式。
[0315]
在一些实施例中,控制器设备800中各个单元集成在一个单元中。例如,控制器设备800中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。拓扑关联单元802通过芯片中的处理电路实现。接收单元801通过芯片中的输入接口实现。例如,该芯片通过一个或多个fpga、pld、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本技术通篇所描述的各种功能的电路的任意组合实现。
[0316]
在另一些实施例中,控制器设备800各个单元单独物理存在。在另一些实施例中,控制器设备800一部分单元单独物理存在,另一部分单元集成在一个单元中。例如,在一些实施例中,接收单元801和拓扑关联单元802是同一个单元。在另一些实施例中,接收单元801和拓扑关联单元802是不同的单元。在一些实施例中,不同单元的集成采用硬件的形式实现,即,不同单元对应于同一个硬件。又如,不同单元的集成采用软件单元的形式实现。
[0317]
在控制器设备800中通过硬件实现的情况下,控制器设备800中拓扑关联单元802例如通过设备1000中主控板1010上的中央处理器1011实现,又如通过设备1100中的处理器1101实现。控制器设备800中接收单元801、发送单元等例如通过设备1000中接口板1030实现,又如通过设备1100中的通信接口1104实现。
[0318]
在控制器设备800中通过软件实现的情况下,控制器设备800中各个单元例如为设备1000中主控板1010上的中央处理器1011读取主控板1010上的存储器1012中存储的程序代码后生成的软件,又如为设备1100中处理器1101读取存储器1103中存储的程序代码后生成的软件。例如,控制器设备800为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、pod中的至少一种。在一些实施例中,控制器设备800以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合nfv技术来实现控制器设备800。采用虚拟机的方式实现时,控制器设备800例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出控制器设备800。在另一些实施例中,控制器设备800以容器(例如docker容器)的形式,部署在硬件设备上。例如,控制器设备800执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建控制器设备800。在另一些实施例中,控制器设备800以pod的形式,部署在硬件设备上。pod包括多个容器,每个容器用于实现控制器设备800中的一个或多个单元。
[0319]
附图13示出了上述实施例中所涉及的第二网络设备的一种可能的结构示意图。附图13所示的网络设备900例如实现方法200、实例1至实例4中第二网络设备的功能,或者,网络设备900实现实例1至实例4中asbr3的功能。
[0320]
请参考附图13,网络设备900包括发布单元901。发布单元901全部或部分地通过软件、硬件、固件或者其任意组合来实现。发布单元901用于支持网络设备900发布节点标识,例如发布单元901用于执行方法200中发送节点标识的步骤、实例一中s32、实例二中s42、实例三中s53、实例四中s62。
[0321]
在一些实施例中,网络设备900还包括处理单元,处理单元用于支持网络设备900执行方法200、实例1至实例4中生成igp报文或者bgp-ls报文相关的步骤。
[0322]
在网络设备900中通过硬件实现的情况下,网络设备900中发布单元901例如通过设备1000中接口板1030实现,又如通过设备1100中的通信接口1104实现。网络设备900中处
card)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(physical interface card,pic)1033。
[0329]
接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
[0330]
网络处理器1032用于实现报文的转发处理。网络处理器1032的形态例如是转发芯片。具体而言,网络处理器1032用于基于转发表项存储器1034保存的转发表转发接收到的报文,如果报文的目的地址为设备1000的地址,则将该报文上送至cpu(如中央处理器1011)处理;如果报文的目的地址不是设备1000的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
[0331]
物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,中央处理器也可执行网络处理器1032的功能,比如基于通用cpu实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
[0332]
可选地,设备1000包括多个接口板,例如设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
[0333]
可选地,设备1000还包括交换网板1020。交换网板1020也例如称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间例如通过交换网板1020通信。
[0334]
主控板1010和接口板1030耦合。例如。主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,ipc)通道,主控板1010和接口板1030之间通过ipc通道进行通信。
[0335]
在逻辑上,设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器1034中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
[0336]
应理解,本技术实施例中接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。应理解,本实施例的设备1000可对应于上述各个方法实施例中的第一网络设备、控制器设备或第二网络设备,该设备1000中的主控板1010、接口板1030和/或1040例如实现上述各个方法实施例中的第一网络设备、控制器设备或第二网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
[0337]
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
[0338]
参见附图15,附图15示出了本技术一个示例性实施例提供的设备1100的结构示意图,该设备1100例如配置为方法200中的第一网络设备、第二网络设备或控制器设备,或者实例1至实例4中asbr3、pe3或控制器设备。该设备1100可以是主机、服务器或个人计算机等。该设备1100可以由一般性的总线体系结构来实现。
[0339]
设备1100包括至少一个处理器1101、通信总线1102、存储器1103以及至少一个通信接口1104。
[0340]
处理器1101例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器1101包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
[0341]
通信总线1102用于在上述组件之间传送信息。通信总线1102可以分为地址总线、数据总线、控制总线等。为便于表示,附图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0342]
存储器1103例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1103例如是独立存在,并通过通信总线1102与处理器1101相连接。存储器1103也可以和处理器1101集成在一起。
[0343]
通信接口1104使用任何收发器一类的装置,用于与其它设备或通信网络通信。通
信接口1104包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
[0344]
在具体实现中,作为一种实施例,处理器1101可以包括一个或多个cpu,如附图15中所示的cpu0和cpu1。
[0345]
在具体实现中,作为一种实施例,设备1100可以包括多个处理器,如附图15中所示的处理器1101和处理器1105。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
[0346]
在具体实现中,作为一种实施例,设备1100还可以包括输出设备和输入设备。输出设备和处理器1101通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器1101通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
[0347]
在一些实施例中,存储器1103用于存储执行本技术方案的程序代码1110,处理器1101可以执行存储器1103中存储的程序代码1110。也即是,设备1100可以通过处理器1101以及存储器1103中的程序代码1110,来实现方法200、实例1至实例4提供的方法。
[0348]
本技术实施例的设备1100可对应于上述各方法200中第一网络设备、第二网络设备或控制器设备、实例1至实例4中asbr3、pe3或控制器设备,并且,该设备1100中的处理器1101、通信接口1104等可以实现上述方法200中第一网络设备、第二网络设备或控制器设备、实例1至实例4中asbr3、pe3或控制器设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
[0349]
参见附图16,本技术实施例提供了一种网络系统1200,网络系统1200包括:第一网络设备1201、控制器设备1202和第二网络设备1203。
[0350]
在一些实施例中,第一网络设备1201为如附图11所示的网络设备700,控制器设备1202为如附图16所示的控制器设备800,第二网络设备1203为如附图13的网络设备900。
[0351]
在一些实施例中,第一网络设备1201、控制器设备1202或者第二网络设备1203中的至少一项为附图14所示的设备1000或附图15所示的设备1100。
[0352]
在一些实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述方法实施例中第一网络设备执行的方法。
[0353]
在一些实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。控制器设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该控制器设备执行上述方法实施例中控制器设备执行的方法。
[0354]
在一些实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介
质读取该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述方法实施例中第二网络设备执行的方法。
[0355]
在一些实施例中,提供了一种芯片,当该芯片在网络设备上运行时,使得网络设备执行上述方法实施例中第一网络设备执行的方法。
[0356]
在一些实施例中,提供了一种芯片,当该芯片在控制器设备上运行时,使得控制器设备执行上述方法实施例中控制器设备执行的方法。
[0357]
在一些实施例中,提供了一种芯片,当该芯片在网络设备上运行时,使得网络设备执行上述方法实施例中第二网络设备执行的方法。
[0358]
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0359]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
[0360]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0361]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
[0362]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0363]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0364]
本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和
执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一网络设备可以被称为第二网络设备,并且类似地,第二网络设备可以被称为第一网络设备。第一网络设备和第二网络设备都可以是网络设备,并且在某些情况下,可以是单独且不同的网络设备。
[0365]
本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上。
[0366]
术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0367]
以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
[0368]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0369]
该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
[0370]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0371]
以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献