1.本技术涉及通信技术领域,特别涉及一种报文处理方法、网络设备及系统。
背景技术:2.段路由(segment routing,sr)是基于源路由理念而设计的在网络上转发报文的一种协议。sr将网络路径分成一个个段,并且为这些段和网络中的转发节点分配段标识(segment id,sid)。通过对段和网络节点进行有序排列,得到段列表(segment list),就可以通过段列表指示一条转发路径。
3.目前基于sr技术转发报文的基本流程为,当sr路径上头端设备接收到源主机发送的原始报文后,头端设备会将原始报文封装为sr报文,并向sr路径上下一跳节点发送sr报文。sr报文的源ip地址为头端的互联网协议(internet protocol,ip)地址。sr报文的目的ip地址为下一跳节点的sid。sr报文包括sr路径中每个节点的sid。sr路径经过的中间节点接收到sr报文后,中间节点会保持sr报文的源ip地址不变,并将sr报文的目的ip地址更新为下一跳节点的sid,再将sr报文转发至下一跳节点。当sr报文转发至尾端时,尾端将sr报文解封装为原始报文,将原始报文发送给目的主机。
4.如果sr路径要跨越多个不同路由域的underlay网络,可能由于单播反向路由查找(unicast reverse path forwarding,urpf)检查不通过导致报文被丢弃。
技术实现要素:5.本技术实施例提供了一种报文处理方法、网络设备及系统,能够避免由于urpf检查不通过导致报文被丢弃的问题。所述技术方案如下。
6.第一方面,提供了一种报文处理方法,该方法可选地由sr路径上充当中间节点的网络设备执行。以第一网络设备充当中间节点为例,该方法包括:第一网络设备接收来自第二网络设备的第一报文,所述第一报文的ip地址包括第一连接的端点ip地址,所述第一报文包括sid,所述sid指示第二连接,所述第一连接为从所述第二网络设备至所述第一网络设备的连接,所述第二连接为从所述第一网络设备至第三网络设备的连接;所述第一网络设备处理所述第一报文,以得到第二报文,所述第二报文的源ip地址为所述第二连接的端点ip地址中属于所述第一网络设备的ip地址,所述第二报文的目的ip地址为所述第二连接的端点ip地址中属于所述第三网络设备的ip地址;所述第一网络设备向所述第三网络设备发送所述第二报文。
7.在上述方法中,由于中间节点根据连接的端点ip地址中属于本端的ip地址更新报文的源ip地址,并根据连接的端点ip地址中属于远端的ip地址更新报文的目的ip地址,一方面,在sr路径跨越多个不同路由域的下层(underlay)传输网络的场景下,避免由于源ip地址保持为头端的ip地址造成urpf检查不通过导致报文被丢弃。另一方面,由于连接的端点ip地址与sid这种ip地址不同,连接的端点ip地址通常是网络设备的wan接口的ip地址,连接的端点ip地址通常是underlay传输网络的运营商分配的ip地址,underlay传输网络天
然能够保证该ip地址的路由可达性,而不必要求underlay网络设备运行支持sr的igp路由协议学习sid对应的网段路由来保证ip地址的路由可达性,因此转发路径的建立无需依赖于underlay传输网络的路由协议。
8.可选地,上述第一连接和/或第二连接是隧道虚拟连接(tunnel virtual connection,tvc)。tvc通常与物理链路不同,tvc是逻辑上的虚拟连接,一条tvc通常会经过一个或多个underlay传输网络。例如,上述第一连接经过了第一underlay网络,上述第二连接经过了第二underlay网络。
9.可选地,上述第一连接和/或第二连接的端点ip地址是underlay网络运营商分配的广域网wan接口的ip地址。
10.由于wan接口的ip地址是underlay网络运营商分配的,这种ip地址的路由可达性underlay网络运营商负责保证,网络设备无需通过路由协议向underlay网络中设备通告包含这种ip地址的路由,从而摆脱了对underlay网络的路由协议的依赖性,节省了通告路由带来的开销。
11.可选地,上述第一连接和/或第二连接的端点ip地址是公网ip地址。
12.可选地,上述第一连接和/或第二连接是不同站点(site)之间的连接。例如,上述第二网络设备部署在第一站点中,上述第一网络设备部署在第二站点中,上述第三网络设备部署在第三站点中。上述第一连接为从第一站点至第二站点的连接,上述第三连接为从第二站点至第三站点的连接。
13.通过上述实现方式,支持在多个站点之间建立转发路径,有助于更灵活的进行流量规划。
14.可选地,上述第一连接的端点ip地址为互联网协议第6版ipv6地址,上述第一报文包括段路由头srh,上述sid位于上述第一报文的srh中。上述第一报文包括ipv6头,ipv6头封装于原始报文的外层,第一连接的端点ip地址位于第一报文的ipv6头中。
15.可选地,上述第二连接的端点ip地址为ipv6地址。第二报文包括ipv6头,ipv6头封装于原始报文的外层,第二连接的端点ip地址位于第二报文的ipv6头中。
16.通过上述实现方式,由于连接的两个端点之间基于ipv6地址传输报文,并在报文中封装了srh,从而有助于支持在ipv6传输网络上构建sd-wan sr隧道。
17.可选地,上述第一连接的端点ip地址为互联网协议第4版ipv4地址,上述第一报文包括srh,上述sid位于上述第一报文的srh中。上述第一报文包括ipv4头,ipv4头封装于原始报文的外层,上述第一连接的端点ip地址为位于第一报文的ipv4头中。
18.可选地,上述第二连接的端点ip地址为ipv4地址。第二报文包括ipv4头,ipv4头封装于原始报文的外层,上述第二连接的端点ip地址为位于第二报文的ipv4头中。
19.通过上述实现方式,由于连接的两个端点之间基于ipv4地址传输报文,从而有助于支持在ipv4传输网络上构建sd-wan sr隧道。
20.可选地,上述第一报文包括srh对应的协议类型。
21.可选地,上述第一报文包括gre头,该gre头封装于srh的外层,srh对应的协议类型位于上述第一报文的gre头中。
22.可选地,上述第一报文包括vxlan头,该vxlan头封装于srh的外层,srh对应的协议类型位于上述第一报文的vxlan头中。
23.可选地,srh对应的协议类型位于上述第一报文的ipv4头中。
24.通过上述实现方式,由于报文中srh之前包含srh对应的协议类型,便于中间节点根据协议类型识别出srh,进而根据srh中的sid进行处理,降低了实现复杂度。
25.可选地,第一方面提供的方法还包括流量转发阶段之前上报端点的ip地址的过程。在一种可能的实现中,由充当源端的网络设备向控制器设备上报连接的端点ip地址。例如,第二网络设备向控制器设备发送第一连接的端点ip地址。第一网络设备向控制器设备发送上述第二连接的端点ip地址。在另一种可能的实现中,由充当目的端的网络设备向控制器设备上报连接的端点ip地址。例如,第一网络设备向控制器设备发送第一连接的端点ip地址。第三网络设备向控制器设备发送上述第二连接的端点ip地址。在另一种可能的实现中,充当源端的网络设备和充当目的端的网络设备均向控制器设备上报连接的端点ip地址,控制器设备从两个网络设备上报的连接的端点ip地址中选择一份ip地址。例如,第二网络设备向控制器设备发送第一连接的端点ip地址。所述第一网络设备向控制器设备发送所述第二连接的端点ip地址和所述第一连接的端点ip地址。第三网络设备向控制器设备发送上述第二连接的端点ip地址。控制器设备接收第二网络设备发送的第一连接的端点ip地址、第一网络设备发送的第一连接的端点ip地址之后,从两份第一连接的端点ip地址中选择一份第一连接的端点ip地址用于算路。控制器设备接收第一网络设备发送的第二连接的端点ip地址、第三网络设备发送的第二连接的端点ip地址之后,从两份第二连接的端点ip地址中选择一份第二连接的端点ip地址用于算路。
26.通过上述实现方式,支持控制器设备感知网络中每条连接的端点ip地址,从而辅助控制器设备编排出包含多条连接的sr路径,降低了控制器算路的难度。
27.可选地,上述上报连接的端点ip地址的过程包括:上述第一网络设备生成边界网关协议链路状态(border gateway protocol link-state,bgp ls)报文,上述bgp-ls报文包括上述第二连接的端点ip地址和/或上述第一连接的端点ip地址,上述bgp-ls报文还包括sd-wan协议的标识;上述第一网络设备向上述控制器设备发送上述bgp-ls报文。
28.由于在bgp-ls中扩展出一种新的协议标识,使得控制器设备接收到bgp-ls报文时,能够通过该协议标识,识别出网络设备上报的数据属于sd-wan的拓扑数据。
29.可选地,第一网络设备接收来自第二网络设备的第一报文之前,第一网络设备还获取第一网络设备所在的站点的标识,向控制器设备发送上述第一网络设备所在的站点的标识。
30.由于网络设备向控制器设备上报了其所在的站点的标识,便于控制器设备以站点为对象进行路径计算。
31.可选地,第一网络设备接收来自第二网络设备的第一报文之前,第一网络设备还检测第一连接和/或上述第二连接的通断状态,向控制器设备发送上述第一连接和/或上述第二连接的通断状态。在一种可能的实现中,第一网络设备周期性地向控制器设备发送上述第一连接和/或上述第二连接的通断状态。在一种可能的实现中,当第一连接的通断状态发生更新时,第一网络设备向控制器设备发送上述第一连接的通断状态。在一种可能的实现中,当第二连接的通断状态发生更新时,第一网络设备向控制器设备发送上述第二连接的通断状态。
32.由于网络设备向控制器设备上报了连接的通断状态,有助于控制器设备及时感知
到sr路径中每条连接的状态,实现端到端路径状态感知。如果控制器发现某一条sr路径中某一段连接发生故障,控制器设备可通过失效sr路径、撤销sr路径或者重新计算sr路径等方式,将流量导入到其他sr路径上,从而避免流量转发到中间被丢弃的情况。
33.可选地,第一网络设备接收来自第二网络设备的第一报文之前,上述方法还包括:上述第一连接和/或上述第二连接的服务等级协议(service-level agreement,sla)信息。sla信息包括而不限于丢包率、时延、抖动或带宽利用率中至少一项。
34.由于网络设备向控制器设备上报了连接的sla信息,有助于控制器设备及时感知到sr路径中每条连接的sla,计算出sla满足业务需求的路径。
35.可选地,控制器设备为第二连接分配sid。控制器设备向第一网络设备发送sid。第一网络设备接收来自控制器设备的sid。
36.通过由控制器设备为连接分配sid,保证连接的两个端点对于同一个连接使用同一个sid指示,防止sid冲突。
37.第二方面,提供了一种报文处理方法,该方法可选地由sr路径上充当头端的网络设备执行。以第二网络设备充当头端为例,该方法包括:第二网络设备接收原始报文;第二网络设备根据原始报文生成第一报文。第一报文的源ip地址为第一连接的端点ip地址中属于所述第二网络设备的ip地址。第一报文的目的ip地址为第一连接的端点ip地址中属于所述第一网络设备的ip地址。第一连接为从所述第二网络设备至所述第一网络设备的连接。第一报文包括第一sid。所述第一sid指示第二连接。所述第二连接为从所述第一网络设备至第三网络设备的连接;第二网络设备向第一网络设备发送第一报文。
38.可选地,上述第一连接和/或第二连接是tvc。上述第一连接和/或第二连接是不同站点之间的连接。
39.在上述方法中,由于头端将一条tvc的端点ip地址作为报文的ip地址,且在报文中携带了指示下一条tvc的sid,报文能通过端点ip地址路由转发至下一个站点,并通过sid指示中间节点将报文转发至下下一个站点,从而解决了sd-wan场景中无法实现报文经过指定的多个站点的问题。
40.可选地,第二网络设备接收原始报文之前,第二网络设备接收控制器设备发送的sr策略。sr策略包括上述第一sid。第二网络设备从sr策略中获得第一sid。
41.可选地,上述sr策略还包括第二sid,上述第二sid指示上述第一连接。
42.可选地,第一报文包括封装于原始报文外层的ip头以及srh。第一连接的端点ip地址位于第一报文的ip头中。第一sid位于第一报文的ip头中。
43.可选地,上述第一报文包括srh对应的协议类型。
44.可选地,上述第一报文包括gre头,该gre头封装于srh的外层,srh对应的协议类型位于上述第一报文的gre头中。
45.可选地,上述第一报文包括vxlan头,该vxlan头封装于srh的外层,srh对应的协议类型位于上述第一报文的vxlan头中。
46.可选地,srh对应的协议类型位于上述第一报文的ipv4头中。
47.第三方面,提供了一种路径确定方法,在该方法中,控制器设备获取多个连接的端点ip地址;上述控制器设备根据上述多个连接的端点ip地址,确定段路由sr路径,上述sr路径包括上述多个连接中第一连接和第二连接,上述第一连接为从上述第一网络设备至第二
网络设备的连接,上述第二连接为从上述第二网络设备至第三网络设备的连接。上述控制器设备向上述第一网络设备发送sr策略,上述sr策略指示上述sr路径。
48.在上述方法中,控制器设备利用多个连接的端点ip地址,编排出包含多个连接的sr路径,向sr路径的头端下发指示该sr路径的sr策略,以便头端按照sr策略转发报文。利用该方法,有助于跨多个站点建立端到端且可编排的路径,便于进行流量规划。
49.可选地,上述多个连接中每个连接为不同站点之间的连接,控制器设备确定sr路径的过程包括:控制器设备根据上述多个连接的端点ip地址,以站点为路径编排对象确定sr路径。
50.可选地,控制器设备确定sr路径的过程包括:控制器设备从同一个站点中不同网络设备建立的连接中选择目标连接,根据目标连接确定sr路径。例如,网络中包含站点1和站点2,站点1中包含网络设备a和网络设备b,站点2中包含网络设备c和网络设备d。控制器设备根据网络设备上报的连接的端点ip地址确定网络中包含四个连接。四个连接分别是从网络设备a到网络设备c的连接、从网络设备a到网络设备d的连接、从网络设备b到网络设备c的连接、从网络设备b到网络设备d的连接。控制器设备根据设定的约束条件,从四个连接中选择目标连接,根据目标连接确定sr路径。
51.在一种可能的实现中,约束条件为sla要求。控制器设备根据网络设备发送的连接的sla信息,从同一个站点的多个连接中选择sla信息满足sla要求的连接,作为目标连接。sla要求包括而不限于时延小于设定时长、丢包率小于设定丢包率、抖动小于设定值、带宽利用率大于设定的带宽利用率等。
52.可选地,上述控制器设备获取多个连接的端点ip地址包括:控制器设备接收上述第一网络设备或上述第二网络设备发送的上述第一连接的端点ip地址。
53.可选地,上述sr策略包括第一sid,上述第一sid指示上述第二连接。
54.可选地,上述sr策略包括第二sid,上述第二sid指示上述第一连接。
55.可选地,上述方法还包括:控制器设备为第二连接分配上述第一sid,并为第一连接分配第二sid。第一sid指示上述第二连接,第二sid指示上述第一连接;控制器设备向上述第二网络设备发送上述第一sid,并向上述第一网络设备发送上述第二sid。
56.控制器设备通过收集每条连接的端点ip地址,为每条连接分配对应的sid,将sid下发给需要sid的网络设备,使得流量转发阶段网络设备能够根据报文携带的sid通过sid对应的连接发送报文,有助于通过sid灵活地控制报文的转发路径。
57.第四方面,提供了一种网络设备。该网络设备具有实现上述第一方面或第一方面任一种可选方式中第一网络设备的功能,该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。或者,该网络设备具有实现上述第二方面或第二方面任一种可选方式中第二网络设备的功能,该网络设备包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面任一种可选方式所提供的方法。
58.在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第四方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式,此处不再赘述。
59.第五方面,提供了一种控制器设备,该控制器设备具有实现上述第三方面或第三方面任一种可选方式的功能。该控制器设备包括至少一个单元,至少一个单元用于实现上述第三方面或第三方面任一种可选方式所提供的方法。在一些实施例中,控制器设备中的单元通过软件实现,控制器设备中的单元是程序模块。在另一些实施例中,控制器设备中的单元通过硬件或固件实现。第五方面提供的控制器设备的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
60.第六方面,提供了一种网络设备,该网络设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述网络设备实现上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式所提供的方法,第六方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式,此处不再赘述。
61.第七方面,提供了一种控制器设备,所述控制器设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述控制器设备实现上述第三方面或第三方面任一种可选方式所提供的方法。第七方面提供的控制器设备的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。
62.第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式所提供的方法。
63.第九方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第三方面或第三方面任一种可选方式所提供的方法。
64.第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式所提供的方法。
65.第十一方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第三方面或第三方面任一种可选方式所提供的方法。
66.第十二方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面或第一方面任一种可选方式或第二方面或第二方面任一种可选方式中的方法。
67.第十三方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第三方面或第三方面任一种可选方式所提供的方法。
68.第十四方面,提供了一种网络系统,该网络系统包括上述第三方面所述的网络设备以及上述第四方面所述的控制器设备;或者,该网络系统包括上述第五方面所述的网络设备以及上述第六方面所述的控制器设备。
附图说明
69.图1是本技术实施例提供的一种sd-wan系统架构示意图;
70.图2是本技术实施例提供的一种企业网络中应用sd-wan系统架构的示意图;
71.图3是本技术实施例提供的一种运营商pop组网中应用sd-wan系统架构的示意图;
72.图4是本技术实施例提供的一种报文处理方法的流程图;
73.图5是本技术实施例提供的一种报文格式的示意图;
74.图6是本技术实施例提供的一种路径确定方法的流程图;
75.图7是本技术实施例提供的一种计算overlay网络中sr路径的示意图;
76.图8是本技术实施例提供的一种建立tvc的示意图;
77.图9是本技术实施例提供的一种拓扑收集和上报的示意图;
78.图10是本技术实施例提供的一种控制器设备下发sr策略的示意图;
79.图11是本技术实施例提供的一种sd-wan系统架构示意图;
80.图12是本技术实施例提供的一种业务引流入sd-wan srv6隧道及转发的示意图;
81.图13是本技术实施例提供的一种业务引流入sd-wan srv4隧道及转发的示意图;
82.图14是本技术实施例提供的一种sd-wan srv6和srv4混合隧道转发的方法示意图;
83.图15是本技术实施例提供的一种通过sd-wan sr隧道转发l3 vpnv6流量的方法示意图;
84.图16是本技术实施例提供的一种通过sd-wan sr隧道转发l2 vpn流量的方法示意图;
85.图17是本技术实施例提供的一种通过sd-wan sr实现多域转发的示意图;
86.图18是本技术实施例提供的一种网络设备的结构示意图;
87.图19是本技术实施例提供的一种控制器设备的结构示意图;
88.图20是本技术实施例提供的一种网络设备或者控制器设备的结构示意图;
89.图21是本技术实施例提供的一种网络设备或者控制器设备的结构示意图。
具体实施方式
90.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
91.下面对本技术实施例涉及的一些术语概念做解释说明。
92.(1)隧道虚拟连接(tunnel virtual connection,tvc)
93.tvc是逻辑上的虚拟连接。tvc通常会跨一个或多个传输网络。
94.(2)连接
95.本技术实施例中“连接”这一术语可替换为tvc、隧道、路径、虚拟连接或者广域网(wide area network,wan)链路。
96.可选地,连接是指不同站点之间的连接,连接经过了站点之间的下层(underlay)传输网络中一个或多个网络设备。
97.可选地,连接的端点互联网协议(internet protocol,ip)地址是指wan接口的ip地址。可选地,连接是单向连接,连接具有方向性。例如,从网络设备a至网络设备b的连接、
从网络设备b至网络设备a的连接不是同一个连接。从网络设备a至网络设备b的连接通过一个段标识(segment id,sid)指示,从网络设备b至网络设备a的连接通过另一个sid指示。也就是说,正向连接和方向连接通过两个不同的sid指示。可替代地,连接是没有方向的连接。例如,从网络设备a至网络设备b的连接、从网络设备b至网络设备a的连接通过同一个sid指示。
98.(3)段路由(segment routing,sr)
99.sr是基于源路由理念而设计的在网络上转发报文的一种协议。sr将网络路径分成一个个段,并且为这些段和网络中的转发节点分配sid。通过对段和网络节点进行有序排列,得到段列表(segment list),就可以通过段列表指示一条转发路径。
100.sr将代表转发路径的段列表编码在数据报文的头部,段列表随数据报文传输。接收端收到数据报文后,对段列表进行解析,如果段列表的活跃sid是本节点的sid时,则对数据报文执行该sid对应的操作;如果活跃sid不是本节点的sid,则接收端使用常规的路由转发方式将数据报文转发到下一节点。
101.(4)基于互联网协议第6版的段路由(internet protocol version 6 for segment routing,srv6)
102.srv6是基于源路由理念而设计的在网络上转发ipv6报文的一种方法。基于ipv6转发面的sr,通过在ipv6报文中插入一个路由扩展头-段路由头(segment routing header,srh),在srh中压入一个显式的ipv6地址栈,通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。srv6技术就是采用现有的ipv6转发技术,通过灵活的ipv6扩展头,实现网络可编程。srv6将一些ipv6地址定义成实例化的sid,每个sid有着自己显式的作用和功能,通过不同的sid操作,实现简化的虚拟专用网络(virtual private network,vpn)以及灵活的路径规划。
103.(5)wan接口的ip地址
104.wan接口也称为传输网络接口(transport network port,tnp)。wan接口的ip地址与srv6 sid这种ip地址不同。这两种ip地址的主要区别在于,srv6 sid是网络设备本地定位(locator)地址池中的地址,而wan接口的ip地址是underlay网络的运营商分配的地址。对于srv6 sid这种ip地址而言,网络设备需要与underlay网络中设备运行ipv6内部网关协议(internal gateway protocol,igp)路由协议。网络设备通过ipv6 igp路由协议向underlay网络中设备通告locator路由,让underlay网络中设备感知sid这种ip地址,才能在流量转发阶段保证srv6 sid这种ip地址的可达性,所以会导致依赖于underlay网络的路由协议的技术问题。对于wan接口这种ip地址而言,由underlay网络运营商保证wan接口的ip地址的路由可达性,网络设备无需通过ipv6 igp路由协议通告额外的路由,也就摆脱了对underlay网络的路由协议的依赖性。
105.(6)软件定义广域网(software-defined wide area network,sd-wan)
106.软件定义广域网(software-defined wide area network,sd-wan)是软件定义网络(software defined networking,sdn)的重要实践。sd-wan通过引入网络控制器,融合网络、安全和广域优化等技术,实现企业wan网络配置和业务的自动化发放,对外提供一种简易、灵活和高品质的企业wan互联能力。sd-wan通常具备以下基本特征:
107.1、基于混合wan链路,实现灵活的ip overlay组网
108.sd-wan通过采用在两个站点的边缘(edge)设备间建立端到端上层(overlay)隧道的方法,实现sd-wan网络和underlay传输网络的独立性,underlay网络链路可以是多协议标签交换(multi-protocol label switching,mpls)专线,也可以是公共因特网(internet)或长期演进(long term evolution,lte)等。
109.2、智能应用选路,保障应用体验
110.企业应用种类繁多,常见的有生产类、协同类、云化、娱乐类等各类应用。不同类型应用对带宽和链路质量要求各不相同。sd-wan通常通过深度报文检测(deep packet inspection,dpi)等应用识别技术,对企业流量进行识别,然后基于应用纬度进行分类统计、质量检测和路径控制。如高价值应用流量优先指定在mpls等有高线路品质但是成本较高的路径上传输,低价值的应用流量指定在internet等低线路品质但也是成本低的路径上传输。
111.3、集中管控和可视化,简单易运维
112.通过集中的网络监控和可视化,实现了集中的管理,提升了wan端到端的管理和运维效率。
113.(7)igp
114.igp是指在一个as内部运行的路由协议。igp协议例如为开放式最短路径优先(open shortest path first,ospf)、中间系统到中间系统(intermediate system-to-intermediate system,is-is)等。
115.下面对本技术实例的系统架构举例说明。
116.图1是本技术实施例提供的一种sd-wan网络的系统架构示意图。图1所示的系统架构可选地提供为sd-wan overlay sr架构。图1所示的系统架构包括管控平面10、overlay网络20以及underlay网络30。
117.管控平面10包括控制器设备11。可选地,管控平面10还包括路由反射器(router reflector,rr)12。
118.控制器设备11为sd-wan网络的管理者。控制器设备11用于管理网络设备201、网络设备202、网络设备203、网络设备204以及rr 12,控制器设备11还用于进行sd-wan网络业务编排与配置,sr路径编排与计算等功能。控制器设备11例如为服务器、主机、终端、网络设备等。
119.rr 12为sd-wan网络的控制部件。rr 12负责收集sd-wan网络中网络设备201、网络设备202、网络设备203、网络设备204之间的网络拓扑、分发用户路由、过滤以及控制等。rr 12例如为服务器、主机、终端、网络设备等。在另一些实施例中,sd-wan网络不包含rr 12,rr 12的功能均通过控制器设备11实现。
120.图1以控制器设备11与rr 12分设为例进行说明,即,控制器设备11与rr 12由相互有通信耦合的不同物理设备实现。在另一些实施例中,控制器设备11与rr 12合设,即,控制器设备11与rr 12集成在同一物理设备中。
121.图1示出的网络中存在一个控制器设备11以及一个rr 12仅是举例,控制器设备11和rr 12的数量可选地更多,本实施例对控制器设备11和rr 12的数量不做限定。
122.overlay网络20包括多个网络设备。网络设备为sd-wan业务的转发执行器。网络设备用于收集物理网络拓扑信息、对用户流量进行隧道封装、加密、策略选路等。网络设备例
如为路由器、交换机、防火墙等
123.可选地,overlay网络20中的网络设备为边缘设备、入网点(point of presence,pop)或者汇聚设备。overlay网络20中的多个网络设备分别部署在多个站点中。overlay网络20中不同网络设备之间通过tvc相连。
124.图1以网络设备为网络设备201、网络设备202、网络设备203或者网络设备204为例进行说明。网络设备201部署在分支站点1。网络设备202部署在汇聚站点。网络设备203部署在分支站点2。网络设备204部署在总部站点。网络设备201与网络设备202通过tvc 212相连。网络设备202与网络设备204通过tvc 224相连。网络设备204与网络设备203通过tvc 243相连。
125.图1示出的一个站点中部署一个网络设备的场景仅是举例,一个站点中部署的网络设备的数量可选地更多,例如一个站点中部署几十个、几百个或者更多数量的网络设备,本实施例对一个站点中部署的网络设备的数量不做限定。
126.图1示出的网络中存在四个网络设备的情况仅是举例,网络设备的数量可选地更多或更少。例如网络设备为3个,又如网络设备为几十个或几百个,或者更多数量,本实施例对网络设备的数量不做限定。
127.图1中每个设备可选地是独立的硬件设备、或者是包含多个硬件设备的集群或者分布式系统,或者是基于云计算以及网络功能虚拟化(network functions virtualization,nfv)技术所实现的虚拟化设备。虚拟化设备包括而不限于虚拟机或容器。
128.underlay网络30包括而不限于运营商专线或因特网或者企业自建的私有网络。underlay网络30包括至少一个网络设备301。underlay网络30中的各个网络设备301通过物理链路分别与overlay网络中的各个网络设备相连。
129.可选地,本技术实施例提供的系统架构应用于需要控制流量经过指定的一个或多个站点的场景。控制器设备用于编排包含多个站点的网络设备的sr路径。例如,请参考图1,控制器设备编排的sr路径为分支站点1中网络设备201—汇聚站点中网络设备202—总部站点中网络设备204—分支站点2中网络设备203。其中,sr路径的端点包括网络设备201和网络设备203。sr路径经过的中间节点包括网络设备202和网络设备204。sr路径包括tvc 212、tvc 224以及vc 243。
130.图1示出的系统架构适用于很多种应用场景,下面结合两种典型应用场景举例说明。
131.本技术实施例的一个典型应用场景为企业sd-wan场景。图2为本技术实施例提供的sd-wan overlay sr架构的应用在企业网络的场景示意图。企业通过sd-wan隧道,经过租用的运营商专线、或因特网或5g等传送网络,实现各分支站点互联互通,满足企业组网、入云、上网等业务的需求。在有些企业组网规模较大时,还可能会有层次化组网场景,具有经过sd-wan站点进行多节点sr路径编排和控制的需求。例如,请参考图2,为了满足分支站点1用户访问公有云的需求,sd-wan控制器490编排了两个sr路径。sr路径1为分支站点1-汇聚站点-总部站点-公有云中云上站点5。sr路径2包括分支站点1-汇聚站点-公有云中云上站点5。
132.本技术实施例的另一个典型应用场景为运营商sd-wan pop组网场景。图3为本技术实施例提供的sd-wan overlay sr架构的应用在运营商sd-wan pop组网场景示意图。运
营商或管理服务提供商(managed service provider,msp)通过在不同地域部署sd-wan设备作为pop网关(gateway,gw),并利用云间互联网和云专线资源,可以快速灵活地构建一张覆盖全国甚至全球的sd-wan骨干网。企业分支站点通过本地互联网线路就近接入到运营商/msp的pop接入点,经过sd-wan骨干网实现跨区域的业务互访时,具有经过多pop节点sr路径编排的需求。例如,为了满足客户a站点1用户要访问企业总部的需求,sd-wan控制器590编排了两个sr路径,sr路径1为客户a站点1-pop gw 502-pop gw 504-客户a总部,sr路径2为客户a站点1-pop gw 502-pop gw 503-pop gw 504-客户a总部。
133.下面对本技术的一些实施例涉及的通信协议进行介绍。
134.本技术的一些实施例涉及的通信协议包括边界网关协议链路状态(border gateway protocol link-state,bgp ls)协议、边界网关协议(border gateway protocol,bgp)srv6策略(bgp srv6 policy)协议以及bgp以太网vpn(ethernet vpn,evpn)协议。
135.bgp ls协议用于支持网络拓扑收集的功能以及流量工程(traffic engineering,te)数据库(data base,db)信息收集的功能。
136.bgp ls协议作用在控制器设备和网络设备之间、网络设备之间。可选地,在网络中包含rr的情况下,bgp ls协议作用还作用在控制器和rr之间、rr和网络设备之间。
137.bgp srv6 policy协议用于支持隧道策略下发的功能。bgp srv6 policy协议作用在控制器设备和网络设备之间、网络设备之间。可选地,在网络中包含rr的情况下,bgp srv6 policy协议作用还作用在控制器和rr之间、rr和网络设备之间。
138.bgp evpn协议用于支持发布sd-wan tnp路由的功能以及发布vpn业务路由的功能。bgp evpn协议作用在网络设备之间。可选地,在网络中包含rr的情况下,bgp evpn协议作用还作用在rr和网络设备之间。
139.下面对本技术实施例的方法流程举例说明。
140.图4是本技术实施例提供的一种报文处理方法的流程图。
141.图4所示方法涉及多个网络设备之间的交互。为了区分不同的网络设备,用“网络设备a”、“网络设备b”、“网络设备c”区分描述多个不同的网络设备。其中,网络设备b为sr路径经过的中间节点。网络设备a为sr路径上的头端或者sr路径经过的中间节点。网络设备c为sr路径的尾端或者sr路径经过的中间节点。
142.图4所示方法涉及不同网络设备之间的连接。为了区分描述不同的连接,使用“连接ab”指代从网络设备a至网络设备b的连接,使用“连接bc”指代从网络设备b至网络设备c的连接。
143.图4所示方法所基于的网络部署场景可选地如上述图1所示。例如,结合图1来看,图4所示方法中的网络设备a为图1中的网络设备201,图4所示方法中的网络设备b为图1中的网络设备202,图4所示方法中的网络设备c为图1中的网络设备204;或者,图4所示方法中的网络设备a为图1中的网络设备202,图4所示方法中的网络设备b为图1中的网络设备204,图4所示方法中的网络设备c为图1中的网络设备203。
144.图4所示方法可选地应用于sd-wan网络中。
145.图4所示方法的一个典型应用场景是企业网络中各分支站点互联。以图2所示的组网场景为例,将图4所示方法应用在图2所示的场景中,在需要控制分支站点1用户的流量通过sr路径1访问公有云中站点5的情况下,图4所示方法中的网络设备a为图2中的edge设备
401,图4所示方法中的网络设备b为图2中的edge设备406,图4所示方法中的网络设备c为图2中的edge设备404,图4所示方法中的连接ab为图2中的tvc 416,图4所示方法中的连接bc为图2中的tvc 464。在需要控制分支站点1用户的流量通过sr路径2访问公有云中站点5的情况下,图4所示方法中的网络设备a为图2中的edge设备401,图4所示方法中的网络设备b为图2中的edge设备406,图4所示方法中的网络设备c为图2中的edge设备405,图4所示方法中的连接ab为图2中的tvc 416,图4所示方法中的连接bc为图2中的tvc 465。
146.图4所示方法的一个典型应用场景运营商sd-wan pop组网。以图3所示的组网场景为例,将图4所示方法应用在图3所示的场景中,在需要控制客户a站点1的流量通过sr路径1访问企业总部的情况下,图4所示方法中的网络设备a为图3中的站点1中edge设备501,图4所示方法中的网络设备b为图3中的pop gw 502,图4所示方法中的网络设备c为图3中的pop gw 504,图4所示方法中的连接ab为图3中的tvc 512,图4所示方法中的连接bc为图3中的tvc 524。在需要控制客户a站点1的流量通过sr路径2访问企业总部的情况下,图4所示方法中的网络设备a为图3中的站点1中edge设备501,图4所示方法中的网络设备b为图3中的pop gw 502,图4所示方法中的网络设备c为图3中的pop gw 503,图4所示方法中的连接ab为图3中的tvc 512,图4所示方法中的连接bc为图3中的tvc 523。
147.图4所示方法可选地用于对多个报文处理的场景,如对一条数据流中每个报文处理的场景。为了便于读者理解,图4所示方法以针对一个第一报文的处理流程为例进行说明。其他报文的处理方式可参考对第一报文的处理方式。
148.s601、网络设备a向网络设备b发送第一报文。
149.第一报文的ip地址包括连接ab的端点ip地址。具体地,连接ab的端点ip地址包括属于网络设备a的ip地址以及属于网络设备b的ip地址。第一报文的源ip地址为连接ab的端点ip地址中属于网络设备a的ip地址。第一报文的目的ip地址为连接ab的端点ip地址中属于网络设备b的ip地址。
150.在一些实施例中,第一报文包括原始报文以及外层ip头。原始报文是指用户设备发送的数据报文。外层ip头是指封装于原始报文外层的ip头。连接ab的端点ip地址位于第一报文的外层ip头中。具体地,连接ab的端点ip地址中属于网络设备a的ip地址位于第一报文的外层ip头中源地址字段。连接ab的端点ip地址中属于网络设备b的ip地址位于第一报文的外层ip头中目的地址字段。
151.可选地,连接ab的端点ip地址是underlay网络运营商分配的wan接口的ip地址。通过wan接口建立的连接也称为wan链路。在一个示例性实施例中,网络设备a具有wan接口a。网络设备b具有wan接口b。上述连接ab是网络设备a的wan接口a与网络设备b的wan接口b建立的网络连接。上述连接ab经过了underlay网络1中一个或多个网络设备。上述连接ab的端点ip地址包括wan接口a的ip地址以及wan接口b的ip地址。wan接口a的ip地址以及wan接口b的ip地址是underlay网络1的运营商分配的ip地址。上述第一报文的源ip地址是wan接口a的ip地址。第一报文的目的ip地址是wan接口b的ip地址。
152.第一报文包括sid bc。sid bc是用于指示连接bc的sid。sid bc能够充当连接bc的标识。
153.可选地,sid bc的形式为mpls标签。或者,sid bc的形式为srv6 sid。或者,sid bc的形式为源站点的标识、目的站点的标识、源tnp的标识、目的tnp的标识的组合。例如,网络
设备b为站点b中的网络设备。网络设备c为站点c中的网络设备。上述连接bc是网络设备b的wan接口b与网络设备c的wan接口c建立的网络连接,sid bc的形式为站点b的标识、站点c的标识、wan接口b的标识、wan接口c的标识的组合。采用srv6 sid的形式实现sid时能复用已有的srv6机制,采用短标签的形式实现sid时字节少,带宽额外消耗少,传输效率更高。
154.在一种可能的实现中,第一报文包括段路由头。sid bc位于第一报文的段路由头中。可选地,第一报文的段路由头为srv6头。第一报文的srv6头包括段列表(segment list)。sid bc位于第一报文的srv6头的segment list中。可选地,第一报文的段路由头为sr-mpls头。第一报文的sr-mpls头包含标签栈,sid bc位于第一报文的sr-mpls头的标签栈中。sid bc为第一报文的标签栈的栈顶标签。
155.可选地,第一报文还包括sid ab,sid ab指示连接ab。
156.s602、网络设备b接收来自网络设备a的第一报文。
157.在一些实施例中,网络设备a通过wan接口a发送第一报文后,第一报文先到达underlay网络1中的网络设备。underlay网络1中的网络设备根据第一报文的目的ip地址(即网络设备b的wan接口b的ip地址)查询路由表,从而得到与wan接口b的ip地址对应的出接口和下一跳。underlay网络1中的网络设备根据与wan接口b的ip地址对应的出接口和下一跳转发报文,使得第一报文转发至网络设备b的wan接口b。网络设备b通过wan接口b接收第一报文。
158.s603、网络设备b处理第一报文,以得到第二报文。
159.网络设备b从第一报文获得sid bc。网络设备b根据sid bc确定连接bc。网络设备b获取连接bc的端点ip地址。网络设备b使用连接bc的端点ip地址中属于网络设备b的ip地址更新第一报文的源ip地址,且使用连接bc的端点ip地址中属于网络设备c的ip地址更新第一报文的目的ip地址,从而将第一报文更新为第二报文。
160.第二报文的ip地址包括连接bc的端点ip地址,具体地,连接bc的端点ip地址包括属于网络设备b的ip地址以及属于网络设备c的ip地址。第二报文的源ip地址为连接bc的端点ip地址中属于网络设备b的ip地址。第二报文的目的ip地址为连接bc的端点ip地址中属于网络设备c的ip地址。
161.在一些实施例中,第二报文包括原始报文以及外层ip头。第二报文中原始报文与第一报文中原始报文相同。连接bc的端点ip地址位于第二报文的外层ip头中。具体地,连接bc的端点ip地址中属于网络设备b的ip地址位于第二报文的外层ip头中源地址字段。连接bc的端点ip地址中属于网络设备c的ip地址位于第二报文的外层ip头中目的地址字段。
162.可选地,连接bc的端点ip地址是underlay网络运营商分配的wan接口的ip地址。在一个示例性实施例中,网络设备b具有wan接口b。网络设备c具有wan接口c。上述连接bc是网络设备b的wan接口b与网络设备c的wan接口c建立的网络连接。上述连接bc经过了underlay网络2中一个或多个网络设备。上述连接bc的端点ip地址包括wan接口b的ip地址以及wan接口c的ip地址。wan接口c的ip地址以及wan接口b的ip地址是underlay网络2的运营商分配的ip地址。上述第二报文的源ip地址是wan接口b的ip地址。第二报文的目的ip地址是wan接口c的ip地址。
163.第二报文是否包含段路由头,以及第二报文包含段路由头情况下段路由头的内容存在多种情况。可选地,第二报文包含段路由头,第二报文中段路由头的segment list包含
网络设备c的下游节点的sid,以便网络设备c的下游节点根据sid继续转发报文。可选地,第二报文中段路由头的segment list与第一报文中段路由头的segment list相同。例如,网络设备b在处理报文的过程中,保持段路由头的segment list内容不变,更新段路由头的sl字段,使得报文中sl字段指向的sid从sid bc变为sid bc的下一个sid,sid bc的下一个sid即网络设备c的sid。可选地,第二报文中段路由头的segment list与第一报文中段路由头的segment list不同,第二报文中段路由头的segment list不包含sid bc。例如,网络设备b在处理报文的过程中执行标签交换操作,将sid bc更新为另一个标签。可选地,第二报文不包含段路由头。例如,网络设备b为sr路径上的倒数第二跳节点,网络设备c为sr路径的尾节点,网络设备b在处理报文的过程中采用倒数第二跳弹出特性,弹出第一报文的段路由头。
164.可选地,第二报文还包括sid ab,sid ab指示第一连接。
165.网络设备b如何获得连接bc的端点ip地址中属于网络设备c的ip地址包括多种实现方式。在一种可能的实现中,网络设备c预先发布tnp路由。tnp路由中包含连接bc的端点ip地址中属于网络设备c的ip地址。网络设备b接收网络设备c发布的tnp路由,网络设备b从tnp路由中获得网络设备c的ip地址。可选地,网络设备c与rr建立bgp协议邻居,网络设备c基于bgp协议向rr上报tnp路由。rr反射网络设备c上报的tnp路由,将tnp路由发送至网络设备b。
166.sid的值如何确定包括多种实现方式,下面结合两种实现方式举例说明。
167.实现方式一、控制器设备为每个连接分配sid。
168.例如,控制器设备为连接ab分配sid ab,为连接bc分配sid bc。控制器设备向网络设备a发送sid ab,控制器设备向网络设备b发送sid bc。网络设备a接收控制器设备发送的sid ab。网络设备b接收控制器设备发送的sid bc。
169.实现方式二、网络设备为本端建立的每个连接分配sid。
170.例如,网络设备a为连接ab分配sid ab。网络设备a向控制器设备发送sid ab。网络设备b为连接bc分配sid bc。网络设备b向控制器设备发送sid bc。
171.s604、网络设备b向网络设备c发送第二报文。
172.可选地,连接ab是不同站点之间的连接。例如,网络设备a为站点a中的网络设备。网络设备b为站点b中的网络设备。连接ab为站点a与站点b之间的连接。连接ab经过了站点a与站点b之间的underlay网络。
173.可选地,连接bc是不同站点之间的连接。例如,网络设备b为站点b中的网络设备。网络设备c为站点c中的网络设备。连接bc为站点b与站点c之间的连接。连接bc经过了站点b与站点c之间的underlay网络。
174.可选地,sr路径上网络设备c的下游节点包括网络设备d。网络设备c的wan接口c与网络设备d的wan接口d通过连接cd相连。上述第一报文和第二报文还包括sid cd,sid cd指示连接cd。
175.本实施例提供的方法,通过在流量转发阶段,充当sr路径上中间节点的网络设备根据连接的端点ip地址中属于本端的ip地址更新报文的源ip地址,并根据连接的端点ip地址中属于远端的ip地址更新报文的目的ip地址,一方面,在sr路径跨越多个不同路由域的underlay传输网络的场景下,避免由于源ip地址保持为头端的ip地址造成urpf检查不通过
导致报文被丢弃的问题。另一方面,由于连接的端点ip地址通常是网络设备的wan接口的ip地址,这种ip地址通常是传输网络的运营商分配的ip地址,传输网络自然能够保证该ip地址的路由可达性,而不必要求underlay网络设备运行支持sr-mpls的igp协议或者支持srv6的igp协议来保证目的ip地址的路由可达性,因此能够不依赖于underlay传输网络的路由协议。
176.可选地,图4所示方法中sid bc是end.x-sd-wan类型的sid。
177.end.x-sd-wan是本技术实施例提供的一种新类型的sid。end.x-sd-wan对应的端点行为包括使用连接的端点ip地址中属于本端的ip地址更新报文的源ip地址,且使用连接的端点ip地址中属于对端的ip地址更新报文的目的ip地址。在一些实施例中,end.x-sd-wan对应的端点行为具体包括:根据报文中活跃(active)sid,查询tvc数据库与活跃sid对应的tvc源ip地址(即连接的端点ip地址中属于本端的ip地址)、tvc数据库中与活跃sid对应的tvc目的ip地址(即连接的端点ip地址中属于对端的ip地址)、tvc数据库中与活跃sid对应的tvc出接口。使用tvc源ip地址更新报文的源地址,使用tvc目的ip地址更新报文的目的地址,以得到更新后的报文。通过活跃sid对应的tvc出接口发送更新后的报文。其中,活跃sid是指本设备待处理的sid。对于srv6而言,活跃sid是指报文中srh中sl字段指示的segment list中的sid;对于sr-mpls而言,活跃sid是指报文中标签栈的栈顶标签。
178.在一些实施例中,实现end.x-sd-wan的伪代码如下所示。
[0179][0180]
以上所示的伪代码的含义如下所示。
[0181]
end.x-sd-wan:
[0182]
s01.当处理srh时{
[0183]
s02.如果(剩余段==0){
[0184]
s03.停止处理srh,继续处理报文中srh的下一个头(next header),下一个头的类型是通过路由头中下一个头字段定义的。}
[0185]
...
[0186]
s12.将ipv6跳数限制减1。
[0187]
s13.将剩余的段减1。
[0188]
s14.使用段列表剩余段数量(segments left,sl)字段指示的sid,查找tvc数据
库。使用查找到的tvc的源ip地址更新报文的ipv6源地址(source address,sa),使用查找到的tvc的目的ip地址更新报文的ipv6目的地址(destination address,da)字段。
[0189]
s15、将报文提交给ipv6转发模块,通过对应的tvc出接口转发到新目的地。
[0190]
s16。}
[0191]
网络设备b对第一报文的处理过程包括:网络设备b对第一报文执行end.x-sd-wan对应的端点行为,以得到第二报文。具体地,网络设备b预先创建并保存了本地sid表。本地sid表用于保存sid、sid类型以及出接口之间的对应关系。本地sid表中sid bc对应的sid类型是end.x-sd-wan,sid bc对应的出接口为wan接口b。网络设备b接收到第一报文之后,网络设备b根据第一报文中的sid bc查询本地sid表,从而查找到sid bc对应的sid类型是end.x-sd-wan,且出接口为wan接口b。因此,网络设备b会执行end.x-sd-wan对应的端点行为,即:网络设备b使用连接bc的端点ip地址更新第一报文的源地址和目的地址,将得到的第二报文通过wan接口b发送出去。
[0192]
可选地,网络设备建立end.x-sd-wan类型的sid与tvc之间的对应关系以及tvc与wan接口之间的对应关系。在转发报文的过程中,网络设备先根据报文中的sid查询对应的tvc,再根据tvc查询对应的wan接口,通过wan接口转发报文。例如,图4所示方法中,网络设备b先根据sid bc查询对应的出接口,得到tvc bc(即连接bc),再查询tvc bc对应的出接口,得到wan接口b。
[0193]
可选地,图4所示方法中sid ab是上述end.x-sd-wan类型的sid。网络设备a发送第一报文的具体过程包括:网络设备a接收来自用户设备的原始报文。网络设备a根据原始报文的目的ip地址查询路由表。网络设备a找到原始报文的目的ip地址对应于sr策略。sr策略中段列表(segment list)包括连接ab对应的sid ab以及连接bc对应的sid bc。sid ab为段列表中第一个sid。网络设备a根据sid ab查询本地sid表,确定sid ab对应的连接为连接ab,sid ab对应的出接口为wan接口a,且sid ab对应的端点行为包括:使用连接的端点ip地址中属于本端的ip地址更新报文的源ip地址,且使用连接的端点ip地址中属于对端的ip地址更新报文的目的ip地址。网络设备a根据sid ab对应的端点行为,向原始报文添加外层ip头以及srh以得到第一报文。第一报文的外层ip头的源ip地址为连接的端点ip地址中属于网络设备a的ip地址,外层ip头的目的ip地址为连接的端点ip地址中属于网络设备b的ip地址。srh包含sid bc。网络设备a通过wan接口a发送第一报文。
[0194]
本实施例通过提供以上end.x-sd-wan类型的sid,支持基于包含多段tvc的sr路径转发流量,根据tvc的端点ip地址封装报文(而不用sid),从而实现underlay网络解耦的overlay sr隧道技术。具体地,现有srv6技术中end.x功能是获取srh中段列表下一跳sid作为ipv6报文的目的ip,并将目的ip为sid的报文从指定的链路发送出去。这样导致edge设备需要和中间传输网络设备对接igp协议,edge设备需要把sid对应的locator前缀路由通告到传输网络内部所有设备上去,否则传输网络内部设备无法根据报文的目的ip地址查到路由,也就无法将报文转发到sid对应的edge设备。而本实施例中,由于end.x-sd-wan的功能包括根据srh中段列表中下一跳sid查找tvc数据库,根据tvc数据库中tvc的源ip地址和tvc的目的ip地址更新ipv6报文的源ip地址和目的ip地址,然后将更新后的报文从该tvc对应的物理链路发送出去。而tvc的源ip地址和tvc的目的ip地址是edge设备上wan接口的ip地址,wan接口的ip地址往往是中间传输网络分配的,在传输网络上天然是有路由可以转发
的,因此这样封装的sr报文在中间传输网络上不存在路由查找和urpf检查不通过等问题。
[0195]
下面对underlay网络是ipv6网络的场景下具体实现方式进行介绍。以下介绍的实现方式可提供为一种sd-wan srv6隧道技术。
[0196]
在underlay网络是ipv6网络的场景下,网络设备向报文中添加的连接的端点ip地址为ipv6地址。报文的外层ip头为ipv6头。ipv6头中源ip地址和目的ip地址为ipv6地址。
[0197]
以图4所示方法为例,在连接ab对应的underlay网络1是ipv6网络的场景下,可选地,网络设备a和网络设备b均是支持ipv6的网络设备。第一报文中连接ab的端点ip地址为ipv6地址。第一报文包含外层ipv6头、srh以及原始报文。连接ab的端点ip地址位于第一报文的外层ipv6头中。具体地,连接ab的端点ip地址中属于网络设备a的ipv6地址位于第一报文的外层ipv6头中源地址字段。连接ab的端点ip地址中属于网络设备b的ipv6地址位于第一报文的外层ipv6头中目的地址字段。第一报文包括srh。sid bc位于第一报文的srh中。
[0198]
同理地,在连接bc的underlay网络是ipv6网络的场景下,可选地,网络设备b和网络设备c均是支持ipv6的网络设备。第二报文中连接bc的端点ip地址为ipv6地址。第二报文包含外层ipv6头以及原始报文。连接bc的端点ip地址位于第二报文的外层ipv6头中。具体地,连接bc的端点ip地址中属于网络设备b的ipv6地址位于第二报文的外层ipv6头中源地址字段。连接bc的端点ip地址中属于网络设备c的ipv6地址位于第二报文的外层ipv6头中目的地址字段。
[0199]
下面对underlay网络是ipv4网络的场景下具体实现方式进行介绍。以下介绍的实现方式可提供为一种sd-wan srv4隧道技术。
[0200]
在underlay网络是互联网协议第4版(internet protocol version 4,ipv4)网络的场景下,网络设备向报文中添加的连接的端点ip地址为ipv4地址。报文的外层ip头为ipv4头。ipv4头中源ip地址和目的ip地址为ipv4地址。报文中包含srh对应的协议类型,srh对应的协议类型在报文中位于srh的外层。srh对应的协议类型的具体携带位置包括多种实现方式,下面结合三种实现方式举例说明。
[0201]
实现方式一、网络设备在外层ipv4头与srh之间封装通用路由封装(generic routing encapsulation,gre)头。gre头包含srh对应的协议类型。在一种可能的实现中,srh对应的协议类型位于gre头中载荷协议(payload protocol)字段。图5示出了通过gre实现sd-wan srv4隧道报文封装格式示意图。如图5所示,报文包含外层ip头、gre头、srh以及原始报文。
[0202]
实现方式二、网络设备在外层ipv4头与srh之间封装虚拟扩展局域网(virtual extensible local area network,vxlan)头。vxlan头包含srh对应的协议类型。在一种可能的实现中,srh对应的协议类型位于vxlan头中下一协议(next protocol)字段。
[0203]
实现方式三、网络设备在外层的ipv4头中携带srh对应的协议类型。
[0204]
以图4所示方法为例,在连接ab的underlay网络是ipv4网络的场景下,可选地,网络设备a和网络设备b均是支持ipv4的网络设备。第一报文中连接ab的端点ip地址为ipv4地址。第一报文包含外层ipv4头、srh以及原始报文。连接ab的端点ip地址位于第一报文的外层ipv4头中。具体地,连接ab的端点ip地址中属于网络设备a的ipv4地址位于第一报文的外层ipv4头中源地址字段。连接ab的端点ip地址中属于网络设备b的ipv4地址位于第一报文的外层ipv4头中目的地址字段。第一报文包括srh。sid bc位于第一报文的srh中。第一报文
包括srh对应的协议类型。
[0205]
在采用上述实现方式一的情况下,第一报文包括gre头。第一报文的gre头位于外层ipv4头与srh之间。srh对应的协议类型位于第一报文的gre头中。在采用上述实现方式二的情况下,第一报文包括vxlan头。第一报文的vxlan头位于外层ipv4头与srh之间,srh对应的协议类型位于第一报文的vxlan头中。在采用上述实现方式三的情况下,srh对应的协议类型位于第一报文的ipv4头中。
[0206]
同理地,在连接bc的underlay网络是ipv4网络的场景下,网络设备b和网络设备c可选地均是支持ipv4的网络设备。第二报文中连接bc的端点ip地址为ipv4地址。第二报文包含外层ipv4头以及原始报文。连接bc的端点ip地址位于第二报文的外层ipv4头中。具体地,连接bc的端点ip地址中属于网络设备b的ipv4地址位于第二报文的外层ipv4头中源地址字段。连接bc的端点ip地址中属于网络设备c的ipv4地址位于第二报文的外层ipv4头中目的地址字段。
[0207]
下面对underlay网络包含ipv6网络和ipv4网络的场景下具体实现方式进行介绍。以下介绍的实现方式可提供为一种sd-wan srv6和srv4混合隧道技术。
[0208]
在underlay网络包含ipv6网络和ipv4网络的场景下,网络设备会进行报文封装格式的转换,将报文的外层ip头从ipv4头更新为ipv6头,或者将报文的外层ip头从ipv6头更新为ipv4头。
[0209]
例如,在图4所示方法中,在连接ab的underlay网络是ipv4网络且连接bc的underlay网络是ipv6网络的场景下,可选地,网络设备a是支持ipv4网络的设备,网络设备b是支持ipv4网络且支持ipv6网络的设备,网络设备c是支持ipv6网络的设备。第一报文中连接ab的端点ip地址为ipv4地址。第二报文中连接bc的端点ip地址为ipv6地址。网络设备b处理报文的过程包括:网络设备b从第一报文中解封装包含连接ab的端点ip地址的外层ipv4头。网络设备b生成包含连接bc的端点ip地址的外层ipv6头。网络设备b向报文中封装包含连接bc的端点ip地址的外层ipv6头,以得到第二报文。
[0210]
在连接ab的underlay网络是ipv6网络且连接bc的underlay网络是ipv4网络的场景下,可选地,网络设备a是支持ipv6网络的设备,网络设备b是支持ipv4网络且支持ipv6网络的设备,网络设备c是支持ipv4网络的设备。第一报文中连接ab的端点ip地址为ipv6地址。第二报文中连接bc的端点ip地址为ipv4地址。网络设备b处理报文的过程包括:网络设备b从第一报文中解封装包含连接ab的端点ip地址的外层ipv6头。网络设备b生成包含连接bc的端点ip地址的外层ipv4头。网络设备b向报文中封装包含连接bc的端点ip地址的外层ipv4头,以得到第二报文。
[0211]
在一种可能的实现中,网络设备保存连接与封装类型之间的对应关系。网络设备根据连接对应的封装类型确定向原始报文封装哪种报文头。例如,网络设备b确定sid对应的连接后,如果连接对应的封装类型为srv6,则网络设备b向第一报文封装ipv6头和srh。如果连接对应的封装类型为srv4-gre,则网络设备b向第一报文封装ipv4头、gre头和srh。如果连接对应的封装类型为srv4-vxlan,则网络设备b向第一报文封装ipv4头、vxlan头和srh。
[0212]
以上介绍的图4所示实施例提供了转发面的基本流程。本本技术的一些实施例还提供了控制面的基本流程,下面进行具体说明。
[0213]
图6是本技术实施例提供的一种路径确定方法的流程图。图6所示方法包括以下步骤s702至步骤s704。
[0214]
步骤s702、控制器设备获取多个连接的端点ip地址。
[0215]
在一些实施例中,网络设备向控制器设备发送连接的端点ip地址,控制器设备接收网络设备发送的连接的端点ip地址,从而获得多个连接的端点ip地址。下面结合三种实现方式举例说明。
[0216]
实现方式a、充当源端的网络设备向控制器设备上报连接的端点ip地址。
[0217]
例如,结合图4所示方法,网络设备a向控制器设备发送连接ab的端点ip地址。网络设备b向控制器设备发送连接bc的端点ip地址。控制器设备接收网络设备a发送的连接ab的端点ip地址,并接收网络设备b发送的连接bc的端点ip地址,从而获得连接ab的端点ip地址和连接bc的端点ip地址。
[0218]
实现方式b、充当目的端的网络设备向控制器设备上报连接的端点ip地址。
[0219]
例如,结合图4所示方法,网络设备b向控制器设备发送连接ab的端点ip地址。网络设备c向控制器设备发送连接bc的端点ip地址。
[0220]
实现方式c、充当源端的网络设备和充当目的端的网络设备均向控制器设备上报连接的端点ip地址,控制器设备从两个网络设备上报的连接的端点ip地址中选择一份ip地址。
[0221]
例如,结合图4所示方法,网络设备a向控制器设备发送连接ab的端点ip地址,网络设备b向控制器设备发送连接ab的端点ip地址和连接bc的端点ip地址。网络设备c向控制器设备发送连接bc的端点ip地址。控制器设备从网络设备a发送的连接ab的端点ip地址、网络设备b发送的连接ab的端点ip地址这两份ip地址中选择一份作为连接ab的端点ip地址。控制器设备从网络设备b发送的连接bc的端点ip地址、网络设备c发送的连接bc的端点ip地址这两份ip地址中选择一份作为连接bc的端点ip地址。
[0222]
在一些实施例中,网络设备还获取其所在的站点的标识(site id),向控制器设备上报站点的标识。例如,网络设备a部署在站点a中,网络设备b部署在站点b中,网络设备c部署在站点c中,网络设备a向控制器设备发送站点a的标识,网络设备b向控制器设备发送站点b的标识,网络设备c向控制器设备发送站点c的标识。
[0223]
在一些实施例中,网络设备会检测连接的通断状态,网络设备还向控制器设备上报连接的通断状态。连接的通断状态包括连通(up)状态和关闭(down)状态。在一种可能的实现中,网络设备向连接的对端周期性地发送探测报文,根据预定时长内是否接收到对端返回的响应报文来确定连接的通断状态。
[0224]
可选地,充当源端的网络设备向控制器设备上报连接的通断状态。例如,结合图4所示方法,网络设备a向控制器设备发送连接ab的通断状态。网络设备b向控制器设备发送连接bc的通断状态。可选地,充当目的端的网络设备向控制器设备上报连接的通断状态。例如,结合图4所示方法,网络设备b向控制器设备发送连接ab的通断状态。网络设备c向控制器设备发送连接bc的通断状态。可选地,充当源端的网络设备和充当目的端的网络设备均向控制器设备上报连接的通断状态。
[0225]
在一些实施例中,网络设备会检测连接的服务等级协议(service-level agreement,sla)信息,网络设备向控制器设备上报连接的sla信息。连接的sla信息包括而
不限于丢包率、时延、抖动或带宽利用率中至少一项。
[0226]
可选地,充当源端的网络设备向控制器设备上报连接的sla信息。例如,结合图4所示方法,网络设备a向控制器设备发送连接ab的sla信息。网络设备b向控制器设备发送连接bc的sla信息。可选地,充当目的端的网络设备向控制器设备上报连接的sla信息。例如,结合图4所示方法,网络设备b向控制器设备发送连接ab的sla信息。网络设备c向控制器设备发送连接bc的sla信息。可选地,充当源端的网络设备和充当目的端的网络设备均向控制器设备上报连接的sla信息。
[0227]
在一些实施例中,网络设备还向控制器设备上报连接对应的sid。例如,结合图4所示方法,网络设备a向控制器设备发送连接ab对应的sid ab。网络设备b向控制器设备发送连接bc对应的sid bc。
[0228]
可选地,在网络设备与多个对端建立了多个连接的情况下,网络设备向控制器设备发送多个连接中每个连接的端点ip地址、多个连接中每个连接的通断状态、多个连接中每个连接的sla信息、多个连接中每个连接对应的sid。
[0229]
在一些实施例中,网络设备基于bgp ls协议向控制器设备上报上述连接的端点ip地址、连接的状态、sid、站点的标识等各种信息。下面对基于bgp ls协议上报上述各种信息的具体实现方式举例说明。
[0230]
在一种可能的实现中,基于rfc 7752,对协议标识(protocol-id)定义进行扩展,定义一种新的协议标识以支持上报连接的端点ip地址等各种信息,从而支持bgp sd-wan tvc拓扑数据库。协议标识例如是表示拓扑信息来源的协议号。表1示出了扩展的协议标识,新增一种sd-wan协议的标识,sd-wan协议的标识表示报文中网络层可达信息(network layer reachability information,nlri)信息(即连接的端点ip地址、连接的状态等各种信息)中源协议为sd-wan协议。
[0231]
表1
[0232][0233][0234]
例如,网络设备b上报连接的端点ip地址的过程包括:网络设备b生成bgp-ls报文,bgp-ls报文包括连接bc的端点ip地址和/或连接ab的端点ip地址,bgp-ls报文还包括sd-wan协议的标识;网络设备b向控制器设备发送bgp-ls报文。通过扩展sd-wan协议的标识,控制器设备能够通过bgp ls报文中协议的标识识别bgp ls收集到的是本实施例提供的新的拓扑数据。
[0235]
在一些实施例中,基于rfc 7752对bgp ls节点路由(node路由)进行扩展。bgp ls节点路由中包含sd-wan协议的标识以及sd-wan站点的标识(sd-wan site id)。sd-wan site id用于标识sd-wan中网络设备对应的站点。bgp ls节点路由中其他信息复用现有的标准定义。示例性地,sd-wan的bgp ls节点路由的内容如下表2所示。
[0236]
表2
[0237][0238]
在一些实施例中,基于rfc 7752对bgp ls链路路由(link路由)进行扩展。bgp ls链路路由中包含sd-wan协议的标识、tvc状态属性以及段标识属性。tvc状态属性也称sd-wan-tvc-status属性,tvc状态属性用于携带sd-wan tvc的隧道状态。段标识属性也称sd-wan-segment-id属性,段标识属性用于携带sd-wan tvc的sid。示例性地,sd-wan的bgp ls链路路由的内容如下表3所示。
[0239]
表3
[0240]
[0241][0242]
步骤s703、控制器设备根据多个连接的端点ip地址,确定sr路径。
[0243]
例如,sr路径上的节点包括网络设备a、网络设备b和网络设备c。sr路径上的连接包括连接ab和连接bc。
[0244]
可选地,控制器设备以站点为对象进行路径计算,而不是以单台网络设备为对象进行路径计算。下面对以站点为对象进行路径计算相关的特征进行介绍。
[0245]
例如,在步骤s702中,控制器设备具体获取多个站点中不同站点之间的连接的端点ip地址。在步骤s703中,控制器设备根据多个连接的端点ip地址,以站点为路径编排对象确定sr路径。在步骤s704中,控制器设备发送的sr策略中的端点对应于站点。sr策略中的端点的值可选地为站点的标识,而不是具体的某台设备的ip地址。
[0246]
在一个站点包括多个网络设备的情况下,同一个站点中每个网络设备分别向控制器设备发送其建立的连接的端点ip地址和站点的标识。同一个站点中每个网络设备上报的站点的标识是相同的。同一个站点中不同网络设备上报的连接的端点ip地址可选地是不同的。控制器设备将同一个站点中的多个网络设备视为一个节点进行路径计算。
[0247]
可选地,控制器设备从同一个站点中不同网络设备建立的连接中选择一个连接进
行路径计算。例如,网络中包含站点1和站点2,站点1中包含网络设备a和网络设备b,站点2中包含网络设备c和网络设备d。控制器设备根据网络设备上报的拓扑信息确定网络中包含四个连接。四个连接分别是从网络设备a到网络设备c的连接、从网络设备a到网络设备d的连接、从网络设备b到网络设备c的连接、从网络设备b到网络设备d的连接。控制器设备根据设定的约束条件,从四个连接中选择一个连接进行编排。其中,约束条件例如为对路径的sla要求。sla要求包括而不限于时延小于设定时长、丢包率小于设定丢包率、抖动小于设定值、带宽利用率大于设定的带宽利用率等。
[0248]
在一种可能的实现中,用户设备获取用户设定的算路意图,用户设备向控制器设备发送算路意图。控制器设备接收用户设备发送的算路意图。控制器设备根据用户设定的算路意图进行路径计算。算路意图包括源站点、目的站点以及约束条件。控制器设备从tvc拓扑数据库中选择出满足算路意图的多个tvc,将选择出的多个tvc组成sr路径。
[0249]
图7示出了一种计算overlay网络中sr路径的示意图。如图7所示,总部站点包括edge2-1和edge2-2。分支站点包括edge1。汇聚站点包括edge3。edge1上的tnp1与edge2-1上的tnp21建立了一条tvc。edge1与edge2-1之间的tvc对应的sid为sid 1021。edge1上的tnp1与edge3上的tnp3建立了一条tvc。edge1与edge3之间的tvc对应的sid为sid 103。edge3上的tnp3与edge2-2上的tnp22建立了一条tvc。edge3与edge2-2之间的tvc对应的sid为sid 3022。edge2-1、edge2-2、edge1、edge3分别向控制器设备上报tvc的拓扑信息。控制器设备根据tvc的拓扑信息,基于站点进行策略编排。具体地,用户设定的算路意图中源站点是分支站点,目的站点是总部站点,约束条件为时延小于设定时长或者丢包率小于设定丢包率。控制器设备根据tvc的拓扑信息以及算路意图,计算从分支站点至总部站点的sr路径,以得到两条sr路径。控制器设备计算出的两条sr路径分别是sr路径(1)和sr路径(2)。sr路径(1)包括从edge1至edge2-1的tvc。sr路径(1)满足时延小于设定时长的约束条件。sr路径(2)包括从edge1至edge3的tvc以及从edge3至edge2-2的tvc。sr路径(2)满足丢包率小于设定丢包率的约束条件。控制器设备根据算路结果生成sr策略1和sr策略2。sr策略1包含sr路径(1)的段列表。sr策略2包含sr路径(2的段列表。sr策略1的具体内容如下表4所示,sr策略2的具体内容如下表5所示。
[0250]
表4
[0251][0252]
表5
[0253]
[0254][0255]
可选地,网络设备向控制器设备发送连接的状态之后,网络设备还会检测连接的状态。如果网络设备上某一条连接的状态发生更新,网络设备向控制器设备发送该连接更新后的状态。控制器设备根据网络设备上报的连接的更新后的状态,更新拓扑数据库中保存的拓扑数据,并根据更新后的拓扑数据重新计算sr策略。其中,连接的状态更新包括而不限于连接的通断状态从up状态更新为down状态、连接的通断状态从down状态更新为up状态、连接的sla信息发生变化(如sla下降或sla上升)。
[0256]
示例性地,网络设备对其建立的每条tvc进行连通性状态检测。如果物理网络链路故障导致某条tvc状态从up状态更新为down状态,网络设备向控制器设备发送bgp-ls报文,bgp-ls报文指示tvc处于down状态。控制器设备接收到bgp-ls报文后,控制器设备将拓扑数据库中tvc的状态更新为down状态,并失效包含该tvc的sr路径或者撤销包含该tvc的sr路径,或者重新计算一条新的sr路径。
[0257]
以往的sd-wan方案由于没有端到端路径状态感知,当其中一段tvc故障或质量下降时,该tvc连接的两个网络设备之外的其他网络设备并不能联动感知tvc的故障或者质量下降,出现流量转发到中间被丢弃的情况。而本实施例中,网络设备通过对其建立的每条tvc进行连通性状态检测或者sla检测,在tvc的状态发生更新后上报给控制器设备,有助于控制器设备及时感知到sr路径中每条tvc的状态,实现端到端路径状态感知。如果某一条sr路径中某一段tvc发生故障或者质量下降,控制器设备可通过失效sr路径、撤销sr路径或者重新计算sr路径等方式,将流量导入到其他sr路径上,从而避免流量转发到中间被丢弃的情况。
[0258]
步骤s704、控制器设备向网络设备a发送sr策略。
[0259]
控制器设备根据确定出的sr路径生成sr策略(policy)。sr策略指示sr路径。sr策略包括颜色(color)、端点(endpoint)、一个或多个候选路径(candidate path)、优先级(preference)以及段列表(segment list)。sr策略中的段列表包含一个或多个sid。每个sid指示一个连接。例如,sr策略包括连接ab对应的sid ab以及连接bc对应的sid bc。在一些实施例中,sr策略应用于sd-wan,sr策略中的段列表指示sd-wan中overlay网络中的路径,sr策略也称sd-wan策略。可选地,控制器基于bgp sr策略(bgp sr policy)协议发送sr策略。
[0260]
在一种可能的实现中,控制器设备根据sr路径中的头端为网络设备a,向网络设备a发送sr策略。网络设备a接收sr策略后,网络设备a从sr策略获得段列表,sr策略中利用段列表执行图4所示方法。
[0261]
下面再结合一个具体的应用场景对上述实施例举例说明,以下应用场景中的网络设备为edge设备,网络设备之间的连接为tvc。
[0262]
下面介绍动态建立tvc与sid的分配过程。
[0263]
图8是一种建立tvc的示意图。如图8所示,tvc的建立过程包括步骤(1)至步骤(4)。
302。
[0276]
步骤(4)edge设备设定每个sid的sid类型为自定义的end.x-sd-wan,将sid、sid类型与出接口之间的对应关系保存至本地sid表。
[0277]
示例性地,edge1上本地sid表的内容如下表9所示。
[0278]
表9
[0279][0280]
示例性地,edge2上本地sid表的内容如下表10所示。
[0281]
表10
[0282][0283]
示例性地,edge3上本地sid表的内容如下表11所示。
[0284]
表11
[0285][0286]
下面对上述场景中拓扑收集和拓扑上报的过程说明。
[0287]
图9是本技术实施例提供的一种拓扑收集和上报的示意图。拓扑收集和上报的过程包括如下步骤(1)至步骤(2)。
[0288]
步骤(1)edge设备和rr间部署bgp ls协议。edge设备通过bgp ls协议扩展,和bgp evpn进行协议互操作。edge设备从bgp evpn收集tvc信息,并将tvc信息上报给rr。tvc信息包含但不限于tvc基础封装信息(如ip地址)、sid、状态、sla、带宽利用率等。
[0289]
步骤(2)rr和控制器设备间同样部署bgp ls协议。rr通过bgp ls协议扩展上报tvc信息给控制器设备。控制器设备接收并保存rr上报的tvc信息。控制器设备根据rr上报的tvc信息创建tvc拓扑数据库,以便利用tvc拓扑数据库计算全局sr路径。
[0290]
示例性地,控制器设备创建的tvc拓扑数据库的内容如下表12所示。
[0291]
表12
[0292]
[0293][0294]
下面对上述场景中下发sr策略的过程说明。
[0295]
图10是本实施例提供的一种控制器设备下发sr策略的示意图。图10中edge1是sr路径的头端,edge1是对网络设备a的举例说明。如图10所示,控制器设备使用bgp sr policy下发sd-wan的sr策略。sr策略的内容尽量兼容原有的srv6 policy。控制器设备下发sr策略的过程具体包括以下步骤(1)至步骤(2)。
[0296]
步骤(1)控制器设备和rr间部署bgp sr policy协议。控制器设备通过bgp sr policy协议扩展向rr下发sd-wan sr策略。
[0297]
示例性地,控制器设备下发了如下表13和表14所示的两个sr策略。
[0298]
表13
[0299][0300]
表14
[0301][0302]
步骤(2)rr和edge设备间同样部署bgp sr policy协议。rr通过bgp sr policy协议扩展向头端edge设备分发sd-wan sr策略。
[0303]
下面结合5个具体实例,对图4以及图6所示方法举例说明。
[0304]
下述实例1至实例5的网络架构可参考图11。下述实例1至实例5中的头端edge1是图4以及图6所示方法中的网络设备a,下述实例1至实例5中的中间节点edge3是图4以及图6所示方法中的网络设备b,下述实例1至实例5中的尾端edge2是图4以及图6所示方法中的网络设备c。下述实例1至实例5中的tvc1-3是图4以及图6所示方法中的连接ab,下述实例1至实例5中的tvc3-2是图4以及图6所示方法中的连接bc。下述实例1至实例5中的sid 302是图4以及图6所示方法中sid bc,下述实例1至实例5中的sid 103是图4以及图6所示方法中的sid ab。下述实例1至实例5中的ip1和ip3是图4以及图6所示方法中的连接ab的端点ip地址。下述实例1至实例5中的ip3和ip2是图4以及图6所示方法中的连接bc的端点ip地址。
[0305]
实例1
[0306]
实例1以evpnv4为例描述流量在ipv6传输网络上构建sd-wan srv6隧道的转发处理流程。图12示出了实例1中业务引流入sd-wan srv6隧道及转发的示意图。如图12所示,实例1包括如下步骤(1)至步骤(5)。
[0307]
步骤(1)尾端edge2通过bgp evpn发布本地用户私网路由。rr接收尾端edge2发布的evpn私网路由,rr将evpn私网路由反射给头端edge1。evpn私网路由包括路由前缀、vpn sid、颜色以及下一跳等信息。evpn私网路由中的路由前缀例如为10.1.1.0/24。evpn私网路由中的vpn sid例如为10000。evpn私网路由中的颜色例如为20。evpn私网路由中的下一跳例如为总部站点的站点标识。
[0308]
步骤(2)控制器设备预先已经给头端edge1下发了不同的sd-wan srv6策略。头端edge1通过步骤(1)从rr学习到了尾端edge2发布的evpn私网路由。头端edge1根据evpn私网路由携带的颜色和下一跳迭代到名称为“分支至总部低丢包”的sr策略。
[0309]
步骤(3)头端edge1接收到用户a(用户a的ipv4地址为10.2.1.1)发送到总部站点用户z(用户z的ipv4地址为10.1.1.1)的流量时,头端edge1根据流量中数据报文的目的地址查询
[0310]
私网路由,从而确定需要将流量导入sd-wan sr隧道进行转发。头端edge1从sr策略中获得段列表为《103,302》,vpn sid为10000。头端edge1为数据报文添加srh标签栈(10000,302,103),头端edge1根据栈顶的sid 103匹配本地sid表。头端edge1找到本地sid表中sid 103对应的端点行为是end.x-sd-wan且sid 103对应的出接口为tvc1-3。因此头端edge1获取tvc1-3的信息,根据tvc1-3的信息向数据报文添加一层sr隧道封装(即外层的ipv6头和srh)。
[0311]
tvc1-3的信息包括tvc1-3的源tnp1对应的接口ip地址(ip1)以及tvc1-3的目的tnp3的接口地址ip(ip3)。外层的ipv6头中源地址为ip1,目的地址为ip3。之后头端edge1将sid 103弹出。弹出sid 103后的报文携带srh标签栈(10000,302)。头端edge1将报文从tnp1对应的链路发送给中间节点edge3。
[0312]
在一些实施例中,头端edge1上tvc1-3的信息来自于中间节点edge3发布的tnp路由。具体地,中间节点edge3预先发布tnp路由,tnp路由包括tnp3的ip地址(ip3)。头端edge1接收中间节点edge3发布的tnp路由,从tnp路由中获得tnp3的ip地址。头端edge1在tvc表中保存tvc1-3的标识、tnp1的ip地址和tnp3的ip地址之间的对应关系。例如,头端edge1在tvc表中创建一条表项,表项的内容包括id:tvc1-3;目的站点:汇聚站点;源tnp的ip地址:ip1;目的tnp的ip地址:ip3。头端edge1根据tvc1-3,查询tvc表tvc1-3对应的源tnp的ip地址和目的tnp的ip地址,从而得到ip1和ip3.
[0313]
步骤(4)中间节点edge3接收到头端edge1发送的报文后,中间节点edge3从srh头中获得sl字段指示的栈顶sid(即sid 302)。中间节点edge3根据sid 302查询本地sid表,找到本地sid表中sid 302对应的端点行为是end.x-sd-wan,且sid 302对应的发送隧道为tvc3-2。中间节点edge3根据tvc3-2封装信息同时修改报文的源ip和报文的目的ip。中间节点edge3将修改后的报文通过tvc3-2对应的物理链路转发给尾端edge2。
[0314]
步骤(5)尾端edge2接收到中间节点edge3发送的报文。尾端edge2根据报文中srh剩余的vpn sid10000查找本地sid表,确定vpn sid10000命中到end.dt4 sid。尾端edge2对
报文进行sr隧道解封装处理,去掉报文中的srh和外层的ipv6报文头。尾端edge2根据内层报文的目的ip地址(10.1.1.1)查对应的vpn实例私网路由后发送给主机z。这样实现了a-》edge1-》edge3-》edge2-》z的端到端sr转发路径控制。
[0315]
实例1针对的是ipv6 underlay传输网络上如何构建sd-wan srv6隧道。当underlay传输网络是ipv4网络时,需要对隧道封装做进一步改造,实现一种sd-wan srv4隧道技术。其中sd-wan srv4隧道封装包括多种类型(如gre/vxlan等),下面以gre为例描述一种业务引流入sd-wan srv4隧道及转发的方法,详见实例2。
[0316]
实例2
[0317]
实例2是本技术实施例提供的一种基于gre实现业务引流入sd-wan srv4隧道及转发的方法。图13示出了实例2的流程图。如图13所示,实例2包括步骤(1)至步骤(5)。
[0318]
实例2的步骤(1)和步骤(2)可参考实例1的步骤(1)和步骤(2),相区别的是,edge设备在生成tvc时,edge设备根据tnp类型是ipv4 gre,定义tvc封装类型为srv4-gre。此外,如果tnp类型是ipv4 vxlan,则edge设备定义tvc封装类型为srv4-vxlan。
[0319]
步骤(3)头端edge1在收到用户a(10.2.1.1)发送到总部站点用户z(10.1.1.1)的流量时头端edge1根据栈顶的sid 103匹配本地sid表,找到sid 103对应的出接口为tvc1-3。头端edge1根据tvc1-3对应的tvc封装类型为srv4-gre,向数据报文添加gre头和srh,将封装了gre头和srh的报文通过tvc1-3对应的接口发送至中间节点edge3。
[0320]
步骤(4)中间节点edge3收到该报文后,中间节点edge3解封装srv4-gre隧道头。中间节点edge3根据gre中载荷协议字段识别出srh头,然后中间节点edge3从srh中获得sl字段指示的栈顶sid 302。中间节点edge3根据sid 302查本地sid表,找到sid 302对应的端点行为是end.x-sd-wan且指定发送隧道为tvc3-2。中间节点edge3根据tvc3-2封装信息向报文封装srv4-gre隧道头。
[0321]
步骤(5)尾端edge2收到该报文,尾端edge2解封装srv4-gre隧道头,根据srh剩余的vpn sid查找本地sid表命中到end.dt4 sid。尾端edge2去掉srh和gre报文头。尾端edge2根据内层报文ip(10.1.1.1)查对应的vpn实例私网路由后发送给主机z。这样实现了a-》edge1-》edge3-》edge2-》z的端到端sr转发路径控制。
[0322]
当sd-wan的underlay传输网络由多个分别支持ipv4或ipv6的不同区域网络组成时,通过实例1和实例2描述的方法,能够组合实现端到端的异构sd-wan overlay sr隧道,下面通过实例3进行具体介绍。
[0323]
实例3
[0324]
实例3是本实施例提供的一种sd-wan srv6和srv4混合隧道转发的方法。
[0325]
图14示出了实例3的流程图。实例3包括步骤(1)至步骤(5)。实例3的步骤(1)至步骤(5)可参考实例1、实例2的步骤(1)至步骤(5)。相区别的是,实例3在步骤(3)中,中间节点edge3会采用以下实现方式(1)或实现方式(2)进行srv6隧道和srv4隧道封装格式的转换。
[0326]
实现方式(1)中间节点edge3进行从srv6隧道至srv4隧道的封装格式转换。具体地,中间节点edge3收到edge1发送的报文,中间节点edge3解封装srv6隧道头,中间节点edge3从srh中获得sl字段指示的栈顶sid(sid 302)。中间节点edge3根据sid 302查本地sid表,找到sid 302对应的端点行为是end.x-sd-wan,且sid 302对应的发送隧道为tvc3-2。中间节点edge3根据tvc3-2封装信息封装srv4-gre隧道头。
[0327]
实现方式(2)中间节点edge3进行从srv4隧道至srv6隧道的封装格式转换。具体地,如果中间节点edge3收到edge2发送的报文,中间节点edge3解封装srv4-gre隧道头,中间节点edge3从srh中获得sl字段指示的栈顶sid(sid 301)。中间节点edge3根据sid 301查本地sid表,找到sid 301对应的端点行为是end.x-sd-wan,且sid 301对应的发送隧道为tvc3-1。中间节点edge3根据tvc3-1封装信息封装srv6隧道头。
[0328]
实例1至实例3描述了如何将三层(l3)vpnv4流量承载在sd-wan sr隧道上。本技术实施例还支持l3 vpnv4之外的其它vpn业务如l3vpnv6、二层vnp(l2vpn)等承载在sd-wan sr隧道上。下面通过实例4描述将l3vpnv6流量承载在sd-wan sr隧道上的实现方式,通过实例5描述将l2vpn流量承载在sd-wan sr隧道上的实现方式。
[0329]
实例4
[0330]
实例4是本技术实施例提供的一种通过sd-wan sr隧道转发l3 vpnv6流量的方法。图15示出了实例4的示意图。如图15所示,对于控制面路由发布的流程而言,在实例1的基础上通过bgp evpn传递ipv6用户的私网路由,使用包含ipv6用户的私网路由中的颜色和下一跳来选择迭代到sd-wan sr隧道上,从而实现ipv6 l3vpn流量承载在sd-wan sr隧道上转发。具体地,如图15所示,在步骤(1)中,edge2发布的evpn私网路由为ipv6路由。evpn私网路由携带的前缀为ipv6前缀,例如为fc00:1:1::/64。对于转发面转发报文的流程而言,l3vpnv6场景中报文封装格式与l3vpnv4场景中报文封装格式的主要区别是内层的数据报文中ip头是ipv6头。具体地,如图15所示,用户a向edge1发送的数据报文为ipv6报文。用户a发送的数据报文中的ip头为ipv6头,用户a发送的数据报文中的ip头中携带的源地址为用户a的ipv6地址,例如为fc00:2:1::1。用户a发送的数据报文中的ip头中携带的目的地址为用户z的ipv6地址,例如为fc00:1:1::1。
[0331]
实例5
[0332]
实例5是本技术实施例提供的一种通过sd-wan sr隧道转发l2vpn流量的方法。图16示出了实例5的示意图。
[0333]
如图16所示,在实例1的基础上,在步骤(1)中,通过bgp evpn传递以太网自动发现路由(ethernet auto-discovery,ethernet ad)路由、mac路由通告(advertisement route)路由、集成多播路由(inclusive multicast route)路由、以太网段(ethernet segment,es)路由等,使用颜色和下一跳来选择迭代到sd-wan sr隧道上,从而实现l2vpn流量承载在sd-wan sr隧道上转发。具体地,如图16所示,在步骤(1)中,edge2发布的evpn私网路由为evpn mac路由。edge2发布的evpn私网路由携带的前缀包括mac地址,例如为用户z的mac地址(mac2)。对于转发面转发报文的流程而言,l2vpn场景中报文封装格式与l3vpn场景中报文封装格式的主要区别是内层数据报文包括以太头被整体封装在隧道里面。
[0334]
总结上述各个实施例可见,本技术的实施例带来的有益效果包括而不限于以下(1)至(3)。
[0335]
(1)本实施例提供的sr隧道技术只需要underlay网络提供wan链路ip的路由可达性,无需underlay网络设备运行支持sr-mpls的igp协议或者支持srv6的igp协议。underlay网络和overlay网络解耦,协议部署简单,能适应各种传输网络类型,如支持在internet等ip公共网络上建立overlay sr隧道。
[0336]
(2)现有srv6隧道技术中外层ip头中源ip地址在头端设备上指定,源ip地址在中
间网络转发时不会变更。如果隧道要跨越多个不同路由域的underlay传输网络,有可能由于urpf检查不通过导致报文被丢弃。图17示出了sd-wan网络中跨越多域转发sr报文的示意图。如图17所示,中间节点edge3通过传输网络1连接edge1,通过传输网络2连接edge2。中间节点edge3接收到edge1发送的报文,报文的源ip地址是ip1(edge1上tnp1的ip地址)。如果中间节点edge3保持报文的源ip地址不变,即,中间节点edge3向edge2发送的报文的源ip地址仍是ip1。当报文到了edge3与edge2之间的传输网络2时,传输网络2中的网络设备会因为查不到ip1的路由,导致报文urpf检查无法通过,因此传输网络2中的网络设备会丢弃报文。而本实施例中,由于中间节点会根据每段tvc信息重新变更sr隧道报文的源ip地址,解决了跨域隧道urpf检查的问题。例如,如图17所示,中间节点edge3接收到的报文的源ip地址是ip1,中间节点edge3发送出去的报文的源ip地址刷新成了ip4(中间节点edge3上tnp4的地址)。
[0337]
(3)现有的srv6隧道技术只能在支持ipv6路由转发的传输网络上建立隧道,而本实施例的sd-wan sr隧道和底层underlay传输网络协议无关,能支持underlay网络是ipv6网络的情况,也能支持underlay网络是ipv4网络的情况,甚至支持跨越ipv4和ipv6异构的传输网络建立端到端的sr隧道。
[0338]
综上,本实施例提供的sd-wan sr隧道方法,只需要相关的sd-wan edge设备支持bgp evpn、bgp ls、bgp sr等必要协议,而underlay网络整体当做一个黑盒ip转发网络,underlay网络中设备无需为建立sr而运行ospfv3/isisv6等额外igp for sr扩展协议。因此,本实施例提供的方法可以称为是underlay传输网络协议无关的overlay sr方法。
[0339]
图18是本技术实施例提供的一种网络设备610的结构示意图。网络设备610包括接收单元611、处理单元612和发送单元613。
[0340]
可选地,结合图1所示的应用场景来看,图18所示的网络设备610是图1中的网络设备202或者网络设备204。
[0341]
可选地,结合图2所示的应用场景来看,图18所示的网络设备610是图2中的edge设备406。
[0342]
可选地,结合图3所示的应用场景来看,图18所示的网络设备610是图3中的pop gw 502。
[0343]
可选地,结合图4来看,图18所示的网络设备610是图4所示方法流程中的网络设备b。接收单元611用于支持网络设备610执行s602。处理单元612用于支持网络设备610执行s603。发送单元613用于支持网络设备610执行s604。
[0344]
可选地,结合图7来看,图18所示的网络设备610是图7中的edge3。
[0345]
可选地,结合图8来看,图18所示的网络设备610是图8中的edge3。
[0346]
可选地,结合图9来看,图18所示的网络设备610是图9中的edge3。
[0347]
可选地,结合图10来看,图18所示的网络设备610是图10中的edge3。
[0348]
可选地,结合图11来看,图18所示的网络设备610是图11中的edge3。
[0349]
可选地,结合图12来看,图18所示的网络设备610是图12中的edge3。
[0350]
可选地,结合图13来看,图18所示的网络设备610是图13中的edge3。
[0351]
可选地,结合图14来看,图18所示的网络设备610是图14中的edge3。
[0352]
可选地,结合图15来看,图18所示的网络设备610是图15中的edge3。
[0353]
可选地,结合图16来看,图18所示的网络设备610是图16中的edge3。
[0354]
图18所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0355]
网络设备610中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
[0356]
在采用软件实现的情况下,例如,上述处理单元612是由图20中的至少一个处理器801读取存储器802中存储的程序代码后,生成的软件功能单元来实现。又如,上述处理单元612是由图21中主控板910上的中央处理器911读取存储器912中存储的程序代码后,生成的软件功能单元来实现。
[0357]
在采用硬件实现的情况下,例如,图18中上述各个单元由网络设备中的不同硬件分别实现,例如处理单元612由图20中的至少一个处理器801中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者处理单元612采用现场可编程门阵列(field-programmable gate array,fpga)、或协处理器等可编程器件来完成。例如,接收单元611和发送单元613由图20中的网络接口803实现。又如,接收单元611和发送单元613由图21中的物理接口卡933实现。
[0358]
图19是本技术实施例提供的一种控制器设备710的结构示意图,控制器设备710包括获取单元711、处理单元712和发送单元713。
[0359]
可选地,结合图1所示的应用场景来看,图19所示的控制器设备710是图1中的控制器设备11。
[0360]
可选地,结合图2所示的应用场景来看,图19所示的控制器设备710是图2中的sd-wan控制器490。
[0361]
可选地,结合图3所示的应用场景来看,图19所示的控制器设备710是图3中的sd-wan控制器590。
[0362]
可选地,结合图6来看,图19所示的控制器设备710是图6所示方法流程中的控制器设备。获取单元711用于支持控制器设备710执行s702。处理单元712用于支持控制器设备710执行s703。发送单元713用于支持控制器设备710执行s704。
[0363]
可选地,结合图7来看,图19所示的控制器设备710是图7中的sd-wan控制器。
[0364]
可选地,结合图9来看,图19所示的控制器设备710是图9中的sd-wan控制器。
[0365]
可选地,结合图10来看,图19所示的控制器设备710是图10中的sd-wan控制器。
[0366]
可选地,结合图11来看,图19所示的控制器设备710是图11中的sd-wan控制器。
[0367]
图19所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0368]
控制器设备710中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合
programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
[0389]
存储器802例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器802独立存在,并通过内部连接804与处理器801相连接。或者,可选地存储器802和处理器801集成在一起。
[0390]
网络接口803使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口803例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,wlan)接口,蜂窝网络网络接口或其组合等。
[0391]
在一些实施例中,处理器801包括一个或多个cpu,如图20中所示的cpu0和cpu1。
[0392]
在一些实施例中,设备800可选地包括多个处理器,如图20中所示的处理器801和处理器805。这些处理器中的每一个例如是一个单核处理器(single-cpu),又如是一个多核处理器(multi-cpu)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
[0393]
在一些实施例中,设备800还包括内部连接804。处理器801、存储器802以及至少一个网络接口803通过内部连接804连接。内部连接804包括通路,在上述组件之间传送信息。可选地,内部连接804是单板或总线。可选地,内部连接804分为地址总线、数据总线、控制总线等。
[0394]
在一些实施例中,设备800还包括输入输出接口806。输入输出接口806连接到内部连接804上。
[0395]
可选地,处理器801通过读取存储器802中保存的程序代码810实现上述实施例中的方法,或者,处理器801通过内部存储的程序代码实现上述实施例中的方法。在处理器801通过读取存储器802中保存的程序代码810实现上述实施例中的方法的情况下,存储器802中保存实现本技术实施例提供的方法的程序代码。
[0396]
处理器801实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
[0397]
参见图21,图21是本技术实施例提供的一种设备900的结构示意图。图21所示的设备900可以提供为网络设备或者控制器设备。设备900包括:主控板910和接口板930。
[0398]
可选地,结合图1所示的应用场景来看,图21所示的设备900是图1中的网络设备202或者网络设备204或者控制器设备11。
[0399]
可选地,结合图2所示的应用场景来看,图21所示的设备900是图2中的edge设备406或者sd-wan控制器490。
[0400]
可选地,结合图3所示的应用场景来看,图21所示的设备900是图3中的pop gw 502
或者sd-wan控制器590。
[0401]
可选地,结合图4来看,图21所示的设备900是图4所示方法流程中的网络设备b。接口板930上物理接口卡933用于支持设备800执行s602和s604。接口板930上的网络处理器932以及主控板910上的中央处理器911用于支持设备800执行s603。
[0402]
可选地,结合图6来看,图21所示的设备900是图6所示方法流程中的sd-wan控制器。接口板930上物理接口卡933于支持设备800执行s702和s704。主控板910上的中央处理器911用于支持设备800执行s703。
[0403]
可选地,结合图7来看,图21所示的设备900是图7中的edge3或者sd-wan控制器。
[0404]
可选地,结合图8来看,图21所示的设备900是图8中的edge3。
[0405]
可选地,结合图9来看,图21所示的设备900是图9中的edge3或者sd-wan控制器。
[0406]
可选地,结合图10来看,图21所示的设备900是图10中的edge3或者sd-wan控制器。
[0407]
可选地,结合图11来看,图21所示的设备900是图11中的edge3或者sd-wan控制器。
[0408]
可选地,结合图12来看,图21所示的设备900是图12中的edge3。
[0409]
可选地,结合图13来看,图21所示的设备900是图13中的edge3。
[0410]
可选地,结合图14来看,图21所示的设备900是图14中的edge3。
[0411]
可选地,结合图15来看,图21所示的设备900是图15中的edge3。
[0412]
可选地,结合图16来看,图21所示的设备900是图16中的edge3。
[0413]
主控板也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板910用于对设备900中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板910包括:中央处理器911和存储器912。
[0414]
接口板930也称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板930用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板930包括:中央处理器931、网络处理器932、转发表项存储器934和物理接口卡(physical interface card,pic)933。
[0415]
接口板930上的中央处理器931用于对接口板930进行控制管理并与主控板910上的中央处理器911进行通信。
[0416]
网络处理器932用于实现报文的转发处理。网络处理器932的形态例如是转发芯片。具体而言,网络处理器932用于基于转发表项存储器934保存的转发表转发接收到的报文,如果报文的目的地址为设备900的地址,则将该报文上送至cpu(如中央处理器911)处理;如果报文的目的地址不是设备900的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
[0417]
物理接口卡933用于实现物理层的对接功能,原始的流量由此进入接口板930,以及处理后的报文从该物理接口卡933发出。物理接口卡933也称为子卡,可安装在接口板930上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器932处理。在一些实施例中,中央处理器也可执行网络处理器932的功能,比如基于通用cpu实现软件转发,从而物理接口卡933中不需要网络处理器932。
[0418]
可选地,设备900包括多个接口板,例如设备900还包括接口板940,接口板940包括:中央处理器941、网络处理器942、转发表项存储器944和物理接口卡943。
[0419]
可选地,设备900还包括交换网板920。交换网板920也例如称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板930的情况下,交换网板920用于完成各接口板之间的数据交换。例如,接口板930和接口板940之间例如通过交换网板920通信。
[0420]
主控板910和接口板930耦合。例如。主控板910、接口板930和接口板940,以及交换网板920之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板910和接口板930之间建立进程间通信协议(inter-process communication,ipc)通道,主控板910和接口板930之间通过ipc通道进行通信。
[0421]
在逻辑上,设备900包括控制面和转发面,控制面包括主控板910和中央处理器931,转发面包括执行转发的各个组件,比如转发表项存储器934、物理接口卡933和网络处理器932。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器932基于控制面下发的转发表对物理接口卡933收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器934中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
[0422]
接口板940上的操作与接口板930的操作一致,为了简洁,不再赘述接口板940的操作。
[0423]
本实施例的设备900可对应于上述各个方法实施例中的网络设备或者控制器设备,该设备900中的主控板910、接口板930和/或940例如实现上述各个方法实施例中网络设备或者控制器设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
[0424]
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
[0425]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
[0426]
本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中的字符“/”,一般表示前后关联对象是一种“或”的关系。
[0427]
a参考b,指的是a与b相同或者a为b的简单变形。
[0428]
本技术实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一连接和第二连接用于区别不同的连接,而不是用于描述连接的特定顺序,也不能理解为第一连接比第二连接更重要。
[0429]
本技术实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个连接是指两个或两个以上的连接。
[0430]
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0431]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。