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

通信方法及网络设备与流程

2022-02-22 07:15:05 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别涉及一种通信方法及网络设备。


背景技术:

2.段路由(segment routing,sr)是基于源路由的理念而设计的在网络中转发数据包的一种协议。sr将网络路径划分为一个个段,为这些段或节点分配段标识(segment id,sid),通过在数据包中携带依次排列的段标识,能够让数据包通过段标识指示的转发路径传输。互联网协议第6版段路由(segment routing internet protocol version 6,srv6)是指将sr技术与互联网协议第6版(internet protocol version 6,ipv6)协议结合起来,按照ipv6地址的格式定义为实例化的srv6 sid,基于ipv6的转发面来实现sr的功能。
3.端点三层交叉连接段标识(endpoint with layer-3cross-connect,end.x sid)是一种用于标识网络中一条链路的srv6 sid。在报文转发过程中,如果报文的目的地址命中本地sid表中的end.x sid,网络设备会通过end.x sid绑定的出接口,向end.x sid绑定的下一跳转发报文。当网络设备上配置了end.x sid后,网络设备需要泛洪end.x sid,以供拓扑上报以及拓扑无关无环备份快速重路由(topology-independent loop-free alternate fast reroute,ti-lfa frr)算路使用。
4.在泛洪end.x sid时,需要保证end.x sid绑定的下一跳是可达的。如果end.x sid绑定的下一跳是不可达的,不仅将end.x sid泛洪出去没有意义,反而占用大量的网络资源。


技术实现要素:

5.本技术实施例提供了一种通信方法及网络设备,能够在泛洪end.x sid时准确地校验end.x sid绑定的下一跳的可达性。所述技术方案如下:
6.第一方面,提供了一种通信方法,以该方法由第一网络设备执行为例,第一网络设备通过在泛洪end.x sid之前,对end.x sid绑定的下一跳信息与邻居(第二网络设备)上直连接口的ipv6全局地址进行匹配,从而校验end.x sid绑定的下一跳的可达性。在下一跳信息与ipv6全局地址匹配成功的情况下,end.x sid校验通过,第一网络设备才会允许泛洪end.x sid。一方面,保证泛洪出去的end.x sid绑定的下一跳是可达的,避免泛洪的下一跳不可达的end.x sid会带来的网络资源浪费以及设备性能开销。另一方面,避免仅用ipv6前缀校验下一跳可达性而导致错误的下一跳信息也被校验通过的情况,因此显著提高校验end.x sid绑定的下一跳可达性的准确率,进而提高泛洪end.x sid操作的有效性。
7.可选地,所述第一网络设备获取端点三层交叉连接段标识end.x sid之前,所述方法还包括:所述第一网络设备从所述第二网络设备接收所述第二接口的ipv6全局地址。通过这种方式,由于第二网络设备将与邻居(第一网络设备)直连的接口上的ipv6全局地址发给邻居(第一网络设备),使得邻居(第一网络设备)能够获得完整的对端接口的ipv6全局地址,便于邻居利用ipv6全局地址进行校验,降低邻居校验end.x sid绑定的下一跳的可达性
的实现复杂度。
8.可选地,所述第一网络设备从所述第二网络设备接收所述第二接口的ipv6全局地址,包括:所述第一网络设备接收第一开放式最短路径优先第3版ospfv3报文,所述第一ospfv3报文包括所述第二接口的ipv6全局地址。通过扩展ospfv3协议,两个网络设备之间使用ospfv3协议学习邻居接口上的ipv6全局地址,由于ospfv3协议是网络设备学习路由普遍使用的协议,因此网络设备能够复用已有的软硬件基础设施获得邻居接口上的ipv6全局地址,减少网络设备所需支持的协议种类,降低对网络设备的要求,免去了借助外部协议带来的复杂度,因此提高了本技术方案的可用性。
9.可选地,所述第一ospfv3报文包括扩展-链路-链路状态通告e-link-lsa,所述e-link-lsa包括所述第二接口的ipv6全局地址。由于e-link-lsa是一种链路范围(link-scope)lsa,通过扩展e-link-lsa来携带直连接口的ipv6全局地址,在发布e-link-lsa时仅在链路范围泛洪,因此能够有效减少发布ipv6全局地址带来的系统资源占用,节省了通信开销。
10.可选地,所述e-link-lsa包括区域内前缀类型长度值tlv,所述区域内前缀tlv包括所述第二接口的ipv6全局地址。
11.可选地,所述区域内前缀tlv包括ipv6全局地址tlv,所述ipv6全局地址tlv包括类型字段以及值字段,所述类型字段中的类型用于标识所述ipv6全局地址tlv携带有ipv6全局地址,所述值字段包括所述第二接口的ipv6全局地址。
12.可选地,所述第一网络设备从所述第二网络设备接收所述第二接口的ipv6全局地址之前,所述方法还包括:所述第一网络设备向所述第二网络设备发送互联网协议第6版段路由srv6能力信息,所述srv6能力信息用于指示所述第一网络设备已使能srv6。通过这种可选方式,由于仅对使能了srv6的直连邻居发布直连接口的ipv6全局地址,免去了向未使能srv6的直连邻居发布带来的通信开销,节省了系统资源。
13.可选地,所述第一网络设备泛洪所述end.x sid,包括:所述第一网络设备根据所述end.x sid生成第二ospfv3报文,所述第二ospfv3报文包括所述end.x sid;所述第一网络设备泛洪所述第二ospfv3报文。
14.第二方面,提供了一种通信方法,在该方法中,第二网络设备获取所述第二网络设备的第二接口的互联网协议第6版ipv6全局地址;所述第二网络设备向第一网络设备发送所述第二接口的ipv6全局地址,所述第二网络设备与所述第一网络设备建立有一条链路。
15.可选地,所述第二网络设备向第一网络设备发送所述第二接口的ipv6全局地址之前,所述方法还包括:
16.所述第二网络设备从所述第一网络设备接收互联网协议第6版段路由srv6能力信息,所述srv6能力信息用于指示所述第一网络设备已使能srv6。
17.可选地,所述发送所述第二接口的ipv6全局地址,包括:
18.所述第二网络设备生成第一开放式最短路径优先第3版ospfv3报文,所述第一ospfv3报文包括所述第二接口的ipv6全局地址。
19.所述第二网络设备发送所述第一ospfv3报文。
20.可选地,所述第一ospfv3报文包括扩展-链路-链路状态通告e-link-lsa,所述e-link-lsa包括所述第二接口的ipv6全局地址。
21.可选地,所述e-link-lsa包括区域内前缀类型长度值tlv,所述区域内前缀tlv包括所述第二接口的ipv6全局地址。
22.可选地,所述区域内前缀tlv包括ipv6全局地址tlv,所述ipv6全局地址tlv包括类型字段以及值字段,所述类型字段中的类型用于标识所述ipv6全局地址tlv携带有ipv6全局地址,所述值字段包括所述第二接口的ipv6全局地址。
23.第三方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式中的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的通信方法。
24.在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第三方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
25.可选地,所述接收单元,用于接收第一开放式最短路径优先第3版ospfv3报文,所述第一ospfv3报文包括所述第二接口的ipv6全局地址。
26.可选地,所述第一ospfv3报文包括扩展-链路-链路状态通告e-link-lsa,所述e-link-lsa包括所述第二接口的ipv6全局地址。
27.可选地,所述e-link-lsa包括区域内前缀类型长度值tlv,所述区域内前缀tlv包括所述第二接口的ipv6全局地址。
28.可选地,所述区域内前缀tlv包括ipv6全局地址tlv,所述ipv6全局地址tlv包括类型字段以及值字段,所述类型字段中的类型用于标识所述ipv6全局地址tlv携带有ipv6全局地址,所述值字段包括所述第二接口的ipv6全局地址。
29.第四方面,提供了一种网络设备,该网络设备具有实现上述第二方面或第二方面任一种可选方式中的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面任一种可选方式所提供的通信方法。
30.在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第四方面提供的网络设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
31.可选地,所述第一ospfv3报文包括扩展-链路-链路状态通告e-link-lsa,所述e-link-lsa包括所述第二接口的ipv6全局地址。
32.可选地,所述e-link-lsa包括区域内前缀类型长度值tlv,所述区域内前缀tlv包括所述第二接口的ipv6全局地址。
33.可选地,所述区域内前缀tlv包括ipv6全局地址tlv,所述ipv6全局地址tlv包括类型字段以及值字段,所述类型字段中的类型用于标识所述ipv6全局地址tlv携带有ipv6全局地址,所述值字段包括所述第二接口的ipv6全局地址。
34.第五方面,提供了一种第一网络设备,该第一网络设备包括处理器和通信接口,该处理器用于执行指令,使得该第一网络设备执行上述第一方面或第一方面任一种可选方式所提供的通信方法,所述通信接口用于接收或发送报文。第五方面提供的第一网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
35.第六方面,提供了一种第二网络设备,该第二网络设备包括处理器和通信接口,该处理器用于执行指令,使得该第二网络设备执行上述第二方面或第二方面任一种可选方式
所提供的通信方法,所述通信接口用于接收或发送报文。第六方面提供的第二网络设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
36.第七方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该指令由处理器读取以使第一网络设备执行上述第一方面或第一方面任一种可选方式所提供的通信方法。
37.第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该指令由处理器读取以使第二网络设备执行上述第二方面或第二方面任一种可选方式所提供的通信方法。
38.第九方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。第一网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该第一网络设备执行上述第一方面或第一方面任一种可选方式所提供的通信方法。
39.第十方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。第二网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该第二网络设备执行上述第二方面或第二方面任一种可选方式所提供的通信方法。
40.第十一方面,提供了一种芯片,当该芯片在第一网络设备上运行时,使得第一网络设备执行上述第一方面或第一方面任一种可选方式所提供的通信方法。
41.第十二方面,提供了一种芯片,当该芯片在第二网络设备上运行时,使得第二网络设备执行上述第二方面或第二方面任一种可选方式所提供的通信方法。
42.第十三方面,提供了一种网络系统,该网络系统包括第一网络设备以及第二网络设备,该第一网络设备用于执行上述第一方面或第一方面任一种可选方式所述的方法,该第二网络设备用于执行上述第二方面或第二方面任一种可选方式所述的方法。
附图说明
43.图1是本技术实施例提供的一种系统架构100的示意图;
44.图2是本技术实施例提供的一种系统架构200的示意图;
45.图3是本技术实施例提供的一种报文格式的示意图;
46.图4是本技术实施例提供的一种报文格式的示意图;
47.图5是本技术实施例提供的一种报文格式的示意图;
48.图6是本技术实施例提供的一种通信方法300的流程图;
49.图7是本技术实施例提供的一种网络设备400的结构示意图;
50.图8是本技术实施例提供的一种网络设备500的结构示意图;
51.图9是本技术实施例提供的一种网络设备600的结构示意图;
52.图10是本技术实施例提供的一种网络设备700的结构示意图;
53.图11是本技术实施例提供的一种网络系统800的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方
advertisement,lsa)。
63.网络设备rt2包括接口名为ethernet3/0/0的接口。接口名ethernet3/0/0的含义为接口的类型是以太网(ethernet),槽位号(slot)为3,卡号(card)为0,端口号(port)为0。
64.网络设备pe2包括接口名为ethernet3/0/1的接口。接口名ethernet3/0/1的含义为接口的类型是ethernet,槽位号为3,卡号为0,端口号为1。
65.接口ethernet3/0/0与接口ethernet3/0/1之间建立了一条ip链路。
66.网络设备rt2上配置了end.x sid。网络设备rt2上配置的end.x sid例如为2001::1。end.x sid(2001::1)标识的链路为接口ethernet3/0/0与接口ethernet3/0/1之间的ip链路。end.x sid(2001::1)标识的链路由出接口和下一跳的ipv6全局地址确定。end.x sid绑定的出接口和下一跳的ipv6全局地址例如是人工配置的。end.x sid(2001::1)绑定的出接口为ethernet3/0/0。end.x sid(2001::1)绑定的下一跳通过接口ethernet3/0/1的ipv6全局地址表示。具体地,end.x sid(2001::1)绑定的下一跳信息为接口ethernet3/0/1的不包含掩码信息的ipv6全局地址。在srv6转发过程中,数据报文的目的地址命中本地sid表中的end.x sid(2001::1),由于end.x sid(2001::1)绑定的出接口为ethernet3/0/0,因此数据报文将会从接口ethernet3/0/0发送出去。由于end.x sid(2001::1)绑定的下一跳信息为接口ethernet3/0/1的ipv6全局地址,因此数据报文会被发送到网络设备rt2的接口ethernet3/0/1。
67.在附图1或附图2所示的场景中,end.x sid需要基于ospfv3泛洪出去,供拓扑上报以及ti-lfa frr算路使用。当在ospfv3 lsa中泛洪end.x sid(2001::1)信息时,是否将end.x sid信息封装到lsa中的前提是:end.x sid标识的链路是可达的。这里的可达是指ethernet3/0/0以及下一跳2001:db8:2::2要正确标识附图2所示的接口ethernet3/0/0与接口ethernet3/0/1之间的链路。如果end.x sid未正确标识链路,也就是说end.x sid绑定的下一跳地址不正确,或者说end.x sid绑定的下一跳不可达,将end.x sid信息泛洪出去的动作没有意义。其中,end.x sid绑定的下一跳地址是不包含掩码信息的邻居接口ipv6全局地址,基于end.x sid转发时需要用ipv6全局地址找到下一跳的媒体接入控制地址(media access control address,mac)地址进行链路层封装。在相关技术中,ospfv3邻居之间通过传递链路-链路状态通告(link-lsa)来传递ipv6前缀信息,传递的并不是ipv6全局地址。如果仅用ipv6前缀校验下一跳可达性,那么当end.x sid绑定的下一跳信息配置为2001:db8:2::3时,网络设备rt2对ipv6前缀与2001:db8:2::3进行匹配时,ipv6前缀与2001:db8:2::3匹配成功,使得end.x sid绑定的下一跳信息校验通过。然而,end.x sid绑定的下一跳信息的配置是错误的,因为end.x sid绑定的下一跳信息应该为2001:db8:2::2而不是2001:db8:2::3,网络设备rt2根据2001:db8:2::3无法找到下一跳的mac地址,也就无法根据mac地址进行链路层封装,也就无法将报文转发至网络设备pe2。
68.有鉴于此,亟需提出一种方法准确校验end.x sid绑定的下一跳的可达性。更具体地说,在end.x sid绑定的下一跳配置为ipv6全局地址的场景下,需要提出一种方法准确校验end.x sid下一跳的可达性,以便ospfv3依据是否可达来决定是否泛洪。
69.下面,将通过报文格式、方法流程等多个角度,介绍如何准确校验end.x sid下一跳的可达性。
70.下面对本实施例提供的报文结构进行介绍。
71.本技术的一些实施例对ospfv3协议进行了扩展,提供一种新的ospfv3报文。发送节点在这种新的ospfv3报文中,携带直连接口的ipv6全局地址。发送节点通过向邻居节点发布这种新的ospfv3报文,从而将直连接口的ipv6全局地址发布给邻居节点,以便邻居节点根据ipv6全局地址进行校验。通过这种方式,扩展ospfv3协议本身来实现end.x sid的校验。
72.开放式最短路径优先(open shortest path first,ospf)是国际互联网工程任务组(internet engineering task force,ietf)组织开发的一个基于链路状态的内部网关协议(interior gateway protocol,igp)。目前针对ipv4协议使用的是ospf version 2(简称为ospfv2),针对ipv6协议使用ospf version 3(简称为ospfv3)。ospfv3是运行于ipv6的ospf路由协议。ospfv3在ospfv2基础上进行了增强,是一个独立的路由协议。
73.本实施例中,ospfv3报文包括直连接口的ipv6全局地址。ipv6全局地址是可聚合全球单播地址(aggregate global unicast address),是由互联网数字分配机构(the internet assigned numbers authority,iana)分配的可在全球路由的公网ip地址。
74.直连接口是指发布ipv6全局地址的节点上与邻居节点直连的接口。“直连”是指两个节点位于一跳ip链路,或者说两个节点on-link,或者说两个节点一跳可达。例如,节点a具有接口a,节点b具有接口b。节点a的接口a与节点b的接口b之间建立了一条ip链路。当节点a的接口a发送了ipv6报文时,该ipv6报文中的跳数限制(hop-limit)减一后,到达节点b的接口b。在这个例子中,节点a与节点b是直连的。节点a的直连接口是指接口a。节点a将接口a的ipv6全局地址携带在ospfv3报文中,发布给节点b。节点b从ospfv3报文中获得接口a的ipv6全局地址。当节点b需要泛洪出接口为接口b的end.x sid时,能够利用接口a的ipv6全局地址,校验end.x sid绑定的下一跳的可达性。
75.如何利用ospfv3协议携带直连接口的ipv6全局地址包括多种方式。在一些实施例中,通过扩展ospfv3协议中的lsa携带直连接口的ipv6全局地址。具体地,ospf中对路由信息的描述都是封装在lsa中发布出去的。本实施例中,ospfv3报文包括lsa,ospfv3报文中lsa包括直连接口的ipv6全局地址。
76.在一些实施例中,选择ospfv3中的扩展-链路-链路状态通告(e-link-lsa)进行扩展。“e-link-lsa”中的“e-link”是扩展链路“extended link”的缩写。e-link-lsa的ls类型为0x28。e-link-lsa和link-lsa具有相同的基本内容。e-link-lsa与link-lsa相区别的是,e-link-lsa可扩展并表示为tlv。除了ls类型不同之外,e-link-lsa中lsa头的字段与link-lsa中lsa头的字段相同。区域内前缀tlv、ipv6本地地址tlv适用于e-link-lsa。e-link-lsa可用于供设备宣告各个链路上对应的链路本地地址及其所配置的ipv6全局地址。e-link-lsa仅在链路内洪泛。请参见附图3,附图3是对e-link-lsa的格式的举例说明。e-link-lsa包括16比特的ls age字段(用于指示lsa产生后所经过的时间)、16比特的ls类型(ls type,用于描述lsa的类型,取值为0x28)字段,32比特的链路状态id(link state id,与ls type一起描述路由域中唯一的一个lsa)字段、32比特的通告路由器(advertising router)字段、32比特的lsa的序列号(ls sequence number)字段、16比特的ls校验和(ls checksum)字段、16比特的长度(length)字段、8比特的dr优先级(rtr priority)字段、一个或多个选项(options)、一个或多个类型长度值(type length value,tlv)。
77.具体地,本实施例中网络设备发布的ospfv3报文包括e-link-lsa。e-link-lsa包
括直连接口的ipv6全局地址。在一些实施例中,e-link-lsa包括tlv。e-link-lsa中tlv包括直连接口的ipv6全局地址。例如,请参见附图3。附图3中的“tlvs”包括直连接口的ipv6全局地址。发送节点通过在e-link-lsa中携带直连接口的ipv6全局地址,将e-link-lsa发布给邻居节点,使得邻居节点从e-link-lsa中获得直连接口的ipv6全局地址,以便根据ipv6全局地址进行校验。
78.由于e-link-lsa是一种链路范围(link-scope)lsa,通过扩展e-link-lsa来携带直连接口的ipv6全局地址,在发布e-link-lsa时仅在链路范围泛洪,因此能够有效减少发布ipv6全局地址带来的系统资源占用,节省了通信开销。
79.在一些实施例中,选择区域内前缀tlv(intra-area-prefix tlv)进行扩展。区域内前缀tlv定义了ospfv3中单个区域内前缀。请参考附图4,附图4是对区域内前缀tlv的格式的举例说明。区域内前缀tlv包括域内前缀(intra-area prefix)字段、tlv长度(tlv length)字段、前缀长度(prefix length)字段、前缀选项(prefix options)字段、地址前缀(address prefix字段)、一个或多个子tlv(sub-tlvs)。
80.具体地,本实施例中网络设备发布的ospfv3报文包括区域内前缀tlv,区域内前缀tlv包括直连接口的ipv6全局地址。在一些实施例中,区域内前缀tlv包括子tlv,区域内前缀tlv的子tlv包括直连接口的ipv6全局地址。例如,请参考附图4,附图4中的“sub-tlvs”包括直连接口的ipv6全局地址。发送节点通过在区域内前缀tlv中携带直连接口的ipv6全局地址,将区域内前缀tlv发布给邻居节点,使得邻居节点从区域内前缀tlv中获得直连接口的ipv6全局地址。
81.本实施例对使用哪种ospfv3 lsa携带包含ipv6全局地址的区域内前缀tlv不做限定。在一些实施例中,使用上文介绍的e-link-lsa携带包含ipv6全局地址的区域内前缀tlv。具体地,e-link-lsa包括区域内前缀tlv,e-link-lsa中区域内前缀tlv包括第二接口的ipv6全局地址。例如,e-link-lsa包括至少一个tlv,该至少一个tlv包括携带ipv6全局地址的区域内前缀tlv。请参见附图3和附图4,附图3中的“tlvs”包括附图4所示的区域内前缀tlv。在另一些实施例中,使用e-link-lsa之外的其他ospfv3中的lsa携带包含ipv6全局地址的区域内前缀tlv,本实施例对使用哪种ospfv3 lsa携带包含ipv6全局地址的区域内前缀tlv不做限定。
82.在一些实施例中,通过扩展新类型的tlv携带直连接口的ipv6全局地址。例如,携带直连接口的ipv6全局地址的tlv称为ipv6全局地址tlv。ipv6全局地址tlv也称ipv6全局地址尾子tlv(ipv6 global address tail sub-tlv)。ipv6全局地址tlv包括类型字段、长度字段以及值字段。ipv6全局地址tlv中类型字段包括ipv6全局地址tlv的类型。ipv6全局地址tlv中类型字段例如占用16个比特。ipv6全局地址tlv中类型字段中的类型用于标识ipv6全局地址tlv携带有ipv6全局地址。例如,类型字段中类型的具体取值为1,或者为1之外的其他新申请的类型值。ipv6全局地址tlv中长度字段例如占用16个比特。值字段包括直连接口的ipv6全局地址。例如,请参考附图5,附图5是对ipv6全局地址tlv的格式的举例说明。ipv6全局地址tlv中的值字段包括全局地址尾部(global address tail)字段。全局地址尾部字段包括直连接口的ipv6全局地址。全局地址尾部字段包括ipv6全局地址的非前缀部分。全局地址尾部字段例如占用32个比特或者32个比特的偶数倍。全局地址尾部字段携带的地址被填充成偶数个32位的词。ipv6全局地址tlv中长度字段包括的长度为全局地址
尾部字段的长度。
83.本实施例对使用ospfv3报文中的哪个位置携带ipv6全局地址tlv中不做限定。在一些实施例中,ospfv3报文包括e-link-lsa,e-link-lsa包括ipv6全局地址tlv。在一些实施例中,ospfv3报文包括区域内前缀tlv,区域内前缀tlv包括ipv6全局地址tlv。在一些实施例中,参见附图4以及附图5,附图4中的“sub-tlvs”包括附图5所示的ipv6全局地址tlv。
84.在一些实施例中,ospfv3报文包括e-link-lsa,且e-link-lsa包括区域内前缀tlv,区域内前缀tlv包括ipv6全局地址tlv。通过在ospfv3中扩展e-link-lsa,在e-link-lsa中的区域内前缀tlv携带新增的ipv6全局地址tlv,从而通过ipv6全局地址tlv把直连接口上完整的ipv6全局地址发布给邻居,使得邻居得到直连接口上完整的ipv6全局地址供校验使用。
85.以上介绍了系统架构,以下通过方法300,示例性介绍基于上文提供的系统架构实现end.x sid校验以及end.x sid泛洪的方法流程。
86.参见附图6,附图6是本技术实施例提供的一种通信方法300的流程图。
87.可选地,方法300由如附图1或附图2所示系统架构中的网络设备rt2以及网络设备pe2交互执行,方法300中的第二网络设备为附图1或附图2所示系统架构中的网络设备pe2,方法300中的第一网络设备为附图1或附图2所示系统架构中的网络设备rt2。方法300中的ipv6全局地址以及end.x sid例如是网络设备rt2以及网络设备pe2上预先配置的数据。
88.可选的,方法300由通用中央处理器(central processing unit,cpu)处理,也可以由cpu和网络处理器(network processer,np)共同处理,也可以不用np,而使用其他适合用于报文转发的处理器,本技术实施例不做限制。
89.示例性地,方法300包括s310至s350。
90.s310、第一网络设备与第二网络设备建立ip链路。
91.s320、第二网络设备向第一网络设备发送第二接口的ipv6全局地址。
92.第二接口是指第二网络设备上的一个接口。例如,参见附图2,第二网络设备是pe2,第二接口是pe2上的ethernet3/0/1,第二接口的ipv6全局地址是2001:db8:2::2。
93.第一接口是指第一网络设备上的一个接口。第二接口通过链路与第一接口相连。例如,参见附图2,第一网络设备是rt2,第一接口是rt2上的ethernet3/0/0,第一接口的ipv6全局地址是2001:db8:2::1/64。第二接口与第一接口之间的链路是ethernet3/0/1与ethernet3/0/0之间的链路。
94.第二网络设备获取第二接口的ipv6全局地址。第二网络设备发布第二接口的ipv6全局地址。第一网络设备接收第二接口的ipv6全局地址。通过这种方式,由于第二网络设备将与邻居(第一网络设备)直连的接口上的ipv6全局地址发给邻居(第一网络设备),使得邻居(第一网络设备)能够获得完整的对端接口的ipv6全局地址,便于邻居利用ipv6全局地址进行校验,降低邻居校验end.x sid绑定的下一跳的可达性的实现复杂度。
95.本实施例对如何发布第二接口的ipv6全局地址不做限定。在一些实施例中,第二网络设备采用泛洪的方式发布第二接口的ipv6全局地址。换句话说,第二网络设备泛洪第二接口的ipv6全局地址,使得第二接口的ipv6全局地址传输至第一网络设备。在另一些实施例中,第二网络设备向控制器发送第二接口的ipv6全局地址,控制器从第二网络设备接收第二接口的ipv6全局地址,控制器向第一网络设备发送第二接口的ipv6全局地址。
96.在使用泛洪的方式发布第二接口的ipv6全局地址的情况下,本实施例对泛洪的范围不做限定。在一些实施例中,第二网络设备在link scope泛洪第二接口的ipv6全局地址。其中,link scope包括第一网络设备以及第二网络设备。例如,第二网络设备通过第二接口发送第二接口的ipv6全局地址。第一网络设备通过第一接口接收第二接口的ipv6全局地址,使得第二接口的ipv6全局地址从第二网络设备的第二接口传输至第一网络设备的第一接口。例如参考附图2,pe2通过ethernet3/0/1发送2001:db8:2::2,2001:db8:2::2传输至rt2的ethernet3/0/0,rt2从ethernet3/0/0接收2001:db8:2::2。通过在link scope范围泛洪,在将ipv6全局地址传递给邻居节点的基础上减少了资源开销。在另一些实施例中,第二网络设备在ospf域内泛洪第二接口的ipv6全局地址。
97.在一些实施例中,在使用ospfv3发布ipv6全局地址的情况下,第二网络设备生成第一ospfv3报文,第二网络设备向第一网络设备发送第一ospfv3报文。第一网络设备接收第一ospfv3报文,从第一ospfv3报文中获得第二接口的ipv6全局地址。
98.其中,第一ospfv3报文包括第二接口的ipv6全局地址。例如,第一ospfv3报文包括e-link-lsa,e-link-lsa包括第二接口的ipv6全局地址。例如,e-link-lsa包括区域内前缀值tlv,区域内前缀tlv包括第二接口的ipv6全局地址。例如,区域内前缀tlv包括ipv6全局地址tlv,ipv6全局地址tlv包括类型字段以及值字段,类型字段中的类型用于标识ipv6全局地址tlv携带有ipv6全局地址,值字段包括第二接口的ipv6全局地址。e-link-lsa、区域内前缀tlv以及ipv6全局地址tlv的细节请参考上文的描述,本实施例不做赘述。
99.通过扩展ospfv3协议,两个网络设备之间使用ospfv3协议学习邻居接口上的ipv6全局地址,由于ospfv3协议是网络设备学习路由普遍使用的协议,因此网络设备能够复用已有的软硬件基础设施获得邻居接口上的ipv6全局地址,减少网络设备所需支持的协议种类,降低对网络设备的要求,免去了借助外部协议带来的复杂度,因此提高了本技术方案的可用性。
100.在一些实施例中,第一网络设备与第二网络设备建立邻接关系。例如,在使用ospfv3发布ipv6全局地址以及泛洪end.x sid的情况下,第一网络设备与第二网络设备建立ospfv3邻接关系。第一网络设备与第二网络设备在进行lsdb同步的过程中,执行步骤s320。例如参见附图2,rt2与pe2建立ospfv3邻接关系。rt2与pe2进行lsdb同步。pe2确定ethernet3/0/1的ipv6全局地址为2001:db8:2::2,pe2将2001:db8:2::2携带在e-link-lsa中区域内前缀tlv中的ipv6全局地址tlv。rt2解析e-link-lsa、区域内前缀tlv以及ipv6全局地址tlv,学习到pe2上ethernet3/0/1的ipv6全局地址为2001:db8:2::2。
101.本实施例对第二接口的ipv6全局地址的发布时机不做限定。以下通过方式一和方式二对何时发布第二接口的ipv6全局地址举例说明。
102.方式一、默认发布的方式。
103.默认发布意味着link scope内会默认存在e-link-lsa,且携带ipv6全局地址。在采用默认发布方式的情况下,第二网络设备向第二网络设备的每个邻居节点发布第二接口的ipv6全局地址。例如,每当第二网络设备与一个邻居节点建立ospfv3邻接关系,则第二网络设备向该邻居节点发送ipv6全局地址tlv,ipv6全局地址tlv包括第二网络设备上与邻居节点相连的第二接口的ipv6全局地址,从而将第二接口的ipv6全局地址发布至直连的邻居节点。
104.方式二、对已使能srv6的直连邻居发布。
105.例如,第二网络设备判断直连的邻居节点是否已经使能srv6,如果直连的邻居节点已经使能srv6,则第二网络设备向直连的邻居节点发送第二接口的ipv6全局地址。
106.第二网络设备如何判断邻居节点是否使能srv6包括多种方式。在一些实施例中,通过解析srv6能力信息判断邻居节点是否使能srv6。其中,srv6能力信息例如为srv6能力tlv(srv6 capabilities tlv)。srv6能力tlv用于通告本端支持的srv6能力。具体地,第一网络设备向第二网络设备发送srv6能力信息,srv6能力信息用于指示第一网络设备已使能srv6。第二网络设备接收srv6能力信息,根据srv6能力信息确定第一网络设备已使能srv6,则向第一网络设备发布述第二接口的ipv6全局地址。
107.通过方式二,由于仅对使能了srv6的直连邻居发布直连接口的ipv6全局地址,相对方式一来说,免去了向未使能srv6的直连邻居发布带来的通信开销,节省了系统资源。
108.s330、第一网络设备获取end.x sid。
109.end.x sid用于标识第一网络设备与第二网络设备之间的一条链路。end.x sid用于指示第一网络设备在报文的目的地址命中end.x sid的情况下,通过end.x sid绑定的出接口向end.x sid绑定的下一跳转发报文。end.x sid为第一网络设备本地的sid。end.x sid绑定的出接口为第一网络设备的第一接口。end.x sid绑定的下一跳为第二网络设备。
110.end.x sid绑定的下一跳通过下一跳信息指明。下一跳信息为第二网络设备的ip地址。本实施例中,下一跳信息为第二网络设备上第二接口的ipv6全局地址。更具体地说,下一跳信息是不包含掩码信息的ipv6全局地址。例如,请参考附图2,end.x sid为rt2上配置的2001::1。end.x sid(2001::1)用于标识rt2与pe2之间的一条链路。end.x sid(2001::1)绑定的出接口为rt2上的ethernet3/0/0。end.x sid(2001::1)绑定的下一跳为pe2。
111.通过使用ipv6全局地址作为下一跳信息,便于在转发报文的过程中找到下一跳的mac地址以便进行链路层封装。具体地,第一网络设备在转发报文的过程中,如果报文的目的地址命中了end.x sid,第一网络设备会从本地sid表中查找end.x sid绑定的ipv6全局地址,根据ipv6全局地址确定第二网络设备的mac地址,根据第二网络设备的mac地址对报文进行链路层封装,通过end.x sid绑定的出接口转发封装后的报文。因此,在end.x sid绑定的ipv6全局地址正确的情况下,才能根据ipv6全局地址找到第二网络设备的mac地址;在end.x sid绑定的ipv6全局地址错误的情况下,无法根据ipv6全局地址找到第二网络设备的mac地址,也就无法执行后续的链路层封装以及转发动作。
112.本实施例中,end.x sid绑定的下一跳信息的形式为ipv6全局地址。
113.在一些实施例中,第一网络设备接收配置指令,配置指令包括end.x sid、end.x sid绑定的下一跳信息以及end.x sid绑定的出接口。第一网络设备从配置指令中,获得end.x sid、end.x sid绑定的下一跳信息以及end.x sid绑定的出接口。第一网络设备在本地sid表中新建一个表项,第一网络设备在建立的表项中保存end.x sid、下一跳信息以及出接口之间的对应关系。
114.配置指令用于配置end.x sid以及end.x sid相关的信息。配置指令例如由管理员在第一网络节点上的配置操作触发,又如由控制器(controller)触发。end.x sid绑定的下一跳信息用于表示end.x sid绑定的下一跳。
115.本实施例对s320与s330的时序不做限定。在一些实施例中,s320与s330可以顺序
执行。例如,可以先执行s320,再执行s330;也可以先执行s330,再执行s320。
116.s340、第一网络设备对end.x sid绑定的下一跳信息与第二网络设备的第二接口的ipv6全局地址进行匹配。
117.在一些实施例中,匹配的方式为严格匹配的方式。例如,第一网络设备判断end.x sid绑定的下一跳信息与第二接口的ipv6全局地址是否相同。若end.x sid绑定的下一跳信息与第二接口的ipv6全局地址相同,则第一网络设备确定匹配成功。若end.x sid绑定的下一跳信息与第二接口的ipv6全局地址不同,则第一网络设备确定匹配失败。
118.在一些实施例中,第一网络设备接收对end.x sid的泛洪请求,在泛洪请求的触发下执行步骤s340,以便根据匹配结果确定是否泛洪。
119.其中,泛洪请求用于指示第一网络设备在srv6网络中泛洪end.x sid。例如,请参考附图2,rt2基于ospfv3协议收到本地泛洪end.x sid(2001::1)的请求后,从rt2的本地配置中获得end.x sid的下一跳信息,并读取对端节点pe2之前发来的接口ethernet3/0/1的ipv6全局地址(如2001:db8:2::2)。rt2将下一跳信息与ethernet3/0/1的ipv6全局地址(如2001:db8:2::2)比对。
120.s350、若下一跳信息与ipv6全局地址匹配成功,第一网络设备泛洪end.x sid。
121.若下一跳信息与ipv6全局地址匹配成功,表明end.x sid绑定的下一跳信息是可达的,则end.x sid校验通过,第一网络设备泛洪end.x sid。若下一跳信息与ipv6全局地址匹配失败,表明end.x sid绑定的下一跳信息是不可达的,则end.x sid校验不通过,第一网络设备拒绝泛洪end.x sid。
122.在一些实施例中,若下一跳信息与ipv6全局地址匹配失败,第一网络设备还输出提示信息。例如,第一网络设备向控制器发送提示信息。提示信息用于指示end.x sid绑定的下一跳信息不可达,以便提示重新配置end.x sid绑定的下一跳信息。
123.第一网络设备如何泛洪end.x sid包括多种方式。在一些实施例中,第一网络设备基于igp泛洪end.x sid。在一些实施例中,第一网络设备基于ospfv3泛洪end.x sid。例如,第一网络设备根据end.x sid生成第二ospfv3报文,第二ospfv3报文包括end.x sid;第一网络设备泛洪第二ospfv3报文。例如,第一网络设备将end.x sid封装至ospfv3 lsa中,泛洪携带end.x sid的ospfv3 lsa。其中,利用ospfv3泛洪end.x sid的方式可参考draft-ietf-lsr-ospfv3-srv6-extensions-00。
124.通过使用ospfv3协议发布直连接口的ipv6全局地址以及泛洪end.x sid,一方面,解决end.x sid的下一跳配置为ipv6全局地址时,ospfv3无法校验其可达性的问题。另一方面,由于end.x sid的发布和校验均使用ospfv3协议实现,无需借助ospfv3协议之外的其他协议,降低了网络管理人员的工作复杂度,不必要求管理人员对多种协议熟练掌握。此外,网络设备校验end.x sid的功能可复用处理ospfv3的软硬件基础设施,减少网络设备所支持的协议种类,降低对网络设备的要求,因此降低了实现复杂度。
125.本实施例提供了一种能够准确校验end.x sid绑定的下一跳的可达性的方法。通过在泛洪end.x sid之前,对end.x sid绑定的下一跳信息与邻居上直连接口的ipv6全局地址进行匹配,从而校验end.x sid绑定的下一跳的可达性。在下一跳信息与ipv6全局地址匹配成功的情况下,end.x sid校验通过,允许泛洪end.x sid。一方面,保证泛洪出去的end.x sid绑定的下一跳是可达的,避免泛洪的下一跳不可达的end.x sid会带来的网络资源浪费
以及设备性能开销。另一方面,避免仅用ipv6前缀校验下一跳可达性而导致错误的下一跳信息也被校验通过的情况,因此显著提高校验end.x sid绑定的下一跳可达性的准确率。
126.以上介绍了本技术实施例的方法300,以下介绍本技术实施例的网络设备。下面介绍的网络设备具有上述方法300中第一网络设备或第二网络设备的任意功能。
127.附图7示出了上述实施例中所涉及的第一网络设备的一种可能的结构示意图。附图7所示的网络设备400例如实现方法300中第一网络设备的功能,或者,网络设备400实现附图2所示的网络设备rt2的功能。
128.请参考附图7,网络设备400包括获取单元401、匹配单元402和泛洪单元403。网络设备400中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。网络设备400中的各个单元用于执行上述方法300中第一网络设备或网络设备rt2的相应功能。具体地,获取单元401用于支持网络设备400执行s330。匹配单元402用于支持网络设备400执行s340。泛洪单元403用于支持网络设备400执行s350。
129.在一些实施例中,获取单元401、匹配单元402或泛洪单元403还用于支持网络设备400执行本文所描述的技术中第一网络设备执行的其它过程。例如,获取单元401用于支持网络设备400执行方法300中第一网络设备执行的各种接收操作,如从第二网络设备接收ipv6全局地址的操作、接收第一ospfv3报文的操作。具体执行过程请参考方法300中相应步骤的详细描述,这里不再一一赘述。
130.本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
131.在一些实施例中,网络设备400中各个功能单元集成在一个处理单元中。例如,网络设备400中各个功能单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。匹配单元402通过芯片中的处理电路实现。获取单元401通过芯片中的输入接口实现。泛洪单元403通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(英文全称:field-programmable gate array,英文简称:fpga)、可编程逻辑器件(英文全称:programmable logic device,英文简称:pld)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本技术通篇所描述的各种功能的电路的任意组合实现。
132.在另一些实施例中,网络设备400各个功能单元单独物理存在。在另一些实施例中,网络设备400一部分功能单元单独物理存在,另一部分功能单元集成在一个单元中。例如,在一些实施例中,匹配单元402和泛洪单元403是同一个单元。在另一些实施例中,匹配单元402和泛洪单元403是不同的单元。在一些实施例中,不同功能单元的集成采用硬件的形式实现,即,不同功能单元对应于同一个硬件。又如,不同功能单元的集成采用软件功能单元的形式实现。
133.在网络设备400中通过硬件实现的情况下,网络设备400中匹配单元402例如通过网络设备600中的中央处理器631、中央处理器611、中央处理器641或者网络设备700中的处理器701实现。网络设备400中获取单元401、泛洪单元403例如通过网络设备600中物理接口卡633或网络设备700中的通信接口704实现。
134.在网络设备400中通过软件实现的情况下,网络设备400中各个单元例如为网络设备600中的中央处理器631、中央处理器611、中央处理器641或者网络设备700中的处理器
701读取存储器中存储的程序代码后生成的软件。例如,网络设备400为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、pod中的至少一种。在一些实施例中,网络设备400以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现网络设备400。采用虚拟机的方式实现时,网络设备400例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出网络设备400。在另一些实施例中,网络设备400以容器(例如docker容器)的形式,部署在硬件设备上。例如,网络设备400执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建网络设备400。在另一些实施例中,网络设备400以pod的形式,部署在硬件设备上。pod包括多个容器,每个容器用于实现网络设备400中的一个或多个功能单元。
135.附图8示出了上述实施例中所涉及的第二网络设备的一种可能的结构示意图。附图8所示的网络设备500例如实现方法300中第二网络设备的功能,或者,网络设备500实现附图2所示的网络设备pe2的功能的功能。
136.请参考附图8,网络设备500包括获取单元501和发送单元502。网络设备500中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。网络设备500中的各个单元用于执行上述方法实施例中第二网络设备或网络设备pe2的相应功能。具体地,获取单元501用于支持网络设备500执行获取接口的ipv6全局地址的步骤。发送单元502用于支持网络设备500执行s320。
137.在一些实施例中,获取单元501或发送单元502还用于支持网络设备500执行本文所描述的技术中第二网络设备执行的其它过程。例如,获取单元501用于支持网络设备500执行方法300中第二网络设备执行的接收srv6能力信息的操作。例如,发送单元502用于支持网络设备500执行方法300中第二网络设备执行的各种发送操作。具体执行过程请参考方法300中相应步骤的详细描述,这里不再一一赘述。
138.本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
139.在一些实施例中,网络设备500中各个功能单元集成在一个处理单元中。例如,网络设备500中各个功能单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。获取单元501通过芯片中的处理电路实现。获取单元501通过芯片中的输入接口实现。发送单元502通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(英文全称:field-programmable gate array,英文简称:fpga)、可编程逻辑器件(英文全称:programmable logic device,英文简称:pld)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本技术通篇所描述的各种功能的电路的任意组合实现。
140.在另一些实施例中,网络设备500各个功能单元单独物理存在。在另一些实施例中,网络设备500一部分功能单元单独物理存在,另一部分功能单元集成在一个单元中。例如,在一些实施例中,获取单元501和发送单元502是同一个单元。在另一些实施例中,获取单元501和发送单元502是不同的单元。在一些实施例中,不同功能单元的集成采用硬件的形式实现,即,不同功能单元对应于同一个硬件。又如,不同功能单元的集成采用软件功能单元的形式实现。
141.在网络设备500中通过硬件实现的情况下,网络设备500中获取单元501例如通过网络设备600中的中央处理器631、中央处理器611或者网络设备700中的处理器701实现。网络设备500中发送单元502例如通过网络设备600中物理接口卡633或网络设备700中的通信接口704实现。
142.在网络设备500中通过软件实现的情况下,网络设备500中各个单元例如为网络设备600中的中央处理器631、中央处理器611或者网络设备700中的处理器701读取存储器中存储的程序代码后生成的软件。例如,网络设备500为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、pod中的至少一种。在一些实施例中,网络设备500以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现网络设备500。采用虚拟机的方式实现时,网络设备500例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出网络设备500。在另一些实施例中,网络设备500以容器(例如docker容器)的形式,部署在硬件设备上。例如,网络设备500执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建网络设备500。在另一些实施例中,网络设备500以pod的形式,部署在硬件设备上。pod包括多个容器,每个容器用于实现网络设备500中的一个或多个功能单元。
143.以上通过网络设备400和网络设备500,从逻辑功能的角度介绍了如何实现第一网络设备或第二网络设备。以下通过网络设备600和网络设备700,从硬件的角度介绍如何实现第一网络设备以及第二网络设备。附图8所示的网络设备600和网络设备700是对第一网络设备或第二网络设备的硬件结构的举例说明。
144.网络设备600或网络设备700对应于上述方法300中的第一网络设备或第二网络设备,网络设备600或网络设备700中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中第一网络设备或第二网络设备所实施的各种步骤和方法,关于网络设备600或网络设备700如何校验end.x sid绑定的下一跳的可达性的详细流程,具体细节可参见上述方法300,为了简洁,在此不再赘述。其中,方法300的各步骤通过网络设备600或网络设备700处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块例如位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
145.参见附图9,附图9示出了本技术一个示例性实施例提供的网络设备的结构示意图,网络设备600例如配置为第一网络设备或第二网络设备。网络设备600包括:主控板610和接口板630。
146.主控板也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板610用于对网络设备600中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板610包括:中央处理器611和存储器612。
147.接口板630也称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板630用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网
业务接口(flexible ethernet clients,flexe clients)。接口板630包括:中央处理器631、网络处理器632、转发表项存储器634和物理接口卡(physical interface card,pic)633。
148.接口板630上的中央处理器631用于对接口板630进行控制管理并与主控板610上的中央处理器611进行通信。
149.网络处理器632用于实现报文的转发处理。网络处理器632的形态例如是转发芯片。具体而言,网络处理器632用于基于转发表项存储器634保存的转发表转发接收到的报文,如果报文的目的地址为网络设备600的地址,则将该报文上送至cpu(如中央处理器611)处理;如果报文的目的地址不是网络设备600的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
150.物理接口卡633用于实现物理层的对接功能,原始的流量由此进入接口板630,以及处理后的报文从该物理接口卡633发出。物理接口卡633也称为子卡,可安装在接口板630上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器632处理。在一些实施例中,中央处理器也可执行网络处理器632的功能,比如基于通用cpu实现软件转发,从而物理接口卡633中不需要网络处理器632。
151.可选地,网络设备600包括多个接口板,例如网络设备600还包括接口板640,接口板640包括:中央处理器641、网络处理器642、转发表项存储器644和物理接口卡643。
152.可选地,网络设备600还包括交换网板620。交换网板620也例如称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板630的情况下,交换网板620用于完成各接口板之间的数据交换。例如,接口板630和接口板640之间例如通过交换网板620通信。
153.主控板610和接口板630耦合。例如。主控板610、接口板630和接口板640,以及交换网板620之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板610和接口板630之间建立进程间通信协议(inter-process communication,ipc)通道,主控板610和接口板630之间通过ipc通道进行通信。
154.在逻辑上,网络设备600包括控制面和转发面,控制面包括主控板610和中央处理器631,转发面包括执行转发的各个组件,比如转发表项存储器634、物理接口卡633和网络处理器632。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器632基于控制面下发的转发表对物理接口卡633收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器634中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
155.应理解,本技术实施例中接口板640上的操作与接口板630的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备600可对应于上述各个方法实施例中的网络设备,该网络设备600中的主控板610、接口板630和/或640例如实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
156.值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多
块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
157.参见附图10,附图10示出了本技术一个示例性实施例提供的网络设备的结构示意图,该网络设备700可以配置为网络设备。该网络设备700可以是主机、服务器或个人计算机等。该网络设备700可以由一般性的总线体系结构来实现。
158.网络设备700包括至少一个处理器701、通信总线702、存储器703以及至少一个通信接口704。
159.处理器701例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器701包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
160.通信总线702用于在上述组件之间传送信息。通信总线702可以分为地址总线、数据总线、控制总线等。为便于表示,附图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
161.存储器703例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器703例如是独立存在,并通过通信总线702与处理器701相连接。存储器703也可以和处理器701集成在一起。
162.通信接口704使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口704包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
163.在具体实现中,作为一种实施例,处理器701可以包括一个或多个cpu,如附图10中
所示的cpu0和cpu1。
164.在具体实现中,作为一种实施例,网络设备700可以包括多个处理器,如附图10中所示的处理器701和处理器705。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
165.在具体实现中,作为一种实施例,网络设备700还可以包括输出设备和输入设备。输出设备和处理器701通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
166.在一些实施例中,存储器703用于存储执行本技术方案的程序代码710,处理器701可以执行存储器703中存储的程序代码710。也即是,网络设备700可以通过处理器701以及存储器703中的程序代码710,来实现方法实施例提供的通信方法。
167.本技术实施例的网络设备700可对应于上述各个方法实施例中的第一网络设备或第二网络设备,并且,该网络设备700中的处理器701、通信接口704等可以实现上述各个方法实施例中的第一网络设备或第二网络设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
168.参见附图11,本技术实施例提供了一种网络系统800,系统800包括:第一网络设备801和第二网络设备802。可选的,第一网络设备801为如附图7所示的网络设备400或附图9所示的网络设备600或附图10所示的网络设备700,第二网络设备802为如附图8的网络设备500或附图9所示的网络设备600或附图10所示的网络设备700。
169.本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
170.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
171.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
172.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的
目的。
173.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
174.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
175.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一ospfv3报文可以被称为第二ospfv3报文,并且类似地,第二ospfv3报文可以被称为第一ospfv3报文。第一ospfv3报文和第二ospfv3报文都可以是ospfv3报文,并且在某些情况下,可以是单独且不同的ospfv3报文。
176.本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上。
177.还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0178]
以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
[0179]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0180]
该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例
如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
[0181]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0182]
以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献