一种报文转发方法及设备

文档序号:1965900 发布日期:2021-12-14 浏览:16次 >En<

阅读说明:本技术 一种报文转发方法及设备 (Message forwarding method and device ) 是由 肖冰 王琮 于 2021-08-05 设计创作,主要内容包括:本申请提供一种报文转发方法及设备。该方法包括:为接收的ARP请求报文所属VXLAN的硬件MAC地址表学习硬件MAC地址表项;为ARP请求报文所属的VXLAN的软件地址解析协议ARP表学习软件ARP表项;基于VXLAN的网关MAC地址生成ARP代理响应报文;生成同步ARP请求报文的发送端IP地址的第一BGP EVPN路由;将软件ARP表项同步为VXLAN的硬件ARP表的硬件ARP表项;根据学习的硬件MAC地址表项的出端口发送ARP代理响应报文;向VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP发送生成的BGP EVPN路由。(The application provides a message forwarding method and device. The method comprises the following steps: learning a hardware MAC address table item for a hardware MAC address table of VXLAN to which a received ARP request message belongs; learning a software Address Resolution Protocol (ARP) table item for a software ARP table of a VXLAN to which the ARP request message belongs; generating an ARP proxy response message based on a gateway MAC address of the VXLAN; generating a first BGP EVPN route of a transmitting end IP address of the synchronous ARP request message; synchronizing the software ARP table entries into hardware ARP table entries of a hardware ARP table of the VXLAN; an ARP proxy response message is sent according to an output port of a learned hardware MAC address table item; the generated BGP EVPN route is sent to each peer VTEP within the three-tier virtual local area private network VPN instance associated with the VXLAN.)

一种报文转发方法及设备

技术领域

本申请涉及通信技术,特别涉及以太网虚拟转网络技术,具体的讲是一种报文转发方法及设备。

背景技术

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种基于Overlay技术的二层网络互联技术。EVPN采用MP-BGP协议通告MAC/IP的可达性和组播等信息。EVPN定义了一套通用的控制层(control plane),数据层(data plane)可以使用不同的封装技术。EVPN VXLAN网络中,控制层采用EVPN技术,数据层采用VXLAN(Virtual ExtendedLocal Area Network,虚拟可扩展局域网)封装技术。

在EVPN VXLAN网络中,每个VXLAN网络也称为一个EVPN实例,每个VXLAN网络通过VXLAN ID来标识,VXLAN ID又称VNI(VXLAN Network Identifier,VXLAN网络标识符)。不同VXLAN网络中的用户终端不能二层互通。各VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)为每个VXLAN提供一个二层交换服务的虚拟交换实例VSI(Virtual Switch Instance,虚拟交换实例),VSI与VXLAN一一对应。同一路由域的不同的VXLAN网络处于同一个逻辑三层网络,属于由一个L3 VNI识别的一个VPN(Virtual Private Network,虚拟专用网络)实例。不同VPN实例之间彼此隔离,从而确保不同VPN实例的业务之间隔离。

图1为EVPN VXLAN网络示意图;现有的ARP抑制方案中,VTEP 1根据接收到的ARP请求报文时,建立ARP抑制表项,在VXLAN内泛洪ARP请求报文并通过BGP EVPN同步ARP抑制表项至VTEP 2和VTEP 3。VTEP 2和VTEP 3在VXLAN网络内收到泛洪的VXLAN封装的ARP请求报文,解除VXLAN封装,在VXLAN的本地VLAN内广播ARP请求报文。当VTEP 2接收到ARP响应报文,建立ARP抑制表项,通过连接VTEP1的VXLAN隧道将ARP应答发送给VTEP 1,并通过BGPEVPN同步本设备生成的ARP抑制表项至VTEP 1和VTEP 3。VTEP 1解除收到的VXLAN ARP应答报文的VXLAN报文封装,根据ARP应答报文生成ARP抑制表项并根据目的MAC地址进行转发。之后VTEP1再收到请求相同IP地址的ARP请求报文后,可根据本地ARP抑制表项代理ARP响应报文,不在VXLAN内对ARP请求泛洪。当数据中心接入的用户终端增多,VTEP设备存储ARP抑制表项的数目增大,极大占用VTEP设备的交换芯片的硬件表项资源。

发明内容

本申请的目的在于提供一种报文转发方法及设备,避免EVPN VXLAN网络内ARP请求报文泛洪同时,节约表项存储资源。

为实现上述目的,本申请提供一种报文转发方法,该方法包括:确定收到的第一以太网数据报文所属VXLAN;确定第一以太网数据报文的目的MAC地址是VXLAN的网关MAC地址;在VXLAN的硬件ARP表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件ARP表项;在VXLAN关联的三层虚拟专用网VPN实例的硬件路由表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件路由表项;生成请求第一以太网数据报文的目的IP地址的ARP请求报文;基于连接VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP的VXLAN隧道封装生成的ARP请求报文,向每个对端VTEP发送VXLAN封装的ARP请求报文。

为实现上述目的,本申请还提供了一种报文转发设备,该设备包括:硬件接收模块,用于接收第一以太网IP数据报文;硬件二层交换模块,用于确定第一以太网数据报文所属VXLAN;确定第一以太网数据报文的目的MAC地址是VXLAN的网关MAC地址;硬件三层交换模块,在VXLAN的硬件ARP表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件ARP表项;在VXLAN关联的三层虚拟专用网VPN实例的硬件路由表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件路由表项;生成请求第一以太网数据报文的目的IP地址的ARP请求报文;基于连接VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP的VXLAN隧道封装生成的ARP请求报文,向每个对端VTEP发送VXLAN封装的ARP请求报文。

本申请的有益效果在于,EVPN VXLAN网络的作为网关的VTEP设备所有来自终端的ARP报文上CPU,不硬转,由网关本地代理答复,在本地终结,只有在报文转发无法查找到目的IP地址匹配的表项时时,在VXLAN网络内泛洪ARP请求报文,并且无需学习ARP抑制表项,不仅减少了VXLAN网络内泛洪ARP请求报文导致的带宽占用,还节约了网关设备的硬件表项存储资源。因为每个VTEP的VXLAN网关MAC相同,终端在VTEP之间迁移时,感知不到网关的变化。

附图说明

图1为典型的EVPN VXLAN网络架构示意图;

图2为本申请的报文转发方式实施例的流程图;

图3为本申请实施例提供的代理地址解析协议请求的示意图;

图4为本身请提供的报文转发设备的示意图。

具体实施方式

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本申请的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

图1所示为本申请提供的一种报文转发方法,该方法包括:

步骤101,确定收到的以太网数据报文所属VXLAN;

步骤102,确定以太网数据报文的目的MAC地址是VXLAN的网关MAC地址;

步骤103,在VXLAN的硬件ARP表中,未查找到匹配以太网数据报文的目的IP地址的硬件ARP表项;

步骤104,在VXLAN关联的三层虚拟专用网VPN实例的硬件路由表中,未查找到匹配以太网数据报文的目的IP地址的硬件路由表项;

步骤105,生成请求以太网数据报文的目的IP地址的ARP请求报文;

步骤106,基于连接VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP的VXLAN隧道封装生成的ARP请求报文;

步骤107,向每个对端VTEP发送VXLAN封装的ARP请求报文。

本申请的有益效果在于,EVPN VXLAN网络的作为网关的VTEP设备只有在本地学习的ARP表项和远端同步的ARP表项都没有查找到匹配ARP表项时,由IP报文触发FIB MISS在VXLAN网络内泛洪ARP请求报文,来自终端的ARP报文都由VSI网关本地代理答复,上CPU且不硬转,不在VXLAN内泛洪,并且无需学习ARP抑制表项,不仅减少了VXLAN网络内泛洪ARP请求报文导致的带宽占用,还节约了网关设备的硬件表项存储资源。

图3为本申请实施例提供的代理地址解析协议请求的示意图。图3中,EVPN VXLAN网络中,VTEP1、VTEP2、VTEP3位于同一个VXLAN A,VXLAN A与其他VXLAN网络关联到同一个三层VPN示例。VTEP1与VTEP2之间通过VXLAN隧道1连接;VTEP2与VTEP3之间通过VXLAN隧道2连接;VTEP1与VTEP3之间通过VXLAN隧道3连接。VTEP1、VTEP2、VTEP3配置的VXLAN A内的网关虚接口MAC地址均为MAC A,即分布式网关。

终端311与终端321通信前,基于终端321的IP地址确定属于相同VLAN,发送ARP请求报文30请求终端321的MAC地址;其中发送端IP地址为IP 311,发送端MAC地址为MAC311;目标端IP地址为IP321。

当VTEP1收到来自终端311的ARP请求报文301时,根据接收的端口和/或VLAN识别ESI,根据识别的ESI绑定的VXLAN A确定收到的ARP请求报文属于VXLAN A。

VTEP1的根据ARP请求报文的源MAC地址和接收端口,在VXLAN A的硬件MAC地址表中(即,交换芯片执行二层转发的MAC地址表)学习硬件MAC地址表表项。

不同于现有技术,VTEP1不对收到的ARP请求报文进行硬件转发,将ARP报文终结在本VTEP,通过软件生成ARP代理报文。VTEP1在VXLAN A的软件ARP表中学习软件ARP表项,即在软件ARP表项中记录ARP请求报文的请求端IP地址和请求端MAC地址。VTEP1基于VXLAN A的网关MAC地址MAC 10生成ARP代理响应报文302,即发送端IP地址为IP321,发送端MAC地址为MAC A;目标端IP地址为IP 311,目标端MAC地址为MAC311。VTEP1生成同步ARP请求报文301的发送端IP地址IP311的BGP EVPN路由303。本实施例中,是应用同步MAC地址/IP地址的二类BGP EVPN路由。

VTEP1将软件ARP表项同步为硬件ARP表项,根据硬件MAC地址表中的出端口发送ARP响应报文302。VTEP1向VPN示例中其他对端VTEP2和VTEP3发送BGP EVPN路由303。

VTEP2和VTEP3各自收到BGP EVPN路由303,从BGP EVPN获取到三层的VPN实例,VTEP2在VPN实例的路由表中记录主机路由IP311对应连接VTEP1的VXLAN隧道2,VTEP3在VPN实例的路由表中记录主机路由IP311对应连接VTEP1的VXLAN隧道3。

由图3可知,本申请无需ARP抑制表项抑制ARP请求报文在VXLAN网络内泛洪,减少了硬件转发表项的占用。

由于终端311收到的ARP响应报文是VTEP1基于VXLAN A的网关MAC地址发送的,终端311向终端321发送以太网数据报文中,目的MAC地址为MAC A。

VTEP1收到来自终端311的以太网数据报文时,识别ESI,根据识别的ESI绑定的VXLAN A确定收到以太网数据报文属于VXLAN A。

VTEP1确定以太网报文的目的MAC地址是MAC A,查找根据目的IP31n地址查找硬件ARP表项,确定未查找到匹配的ARP表项,则在VXLAN A关联的VPN实例的三层路由表中查找目的IP地址匹配的主机路由表项。

VTEP1确定未查找到目的IP地址IP321匹配的主机路由表项,则产生FIB MISS,CPU收到后生成ARP请求报文,为本地VLAN内的每个ESI复制一份ARP请求报文,为连接VPN实例内VTEP2的VXLAN隧道1以及连接VTEP3的VXLAN隧道3分别复制一份ARP请求报文,将每个对端VTEP的VXLAN隧道封装生成的ARP请求报文,向每个对端VTEP发送VXLAN封装的ARP请求报文。

VTEP2和VTEP3收到VXLAN封装的ARP请求报文,各自解封装后在VLAN内广播。终端321收到ARP请求报文后,发送ARP响应报文。VTEP2收到ARP响应报文;为硬件MAC地址表学习每个ARP响应报文的硬件MAC地址表项;不通过交换芯片进行转发,由交换芯片发送到处理器CPU为软件ARP表学习每个ARP响应报文的软件ARP表项,更新软件和硬件ARP表项。VTEP2生成BGP EVPN路由,用以同步收到的ARP响应报文的发送端IP地址,VTEP2向对端VTEP1、3分别发送生成的BGP EVPN路由。

VTEP1和VTEP3各自收到BGP EVPN路由303,从BGP EVPN获取到三层的VPN实例,VTEP1在VPN实例的路由表中记录主机路由IP321对应连接VTEP2的VXLAN隧道1,VTEP3在VPN实例的路由表中记录主机路由IP321对应连接VTEP1的VXLAN隧道2。

VTEP1根据在VPN实例的路由表中记录主机路由IP321对应连接VTEP2的VXLAN隧道1,将收到的以太网数据报文进行VXLAN封装,通过连接VTEP2的VXLAN隧道1发送到VTEP2。VTEP2收到VXLAN封装的数据报文,解除VXLAN封装后,确定内层以太网MAC地址是网关MAC地址,执行三层转发,根据学习的硬件ARP表项对内层以太网报文重新封装后,将重新封装的以太网报文发送到终端321。

之后,终端31n可按照图3所示的方式请求终端311的MAC,VTEP1收到来自终端31n的ARP请求报文的处理方式与收到来自终端311的ARP请求报文的处理方式相同,本申请不再赘述。

这样VTEP1中VXLAN A的硬件MAC地址表中已经学习了MAC311和MAC31n的硬件MAC地址表项;VXLAN A的硬件ARP表项已同步有IP311和IP31n的硬件ARP地址表项。VTEP1的VPN示例的路由表中记录了IP321的主机路由。

VTEP2中VXLAN A的硬件MAC地址表中已经学习了MAC321的硬件MAC地址表项;VXLAN A的硬件ARP表项已同步了IP321硬件ARP地址表项。VTEP2的VPN实例的路由表中已经记录了IP311、IP31n的主机路由表项。

VTEP3的VPN实例的路由表中已经记录了IP311、IP31n和IP321的主机路由表项。

当终端311向终端31n发送以太网数据报文。VTEP1收到来自终端311的以太网数据报文时,识别ESI,根据识别的ESI绑定的VXLAN A确定收到以太网数据报文属于VXLAN A。

VTEP1确定以太网报文的目的MAC地址是MAC 10,查找根据目的IP31n在VXLAN A的硬件ARP表中查找到目的IP地址IP31n的匹配硬件ARP表项。VTEP1将以太网数据报文的目的MAC地址修改匹配硬件ARP表项中的MAC地址MAC31n,通过匹配硬件ARP表项的出端口将以太网数据报文发往终端31n。

VTEP1、VTEP2、VTEP3的VXLAN网关mac地址均为MAC A,这样终端在VTEP之间迁移时,感知不到网关的变化;

图4为本身请提供的报文转发设备的示意图。该设备40包括:网络接口,交换芯片,CPU以及存储器。交换芯片至少包括硬件接收模块、硬件二层交换模块、硬件三层转发模块。处理器通过运行存储器中的处理器可执行指令用以执行软件转发模块。硬件接收模块,用于接收第一以太网数据报文;硬件二层交换模块,用于确定第一以太网数据报文所属VXLAN;确定第一以太网数据报文的目的MAC地址是VXLAN的网关MAC地址;硬件三层交换模块,在VXLAN的硬件ARP表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件ARP表项;在VXLAN关联的三层虚拟专用网VPN实例的硬件路由表中,未查找到匹配第一以太网数据报文的目的IP地址的硬件路由表项;生成请求第一以太网数据报文的目的IP地址的ARP请求报文;基于连接VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP的VXLAN隧道封装生成的ARP请求报文,向每个对端VTEP发送VXLAN封装的ARP请求报文。

硬件接收模块,还用于接收第二以太网数据报文;硬件二层交换模块,用于确定收到的第二以太网数据报文属于VXLAN;确定第二以太网数据报文的目的MAC地址是网关MAC地址;硬件三层交换模块,用于确定在VXLAN的硬件APR表中,查找到第二以太网数据报文的目的IP地址的匹配硬件ARP表项;将第二以太网报文的目的MAC地址替换为匹配硬件ARP表项的MAC地址;通过匹配硬件ARP表项的出端口发送第一以太网数据报文。

硬件接收模块,用于接收第三以太网数据报文;硬件二层交换模块,用于确定第三以太网数据报文属于VXLAN;确定第三以太网数据报文的目的MAC地址是VXLAN的网关MAC地址;硬件三层交换模块,用于确定在VXLAN的硬件ARP表中,未查找到匹配第三以太网数据报文的目的IP地址的硬件ARP表项;确定在VXLAN关联的三层虚拟专用网VPN实例的硬件路由表中,查找到第三以太网数据报文的目的IP地址的匹配硬件路由表项;根据匹配硬件路由表项的VXLAN隧道将第三以太网数据报文封装为VXLAN数据报文;根据VXLAN隧道的出端口发送VXLAN数据报文。

软件转发控制模块;硬件接收模块,用于接收ARP请求报文;硬件二层交换模块,用于为ARP请求报文所属VXLAN的硬件MAC地址表学习硬件MAC地址表项,将ARP请求报文发往软件转发控制模块;软件转发控制模块,为ARP请求报文所属的VXLAN的软件地址解析协议ARP表学习软件ARP表项;基于VXLAN的网关MAC地址生成ARP代理响应报文;生成同步ARP请求报文的发送端IP地址的第一BGP EVPN路由;将软件ARP表项同步到硬件三层交换模块的VXLAN的硬件ARP表的硬件ARP表项;硬件二层交换模块,根据学习的硬件MAC地址表项的出端口发送ARP代理响应报文;硬件三层交换模块,向VXLAN关联的三层虚拟局域专用网VPN实例内每个对端VTEP发送生成的BGP EVPN路由。

硬件接收模块,还用于接收的第二BGP EVPN路由;硬件三层交换模块,还用于将第二BGP EVPN路由发送到软件转发控制模块;软件转发控制模块,用于基于第二BGP EVPN路由携带的远端IP地址,在三层VPN实例的软件路由表中生成软件主机路由表项;其中远端IP地址对应的VXLAN隧道连接发送第二BGP EVPN路由的对端VTEP;将软件主机路由表项同步为硬件三层交换模块的三层VPN实例的硬件路由表的主机路由表项。

硬件接收模块,用于接收VXLAN封装的ARP请求报文以及接收ARP响应报文;硬件二层转发模块,用于为VXLAN封装的ARP请求报文解除VXLAN封装,在VXLAN关联的虚拟局域网内广播解封装的ARP请求报文;以及为硬件MAC地址表学习ARP响应报文的硬件MAC地址表项,将ARP响应报文发往软件转发模块;软件转发模块,用于为VXLAN的软件ARP表学习ARP响应报文的软件ARP表项;生成同步ARP响应报文的发送端IP地址的第三BGP EVPN路由;将软件ARP表项同步为VXLAN的硬件ARP表的硬件ARP表项;硬件三层转发模块,向每个对端VTEP发送生成的第三BGP EVPN路由。

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

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种开放流Openflow实例绑定方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!