CN113132235A - 基于虚电路的数据报文处理方法、转发表项的构建方法 - Google Patents
基于虚电路的数据报文处理方法、转发表项的构建方法 Download PDFInfo
- Publication number
- CN113132235A CN113132235A CN201911419401.XA CN201911419401A CN113132235A CN 113132235 A CN113132235 A CN 113132235A CN 201911419401 A CN201911419401 A CN 201911419401A CN 113132235 A CN113132235 A CN 113132235A
- Authority
- CN
- China
- Prior art keywords
- node
- label
- virtual circuit
- context
- vpn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
- H04L12/4662—Details on frame tagging wherein a single frame includes a plurality of VLAN tags wherein a VLAN tag represents a service instance, e.g. I-SID in PBB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/10—Routing in connection-oriented networks, e.g. X.25 or ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L2012/4629—LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种基于虚电路的数据报文处理方法,包括:根据虚拟专用网VPN业务实例对应的路由报文,确定路由报文的下一跳PE节点的标识信息和所述路由报文的原始PE节点的标识信息;确定上下文虚电路,所述上下文虚电路的两端节点分别为所述当前PE节点和所述原始PE节点;确定所述上下文虚电路的虚电路标签;将所述路由报文的VPN标签与所述虚电路标签写入所述VPN业务实例的初始数据报文,以获得待转发的最终数据报文;将所述待转发的最终数据报文转发给所述下一跳PE节点。本公开还提供一种上下文标签转发表项的构建方法、一种PE和一种计算机可读存储介质。通过本公开所提供的数据报文处理方法和上下文标签转发表项的构建方法,可以确定VPN业务的入口PE。
Description
技术领域
本公开涉及通信技术领域,具体地,涉及一种基于虚电路的数据报文处理方法、一种基于虚电路的上下文标签转发表项的构建方法、一种边缘服务器(PE,Provider Edge)和一种计算机可读存储介质。
背景技术
在二层虚拟专用网(L2VPN,Layer 2Virtual Private Network)、三层虚拟专用网(L3VPN,Layer 3Virtual Private Network)、以太虚拟专用网(EVPN,Ethernet VirtualPrivate Network)等基于多协议标签交换(MPLS,Multi-Protocol Label Switching)的VPN技术中,标签分发协议(LDP,Label Distribution Protocol)、边界网关协议-LU(BGP-LU,Border Gateway Protocol-LU)、分段路由-多协议标签交换(SR-MPLS,SegmentRouting-Multi-Protocol Label Switching)等协议是常用的外层MPLS隧道建立技术。这些协议建立的隧道有一个共同特点,就是它们都是多点到点MP2P(Multi Peer to Peer)隧道,它们采用的是MP2P标签,如图1所示,从MP2P隧道的任一入口节点进入隧道的报文,到达MP2P隧道的出口节点以后,都具有相同的MP2P标签。
但是,在转发面,从MP2P标签收到个数据报文时,就无法从MP2P标签知道报文是从哪个入口节点转发过来的。例如,图1中的PE3节点就不知道数据报文是从PE1节点还是PE2节点发送来的。
此外,相关技术中还存在在转发数据报文的过程中,同一入口TPE发往不同出口TPE的VPN标签相同的不同数据包经过同一SPE结点时无法区别处理的问题。所述SPE结点缺少上下文信息来区分到不同出口TPE的VPN标签相同的数据报文。
综上,在相关技术中仍然存在无法识别报文上下文的问题。
发明内容
本公开的目的在于提供一种基于虚电路的数据报文处理方法、一种基于虚电路的上下文标签转发表项的构建方法、一种边缘服务器和一种计算机可读存储介质。通过所述数据报文处理方法或者所述上下文标签转发表项的构建方法可以解决相关技术中存在的相关问题。
为了实现上述目的,作为本公开的第一个方面,提供一种基于虚电路的数据报文处理方法,应用于运营商边缘路由器PE节点,所述数据报文处理方法包括:
根据虚拟专用网VPN业务实例对应的路由报文,确定所述路由报文的下一跳PE节点的标识信息和所述路由报文的原始PE节点的标识信息,其中,所述VPN业务实例部署在当前PE节点和所述原始PE节点上;
确定上下文虚电路,所述上下文虚电路的两端节点分别为所述当前PE节点和所述原始PE节点;
确定所述上下文虚电路的虚电路标签;
将所述路由报文的VPN标签与所述虚电路标签写入所述VPN业务实例的初始数据报文,以获得待转发的最终数据报文;
将所述待转发的最终数据报文转发给所述下一跳PE节点。
可选地,所述上下文虚电路的入口节点为所述原始PE节点,所述上下文虚电路的出口节点为所述当前PE节点,并且,所述最终数据报文具有第一预定格式,所述第一预定格式为:所述虚电路标签在所述VPN标签的外层。
可选地,所述数据报文处理方法还包括:
响应于接收到的最终数据报文具有所述第一预定格式,通过所述接收到的最终数据报文中的虚电路标签确定上下文标签空间;
将所述接收到的最终数据报文中的所述虚电路标签内层的标签在所述上下文标签空间中查找输入标签映射ILM表项;
根据所命中的输入标签映射-下一跳标签转发ILM-NHLFE表项转发所述接收到的最终数据报文。
可选地,所述上下文虚电路的出口节点为所述原始PE节点,所述上下文虚电路的入口节点为所述当前PE节点,所述最终数据报文具有第二预定格式,所述第二预定格式为:所述虚电路标签在所述VPN标签的内层。
可选地,确定所述上下文虚电路之前,所述数据报文处理方法还包括:
创建虚电路容器服务实例,以使得所述虚电路容器服务实例的一条虚电路为所述上下文虚电路;
建立所述VPN业务实例与所述虚电路容器服务实例之间的映射关系。
可选地,所述虚电路容器服务实例满足以下条件:
所述虚电路容器服务实例的控制面包括作为分段路由-多协议标签交换SR-MPLS控制面的路由协议,以使得SR-MPLS控制面的路由协议实例还用作所述虚电路容器服务实例;或者
所述虚电路容器服务实例能够创建伪线PW的L2VPN控制面。
可选地,当所述虚电路容器服务实例用作SR-MPLS控制面的路由协议实例时,所述虚电路标签的值为所述当前PE节点和所述原始PE节点中用作所述上下文虚电路的入口节点的一者的分段标识符SID在所述当前PE节点和所述原始PE节点中未用作所述上下文虚电路的入口节点的一者的分段路由全局块SRGB中对应的标签的值。
可选地,当所述SR-MPLS控制面的路由协议实例通过相同的SRGB创建SR-MPLS隧道时,还包括:
将与以所述当前PE节点为出口节点的上下文虚电路对应的ILM表项确定为上下文标签空间中的表项;
将对应于SR-MPLS隧道的ILM表项绑定到所述上下文标签空间中。
可选地,所述虚电路标签为上下文标签空间中的标签,且所述虚电路标签的外层标签标识所述上下文标签空间;其中,所述外层标签是以下之一者:
到所述下一跳PE节点的MP2P隧道标签;
特殊目的标签SPL;
扩展SPL;
在所述下一跳PE节点上配置的静态标签;
所述VPN标签。
可选地,所述数据报文处理方法还包括:
响应于网络中其他PE节点发送的具有所述第二预定格式的最终数据报文,根据接收到的最终数据报文中的虚电路标签确定所述接收到的最终数据报文对应的所述上下文虚电路的入口节点的标识信息,所述标识信息用于以下至少之一者:
将所确定的入口节点的标识信息作为所述接收到的最终数据报文的入口PE节点的标识信息进行记录;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点时,将所述最终数据报文丢弃;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点所属的水平分割组中的任一远端PE节点时,将所述最终数据报文丢弃。
作为本公开的第二个方面,提供一种基于虚电路的转发表项的构建方法,应用于PE节点,包括:
根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路,所述上下文虚电路的两个端点分别为当前PE节点和生成所述VPN路由的原始PE节点,其中,所述第一VPN路由为VPN业务实例对应的VPN路由;
确定所述上下文虚电路的虚电路标签;
给所述虚电路标签绑定标签空间,以使得所述上下文虚电路标识所述第一VPN标签所属的上下文标签空间;
在所述标签空间中为所述第一VPN路由确定第一VPN标签的值;
为所述第一VPN标签构建上下文标签转发表项,所述上下文标签转发表项为所述上下文标签空间中的标签转发表项。
可选地,所述根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路包括:
根据以下信息中的任意一者确定所述原始PE节点:所述第一VPN路由的下一跳、所述第一VPN路由携带的第一路由属性,其中,所述第一路由属性为携带原始运营商边缘OPE节点信息的路由属性;
将确定的所述原始PE节点作为所述上下文虚电路的入口节点,确定所述上下文虚电路。
可选地,在为所述第一VPN标签构建上下文标签转发表项之后,所述构建方法还包括:
根据接收到的第一VPN路由构建第二VPN路由,所述第二VPN路由的下一跳为所述当前PE节点,所述第二VPN路由的第二VPN标签的值与所述第一VPN标签的值相同,所述第二VPN路由携带第一预定路由属性和第二预定路由属性,其中,所述第一路由属性用于将所述第二VPN标签位于由所述第二预定路由属性所确定的虚电路标签标识的上下文标签空间中这一信息通知接收到所述第二VPN路由的PE节点,所述第二预定路由属性为携带用于确定所述虚电路标签的信息的路由属性。
作为本公开的第三个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,当所述可执行程序被调用时,能够实现以下方法中的任意一者:
本公开第一个方面所提供的上述处理方法;
本公开第二个方面所提供的上述构建方法。
作为本公开的第四个方面,提供一种PE,包括:
存储模块,所述存储模块上存储有可执行程序;
一个或多个处理器,当所述一个或多个处理器调用所述可执行程序时,使得所述一个或多个处理器实现以下方法中的任意一者:
本公开第一个方面所提供的上述处理方法;
本公开第二个方面所提供的上述构建方法。
在本公开第一个方面所提供的数据报文处理方法中,可以通过虚电路标签的方式,在所述最终数据报文中携带所述VPN业务的入口节点的信息。对所述最终数据报文进行解析可以获得所述虚电路标签,进而可以获得所述当前PE节点的信息和所述原始PE节点的信息,从而可以确定发出所述最终数据报文的PE节点。
通过本公开第二个方面所提供的构建方法中,将生成VPN路由的原始PE节点的信息封装在上下文标签转发表项中,可以通知VPN业务中其他PE节点,最终需要将数据报文发送至哪个节点。
综上,本公开所提供的数据报文处理方法、和上下文标签转发表项构建方法,可以解决相关技术中无法识别报文的上下文的问题。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是相关技术中基于MP2P标签的数据转发示意图;
图2是本公开实施例所提供的数据报文处理方法的流程图;
图3是当前PE节点接收到具有第一预定格式的数据报文后的处理流程图;
图4是在对数据报文进行处理时,通过虚电路容器服务实例获得上下文虚电路的流程图;
图5是本公开实施例所提供的上下文标签转发表项的流程图;
图6是本公开实施例所提供的确定上下文虚电路的流程图;
图7是构建上下文标签转发表项时,通过虚电路容器服务实例获得上下文虚电路的流程图;
图8是实施例1中的数据转发示意图;
图9是实施例1中数据报文转发与信令报文转发的对比图;
图10是实施例2中VPN业务的部署示意图;
图11是实施例4中的数据转发示意图;
图12是实施例7中的数据转发示意图;
图13是实施例8中的数据转发示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本公开的各种具体实施方式包含一个共同部分,就是在网络中所有PE节点之间,创建一条虚电路容器服务,并通过该虚电路容器服务在所述PE两两之间分别创建一条虚电路VC。其中,为描述方便起见,本公开将标识PEi节点的IP地址称为IPi,将从PEi到PEj的虚电路称为VCij,将VCij对应的虚电路标签称为Lij,将从PEi到PEj的MP2P隧道标签称为Lj,将从创建虚电路容器服务到所有预期VC都建立成功的整个过程称为给所述网络构建虚电路基础设施。其中,在本实施例中所述虚电路容器服务的管理面、控制面和信令面常常会复用某种现有协议的控制面,但是,除非特殊说明之处以外,本公开的各种具体实施方式中,所述虚电路容器服务默认均不采用这些被复用的协议的数据面。
需要指出的是,在本发明中,若干PE可以组成一个保护组,所述保护组由一个IP地址来标识,所述IP地址称为保护组IP,以由PEi和PEj组成的保护组为例,其保护组IP记为IPij,所述IPij既是PEi上的IP地址,又是PEj上的IP地址,所述IPij既用作到PEi的隧道目的地址,又用作到PEj的隧道目的地址,实际上,所述IPij可以在PEi和PEj之间负荷分担,因此,以所述IPij为目的地址的隧道称为所述保护组的Anycast隧道。
需要指出的是,在本发明中,“给标签L绑定标签空间X”与“标签L在标签空间X中”不是同一概念,前者是说通过该标签L可以找到标签空间X,但该标签L并不在X中,后者是说该标签在X中,如果不能事先知道X,就无法找到该标签L的ILM表。
作为本公开的一个方面,提供一种基于虚电路的数据报文处理方法,应用于PE节点,其中,如图2所示,所述数据报文处理方法包括:
在步骤S110中,根据虚拟专用网VPN业务实例对应的路由报文,确定所述路由报文的下一跳PE节点的标识信息和所述路由报文的原始PE节点的标识信息,其中,所述VPN业务实例部署在当前PE节点和所述原始PE节点上;
在步骤S120中,确定上下文虚电路,所述上下文虚电路的两端节点分别为所述当前PE节点和所述原始PE节点;
在步骤S130中,确定所述上下文虚电路的虚电路标签;
在步骤S140中,将所述路由报文的VPN标签与所述虚电路标签写入所述VPN业务实例的初始数据报文,以获得待转发的最终数据报文;
在步骤S150中,将所述待转发的最终数据报文转发给所述下一跳PE节点。其中,所述下一跳PE节点可以与所述原始PE节点是同一节点。
在本公开所提供的数据报文处理方法是对目标VPN业务实例的初始数据报文进行处理,将VPN标签和包括当前PE节点的标识信息、以及原始PE节点的标识信息的虚电路标签封装在初始数据报文中,获得所述最终数据报文,PE节点接收到所述VPN路由对应的最终数据报文后,对所述最终数据报文进行解析,可以获得所述上下文虚电路的两个端点的信息(即,上下文信息)。
也就是说,在本公开所提供的数据报文处理方法中,可以通过虚电路标签的方式,在所述最终数据报文中携带所述VPN业务的入口节点的信息。对所述最终数据报文进行解析可以获得所述虚电路标签,进而可以获得所述当前PE节点的信息和所述原始PE节点的信息,从而可以确定发出所述最终数据报文的PE节点。
在本公开中,所述上下文虚电路的入口节点信息,为发送所述最终数据报文的PE节点的信息或终结所述最终数据报文的MPLS封装的出口PE节点的信息。
需要指出的是,所述上下文虚电路不标识任何业务,只用于标识最终数据报文的入口PE节点或出口PE节点。
在本公开中,对所述当前PE节点的标识信息不做特殊的限定,只要能够唯一地标识所述当前PE节点即可,作为本公开的一种可选实施方式,所述当前PE节点的标识信息包括当前PE节点的IP地址或者当前PE节点的ID。
下面通过当前PE节点为第一PE节点、原始PE节点为第二PE节点为例,对本公开所提供的上述数据报文处理方法进行描述:
首先,所述数据报文处理方法由第一PE节点执行。为了便于描述,将VPN业务实例称为VPN业务实例S1,将该VPN业务实例S1对应的路由报文称为路由报文R1。
在步骤S110中,第一PE节点根据路由报文R1确定原始PE节点为第二PE节点,并确定第二PE节点的标识信息(该标识信息可以为第二PE节点的ID);
在步骤S120中,确定两端节点分别为第一PE节点和第二PE节点的上下文虚电路;
在步骤S130中,第一PE节点根据路由报文R1、第一PE节点的标识信息、第二PE节点的标识信息确定第一PE节点和第二PE节点之间的上下文虚电路的虚电路标签;
在步骤S140中,第一PE节点将所述虚电路标签和所述VPN路由报文的VPN标签共同写入初始数据报文中,获得最终数据报文。
在步骤S150中,获得该最终数据报文后,会按照路由报文R1中的路由信息,将所述最终数据报文转发至下一跳PE节点。该下一跳PE节点可能是第二PE节点,也可能不是第二PE节点。当所述下一跳PE节点不是所述第二PE节点时,经过至少一个下一跳,可以将所述最终数据报文转发至第二PE节点。
第二PE节点接收到所述最终数据报文后,对所述数据报文进行解析,可以获得虚电路标签,根据该虚电路标签,可以确定所述上下文虚电路的入口PE节点的信息(即,第一PE节点的信息)。
在本公开中,对如何确定所述原始PE节点并不做特殊的限定。
在一种实施方式中,可以将所述路由报文的下一跳作为所述原始PE节点。
作为另一种实施方式,可以根据第一路由属性确定所述原始PE节点,其中,所述第一路由属性为携带原始运营商边缘OPE节点信息的路由属性。
在本公开中,对所述第一路由属性不做特殊的限定,所述第一路由属性的具体类型与所述VPN业务实例的类型相关。例如,当所述VPN业务实例为EVPN业务时,所述第一路由属性可以为Nexthop属性,也可以为OPE TLV属性。
所述第一路由属性的值可以为原始PE节点的标识(例如,某个PE节点的ID),也就是说,所述第一路由属性的值为上下文虚电路的端点(即,上下文虚电路的入口PE节点或出口PE节点)的标识信息。
当然了,本公开并不限于此,也可以通过扩展新的边界网关协议(BGP,BorderGateway Protocol)属性来携带上下文虚电路中原始PE节点的属性。
需要指出的是,在VPN业务中的PE节点分为交换运营商边缘SPE节点(SwitchingPE)和TPE节点(Terminal PE)两种。在VPN业务中,将一个PE节点发布的VPN路由进一步转发给另一个PE节点的PE节点为所述SPE节点。所述SPE节点在将VPN路由转发给另一个PE节点时,将所述VPN路由的Nexthop属性修改为所述SPE本身的节点IP地址。生成并发布VPN路由的PE节点为所述TPE节点,所述TPE节点还可以在自身发布的VPN路由中携带OPE TLV属性,所述OPE TLV属性与Nexthop属性均标识所述TPE节点的节点IP地址。
所述VPN路由在到达远端的TPE节点时,可能要经过0个或若干个SPE节点处理,其中,所述Nexthop属性的值可能已经被修改,但是,所述OPE TLV属性的值则保持不变。对于接收到所述VPN路由的PE节点(包括SPE节点和TPE节点)来说,以所述Nexthop属性可以用来确定外层隧道,而以所述OPE TLV属性则可以用来确定虚电路。
值得注意的是,当SPE节点采用任播分段路由(Anycast SR)隧道时,其所转发的RT-2路由(RT-2路由即第二类EVPN路由,也被称做MAC/IP分发路由,MAC/IP AdvertisementRoute)中Nexthop属性即为所述Anycast SR隧道的地址,该地址在相互保护的不同SPE节点上是相同的。
值得注意的是,缺省可按如下优先级确定用于确定所述虚电路的属性:第一路由属性优于Nexthop属性。
如上文中所述,所述上下文虚电路的两端节点分别为所述当前PE节点和所述原始PE节点,这就意味着所述当前PE节点和所述原始PE节点中的一者用作所述上下文虚电路的入口节点,所述当前PE节点和所述原始PE节点中的另一者用作所述上下文虚电路的出口节点。
在本公开中,对所述当前PE节点和所述原始PE节点中的哪一个是所述上下文虚电路的入口节点、哪一个时所述上下文虚电路的出口节点并不做特殊的限定。但是,所述当前PE节点作为所述上下文虚电路的入口节点、以及所述原始PE节点作为所述上下文虚电路的入口节点两种情况中,所述最终数据报文的格式是不相同的。获得的待转发的最终数据报文的格式的不同,意味着接收到该待转发的最终数据报文的PE节点对其接收到的最终数据报文的处理方式也是不同的。
所述上下文虚电路的入口节点为所述原始PE节点,所述上下文虚电路的出口节点为所述当前PE节点,并且,所述最终数据报文具有第一预定格式,所述第一预定格式为:所述虚电路标签在所述VPN标签的外层。
所述当前PE节点在当前的VPN业务中,作为生成并转发所述待处理的最终数据报文的PE节点。但是,在其他VPN业务中,当前PE节点可能接收到其他PE节点所发出的封装有上下文虚电路的虚电路标签,在这种情况中(即,接收到网络中其他PE节点发送的具有所述第一预定格式的最终数据报文的情况中),如图3所示,所述数据报文处理方法还包括:
在步骤S160中,通过所述接收到的最终数据报文中的虚电路标签确定上下文标签空间;
在步骤S170中,将所述接收到的最终数据报文中的所述虚电路标签内层的标签在所述上下文标签空间中查找输入标签映射ILM表项;
在步骤S180中,根据所命中的输入标签映射-下一跳标签转发ILM-NHLFE表项转发所述接收到的最终数据报文。
也就是说,通过步骤S160至步骤S170可以把包含相应的VPN业务的上下文虚电路继续转发至下一跳,直至转发至上述VPN业务的出口PE节点。
作为另一种实施方式,所述上下文虚电路的出口节点为所述原始PE节点,所述上下文虚电路的入口节点为所述当前PE节点,所述最终数据报文具有第二预定格式,所述第二预定格式为:所述虚电路标签在所述VPN标签的内层。
可选地,在确定所述上下文虚电路的步骤S120之前,如图4所示,所述数据报文处理方法还可以包括:
在步骤S111中,创建虚电路容器服务实例,以使得所述虚电路容器服务实例的一条虚电路为所述上下文虚电路;
在步骤S112中,建立所述VPN业务实例与所述虚电路容器服务实例之间的映射关系。
当在当前PE节点上建立了多个虚电路容器服务实例时,可以为每个VPN业务实例都分配一个虚电路容器服务实例。但是,当在当前PE节点上只建立了一个虚电路容器服务实例时,当前PE节点承载的所有VPN业务实例都与上述一个虚电路容器服务实例对应。
在本公开中,对虚电路容器服务实例的具体形式不做特殊的限定。可选地,所述虚电路容器服务实例满足以下条件:
所述虚电路容器服务实例的控制面包括作为分段路由-多协议标签交换(SR-MPLS,Segment Routing-Multi-Protocol Label Switching)控制面的路由协议,以使得SR-MPLS控制面的路由协议实例还可以用作所述虚电路容器服务实例;或者
所述虚电路容器服务实例能够创建伪线PW(Pseudo Wire)的L2VPN控制面。
当所述虚电路容器服务实例用作SR-MPLS控制面的路由协议实例时,所述虚电路标签的值为所述当前PE节点和所述原始PE节点中用作所述上下文虚电路的入口节点的一者的分段标识符SID(SID,Segment Identifier)在所述当前PE节点和所述原始PE节点中未用作所述上下文虚电路的入口节点的一者的分段路由全局块(SRGB,Segment RoutingGlobal Block)中对应的标签的值。
具体地,当所述虚电路容器服务实例是作为SR-MPLS控制面的路由协议实例时,所述上下文虚电路标签的值具有两种情况:
一种情况是,所述当前PE节点为所述上下文虚电路的入口节点,那么所述上下文虚电路的虚电路标签的值为所述当前PE节点的分段标识符在所述原始PE节点的SRGB中对应的标签值;
另一种情况是,所述原始PE节点为所述上下文虚电路的入口节点,那么所述上下文虚电路的虚电路标签值为所述原始PE节点的分段标识符在所述当前PE节点的SRGB中对应的标签值。
可选地,当所述SR-MPLS控制面的路由协议实例通过相同的SRGB创建SR-MPLS隧道时,所述数据报文处理方法还包括:
将与以所述当前PE节点为出口节点的上下文虚电路对应的ILM表项确定为上下文标签空间中的表项;
将对应于SR-MPLS隧道的ILM表项绑定到所述上下文标签空间中。
需要指出的是,只有SR-MPLS隧道标签操作为弹出的ILM表项才需要绑定到所述上下文标签空间。
能够创建PW的L2VPN实例包括Martini模式L2VPN实例、Kompella模式L2VPN实例、L2VPN边界网关协议(BGP,BorderGatewayProtocol)自动发现实例、移植Kompella VPLS控制面的EVPN实例等。
作为一种可选实施方式,所述虚电路标签为上下文标签空间中的标签,且所述虚电路标签的外层标签标识所述上下文标签空间;其中,所述外层标签是以下之一者:
到所述下一跳PE节点的MP2P隧道标签;
特殊目的标签SPL;
扩展SPL;
在所述下一跳PE节点上配置的静态标签;
所述VPN标签。
值得注意的是,所述外层标签的转发等价类被映射到所述上下文标签空间之后,所述外层标签就能标识所述上下文标签空间。
当所述虚电路标签在所述VPN标签以内时,所述外层标签也要在所述VPN标签内层(或者所述外层标签就是所述VPN标签)。
在本公开中,对所述VPN业务实例对应的路由报文的格式并不做特殊的限定。所述VPN业务实例对应的路由报文为匹配单播数据报文的VPN路由报文,或者,所述路由报文为匹配广播&未知单播&组播(BUM,Broadcast&Unkown-unicast&Multicast)数据报文的路由报文,且所述路由报文为入口复制模式。
可选地,所述VPN业务实例为边界网关协议BGP自动发现L2VPN实例,所述路由报文为所述VPN业务实例的所述原始PE节点上BGP为所述L2VPN实例发布的自动发现路由报文。
上文中仅介绍了当前PE节点接收到具有所述第一预定格式的最终数据报文时执行的操作。
当所述当前PE节点接收到第二预定格式的最终数据报文时,所述数据报文处理方法包括:
响应于网络中其他PE节点发送的最终数据报文,根据接收到的最终数据报文中的虚电路标签确定所述接收到的最终数据报文对应的所述上下文虚电路的入口节点的标识信息,所述标识信息用于以下至少之一者:
根据接收到的最终数据报文中的虚电路标签确定所述接收到的最终数据报文对应的所述上下文虚电路的入口节点的标识信息,所述标识信息用于以下至少之一者:
将所确定的入口节点的标识信息作为所述接收到的最终数据报文的入口PE节点的标识信息进行记录;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点时,将所述最终数据报文丢弃;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点所属的水平分割组中的任一远端PE节点时,将所述最终数据报文丢弃。
可选地,将所确定的入口节点的标识信息作为所述接收到的最终数据报文的入口PE节点的标识信息进行记录的步骤中,将所述确定的入口节点的标识信息记录在针对内层载荷的MAC表项、告警信息、日志信息、性能统计数据中的至少一者中。
可选地,所述VPN业务实例为L2VPN业务、L3VPN业务、EVPN业务中的一者。
作为本公开的第二个方面,提供一种基于虚电路的转发表项的构建方法,应用于PE节点,如图5所示,所述构建方法包括:
在步骤S210中,根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路,所述上下文虚电路的两个端点分别为当前PE节点和生成所述VPN路由的原始PE节点,其中,所述第一VPN路由为VPN业务实例对应的VPN路由;
在步骤S220中,确定所述上下文虚电路的虚电路标签;
在步骤S230中,给所述虚电路标签绑定标签空间,以使得所述上下文虚电路标识所述第一VPN标签所属的上下文标签空间;
在步骤S240中,在所述标签空间中为所述第一VPN路由确定第一VPN标签的值;
在步骤S250中,为所述第一VPN标签构建上下文标签转发表项,所述上下文标签转发表项为所述上下文标签空间中的标签转发表项。
在本公开所提供的构建方法中,利用VPN业务实例对应的第一VPN路由构建了上下文标签转发表项,在后续转发数据报文时,可以在上下文标签转发表项中转发携带上下文虚电路信息的虚电路标签。接收到所述VPN业务的原始PE节点,可以通过所述上下文标签转发表项中的虚电路标签确定最终需要将所述VPN业务的数据报文发送至哪个PE节点。
在本公开中,所述第一VPN路由具有两种具体情况:
第一种,所述第一VPN路由为根据VPN路由报文生成的路由,相应地,所述第一VPN路由的下一跳为所述路由报文中的下一跳,在这种情况中,所述第一VPN标签的值为所述路由报文的VPN标签的值,所述生成所述VPN路由的PE节点为所述路由报文的原始PE节点;
第二种,所述第一VPN路由为当前PE节点本地的VPN路由,所述第一VPN路由的下一跳为当前PE节点本身,在这种情况中,所述VPN标签的值由当前PE节点分配,生成所述第一VPN路由的原始PE节点也是当前PE节点。
需要指出的是,只有所述原始PE节点能够生成所述VPN路由,也就是说,所述原始PE节点只能是VPN业务中的TPE节点,而不是VPN业务中的SPE节点。
在构建上下文标签转发表项时确定的上下文虚电路,是从所述路由报文的出口PE节点(即,所述原始PE节点)到当前PE节点的虚电路。
所述上下文标签转发表项为所述第一VPN标签在所述标签空间中的输入标签映射ILM表项。
具体地,当所述VPN路由的下一跳不是所述当前PE节点时,将所述ILM表项关联NHLFE表项,所述NHLFE表项为生成所述第一VPN路由所依据的VPN路由报文对应的NHLFE表项,所述NHLFE表项中包括所述第一VPN标签;当所述VPN路由的下一跳是所述当前PE节点时,将所述ILM表项关联所述VPN业务实例或关联与所述VPN业务实例和所述VPN路由相绑定的接口。
当所述当前PE节点为某一条VPN业务的SPE节点时,利用所述VPN业务的VPN路由执行所述构建方法,获得所述上下文标签转发表项。
当所述VPN业务对应的最终数据报文具有上文中所述的第一预定格式时,可以采用上述构建方法构建上下文标签转发表项。
与本公开第一个方面所提供的数据报文处理方法类似,在所述构建方法中,需要先确定上下文虚电路的入口节点的信息,然后再根据所述上下文虚电路的入口节点的信息来确定所述上下文虚电路。即,如图6所示,步骤S210可以包括:
在步骤S211中,根据以下信息中的任意一者确定所述原始PE节点:所述第一VPN路由的下一跳、所述第一VPN路由携带的第一路由属性,其中,所述第一路由属性为携带原始运营商边缘OPE节点信息的路由属性;
在步骤S212中,将确定的所述原始PE节点作为所述上下文虚电路的入口节点,确定所述上下文虚电路。
值得注意的是,当前PE节点在所述VPN业务中可能既作为SPE节点又作为TPE节点,此时,当前PE节点也需要执行所述构建方法。
当所述当前PE节点为交换PE节点(即,SPE节点)时,所述上下文标签转发表项还包括所述VPN路由报文中的标签。
利用本公开所提供的构建方法构建上下文标签转发表项后,需要根据接收到的第一VPN路由的路由报文构建第二VPN路由。此时,要求接收到所述第一VPN路由的PE节点能够将该PE节点为所述VPN业务实例分配的第二VPN标签作为发给所述当前PE的最终数据报文中的业务标签,并将所述虚电路标签封装在所述业务标签的外层。
具体地,所述根据接收到的VPN路由的路由报文构建第二路由报文包括:
根据接收到的第一VPN路由构建第二VPN路由,所述第二VPN路由的下一跳为所述当前PE节点,所述第二VPN路由的第二VPN标签的值与所述第一VPN标签的值相同,所述第二VPN路由携带第一预定路由属性和第二预定路由属性,其中,所述第一路由属性用于将所述第二VPN标签位于由所述第二预定路由属性所确定的虚电路标签标识的上下文标签空间中这一信息通知接收到所述第二VPN路由的PE节点,所述第二预定路由属性为携带用于确定所述虚电路标签的信息的路由属性。
在上述实施方式中,所述第二预定路由属性为携带原始PE节点标识信息的路由属性。
需要指出的是,当所述虚电路标签本身也是上下文标签空间中的标签时,所述第一预定路由属性中还携带标识所述虚电路标签所属的上下文标签空间的标签。
在本公开中,“构建第二VPN路由”存在两种情况,一种是从头构建一个新的路由;另一种情况(针对SPE节点将一个TPE节点发送的路由报文中转给另一个TPE节点的情况),则可以对第一VPN路由进行修改,获得第二VPN路由。
作为一种可选实施方式,所述第二预定路由属性携带有原始运营商边缘OPE节点信息,或者携带有所述虚电路标签的值。
在本公开中,对如何创建所述上下文虚电路并不做特殊的限定,作为一种可选实施方式,根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路之前,如图7所示,所述构建方法还包括:
在步骤S201中,创建虚电路容器服务实例,以使得所述虚电路容器服务实例的一条虚电路为所述上下文虚电路;
在步骤S202中,建立所述VPN业务实例与所述虚电路容器服务实例之间的映射关系。
值得注意的是,在步骤S201中,还需要通过调整所述虚电路容器服务实例的配置,使所述虚电路容器服务中,从当前PE节点到所述VPN业务中其它任一PE节点的上下文虚电路的虚电路标签都相同。
本公开所提供的上下文标签转发表项的构建方法,克服了相关技术中存在的MP2PLSP出口无法识别数据报文的入口PE的问题,实现了采用MP2P隧道承载上下文标签空间中的标签、采用MP2P LSP的同时对来自不同入口PE的数据报文进行不同处理,扩展了MP2P标签的应用场景。此处需要指出的是,MP2P LSP包括MP2P隧道和MP2P VPN标签。
作为本公开的第三个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,当所述可执行程序被调用时,能够实现以下方法中的任意一者:
本公开第一个方面所提供的数据报文的处理方法;
本公开第二个方面所提供的上下文标签转发表项的构建方法。
上文中已经对所述数据报文处理方法的工作原理以及有益效果、所述上下文标签转发表项的构件方法的工作原理以及有益效果进行了详细描述,这里不再赘述。
其中,计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储介质、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
作为本公开的第四个方面,提供一种PE,包括:
存储模块,所述存储模块上存储有可执行程序;
一个或多个处理器,当所述一个或多个处理器调用所述可执行程序时,使得所述一个或多个处理器实现以下方法中的任意一者:
本公开第一个方面所提供的数据报文的处理方法;
本公开第二个方面所提供的上下文标签转发表项的构建方法。
上文中已经对所述数据报文处理方法的工作原理以及有益效果、所述上下文标签转发表项的构件方法的工作原理以及有益效果进行了详细描述,这里不再赘述。
实施例
实施例1
在该实施例1中,所述虚电路容器服务实例采用Kompella虚拟专用局域网服务(VPLS,Virtual Private Lan Service)中的Kompella VPLS控制面,VPN业务为EVPN业务。
首先介绍通过本公开第一个方面所提供的数据报文处理方法对EVPN业务报文进行处理获得最终数据报文,然后再转发:
步骤101:为所述网络构建虚电路基础设施,其中,所述虚电路容器服务与Kompella虚拟专用局域网服务VPLS在管理面、控制面和信令面相同;并且,通过调整虚电路容器服务的配置,使得从同一PE节点到其它任何PE节点的虚电路的虚电路标签都相同。需要指出的是,本实施例只使用其控制面建立由虚电路组成的伪线(PW,Pseudo Wire)。其中,所述Kompella VPLS业务即RFC4761定义的VPLS业务,对应于上文中所述的“虚电路容器服务实例”,即相当于上文中的步骤S111和步骤S112。
需要指出的是,本实施例只使用Kompella VPLS业务控制面建立由虚电路组成的伪线(PW,Pseudo Wire),以PEi与PEj之间的PWij为例,其由虚电路VCij和虚电路VCji组成,并且PWij与PWji为同一条PW,i和j分别表示PE节点在网络中的编号。需要注意的是,从PEi的角度来说,VCij为该PW的入口Ingress虚电路,VCji为该PW的出口Egress虚电路。在本实施例中,只是使用Kompella VPLS业务的控制面,而不使用其数据面。也就是说,该虚电路容器服务中没有独立的数据报文,没有MAC表,也没有入口复制列表,该虚电路容器业务所创建的PW的入标签只作为上下文标签使用,所述上下文标签即RFC5331中定义的标识上下文标签空间的标签,该PW的入标签作为上下文标签,其输入标签映射(ILM,Incoming LabelMapping)表中存储的上下文信息即该PW的出口Egress虚电路的入口PE节点的标识信息。为描述方便起见,这种PW称为上下文PW(Context PW),其中,此处的上下文PW对应于上文中的上下文虚电路,并且,此处的虚电路容器服务可以被称为上下文VPLS。
步骤102:在MPLS网络中创建一条EVPN业务(对应于上文中的VPN业务实例),该EVPN业务所在的TPE节点和交换PE节点(SPE,Switching Provider Edge)是所述MPLS网络中所有PE节点的一个子集(如图8所示,其中PE1节点、PE4节点为TPE节点,PE2节点、PE3节点为SPE节点,因此,PE1又可以被称为TPE1,PE4又可以被称为TPE2,PE2又可以被称为SPE1、PE3又可以被称为SPE2)。该EVPN业务的TPE节点互相发布EVPN路由(即,业务路由),其中包括所述RT-2路由。以TPE1到TPE2的单播数据流转发为例,其对应的控制面EVPN路由为从TPE2到TPE1发布的RT-2路由报文(RT-2路由即第二类EVPN路由,也被称做MAC/IP分发路由,MAC/IPAdvertisement Route),TPE2在所述RT-2路由的Label1字段中发布(如图9所述Step1a和Step1b所示)的EVI标签为下游分配方式的EVI标签。为描述方便起见,所述RT-2路由记为R1。
步骤103:所述SPE节点收到所述TPE节点发布的EVPN路由之后,按Option B跨域方式重分发所述EVPN路由到其它TPE,所述TPE之间通过所述SPE节点的中转完成了EVPN信令交互。以SPE1收到TPE2发布的所述RT-2路由R1时的处理为例,SPE1首先执行步骤S210确定以所述R1的Nexthop标识的PE(本例即TPE2)为入口PE并且以SPE1为出口PE的虚电路VC42为所述R1的VPN标签的上下文虚电路,进而确定其VC标签L42。然后,SPE1执行步骤S220和S230在为所述标签L42绑定的上下文标签空间LS4中将与所述VPN标签具有相同值的标签占用,并为该标签构建上下文标签转发表项ILM1,其中所述ILM1为由所述标签L42确定的标签空间LS4中的ILM表项,所述ILM表项关联所述路由R1的NHLFE表项,所述NHLFE表项中包含所述R1中的VPN标签。
步骤103b:该EVPN业务的SPE节点对所述R1进行修改成为R2,并将所述R2传递给TPE1节点,其中,所述修改即执行对接收到的VPN路由(第一VPN路由)进行修改、构建第二VPN路由的步骤。修改的结果是:VPN标签的值保持不变,Nexthop属性的值为当前SPE节点的值,OPE TLV的值为所述R1的Nexthop属性的值,并携带所述第一预定路由属性。如图9中Step2a所示。所述OPE TLV为所述第二预定路由属性的一种实现形式。
值得注意的是,所述R1路由中并没有携带所述OPE TLV属性,但是,SPE节点只要执行步骤S230其所发布的EVPN路由中就要包括OPE TLV,因此所述SPE节点在所述EVPN路由R2中添加了所述OPE TLV。
步骤104:该EVPN业务的TPE节点TPE1收到所述R2路由后,所述TPE1收到初始数据包,根据所述初始数据包的目的MAC确定所述R2路由,执行步骤S110、S120、S130、S140将所述R2路由的VPN标签L4与根据所述第一预定路由属性和所述OPE TLV所确定的上下文虚电路VC41的标签L41写入所述EVPN业务的初始数据报文,以获得待转发的最终数据报文。
步骤105:所述TPE1经由所述业务路由R2转发所述最终数据报文给SPE1或SPE2,所述最终数据报文在SPE1和SPE2之间负荷分担。如图9中Step3所示。
步骤106:该EVPN业务的SPE节点SPE1或SPE2收到所述最终数据报文,以SPE1节点为例,执行步骤S160在由L41确定的标签空间LS4中根据VPN标签L4查上下文标签转发表项确定所述R1路由,剥掉所述L41得到第二初始数据报文,然后执行步骤S110、S120、S130、S140将所述R1路由的VPN标签L4写入所述第二初始数据报文中的原来的L4所在的位置(这种转发行为称为标签交换),以获得待转发的最终数据报文,并根据所述业务路由R1转发所述最终数据报文给TPE2。如图9中Step4所示。
值得注意的是,因为所述SPE1收到的VPN路由R1中没有第一预定路由属性,SPE1转发给TPE2的最终数据报文中就没有VC42的虚电路标签,这样,假如TPE2没有实现本发明,也能作为出口PE接收所述最终数据报文,但是,假如TPE2没有实现本发明,它就无法作为入口PE给运行本发明的SPE节点发送数据报文。
值得注意的是,所述R1路由在SPE的转发面一般是以NHLFE表项的形式存在的,此时,根据标签确定所述R1路由,实际上就是确定所述R1路由的NHLFE形态的表项,这属于具体实现方式的细节差别,不影响根据R1路由转发的本质认定。类似地,TPE上所述R2路由在转发面一般以FEC到NHLFE(FTN,FEC-to-NHLFE)表项的形式存在。
值得注意的是,所述SPE上的上下文标签转发表并不是所述TPE上针对同一客户网络目的地址的标签转发表的镜像,两者具有不同的转发行为,而且,所述SPE节点是非业务感知(所述SPE节点没有所述VPN实例、所述TPE的保护组IP,也与CE设备没有VPN接入链路相连接)的,所述TPE节点是业务感知的,所述SPE节点是到所述TPE节点的转发径路的上游结点。
步骤103可以进一步包括:
步骤1031:在各PE节点(包括SPE节点)上指定EVPN业务实例与上下文PW所在的上下文VPLS实例的对应关系(即,上文中所述的,在步骤S112中,建立所述VPN业务实例与所述虚电路容器服务实例之间的映射关系);
步骤1032:各PE节点(包括TPE节点和SPE节点)在发布EVPN路由(即,业务路由)时通过以下方式来协调上下游对于虚电路标签的封装/解封装行为的一致性:构建业务路由时携带BGP属性(即,上文中所述的“第一预定路由属性”),表示PE节点在RT-2路由报文中发布的是上下文标签空间中的EVPN标签,以使得在上游接收所述RT-2路由报文的PE节点在所述EVPN标签外层封装对应的上下文标签。
值得注意的是,虽然前面的步骤中主要以EVPN RT-2路由为例说明上下文PW在EVPN中的用法,但是本发明不限于在EVPN RT-2路由中使用,还可以在同样是针对单播数据报文的EVPN RT-1路由(即,EAD路由)、针对BUM数据报文的入口复制模式的RT-3路由(即IMET路由)等路由中使用,并且,本发明也不限于在EVPN中使用,在MPLS L3VPN等其它VPN技术中也可以使用。本领域的一般技术人员可以很方便地参照本发明中的说明将上下文PW应用到上述场景中。
值得注意的是,与现有PW不同,本发明中的PW并不专属于某个L2VPN业务实例,本发明中的上下文VPLS实例(即虚电路容器服务实例的一种实现形式)只需要在控制面存在,在转发面并不需要存在这个上下文VPLS实例,在转发面只需要存在上下文PW就足够了。
值得注意的是,虽然本示例性实施例是在二层EVPN业务中进行说明的,上下文PW也可以用于EVPN IP-VRF等VPN技术中。
值得注意的是,作为虚电路容器服务的Kompella控制面,在经过SPE反射时,是不需要修改下一跳的,如果修改下一跳,也要通过第二预定路由属性来携带原始PE节点信息,并且,虚电路容器服务的PE之间优先通过第二预定路由属性来确定上下文PW两端的PE节点的标识信息。
值得注意的是,所述Kompella VPLS业务可以是RFC4761标准定义的原始KompellaVPLS业务,也可以是将RFC4761中定义的网络层可达信息(NLRI,Network LayerReachability Information)移植到EVPN地址族中形成的新的Kompella VPLS控制面。值得注意的是,当上下文PW服务于EVPN业务时,将RFC4761移植到EVPN比直接用RFC4761创建上下文PW有一个优点,那就是只需要采用一个地址族就可以完成整个EVPN业务。
其中步骤201中所述的将RFC4761移植到EVPN的方法,进一步包含如下几种情况:
情况2011:将RFC4761的NLRI作为第X类EVPN路由;
情况2012:所述第X类EVPN路由的NLRI与RFC4761的NLRI在格式上不完全相同,但是,其中都包括RFC4761中的如下几个构思:第一,以VE-id标识PE节点;第二,以标签块为单位发布私网标签;第三,通过VE-id确定偏移量然后以该偏移量在标签块中读取与该VE-id对应的PW标签。
情况2013:在整网只创建一条上下文VPLS服务的情况下,所述第X类EVPN路由也可以不携带Route-Target或者携带固定的Route-Target,所述VE-id也可以是PE节点在所述EVPN网络中的全局节点标识符,比如,可以借用SR-MPLS的节点SID(Node SID)。
情况2014:在整网只创建一条上下文VPLS服务并且整网中每个PE节点上为此上下文VPLS服务都指定从标签16开始的同一标签块并且各VE-id都不小于16的情况下,本节点到任何其它节点的上下文PW的出标签都是本节点的VE-id,此时,转发面在封装上下文PW标签时,都固定封装一个值为本节点VE-id的标签即可。
值得注意的是,也可以参考上述构思将RFC4761所述的创建PW的办法移植到SR-MPLS控制面协议中,由于SR-MPLS隧道的使用越来越普遍,这样就可以复用SR-MPLS隧道的信令交互来建立上下文PW或上下文虚电路,从而简化网络的管理。
需要指出的是,本发明只需要SPE本身是一个非业务感知(Service Agnostic)节点,并不需要SPE上配置IP-VRF实例、MAC-VRF实例等VPN业务实例,从而在保证了SPE上配置的简单性的前提下,通过保证经不同SPE节点中转的同一VPN路由携带有相同的VPN标签及其上下文标签,实现了SPE节点保护组的Anycast隧道保护。
需要指出的是,虽然图中SPE保护组左右仅仅分别示出一个TPE,但是,其实SPE左右两侧的TPE数量都是不限的,以SPE右侧存在两个TPE(记为TPE2和TPE3)为例,SPE保护组为保证TPE1可以经过Anycast隧道将VPN数据报文在SPE保护组的两个组员SPE1和SPE2之间负荷分担,SPE1和SPE2只能继承TPE2/TPE3发布的VPN标签,而不能独立分配VPN标签,因为两个节点独立分配VPN标签肯定是无法保证其对同一VPN路由所分配的VPN标签具有相同值的。但是,TPE2和TPE3是独立分配VPN标签的,其对不同VPN业务分配的VPN标签可能碰巧是相同的,如果SPE既继承TPE2所分配的标签,又继承TPE3所分配的标签,那么,TPE1发往出口TPE2和出口TPE3的数据报文,在SPE节点上就会具有相同VPN标签,SPE将无法区分两者。通过在数据报文中加入分别以TPE2和TPE3为入口节点的不同虚电路的标签,SPE得以将两种报文的去向这一上下文信息区分出来,从而将所述数据报文准确地分别转发到TPE2和TPE3。
实施例2
除特殊说明之处以外,本实施例与实施例1相同。
与实施例1不同,本实施例中的虚电路容器服务并不建立PW,并且整网只有一个虚电路容器服务。对于实施例1中每一条上下文PW,本实施例相应地建立两条上下文虚电路,其中,所述两条上下文虚电路的出口PE节点和入口PE节点是对称的并且都在所述上下文PW的两端PE节点范围之内,并且所述上下文虚电路根据SR-MPLS的控制面路由协议(比如ISIS、OSPF、BGP的SR扩展)建立,也就是说,所述虚电路容器服务实例为作为SR-MPLS控制面的路由协议实例。下面就以从PEi到PEj的上下文虚电路VCij为例,来说明所述上下文虚电路如何建立:所述VCij的标签Lij的值为PEi的节点SID在PEj的SRGB中对应的标签的值。
需要指出的是,通过调整配置,使所述SR-MPLS控制面路由协议实例在各节点上具有相同的SRGB,则可以保证从PEi到任一其它PE节点的虚电路的虚电路标签均与所述VCij的虚电路标签Lij相同。
值得注意的是,为描述简单起见,所述SR-MPLS控制面仅用于创建上下文虚电路,不再用于创建SR-MPLS隧道,但是,所述SR-MPLS控制面的标签映射和标签通告等信令交互过程与其创建SR-MPLS隧道时还是相同的。
与实施例1不同,如图10所示,本实施例中还存在另一编号为5的TPE节点TPE2’(即PE5),所述TPE2’与TPE2同属一个保护组,其保护组地址为IP45,所述IP45即是TPE2上的IP地址,又是TPE2’上的IP地址。对于双归接入TPE2和TPE2’的CE设备CE2(图中未示出)来说,TPE2和TPE2’具有同等的转发能力,也就是说,只要TPE2/TPE2’上存在针对CE上某个网络目的地址(比如IP/MAC)的可达性,TPE2’/TPE2上也同时存在针对所述网络目的地址的无需经过TPE2/TPE2’中转的可达性。
与实施例1不同,当TPE之间因采用Anycast隧道而相互保护时,TPE要执行所述步骤S230,以TPE2为例,使得在同时以该TPE自身为入口PE和出口PE的虚电路的虚电路标签L44所标识的标签空间LS4内为所述VPN实例分配VPN标签L4并下发上下文标签转发表项。所述TPE在所述VPN路由中携带所述VPN标签的值。
与实施例1不同,所述TPE执行所述步骤S240,使得该TPE构建并发布的VPN路由报文中携带第一预定路由属性和第二预定路由属性,其Nexthop需要填写为保护组地址IP45,其第二预定路由属性需要填写为TPE的节点IP地址(在TPE2为IP4,在TPE2’为IP5)。
与实施例1不同,当TPE2或TPE2’收到Nexthop为自己的IP地址的VPN路由时,执行所述步骤S230所形成的ILM表项不关联NHLFE表项,而是关联所述VPN业务实例。一般来说,所述ILM表项的标签操作为弹出Pop。
值得注意的是,在本实施例中,TPE2收到的所述VPN路由是TPE2’发布的,TPE2’收到的所述VPN路由是TPE2发布的。
需要指出的是,所述TPE2’与所述TPE2是对称的,因此,接下来主要以TPE2为例说明数据报文的转发过程。
与实施例1不同,因为SPE从TPE2或TPE2’收到的VPN路由中携带第一预定路由属性,SPE往TPE2和TPE2’转发数据报文时也要封装上下文虚电路标签。
与实施例1不同,当所述TPE2收到SPE1发来的最终数据包时,根据所述最终数据报文中的标签L4和L42转发所述最终数据包,具体地,在由标签L42所确定的标签空间LS4中根据所述标签L4查ILM表获得对应的VPN业务实例,并在所述VPN业务实例中根据所述最终数据包的内层MAC(或IP)进行转发。
值得注意的是,所述TPE1可以与实施例1完全相同。
值得注意的是,所述TPE2和所述TPE2’给所述VPN业务实例分配的VPN标签(即所述第一VPN标签)一般是不同的,比如TPE2分的是L4,TPE2’分的是L5,这样一来,对于指定原始数据报文,在TPE1/SPE1/SPE2上可能采用L4及其配套的NHLFE转发,也可能采用L5及其配套的NHLFE转发,无论采用哪一套转发表项,所述数据报文到TPE2/TPE2’上都能正确地得到转发。
值得注意的是,所述标签空间LS2与所述SRGB虽然位于两个独立的标签空间,但是,在转发面,这两个标签空间的表项仍然可以合并到同一块存储空间中,这属于具体实现细节,不影响对于两者本质上属于不同标签空间的逻辑认定,因为按照MPLS标准,MPLS标签对应的转发行为仅由标签值和标签空间来决定,标签值和标签空间一旦确定,其转发行为就确定了,而与其在标签栈中的位置无关,将两种不同转发行为的ILM表项合并到同一内存中,然后根据标签在标签栈中的位置采取不同的转发行为,这本身是对MPLS转发基础原则的修正,但其与将两者看作分属不同标签空间的描述方式在逻辑上是等价的。
值得注意的是,本实施例与目前通过在TPE2和TPE2’上静态配置相同EVPN标签的方式来解决Anycast隧道两个目的节点上EVPN标签不一致的问题的方法相比,本实施例中的基于上下文PW的方案比静态配置EVPN标签的方案更简单,因为虚电路容器服务可以是一次性的配置,而静态EVPN标签是每EVPN实例级别的配置。
需要指出的是,本发明只需要在PE设备上进行扩展,不需要在运营商P(P,Provider)设备上进行扩展,减少了需要进行网络节点升级的范围,节约了建网成本。
需要指出的是,本发明不要求TPE保护组或SPE保护组中只能有两个PE节点,在PE保护组由多个PE节点组成时,并且无论同一保护组中各个PE节点之间是负荷分担关系还是主备保护关系,本发明都可以适用。
实施例3
除特殊说明之处以外,本实施例与实施例1相同
与实施例1不同,在本实施例中,所述虚电路容器服务实例与实施例2中相同,均为作为SR-MPLS控制面的路由协议实例。
与实施例2不同,本实施例中的SR-MPLS路由协议实例既用于创建SR-MPLS隧道,又用于创建虚电路,而且,创建SR-MPLS隧道时用的SRGB和创建虚电路时用的SRGB具有相同的标签值。这样一来,由于同一ILM表项无法同时表示隧道和虚电路两种转发行为,具有同一标签值的SR-MPLS隧道和虚电路的ILM表项必须在不同标签空间中。比如,以PEj节点为例,其标识从PEi到PEj的虚电路VCij的标签Lij与标识到PEi的SR-MPLS隧道的隧道标签TLi,两者具有相同的值,但是,所述标签Lij的ILM表项不在所述TLi的SRGB所在的标签空间中,而是在所述PEj节点上的另一标签空间LS2中,并且,对于所述SRGB中的每一个标签值,在所述标签空间LS2中预留一个相同值的标签。
与实施例2不同,所述PEjSC节点将某个静态标签SCL绑定到所述标签空间LS2,于是,所述PEj通过所述SCL标签就可以确定所述标签空间LS2,并且将其内层的标签(比如所述Lij)在所述标签空间LS2中进行ILM查表,从而确定所述VCij。
与实施例1不同,在本实施例中,所述第一预定路由属性中还要携带所述SCL标签的值。这样,所述VPN业务中的各PE节点上的SCL标签的值就不需要保证相同,尽管保证相同也是可以的。
与实施例1不同,在本实施例中,收到携带所述SCL标签的VPN路由的节点要在所述VPN路由的NHLFE中引用所述SCL标签。
与实施例1不同,在本实施例中,在按所述NHLFE表项转发数据报文时需要在上下文虚电路标签外层封装所述SCL标签。
需要指出的是,所述SCL标签也可以用特殊目的标签SPL以及扩展SPL来取代。当设定所述SR-MPLS隧道内层紧邻的标签只能是所述标签空间LS2中的标签时,所述SCL、SPL、扩展SPL标签也可以省略,此时,只需要将所述SR-MPLS隧道绑定到标签空间LS2即可。
实施例4
在该实施例4中,所述虚电路容器服务实例为Martini模式L2VPN实例,VPN业务为EVPN业务。
实施例1中的上下文PW都是用于RFC5331意义上的上下文标签,这种上下文标签标识一个上下文标签空间。本示例性实施例3则将上下文PW用于在下游分配的MP2P EVPN标签上标识数据报文的入口EVPN PE节点,从而扩展了上下文标签的使用范围。
转发VPN业务实例对应的最终数据报文可以包括以下步骤:
步骤301:建立虚电路容器服务基础设施。其中所述虚电路容器服务实例为采用BGP自动发现的通过LDP建立PW的L2VPN实例。
值得注意的是,本实施例中,从同一PE到其它PE的各条虚电路的标签不需要保证相同,尽管假如保证相同也是可以的。
步骤302:在PE1节点、PE2节点、PE3节点之间创建一条MPLS EVPN业务(如图11所示),所述MPLS EVPN业务除特殊说明之处以外,与RFC7432所定义的入口复制模式的EVPN业务相同,包括两者都是采用下游分配方式分配EVPN标签。与RFC7432不同,所述MPLS EVPN是在数据面学习远端ES中的MAC条目,而不是通过EVPN路由同步所述MAC条目。与RFC7432不同,所述MPLS EVPN业务数据面在EVPN标签以内还要封装相应的上下文PW标签,并且,所述MPLS EVPN业务执行步骤S111和S112和S120、S130确定EVPN路由对应的上下文PW。值得注意的是,在实施例1中,由于上下文PW是作为上下文标签空间中的EVPN标签的上下文,上下文PW标签需要封装在EVPN标签的外层,而在本实施例中,上下文PW是作为MAC学习的上下文,因此更适合封装在EVPN标签的内层。
步骤303:当PE3节点收到PE1节点发来的EVPN数据报文MEDP1时(如图11中步骤1所示),解析EVPN标签可以确定该EVPN标签内层带有上下文PW标签,解析上下文PW标签可以确定MEDP1是PE1节点发来的而不是PE2节点发来的(记,EVPN业务的入口PE节点为PE1节点)。然后,PE3节点在数据面进行MAC学习,将所述MEDP1的私网源MAC(记为M1)与PE1节点对应起来,也就是说,将PE1节点作为该MAC条目的出口PE节点记录在针对所述MEDP1的源MAC地址M1的所述MAC条目中,出口EVPN标签为PE1节点在EVPN路由(比如RT-3路由)中发来的EVPN标签,出口隧道为到PE1节点的MPLS隧道(可以是MP2P隧道),对应的上下文PW为到PE1节点的上下文PW。
步骤304:当PE3节点收到目的MAC为所述M1的数据报文EDP1时(在图11中步骤2之前),根据所述M1的MAC条目将所述EDP1封装为MEDP2,其中,EVPN标签为到PE1节点的EVPN标签,隧道标签为到PE1节点的隧道标签,上下文PW标签为到PE1的上下文PW的出标签。然后PE3将所述MEDP2发送给所述PE1(如图11中步骤2所示)。
值得注意的是,通过在下游分配MP2P标签以内封装上下文PW标签,本发明使得MP2P标签承载的数据报文的Overlay源地址与其Underlay源节点建立起对应关系,这种情况下,上下文PW标签实际上标识的是内层载荷的上下文,而不是某层标签的上下文。其中,Overlay源地址可以是IP、MAC等与MPLS标签栈的内层载荷相关的形式,虽然本示例性实施例仅以MAC形式为例进行了说明。
值得注意的是,上下文PW用于表示内层载荷的上下文时与用于标识上下文标签空间时,其在EVPN数据报文的标签栈中的位置是不同的,如表1(对应于所述第一预定格式)和表2(对应于所述第二预定格式,本实施例采用此格式)所示,前者作为内层载荷的上下文标签位于EVPN标签以内,后者作为EVPN标签的上下文标签只能位于EVPN标签以外,这样,同一上下文PW就可以同时承载两种将该上下文PW分别用于不同用途的数据报文,尽管这两种数据报文的格式不一样,但是,在一条上下文PW只需承载仅把该上下文PW作为内层载荷的上下文标签的数据报文时,所述上下文PW标签也可以在所述EVPN标签的外层。
值得注意的是,由于EVPN VPLS抛弃了PW概念转而采用MP2P标签,从而使其避免了Kompella VPLS的相应缺点,但是,同时也使得MPLS EVPN无法进行数据面的MAC学习,本公开则采取拆衷方法,重新引入PW实体到MPLS EVPN中,但是此PW的标签与EVPN标签叠加,而不是互相取代,正因如此,这种性质的PW并不需要像Kompella VPLS那样专属于一个EVPNVPLS实例,而是由全部或者部分EVPN VPLS实例所共享。这种共享性质,是上下文PW区别于传统PW的重要特点,因为上下文PW标签不再能标识任何VPN实例。
值得注意的是,上下文PW与传统PW的另一个重要区别在于,不需要选择外层隧道。实际上,数据报文的外层隧道都是在控制面根据EVPN路由事先进行选择的,上下文PW标签只是插入在EVPN标签与外层MP2P隧道标签之间或者封装在MP2P性质的EVPN标签以内的上下文标签。
值得注意的是,表示内层载荷上下文的上下文PW标签由于在EVPN标签的内层,在Option B跨域SPE节点上,上下文PW标签并不会被交换,因此,在Option B跨域场景,可以使用OPE TLV属性作为选择上下文PW的依据,保证上下文PW标签封装的是到TPE节点的上下文PW的标签,而不是SPE的上下文PW的标签。
值得注意的是,当上下文PW在MP2P方式EVPN标签的外层且所述EVPN路由中同时存在Nexthop属性、第二预定路由属性、OPE TLV属性时,其中,缺省可按如下优先级确定实际起作用的上下文索引属性(用作所述第二预定路由属性):第二预定路由属性优于OPE TLV属性;OPE TLV优于Nexthop属性。
值得注意的是,MP2P性质的EVPN标签内层除上下文PW标签外还可能存在ESI标签,此时,上下文PW标签与ESI标签的相对位置在技术上不重要,但是,当ESI标签在上下文PW标签以内时,EVPN转发面最好不要认为上下文PW标签以内的标签是上下文标签空间中的标签,这样,EVPN标签和ESI标签都可以是下游分配方式。因此,本发明建议Context PW标签如果出现在EVPN标签以内,那么,其内层不能有除了ELI标签和熵标签之外的其它标签。
实施例5
RFC7432定义的EVPN可以用于取代传统L2VPN,但是,它一方面提供了很多传统L2VPN没有的特性,另一方面却并没有对齐传统MPLS L2VPN的某些特性,其中,比较突出的一点是,传统MPLS L2VPN对于隧道侧收发包是基于PW进行性能统计的,PW可以识别出报文来自于或者去向的对端PE节点,但EVPN则不能识别出不同远端PE到达本节点的数据报文。本示例性实施例通过在EVPN中引入Context PW,使得EVPN对于隧道侧收包的性能统计精度对齐了传统MPLS L2VPN。
除特殊说明之处以外,本示例性实施例与示例性实施例3相同。
与示例性实施例4不同,本选优实施例不采用数据面学习MAC的方案,而是与RFC7432一样,采用控制面交互MAC条目的方案,但本示例性实施例与示例性实施例4一样,数据面需要封装上下文PW标签。
与示例性实施例4不同,本示例性实施例中,上下文PW标签不用于数据面的MAC学习,而是用于针对所述MEDP1报文的性能统计、告警信息和日志信息。通过上下文PW标签,本示例性实施例能够将通过同一EVPN标签从PE1节点、PE2节点分别收到的EVPN数据报文分别进行统计,而不是混淆在一起统计。在需要对所述MEDP1进行日志和告警功能时,也可以在日志、告警信息中记录针对所述PE1的信息。
值得注意的是,通过在下游分配MP2P标签以内封装上下文PW标签,本发明使得MP2P标签承载的数据报文得到更精确的性能统计、日志和告警。
值得注意的是,当一个PE节点不需要给来自不同入口PE节点的数据报文分别进行独立的性能统计时,该PE节点可以通过信令告诉远端PE节点是否需要在发给它的数据报文中添加上下文PW标签,或者,该PE节点可以自行忽略接收到的上下文PW标签。
值得注意的是,本实施例的方法也可以用于提高EVPN针对网络侧收包的告警、日志等功能的精确度,使所述告警、日志信息中能够体现出数据报文的入口PE信息。
值得注意的是,当所述MPLS L2VPN实例使用流标签时,本发明建议所述ContextPW标签在所述流标签的内层。
实施例6
虽然本发明的实施例1-4都是以EVPN为例进行的说明,本发明的核心上下文PW并不仅仅限于在EVPN中使用,比如,还可以在本身也是在基于PW的MPLS L2VPN业务中使用。下面以在RFC6074定义的BGP自动发现VPLS业务中使用上下文PW为例进行说明。
在RFC6074定义的VPLS自动发现中,在发现需要在哪些PE节点之间建立PW之后,还需要再用PWE3协议去建立这些PW,这不仅实现复杂,网络部署也复杂,可以通过引入上下文PW来去掉对PWE3协议的依赖,其方法是:可以在BGP信令阶段额外携带一个MP2P或上游分配性质的VPLS私网标签,从而以复合标签<上下文PW标签,MP2P私网标签>取代原来的PW标签,从而在没有PWE3信令的前提下建立起PW。这种基于复合标签的PW,其中的私网标签可以是上游分配方式,也可以是下游分配MP2P方式,而不像RFC6074那样只能是下游分配方式,使用场景更为灵活,尤其在Anycast隧道场景更适合采用上游分配方式。
实施例7
如图12所示的EVPN网络,用户边缘服务器CE1节点双归接入PE1节点和PE2节点,CE3节点单归接入PE3节点。PE1节点、PE2节点和PE3节点三者之间运行IBGP-EVPN协议,CE1节点和PE1节点之间,CE1节点和PE2节点之间,CE3节点和PE3节点之间均是二层接入。假设PE1节点连接CE1节点的链路和PE2节点连接CE1节点的链路均属于ESI1,且PE1节点和PE2节点上ESI1都使能了ESI远端成员保护本地成员功能,并且PE1节点对ESI1是指定转发器(DF,Designated Forwarded),PE2节点对ESI1是非DF。PE3节点上对到CE1节点的单播数据流在PE1节点和PE2节点之间进行负荷分担,对于广播数据流则是同时转发给PE1节点和PE2节点。由于对ESI1而言,PE1节点是DF,PE2节点是非DF,只有PE1节点可以将PE3节点发来的广播报文转发给CE1节点。
如果CE1节点和PE1节点之间的链路发生故障,从CE3节点发往CE1节点的经PE1节点转发的流量可以再经过PE2节点绕行到CE1节点。但是,其中的广播流量即使绕行到了PE2节点也不会再向CE1节点转发,因为PE2节点无法区分绕行的流量与PE3节点直接发给PE2节点的流量,目前PE2节点只能统一处理两种流量。直到PE1节点和PE2节点重新进行了DF协商,PE2节点成为DF后,PE2节点才会把来自PE3节点的广播流量转发给CE1节点。这样BUM流量的收敛需要等PE1节点和PE2节点重新协商DF角色之后。PE2节点虽然可以将绕行的单播流量通过CE1-PE2之间的链路转发给CE1节点,但是,当CE1-PE2之间的链路也失效时,这些从PE1节点绕行到PE2节点的流量会再次回到PE1绕行,从而形成乒乓过程(如图12中步骤3所示),这同样是因为PE2节点不能区分绕行的流量与PE3节点直接发给PE2节点的流量,既然PE3节点发给PE2节点的单播流量此时需要绕行,两种流量就都会绕行。
在本公开实施例8中,引入上下文PW之后,当CE1节点和PE1节点之间的链路发生故障的时候,CE3节点发往CE1节点的BUM流量在经过PE1节点的时候可以转发给备路径PE2节点(可称为所述BUM流量经PE2节点绕行),同时携带PE1节点与PE2节点之间的上下文PW的标签(对于广播流量,同时还携带CE1节点与PE2节点之间的ESI对应的ESI标签)。PE2节点根据上下文PW标签识别出绕行的流量,然后PE2节点对于绕行广播流量,只能转发给所述ESI标签对应的对所述ESI而言为非DF角色接入电路AC(Access Circuit)而不能走绕行流程,而对于PE3节点直接发给PE2节点的流量,由于不带上下文PW标签,则只能转发给DF角色的AC并且当CE1节点与PE2节点之间的AC失效以后,可以通过PE1节点绕行。对于绕行的单播流量,查MAC表转发,但当查MAC表转发最终决定往网络侧转发时,则不能转发到上下文PW指向的远端节点(如图13中步骤4所示),在本例中,也就是不能再转发到PE2节点。这样最大程度的减少了CE节点和PE节点之间链路发生故障的情况下BUM报文发生黑洞的时间。
这样,通过在报文中添加上下文PW标签,就解决了到本地ES的广播报文无法经同一ES的远端邻接节点绕行到该ES中的CE节点的问题,以及单播报文虽能进行所述绕行但是存在乒乓过程的问题。
实施例8
除特殊说明之处以外,本实施例与实施例4相同。
与实施例4不同,本实施例中上下文PW的标签与实施例3中的虚电路标签类似,在一个上下文标签空间LS8中分配标签和构建ILM表项,从而可以不占用每平台标签空间中的标签资源。因为上下文PW标签是在EVPN标签以内的,只要将所述标签空间LS8指定给所述EVPN实例中的FEC,通过所述EVPN标签就能确定所述上下文PW标签所属的标签空间LS8,然后在所述标签空间LS8中对所述EVPN标签内层的标签(本例即所述上下文PW标签)进行ILM表查找,从而在不需要SPL、扩展SPL、SCL标签的前提下确定所述上下文PW。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (15)
1.一种基于虚电路的数据报文处理方法,应用于运营商边缘路由器PE节点,所述数据报文处理方法包括:
根据虚拟专用网VPN业务实例对应的路由报文,确定所述路由报文的下一跳PE节点的标识信息和所述路由报文的原始PE节点的标识信息,其中,所述VPN业务实例部署在当前PE节点和所述原始PE节点上;
确定上下文虚电路,所述上下文虚电路的两端节点分别为所述当前PE节点和所述原始PE节点;
确定所述上下文虚电路的虚电路标签;
将所述路由报文的VPN标签与所述虚电路标签写入所述VPN业务实例的初始数据报文,以获得待转发的最终数据报文;
将所述待转发的最终数据报文转发给所述下一跳PE节点。
2.根据权利要求1所述的数据报文处理方法,其中,所述上下文虚电路的入口节点为所述原始PE节点,所述上下文虚电路的出口节点为所述当前PE节点,并且,所述最终数据报文具有第一预定格式,所述第一预定格式为:所述虚电路标签在所述VPN标签的外层。
3.根据权利要求2所述的数据报文处理方法,其中,还包括:
响应于接收到的最终数据报文具有所述第一预定格式,通过所述接收到的最终数据报文中的虚电路标签确定上下文标签空间;
将所述接收到的最终数据报文中的所述虚电路标签内层的标签在所述上下文标签空间中查找输入标签映射ILM表项;
根据所命中的输入标签映射-下一跳标签转发ILM-NHLFE表项转发所述接收到的最终数据报文。
4.根据权利要求1所述的数据报文处理方法,其中,所述上下文虚电路的出口节点为所述原始PE节点,所述上下文虚电路的入口节点为所述当前PE节点,所述最终数据报文具有第二预定格式,所述第二预定格式为:所述虚电路标签在所述VPN标签的内层。
5.根据权利要求1至4中任意一项所述的数据报文处理方法,其中,确定所述上下文虚电路之前,还包括:
创建虚电路容器服务实例,以使得所述虚电路容器服务实例的一条虚电路为所述上下文虚电路;
建立所述VPN业务实例与所述虚电路容器服务实例之间的映射关系。
6.根据权利要求5所述的数据报文处理方法,其中,所述虚电路容器服务实例满足以下条件:
所述虚电路容器服务实例的控制面包括作为分段路由-多协议标签交换SR-MPLS控制面的路由协议,以使得SR-MPLS控制面的路由协议实例还用作所述虚电路容器服务实例;或者
所述虚电路容器服务实例为能够创建伪线PW的L2VPN控制面。
7.根据权利要求6所述的数据报文处理方法,其中,当所述虚电路容器服务实例用作SR-MPLS控制面的路由协议实例时,所述虚电路标签的值为所述当前PE节点和所述原始PE节点中用作所述上下文虚电路的入口节点的一者的分段标识符SID在所述当前PE节点和所述原始PE节点中未用作所述上下文虚电路的入口节点的一者的分段路由全局块SRGB中对应的标签的值。
8.根据权利要求7所述的数据报文处理方法,其中,当所述SR-MPLS控制面的路由协议实例通过相同的SRGB创建SR-MPLS隧道时,还包括:
将与以所述当前PE节点为出口节点的上下文虚电路对应的ILM表项确定为上下文标签空间中的表项;
将对应于SR-MPLS隧道的ILM表项绑定到所述上下文标签空间中。
9.根据权利要求1至4中任意一项所述的数据报文处理方法,其中,所述虚电路标签为上下文标签空间中的标签,且所述虚电路标签的外层标签标识所述上下文标签空间;其中,所述外层标签是以下之一者:
到所述下一跳PE节点的MP2P隧道标签;
特殊目的标签SPL;
扩展SPL;
在所述下一跳PE节点上配置的静态标签;
所述VPN标签。
10.根据权利要求4所述的数据报文处理方法,其中,还包括:
响应于网络中其他PE节点发送的具有所述第二预定格式的最终数据报文,根据接收到的最终数据报文中的虚电路标签确定所述接收到的最终数据报文对应的所述上下文虚电路的入口节点的标识信息,所述标识信息用于以下至少之一者:
将所确定的入口节点的标识信息作为所述接收到的最终数据报文的入口PE节点的标识信息进行记录;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点时,将所述最终数据报文丢弃;
当前PE节点在将要把所述接收到的最终数据报文转发给所述上下文虚电路的入口节点所属的水平分割组中的任一远端PE节点时,将所述最终数据报文丢弃。
11.一种基于虚电路的转发表项的构建方法,应用于PE节点,包括:
根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路,所述上下文虚电路的两个端点分别为当前PE节点和生成所述VPN路由的原始PE节点,其中,所述第一VPN路由为VPN业务实例对应的VPN路由;
确定所述上下文虚电路的虚电路标签;
给所述虚电路标签绑定标签空间,以使得所述上下文虚电路标识所述第一VPN标签所属的上下文标签空间;
在所述标签空间中为所述第一VPN路由确定第一VPN标签的值;
为所述第一VPN标签构建上下文标签转发表项,所述上下文标签转发表项为所述上下文标签空间中的标签转发表项。
12.根据权利要求11所述的构建方法,其中,所述根据接收到的第一VPN路由确定所述第一VPN路由的第一VPN标签对应的上下文虚电路包括:
根据以下信息中的任意一者确定所述原始PE节点:所述第一VPN路由的下一跳、所述第一VPN路由携带的第一路由属性,其中,所述第一路由属性为携带原始运营商边缘OPE节点信息的路由属性;
将确定的所述原始PE节点作为所述上下文虚电路的入口节点,确定所述上下文虚电路。
13.根据权利要求11所述的构建方法,其中,在为所述第一VPN标签构建上下文标签转发表项之后,还包括:
根据接收到的第一VPN路由构建第二VPN路由,所述第二VPN路由的下一跳为所述当前PE节点,所述第二VPN路由的第二VPN标签的值与所述第一VPN标签的值相同,所述第二VPN路由携带第一预定路由属性和第二预定路由属性,其中,所述第一路由属性用于将所述第二VPN标签位于由所述第二预定路由属性所确定的虚电路标签标识的上下文标签空间中这一信息通知接收到所述第二VPN路由的PE节点,所述第二预定路由属性为携带用于确定所述虚电路标签的信息的路由属性。
14.一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,当所述可执行程序被调用时,能够实现以下方法中的任意一者:
权利要求1至10中任意一项所述的处理方法;
权利要求11至13中任意一项所述的构建方法。
15.一种PE,包括:
存储模块,所述存储模块上存储有可执行程序;
一个或多个处理器,当所述一个或多个处理器调用所述可执行程序时,使得所述一个或多个处理器实现以下方法中的任意一者:
权利要求1至10中任意一项所述的处理方法;
权利要求11至13中任意一项所述的构建方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419401.XA CN113132235B (zh) | 2019-12-31 | 2019-12-31 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
US17/790,251 US11924094B2 (en) | 2019-12-31 | 2020-11-03 | Virtual circuit-based data packet processing method and forwarding table entry construction method |
PCT/CN2020/126168 WO2021135624A1 (zh) | 2019-12-31 | 2020-11-03 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
EP20910954.5A EP4087197A4 (en) | 2019-12-31 | 2020-11-03 | METHODS FOR PROCESSING DATA PACKETS BASED ON VIRTUAL LINES AND METHODS FOR CONSTRUCTING ROUTING TABLE ENTRIES |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419401.XA CN113132235B (zh) | 2019-12-31 | 2019-12-31 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113132235A true CN113132235A (zh) | 2021-07-16 |
CN113132235B CN113132235B (zh) | 2023-03-31 |
Family
ID=76686879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911419401.XA Active CN113132235B (zh) | 2019-12-31 | 2019-12-31 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11924094B2 (zh) |
EP (1) | EP4087197A4 (zh) |
CN (1) | CN113132235B (zh) |
WO (1) | WO2021135624A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873548A (zh) * | 2021-09-03 | 2021-12-31 | 中盈优创资讯科技有限公司 | 一种白盒设备一键开局方法及装置 |
CN114338277A (zh) * | 2021-12-20 | 2022-04-12 | 中国电信股份有限公司 | Anycast场景下VPN网络节点的保护方法、装置、设备和可读介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132235B (zh) * | 2019-12-31 | 2023-03-31 | 中兴通讯股份有限公司 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
CN113904981B (zh) * | 2021-09-15 | 2023-11-17 | 锐捷网络股份有限公司 | 一种路由信息处理方法、装置、电子设备和存储介质 |
CN116805930A (zh) * | 2022-03-16 | 2023-09-26 | 中兴通讯股份有限公司 | Bgp路由的发送方法、装置、存储介质及电子装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1227623A2 (en) * | 2001-01-30 | 2002-07-31 | Alcatel Internetworking (PE), Inc. | VLAN tunneling protocol |
CN1744541A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 一种在多层标签交换网络中实现虚拟专网业务的方法 |
US20060168279A1 (en) * | 2005-01-24 | 2006-07-27 | Ki-Beom Park | Apparatus and method for providing multi protocol label switching (MPLS)-based virtual private network (VPN) |
WO2008040163A1 (fr) * | 2006-09-15 | 2008-04-10 | Huawei Technologies Co., Ltd. | Procédé de transmission de trame ethernet et infrastructure ethernet associée |
CN101350760A (zh) * | 2008-08-15 | 2009-01-21 | 中兴通讯股份有限公司 | 虚拟专网的数据报文转发方法 |
US20090323698A1 (en) * | 2008-06-26 | 2009-12-31 | Cisco Technology, Inc. | Pure control-plane approach for on-path connection admission control operations in multiprotocol label switching virtual private networks |
CN101771561A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种标签转发表项建立方法、节点设备和系统 |
CN102368726A (zh) * | 2011-09-14 | 2012-03-07 | 杭州华三通信技术有限公司 | 一种应用于l2vpn的转发方法及装置 |
CN103475581A (zh) * | 2012-06-06 | 2013-12-25 | 华为技术有限公司 | 一种网络标签分配方法、设备与系统 |
US9178717B1 (en) * | 2011-04-07 | 2015-11-03 | Adtran, Inc. | Systems and methods for enabling leaf isolation in a multi-node tree network |
CN105450520A (zh) * | 2015-12-31 | 2016-03-30 | 北京华为数字技术有限公司 | 报文处理方法和装置、建立聚合隧道的方法和装置 |
WO2019119220A1 (en) * | 2017-12-18 | 2019-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Provider edge device and method implemented thereon for ethernet virtual private network |
CN110417655A (zh) * | 2018-04-28 | 2019-11-05 | 中兴通讯股份有限公司 | 一种数据报文转发的方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613188B1 (en) * | 2006-04-27 | 2009-11-03 | Alcatel Lucent | Ethernet VLL spoke termination at an IP interface |
US7920466B2 (en) * | 2007-01-11 | 2011-04-05 | Cisco Technology, Inc. | Protection of hierarchical tunnel head-end nodes |
WO2012006162A1 (en) * | 2010-06-29 | 2012-01-12 | Synapse Wireless, Inc. | Systems and methods for communicating among nodes of a wireless network |
CN105991433B (zh) * | 2015-01-29 | 2019-06-07 | 新华三技术有限公司 | 三层虚拟专用网接入二层虚拟专用网的方法和装置 |
EP3493488B1 (en) * | 2016-07-27 | 2020-12-30 | New H3C Technologies Co., Ltd. | Processing of data stream |
US10764249B1 (en) * | 2017-11-30 | 2020-09-01 | Juniper Networks, Inc. | Anti-spoofing techniques for overlay networks |
CN113132235B (zh) * | 2019-12-31 | 2023-03-31 | 中兴通讯股份有限公司 | 基于虚电路的数据报文处理方法、转发表项的构建方法 |
-
2019
- 2019-12-31 CN CN201911419401.XA patent/CN113132235B/zh active Active
-
2020
- 2020-11-03 US US17/790,251 patent/US11924094B2/en active Active
- 2020-11-03 WO PCT/CN2020/126168 patent/WO2021135624A1/zh unknown
- 2020-11-03 EP EP20910954.5A patent/EP4087197A4/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1227623A2 (en) * | 2001-01-30 | 2002-07-31 | Alcatel Internetworking (PE), Inc. | VLAN tunneling protocol |
CN1744541A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 一种在多层标签交换网络中实现虚拟专网业务的方法 |
US20060168279A1 (en) * | 2005-01-24 | 2006-07-27 | Ki-Beom Park | Apparatus and method for providing multi protocol label switching (MPLS)-based virtual private network (VPN) |
WO2008040163A1 (fr) * | 2006-09-15 | 2008-04-10 | Huawei Technologies Co., Ltd. | Procédé de transmission de trame ethernet et infrastructure ethernet associée |
US20090323698A1 (en) * | 2008-06-26 | 2009-12-31 | Cisco Technology, Inc. | Pure control-plane approach for on-path connection admission control operations in multiprotocol label switching virtual private networks |
CN101350760A (zh) * | 2008-08-15 | 2009-01-21 | 中兴通讯股份有限公司 | 虚拟专网的数据报文转发方法 |
CN101771561A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种标签转发表项建立方法、节点设备和系统 |
US9178717B1 (en) * | 2011-04-07 | 2015-11-03 | Adtran, Inc. | Systems and methods for enabling leaf isolation in a multi-node tree network |
CN102368726A (zh) * | 2011-09-14 | 2012-03-07 | 杭州华三通信技术有限公司 | 一种应用于l2vpn的转发方法及装置 |
CN103475581A (zh) * | 2012-06-06 | 2013-12-25 | 华为技术有限公司 | 一种网络标签分配方法、设备与系统 |
CN105450520A (zh) * | 2015-12-31 | 2016-03-30 | 北京华为数字技术有限公司 | 报文处理方法和装置、建立聚合隧道的方法和装置 |
WO2019119220A1 (en) * | 2017-12-18 | 2019-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Provider edge device and method implemented thereon for ethernet virtual private network |
CN110417655A (zh) * | 2018-04-28 | 2019-11-05 | 中兴通讯股份有限公司 | 一种数据报文转发的方法及装置 |
Non-Patent Citations (1)
Title |
---|
牛大伟等: "基于MPLS的无线网络中双向虚电路的建立", 《电讯技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873548A (zh) * | 2021-09-03 | 2021-12-31 | 中盈优创资讯科技有限公司 | 一种白盒设备一键开局方法及装置 |
CN114338277A (zh) * | 2021-12-20 | 2022-04-12 | 中国电信股份有限公司 | Anycast场景下VPN网络节点的保护方法、装置、设备和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US11924094B2 (en) | 2024-03-05 |
US20230031179A1 (en) | 2023-02-02 |
WO2021135624A1 (zh) | 2021-07-08 |
EP4087197A4 (en) | 2023-05-17 |
CN113132235B (zh) | 2023-03-31 |
EP4087197A1 (en) | 2022-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3836490B1 (en) | Vpn cross-domain implementation method, device, and border node | |
US11700198B2 (en) | Transmission control method, node, network system and storage medium | |
WO2021063232A1 (zh) | 建立bier转发表项的方法、装置和系统 | |
CN113132235B (zh) | 基于虚电路的数据报文处理方法、转发表项的构建方法 | |
CN108574616B (zh) | 一种处理路由的方法、设备及系统 | |
CN109995634B (zh) | 一种组播虚拟专用网络的承载方法和设备 | |
US9781032B1 (en) | MPLS label usage in ethernet virtual private networks | |
CN109076018B (zh) | 利用is-is协议实现分段路由网络中网元的方法和设备 | |
RU2704714C1 (ru) | Технологии для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи, использующие ospf | |
US8385341B2 (en) | Ethernet frame broadcast emulation | |
US9100213B1 (en) | Synchronizing VPLS gateway MAC addresses | |
WO2016066072A1 (zh) | 实现nvo3网络与mpls网络之间通信的方法和装置 | |
US20230300070A1 (en) | Packet Sending Method, Device, and System | |
US20210211324A1 (en) | Offset label for aggregating multicasts from multiple virtual private networks on a single multicast distribution tree | |
CN110417655B (zh) | 一种数据报文转发的方法及装置 | |
WO2018103099A1 (zh) | 发送和接收消息的方法、设备和系统 | |
WO2022110535A1 (zh) | 一种报文发送方法、设备及系统 | |
US11265186B2 (en) | Redundancy administrating method for virtual private network and network switching apparatus with the same method implemented therein | |
WO2020212998A1 (en) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters | |
US20230126279A1 (en) | Fast reroute for bum traffic in ethernet virtual private networks | |
WO2020244304A1 (zh) | 路由信息发送的方法、路由选路的方法和装置 | |
WO2024016869A1 (zh) | 一种组播配置方法及装置 | |
WO2023050981A1 (zh) | 虚拟专用网络业务标识的分配方法、报文处理方法及装置 | |
WO2023051179A1 (zh) | 边界网关协议路由的接收、发送方法及装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |