报文转发方法和装置转让专利

申请号 : CN201711447979.7

文献号 : CN108199963B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄李伟王伟

申请人 : 新华三技术有限公司

摘要 :

本公开涉及一种报文转发方法和装置。该方法包括:接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,在二层VXLAN网络标识符对应的MAC表中查找第一VM的MAC地址对应的出接口;如果出接口为第一VTEP,向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文。本公开支持二层EVPN业务直接接入三层EVPN业务。

权利要求 :

1.一种报文转发方法,其特征在于,应用于以太网虚拟专用网络EVPN的边缘设备ED中,所述方法包括:接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;

在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;

如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口;

如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。

2.根据权利要求1所述的方法,其特征在于,还包括:

接收来自第一VTEP的第三VXLAN报文,所述第三VXLAN报文包括所要访问的第二VM的目的IP地址、二层VXLAN网络标识符和本端ED用于进行二层转发的网关MAC地址;

如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第二VM的目的IP地址的出接口;

如果第二VM的目的IP地址的出接口为对端ED,则向对端ED转发由第三VXLAN报文重新封装得到第四VXLAN报文,所述第四VXLAN报文包括三层VXLAN网络标识符、第二VM的目的IP地址和对端ED用于进行三层转发的网关IP地址。

3.根据权利要求1所述的方法,其特征在于,还包括:

接收来自第一VTEP的第一EVPN路由,第一EVPN路由包括二层VXLAN网络标识符、第一VM的MAC表项和第一VM的ARP表项;

将第一VM的MAC表项下发到与所述二层VXLAN网络标识符对应的MAC表中,且出接口为第一VTEP;

如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;

向对端ED发送根据所述第一EVPN路由得到的第二EVPN路由,所述第二EVPN路由包括第一VM的MAC表项、第一VM的ARP表项和三层VXLAN网络标识符。

4.根据权利要求1所述的方法,其特征在于,还包括:

接收来自对端ED的第三EVPN路由,所述第三EVPN路由包括三层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项;

将第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;

如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则将第二VM的MAC表项下发到二层VXLAN网络标识符对应的MAC表中;

向第一VTEP发送根据第三EVPN路由得到的第四EVPN路由,所述第四EVPN路由包括二层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项。

5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:

配置二层VXLAN网络标识符与三层VXLAN网络标识符的映射关系,二层VXLAN网络标识符为与本端ED连接的第一VTEP支持的二层EVPN业务对应的标识符,三层VXLAN网络标识符为本端ED和对端ED支持的三层EVPN业务对应的标识符。

6.一种报文转发装置,其特征在于,应用于以太网虚拟专用网络EVPN的边缘设备ED中,所述装置包括:第一接收模块,用于接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;

第一查找模块,用于在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;

第二查找模块,用于如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口;

第一发送模块,用于如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。

7.根据权利要求6所述的装置,其特征在于,还包括:

第二接收模块,用于接收来自第一VTEP的第三VXLAN报文,所述第三VXLAN报文包括所要访问的第二VM的目的IP地址、二层VXLAN网络标识符和本端ED用于进行二层转发的网关MAC地址;

第三查找模块,用于如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第二VM的目的IP地址的出接口;

第二发送模块,用于如果第二VM的目的IP地址的出接口为对端ED,则向对端ED转发由第三VXLAN报文重新封装得到第四VXLAN报文,所述第四VXLAN报文包括三层VXLAN网络标识符、第二VM的目的IP地址和对端ED用于进行三层转发的网关IP地址。

8.根据权利要求6所述的装置,其特征在于,还包括:

第三接收模块,用于接收来自第一VTEP的第一EVPN路由,第一EVPN路由包括二层VXLAN网络标识符、第一VM的MAC表项和第一VM的ARP表项;

第一表项下发模块,用于将第一VM的MAC表项下发到与所述二层VXLAN网络标识符对应的MAC表中,且出接口为第一VTEP;

第二表项下发模块,用于如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;

第三发送模块,用于向对端ED发送根据所述第一EVPN路由得到的第二EVPN路由,所述第二EVPN路由包括第一VM的MAC表项、第一VM的ARP表项和三层VXLAN网络标识符。

9.根据权利要求6所述的装置,其特征在于,还包括:

第四接收模块,用于接收来自对端ED的第三EVPN路由,所述第三EVPN路由包括三层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项;

第三表项下发模块,用于将第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;

第四表项下发模块,用于如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则将第二VM的MAC表项下发到二层VXLAN网络标识符对应的MAC表中;

第四发送模块,用于向第一VTEP发送根据第三EVPN路由得到的第四EVPN路由,所述第四EVPN路由包括二层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项。

10.根据权利要求6至9中任一项所述的装置,其特征在于,还包括:

配置模块,用于配置二层VXLAN网络标识符与三层VXLAN网络标识符的映射关系,二层VXLAN网络标识符为与本端ED连接的第一VTEP支持的二层EVPN业务对应的标识符,三层VXLAN网络标识符为本端ED和对端ED支持的三层EVPN业务对应的标识符。

说明书 :

报文转发方法和装置

技术领域

[0001] 本公开涉及通信技术领域,尤其涉及一种报文转发方法和装置。

背景技术

[0002] VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN主要应用于数据中心网络。
[0003] VXLAN具有如下特点:
[0004] a、支持大量的租户:使用24位的标识符,最多可支持2的24次方(16777216)个VXLAN,使支持的租户数目大规模增加,解决了传统二层网络VLAN资源不足的问题。
[0005] b、易于维护:基于IP网络组建大二层网络,使得网络部署和维护更加容易,并且可以充分地利用现有的IP网络技术,例如利用等价路由进行负载分担等;只有IP核心网络的边缘设备需要进行VXLAN处理,网络中间设备只需根据IP头转发报文,降低了网络部署的难度和费用。
[0006] VXLAN技术将已有的三层物理网络作为Underlay网络,在其上构建出虚拟的二层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。如图1所示:
[0007] 图1是VXLAN的典型网络模型,包括如下几部分:
[0008] VM(Virtual Machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符),其长度为24比特。
[0009] VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。
[0010] VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。
[0011] 核心设备:IP核心网络中的设备。核心设备不参与VXLAN处理,仅需要根据封装后报文的目的IP地址对报文进行三层转发。
[0012] VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看做是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。
[0013] AC(Attachment Circuit,接入电路):VTEP连接本地站点的物理电路或虚拟电路。在VTEP上,与VSI关联的三层接口或以太网服务实例(service instance)称为AC。其中,以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则,用来匹配从该二层以太网接口上接收到的数据帧。例如,1个二层物理口可以配置服务实例。
[0014] EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种二层VPN技术,控制平面采用MP-BGP通告EVPN路由信息,数据平面采用VXLAN封装方式转发报文。EVPN相比较VXLAN的优势在于:
[0015] A、简化配置:通过MP-BGP实现VTEP自动发现、VXLAN隧道自动建立、VXLAN隧道与VXLAN自动关联,无需用户手工配置,降低网络部署难度。
[0016] B、分离控制平面与数据平面:控制平面负责发布路由信息,数据平面负责转发报文,分工明确,易于管理。

发明内容

[0017] 有鉴于此,本公开提出了一种报文转发方法和装置。
[0018] 根据本公开的一方面,提供了一种报文转发方法,应用于以太网虚拟专用网络EVPN的边缘设备ED中,所述方法包括:
[0019] 接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;
[0020] 在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;
[0021] 如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口;
[0022] 如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。
[0023] 根据本公开的另一方面,提供了一种报文转发装置,应用于以太网虚拟专用网络EVPN的边缘设备ED中,所述装置包括:
[0024] 第一接收模块,用于接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;
[0025] 第一查找模块,用于在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;
[0026] 第二查找模块,用于如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口;
[0027] 第一发送模块,用于如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。
[0028] 在本公开中,在报文转发过程中基于三层VXLAN网络标识符和二层VXLAN网络标识符查找路由,可以支持二层EVPN业务直接接入三层EVPN业务。即使VTEP只支持二层EVPN业务,也可以通过EVPN的三层网关进行多段互通。
[0029] 根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

[0030] 包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
[0031] 图1是VXLAN的典型网络模型的示意图。
[0032] 图2是EVPN跨数据中心组网三层组网模型的示意图。
[0033] 图3示出根据本公开一实施例的报文转发方法的流程图。
[0034] 图4示出根据本公开另一实施例的报文转发方法的流程图。
[0035] 图5示出根据本公开另一实施例的报文转发方法的流程图。
[0036] 图6示出根据本公开另一实施例的报文转发方法的流程图。
[0037] 图7示出根据本公开另一实施例的报文转发方法的应用实例的示意图。
[0038] 图8示出根据本公开一实施例的报文转发装置的结构示意图。
[0039] 图9示出根据本公开另一实施例的报文转发装置的结构示意图。
[0040] 图10示出根据本公开另一实施例的报文转发装置的结构示意图。
[0041] 图11示出根据本公开另一实施例的报文转发装置的结构示意图。
[0042] 图12示出根据本公开另一实施例的报文转发装置的结构示意图。

具体实施方式

[0043] 以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0044] 在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0045] 另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
[0046] 目前对于EVPN跨数据中心组网三层组网模型,虚拟机全部接入网关设备进行三层转发,即所有的接入设备都得支持三层转发网关功能,如图2的组网所示。当VM1需要在两个数据中心之间进行互访时,需要在本数据中心内部进行L3VNI(三层VXLAN网络标识符)的转发。即使在VM1的接入设备GW1和数据中心的边缘设备(Edge Device,ED)ED1之间存在对应的L2VNI的连接,还是走三层转发。也就是说,如果在两个数据中心的边缘设备上面都配置网关(也称为起网关)的话,需要内部所有的接入设备都支持三层网关的功能。即使本数据中心内部运用的较多的是二层的业务,还是要配置三层网关进行业务的转发。
[0047] 针对以上的问题,本公开在EVPN三层网关组网中,提出了二层EVPN业务直接接入三层EVPN业务的转发模型,以及新的EVPN路由同步和表项下发机制。
[0048] 图3示出根据本公开一实施例的报文转发方法的流程图。如图3所示,该方法应用于EVPN的ED中。该方法包括:
[0049] 步骤101、接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址。
[0050] 步骤102、在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址。
[0051] 步骤103、如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口。
[0052] 步骤104、如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。
[0053] 在一种示例中,本端ED与对端ED支持三层EVPN业务,本端ED与第一VTEP连接,第一VTEP支持二层EVPN业务,第一VTEP与第一VM连接。对端ED与第二VTEP连接,第二VTEP支持二层EVPN业务,第二VTEP与第二VM连接。
[0054] 在一种可能的实现方式中,可以在本端ED上配置二层VXLAN网络标识符与三层VXLAN网络标识符的映射关系。其中,二层VXLAN网络标识符为与本端ED连接的第一VTEP支持的二层EVPN业务对应的标识符。三层VXLAN网络标识符为本端ED和对端ED支持的三层EVPN业务对应的标识符。此外,还可以在对端ED上配置另一二层VXLAN网络标识符与三层VXLAN网络标识符的映射关系。其中,另一二层VXLAN网络标识符为与对端ED连接的第二VTEP支持的二层EVPN业务对应的标识符。
[0055] 此外,在本端ED上可以为二层VXLAN网络标识符对应配置用于进行二层转发的网关IP地址,可以为三层VXLAN网络标识符对应配置用于进行三层转发的网关IP地址。在对端ED上可以为另一二层VXLAN网络标识符对应配置用于进行二层转发的网关IP地址,可以为三层VXLAN网络标识符对应配置用于进行三层转发的网关IP地址。
[0056] 在第二VM请求访问第一VM时,第二VM向第二VTEP发送报文。第二VTEP对报文进行二层封装。在封装后的VXLAN报文中包括的目的IP地址是第一VM的IP地址,目的MAC地址是对端ED上的用于进行二层转发的网关IP地址对应的MAC地址。封装后的VXLAN报文中还包括对端ED上的另一二层VXLAN网络标识符(即第二VTEP支持的二层EVPN业务对应的标识符)。第二VTEP将封装后的VXLAN报文发送给对端ED。
[0057] 对端ED收到来自第二VTEP的VXLAN报文后,在对端ED上终结二层转发。如果对端ED上的另一二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第一VM的目的IP地址的出接口。如果查找到第一VM的目的IP地址的出接口为VXLAN隧道,隧道的目的地址为本端ED(例如本端ED上用于进行三层转发的网关IP地址),则第一VM的目的IP地址的出接口为本端ED。然后,对端ED可以向本端ED转发重新封装得到的第一VXLAN报文。第一VXLAN报文中可以包括第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址。
[0058] 本端ED接收到来自对端ED的第一VXLAN报文后,如果解析得到本端ED用于进行三层转发的网关IP地址,则在本端ED上终结三层转发。在三层VXLAN网络标识符对应的ARP表中,可以根据第一VM的目的IP地址查找到第一VM的MAC地址。
[0059] 如果第一VXLAN报文中的三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则可以在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口。如果查找到出接口为VXLAN隧道,隧道的目的地址为第一VTEP,则第一VM的MAC地址对应的出接口为第一VTEP。然后,可以向第一VTEP转发第二VXLAN报文。第二VXLAN报文中可以包括第一VTEP支持的二层VXLAN网络标识符和第一VM的MAC地址。
[0060] 第一VTEP收到第二VXLAN报文后,进行VXLAN报文的解封装,并在二层VXLAN网络标识符对应的MAC表中查找到第一VM的MAC地址对应的出接口为与第一VM连接的接口。通过该接口向第一VM转发报文。
[0061] 本公开中,在本端ED接收到来自对端ED的VXLAN报文后终结三层转发,在三层VXLAN网络标识符对应的ARP表中查找到第一VM的MAC地址,如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,还可以在二层VXLAN网络标识符对应的MAC表中查找到第一VM的MAC地址对应的出接口。因此,在报文转发过程中基于三层VXLAN网络标识符和二层VXLAN网络标识符查找路由,可以支持二层EVPN业务直接接入三层EVPN业务。进一步地,即使VTEP只支持二层EVPN业务,也可以通过EVPN的三层网关进行多段互通。
[0062] 图4示出根据本公开另一实施例的报文转发方法的流程图。如图4所示,该方法应用于EVPN的ED中。与上述实施例的不同之处在于,该方法还包括:
[0063] 步骤201、接收来自第一VTEP的第三VXLAN报文,所述第三VXLAN报文包括所要访问的第二VM的目的IP地址、二层VXLAN网络标识符和本端ED用于进行二层转发的网关MAC地址。
[0064] 步骤202、如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第二VM的目的IP地址的出接口。
[0065] 步骤203、如果第二VM的目的IP地址的出接口为对端ED,则向对端ED转发由第三VXLAN报文重新封装得到第四VXLAN报文,所述第四VXLAN报文包括三层VXLAN网络标识符、第二VM的目的IP地址和对端ED用于进行三层转发的网关IP地址。
[0066] 在一种示例中,在第一VM请求访问第二VM时,第一VM向第一VTEP发送报文。第一VTEP对报文进行二层封装。在封装后的第三VXLAN报文中包括的目的IP地址是第二VM的IP地址,目的MAC地址是本端ED上的用于进行二层转发的网关IP地址对应的MAC地址。第三VXLAN报文中还包括本端ED上的二层VXLAN网络标识符(即第一VTEP支持的二层EVPN业务对应的标识符)。第一VTEP将封装后的VXLAN报文发送给本端ED。
[0067] 本端ED收到来自第一VTEP的第三VXLAN报文后,如果解析得到本端ED用于进行二层转发的网关MAC地址,则在本端ED上终结二层转发。
[0068] 如果第三VXLAN报文中的第一VTEP支持的二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第二VM的目的IP地址的出接口。如果查找到出接口为VXLAN隧道,隧道的目的地址为对端ED(例如对端ED上用于进行三层转发的网关IP地址),则第二VM的目的IP地址的出接口为对端ED。然后,可以向对端ED转发第四VXLAN报文。第四VXLAN报文中可以包括三层VXLAN网络标识符、第二VM的目的IP地址和对端ED用于进行三层转发的网关IP地址。
[0069] 由对端ED通过第二VTEP向第二VM转发报文。其中,对端ED收到第四VXLAN报文后,根据其中的对端ED用于进行三层转发的网关IP地址,在对端ED上终结三层转发。此外,在三层VXLAN网络标识符对应的ARP表中,可以根据第二VM的目的IP地址查找到第二VM的MAC地址。如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则可以在二层VXLAN网络标识符对应的MAC表中,查找第二VM的MAC地址对应的出接口。如果查找到出接口为VXLAN隧道,隧道的目的地址为第二VTEP,则第二VM的MAC地址对应的出接口为第二VTEP。然后,可以向第二VTEP转发重新封装的VXLAN报文。该重新封装的VXLAN报文中可以包括第二VTEP支持的二层VXLAN网络标识符和第二VM的MAC地址。
[0070] 第二VTEP收到VXLAN报文后,进行VXLAN报文的解封装,并在自身的二层VXLAN网络标识符对应的MAC表中查找到第二VM的MAC地址对应的出接口为与第二VM连接的接口。通过该接口向第二VM转发报文。
[0071] 本公开中,在本端ED收到来自VTEP的VXLAN报文后终结二层转发,如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,还可以在三层VXLAN网络标识符对应的ARP表中查找到第二VM的目的IP地址的出接口,从而向对端ED转发重新封装了三层VXLAN网络标识符的VXLAN报文。因此,在报文转发过程中基于三层VXLAN网络标识符和二层VXLAN网络标识符查找路由,可以支持二层EVPN业务直接接入三层EVPN业务。进一步地,即使VTEP只支持二层EVPN业务,也可以通过EVPN的三层网关进行多段互通。
[0072] 图5示出根据本公开另一实施例的报文转发方法的流程图。如图5所示,该方法应用于EVPN的ED中。与上述实施例的不同之处在于,该方法还包括:
[0073] 步骤301、接收来自第一VTEP的第一EVPN路由,第一EVPN路由包括二层VXLAN网络标识符、第一VM的MAC表项和第一VM的ARP表项。
[0074] 步骤302、将第一VM的MAC表项下发到与所述二层VXLAN网络标识符对应的MAC表中,且出接口为第一VTEP。
[0075] 步骤303、如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中。
[0076] 步骤304、向对端ED发送根据所述第一EVPN路由得到的第二EVPN路由,所述第二EVPN路由包括第一VM的MAC表项、第一VM的ARP表项和三层VXLAN网络标识符。
[0077] 在一种示例中,在报文转发之前,第一VM上线之后,可以向第一VTEP、本端ED、对端ED、第二VTEP同步路由。
[0078] 本端ED收到来自第一VTEP的第一EVPN路由。第一EVPN路由中包括第一VTEP从第一VM中学习到的第一VM的MAC表项和ARP表项。第一EVPN路由中包括的二层VXLAN网络标识符是第一VTEP支持的二层EVPN业务对应的标识符。在本端ED上,将第一VM的MAC表项下发到与该二层VXLAN网络标识符对应的MAC表中,且第一VM的MAC表项的出接口为第一VTEP。根据预先配置的映射关系,如果查找到与二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中。
[0079] 本端ED向对端ED同步第二EVPN路由。在第二EVPN路由中,将二层VXLAN网络标识符改成三层VXLAN网络标识符,并且同步第一VM的MAC表项和ARP表项。
[0080] 然后,由对端ED将第一VM的MAC表项和ARP表项同步给第二VTEP。具体而言,对端ED收到来自本端ED第二EVPN路由后,将其中的第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中,且出接口为VXLAN隧道,VXLAN隧道的目的地址为本端ED。如果三层VXLAN网络标识符有对应的第二VTEP支持的另一二层VXLAN网络标识符,则将第一VM的MAC表项下发到该另一二层VXLAN网络标识符对应的MAC表中。对端ED向第二VTEP同步第一VM的EVPN路由。在同步的第一VM的EVPN路由中,将三层VXLAN网络标识符改成第二VTEP支持的另一二层VXLAN网络标识符,并且同步第一VM的MAC表项和ARP表项。
[0081] 本公开中,在本端ED上将来自VTEP的EVPN路由中第一VM的MAC表项下发到与第一VTEP支持的二层VXLAN网络标识符对应的MAC表中,第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中。由于基于三层VXLAN网络标识符和二层VXLAN网络标识符进行路由同步,在后续向第一VM转发报文的过程中,基于三层VXLAN网络标识符和二层VXLAN网络标识符查找路由,可以支持二层EVPN业务直接接入三层EVPN业务,通过EVPN的三层网关进行多段互通。
[0082] 图6示出根据本公开另一实施例的报文转发方法的流程图。如图6所示,该方法应用于EVPN的ED中。与上述实施例的不同之处在于,该方法还包括:
[0083] 步骤401、接收来自对端ED的第三EVPN路由,所述第三EVPN路由包括三层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项。
[0084] 步骤402、将第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中。
[0085] 步骤403、如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则将第二VM的MAC表项下发到二层VXLAN网络标识符对应的MAC表中。
[0086] 步骤404、向第一VTEP发送根据第三EVPN路由得到的第四EVPN路由,所述第四EVPN路由包括二层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项。
[0087] 在一种示例中,在报文转发之前,第二VM上线之后,可以向第二VTEP、对端ED、本端ED、第一VTEP同步路由。
[0088] 第二VTEP从第二VM中学习到的第二VM的MAC表项和ARP表项后,向对端ED同步EVPN路由。该EVPN路由中包括第二VTEP支持的二层EVPN业务对应的标识符(简称:另一二层VXLAN网络标识符)。在对端ED上,将第二VM的MAC表项下发到与该另一二层VXLAN网络标识符对应的MAC表中,且第二VM的MAC表项的出接口为第二VTEP。根据预先配置的映射关系,如果查找到与另一二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中。然后对端ED向本端ED同步第三EVPN路由。
[0089] 本端ED收到来自对端ED的第三EVPN路由后,将其中的第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中,且出接口为VXLAN隧道,VXLAN隧道的目的地址为对端ED。
[0090] 如果三层VXLAN网络标识符有对应的第一VTEP支持的二层VXLAN网络标识符,则将第二VM的MAC表项下发到该二层VXLAN网络标识符对应的MAC表中。
[0091] 本端ED向第一VTEP同步第二VM的EVPN路由。在同步的第二VM的EVPN路由中,将三层VXLAN网络标识符改成二层VXLAN网络标识符,并且同步第二VM的MAC表项和ARP表项。
[0092] 本公开中,在本端ED上,将来自对端ED的EVPN路由中第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中,第二VM的MAC表项下发到第一VTEP支持的二层VXLAN网络标识符对应的MAC表中。由于基于三层VXLAN网络标识符和二层VXLAN网络标识符进行路由同步,在后续向第二VM转发报文的过程中,基于三层VXLAN网络标识符和二层VXLAN网络标识符查找路由,可以支持二层EVPN业务直接接入三层EVPN业务,通过EVPN的三层网关进行多段互通。
[0093] 图7示出根据本公开另一实施例的报文转发方法的应用实例的示意图。参见图7,本公开的报文转发方法的步骤包括:
[0094] 步骤1、VTEP1和VTEP 2设备支持二层EVPN业务,分别为VTEP1和VTEP2的二层EVPN业务配置对应的L2VNI(二层VXLAN网络标识符)。其中,VTEP1的L2VNI为100,VTEP2的L2VNI为200。
[0095] 步骤2、ED1是VM1所在的网络区域的网关设备,ED2是VM2所在的网络区域的网关设备。ED1和ED2上配置三层EVPN业务实现二者的互通。并且,ED1和ED2上配置二层EVPN业务,分别与VTEP1和VTEP2进行互通。其中,VTEP1配置的二层EVPN业务对应的L2VNI为100,VTEP2配置的二层EVPN业务对应的L2VNI为200。此外,在ED1和ED2上分别针对与VTEP1和VTEP2的互通业务配置网关IP地址(也可以认为是在ED1和ED2上分别起两个网关,每个网关具有对应的网关IP地址,用于分别支持二层EVPN业务和三层EVPN业务)。
[0096] 在一个示例中:
[0097] VM1的IP地址为100.1.1.2/24,MAC地址为1-1-1。
[0098] VTEP1接入的二层EVPN业务的L2VNI为100。
[0099] ED1对应的二层EVPN业务的L2VNI为100。在ED1上配置L2VNI对应的第一网关IP地址为100.1.1.1。
[0100] ED1上与ED2互通的三层EVPN业务的L3VNI为1000。在ED1上配置L3VNI对应的第二网关IP地址与第一网关IP地址不同。
[0101] 在ED1上面配置L2VNI与L3VNI对应的映射关系:L2VNI 100映射到L3VNI 1000。
[0102] 在ED2上面配置L2VNI与L3VNI对应的映射关系:L2VNI 200映射到L3VNI 1000。
[0103] ED2上与ED1互通的三层EVPN业务的L3VNI为1000。在ED2上配置L3VNI对应的第三网关IP地址,与下面配置的L2VNI对应的第四网关IP地址不同。
[0104] ED2对应的二层EVPN业务的L2VNI为200。在ED2上配置L2VNI对应的第四网关IP地址为200.1.1.1。
[0105] VTEP2接入的二层EVPN业务的L2VNI为200。
[0106] VM2地址的IP地址为100.1.1.2/24。
[0107] 步骤3、VM1上线之后,上报免费的ARP(Address Resolution Protocol,地址解析协议)给VTEP1,VTEP1在本地生成VM1的ARP抑制表项,下一跳指向VM1。VTEP1将VM1的ARP抑制表项同步给ED1。VTEP1将VM1的MAC地址1-1-1下发到L2VNI对应的MAC表,出接口为连接VM1的接口。VTEP1VM1的IP地址100.1.1.2/24和MAC地址1-1-1同步给ED1。
[0108] 步骤4、ED1在收到VTEP1同步过来的EVPN路由后,将VM1的MAC表项下发到第一网关IP地址对应的L2VNI对应的MAC表中,将VM1的ARP表项下发到第二网关IP地址对应的L3VNI对应的ARP表中。并且将VTEP1同步过来的EVPN路由再次向ED2设备反射同步。这时,需要将发向ED2的BGP EVPN路由中的L2VNI字段,根据配置的映射关系,修改成L3VNI 1000。
[0109] 步骤5、ED2在收到ED1发送过来的BGP EVPN路由之后,根据L3VNI1000反向MAPPING(映射)回L2VNI 200。ED2将VM1的MAC表项下发到第四网关IP地址对应的L2VNI 200对应的MAC表中,并将ARP表项下发到第三网关IP地址对应的L3VNI 1000的ARP表中。将ED1同步过来的EVPN路由再次向VTEP 2反射同步。这时,需要将向VETP 2发送的BGP EVPN路由中的L3VNI字段根据配置的映射关系,修改成L2VNI 200。
[0110] 步骤6、VTEP2收到ED2发送过来的BGP EVPN路由之后,则将VM1的ARP表项下发到L2VNI业务对应的ARP抑制表项,将VM1的MAC表项下发到L2VNI对应的MAC表项。
[0111] 步骤7、VM2上线,VTEP 2学习到VM2的IP/MAC转发表之后,向ED2、ED1、VTEP1同步路由的流程,与上面步骤3到步骤6类似。
[0112] 步骤8、VM2想要访问VM1。VTEP2收到来自VM2的业务报文之后,对业务报文进行L2VNI 200的VXLAN封装,向ED2进行转发封装了L2VNI 200的VXLAN报文。
[0113] 步骤9、ED2收到VTEP2发来的封装了L2VNI 200的VXLAN报文之后,解封装。如果发现内层的目的MAC是第四网关IP地址对应的MAC地址,则在ED2上终结二层转发。在(L2VNI 200对应的L3VNI 1000的)第三网关IP地址的ARP表中,查询到VM1的IP地址的出接口是ED1。
根据路由进行转发,在第四网关IP地址对应的MAC表中查到目的MAC是VM1的MAC地址。从ED2向ED1转发封装了L3VNI 1000和VM1的MAC地址的VXLAN报文。该VXLAN报文的目的IP地址是ED1的第二网关IP地址。
[0114] 步骤10、ED1收到了ED2发送过来的封装了L3VNI 1000的VXLAN报文,则根据第二网关IP地址将VXLAN报文进行解封装,终结三层转发。发现收到的VXLAN报文的目的MAC是VM1的MAC地址,并且携带L3VNI1000。根据L3VNI映射到L2VNI 100的MAC表中进行MAC表项的查询。查询到VM1的MAC表项的出接口为到VTEP 1的VXLAN隧道。将业务报文封装成包括L2VNI 100的VXLAN报文向VTEP1转发。
[0115] 步骤11、VTEP1在收到ED1发来的VXLAN报文之后,进行VXLAN报文的解封装。在L2VNI 100对应的MAC表中查询MAC表项,最后将报文发送给VM1。
[0116] 步骤12、VM1想要访问VM2,流程与步骤8到步骤11类似。
[0117] 本公开针对EVPN三层网关组网,提出了二层EVPN业务直接接入三层EVPN业务的转发模型,以及新的EVPN路由同步和表项下发机制。因此,即使纯二层EVPN业务也可以通过EVPN的三层网关进行多段互通。
[0118] 图8示出根据本公开一实施例的报文转发装置的结构示意图。如图8所示,该报文转发装置应用于EVPN的ED中,该装置包括:
[0119] 第一接收模块41,用于接收来自对端ED的第一VXLAN报文,所述第一VXLAN报文包括所要访问的第一VM的目的IP地址、三层VXLAN网络标识符和本端ED用于进行三层转发的网关IP地址;
[0120] 第一查找模块43,用于在三层VXLAN网络标识符对应的ARP表中,根据第一VM的目的IP地址查找对应的第一VM的MAC地址;
[0121] 第二查找模块45,用于如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则在二层VXLAN网络标识符对应的MAC表中,查找第一VM的MAC地址对应的出接口;
[0122] 第一发送模块47,用于如果第一VM的MAC地址对应的出接口为第一VTEP,则向第一VTEP转发由第一VXLAN报文重新封装得到的第二VXLAN报文,所述第二VXLAN报文包括二层VXLAN网络标识符和第一VM的MAC地址。
[0123] 图9示出根据本公开另一实施例的报文转发装置的结构示意图。如图9所示,该报文转发装置应用于EVPN的ED中,与上述实施例的不同之处在于,该装置还包括:
[0124] 第二接收模块51,用于接收来自第一VTEP的第三VXLAN报文,所述第三VXLAN报文包括所要访问的第二VM的目的IP地址、二层VXLAN网络标识符和本端ED用于进行二层转发的网关MAC地址;
[0125] 第三查找模块53,用于如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则在三层VXLAN网络标识符对应的ARP表中,查找第二VM的目的IP地址的出接口;
[0126] 第二发送模块55,用于如果第二VM的目的IP地址的出接口为对端ED,则向对端ED转发由第三VXLAN报文重新封装得到第四VXLAN报文,所述第四VXLAN报文包括三层VXLAN网络标识符、第二VM的目的IP地址和对端ED用于进行三层转发的网关IP地址。
[0127] 图10示出根据本公开另一实施例的报文转发装置的结构示意图。如图10所示,该报文转发装置应用于EVPN的ED中,与上述实施例的不同之处在于,该装置还包括:
[0128] 第三接收模块61,用于接收来自第一VTEP的第一EVPN路由,第一EVPN路由包括二层VXLAN网络标识符、第一VM的MAC表项和第一VM的ARP表项;
[0129] 第一表项下发模块63,用于将第一VM的MAC表项下发到与所述二层VXLAN网络标识符对应的MAC表中,且出接口为第一VTEP;
[0130] 第二表项下发模块65,用于如果二层VXLAN网络标识符有对应的三层VXLAN网络标识符,则将第一VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;
[0131] 第三发送模块67,用于向对端ED发送根据所述第一EVPN路由得到的第二EVPN路由,所述第二EVPN路由包括第一VM的MAC表项、第一VM的ARP表项和三层VXLAN网络标识符。
[0132] 图11示出根据本公开另一实施例的报文转发装置的结构示意图。如图11所示,该报文转发装置应用于EVPN的ED中,与上述实施例的不同之处在于,该装置还包括:
[0133] 第四接收模块71,用于接收来自对端ED的第三EVPN路由,所述第三EVPN路由包括三层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项;
[0134] 第三表项下发模块73,用于将第二VM的ARP表项下发到三层VXLAN网络标识符对应的ARP表中;
[0135] 第四表项下发模块75,用于如果三层VXLAN网络标识符有对应的二层VXLAN网络标识符,则将第二VM的MAC表项下发到二层VXLAN网络标识符对应的MAC表中;
[0136] 第四发送模块77,用于向第一VTEP发送根据第三EVPN路由得到的第四EVPN路由,所述第四EVPN路由包括二层VXLAN网络标识符、第二VM的MAC表项和第二VM的ARP表项。
[0137] 在一种可能的实现方式中,上述任一实施例的装置还包括:
[0138] 配置模块81,用于配置二层VXLAN网络标识符与三层VXLAN网络标识符的映射关系,二层VXLAN网络标识符为与本端ED连接的第一VTEP支持的二层EVPN业务对应的标识符,三层VXLAN网络标识符为本端ED和对端ED支持的三层EVPN业务对应的标识符。
[0139] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0140] 图12示出根据本公开另一实施例的报文转发装置的结构示意图。参照图12,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文转发逻辑对应的机器可执行指令以执行上文所述的报文转发方法。
[0141] 本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0142] 以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。