传输虚拟专用网的段标识vpn sid的方法、装置和网络设备
1.本技术要求于2020年08月18日提交中国国家知识产权局、申请号为202010830252.2、申请名称为“一种在网络中扩散vpnsid的方法和设备”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及通信技术领域,尤其涉及一种传输虚拟专用网的段标识(英文:virtual private network segment identification,简称:vpn sid)的方法、装置和网络设备。
背景技术:
3.在基于第六版互联网协议的分段路由(英文:segment routing over internet protocol version 6,简称:srv6)网络中,一般由出口节点将vpn sid发送给入口节点,中间节点不感知该出口节点的vpn sid。
4.目前,当该vpn sid对应的vpn的业务报文转发时,入口节点将该出口节点的vpn sid作为该vpn业务报文的目的地址,指导该vpn的业务报文被转发至出口节点,而中间节点的路由表中没有vpn sid,中间节点以其他方式(例如可以依赖汇聚路由的方式)实现对该vpn的业务报文的转发。
5.但是,很多srv6的场景中,对于需要开通的vpn业务,需要针对该vpn业务进行vpn路由的收敛,即,将vpn sid传输到每个节点中,每个节点关于该vpn业务的转发表项中关联到该出口节点的vpn sid。而由于目前的技术方案中,vpn sid并不被中间节点感知,所以,无法实现对应vpn路由的收敛,从而无法实现vpn业务级的控制。
技术实现要素:
6.本技术提供了一种传输vpn sid的方法、装置和网络设备,出口节点关联的vpn sid在网络中扩散,网络中的各节点均能感知到该vpn sid,实现vpn路由的收敛,从而使得对vpn业务级的控制成为可能。
7.本技术中所提供的下述方法、装置和网络设备,能够应用于srv6的尽力而为(best effort,be)等可能的业务场景。
8.第一方面,本技术提供了一种传输vpn sid的方法,该方法例如包括:入口节点接收包括vpn sid的第一报文后,从用户侧接收与该vpn sid对应的vpn的第二报文,那么,该入口节点即可在该第二报文中添加vpn sid以获取更新的第二报文,并发送更新后的第二报文,这样,该更新的第二报文转发路径上的第一中间节点就可以基于本地的vpn sid和该更新的第二报文中的vpn sid匹配,确定接收该更新的第二报文的第二中间节点或出口节点。可见,通过该方法,出口节点将自身对应的vpn sid发送给网络中的各个节点,并指示各个节点保存该出口节点的vpn sid,使得入口节点和各中间节点均能够感知并保存该vpn sid,对于用户侧的发出的与该vpn sid对应的vpn的报文,入口节点将对应的vpn sid携带
在报文中发出,各中间节点均可以基于本地保存的vpn sid指导该包括了vpn sid的更新的报文的转发,实现vpn业务级的控制。此外,对于需要开通vpn业务的情况,由于各节点均保存有出口节点的vpn sid,使得各个节点将该vpn sid关联到转发表中该待开通vpn业务的转发表项成为可能,实现vpn路由的优先收敛。
9.在一种可能的实现方式中,该第一报文除了包括出口节点的vpn sid,还可以包括目的设备的地址,该入口节点接收到第一报文后,即可将该vpn sid和目的设备的地址对应保存。那么,入口节点接收与vpn sid对应的vpn的第二报文,并在第二报文中添加vpn sid,例如可以包括:入口节点接收携带目的设备的地址的第二报文后,根据第二报文携带的目的设备的地址与vpn sid的对应关系,将vpn sid添加在第二报文的报文头的目的地址字段,得到更新的第二报文。这样,为后续各中间节点准确的转发更新的第二报文,实现vpn业务级的控制提供了数据基础。
10.其中,第一报文可以是边界网关协议(border gateway protocol,bgp)报文,那么,vpn sid可以携带在该bgp报文的互联网协议(internet protocol,ip)单播地址族;或者,第一报文也可以是内部网关协议(interior gateway protocol,igp)报文。
11.在一种可能的实现方式中,该第一报文还可以包括目的设备的地址,那么,该方法在入口节点接收到第一报文之后,还可以包括:入口节点基于第一报文生成第一转发表项,该第一转发表项包括vpn sid和目的设备的地址之间的对应关系。如此,为入口节点转发与该vpn sid对应的vpn的报文提供了依据。
12.在一种可能的实现方式中,当入口节点接收到不包括vpn sid的第三报文以及包括vpn sid的第一报文时,该入口节点基于第一报文生成第一转发表项,具体可以包括:该入口节点根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报文生成的转发表项。其中,在判断第一报文中是否携带出口节点的vpn sid时,对于第一报文为igp报文的情形,可直接确定第一报文是否携带有该vpn sid,而对于第一报文为bgp报文的情形,可确定第一报文的公网路由nlri的指定字段中是否携带有该vpn sid。这样,能够满足一些要求vpn业务优先收敛的场景的要求,实现vpn路由优先收敛后再进行其他路由的收敛。
13.在一种可能的实现方式中,更新的第二报文中的vpn sid具体可以用于指示第一中间节点根据本地保存的vpn sid和更新的第二报文中的vpn sid进行精确匹配,以确定接收更新的第二报文的第二中间节点或出口节点。精确匹配相比于目前的最长匹配原则,128比特的精确匹配能够更加精确的指导报文的转发,并且在某些具体应用场景下,可以通过诸如中间节点基于vpn sid的精确匹配转发,实现更细粒度的vpn业务转发控制。
14.在一种可能的实现方式中,第一报文中还可以包括与vpn sid对应的网络拓扑标识(例如可以是弹性算法(flexible algorithm,flexalgo))。那么,入口节点发送更新的第二报文,具体可以是:根据与第二报文对应的vpn sid,确定vpn sid对应的网络拓扑标识,并向网络拓扑标识所指示的网络拓扑中的其他节点发送更新的第二报文。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的类型长度值(type length value,tlv)字段携带。这样,对于用户侧的发出的与该vpn sid对应的vpn的第二报文,入口节点和各中间节点均可以基于本地保存的vpn sid指导该报文在指定的网络拓扑中准确的转发,实现vpn业务级更加精细化的控制。
15.第二方面,本技术还提供了一种传输vpn sid的方法,该方法包括:第一中间节点从入口节点接收包括vpn sid的第二报文时,可以根据本地的vpn sid和第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点,并向所确定的下一跳节点发送该第二报文,其中,下一跳节点为第二中间节点或出口节点。可见,通过该方法,中间节点接收来自入口节点的包括vpn sid的第二报文时,能够基于本地保存的vpn sid指导该包括了vpn sid的第二报文的转发,实现vpn业务级的控制。此外,对于需要开通vpn业务的情况,由于各节点均保存有出口节点的vpn sid,使得各个节点将该vpn sid关联到转发表中该待开通vpn业务的转发表项成为可能,实现vpn路由的优先收敛。
16.在一种可能的实现方式中,在第一中间节点从入口节点接收第二报文之前,该方法还可以包括:第一中间节点接收到包括vpn sid的第一报文,并保存该vpn sid。其中,出口节点可以直接或间接的向第一中间节点发送包括该vpn sid的第一报文。如此,中间节点接收并保存出口节点对应的vpn sid,为后续该中间节点对与该vpn sid匹配的vpn的报文的转发做好了准备。
17.作为一个示例,为了让其他节点均能够接收到第一报文并保存该第一报文中的vpn sid,该方法还可以包括:第一中间节点向第二中间节点或入口节点转发第一报文。
18.其中,第一报文可以是bgp报文,那么,vpn sid可以携带在该bgp报文的ip单播地址族;或者,第一报文也可以是igp报文。
19.在一种可能的实现方式中,第一中间节点保存vpn sid例如可以包括:第一中间节点根据第一报文生成并保存第一转发表项,该第一转发表项包括下一跳节点标识与vpn sid之间的对应关系;那么,第一中间节点根据本地的vpn sid和第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点,可以包括:第一中间节点根据第二报文的vpn sid,确定第一转发表项,然后,根据第一转发表项中的下一跳节点标识,确定接收第二报文的下一跳节点。这样,将vpn sid关联到对应到的转发表项,指导具体的报文转发,实现了精细化的vpn业务级的控制。
20.在一种可能的实现方式中,该方法还包括:第一中间节点接收不包括vpn sid的第三报文;那么,第一中间节点节点基于第一报文生成第一转发表项,可以包括:第一中间节点根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报文生成的转发表项。其中,在判断第一报文中是否携带出口节点的vpn sid时,对于第一报文为igp报文的情形,可直接确定第一报文是否携带有该vpn sid,而对于第一报文为bgp报文的情形,可确定第一报文的公网路由nlri的指定字段中是否携带有该vpn sid。这样,能够满足一些要求vpn业务优先收敛的场景的要求,实现vpn路由优先收敛后再进行其他路由的收敛。
21.在一种可能的实现方式中,第一中间节点根据本地的vpn sid和第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点,例如可以包括:第一中间节点根据本地的vpn sid和第二报文中的vpn sid精确匹配,确定接收第二报文的下一跳节点。这样,通过vpn sid的精确匹配能够更加准确的指导报文的转发。
22.在一种可能的实现方式中,第一报文还可以包括与vpn sid对应的网络拓扑标识(例如可以是vpn sid对应的flexalgo),网络拓扑标识用于指示第一中间节点确定vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识
的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。这样,对于从入口节点发出的与该vpn sid对应的vpn的第二报文,各中间节点均可以基于本地保存的vpn sid指导该报文在指定的网络拓扑中准确的转发,实现vpn业务级更加精细化的控制。
23.第三方面,本技术还提供了一种传输vpn sid的方法,该方法可以包括:出口节点获取与出口节点对应的vpn sid后,向中间节点发送包括vpn sid的第一报文,该第一报文用于指示中间节点保存vpn sid。可见,通过该方法,出口节点向中间节点发送vpn sid并指示中间节点保存该vpn sid,使得中间节点基于本地保存的vpn sid指导对包括了vpn sid的报文的转发、实现vpn业务级的控制成为可能。此外,对于需要开通vpn业务的情况,由于各节点均保存有出口节点的vpn sid,使得各个节点将该vpn sid关联到转发表中该待开通vpn业务的转发表项成为可能,实现vpn路由的优先收敛。
24.其中,第一报文可以是bgp报文,那么,vpn sid可以携带在该bgp报文的ip单播地址族;或者,第一报文也可以是igp报文。
25.在一种可能的实现方式中,该vpn sid用于指示中间节点根据本地的vpn sid和所接收的第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点。
26.在一种可能的实现方式中,第一报文用于指示其他节点保存vpn sid,具体为:第一报文用于指示中间节点根据vpn sid生成第一转发表项,第一转发表项包括vpn sid和下一跳节点标识之间的对应关系,第一转发表项用于指示中间节点将所接收的第二报文转发到下一跳节点。
27.在一种可能的实现方式中,第一报文还包括与vpn sid对应的网络拓扑标识(例如可以是vpn sid对应的flexalgo),第一报文用于指示中间节点根据网络拓扑标识和vpn sid生成第一转发表项,第一转发表项包括vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。这样,对于从入口节点发出的与该vpn sid对应的vpn的报文,各中间节点均可以基于本地保存的vpn sid指导该报文在指定的网络拓扑中准确的转发,实现vpn业务级更加精细化的控制。
28.第四方面,本技术还提供了一种传输vpn sid的装置,该装置应用于入口节点,该装置可以包括:第一接收单元、第二接收单元和发送单元。其中,第一接收单元,用于接收第一报文,第一报文包括虚拟专用网段标识vpn sid;第二接收单元,用于从用户侧接收与vpn sid对应的vpn的第二报文,并在第二报文中添加vpn sid以获取更新的第二报文,vpn sid用于指示更新的第二报文转发路径上的第一中间节点根据本地的vpn sid和更新的第二报文中的vpn sid匹配,确定接收更新的第二报文的第二中间节点或出口节点;发送单元,用于发送更新的第二报文。
29.在一种可能的实现方式中,第一报文还包括目的设备的地址,那么,该第二接收单元可以包括第一接收子单元和添加子单元。其中,第一接收子单元,用于接收第二报文,第二报文携带目的设备的地址;添加子单元,用于根据第二报文携带的目的设备的地址与vpn sid的对应关系,将vpn sid添加在第二报文的报文头的目的地址字段。
30.在一种可能的实现方式中,第一报文为bgp报文,该vpn sid携带在bgp报文的ip单播地址族;或者,第一报文为igp报文。
31.在一种可能的实现方式中,第一报文还包括目的设备的地址,该装置还包括生成单元。该生成单元,用于基于第一报文生成第一转发表项,第一转发表项包括vpn sid和目的设备的地址之间的对应关系。
32.在一种可能的实现方式中,该装置还包括:第三接收单元。其中,第三接收单元,用于接收第三报文,第三报文中不包括vpn sid;那么,生成单元,具体用于:根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报文生成的转发表项。
33.在一种可能的实现方式中,vpn sid具体用于指示第一中间节点根据本地保存的vpn sid和更新的第二报文中的vpn sid进行精确匹配,以确定接收更新的第二报文的第二中间节点或出口节点。
34.在一种可能的实现方式中,第一报文中还包括与vpn sid对应的网络拓扑标识。那么,发送单元,具体用于:根据与第二报文对应的vpn sid,确定vpn sid对应的网络拓扑标识,并向其他节点发送更新的第二报文,其他节点为网络拓扑标识指示的网络拓扑中的中间节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
35.该第四方面提供的传输vpn sid的装置用于执行上述第一方面提及的相关操作,其具体实现方式以及达到的效果,均可以参见上述第一方面的相关描述,在此不再赘述。
36.第五方面,本技术还提供了一种传输vpn sid的装置,该装置应用于第一中间节点,装置包括:第一接收单元、确定单元和第一发送单元。其中,第一接收单元,用于从入口节点接收第二报文,第二报文中包括虚拟专用网段标识vpn sid;确定单元,用于根据本地的vpn sid和第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点,下一跳节点为第二中间节点或出口节点;第一发送单元,用于向下一跳节点发送第二报文。
37.在一种可能的实现方式中,该装置还包括:第二接收单元和保存单元。其中,第二接收单元,用于在从得到入口节点接收第二报文之前,接收第一报文,第一报文中包括vpn sid;保存单元,用于保存vpn sid。
38.在一种可能的实现方式中,该装置还包括:第二发送单元。第二发送单元,用于向第二中间节点或入口节点转发第一报文。
39.在一种可能的实现方式中,第一报文可以为bgp报文,vpn sid携带在bgp报文的ip单播地址族;或者,第一报文也可以为igp报文。
40.在一种可能的实现方式中,保存单元,具体用于:根据第一报文生成并保存第一转发表项,第一转发表项包括下一跳节点标识与vpn sid之间的对应关系;那么,确定单元,包括:第一确定子单元和第二确定子单元。其中,第一确定子单元,用于根据第二报文的vpn sid,命中第一转发表项;第二确定子单元,用于根据第一转发表项中的下一跳节点标识,确定接收第二报文的下一跳节点。
41.在一种可能的实现方式中,该装置还包括:第三接收单元。该第三接收单元,用于接收第三报文,第三报文中不包括vpn sid;那么,保存单元,具体用于:根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报文生成的转发表项。
42.在一种可能的实现方式中,该确定单元,具体用于:根据本地的vpn sid和第二报
文中的vpn sid精确匹配,确定接收第二报文的下一跳节点。
43.在一种可能的实现方式中,第一报文还包括与vpn sid对应的网络拓扑标识,网络拓扑标识用于指示第一中间节点确定vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
44.该第五方面提供的传输vpn sid的装置用于执行上述第二方面提及的相关操作,其具体实现方式以及达到的效果,均可以参见上述第二方面的相关描述,在此不再赘述。
45.第六方面,本技术还提供了一种传输vpn sid的装置,该装置应用于出口节点,该装置包括:获取单元和发送单元。其中,获取单元,用于获取与出口节点对应的虚拟专用网段标识vpn sid;发送单元,用于向中间节点发送第一报文,第一报文中包括vpn sid,第一报文用于指示中间节点保存vpn sid。
46.在一种可能的实现方式中,第一报文可以是bgp报文,vpn sid携带在bgp报文的ip单播地址族;或者,第一报文也可以是igp报文。
47.在一种可能的实现方式中,vpn sid用于指示中间节点根据本地的vpn sid和所接收的第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点。
48.在一种可能的实现方式中,第一报文用于指示其他节点保存vpn sid,具体为:第一报文用于指示中间节点根据vpn sid生成第一转发表项,第一转发表项包括vpn sid和下一跳节点标识之间的对应关系,第一转发表项用于指示中间节点将所接收的第二报文转发到下一跳节点。
49.在一种可能的实现方式中,第一报文还包括与vpn sid对应的网络拓扑标识,第一报文用于指示中间节点根据网络拓扑标识和vpn sid生成第一转发表项,第一转发表项包括vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
50.该第六方面提供的传输vpn sid的装置用于执行上述第三方面提及的相关操作,其具体实现方式以及达到的效果,均可以参见上述第三方面的相关描述,在此不再赘述。
51.第七方面,本技术还提供了一种网络设备,所述网络设备包括:处理器,用于使得该网络设备实现上述第一方面、第二方面或第三方面提供的所述方法。该网络设备还可以包括存储器,存储器与处理器耦合,处理器执行存储器中存储的指令时,可以使得该网络设备实现上述第一方面、第二方面或第三方面提供的方法。该网络设备还可以包括通信接口,通信接口用于该设备与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。本技术中存储器中的指令可以预先存储也可以使用该装置时从互联网下载后存储,本技术对于存储器中指令的来源不进行具体限定。
52.第八方面,本技术还提供了一种网络系统,所述网络系统包括入口节点、出口节点和第一中间节点,其中:所述入口节点,用于执行上述第一方面提供的所述方法;所述第一中间节点,用于执行上述第二方面提供的所述方法;所述出口节点,用于执行上述第三方面提供的所述方法。
53.第九方面,本技术提供了一种芯片,包括处理器和接口电路;接口电路,用于接收
指令并传输至处理器;处理器,用于执行如第一方面、第二方面或第三方面提供的所述方法对应的指令。
54.第十方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码或指令,当其在计算机上运行时,使得所述计算机执行以上第一方面、第二方面或第三方面提供的所述方法。
附图说明
55.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
56.图1为本技术实施例中一种网络系统10的结构示意图;
57.图2为本技术实施例中一种传输vpn sid的方法100的信令流程图;
58.图3a为本技术实施例中一种igp报文的格式示意图;
59.图3b为本技术实施例中一种bgp报文的格式示意图;
60.图4为本技术实施例中一种网络系统20的结构示意图;
61.图5为本技术实施例中一种传输vpn sid的方法200的信令流程图;
62.图6为本技术实施例中一种传输vpn sid的装置600的结构示意图;
63.图7为本技术实施例中一种传输vpn sid的装置700的结构示意图;
64.图8为本技术实施例中一种传输vpn sid的装置800的结构示意图;
65.图9为本技术实施例中一种网络设备900的结构示意图;
66.图10为本技术实施例中一种网络设备1000的结构示意图。
具体实施方式
67.目前,在报文转发的过程中,入口节点将感知到的出口节点的vpn sid作为待转发报文的目的地址,以指导该待转发报文从入口节点转出,但是,由于中间节点感知不到出口节点的vpn sid,中间节点的路由表中也就不会关联出口节点的vpn sid,从而中间节点只能以汇聚路由等方式实现报文的转发,无法依据出口节点的vpn sid指导报文的转发。这样,对于srv6场景中需要开通vpn业务的情况,需要实现vpn路由的收敛,但是因为出口节点的vpn sid不能够被中间节点所感知,所以,目前的技术方案中无法实现vpn路由的收敛,从而无法实现vpn业务级的控制。其中,vpn路由的收敛,是指将出口节点的vpn sid传输到每个节点(包括入口节点和各个中间节点)上,在每个节点关于该vpn业务的转发表项中关联该出口节点的vpn sid。
68.基于此,本技术实施例提供了一种传输vpn sid的方法,出口节点将自身对应的vpn sid发送给网络中的各个节点,并指示各个节点保存该出口节点的vpn sid,如此,不仅入口节点能够感知到该vpn sid,中间节点也能够感知并保存该vpn sid。对于需要开通vpn业务的情况,由于各节点均保存有出口节点的vpn sid,使得各个节点将该vpn sid关联到转发表中待开通vpn业务的转发表项成为可能,实现vpn路由的收敛。而且,对于用户侧的发出的与该vpn sid对应的vpn的报文,入口节点和中间节点均可以基于本地保存的vpn sid指导该报文的转发,实现vpn业务级的控制。
69.为便于理解本技术实施例,以下先对本技术实施例涉及的一些概念的含义进行解释。
70.vpn sid是一个128比特长度的实例化的第六版互联网协议(internet protocol version6,ipv6)地址,用于标识出口节点对应的一个vpn。vpn sid由位置标识(locator)和功能(function)两部分组成,格式可以是locator:function,locator占据vpn sid的高比特位,function占据vpn sid的剩余部分。vpn sid中的locator主要承担路由功能,在分段路由(segment routing,sr)域内唯一,当节点配置locator之后,该节点会生成一条locator网段路由,并且通过内部网关协议(interior gateway protocol,igp)在sr域内扩散,网络里其他节点通过locator网段路由就可以定位到配置该locator的节点,同时配置该locator的节点发布的所有vpn sid也都可以通过该条locator网段路由到达其他节点;vpn sid中的function可以是生成该vpn sid的节点预先设定的,用于指示生成该vpn sid的节点进行相应的功能操作,例如,指示生成该vpn sid的节点进行某种转发行为,或者,指示生成该vpn sid的节点实施某种业务等。
71.业务报文在源端生成后,可以依次经过若干传输节点转发到目的端。该业务报文从源端到目的端的传输路径上至少包括经过网络域范围内的一段路径,该段路径上的节点能够根据为业务报文添加的vpn sid进行针对vpn业务的控制和转发。该段路径包括入口节点、中间节点和出口节点,或者,也可称为头节点、中间节点和尾节点。头节点和尾节点例如可以是域边界节点,该域可以是指网络域,也可以是指管理域等。为便于表述,以下将属于源端到目的端的传输路径、并且依次经过入口节点、中间节点和尾节点的该段路径称为端到端的路径。该端到端的路径可以与源端到目的端的传输路径区别。该端到端的路径可以是源端到目的端的传输路径中的一部分。
72.其中,入口节点可以指生成报文的用户设备(即源端)所连接的端到端路径上经过的第一个节点。入口节点可以从用户侧接收与已接收的vpn sid对应的vpn的报文,并在该报文中添加vpn sid以获取更新的报文,从而在该端到端路径上发送该更新的报文。其中,该更新的报文中的vpn sid用于指示该更新的报文转发路径上的中间节点根据本地的vpn sid和该更新的报文中的vpn sid匹配,确定该中间节点的下一跳节点,使得各中间节点能够基于该更新的报文中的vpn sid进行报文的准确转发。
73.中间节点可以指报文在端到端路径上传输时经过的除了入口节点和出口节点以外的其他节点。中间节点可以从入口节点直接或间接接收包括vpn sid的报文,那么,该中间节点即可根据本地保存的vpn sid和所接收报文中携带的vpn sid匹配,以确定该中间节点的下一跳节点,将该报文发送给所确定的下一跳节点。其中,该中间节点的下一跳节点可能是该端到端路径上该中间节点连接的下一个中间节点,也可能是该端到端路径上该中间节点连接的出口节点。
74.出口节点可以指报文传输的端到端路径上的最后一个节点,该出口节点与该报文的目的端设备连接。在发布路由阶段,或称为通告vpn sid阶段,出口节点可以为一个vpn业务分配相应的vpn sid,并将该vpn sid携带在报文中进行扩散,以最终发送给端到端路径上的各个节点,从而指示接收到该报文的节点保存该vpn sid,这样,入口节点以及各中间节点即可实现vpn路由的收敛,从而基于本地保存的vpn sid实现报文的准确转发。在转发报文阶段,出口节点则可以根据自身分配的vpn sid确定相应的vpn业务,并针对该vpn业务
执行相应的业务操作,如转发该vpn业务的业务报文至目的用户设备等。
75.以vpn中用户侧的用户设备和网络侧的服务器之间的业务报文传输为例,在该网络场景下,一种情况下,入口节点例如可以是与发送该业务报文的用户设备连接的客户边缘(customer edge,ce)设备,或者是与该ce设备连接的运营商边缘(provider edge,pe)设备,而出口节点例如可以是与接收该业务报文的服务器连接的ce设备或pe设备。或者,另一种情况下,入口节点例如可以是与发送该业务报文的服务器连接的ce设备或pe设备,而出口节点例如可以是与接收该业务报文的用户设备连接的ce设备或pe设备。入口节点和出口节点可以位于同一自治系统(autonomous system,as)域,也可以位于不同的as域。入口节点和出口节点之间可以有0个、1个、2个或更多个的中间节点,中间节点在上述网络场景下例如可以是其他pe设备或者网关设备等。
76.需要说明的是,本技术实施例中的节点可以是独立的能够提供路由转发功能的网络设备,例如可以是路由器、交换机、转发器、防火墙等;或者,节点也可以是网络设备中具备报文转发能力的功能模块,该情况下,一个网络设备可以包括多个节点。为了方便描述,下文中以节点为独立的网络设备为例进行相关描述,节点和网络设备表达相同的含义。
77.需要说明的是,本技术各实施例提供的方法,可以应用于srv6的尽力而为(best effort,be)场景,或者其他需要的应用场景。
78.为便于理解本技术实施例提供的传输vpn sid的方法,下面将结合附图对该方法进行说明。
79.举例来说,本技术实施例可以应用到如图1所示的网络系统10中,图1为网络系统10的结构示意图。该网络系统10可以包括:用户设备101、网络设备102、网络设备103、网络设备104和服务器105。其中,用户设备101依次经过网络设备102、网络设备103和网络设备104连接到服务器105,用户设备101上可以安装有与服务器105对应的应用a,服务器105为用户提供应用a对应的服务。该网络系统10中,以用户设备101向服务器105发送业务报文为例,入口节点为网络设备102,出口节点为网络设备104,入口节点和出口节点之间包括一个中间节点,即网络设备103为中间节点。
80.以图1示出的网络系统10的结构为例,图2为本技术实施例提供的一种传输vpn sid的方法100的流程示意图。该方法100以用户设备101、入口节点102、中间节点103、出口节点104和服务器105之间的交互进行描述。具体实现时,该方法100例如可以包括下述s101~s111:
81.s101,出口节点104获取与该出口节点104对应的vpn sid。
82.出口节点104的vpn sid,用于标识出口节点104对应的一个vpn。该vpn sid可以locator和function,locator能够用于定位出口节点104,function能够用于标识该出口节点的进行某种转发行为或进行某种业务操作等。例如,出口节点104的vpn sid可以是a4::d1,其中,locator为a4::,function为d1。
83.具体实现时,出口节点104可以自动生成该出口节点104对应的vpn sid,或者,该出口节点104对应的vpn sid也可以是手动配置的。
84.s102,出口节点104向中间节点103和入口节点102发送报文1,该报文1中包括vpn sid,报文1指示接收方保存该vpn sid。
85.当出口节点104获取到该出口节点104对应的vpn sid时,出口节点104即可生成包
括该vpn sid的报文1,并向网络系统10的各节点发送该报文1,以将该vpn sid在网络系统10中扩散,为各节点基于vpn sid进行报文的准确转发提供了数据基础。
86.应理解,出口节点104可以针对不同的目的设备的地址配置不同的vpn sid,那么,出口节点104在经过报文1扩散vpn sid时,还可以在报文1中携带该vpn sid对应的目的设备的地址,使得接收到该vpn sid的节点能够知晓该vpn sid所标识的vpn对应的具体目的设备,从而为实现报文的准确转发提供了保障。
87.作为一个示例,该报文1可以是igp报文,该igp报文用于扩散出口节点104对应的vpn sid,让每个节点都能够感知到该vpn sid。例如,igp报文可以通过扩展的类型长度值(type length value,tlv)字段携带该vpn sid,以igp报文为中间系统到中间系统(intermediate system to intermediate system,isis)协议报文为例,可以在tlv 263中扩展子tlv字段以携带vpn sid,该子tlv字段的格式例如可以参见图3a所示,该子tlv字段可以包括:类型type字段,用于指示该子tlv携带的是出口节点104对应的vpn sid;长度length字段,用于指示该子tlv字段的总长度;值value字段(即图3a中的段标识出口节点行为(sid-endpoint-behavior))字段,用于携带出口节点104对应的vpn sid,如携带出口节点104的end.dt4、end.dt6或end.dx4。此外,该子tlv字段的value字段还可以包括算法(algorithm)字段,该algorithm字段用于指示该vpn sid对应的网络拓扑,即,该algorithm字段的取值为该vpn sid对应的网络拓扑标识,如,取值为flexalgo=128或129。例如,isis协议报文中的ipv6路由前缀(prefix)=xx::xx/128,扩展的该子tlv字段=《type=tbd(to be determined,待定),length=2,vpn sid=end.dt4,algorithm=flexalgo 128》。需要说明的是,该igp报文也可以是开放式最短路径优先(open shortest-path first,ospf)协议报文,ospf协议报文携带vpn sid的方式可以参见上述isis协议报文携带vpn sid的方式,在此不再赘述。
88.作为另一个示例,该报文1可以是边界网关协议(border gateway protocol,bgp)报文,vpn sid例如可以携带在该bgp报文的ip单播地址族中。例如,bgp报文可以通过定义ipv6单播地址族,在该ipv6单播地址族中携带该vpn sid,bgp报文的格式例如可以参见图3b所示,该bgp报文中,扩展网络层可达信息(network layer reachability information,nlri)1,该nlri 1对应的地址族标识(address family identifier,afi)字段=2,单播(unicast)字段=1,指示该nlri 1使用ipv6单播地址族发布公网路由。其中,该nlri 1中可以包括出口节点104对应的vpn sid,该vpn sid是一个128比特的ipv6地址实例,该vpn sid还可以扩展一个子tlv字段,该子tlv字段用于携带vpn sid,具体格式以及相关说明参见图3a中对子tlv字段的说明,此外,该扩展的子tlv中还可以包括该vpn sid对应的网络拓扑标识。如图3b所示,该bgp报文中还包括nlri 2,该nlri 2对应的afi字段=2,子地址族标识(sub address family identifier,safi)字段=128,指示该nlri 2发布私网路由,该nlri。中至少可以包括出口节点104对应的vpn sid。
89.需要说明的是,s102的实现方式基于网络系统10的部署差异而不同。一种情况下,如果出口节点104分别和网络系统10中的每个节点都建立邻居关系,那么,s102中出口节点104可以直接将报文1发送给中间节点103和入口节点102;另一种情况下,如果出口节点104和中间节点103建立邻居关系,中间节点103和入口节点102建立邻居关系,那么,s102中出口节点104可以直接将报文1发送给中间节点103,中间节点103再将该报文1中转到入口节
点102;又一种情况下,如果网络设备10中各节点属于一个as,且该网络系统10中还包括路由反射器(route reflector,rr),rr和各节点之间分别连接,那么,s102中出口节点104可以将报文1发送给rr,由rr将报文1发送给中间节点103和入口节点102,这样,各节点之间无需建立邻居关系。
90.此外,当网络系统包括多个网络拓扑时,该报文1中还可以携带与该vpn sid对应的网络拓扑标识,用于指示该vpn sid对应的网络拓扑。该网络拓扑标识例如可以是弹性算法(flexible algorithm,flexalgo)标识,不同的flexalgo标识指示不同的flexalgo,不同的flexalgo对应一组算路因子,实现流量在不同网络拓扑上的分配。该方法100中所涉及的关于与vpn sid对应的网络拓扑标识的描述,具体实现参见下述图5所示的方法200的相关说明。
91.s103,入口节点102接收报文1,并保存报文1中的vpn sid。
92.入口节点102在接收到出口节点104发送的报文1后,通过解析获得该报文1中携带的vpn sid,此时,入口节点102可以保存该vpn sid。入口节点102保存该vpn sid,例如可以是根据该vpn sid生成转发表项1,该转发表项1用于指导对与该vpn sid所标识的vpn对应的报文的处理。作为一个示例,该报文1中还可以包括目的设备的地址,例如服务器105的地址,那么,入口节点102根据该报文1生成的转发表项1中,可以包括vpn sid和目的设备的地址之间的对应关系。该转发表项1属于vpn转发表,假设出口节点104连接的服务器的地址10.1.1.1为目的设备的地址,出口节点104对应的vpn sid为a4::d1为例,生成的转发表项1例如可以参见下表1所示:
93.表1转发表项1
94.路由route下一跳next-hop10.1.1.1a4::d1
95.其中,路由指示的是目的设备的地址,即,10.1.1.1;下一跳指示的是下一跳节点的ip地址,即,出口节点104的vpn sid。
96.此外,入口节点102还可以基于报文1生成转发表项2,该转发表项2属于公网转发表。该转发表项2至少可以包括路由和下一跳之间的对应关系,例如可以参见下表2所示:
97.表2转发表项2
98.路由route下一跳next-hopa4::d1到中间节点103的出接口1
99.其中,路由指示的是出口节点104的公网ip地址,即,出口节点104的vpn sid;下一跳指示的是下一跳节点的出接口,即,入口节点102到中间节点103的出接口1,该出接口1例如可以是物理出接口。需要说明的是,如果报文1是igp报文,那么,表1和表2中的vpn sid可以来自igp报文的相同字段,如,来自图3a所示的igp报文中的子tlv字段;如果报文1是bgp报文,那么,表1包括的vpn sid可以来自报文1中用于发布私网路由的nlri中,如来自图3b所示的bgp报文的nlri 2,表2包括的vpn sid可以来自报文1中用于发布公网路由的nlri中,如来自图3b所示的bgp报文的nlri 1中。
100.需要说明的是,入口节点102基于报文1生成的转发表项还可以是下表3所示的转发表项3:
101.表3转发表项3
102.路由route下一跳next-hop出接口out-interface10.1.1.1a4::d1到中间节点103的出接口1
103.其中,下一跳指示的是出口节点104的vpn sid。生成该转发表项之前,入口节点102还可以对报文1用于发布公网路由的nlri中的vpn sid和用于发布私网路由的nlri中的vpn sid进行比对,当比对结果表示vpn sid一致时,入口节点102才基于报文1生成转发表项3,该转发表项3中的下一跳的内容即为该一致的vpn sid。
104.在一种可能的情形下,接收到报文1的节点,不仅从报文1中获取出口设备104的vpn sid,还可以优先于其他不携带vpn sid的用于发布路由的报文生成转发表项,实现vpn路由的优先收敛。例如,入口节点102接收到报文1和报文3,其中,报文1中携带出口节点104的vpn sid,报文3中则不包括vpn sid,那么,入口节点102可以先根据报文1生成上述转发表项1或转发表项3,确保将出口节点104对应的vpn sid下发的转发表指导报文的转发,之后,入口节点102也可以根据报文3生成对应的表项。如此,能够满足一些要求vpn业务优先收敛的场景的要求,实现vpn路由优先收敛后再进行其他路由的收敛。其中,在判断报文1中是否携带出口节点104的vpn sid时,对于报文1为igp报文的情形,可直接确定报文1是否携带有该vpn sid,而对于报文1为bgp报文的情形,可确定报文1的公网路由nlri的指定字段中是否携带有该vpn sid。
105.这样,入口节点102中保存了出口节点104对应的vpn sid,为入口节点102处理从用户侧接收到的报文做好了准备,即,s103之后,入口节点102即可执行下述s105~s107。
106.s104,中间节点103接收报文1,并保存报文1中的vpn sid。
107.除了入口节点102,每个中间节点均可以接收到报文1并保存该报文1中的vpn sid,该实施例中以图1所示的网络系统10为例进行说明,即,以中间节点103接收报文1并保存报文1中的vpn sid为例进行说明。
108.中间节点103在接收到出口节点104发送的报文1后,通过解析获得该报文1中携带的vpn sid并保存该vpn sid。中间节点103保存该vpn sid,例如可以是根据该vpn sid生成转发表项,该转发表项的格式例如可以参见下述表4和表5:
109.表4转发表项4
110.路由route下一跳next-hop10.1.1.1a4::d1
111.表5转发表项5
112.路由route下一跳next-hopa4::d1到出口节点104的出接口2
113.其中,表4的相关说明参见上述表1的对应描述;表5的相关说明参见上述表2的对应描述,但是,表5中下一跳指示的是中间节点103到出口节点104的出接口2。如果报文1是igp报文,那么,表4和表5中的vpn sid来自igp报文的相同字段;如果报文1是bgp报文,那么,表4包括的vpn sid来自报文1中用于发布私网路由的nlri中,如来自图3b所示的bgp报文的nlri 2中,表5包括的vpn sid来自报文1中用于发布公网路由的nlri中,如来自图3b所示的bgp报文的nlri 1中。
114.需要说明的是,中间节点103基于报文1生成的转发表项还可以如下表6所示:
115.表6转发表项6
116.路由route下一跳next-hop出接口out-interface10.1.1.1a4::d1到出口节点104的出接口2
117.在一种可能的情形下,如果需要vpn路由优先收敛,则,中间节点103还可以优先基于报文1生成上述转发表项4或转发表项6。例如,中间节点103接收到报文1和报文3,其中,报文1中携带出口节点104的vpn sid,报文3中则不包括vpn sid,那么,中间节点103可以先根据报文1生成上述转发表项4或转发表项6,确保将出口节点104对应的vpn sid下发的转发表指导报文的转发,之后,中间节点103也可以根据报文3生成对应的表项。如此,实现了vpn路由优先收敛后再进行其他路由的收敛。
118.这样,中间节点103中保存了出口节点104对应的vpn sid,为中间节点103处理从入口节点102接收到的报文做好了准备,即,s104之后,中间节点103即可执行下述s108和s109。
119.需要说明的是,上述s103和s104的执行没有先后顺序的限定,可以先执行s103再执行s104,也可以先执行s104再执行s103,还可以同时执行s103和s104。
120.在执行完上述s101~s104之后,该网络系统10为处理来自用户设备101的报文做好了准备,该方法100中对报文的处理参见下述s105~s111。
121.s105,入口节点102从用户设备101接收报文2。
122.其中,报文2可以是用户设备101上安装的应用a对应的业务报文,用户设备101向为该应用a提供服务的服务器105发送该报文2,用于实现对应的业务。
123.s106,入口节点102确定报文2与本地保存的vpn sid对应的vpn对应,在该报文2中添加vpn sid获得报文2’,该vpn sid用于指示报文2’转发路径上的中间节点103根据本地的vpn sid和报文2’中的vpn sid匹配,确定接收报文2’的下一跳节点。
124.s107,入口节点102向中间节点103发送报文2’,报文2’中包括vpn sid。
125.具体实现时,入口节点102接收到报文2后,可以通过解析报文2可以获得该报文2的目的地址,那么,入口节点102即可将该报文2的目的地址和本地的转发表中的各转发表项中的路由前缀进行匹配,一旦命中某条转发表项,即可基于该转发表项对该报文2进行处理。
126.作为一个示例,假设入口节点102保存有转发表1和转发表2,且转发表1和转发表2中分别包括上述表1所示的转发表项1和表2所示的转发表项2,那么,入口节点102接收到报文2并确定该报文2中携带的目的地址和转发表项1中的路由前缀10.1.1.1匹配时,一方面,入口节点102可以将转发表项1中的下一跳a4::d1添加到报文2中,获得报文2’,其中,a4::d1(即出口节点104对应的vpn sid)用于中间节点103根据本地的vpn sid和报文2’中的a4::d1匹配,确定接收报文2’的下一跳节点;另一方面,入口节点102还可以将转发表项1中的下一跳a4::d1和本地的转发表2中各条路由表项的路由进行匹配,确定命中转发表项2中的路由a4::d1,那么,入口节点102可以确定该报文2(或报文2’)传输到下一跳(即中间节点103)的出接口为出接口1,即,入口节点102根据转发表项2确定报文2’应该从出接口1转发到中间节点103上。
127.作为另一个示例,假设入口节点102保存有转发表3,且转发表3中包括上述表3所示的转发表项3,那么,入口节点102接收到报文2并确定该报文2中携带的目的地址和转发
sid和转发表项6中的下一跳a4::d1匹配时,中间节点103可以基于转发表项6确定该报文2’传输到下一跳(即出口节点104)的出接口为出接口2,即,中间节点103根据转发表项6确定报文2’应该从出接口2转发到出口节点104上。
135.s109,中间节点103向出口节点104发送报文2’。
136.具体实现时,中间节点103通过出接口2向出口节点104发送报文2’,报文2’中包括取值为vpn sid的da字段。
137.需要说明的是,上述s108~s109需要在s104之后执行。而且,s104、s108~s109可以作为单独的实施例在中间节点103上实施,本技术实施例仅是为了完整的描述提供的技术方案,所以以网络系统中多个执行主体的交互进行说明。
138.s110,出口节点104根据报文2’中的vpn sid,确定出口节点104对应的一个vpn。
139.s111,出口节点104向所确定的vpn对应的服务器105发送该报文2’。
140.出口节点104接收到报文2’后,可以解析报文2’获得报文2’中携带的vpn sid,发现该报文2’中携带的vpn sid为该出口节点104对应的vpn sid,则,可以根据该vpn sid确定该出口节点104的一个vpn,并向所确定的vpn对应的节点(即服务器105)发送该报文2’。
141.其中,出口节点104上可以对应至少一个vpn,每个vpn sid唯一标识一个对应的vpn。出口节点104上可以通过转发表的形式维护各个vpn sid、vpn和出接口之间的对应关系,这样,当出口节点104接收到携带自身的vpn sid的报文时,即可从转发表中命中与该报文中的vpn sid对应的转发表项,将所命中的转发表项中的vpn作为s110中所确定的vpn,将所命中的转发表项中的出接口作为s111中出口节点104向服务器105发送报文2’时通过的出接口。其中,为了提高了报文转发的精度,出口节点104对于报文2’中的vpn sid和本地转发表中的vpn sid的匹配,具体可以是精确匹配。
142.可见,通过本技术实施例提供的方法100,出口节点104能够将自身对应的vpn sid发送给网络中的各个节点,并指示各个节点保存该出口节点104的vpn sid,如此,不仅入口节点102能够感知到该vpn sid,中间节点103也能够感知并保存该vpn sid。相较于传统的诸如srv6 be网络业务场景,中间节点不保存并感知vpn sid的实现方式,采用本技术实施例提供的方案支持vpn业务时,由于各节点均保存有出口节点104的vpn sid,一方面使得各个节点均能够该vpn sid关联到转发表中待开通vpn业务的转发表项,实现了vpn路由的收敛;另一方面,使得vpn sid可以在underlay网络中扩散,对于用户侧的发出的与该vpn sid对应的vpn的报文,入口节点102和中间节点103均可以基于本地保存的vpn sid指导该报文的转发,实现vpn业务级的精准控制。
143.对于包括多个网络拓扑的网络系统,通常还需要将网络拓扑标识也扩散到网络系统的各个节点上,以便报文能够在有规定的网络拓扑中转发。
144.以下述图4所示的网络系统20为例,介绍本技术实施例提供的方法200。图4为网络系统20的结构示意图。该网络系统20可以包括:网络设备100~网络设备109。假设网络设备100是入口节点,网络设备109是出口节点,网络设备101~网络设备108为8个中间节点。网络设备100属于网络拓扑1和网络拓扑2,网络设备109也属于网络拓扑1和网络拓扑2,网络设备101~网络设备104属于网络拓扑1,网络设备105~网络设备108属于网络拓扑2。
145.图5为本技术实施例提供的一种传输vpn sid的方法200的流程示意图。该方法200以入口节点100、出口节点109以及各中间节点之间的交互进行描述。假设出口节点109上配
置路由前缀10.1.1.1对应的vpn sid 1为a9::d1,vpn sid 1对应的网络拓扑1的标识为128,路由前缀20.1.1.1对应的vpn sid 2为a9::d2,vpn sid 2对应的网络拓扑2的标识为129。具体实现时,该方法200例如可以包括下述s201~s215:
146.s201,出口节点109获取与该出口节点109对应的vpn sid 1和vpn sid 2。
147.需要说明的是,s201的实现方式以及相关描述参见上述方法100中的s101的对应说明。
148.s202,出口节点109向其他节点发送报文1,该报文1中包括vpn sid 1和该vpn sid 1对应的网络拓扑1的标识128,报文1指示属于网络拓扑1中的各接收方保存该vpn sid 1。
149.其中,报文1可以是igp报文,也可以bgp报文。如果报文1是bgp报文,那么,vpn sid 1和该vpn sid 1对应的网络拓扑1的标识128可以通过bgp报文的ip单播地址族携带。该报文1可以通过域内、外扩散的方式发送至中间节点101~中间节点108以及入口节点100。
150.考虑到网络系统20包括多个网络拓扑,为了克服为每个网络拓扑配置一个对应的locator,导致需要为每个节点规划和配置多个locator,发生工作量大且浪费网络资源等问题;而且,为了让各节点能够感知vpn sid对应的网络拓扑,并在指定的网络拓扑中有效的转发报文,以更好地支持vpn业务运行,本技术实施例在扩散vpn sid的报文中携带该vpn sid对应的网络拓扑标识。
151.例如,出口节点109可以在报文1中携带vpn sid 1的字段中承载该vpn sid 1对应的网络拓扑1的标识,假设报文1为igp报文,则,网络拓扑1的标识可以携带在图3a所示的、用于携带vpn sid 1的子tlv字段中的algorithm字段中,该algorithm字段的取值可以是该vpn sid 1对应的网络拓扑1的标识128;假设报文1为bgp报文,则,网络拓扑1的标识可以携带在图3b所示的、用于发布公网路由的nlri 1中,具体可以在该nlri 1扩展的子tlv字段中用于携带vpn sid 1的子tlv字段的algorithm字段中携带该vpn sid 1对应的网络拓扑1的标识128。此外,还可以报文1的其他任何可能的位置携带vpn sid 1和该vpn sid 1对应的网络拓扑1的标识,在本技术实施例中不作具体限定。
152.s203,出口节点109向其他节点发送报文2,该报文2中包括vpn sid 2和该vpn sid 2对应的网络拓扑2的标识129,报文2指示属于网络拓扑2中的各接收方保存该vpn sid 2。
153.同理,报文2可以是igp报文,也可以bgp报文。如果报文2是bgp报文,那么,vpn sid 2和该vpn sid 2对应的网络拓扑2的标识129可以通过bgp报文的ip单播地址族携带。该报文1可以通过域内、外扩散的方式发送至中间节点101~中间节点108以及入口节点100。
154.例如,报文2为igp报文,则,网络拓扑2的标识可以携带在图3a所示的、用于携带vpn sid 2的子tlv字段中的algorithm字段中,该algorithm字段的取值可以是该vpn sid 2对应的网络拓扑2的标识129。又例如,报文2为bgp报文,则,网络拓扑2的标识可以携带在图3b所示的、用于发布公网路由的nlri 1中,具体可以在该nlri 1扩展的子tlv字段中用于携带vpn sid 2的子tlv字段的algorithm字段中携带该vpn sid 2对应的网络拓扑2的标识129。此外,还可以通过报文2的其他任何可能的位置携带vpn sid 2和该vpn sid 2对应的网络拓扑2的标识,在本技术实施例中不作具体限定。
155.s204,入口节点100、中间节点101~中间节点104保存报文1中的vpn sid 2和该vpn sid 2对应的网络拓扑1的标识128。
156.通过s202,网络系统20中的所有节点均可以最终接收到报文1,每个节点接收到该
报文1后,通过报文1中的网络拓扑1的标识和本地配置的网络拓扑的标识进行匹配,匹配成功的节点保存该报文1,匹配失败的节点则不保存该报文1。由于入口节点100、中间节点101~中间节点104均配置了网络拓扑1的标识,所以,入口节点100、中间节点101~中间节点104保存该报文1,中间节点105~中间节点108不保存该报文1。
157.具体实现时,入口节点100、中间节点101~中间节点104对所接收的报文1执行的操作类型,以入口节点100收到报文1后的操作为例进行说明。入口节点100在接收到出口节点109发送的报文1后,通过解析获得该报文1中携带的vpn sid 1和网络拓扑1的标识128,此时,入口节点100可以保存该vpn sid 1和128。入口节点100保存该vpn sid 1和128,例如可以是根据该vpn sid 1和128生成转发表项1’,该转发表项1’用于指导对与该vpn sid 1所标识的vpn 1对应的报文的处理。作为一个示例,生成的私网转发表项1’例如可以参见下表7所示:
158.表7转发表项1’159.路由route下一跳next-hop10.1.1.1a9::d1
160.其中,路由指示的是目的设备的地址,即,10.1.1.1;下一跳指示的是下一跳节点的ip地址,即,出口节点109的vpn sid 1。
161.此外,入口节点100还可以基于报文1生成转发表项2’,该转发表项2’属于公网转发表。该转发表项2’至少可以包括路由、网络拓扑标识和下一跳之间的对应关系,例如可以参见下表8所示:
162.表8转发表项2’163.路由route网络拓扑标识下一跳next-hopa9::d1128到中间节点101的出接口1
164.其中,路由指示的是出口节点109的公网ip地址,即,出口节点109的vpn sid 1;下一跳指示的是下一跳节点的出接口,即,入口节点100到中间节点101的出接口1,该出接口1例如可以是物理出接口。需要说明的是,如果报文1是igp报文,那么,表7和表8中的vpn sid 1可以来自igp报文的相同字段;如果报文1是bgp报文,那么,表7包括的vpn sid 1可以来自报文1中用于发布私网路由的nlri,如来自图3b所示的bgp报文的nlri 2中,表2包括的vpn sid 1可以来自报文1中用于发布公网路由的nlri,如来自图3b所示的bgp报文的nlri 1中。
165.入口节点100基于报文1生成的转发表项还可以是下表9所示的转发表项3’:
166.表9转发表项3’167.路由route下一跳next-hop网络拓扑标识出接口out-interface10.1.1.1a9::d1128到中间节点101的出接口1
168.其中,下一跳指示的是出口节点109的vpn sid 1。需要说明的是,生成该转发表项之前,入口节点100还可以对报文1用于发布公网路由的nlri中的vpn sid 1和用于发布私网路由的nlri中的vpn sid 1进行比对,当比对结果表示两个vpn sid 1一致时,入口节点100才基于报文1生成转发表项3’,该转发表项3’中的下一跳的内容即为该一致的vpn sid 1。
169.在一种可能的情形下,接收到报文1的节点,不仅从报文1中获取出口设备109的
的下一跳节点;另一方面,入口节点100还可以基于转发表项3’确定该报文3(或报文3’)在网络拓扑1中传输到下一跳(即中间节点101)的出接口为出接口1,即,入口节点100根据转发表项3’确定报文3’应该从出接口1转发到中间节点101上。
194.其中,入口节点100将vpn sid 1添加到报文3中,例如可以是将vpn sid 1设置为该报文3的da,得到报文3’。
195.中间节点101以及报文3’经过的其他属于网络拓扑1的节点,在接收到报文3’后,均可以根据本地的vpn sid 1和报文3’中的vpn sid 1匹配,确定接收报文3’的下一跳节点,以及,确定报文3’需要在属于网络拓扑128的各节点之间传输。
196.s209,出口节点109根据报文3’中的vpn sid 1,确定出口节点109对应的vpn 1。
197.s210,出口节点109向所确定的vpn 1对应的服务器1发送该报文3’。
198.需要说明的是,s209~s210的实现方式以及相关描述参见上述方法100中的s110~s111的对应说明。
199.需要说明的是,上述s206~s210需要在s204之后执行,s206~s210与s203和s205的执行互不影响。
200.s211,入口节点100从用户侧接收到报文4,该报文4的目的地址与路由前缀20.1.1.1匹配。
201.s212,入口节点100确定报文4与本地保存的vpn sid 2对应的vpn 2对应,在该报文4中添加vpn sid 2获得报文4’,该vpn sid 2用于指示报文4’转发路径上的中间节点根据本地的vpn sid 2和报文4’中的vpn sid 2匹配,确定接收报文4’的下一跳节点。
202.s213,入口节点100经过中间节点105~中间节点108中的部分节点,向出口节点109发送报文4’,报文4’中包括vpn sid 2。
203.入口节点100接收到报文4后,可以通过解析报文4可以获得该报文4的目的地址,那么,入口节点100即可将该报文4的目的地址和本地的转发表中的各转发表项中的路由前缀进行匹配,一旦命中某条转发表项,即可基于该转发表项对该报文4进行处理。
204.假设入口节点100保存有包括vpn sid 2和129的转发表项时,入口节点100接收到报文4并确定该报文4中携带的目的地址和该转发表项中的路由前缀20.1.1.1匹配时,一方面,入口节点100可以将该转发表项中的下一跳a9::d2添加到报文4中,获得报文4’,其中,a9::d2(即出口节点109对应的vpn sid 2)用于传输路径上的其他节点根据本地的vpn sid和报文4’中的a9::d2匹配,确定接收报文4’的下一跳节点;另一方面,入口节点100还可以从该转发表项中确定网络拓扑标识129和出接口3,从而,入口节点100确定在网络拓扑129中将报文4’从出接口3转发到中间节点105上。
205.其中,入口节点100将vpn sid 2添加到报文4中,例如可以是将vpn sid 2设置为该报文4的da,得到报文4’。
206.作为一个示例,假设中间节点105保存有转发表5’,且转发表5’中包括上述表11所示的转发表项5’,那么,中间节点105接收到报文4’并确定该报文4’中的da字段所指示的vpn sid和转发表项5’中的路由前缀a9::d2匹配时,中间节点105可以根据转发表项5’确定该报文4’传输到下一跳(即中间节点107)的出接口为出接口2,即,中间节点105根据转发表项5’确定报文4’应该从出接口2转发到中间节点107上。可选的,该中间节点105中还可以保存有转发表4’,转发表4’中包括上述表10所示的转发表项4’,那么,在转发报文4’之前,为
了该转发操作的可靠性,中间节点105还可以对转发表项4’和转发表项5’中的vpn sid进行对比,如果相同,则,按照转发表项5’中的下一跳的内容转发报文4’,否则认为转发表项5’或报文4’中的vpn sid有误,不对报文4’进行处理。
207.作为另一个示例,假设中间节点105保存有转发表6’,且转发表6’中包括上述表12所示的转发表项6’,那么,中间节点105接收到报文4’并确定该报文4’中的da字段所指示的vpn sid和转发表项6’中的下一跳a9::d2匹配时,中间节点105可以基于转发表项6’确定该报文4’传输到下一跳(即中间节点107)的出接口为出接口2,即,中间节点105根据转发表项6’确定报文4’应该从出接口2转发到中间节点107上。
208.需要说明的是,中间节点107以及报文4’经过的其他属于网络拓扑2的节点,在接收到报文4’后,均可以根据本地的vpn sid 2和报文4’中的vpn sid 2匹配,确定接收报文4’的下一跳节点,以及,确定报文4’需要在属于网络拓扑129的各节点之间传输。
209.s214,出口节点109根据报文4’中的vpn sid 2,确定出口节点109对应的一个vpn 2。
210.s215,出口节点109向所确定的vpn 2对应的服务器2发送该报文4’。
211.需要说明的是,s214~s215的实现方式以及相关描述参见上述方法100中的s110~s111的对应说明。
212.需要说明的是,上述s211~s215需要在s205之后执行,s211~s215与s202和s204的执行互不影响。
213.在方法200中,可以执行s201、s202、s204以及s206~s210,也可以执行s201、s203、s205以及s211~s215,还可以执行上述s201~s215。
214.其中,该方法200中提及的多个网络拓扑,可以是通过具体的算法对网络系统进行规划后得到的。将网络系统规划为不同网络拓扑的算法,例如可以是弹性算法(flexible algorithm,flexalgo),也可以是其他能够用于规划不同网络拓扑的任何算法,本技术实施例不作具体限定。
215.其中,为了提高报文转发的精度,或从更细的粒度匹配业务规则或转发表项以实现vpn业务级的精准转发控制等,本技术实施例提及的用本地的vpn sid和报文中携带的vpn sid的匹配,具体可以是精确匹配。可见,通过本技术实施例提供的方法200,出口节点109能够将自身对应的vpn sid以及vpn sid对应的网络拓扑标识发送给网络中的各个节点,并指示各个节点对应保存该出口节点109的vpn sid和网络拓扑标识,如此,不仅入口节点100能够感知到该vpn sid以及vpn sid对应的网络拓扑,中间节点也能够感知并保存vpn sid以及vpn sid对应的网络拓扑。对于需要开通vpn业务的情况,由于各节点均保存有出口节点109的vpn sid,使得各个节点均能够该vpn sid关联到转发表中待开通vpn业务的转发表项,实现了vpn路由的收敛。而且,对于用户侧的发出的与该vpn sid对应的vpn的报文,入口节点100和各中间节点均可以基于本地保存的vpn sid指导该报文在指定的网络拓扑中准确的转发,实现vpn业务级的精细化控制。
216.基于上述各方法实施例,本技术实施例提供了一种传输vpn sid的装置,下面将结合附图对该装置进行说明。
217.图6为本技术实施例提供的一种传输vpn sid的装置600的结构示意图,该装置600应用于入口节点,例如可以执行图2所示实施例中入口节点102的功能,或者,又例如也可以
执行图5所示实施例中入口节点100的功能。该装置600可以包括:第一接收单元601、第二接收单元602和发送单元603。
218.其中,第一接收单元601,用于接收第一报文,第一报文包括虚拟专用网段标识vpn sid。
219.当装置600应用于图2所示的入口节点102时,第一接收单元601接收第一报文的具体实现可以参见图2所述实施例中s103。当装置600应用于图5所示的入口节点100时,第一接收单元601接收第一报文的具体实现可以参见图5所述实施例中s204或s205。
220.第二接收单元602,用于从用户侧接收与vpn sid对应的vpn的第二报文,并在第二报文中添加vpn sid以获取更新的第二报文,vpn sid用于指示更新的第二报文转发路径上的第一中间节点根据本地的vpn sid和更新的第二报文中的vpn sid匹配,确定接收更新的第二报文的第二中间节点或出口节点。
221.当装置600应用于图2所示的入口节点102时,第二接收单元602接收第二报文的具体实现可以参见图2所述实施例中s106。当装置600应用于图5所示的入口节点100时,第二接收单元602接收第二报文的具体实现可以参见图5所述实施例中s207或s212。
222.发送单元603,用于发送更新的第二报文。
223.当装置600应用于图2所示的入口节点102时,发送单元603发送更新的第二报文的具体实现可以参见图2所述实施例中s107。当装置600应用于图5所示的入口节点100时,发送单元603发送更新的第二报文的具体实现可以参见图5所述实施例中s208或s213。
224.在一种可能的实现方式中,第一报文还包括目的设备的地址,那么,该第二接收单元602可以包括第一接收子单元和添加子单元。其中,第一接收子单元,用于接收第二报文,第二报文携带目的设备的地址;添加子单元,用于根据第二报文携带的目的设备的地址与vpn sid的对应关系,将vpn sid添加在第二报文的报文头的目的地址字段。
225.在一种可能的实现方式中,第一报文为bgp报文,该vpn sid携带在bgp报文的ip单播地址族;或者,第一报文为igp报文。
226.在一种可能的实现方式中,第一报文还包括目的设备的地址,该装置600还包括生成单元。该生成单元,用于基于第一报文生成第一转发表项,第一转发表项包括vpn sid和目的设备的地址之间的对应关系。
227.在一种可能的实现方式中,该装置600还包括:第三接收单元。其中,第三接收单元,用于接收第三报文,第三报文中不包括vpn sid;那么,生成单元,具体用于:根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报文生成的转发表项。
228.在一种可能的实现方式中,vpn sid具体用于指示第一中间节点根据本地保存的vpn sid和更新的第二报文中的vpn sid进行精确匹配,以确定接收更新的第二报文的第二中间节点或出口节点。
229.在一种可能的实现方式中,第一报文中还包括与vpn sid对应的网络拓扑标识。那么,发送单元603,具体用于:根据与第二报文对应的vpn sid,确定vpn sid对应的网络拓扑标识,并向其他节点发送更新的第二报文,其他节点为网络拓扑标识指示的网络拓扑中的中间节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
230.关于传输vpn sid的装置600具体可执行的功能和实现,可以参见图2所示实施例中关于入口节点102的相应描述,或者,也可以参见图5所示实施例中关于入口节点100的相应描述,此处不再赘述。
231.图7为本技术实施例提供的一种传输vpn sid的装置700的结构示意图,该装置700应用于第一中间节点,例如可以执行图2所示实施例中中间节点103的功能,或者,又例如也可以执行图5所示实施例中网络拓扑1中的任意一个中间节点或网络拓扑2中的任意一个中间节点的功能。该装置700可以包括:第一接收单元701、确定单元702和第一发送单元703。
232.其中,第一接收单元701,用于从入口节点接收第二报文,第二报文中包括虚拟专用网段标识vpn sid。
233.当装置700应用于图2所示的中间节点103时,第一接收单元701接收第二报文的具体实现可以参见图2所述实施例中s107。当装置700应用于图5所示的网络拓扑1中的任意一个中间节点或网络拓扑2中的任意一个中间节点时,第一接收单元701接收第二报文的具体实现可以参见图5所述实施例中s208或s213。
234.确定单元702,用于根据本地的vpn sid和第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点,下一跳节点为第二中间节点或出口节点。
235.当装置700应用于图2所示的中间节点103时,确定单元702确定下一跳节点的具体实现可以参见图2所述实施例中s108。当装置700应用于图5所示的网络拓扑1中的任意一个中间节点或网络拓扑2中的任意一个中间节点时,确定单元702确定下一跳节点的具体实现可以参见图5所述实施例中s208或s213。
236.第一发送单元703,用于向下一跳节点发送第二报文。
237.当装置700应用于图2所示的中间节点103时,第一发送单元703发送第二报文的具体实现可以参见图2所述实施例中s109。当装置700应用于图5所示的网络拓扑1中的任意一个中间节点或网络拓扑2中的任意一个中间节点时,第一发送单元703发送第二报文的具体实现可以参见图5所述实施例中s208或s213。
238.在一种可能的实现方式中,该装置700还包括:第二接收单元和保存单元。其中,第二接收单元,用于在从得到入口节点接收第二报文之前,接收第一报文,第一报文中包括vpn sid;保存单元,用于保存vpn sid。
239.在一种可能的实现方式中,该装置700还包括:第二发送单元。第二发送单元,用于向第二中间节点或入口节点转发第一报文。
240.在一种可能的实现方式中,第一报文可以为bgp报文,vpn sid携带在bgp报文的ip单播地址族;或者,第一报文也可以为igp报文。
241.在一种可能的实现方式中,保存单元,具体用于:根据第一报文生成并保存第一转发表项,第一转发表项包括下一跳节点标识与vpn sid之间的对应关系;那么,确定单元702,包括:第一确定子单元和第二确定子单元。其中,第一确定子单元,用于根据第二报文的vpn sid,命中第一转发表项;第二确定子单元,用于根据第一转发表项中的下一跳节点标识,确定接收第二报文的下一跳节点。
242.在一种可能的实现方式中,该装置700还包括:第三接收单元。该第三接收单元,用于接收第三报文,第三报文中不包括vpn sid;那么,保存单元,具体用于:根据第一报文中包括的vpn sid,确定优先于第二转发表项生成第一转发表项,第二转发表项为根据第三报
文生成的转发表项。
243.在一种可能的实现方式中,该确定单元702,具体用于:根据本地的vpn sid和第二报文中的vpn sid精确匹配,确定接收第二报文的下一跳节点。
244.在一种可能的实现方式中,第一报文还包括与vpn sid对应的网络拓扑标识,网络拓扑标识用于指示第一中间节点确定vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
245.关于传输vpn sid的装置700具体可执行的功能和实现,可以参见图2所示实施例中关于中间节点103的相应描述,或者,也可以参见图5所示实施例中关于网络拓扑1中的任意一个中间节点或网络拓扑2中的任意一个中间节点的相应描述,此处不再赘述。
246.图8为本技术实施例提供的一种传输vpn sid的装置800的结构示意图,该装置800应用于出口节点,例如可以执行图2所示实施例中出口节点104的功能,或者,又例如也可以执行图5所示实施例中出口节点109的功能。该装置800可以包括:获取单元801和发送单元802。
247.其中,获取单元801,用于获取与出口节点对应的vpn sid。
248.当装置800应用于图2所示的出口节点104时,获取单元801获取与出口节点对应的vpn sid的具体实现可以参见图2所述实施例中s101。当装置800应用于图5所示的出口节点109时,获取单元801获取与出口节点对应的vpn sid的具体实现可以参见图5所述实施例中s201。
249.发送单元202,用于向中间节点发送第一报文,第一报文中包括vpn sid,第一报文用于指示中间节点保存vpn sid。
250.当装置800应用于图2所示的出口节点104时,发送单元802向中间节点发送第一报文的具体实现可以参见图2所述实施例中s102。当装置800应用于图5所示的出口节点109时,发送单元802向中间节点发送第一报文的具体实现可以参见图5所述实施例中s202或s203。
251.在一种可能的实现方式中,第一报文可以是bgp报文,vpn sid携带在bgp报文的ip单播地址族;或者,第一报文也可以是igp报文。
252.在一种可能的实现方式中,vpn sid用于指示中间节点根据本地的vpn sid和所接收的第二报文中的vpn sid匹配,确定接收第二报文的下一跳节点。
253.在一种可能的实现方式中,第一报文用于指示其他节点保存vpn sid,具体为:第一报文用于指示中间节点根据vpn sid生成第一转发表项,第一转发表项包括vpn sid和下一跳节点标识之间的对应关系,第一转发表项用于指示中间节点将所接收的第二报文转发到下一跳节点。
254.在一种可能的实现方式中,第一报文还包括与vpn sid对应的网络拓扑标识,第一报文用于指示中间节点根据网络拓扑标识和vpn sid生成第一转发表项,第一转发表项包括vpn sid、下一跳节点和网络拓扑标识之间的对应关系,其中下一跳节点为网络拓扑标识所标识的网络拓扑中的节点。其中,网络拓扑标识可以通过第一报文中用于承载vpn sid的字段中定义的tlv字段携带。例如,网络拓扑标识可以是flexalgo标识。
255.关于传输vpn sid的装置800具体可执行的功能和实现,可以参见图2所示实施例中关于出口节点104的相应描述,或者,也可以参见图5所示实施例中出口节点109的相应描述,此处不再赘述。
256.图9为本技术实施例提供的一种网络设备900的结构示意图,该网络设备900例如可以是图2或图5所示实施例中的任意一个节点,或者也可以是图7、图8或图9所示实施例中的传输vpn sid的装置的设备实现。
257.请参阅图9所示,网络设备900包括:处理器910、通信接口920和存储器930。其中网络设备900中的处理器910的数量可以一个或多个,图9中以一个处理器为例。本技术实施例中,处理器910、通信接口920和存储器930可通过总线系统或其它方式连接,其中,图9中以通过总线系统940连接为例。
258.处理器910可以是cpu、np、或者cpu和np的组合。处理器910还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
259.当网络设备包括入口节点102时,处理器910可以执行上述方法实施例中接收包括vpn sid的第一报文,从用户侧接收与所述vpn sid对应的vpn的第二报文,并在所述第二报文中添加所述vpn sid以获取更新的第二报文,发送所述更新的第二报文等的相关功能。当网络设备为中间节点103时,处理器910可以执行上述方法实施例中从入口节点接收包括vpn sid的第二报文,根据本地的vpn sid和所述第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点,并向所述下一跳节点发送所述第二报文等的相关功能。当网络设备为出口节点104时,处理器910可以执行上述方法实施例中获取与所述出口节点对应的vpn sid,并向中间节点发送包括所述vpn sid的第一报文,该第一报文用于指示所述中间节点保存所述vpn sid等的相关功能。
260.通信接口920用于接收和发送报文,具体地,通信接口920可以包括接收接口和发送接口。其中,接收接口可以用于接收报文,发送接口可以用于发送报文。通信接口920的个数可以为一个或多个。
261.存储器930可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,ram);存储器930也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器930还可以包括上述种类的存储器的组合。存储器930例如可以存储前文提及的出口节点对应的vpn sid。
262.可选地,存储器930存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器910可以读取存储器930中的程序,实现本技术实施例提供的传输vpn sid的方法。
263.其中,存储器930可以为网络设备900中的存储器件,也可以为独立于网络设备900的存储装置。
264.总线系统940可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线系统940可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
265.图10是本技术实施例提供的另一种网络设备1000的结构示意图,网络设备1000可以配置为前述图2或图5所示实施例中的任意一个节点,或者也可以是图7、图8或图9所示实施例中的传输vpn sid的装置的设备实现。
266.网络设备1000包括:主控板1010和接口板1030。
267.主控板1010也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板1010对网络设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
268.接口板1030也称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(ph8sical interface card,pic)1033。
269.接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
270.网络处理器1032用于实现报文的转发处理。网络处理器832的形态可以是转发芯片。具体而言,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
271.物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033包括至少一个物理接口,物理接口也称物理口。物理接口卡1033也可称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,接口板1030的中央处理器831也可执行网络处理器1032的功能,比如基于通用cpu实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
272.可选地,网络设备1000包括多个接口板,例如网络设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
273.可选地,网络设备1000还包括交换网板1020。交换网板1020也可以称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间可以通过交换网板820通信。
274.主控板1010和接口板1030耦合。例如。主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,ipc)
通道,主控板1010和接口板1030之间通过ipc通道进行通信。
275.在逻辑上,网络设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1034中。在一些实施例中,控制面和转发面可以完全分离,不在同一设备上。
276.如果网络设备1000被配置为入口节点102,中央处理器1011可以接收包括vpn sid的第一报文,从用户侧接收与所述vpn sid对应的vpn的第二报文,并在所述第二报文中添加所述vpn sid以获取更新的第二报文。网络处理器1032可以触发物理接口卡1033发送所述更新的第二报文。
277.如果网络设备1000被配置为中间节点103,中央处理器1011可以从入口节点接收包括vpn sid的第二报文,根据本地的vpn sid和所述第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点。网络处理器1032可以触发物理接口卡1033向所述下一跳节点发送所述第二报文。
278.如果网络设备1000被配置为出口节点104,中央处理器1011可以获取与所述出口节点对应的vpn sid。网络处理器1032可以触发物理接口卡1033向中间节点发送包括所述vpn sid的第一报文。
279.应理解,传输vpn sid的装置600中的第一接收单元601、第二接收单元602和发送单元603等可以相当于网络设备1000中的物理接口卡1033或物理接口卡1043;传输vpn sid的装置600中的生成单元等可以相当于网络设备1000中的中央处理器1011或中央处理器1031。传输vpn sid的装置700中的第一接收单元701和第一发送单元703等可以相当于网络设备1000中的物理接口卡1033或物理接口卡1043;传输vpn sid的装置700中的确定单元702等可以相当于网络设备1000中的中央处理器1011或中央处理器1031。传输vpn sid的装置800中的发送单元802等可以相当于网络设备1000中的物理接口卡1033或物理接口卡1043;传输vpn sid的装置800中的获取单元801等可以相当于网络设备1000中的中央处理器1011或中央处理器1031。
280.应理解,本技术实施例中接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备1000可对应于上述各个方法实施例中的任意一个节点,该网络设备1000中的主控板1010、接口板1030和/或接口板1040可以实现上述各个方法实施例中的任意一个节点所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
281.应理解,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交
换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景。
282.在一些可能的实施例中,上述各节点可以实现为虚拟化设备。例如,虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(英文:virtual machine,vm),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。可以将虚拟机配置为各节点。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现各节点。各节点为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出具有上述功能的各节点,此处不再赘述。
283.应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中各节点的任意功能,此处不再赘述。
284.本技术实施例还提供了一种芯片,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器;处理器,例如可以是图6示出的传输vpn sid的装置600的一种具体实现形式,可以用于执行上述方法;又例如可以是图7示出的传输vpn sid的装置700的一种具体实现形式,可以用于执行上述方法;再例如可以是图8示出的传输vpn sid的装置800的一种具体实现形式,可以用于执行上述方法。其中,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
285.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
286.可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
287.示例性的,该芯片系统可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
288.本技术实施例还提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上实施例提供的传输vpn sid的方法。
289.本技术实施例还提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的传输vpn sid的方法。
290.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
291.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
292.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
293.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
294.另外,在本技术各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
295.集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
296.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
297.以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
298.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施
例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种传输虚拟专用网的段标识vpn sid的方法,其特征在于,所述方法包括:入口节点接收第一报文,所述第一报文包括虚拟专用网段标识vpn sid;所述入口节点从用户侧接收与所述vpn sid对应的vpn的第二报文,并在所述第二报文中添加所述vpn sid以获取更新的第二报文,所述vpn sid用于指示所述更新的第二报文转发路径上的第一中间节点根据本地的vpn sid和所述更新的第二报文中的所述vpn sid匹配,确定接收所述更新的第二报文的第二中间节点或出口节点;所述入口节点发送所述更新的第二报文。2.根据权利要求1所述的方法,其特征在于,所述第一报文还包括目的设备的地址,所述入口节点接收与所述vpn sid对应的vpn的第二报文,并在所述第二报文中添加所述vpn sid,包括:所述入口节点接收所述第二报文,所述第二报文携带所述目的设备的地址;所述入口节点根据所述第二报文携带的所述目的设备的地址与所述vpn sid的对应关系,将所述vpn sid添加在所述第二报文的报文头的目的地址字段。3.根据权利要求1所述的方法,其特征在于,所述第一报文为边界网关协议bgp报文,所述vpn sid携带在所述bgp报文的互联网协议ip单播地址族;或者,所述第一报文为内部网关协议igp报文。4.根据权利要求3所述的方法,其特征在于,所述第一报文还包括目的设备的地址,所述方法还包括:所述入口节点基于所述第一报文生成第一转发表项,所述第一转发表项包括所述vpn sid和所述目的设备的地址之间的对应关系。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述入口节点接收第三报文,所述第三报文中不包括vpn sid;所述入口节点基于所述第一报文生成第一转发表项,包括:所述入口节点根据所述第一报文中包括的所述vpn sid,确定优先于第二转发表项生成所述第一转发表项,所述第二转发表项为根据所述第三报文生成的转发表项。6.根据权利要求1-5任一项所述的方法,其特征在于,所述vpn sid具体用于指示所述第一中间节点根据本地保存的vpn sid和所述更新的第二报文中的所述vpn sid进行精确匹配,以确定接收所述更新的第二报文的第二中间节点或出口节点。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一报文中还包括与所述vpn sid对应的网络拓扑标识。8.根据权利要求7所述的方法,其特征在于,所述入口节点发送所述更新的第二报文,包括:所述入口节点根据与所述第二报文对应的所述vpn sid,确定所述vpn sid对应的网络拓扑标识,并向其他节点发送所述更新的第二报文,所述其他节点为所述网络拓扑标识指示的网络拓扑中的中间节点。9.一种传输虚拟专用网的段标识vpn sid的方法,其特征在于,包括:第一中间节点从入口节点接收第二报文,所述第二报文中包括虚拟专用网段标识vpn sid;
所述第一中间节点根据本地的vpn sid和所述第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点,所述下一跳节点为第二中间节点或出口节点;所述第一中间节点向所述下一跳节点发送所述第二报文。10.根据权利要求9所述的方法,其特征在于,在所述第一中间节点从入口节点接收第二报文之前,所述方法还包括:所述第一中间节点接收第一报文,所述第一报文中包括所述vpn sid;所述第一中间节点保存所述vpn sid。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:所述第一中间节点向第二中间节点或入口节点转发所述第一报文。12.根据权利要求10或11所述的方法,其特征在于,所述第一报文为边界网关协议bgp报文,所述vpn sid携带在所述bgp报文的互联网协议ip单播地址族;或者,所述第一报文为内部网关协议igp报文。13.根据权利要求10-12任一项所述的方法,其特征在于,所述第一中间节点保存所述vpn sid,包括:所述第一中间节点根据所述第一报文生成并保存第一转发表项,所述第一转发表项包括下一跳节点标识与所述vpn sid之间的对应关系;所述第一中间节点根据本地的vpn sid和所述第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点,包括:所述第一中间节点根据所述第二报文的所述vpn sid,确定所述第一转发表项;所述第一中间节点根据所述第一转发表项中的所述下一跳节点标识,确定接收所述第二报文的所述下一跳节点。14.根据权利要求12所述的方法,其特征在于,所述方法还包括:所述第一中间节点接收第三报文,所述第三报文中不包括vpn sid;所述第一中间节点节点基于所述第一报文生成第一转发表项,包括:所述第一中间节点根据所述第一报文中包括的所述vpn sid,确定优先于第二转发表项生成所述第一转发表项,所述第二转发表项为根据所述第三报文生成的转发表项。15.根据权利要求9-14任一项所述的方法,其特征在于,所述第一中间节点根据本地的vpn sid和所述第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点,包括:所述第一中间节点根据本地的vpn sid和所述第二报文中的所述vpn sid精确匹配,确定接收所述第二报文的所述下一跳节点。16.根据权利要求9-15任一项所述的方法,其特征在于,所述第一报文还包括与所述vpn sid对应的网络拓扑标识,所述网络拓扑标识用于指示所述第一中间节点确定所述vpn sid、所述下一跳节点和所述网络拓扑标识之间的对应关系,其中所述下一跳节点为所述网络拓扑标识所标识的网络拓扑中的节点。17.一种传输虚拟专用网的段标识vpn sid的方法,其特征在于,包括:出口节点获取与所述出口节点对应的虚拟专用网段标识vpn sid;所述出口节点向中间节点发送第一报文,所述第一报文中包括所述vpn sid,所述第一
报文用于指示所述中间节点保存所述vpn sid。18.根据权利要求17所述的方法,其特征在于,所述第一报文为边界网关协议bgp报文,所述vpn sid携带在所述bgp报文的互联网协议ip单播地址族;或者,所述第一报文为内部网关协议igp报文。19.根据权利要求17或18所述的方法,其特征在于,所述vpn sid用于指示所述中间节点根据本地的所述vpn sid和所接收的第二报文中的所述vpn sid匹配,确定接收所述第二报文的下一跳节点。20.根据权利要求19所述的方法,其特征在于,所述第一报文用于指示所述其他节点保存所述vpn sid,具体为:所述第一报文用于指示所述中间节点根据所述vpn sid生成第一转发表项,所述第一转发表项包括所述vpn sid和下一跳节点标识之间的对应关系,所述第一转发表项用于指示所述中间节点将所接收的所述第二报文转发到所述下一跳节点。21.根据权利要求20所述的方法,其特征在于,所述第一报文还包括与所述vpn sid对应的网络拓扑标识,所述第一报文用于指示所述中间节点根据所述网络拓扑标识和所述vpn sid生成所述第一转发表项,所述第一转发表项包括所述vpn sid、所述下一跳节点和所述网络拓扑标识之间的对应关系,其中所述下一跳节点为所述网络拓扑标识所标识的网络拓扑中的节点。22.根据权利要求7、8、16或21任一项所述的方法,其特征在于,所述网络拓扑标识通过所述第一报文中用于承载所述vpn sid的字段中定义的类型长度值tlv字段携带。23.根据权利要求7、8、16、21或22任一项所述的方法,其特征在于,所述网络拓扑标识为弹性算法flexalgo标识。24.根据权利要求1-23任一项所述的方法,其特征在于,所述方法应用于第六版互联网协议的段路由srv6的尽力而为be场景。25.一种网络设备,其特征在于,所述网络设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,使得所述网络设备执行权利要求1-8以及22-24任意一项所述的方法。26.一种网络设备,其特征在于,所述网络设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,使得所述网络设备执行权利要求9-16以及22-24任意一项所述的方法。27.一种网络设备,其特征在于,所述网络设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,使得所述网络设备执行权利要求17-24任意一项所述的方法。28.一种网络系统,其特征在于,所述网络系统包括入口节点、出口节点和第一中间节点,其中:所述入口节点,用于执行上述权利要求1-8以及22-24任意一项所述的方法;
所述第一中间节点,用于执行上述权利要求9-16以及22-24任意一项所述的方法;所述出口节点,用于执行上述权利要求17-24任意一项所述的方法。29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码或指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-24任一项所述的方法。
技术总结
本申请实施例公开了一种传输虚拟专用网的段标识VPN SID的方法、装置和网络设备,出口节点将自身对应的VPN SID发送给网络中的各个节点,并指示各个节点保存该出口节点的VPN SID,如此,入口节点和各中间节点均能够感知并保存该VPN SID。对于需要开通VPN业务的情况,由于各节点均保存有出口节点的VPN SID,使得各个节点将该VPN SID关联到转发表中待开通VPN业务的转发表项成为可能,实现VPN路由的收敛。而且,对于用户侧的发出的与该VPN SID对应的VPN的报文,入口节点和中间节点均能够基于本地保存的VPN SID指导该报文的转发,实现VPN业务级的控制。业务级的控制。业务级的控制。
技术研发人员:闫朝阳 王海波 陈霞 郑娟 刘淑英
受保护的技术使用者:华为技术有限公司
技术研发日:2020.10.26
技术公布日:2022/3/7