一种报文转发方法及装置与流程

文档序号:12729397阅读:316来源:国知局
一种报文转发方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法及装置。



背景技术:

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种二层VPN(Virtual Private Network,虚拟专用网络)技术,其数据平面采用VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)封装方式转发报文。EVPN可以基于已有的服务提供商或企业IP网络,为同一租户的相同子网提供二层互联;通过EVPN网关为同一租户的不同子网提供三层互联,并为其提供与外部网络的三层互联。

目前,EVPN中的ED(Edge Device,边缘设备)可以通过自动发现第二ED来建立DCI(Data Center Interconnection,数据中心间二层互联)隧道;本端ED和对端ED可以通过VXLAN二层转发数据。



技术实现要素:

本发明实施例提供一种报文转发方法和装置,可以避免第一ED与第二ED之间通过VXLAN隧道转发数据时,需要使第一ED与第二ED两者都配置对端的VNI(VXLAN Network Identifier,VXLAN网络标识符),从而造成第一ED和第二ED中VNI资源浪费的问题。

本发明实施例提供一种报文转发方法,所述方法应用于以太网虚拟专用网络EVPN中的第一ED,所述方法包括:

第一ED接收第一VM发送的第一报文,所述第一报文的目的地址为第二ED中的第二VM地址,所述第一报文中携带第一VM对应的第一VNI;

根据ED标识与VNI及转发信息的对应关系,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息;

将所述第二ED标识携带在所述第一报文中,并根据所述第一转发信息将所述携带了第二ED标识的第一报文发送给所述第二ED,以使所述第二ED将所述第一报文发送给第二VM。

基于相同的构思,本发明还提供一种报文转发装置,所述装置应用于以太网虚拟专用网络EVPN中的第一边缘设备ED,所述装置包括:

报文接收单元,用于第一ED接收第一VM发送的第一报文,所述第一报文的目的地址为第二ED中的第二VM地址,所述第一报文中携带第一VM对应的第一VNI;

标识获取单元,用于根据ED标识与VNI及转发信息的对应关系,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息;

报文转发单元,用于将所述第二ED标识携带在所述第一报文中,并根据所述第一转发信息将所述携带了第二ED标识的第一报文发送给所述第二ED,以使所述第二ED将所述第一报文发送给第二VM。

由此可见,本发明可以通过第一ED接收第一VM发送第一报文,其中第一报文的目的地址为第二ED中的第二VM地址,并携带第一VM对应的第一VNI,然后根据ED标识与VNI及转发信息的对应关系,获取与第一VNI和第二VM地址匹配的第二ED标识及第一转发信息,再将第二ED标识携带在第一报文中,并根据第一转发信息将携带了第二ED标识的第一报文发送给第二ED,以使第二ED将第一报文发送给第二VM。因此本发明可以通过为对端ED配置ED标识,并将自身的多个VNI映射到该ED标识,来实现在两个ED之间根据ED标识转发二层业务的目的,从而避免在ED上配置对端的虚拟交换实例,节省数据中心的虚拟交换资源。

附图说明

图1是现有技术的VXLAN的网络模型示意图;

图2是本申请一种示例性实施方式中的一种报文转发方法的处理流程图;

图3a是本申请一种示例性实施方式中的组网示意图;

图3b是本申请一种示例性实施方式中的报文格式示意图;

图4a本申请一种示例性实施方式中的报文转发装置所在ED设备的硬件结构图;

图4b本申请一种示例性实施方式中的一种报文转发装置的逻辑结构图。

具体实施方式

VXLAN的典型网络模型中包括如下几部分:

VM(Virtual Machine,虚拟机)用于为用户提供服务,在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符),其长度为24比特;

VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)是VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据所属的VXLAN、基于VXLAN对数据进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器;

VXLAN隧道是两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装;

核心设备是指IP核心网络中的设备,核心设备不参与VXLAN处理,仅需要根据封装后报文的目的IP地址对报文进行三层转发。

如图1所示,VM3和VM1在一个二层VXLAN内,其对应的VNI1是100,VM2和VM4是在一个二层VXLAN内,其对应的VNI2是200。目前,若在ED1和ED2之间通过EVPN协议建立VXLAN,需要两个数据中心之间具有相同的VNI,因此在ED1上面需配置VNI为200的VXLAN,但是在ED1所在的数据中心内部,可能并不需要VNI2为200的VXLAN业务,同样,ED2也得配置VNI2为100的VXLAN业务。如果ED1上有很多二层业务,比如VNI为1到1000个VXLAN业务,ED2上面有1001到2000个VXLAN业务,那么ED1和ED2上面都要配置1到2000的业务配置,这就导致数据中心内部只有1000个在执行实际业务,而另1000个业务是闲置的,因此极大的浪费的ED上面的VXLAN业务资源。

为了解决上述技术方案存在的问题,本申请实施例提供一种报文转发方法及装置,通过第一ED接收第一VM发送的第一报文,其中第一报文的目的地址为第二ED中的第二VM地址,并携带第一VM对应的第一VNI,然后根据ED标识与VNI及转发信息的对应关系(其中,ED标识用于区分不同的ED设备),获取与第一VNI和第二VM地址匹配的第二ED标识及第一转发信息,再将第二ED标识携带在第一报文中,并根据第一转发信息将携带了第二ED标识的第一报文发送给第二ED,以使第二ED将第一报文发送给第二VM。因此本发明可以通过为对端ED配置ED标识,并将自身的多个VNI映射到该ED标识,来实现在两个ED之间根据ED标识I转发二层业务的目的,从而避免在ED上配置对端的虚拟交换实例,节省数据中心的虚拟交换资源。

请参考图2,是本申请实施例的一种示例性实施方式中的一种报文转发方法的处理流程图,该方法应用于EVPN中的边缘设备第一ED,所述方法包括:

步骤201、第一ED接收第一VM发送的第一报文,所述第一报文的目的地址为第二ED中的第二VM地址,所述第一报文中携带第一VM对应的第一VNI;

在本实施例中,第一ED可以接收本地第一VNI业务对应的第一VM发送的第一报文,其中该第一报文的目的MAC地址为第二ED中的第二VM的地址,源MAC地址为所述第一VM的地址,并且该第一报文中携带第一VM对应的第一VNI,其中第二ED与第一ED分别属于不同数据中心。

步骤202、根据ED标识与VNI及转发信息的对应关系,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息;

在本实施例中,第一ED可以根据第一报文中的第一VNI和目的地址,即第二VM的地址,在本地记录的ED标识与VNI及转发信息的对应关系中,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息,所述第一转发信息具体包括第二VM的转发表项。具体来讲,第一ED可以通过判断所述ED标识与VNI及转发信息的对应关系中是否存在与所述第一VNI匹配的VNI,且该VNI对应的第一转发信息与所述第二VM地址匹配,若存在这样的第一VNI和第二ED标识及第一转发信息的对应关系,则获取该对应关系中的第二ED标识及第一转发信息。

下面针对第一ED获取所述ED标识与VNI及转发信息的对应关系的方法,进行说明。

作为一个实施例,第一ED在接收到其他ED发送的携带有用于标识不同ED的ED标识的路由报文时,可以获取自身存储的VNI,以及从所述路由报文中获取ED标识以及转发信息;然后建立所述VNI与ED标识以及转发信息的对应关系。

具体为,第二ED获取用于表示自身的第二ED标识(该第二ED标识可以为预先设置在第二ED中的),当第一ED与第二ED之间建立隧道时,第二ED将携带了该第二ED标识的路由报文发送给第一ED(其中,该路由报文可以为根据第二ED中VM发送的ARP报文获取,并且该路由报文还携带了转发信息,该转发信息可以为MAC转发表项),当第一ED接收到第二ED发送的携带了第二ED标识的路由报文后,可以获取自身存储的VNI,以及从所述路由报文中获取第二ED标识以及转发信息;然后建立所述VNI与第二ED标识以及转发信息的对应关系。

在另一种实现方式中,第二ED获取用于表示自身的第二ED标识后,还可以在第二ED中建立第二ED标识与第二ED中存储的VNI的对应关系(为了与前述对应关系区分,以下将第二ED中建立的第二ED标识与第二ED中存储的VNI的对应关系称为目标对应关系),进一步,根据目标对应关系获取该路由报文,具体为,根据目标对应关系中的VNI确定对应的第二VM,进一步获取第二VM的转发信息并生成对应的路由报文。

需要说明的是,第一ED在根据第二ED发送的路由报文建立对应关系时,可以将自身存储的全部VNI与该第二ED标识和转发信息建立对应关系,也可以根据业务需要从自身存储的VNI中选取部分VNI与第二ED标识和转发信息建立对应关系。

当第一ED收到其他ED发送的携带ED标识的路由报文之后,在一种实施例中,可以直接处理该路由报文,获取该路由报文中的转发信息和ED标识,并根据获取的转发信息和ED标识建立对应关系;但是考虑到网络中可能存在不需与第一ED进行业务互通的其他ED,因此为了实现针对不同ED发送的路由报文,有选择性的建立对应关系,本申请提供了另一种实施例,包括,第一ED获取自身存储的VNI,以及从所述路由报文中获取ED标识以及转发信息之后,还可以进一步判断自身是否存在与所述路由报文中携带的ED标识匹配的第三ED标识(其中,该第三ED标识可以配置在第一ED中),若存在,则说明发送该路由报文ED与第一ED有业务互通,因此第一ED可以在本地建立所述VNI与ED标识以及转发信息的对应关系,从而指导后期的报文转发。

步骤203、将所述第二ED标识携带在所述第一报文中,并根据所述第一转发信息将所述携带了第二ED标识的第一报文发送给所述第二ED,以使所述第二ED将所述第一报文发送给第二VM。

在本实施例中,当第一ED获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息时,可以将所述第二ED标识携带在所述第一报文中,并根据所述第一转发信息将所述携带了第二ED标识的第一报文发送到第二ED,以使所述第二ED将所述第一报文发送给第二VM。

作为一个实施例,第一ED将所述第二ED标识携带在所述第一报文中,具体是将所述第一报文中的第一VNI替换为所述第二ED标识,由于第二ED没有第一VNI对应的虚拟交换实例,因此将第一报文中的第一VNI替换为第二ED标识可以实现第一报文在ED之间的业务转发。

进一步的,当所述第二ED收到所述第一报文时,判断出该第一报文中携带了第二ED标识,则表示可以处理该第一报文,进一步,可以根据所述第一报文中携带的目的地址确定第二VM对应的第二VNI,然后将所述第一报文携带的所述第二ED标识替换为第二VM对应的第二VNI,之后将所述第一报文转发至第二VM。

作为另一个实施例,第一ED将所述第二ED标识携带在所述第一报文中,具体可以是在所述第一报文中增加用于携带第二ED标识的报文结构,将第二ED以及第一VNI携带在该第一报文中发送给第二ED,当第二ED接收到携带了第二ED标识和第一VNI的第一报文后,根据第一报文的目的地址发送给第二VM。

作为另一个实施例,若第二ED中存在第二ED标识与第二ED中存储的VNI的目标对应关系,当第二ED收到所述第一报文时,判断出该第一报文中携带了第二ED标识,获取该第一报文中的目的地址并确定该目的地址指向第二VM,获取该第二VM对应的第二VNI,判断所述目标对应关系中是否存在所述第二VNI,若存在,则将所述第二VNI携带在第一报文中并发送给第二VM。

另外,需要说明的是,在本申请采用术语第一、第二、第三等来描述不同的ED,但这些信息不应限于这些术语。这些术语仅用于区分ED的角色,例如,在不脱离本申请范围的情况下,第一ED也可以被称为第二ED,类似地,第二ED也可以被称为第一ED。因此第二ED上的报文转发以及路由报文同步与上述第一ED中的处理方法类似,本文不再赘述。

相比于现有技术,本发明可以通过使不同ED根据ED标识,并将不同ED上的多个VNI映射到该ED标识上,从而在不同ED之间实现转发二层业务的目的,因此本发明可以避免在不同ED上配置对端的虚拟交换实例,节省数据中心的虚拟交换资源。

为使本发明的目的、技术方案及优点更加清楚明白,下面结合图3a、3b对本申请的方案作进一步地详细说明。

在本实施例中,以MAP VNI作为ED标识(即针对每一个ED均会对应一个不同的MAP VNI),对本申请的方案进行进一步说明,请参考图3a为本实施例中的EVPN组网示意图,该组网中包括:ED1和ED2之间通过EVPN协议动态的建立了VXLAN DCI隧道,ED1上面建立的VXLAN DCI隧道的目的地址为ED2的MAC地址2.2.2.2;ED2上面建立的VXLAN DCI隧道的目的地址为ED1的MAC地址1.1.1.1;同时在ED1和ED2上配置了对应的ED标识,即MAP VNI为10000,则,在ED1配置的隧道信息包括:MAP VNI为10000与目的地址为2.2.2.2的对应关系;在ED2上配置的隧道信息包括:MAP VNI为10000与目的地址为1.1.1.1的对应关系。配置完隧道的目的地址和MAP VNI之间的对应关系之后,在ED1和ED2跨数据中心互通时,ED1和ED2上的所有的VNI都可以映射到该MAP VNI上面,用户也可以根据自己的需求,删除某个数据中心内部的VNI到MAP VNI的对应关系,这样更加有利于用户对网络业务的处理。

VM1是直接连接到VNI为100的二层vxlan业务的虚拟机,当VM1上线时会发送免费ARP报文给ED1,ARP报文中的源地址为VM1的IP地址和MAC地址;ED1通过学习ARP报文中IP地址和MAC地址,在本地生成mac A-A-A转发表项,ED1会将该mac A-A-A表项通过EVPN路由发送给所有的BGP EVPN邻居对端,其中包括目的MAC地址为2.2.2.2的ED2。

进一步的,如图3b所示的路由报文结构,ED1可以在EVPN路由报文中增加RD(Route-Distinguisher,路由区分符)和RT(Route-Target,路由目标)的扩展团体属性,例如,在ED1和ED2上为MAP VNI对应的VXLAN业务配置对应的RD和RT,其中,RD用于区分不同ED,RT用于标识同一个ED发送的不同的路由,因此ED1将携带mac A-A-A表项的EVPN路由以及MAP VN发送到ED2的时候,可以在EVPN路由中携带ED1对应的RD,即1.1.1.1:10000;以及ED1的MAP VNI中的业务对应的RT,例如import vpn-target和export vpn-target都配置成65000:10000。当ED2接受到该EVPN路由之后,通过解析该EVPN路由中的RT和RD信息,将该EVPN路由向对应业务进行引入,即在本地记录MAP VNI为10000与VNI2为200以及mac A-A-A转发表项的对应关系。

当ED2接收VM2发送的第一报文时,其中第一报文的目的地址为ED1中的VM1的MAC地址,第一报文中携带VM2对应的VNI2;然后ED2可以根据本地记录的MAP VNI为10000与VNI2为200以及mac A-A-A转发表项的对应关系,获取与VNI2和VM2的MAC地址匹配的MAP VNI为10000以及mac A-A-A转发表项;再将所述MAP VNI携带在所述第一报文中,并根据mac A-A-A转发表项将携带了MAP VNI的第一报文发送给ED1。ED1收到携带MAP VNI的第一报文后,可以进一步根据第一报文的目的地址,即VM1的MAC地址,查找VM1所属的VNI1,即100;然后将该第一报文携带的MAP VNI替换为VNI1,最后根据本地记录的mac A-A-A转发表项将该第一报文发送给VM1。

因此本发明可以通过将ED中的多个VNI映射到一个MAP VNI,来实现数据中心之间二层业务的转发共用VNI的目的;由于数据中心内部的L2VNI可以自动的映射到对应的MAP VNI上面,可以相对减少用户手工的配置,提供了整个EVPN组网的自动化程度,同时,如果有某个VNI的业务不需要跟跨数据中心进行转发,用户可以手动的删除或者添加VNI到MAP VNI的映射关系;而且本发明扩展了EVPN 2类路由,增加了MAP VNI和RT的扩展属性团体,让EVPN 2类路由在数据中心ED之间同步的时候,可以在MAP VNI和普通的L2VNI之间正常的来回迁徙,很提高数据系统的灵活性。

基于相同的构思,本发明还提供一种报文转发装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的报文转发装置作为一个逻辑意义上的装置,是通过其所在装置的CPU将存储器中对应的计算机程序指令读取后运行而成。

请参考图4a,是本发明一种示例性实施方式中的一种报文转发装置400,所述装置应用于EVPN中的第一ED,该装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,该装置400的逻辑结构如图4b所示,其中包括:

报文接收单元401,用于第一ED接收第一VM发送的第一报文,所述第一报文的目的地址为第二ED中的第二VM地址,所述第一报文中携带第一VM对应的第一VNI;

标识获取单元402,用于根据ED标识与VNI及转发信息的对应关系,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息;

报文转发单元403,用于将所述第二ED标识携带在所述第一报文中,并根据所述第一转发信息将所述携带了第二ED标识的第一报文发送给所述第二ED,以使所述第二ED将所述第一报文发送给第二VM。

可选的,所述标识获取单元402,具体用于若所述ED标识与VNI及转发信息的对应关系中存在与所述第一VNI匹配的VNI,且该VNI对应的第一转发信息与所述第二VM地址匹配时,获取与所述第一VNI和第二VM地址匹配的第二ED标识及第一转发信息。

可选的,所述装置还包括:

关系建立单元404,用于接收其他ED发送的携带有用于标识不同ED的ED标识的路由报文;获取自身存储的VNI,以及从所述路由报文中获取ED标识以及转发信息;建立所述VNI与ED标识以及转发信息的对应关系。

可选的,所述关系建立单元404,还用于在获取自身存储的VNI,以及从所述路由报文中获取ED标识以及转发信息之后,判断自身是否存在与所述路由报文中携带的ED标识匹配的第三ED标识;若存在,则建立所述VNI与ED标识以及转发信息的对应关系。

可选的,所述报文转发单元403,具体用于将所述第一报文中的第一VNI替换为所述第二ED标识。

可选的,所述报文转发单元403,具体用于以使当所述第二ED收到所述第一报文时,根据所述第一报文中携带的目的地址确定第二VM对应的第二VNI,将所述第一报文携带的所述第二ED标识替换为第二VM对应的第二VNI,之后将所述第一报文转发至第二VM。

由此可见,本发明可以通过第一ED接收第一VM发送第一报文,其中第一报文的目的地址为第二ED中的第二VM地址,并携带第一VM对应的第一VNI,然后根据ED标识与VNI及转发信息的对应关系,获取与第一VNI和第二VM地址匹配的第二ED标识及第一转发信息,再将第二ED标识携带在第一报文中,并根据第一转发信息将携带了第二ED标识的第一报文发送给第二ED,以使第二ED将第一报文发送给第二VM。因此本发明可以通过为对端ED配置ED标识,并将自身的多个VNI映射到该ED标识,来实现在两个ED之间通过ED标识转发二层业务的目的,从而避免在ED上配置对端的虚拟交换实例,节省数据中心的虚拟交换资源。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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