报文传输方法、运营商边缘设备及系统与流程

文档序号:14748501发布日期:2018-06-22 08:46阅读:145来源:国知局

本发明实施例涉及通信领域,尤其涉及一种报文传输方法、运营商边缘设备及系统。



背景技术:

随着网络技术的发展,目前,数据中心中的以太网虚拟私有网络(Ethernet Virtual Private Network,EVPN)结构通常采用虚拟可扩展局域网(Virtual Extensible Local Area Network,VXLAN)对称转发模型,即,至少一台虚拟机设备(Virtual MAChine,VM)通过网关设备(Gateway,GW)与多个运营商边缘(Provider Edge,PE)设备通信,而PE之间通过骨干网,即多协议标记交换(英文:Multiple-Protocol Label Switching,简称:MPLS)进行通信,而PE同样通过VXLAN与GW以及连接至GW上的VM进行通信,所述骨干网即为PE之间的通信网络。

然后在现有技术中,报文在VXLAN隧道中进行传输时,PE需要在下行传输过程中,具备VXLAN overlay封装功能,即,对MPLS数据包进行解封装后,还需要依据控制流传输时记录的MPLS标签与VXLAN网络标识符(VXLAN Network Identifier,VNI)之间的映射关系,将下一跳地址与VNI重新封装到数据包中,构成用于在与GW之间的VXLAN隧道中进行传输的UDP(User Datagram Protocol,用户数据报协议)数据包。

但是,目前的数据中心中仍运行着大量的旧PE,该种PE由于接口板等硬件条件的限制,无法支持overlay封装,导致旧设备与新设备无法共存。现有技术为解决上述问题,采用的方法之一是将数据中心的所有旧设备均升级为具备overlay完整功能的新设备,该种方法耗时较长,且耗费资源较多,导致开销过大。



技术实现要素:

本发明实施例提供一种报文传输方法、运营商边缘设备及系统,用以解决无法支持overlay封装的旧PE与新PE无法共存的问题。

一方面,本发明实施例提供一种网络设备。所述网络设备包括了保存有计算机可读指令的存储器和与所述存储器存在通信连接的处理器,并且所述存储器和处理器都是硬件。所述处理器在执行所述指令后可以执行多项操作。例如,所述处理器在执行所述指令后,可以从网关1接收路由消息1。路由消息1包括虚拟机VM 1的地址、虚拟可扩展局域网VXLAN网络标示符VNI 1和网关1的IP地址,其中VNI 1标识广播域中包括VM 1的一个部分。所述处理器还可以通过对路由消息1进行处理而获得路由消息2。对路由消息1的处理包括将路由消息1中的所述VNI 1和VXLAN隧道端点VTEP 1的IP地址转移至路由消息1的一个扩展部分中,向路由消息1添加为网络中的一个PE分配的多协议标签交换MPLS标签1,以及向路由消息1添加所述网络设备的IP地址。之后,所述网络设备向所述PE发送路由消息2。这里的VXLAN隧道端点VTEP 1是指VXLAN隧道的一个端点,这个端点是一个硬件设备中的虚拟节点。这个VXLAN隧道存在于网关1和所述PE之间的隧道,而VTEP 1是网关1中的虚拟节点。所述网络设备在网络中的角色是一个PE。

本发明实施例提供的技术方案中,所述网络设备将VNI 1和VTEP 1的IP地址发送给了PE,所以PE发送给VM 1的数据报文可以携带VNI 1和VTEP 1的IP地址。这样所述网络设备在接收到数据报文后就不需要再将VNI 1和VTEP 1的IP地址添加到数据报文中,降低了所述网络设备能力的要求。

在一个可能的设计中,所述处理器还用于执行所述指令,从而从PE1接收数据报文1,数据报文1为封装有MPLS标签1的MPLS数据报文,且携带了VNI 1和VTEP 1的IP地址;通过对数据报文1进行处理而获得数据报文2,其中对数据报文1的处理包括删除所述MPLS数据报文中的MPLS标签1;根据MPLS标签1为数据报文2确定出端口;并且通过所述出端口向所述网关1发送数据报文2。在这里,确定出端口这一操作和删除MPLS标签1的操作没有顺序上的先后关系。

由于数据报文1中已经携带了携带了VNI 1和VTEP 1的IP地址,所以网络节点不需要再添加这两项信息,降低了对所述网络节点的性能要求。

另一方面,本发明实施例提供的一种网络设备。所述网络设备包括存储器和处理器,所述存储器中保存有计算机可读指令,所述处理器用于执行所述存储器中的所述指令,所述存储器和所述处理器均为硬件。在处理器执行存储器中的指令后,处理器可以从PE1接收路由消息1,路由消息1包括一个扩展部分。这个扩展部分包括VNI1和网关1的IP地址。路由消息1还包括虚拟机VM 1的地址、PE1为所述网络设备分配的多协议标签交换MPLS标签1以及PE1的IP地址。这里的VNI 1用于标识广播域中包括VM 1的部分1。处理器还用于根据所述路由消息1获得路由消息2,其中路由消息2包括VM 1的地址、所述网络设备的IP地址和VNI 2。VNI 2用于标识所述广播域中的另一个部分,即部分2。需要补充的是,一个广播域可以只包括部分1和部分2,也可以还包括其他部分。在获得VNI 1、网关1的IP地址和MPLS标签1后,处理器还保存一个对应关系1,这个对应关系1包括VNI 1、网关1的IP地址和MPLS标签1之间的对应关系。此外,处理器还向网关2发送路由消息2。此外,当VM2和VM1处于同一个广播域的不同部分时,用于标识VM 1所属的那个部分的VNI 1的值与用于标识VM 2所述的那个部分的VNI 2的值不同。这时,处理器还可以进一步保存VNI 1和VNI 2之间的对应关系2。

由于保存了上述的对应关系1,所述网络设备可以根据VM 2发送的数据报文中携带的VNI来为数据报文找到网关1的IP地址和MPLS标签1。当VM1和VM2属于同一个广播域的同一个部分时,VNI 1和VNI 2相同,也就是说网络设备从网关2收到的数据报文已经携带了VNI 1。这样网络设备就可以通过VNI 1和所述对应关系1找到网关1的IP地址和MPLS标签1。当VM1和VM2属于不同部分时,网络设备可以从网关2收到携带VNI 2的数据报文,并根据对应关系2确定VNI 1,然后再根据VNI 1和对应关系1为数据报文确定找到网关1的IP地址和MPLS标签1。之后网络设备就可以得到封装有MPLS标签1且携带VNI 1和网关1的IP地址的数据报文2。这实际上是进行了overlay操作,当数据报文2到达PE后,PE不需要再做overlay操作,而是剥掉MPLS标签1并将处理后的数据报文发往网关1。因此,通过在所述网络设备上保存对应关系1,网络设备具备了对数据报文进行overlay操作的能力,从而降低了对PE1的性能的要求。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1A是示例性示出的一种EVPN的网络架构图;

图1B是示例性示出的一种基于VXLAN的典型组网的网络拓扑图;

图2是示例性示出的一种下行数据报文传输流程图;

图3是本发明一个实施例提供的EVPN的网络架构图;

图4是本发明一个实施例提供的控制面消息传输流程图;

图5是本发明一个实施例提供的下行数据报文传输流程图;

图6是本发明一个实施例提供的报文传输方法的流程图;

图7A是本发明实施例提供的一种PE的示意性框图;

图7B是本发明实施例提供的一种PE的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例描述的网络架构以及业务场景是为了更加清楚地说明本发明实施例的技术方案,并不构成对本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。

例如图1A所示的一种EVPN网络架构和图1B所示的基于VXLAN的网络拓扑,报文在VXLAN隧道中进行传输时,上行控制流传输过程具体为:PE1接收GW1发来的路由消息(源地址为VM1的地址信息),PE1将路由消息中的VNI替换为MPLS标签,即将路由消息进行MPLS封装,同时,记录MPLS标签与路由消息之间的对应关系,再将封装后的路由消息发送给PE2。PE2接收到该路由消息后,将MPLS标签替换为VNI,再将路由消息重新封装进行VXLAN封装,并发布该路由消息,即将路由消息发送给GW2。GW2将接收路由后进行相关处理,即生成对应的路由信息,从而实现端到端控制面消息传递。而下行传输流程如图3所示,具体为:当VM21发送下行数据包消息给VM11时,GW2可根据下行数据包的地址信息(源地址为VM21的地址信息,目的地址为VM11的地址信息)查找与下行数据包对应的路由信息,包括对应的VNI以及下一跳地址,即PE2。GW2将下行数据包封装为UDP(User Datagram Protocol,用户数据报协议)数据包,即,将查找到的VNI以及PE2的地址信息封装到下行数据包中,再发送给PE2。PE2接收该UDP数据包,将UDP数据包进行MPLS封装,具体的,PE2去掉外层地址信息,并依据VNI查找对应的MPLS标签,将VNI替换为MPLS标签,若骨干网中存在P节点,则向数据包中添加公网IGP(Interior Gateway Protocol,内部网关协议)MPLS标签。随后,PE2将重新封装的MPLS数据包发送到PE1。PE1对MPLS进行MPLS解封装后,再将解封装后的数据包重新封装为UDP数据包,具体的,PE1去掉外层MPLS标签,并依据MPLS标签查找对应的VNI以及下一跳地址,即GW1。PE1将VNI与GW1的地址信息封装到数据包,实现重新封装。随后,PE1将重新封装后的UDP数据包发送给GW1,再经由GW1将UDP数据包进行相关处理后,转发给VM11,从而实现下行传输流程。

而本发明实施例提供的技术方案可适用于图3所示的网络架构中。该网络架构中包括:第一PE31、第二PE32、第三PE33、第四PE34、第一网关35、第二网关36以及第一VM37与第二VM38。在本发明的实施例中,第一网关35与第二网关36可分别与至少一个VM进行通信,在图3中仅示出第一VM37与第二VM38作为示意性举例,本发明对VM的数量不作限定。

其中,第一PE31和第二PE32构成的通信链路与第三PE33和第四PE34构成的通信链路,可以互为备份链路。

在本发明的实施例中,以第一PE为旧PE,即不具备overlay封装功能的PE,其它PE均为新PE为例进行详细说明。

为了使本领域技术人员更好的理解本发明的报文转发方法,下面以具体实施例进行详细阐述。

仍以图3所示的网络结构为例进行详细说明。参照图4,其示出了控制面消息传输流程示意图。在图4中:

第一网关接收第一VM发送的包含第一VM的MAC地址和/或IP地址的上行数据报文,生成携带所述MAC地址和/或IP地址的BGP报文,即本发明实施例中的路由消息,如图4中的表410所示,所述路由消息中还包括第一网关所属的VNI,即VNI1,以及第一网关的VTEP IP地址,即GW1VTEP source。其中,第一网关从上行数据报文中抓取第一VM的MAC地址和/或IP地址的抓取方式可参照现有技术实施例中的技术方案,本发明不再赘述;而VNI预先配置于第一网关中,第一网关可直接获取,所述第一VNI标识广播域的第一部分,所述第一部分包括所述第一VM。

接着,第一网关将生成的BGP报文发布给所有与其进行通信连接的PE。即,图3中的第一PE以及第三PE均接收到该路由消息。在本实施例中,第三PE与第四PE均为新PE,即具有overlay封装与解封装功能的PE,因此,第三PE与第四PE形成的通信链路可在控制面消息传输实现后,对第一网关发送的上行数据报文进行转发。而由于第一PE为旧PE,即不具有overlay功能,则第一PE与第二PE形成的通信链路在控制面消息传输实现后,仅用于下行数据报文,即发送给第一VM的数据报文的传输。即,在本发明的实施例中,针对于第一VM的上行数据报文,可通过第三PE与第四PE之间的通信链路进行传输。而针对于第一VM的下行数据报文,可通过第一PE与第二PE之间的通信链路,以及第三PE与第四PE之间的通信链路进行传输。在下行报文传输过程中,两条链路可采用负载均衡模式,从而减轻各设备的负载压力。在一个实施例中,第一PE为旧PE,该PE在其配置信息中注明有该信息,其它设备可通过读取该配置信息以确定第一PE为不具有overlay功能的旧PE,因此,在上行报文传输过程中,将不会将上行报文传输到第一PE上。

仍参照图4,在本实施例中,第一PE接收到第一网关发来的BGP报文后,将该BGP报文进行封装。具体封装过程为:

1)第一PE将BGP报文中的VNI1替换为BGP EVPN MPLS标签。具体的,在本实施例中,第一PE在接收到BGP报文后,查找本地是否已存在与第二PE对应的BGP EVPN MPLS标签。若不存在,则需要为第二PE分配BGP EVPN MPLS标签,并将该BGP EVPN MPLS标签存入所述VNI1的字段位置,同时删除该字段位置的VNI1;需要说明的是,本实施例中涉及的“替换”皆指将新的参数存入原参数的字段位置,再次不再赘述。具体BGP EVPN MPLS标签分配过程可参照现有技术实施例中的技术方案,本发明不再赘述。

2)第一PE将BGP报文中的GW1VTEP source替换为PE1EVPN IP,即,第一PE在本地骨干网中的地址信息,该地址专用于在骨干网中进行通信使用。

3)第一PE向BGP报文中增加扩展字段,并将VNI1以及GW1VTEP source写入扩展字段。具体的,在本实施例中,第一PE向替换协议内容后的BGP报文增加扩展字段。随后,将VNI1与GW1VTEP source写入扩展字段中,从而构成具有扩展字段的新的BGP报文结构。通过该扩展字段,第一PE可将VNI以及GW1VTEP source告知第二PE,而第一PE无需在本地存储所述GW1VTEP source与VNI相关的映射关系,有效降低了第一PE的设备压力,延长设备使用寿命,以节省开销。

如图4中的表420所示,第一PE封装后的BGP报文包括:第一VM的MAC和/或IP地址、BGP EVPN MPLS标签、PE1EVPN IP以及扩展字段中所包括的VNI1与GW1VTEP source。

随后,第一PE将封装后的携带有扩展字段的BGP报文发送给第二PE。

第二PE接收该携带有扩展字段的BGP报文。接着,第二PE查询本地维护的VNI与BGP报文中携带的VNI1是否相同。在本实施例中,以第二PE的VNI为VNI2进行举例说明。第二PE查询到本地维护的VNI与BGP报文中的VNI1不一致,则第二PE记录VNI1、VNI2、GW1VTEP source、BGP EVPN MPLS标签之间的对应关系。

随后,第二PE并对BGP报文进行重新封装。具体操作如下:

1)去掉扩展字段。

2)去掉BGP EVPN MPLS标签,即将BGP EVPN MPLS标签所属字段置空,然后,将VNI2写入该字段中,即将VNI2对BGP EVPN MPLS标签进行替换。

3)将PE1EVPN IP替换为PE2VTEP source,即第二PE的VTEP IP地址。

至此,第二PE实现对BGP报文的重新封装,重新封装后的BGP报文如图4中的表430所示,包括:第一VM的MAC和/或IP地址、VNI2以及PE2VTEP source。

第二PE将重新封装后的BGP报文发布给第二网关。

第二网关接收到BGP报文后,在本地维护与BGP报文对应的路由信息。即,第二网关在本地路由表中记录第一VM的MAC和/或IP地址、VNI2、PE2VTEP source与EVI之间的对应关系,从而通过该对应关系指导下行流量转发。

参照图5,其示出了下行数据报文传输流程示意图。在图5中:

第二VM向第一VM发送下行数据报文,该下行数据报文中为原始二层数据包,如图5中的表510所示,该数据包携带有:数据部分、源地址信息,即第二VM的MAC和/或IP地址、以及目的地址信息,即第一VM的MAC和/或IP地址。

在本实施例中,第二网关接收该下行数据报文,并对下行数据报文进行overlay封装,即将下行数据报文封装为UDP报文,如图5中的表520所示。具体的,在本实施例中,第二网关先检测该下行数据报文是否命中本地路由信息,具体的,第二网关提取目的地址,即第一VM的MAC和/或IP地址,第二网关将目的地址与本地路由表中的路由信息进行匹配,在本实施例中,第二网关已记录有对应于第一VM的路由信息,则第二网关确认该下行报文命中本地路由信息。随后,第二网关对下行数据报文进行封装,具体的,第一网关查询到与第一VM的MAC和/或IP地址相关联的VNI2、PE2VTEP source信息,第一网关将VNI2、PE2VTEP source封装到下行数据报文上,生成可在VXLAN隧道进行传输且携带有VNI2、PE2VTEP source的UDP报文。

仍参照图5,第二网关依据UDP报文中的PE2VTEP source,将表520所示的UDP报文发送给第二PE。

第二PE接收该UDP报文,并将UDP报文封装为MPLS UDP报文。具体的:

首先,第二PE对UDP报文进行overlay解封装。具体的,第二PE去掉表520所示UDP报文的外层IP报头,即表520中的PE2VTEP source。第二PE依据VNI2在本地对应关系表中查找与其相关联的对应关系,在本实施例中,第二PE从对应关系表中获取与VNI2对应的VNI1、GW1VTEP source、BGP EVPN MPLS标签。

接着,第二PE去掉VNI2,即,将VNI2所在字段置空,至此实现overlay解封装。

随后,第二PE对UDP进行overlay封装。具体的,第二PE将VNI1写入原VNI2所在字段,即可看作将VNI1对VNI2进行替换。然后,第二PE将GW1VTEP source封装为该MPLS UDP报文的外层报头。

接着,第二PE对报文进行MPLS封装,即,在GW1VTEP source外层封装BGP EVPN MPLS标签。在本实施例中,第一PE与第二PE之间不存在P节点,因此,无需在BGP EVPN MPLS标签外层封装公网标签IGP MPLS标签。在另一个实施例中,若第一PE与第二PE之间存在至少一个P节点,则第二PE在BGP EVPN MPLS标签外层封装公网IGP MPLS标签,从而使报文能够在骨干网中的P节点之间进行传输。

如图5所示,第二PE进行封装后的MPLS UDP报文如图5中的表530所示,包括:下行数据报文(数据部分、目的地址信息和源地址信息)、VNI1、GW1VTEP source以及BGP EVPN MPLS标签。接着,第二PE将封装了下行数据报文、VNI1、GW1VTEP source以及BGP EVPN MPLS标签的MPLS UDP报文通过骨干网MPLS隧道发送给第一PE。

第一PE接收到该MPLS UDP报文后,去掉外层BGP EVPN MPLS标签,以获取UDP报文,如图5中的表540所示。以及,第一PE根据外层IP地址,即GW1VTEP source查找本地路由表。在本实施例中,第一PE上预先建立有本地路由表,本地路由表中维护有对应于第一网关的路由信息,该路由信息包括第一网关的VTEP地址信息以及对应接口等。

第一PE在确定UDP报文命中本地路由表中的路由信息后,依据GW1VTEP source将UDP报文发送给第一网关。随后,第一网关将UDP报文进行相关处理后(相关处理即为获取UDP报文的数据部分,如图5中的表550所示,具体过程可参照现有技术实施例中的技术方案,本发明不再赘述),转发给第一VM,从而实现第二VM到第一VM的下行数据报文的传输流程。

综上,本发明实施例中的技术方案,通过在控制面消息传输时,在第一PE上对BGP报文增加扩展字段,从而使第一PE无需在本地记录与VNI相关的对应关系,从而降低了旧PE的设备压力,延长使用寿命。以及,第二PE可通过扩展字段获取到VNI与相关地址信息的对应关系,从而用于指导后续的下行数据报文转发流程,使第二PE可根据该对应关系,提前对下行数据报文进行overlay的封装,从而实现在非对称的流量转发模型中进行下行数据报文的传输,进而使不具备overlay封装功能的旧PE与新PE共存,有效提升了资源利用率。

请参考图6,其示出了本发明一个实施例提供的报文传输方法的流程图。该方法可以包括如下内容。

操作601,第一PE从第一网关接收第一路由消息,所述第一路由消息包括第一VM的地址、第一VNI和所述第一网关的IP地址,其中所述第一VNI标识广播域的第一部分,所述第一部分包括所述第一VM。

具体的,在一个实施例中,第一PE接收第一网关发送来的路由消息。该路由消息中携带有第一VM的地址以及路由信息,其中,路由信息包括第一VNI以及第一网关的IP地址。第一VM的地址包括第一VM的MAC地址和/或第一VM的IP地址。在本实施例中A和/或B是指A、B或者A和B。在一个实施例中,不同地域维护有不同的VNI,网关GW上记录有所有与其进行通信连接的VM的地址信息(地址信息包括MAC地址和/或IP地址)与GW所属VNI以及EVPN实例(EVPN instance,EVI)的对应关系。在一个实施例中,第一网关IP地址信息为第一网关的VXLAN隧道终点(VXLAN Tunnel End Point,VTEP)地址信息,在一个VXLAN隧道的两端存在同一个广播域的两个部分,这两个部分可以用同一个VNI来标识,也可以用不同的VNI来标识。同时,第一网关上包括第一VTEP,第一VTEP是一个虚拟实体,它是第一VXLAN隧道的一个端点。第一VXLAN隧道是GW1和PE2之间的隧道,第一VXLAN隧道的另一个端点可以使第二VTEP,位于PE2上。第二VTEP同时还是第二VXLAN隧道的端点,第二VXLAN隧道位于PE2和GW2之间。在GW2上还存在第二VXLAN隧道的另一个端点。所述第一网关的IP地址是所述第一VTEP的IP地址,本文下述实施例不再赘述。在一个实施例中,第一网关将生成的路由消息发送给所有与其进行通信连接的PE。在一个实施例中,路由消息为边界网关协议(Border GatewayProtocol,BGP)EVPN报文,而该BGP EVPN报文是由RFC7432定义的,本文不再赘述。

操作602,所述第一PE通过对所述第一路由消息进行处理而获得第二路由消息,其中对所述第一路由消息的处理包括将所述第一路由消息中的所述第一VNI和所述第一VTEP的IP地址转移至所述第一路由消息的第一扩展部分中,向所述第一路由消息添加为第二PE分配的第一MPLS标签,以及向所述第一路由消息添加所述第一PE的IP地址。

在本发明实施例中,第一PE在接收到第一路由消息后,将第一路由消息进行处理。具体处理过程如下:

1)第一PE将路由消息中的第一VNI替换为第一MPLS标签。具体的,在本发明实施例中,第一PE在接收到路由消息后,查找本地是否已存在与该第一路由消息中的第一网关地址信息对应的第一MPLS标签。若不存在,则需要分配第一MPLS标签。具体的MPLS标签分配过程可参照现有技术实施例中的技术方案,本发明不再赘述。在本发明的实施例中,第一PE分配的第一MPLS标签为BGP EVPN标签。若存在,则可以使用所述第一MPLS标签。

2)第一PE将第一路由消息中的第一网关的地址信息替换为第一PE的地址信息。具体的,在本发明的实施例中,第一PE的地址信息为第一PE用于在骨干网中进行通信的地址信息,以下简称第一PE的IP地址。

3)第一PE向路由消息中增加扩展部分,该扩展部分可以是一个字段,也可以是多个扩展字段,然后将第一VNI以及第一VTEP的IP地址信息转移至扩展字段。具体的,在本发明的实施例中,第一PE向替换协议内容后的路由消息增加扩展字段。随后,将第一VNI与第一VTEP的IP地址信息写入扩展字段中,从而构成具有扩展字段的新的路由消息结构。通过该扩展字段,第一PE可将VNI以及第一VETP的IP地址信息告知第二PE,则第一PE无需再本地存储与VNI相关的一些映射关系,有效降低了第一PE的设备压力,延长设备使用寿命,以节省开销。

操作603,第一PE将第二路由消息发送给第二PE。

操作604,所述第二PE根据所述第二路由消息获得第三路由消息,其中所述第三路由消息包括所述第一VM的地址、第二PE的IP地址和第二VNI,所述第二VNI用于标识所述广播域的第二部分。

在本发明的实施例中,一个对第二路由消息进行处理获得所述的第三路由消息的例子可以包括以下内容。

1)去除第二路由消息的扩展字段与第一MPLS标签。具体的,在本发明的实施例中,第二PE可以在记录扩展字段中的信息将扩展字段删除。并且,第二PE去除第二路由消息中的第一MPLS标签,例如,将第二路由消息中写有第一MPLS标签的字段置空。

2)第二PE使第二路由消息携带第二VNI。具体的,在本发明的实施例中,若第二PE对应的第二VNI与第一PE对应的第一VNI相同,即第二PE所属的广播域的第二部分和第一PE所述的广播域的第一部分是同一个广播域的同一个部分,则第二路由消息携带的第二VNI的值和所述第一VNI的值是相同的。若第二PE对应的第二VNI与第一PE对应的第一VNI不相同,即,第二PE所属的广播域的第二部分和第一PE所属的广播域的第一部分不同,则第二PE将第二VNI添加到第二路由消息中。在本发明的实施例中,第二PE可以将第二VNI写入保存第一MPLS标签对应的字段中,即将第二VNI替代第一MPLS标签。

3)添加第二PE的地址信息。

第二PE通过对第二路由消息进行上述处理,从而实现PE间控制面消息的传输,实现了PE间可通过具有扩展协议字段的新路由消息结构进行通信。并且,通过记录第一VNI和/或第二VNI、第一MPLS标签以及第一网关的地址信息之间的对应关系,实现后续下行流量转发过程。

操作605,所述第二PE保存第一对应关系,所述第一对应关系包括第一VNI、第一网关的IP地址和所述第一MPLS标签。

在一个实施例中,第二PE确定第二PE和第一PE是否属于同一个广播域的同一个部分。。具体的,与网关相同,PE上同样维护有本PE对应的VNI。第二PE可通过查询本地是否存在路由消息中的VNI,即第一VNI,从而确认第二PE与第一PE是否具有相同的VNI,即属于同一广播域的同一个部分在一个实施例中,若第二PE和第一PE不属于同一个广播域的同一个部分,那么与第二PE对应一个与第一VNI不同的的第二VNI。在这种情况下,第二PE保存第一VNI、第二VNI、第一MPLS标签以及第一网关的地址信息之间的对应关系,并在后续的重新封装过程中将与第二PE对应的第二VNI封装到路由消息中。在另一个实施例中,若第二PE查询到本地存在第一VNI,则说明第二PE和第一PE属于同一个广播域的同一个部分。在这种情况下,第二PE记录第一VNI、第一MPLS标签、第一网关的地址信息之间的对应关系。操作606,第二PE将第三路由消息转发给第二网关。

操作607,第二网关接收到第三路由消息后,在本地维护与第三路由消息对应的路由信息。即,第二网关在本地路由表中记录VM的地址信息、第一VNI或第二VNI、第二PE的地址信息与EVI之间的对应关系,从而通过该对应关系指导下行流量转发。

具体的,在一个实施例中,若第二网关上的第二VM向第一网关上的第一VM发送下行数据报文,则第二网关接收第二VM的下行数据报文,其中,在一个实施例中,该下行数据报文中包括但不限于:数据部分(即原始二层数据包)以及地址信息,其中,地址信息包括:目的地址(即第一VM的MAC地址和IP地址)以及源地址(即第二VM的MAC地址和IP地址)。

随后,第二网关可以对下行数据报文进行UDP封装。具体的,在一个实施例中,第二网关根据目的地址查询本地路由表,从而获取与该目的地址对应的相关信息。在本发明实施例中,第二网关在控制面消息传输过程中,在本地记录有第一VM的地址信息、第一VNI或第二VNI、第二PE的地址信息与EVI之间的对应关系。则,第二网关可通过将下行数据报文中的目的地址与本地路由表中的路由信息进行匹配,从而确定该数据报文命中本地路由信息,第二网关读取已记录的第一VNI或第二VNI、第二PE的地址信息。接着,第二网关将第一VNI或第二VNI、第二PE的地址信息封装到下行数据报文中,以得到UDP数据包,即本发明实施例中的第一数据报文。

接着,第二网关依据第二PE的地址信息,将封装后的第一数据报文发送给第二PE。

操作608,所述第二PE从第二网关接收第一数据报文,所述第一数据报文携带所述第二VNI。所述第一数据报文可以是一个UDP数据报文,也可以是其他类型的数据报文。

操作609,所述第二PE根据所述第二VNI和所述第一对应关系为所述第一数据报文确定所述第一网关的IP地址和所述第一MPLS标签,并根据所述第一网关的IP地址和所述第一MPLS标签对所述第一数据报文进行处理得到第二数据报文。所述第二数据报文携带所述第一VNI,所述第一网关的IP地址、所述第一MPLS标签和所述第一数据报文的内层报文中的数据负载,所述第二数据报文是封装有所述第一MPLS标签的MPLS数据报文

在一个实施例中,第二PE接收第二网关发送的第一数据报文后,对第一数据报文进行overlay解封装。具体的,第二PE去掉第一数据报文的外层地址信息,其中,该外层地址信息可以是第二PE的IP地址,例如第二VTEP的的IP地址。进一步地,第二PE获取数据报文中的第二VNI,并将其从第一数据报文中删除,实现overlay解封装。

第二PE还要根据第一数据报文中携带的第二VNI和第二PE中保存的第一VNI和第二VNI的对应关系确定第一VNI,并且用第一VNI替换第二VNI。但是当第一VNI和第二VNI相同时,可以将第二VNI视为第一VNI,不必须进行替换。进一步地,第二PE根据第一VNI和所述第一对应关系确定第一网关的IP地址和第一MPLS标签,其中第一网关的IP地址可以为第一网关中的第一VTEP的IP地址。在得到第一网关的IP地址和第一MPLS标签后,第二PE将第一网关的IP地址添加到第一数据报文中,并且为第一数据报文封装第一MPLS标签,得到第二数据报文。当第一PE和第二PE之间存在P节点时,第二PE还需要为第二数据报文封装P节点分配的公网IGP MPLS标签,以便使第二数据报文经过P节点传至第一PE。

由此可见,本发明通过将数据包封装为携带有MPLS标签、VNI信息以及第一网关的地址信息的MPLS数据包,从而实现提前在第二PE上进行overlay封装,使第一PE无需具备该功能,即可实现下行数据报文的传输流程,使新PE与旧PE能够共存,从而提升了资源利用率。

操作610,所述第一PE从所述第二PE接收所述第二数据报文并通过对所述第二数据报文进行处理而获得第三数据报文,其中对所述第二数据报文的处理包括删除所述MPLS数据报文中的所述第一MPLS标签。。

具体的,在本发明的实施例中,第二PE通过与第一PE之间的MPLS通道,将MPLS数据报文发送给第一PE。在一个实施例中,若第一PE与第二PE之间存在P节点,则第二PE将MPLS数据报文发送给P节点,P节点将公网IGP MPLS标签去掉后,再依据数据报文中的MPLS标签,即EVPN MPLS标签,将MPLS数据报文转发给第一PE。P节点的具体转发过程可参照现有技术实施例中的技术方案,本发明不再赘述。

其中,在本发明的实施例中,第一PE接收到第二数据报文后,读取第二数据报文中携带的第一网关的IP地址。接着,第一PE将第一网关的IP地址与本地路由表中的路由信息进行匹配,以确定该第一网关的IP地址是否命中本地路由表中的路由信息。若匹配成功,则第一PE可将基于第二数据报文得到的第三数据报文转发给第一网关。在本发明的实施例中,第一PE上预先建立有本地路由表,本地路由表中维护有对应于第一网关的路由信息,该路由信息包括第一网关的IP地址以及对应接口。

可选地,在一个实施例中,第一PE在将MPLS数据报文进行转发之前,去掉MPLS数据报文中的MPLS标签,以获取UDP数据包,即,可用于在第一网关与第一PE之间通过IP协议传输的报文。该报文中源地址(第二VM的地址信息)、目的地址(第一VM的地址信息)、第一VNI以及第一网关的IP地址。

操作611,所述第一PE向所述第一网关发送所述第三数据报文。

具体的,第一PE可将第一网关的地址信息与本地预存的路由表中的路由信息进行匹配,若匹配成功,则第一PE将去掉MPLS标签后的MPLS数据报文转发给第一网关。所述第一PE可以根据所述MPLS标签为第三数据报文确定一个出端口,并通过所述出端口向所述第一网关发送所述第三报文。

由此可见,第一PE无需对接收到的报文进行overlay封装等处理,即可实现下行数据报文的转发过程,从而实现旧PE与新PE的共存,有效提高了资源利用率。

在本发明的实施例中,第一网关接收到去掉MPLS标签后的MPLS数据报文,即第三数据报文,接着,第一网关对第三数据报文进行后续操作,例如删除第一VNI,并将经过操作后的转发给第一VM。

本发明实施例提供的技术方案中,一方面,在第一PE向第二PE进行报文传输的过程中,向路由消息中添加扩展字段,从而能够第一PE无需存储MPLS标签与路由信息之间的对应关系,可直接将路由信息写入扩展字段后,发送给第二PE,有效降低了第一PE端的设备压力。另一方面,第二PE可通过扩展字段中的内容,获取到路由信息,从而在进行下行数据报文转发的过程中直接将下行数据报文封装成MPLS数据报文,即在第二PE端实现对下行数据报文的overlay封装,使第一PE无需具备该功能,即可实现下行数据报文的传输流程,进而实现旧PE与新PE的共存,有效提升了资源利用率。

上述主要从第一PE和第二PE交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,PE(例如第一PE、第二PE)为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明中所公开的实施例描述的各示例的单元及算法操作,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。

本发明实施例可以根据上述方法示例对PE(例如第一PE、第二PE)进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

例如,上述集成的单元可以是一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述实施例所述的报文传输方法。

再例如,上述集成的单元还可以包含一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述实施例权利所述的报文传输方法。

在采用集成的单元的情况下,图7A示出了上述实施例中所涉及的PE的一种可能的结构示意图。PE700包括:处理单元702和通信单元703。处理单元702用于对PE700的动作进行控制管理。例如,当PE700为第一PE时,处理单元702用于支持PE700执行图6中的操作601、操作604和/或用于执行本文所描述的技术的其它操作。当PE700为第二PE时,处理单元用于支持PE700执行图6中的操作602、操作603和/或用于执行本文所描述的技术的其它操作。通信单元703用于支持PE700与其它PE的通信。PE700还可以包括存储单元701用于,存储PE700的程序代码和数据。

其中,处理单元702可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元703可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如第一PE与第二PE之间的接口。存储单元701可以是存储器。

当处理单元702为处理器,通信单元703为通信接口,存储单元701为存储器时,本申请实施例所涉及的PE可以为图7B所示的PE。

参阅图7B所示,该PE710包括:处理器712、通信接口713、存储器711。可选地,PE710还可以包括总线714。其中,通信接口713、处理器77以及存储器711可以通过总线714相互连接;总线714可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。所述总线714可以分为地址总线、数据总线、控制总线等。为便于表示,图7B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

上述图7A或图7B所示的PE可以是第一PE或第二PE。

结合本申请实施例公开内容所描述的方法或者算法的操作可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于PE中。当然,处理器和存储介质也可以作为分立组件存在于PE中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1