一种报文转发方法、装置、设备和存储介质与流程

文档序号:20211208发布日期:2020-03-31 11:03阅读:168来源:国知局
一种报文转发方法、装置、设备和存储介质与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法、装置、设备和存储介质。



背景技术:

vxlan(virtualextensiblelocalareanetwork,虚拟扩展局域网)是一种网络虚似化技术,它是对vlan(virtuallocalareanetwork,虚拟局域网)的一种扩展,解决了现有vlan技术无法满足二层网络需求的问题。vxlan技术将已有的三层物理网络作为underlay网络,在其上构建出虚拟的二层网络,即overlay网络。overlay网络通过封装技术、利用underlay网络提供的三层转发路径,实现二层报文跨越三层网络在不同站点间的传递,并且underlay网络对于overlay网络是透明的。其中三层物理网络可以是一个数据中心的ip网络,也可以是跨数据中心的ip网络。因此利用vxlan可以实现:

1、在一个数据中心内提供overlay网络;

2、在多个有underlay网络连接的远距离数据中心之间,提供overlay网络。

vxlan的封装技术是将原始以太网报文封装在udp(userdatagramprotocol,用户数据报协议)数据包里的封装格式,将原来的二层数据帧加上vxlan头部一起封装在一个udp数据包里。vxlan头部包含有一个vxlan标识,即vni(vxlannetworkidentifier)。通过vxlan实现数据中心间二层互联时,在数据中心a和数据中心b内部分别创建vxlan隧道,在数据中心的边缘设备之间也创建vxlan隧道。vtep(vxlantunnelendpoint,vxlan隧道端点)作为vxlan的边缘设备,针对vxlan的处理都在vtep上进行,例如识别以太网数据帧所属的vxlan,基于vxlan对数据帧进行二层转发、封装/解封装报文等。vtep可以是一台独立的物理设备也可以是虚拟机所在的服务器。vsi(virtualswitchinstance,虚拟交换实例)是vtep上为一个vxlan提供二层交换服务的虚拟交换实例,可以看做是vtep设备上一台基于vxlan进行二层转发的虚拟交换机,它可以具有传统以太网交换机所具有的所有功能,并且vsi与vxlan一一对应。

当vm1和vm2之间需要通信时,需要实现数据中心a和数据中心b之间的二层互通。如果数据中心a和数据中心b内部的vxlan隧道都采用相同的vni,则transitleaf1和transitleaf2之间只需采用同一vni建立vxlan隧道即可。而在实际应用场景中,不同的数据中心部署各种独立的vni,因此数据中心a和数据中心b可能需要将不同的vni当做同一个二层域进行互联通信,这种场景下需要实现vxlanmapping功能,进行一次vni的转换。

现有技术中,vxlanmapping功能有以下两种实现模式:局部vni模式,类似于“下游分配标签”的方案,将本端transitleaf节点的本地vni作为出方向vni进行vxlan封装,在对端transitleaf将vxlan隧道封装信息中的vni作为自己本地vni;映射vni模式,类似于vlanmapping的方案,两端transitleaf节点发往对端的报文都使用同一个映射vni进行vxlan封装。

现有技术中通常采用映射vni模式实现vxlanmapping功能。具体来说:

类似于vlanmapping的方案,两端transitleaf节点发往对端的报文都使用同一个映射vni进行vxlan封装。例如,数据中心a内部的vm1所属vxlan的标识为vni10,数据中心b内部的vm2所属vxlan的标识为vni20,当vm1和vm2进行二层通信时,vm1发送至vm2的数据报文在数据中心a的边缘设备中,通过边缘设备中建立的vni20对应的vsi,将数据报文重新封装后转发到数据中心b中的vm2,vm1发送至同一vni域下其它设备的数据报文在数据中心a的边缘设备中,通过边缘设备中建立的vni10对应的vsi,将数据报文重新封装后转发到其它设备。也即在数据中心a的边缘设备中,需要建立vni10对应vsi和vni20对应的vsi。

从上述过程中可以看出,现有技术在映射vni模式实现vxlanmapping功能时,为实现不同数据中心之间属于相同vni域的设备之间和属于不同vni域设备之间互相通信,需要在边缘设备中针对同一vni,不但需要建立该vni对应的vsi,还需要建立该vni映射的vni所对应的vsi,这将占用边缘设备中较多的硬件资源,在硬件入口映射资源有较多业务使用的情况下,硬件资源比较紧张,可能存在资源抢占不足的情况,会限制业务的部署和规模。



技术实现要素:

本发明实施例提供了一种报文转发方法、装置、设备和存储介质,用以使用同一个vsi的不同隧道,将转发的数据报文在出口封装时映射到不同的vni实例上,节省硬件入口映射资源。

第一方面,本发明实施例提供一种报文转发方法,应用于数据中心的边缘vtep中,包括:

确定接收到来自数据中心的其他vtep发送的第一vxlan报文是待转发报文后,解封装第一vxlan报文得到携带的第一虚拟扩展局域网标识vni和第一vxlan报文的内层报文;

基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi;

在地址转发表中查找第一vsi和内层报文的目的介质访问控制(mediaaccesscontrol,mac)地址对应的隧道出口;

根据对端vni映射表确定第一vsi和隧道出口对应的第二vni;

根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,并通过隧道出口发送第二vxlan报文。

本发明实施例提供的报文转发方法,应用于数据中心的边缘vtep中,在确定接收到来与数据中心的其他vtep发送的第一vxlan报文是待转发报文后,对第一vxlan报文第一虚拟扩展局域网vni和第一vxlan报文的内层报文进行解封装;基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi;在地址转发表中查找第一vsi和内层报文的目的mac地址对应的隧道出口;根据对端vni映射表确定第一vsi和隧道出口对应的第二vni;根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,并通过隧道出口发送第二vxlan报文。与现有技术中在边缘设备中针对同一vni,不但需要建立该vni对应的vsi,还需要建立该vni映射的vni所对应的vsi,占用边缘设备中较多的硬件资源相比,基于地址转发表确定vsi和内层报文的目的mac地址对应的隧道出口,进而根据对端vni映射表确定vsi和隧道出口对应的vni,并使用确定出的vni对内层报文进行封装,通过为不同的隧道出口配置不同的vni,即可实现使用同一个vsi的不同隧道,将转发的数据报文在出口封装时映射到不同的vni实例上,节省了硬件入口映射资源。

在一种可能的实施方式中,确定接收到来自数据中心的其他vtep发送的第一vxlan报文是待转发报文,包括:

获取来自数据中心的其他vtep发送的第一vxlan报文携带的目的网际互连协议(internetprotocol,ip)地址;

确定目的ip地址是否是边缘vtep的ip地址;

若确定目的ip地址是边缘vtep的ip地址,则确定第一vxlan报文是待转发报文。

本发明实施例提供的报文转发方法,首先需要识别接收到的报文所属的vxlan,以判断接收到的来自数据中心其他vtep发送的第一vxlan报文是否为待转发报文。当获取来自数据中心的其他vtep发送的第一vxlan报文携带的目的ip地址,并确定目的ip地址是边缘vtep的ip地址时,则确定第一vxlan报文是待转发报文。

在一种可能的实施方式中,基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi,包括:

获取对应关系;

在对应关系中查找第一vni;

若在对应关系中查找到第一vni,则获取第一vni对应的vsi,得到第一vsi。

在一种可能的实施方式中,根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,包括:

获取隧道出口对应的vxlan隧道的源ip地址和目的ip地址;

根据源ip地址、目的ip地址和第二vni封装内层报文,得到第二vxlan报文。

第二方面,本发明实施例提供一种报文转发装置,应用于数据中心的边缘vtep中,装置包括:

解封装单元,用于确定接收到来自数据中心的其他vtep发送的第一vxlan报文是待转发报文后,解封装第一vxlan报文得到携带的第一虚拟扩展局域网标识vni和第一vxlan报文的内层报文;

虚拟交换实例确定单元,用于基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi;

隧道出口确定单元,用于在地址转发表中查找第一vsi和内层报文的目的mac地址对应的隧道出口;

封装vni确定单元,用于根据对端vni映射表确定第一vsi和隧道出口对应的第二vni;

报文转发单元,用于根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,通过隧道出口发送第二vxlan报文。

在一种可能的实施方式中,解封装单元具体用于:

获取来自数据中心的其他vtep发送的第一vxlan报文携带的目的ip地址;

确定目的ip地址是否是边缘vtep的ip地址;

若确定目的ip地址是边缘vtep的ip地址,则确定第一vxlan报文是待转发报文。

在一种可能的实施方式中,虚拟交换实例确定单元具体用于:

获取对应关系;

在对应关系中查找第一vni;

若在对应关系中查找到第一vni,则获取第一vni对应的vsi,得到第一vsi。

在一种可能的实施方式中,报文转发单元具体用于:

获取隧道出口对应的vxlan隧道的源ip地址和目的ip地址;

根据源ip地址、目的ip地址和第二vni封装内层报文,得到第二vxlan报文。

第三方面,本发明实施例提供一种报文转发设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为执行指令,以实现如本发明实施例第一方面所述的报文转发方法。

第四方面,本发明实施例提供一种存储介质,当存储介质中的指令由报文转发设备的处理器执行时,使得报文转发设备能够执行如本发明实施例第一方面所述的报文转发方法。

附图说明

图1为本发明实施例提供的一种报文转发方法的示意流程图;

图2为本发明实施例提供的一种转发隧道和映射隧道的示意图;

图3为本发明实施例提供的另一报文转发方法的示意流程图;

图4为本发明实施例提供的一种实现vxlanmapping功能的结构示意图;

图5为本发明实施例提供的又一报文转发方法的示意流程图;

图6为本发明实施例提供的一种报文转发装置的结构示意图;

图7为本发明实施例提供的一种报文转发设备的结构示意图。

具体实施方式

以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。

鉴于现有技术中在实现vxlan跨数据中心报文发送时,硬件入口映射表资源紧张,限制transitleaf部署的情况,本发明实施例提供了一种报文转发方案,用以使用同一个vsi的不同隧道,将转发的数据报文在出口封装时映射到不同的vni实例上,节省硬件入口映射资源。

本发明实施例提供的报文转发方法,应用于数据中心的边缘vtep中,在确定接收到来与数据中心的其他vtep发送的第一vxlan报文是待转发报文后,对第一vxlan报文第一虚拟扩展局域网vni和第一vxlan报文的内层报文进行解封装;基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi;在地址转发表中查找第一vsi和内层报文的目的mac地址对应的隧道出口;根据对端vni映射表确定第一vsi和隧道出口对应的第二vni;根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,并通过隧道出口发送第二vxlan报文。与现有技术中在边缘设备中针对同一vni,不但需要建立该vni对应的vsi,还需要建立该vni映射的vni所对应的vsi,占用边缘设备中较多的硬件资源相比,基于地址转发表确定vsi和内层报文的目的mac地址对应的隧道出口,进而根据对端vni映射表确定vsi和隧道出口对应的vni,并使用确定出的vni对内层报文进行封装,通过为不同的隧道出口配置不同的vni,即可实现使用同一个vsi的不同隧道,将转发的数据报文在出口封装时映射到不同的vni实例上,节省了硬件入口映射资源。

下面结合附图对本发明实施例提供的报文转发方案进行详细说明。

如图1所示,本发明实施例提供一种报文转发方法,应用于数据中心的边缘vtep中,其可以包括以下步骤:

步骤101,确定接收到来自数据中心的其他vtep发送的第一vxlan报文是待转发报文后,解封装第一vxlan报文得到携带的第一虚拟扩展局域网标识vni和第一vxlan报文的内层报文。

步骤102,基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi。

步骤103,在地址转发表中查找第一vsi和内层报文的目的mac地址对应的隧道出口。

步骤104,根据对端vni映射表确定第一vsi和隧道出口对应的第二vni。

步骤105,根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,并通过隧道出口发送第二vxlan报文。

在不同数据中心互联的场景下,每个数据中心中部署各自独立的vni,需要将不同数据中心的vni建立在同一个二层域中,如图2所示,在硬件上配置对应的隧道,进行互联通信,实现报文转发。下面以两个具体实施例,对本发明实施例提供的报文转发方案进行详细说明。

实施例一、

数据中心a中vm1所属vxlanid和数据中心b中vm4所属vxlanid同为100,则以vm1中vni100与vm4中vni100通信为例,跨数据中心的数据发送过程可以有以下步骤:

如图3所示,vm1发送以太网数据帧给vm4,数据帧的源mac地址为mac1,目的mac地址为mac4。

步骤301,leaf1接收由vm1发送的数据报文,基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系,判断该数据报文属于vsi1,查找vsi1的mac地址,得到数据报文的出接口指向为转发隧道dcitunnel。

步骤302,leaf1获取dcitunnel隧道的封装信息(本地vni、目的vtepip地址、源vtepip地址),并对报文进行vxlan封装,然后发送给leaf2。

步骤303,leaf2对接收到的vxlan报文进行解封装,根据报文中的vni100找到对应的vsi1,根据目的mac查找mac表,找到vxlan隧道出接口,获取vxlan隧道的封装信息(出方向vni、目的vtepip地址、源vtepip地址),并对报文进行vxlan封装,然后发送给leaf3。

步骤304,leaf3对接收到的vxlan报文进行解封装,由于报文中的vni100就是leaf3的本地vni,因此可以根据vni100找到对应的vsi1,根据目的mac查找mac表,找到vxlan隧道出接口,获取vxlan隧道的封装信息(本地vni、目的vtepip地址、源vtepip地址),并对报文进行vxlan封装,然后发送给leaf4。

步骤305,leaf4对收到的vxlan报文进行解封装后进行相应的二层转发,最后发送给vm4。

实施例二、

如图4所示,数据中心a中vm2所属vni和数据中心b中vm3所属vni不同,分别为vni200、vni300,则以vm2中vni200与vm3中vni300通信为例,跨数据中心的数据发送过程可以有以下步骤:

如图5所示,vm2发送以太网数据帧给vm3,数据帧的源mac地址为mac2,目的mac地址为mac3。

步骤501,接收来自vm2发送的数据报文,通过解封装获取数据报文中携带的dip地址为leaf2,确定数据报文为待转发报文。

步骤502,通过解封装获取的数据报文中携带的vni,确定vm2属于vni200,其发送目的为vm3的dmac的二层单播报文,经过leaf1后通过隧道达到leaf2。

步骤503,到达leaf2节点时,基于预先配置的vni与vsi的对应关系,确定vni200的映射实例转发表为vsi2;在地址转发表中查找vsi2与vm3对应隧道出口,确定出口为映射隧道dcimappingtunnel;根据对端vni映射表查找vsi2与映射隧道对应的dcimappingtunnel对应的vni,确定vni200会映射为对端数据中心的vni300。

步骤504,通过映射隧道dcimappingtunnel和vni300再次封装数据报文,并通过映射隧道将其发送至leaf3。

步骤505,leaf3对接收到的vxlan报文进行解封装,设置通过dcimappingtunnel映射隧道的报文,出口映射vni300的key为dcimappingtunnel+vsi2,然后发送给leaf4。

步骤506,leaf4对收到的vxlan报文进行解封装后进行相应的二层转发,最后发送给vm3。

如图6所示,本发明实施例还提供一种报文转发装置,应用于数据中心的边缘vtep中,装置包括:

解封装单元61,用于确定接收到来自数据中心的其他vtep发送的第一vxlan报文是待转发报文后,解封装第一vxlan报文得到携带的第一虚拟扩展局域网标识vni和第一vxlan报文的内层报文;

虚拟交换实例确定单元62,用于基于预先配置的数据中心包括的各个vni与虚拟交换实例vsi的对应关系确定第一vni对应的第一vsi;

隧道出口确定单元63,用于在地址转发表中查找第一vsi和内层报文的目的mac地址对应的隧道出口;

封装vni确定单元64,根据对端vni映射表确定第一vsi和隧道出口对应的第二vni;

报文转发单元65,用于根据隧道出口和第二vni封装内层报文,得到第二vxlan报文,通过隧道出口发送第二vxlan报文。

在一种可能的实施方式中,解封装单元61具体用于:

获取来自数据中心的其他vtep发送的第一vxlan报文携带的目的ip地址;

确定目的ip地址是否是边缘vtep的ip地址;

若确定目的ip地址是边缘vtep的ip地址,则确定第一vxlan报文是待转发报文。

在一种可能的实施方式中,虚拟交换实例确定单元62具体用于:

获取对应关系;

在对应关系中查找第一vni;

若在对应关系中查找到第一vni,则获取第一vni对应的vsi,得到第一vsi。

在一种可能的实施方式中,报文转发单元65具体用于:

获取隧道出口对应的vxlan隧道的源ip地址和目的ip地址;

根据源ip地址、目的ip地址和第二vni封装内层报文,得到第二vxlan报文。

基于上述本发明实施例相同构思,本发明实施例还提供一种报文转发设备。

如图7所示,本发明实施例提供一种报文转发设备70,包括:

处理器71;

用于存储处理器可执行指令的存储器72;

其中,处理器71被配置为执行指令,以实现如本发明实施例中提供的报文转发方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器72,上述指令可由报文转发设备的处理器71执行以完成上述方法。

可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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