在VXLAN中发送ARP报文的方法、VTEP设备与流程

文档序号:14914834发布日期:2018-07-11 00:26阅读:792来源:国知局

本申请涉及计算机网络通信技术领域,尤其涉及一种在VXLAN中发送ARP报文的方法、VTEP设备。



背景技术:

随着虚拟化技术应用广泛,数据中心网络技术发展迅速,VXLAN(Virtual eXtensible Local Area Network,可扩展虚拟局域网络)技术成为多种overlay(网络覆盖)技术中的主流技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离,主要应用于数据中心网络。

VXLAN是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。VXLAN基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术,也可以将它看作一种隧道模式的overlay技术。

VXLAN的典型网络模型如下图1所示,包括:VM(Virtual Machine,虚拟机):VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):核心设备:IP核心网络中的设备(如网络中P设备)。VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头、IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。

现有技术中的ARP(Address Resolution Protocol,地址解析协议)组播,源VTEP要想得到目的VM的MAC地址,源VTEP需要在VXLAN的组播组中发送ARP报文,以获得与目的VTEP对应的目的VM的MAC地址,这样就导致源VTEP发送报文会占用大量网络带宽,同时复制份数会随着PE个数的增加而成指数级增长,进而导致流量激增。网络带宽资源被占用,造成网络通信性能下降。



技术实现要素:

本申请的主要目的在于提供一种在VXLAN中发送ARP报文的方法、VTEP设备,已解决现有技术中的在VXLAN中广播ARP报文所导致的占用大量网络资源的问题。

为了解决上述问题,根据本申请实施例提供一种在VXLAN中发送ARP报文的方法,其包括:所述第一VTEP创建并维护地址映射表,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;所述第一VTEP接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;所述第一VTEP根据所述第二VM的IP地址以及所述地址映射表的地址映射信息,确定所述第二VM的MAC地址;所述第一VTEP向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

根据本申请实施例还提供一种在VXLAN中发送ARP报文的方法,其包括:所述ARP代理模块接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;所述ARP代理模块根据所述第二VM的IP地址以及预先创建的地址映射表确定所述第二VM的MAC地址,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;所述ARP代理模块向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

根据本申请实施例还提供一种VTEP设备,其包括:创建模块,用于创建并维护地址映射表,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;接收模块,用于接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;地址确定模块,用于根据所述第二VM的IP地址以及所述地址映射表的地址映射信息,确定所述第二VM的MAC地址;报文应答模块,用于向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

根据本申请实施例还提供一种VTEP设备,所述VTEP设备包括ARP代理模块,所述ARP代理模块包括:接收模块,用于接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;地址确定模块,用于根据所述第二VM的IP地址以及预先创建的地址映射表确定所述第二VM的MAC地址,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;报文应答模块,用于向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。根据本申请的技术方案,根据本申请的技术方案,在VXLAN中的每个VTEP设备创建并维护地址映射表,VTEP设备接收到本地VM的ARP请求报文后,通过查找所述地址映射表获取目的VM的MAC地址,封装为ARP应答报文并返回至本地VM。通过本发明实施例,ARP请求报文在本地VTEP设备被终结,即ARP报文不会在VXLAN内广播,避免了ARP广播流量占用大量IP网络带宽的情况,有效提高网络处理性能。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本发明实施例的VXLAN的网络模型的示意图;

图2是根据本发明一个实施例的在VXLAN中发送ARP报文的方法的流程图;

图3是根据本发明另一实施例的在VXLAN中发送ARP报文的方法的流程图

图4是根据本发明实施例的在VTEP设置ARP代理模块的示意图;

图5至图7是根据本发明实施例的VTEP设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

根据本发明实施例提供一种在VXLAN中发送ARP报文的方法,该方法可用于如图1所示的VXLAN中,所述VXLAN包括多个VTEP、VM、核心设备等,具体地:

VTEP是VXLAN的边缘设备,每个VTEP管理服务器上运行的多个VM在所述VXLAN中的通信。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。VTEP(单播时是两个VTEP、多播时是多个VTEP)之间完全是通过L3协议交互的,由IP核心设备相连;

在一台服务器上可以创建多台VM,不同的VM可以属于不同的VXLAN。属于相同VXLAN的VM处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的VM之间二层隔离;

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

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

此外,在VXLAN中,VXLAN的每个覆盖域被称为VXLAN segment,其ID是由位于VXLAN数据包头中的VNI(VXLAN Network Identifier)标识的,只有在相同VXLAN segment内的虚拟机之间才可以相互通信。VNI(VXLAN Network Identifier or VXLAN Segment ID)和VXLAN隧道只有VTEP可见,对于虚拟机是透明的,不同的VXLAN segment中允许具有相同MAC地址的虚拟机。基于不同的VNI,VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看作是VTEP上的一台基于VXLAN进行二层转发的虚拟交换实例,实现以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。

图2是根据本发明一个实施例的在VXLAN中发送ARP报文的方法的流程图。在本实施例中,第一VTEP用于管理第一服务器上运行的第一VM在所述VXLAN中的通信,第一VTEP可看作源VTEP,第一VM可看作源VM;第二VTEP用于管理第二服务器上运行的第二VM在所述VXLAN中的通信,第二VTEP可看作目的VTEP,第二VM可看作目的VM。如图2所示,所述方法包括以下步骤:

步骤S202,所述第一VTEP创建并维护地址映射表,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息。

在不改变现有的组网拓扑结构的情况下,对现有的MAC地址转发表进行扩展,创建一个地址映射表。参考表1,所述地址映射表中包括但不限于VNI、MAC地址、IP地址等表项。新的地址映射表基于现有的MAC地址转发表进行了扩展,增加IP地址段,体现了MAC地址和IP地址的映射关系。需要说明,所述地址映射表中不仅包括VTEP本地所属的VM的地址映射信息,还包括VXLAN中其他片段或子网的VM的地址映射信息。在一个优选实施例中,所述地址映射表中包括VXLAN中所有的VM的地址映射信息。

表1

所述地址映射表不仅提供二层转发查找功能,同时提供给ARP代理模块查找MAC地址映射。基于新的地址映射表的创建,VTEP设备能够实现ARP请求的代答。

步骤S204,所述第一VTEP接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址。

当第一VM与其他的VM(第二VM)进行通信时,会以广播形式发送一个用于请求第二VM的MAC地址的ARP请求报文(ARP Req),这样所述第一VTEP就能够接收到所述ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址。

步骤S206,所述第一VTEP根据所述第二VM的IP地址以及所述地址映射表中的地址映射信息,确定所述第二VM的MAC地址。

所述第一VTEP查找所述地址映射表,根据所述地址映射表的地址映射信息查找与所述第二VM的IP地址对应的MAC地址,从而获取第二VM的MAC地址。

步骤S208,所述第一VTEP向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

所述第一VTEP根据所述第二VM的MAC地址重新封装ARP应答报文(ARP Resp),返回给所述第一VM。第一VM接收到所述ARP应答报文后,根据所述第二VM的MAC地址发送VXLAN报文。

根据本发明的上述实施例,在VXLAN中的每个VTEP设备创建并维护地址映射表,VTEP设备接收到本地VM的ARP请求报文后,通过查找所述地址映射表获取目的VM的MAC地址,封装为ARP应答报文并返回至本地VM。通过本发明实施例,ARP请求报文在本地VTEP设备被终结,即ARP报文不会在VXLAN内广播,避免了ARP广播流量占用大量IP网络带宽的情况,有效提高网络处理性能。

并且,本发明通过在VTEP设备创建并维护地址映射表,即VTEP设备负责存储地址映射信息,而VTEP设备是负责数据转发的设备,在转发大量数据报文的情况下,VTEP设备能够在本地直接查找获取到目的MAC地址,并不需要在VTEP和VXLAN控制器之间频繁交互数据,有效提升了系统性能。

根据本发明实施例还提供一种在VXLAN中发送ARP报文的方法,该方法可用于如图1所示的VXLAN中。

图3是根据本发明另一实施例的在VXLAN中发送ARP报文的方法的流程图。在本实施例中,第一VTEP用于管理第一服务器上运行的第一VM在所述VXLAN中的通信,第一VTEP可看作源VTEP,第一VM可看作源VM;第二VTEP用于管理第二服务器上运行的第二VM在所述VXLAN中的通信,第二VTEP可看作目的VTEP,第二VM可看作目的VM。

如图3所示,所述方法包括以下步骤:

步骤S302,ARP代理模块接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址。

在本实施例中,参考图4,通过在所述第一VTEP中设置一个ARP代理模块,实现对本地ARP请求的代答。

当第一VM与其他的VM(第二VM)进行通信时,会以广播形式发送一个用于请求第二VM的MAC地址的ARP请求报文(ARP Req),其中所述ARP请求报文中包括第二VM的IP地址。所述第一VTEP接收到所述ARP请求报文后,直接转发给所述ARP代理模块处理。

步骤S304,所述ARP代理模块根据所述第二VM的IP地址在预先创建的地址映射表中查找并获取所述第二VM的MAC地址,其中所述地址映射表中包括所述VXLAN中的多个VM的MAC地址和IP地址的映射关系。

所述ARP代理模块查找所述地址映射表,查找与所述第二VM的IP地址对应的MAC地址,从而获取第二VM的MAC地址。

在本实施例中,所述第一VTEP负责创建并维护地址映射表,在不改变现有的组网拓扑结构的情况下,对现有的MAC地址转发表进行扩展,创建所述地址映射表。新的地址映射表基于现有的MAC地址转发表进行了扩展,增加IP地址段,体现了MAC地址和IP地址的映射关系。需要说明,所述地址映射表中不仅包括VTEP本地所述的VM的MAC地址和IP地址的映射关系,还包括VXLAN中其他片段或子网的VM的MAC地址和IP地址的映射关系。所述地址映射表不仅提供二层转发查找功能,同时提供给ARP代理模块查找MAC地址映射。基于新的地址映射表的创建,ARP代理模块能够实现ARP请求的代答。

步骤S306,所述ARP代理模块向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

所述ARP代理模块根据所述第二VM的MAC地址重新封装ARP应答报文(ARP Resp),返回给所述第一VM。第一VM接收到所述ARP应答报文后,根据所述第二VM的MAC地址发送VXLAN报文。

根据本发明的上述实施例,在VXLAN中的每个VTEP设备创建并维护地址映射表,ARP代理模块接收到本地VM的ARP请求报文后,通过查找所述地址映射表获取目的VM的MAC地址,封装为ARP应答报文并返回至本地VM。通过本发明实施例,ARP请求报文在本地VTEP设备被终结,即ARP报文不会在VXLAN内广播,避免了ARP广播流量占用大量IP网络带宽的情况,有效提高网络处理性能。

并且,本发明通过在VTEP设备创建并维护地址映射表,即VTEP设备负责存储地址映射信息,而VTEP设备是负责数据转发的设备,在转发大量数据报文的情况下,VTEP设备(ARP代理模块)能够在本地直接查找获取到目的MAC地址,并不需要在VTEP和VXLAN控制器之间频繁交互数据,有效提升了系统性能。

下面详细描述创建和维护地址映射表的具体细节。

在VXLAN网络中,VM的上线、数据交互等信息交互过程,均会触发VXLAN控制器对虚拟机的感知,VXLAN控制器具有设备节点的信息和拓扑关系,并具有VM的状态信息及位置信息。VXLAN控制器及时将VM的状态信息(创建、下线、迁移等)更新给VTEP。

在本发明中,所述地址映射表中的VM属于相同的VTEP或属于不同的VTEP,也就是说,VTEP所创建的地址映射表中不仅包括本地的VM(即该VTEP所管理的VM)的地址映射信息,还包括其他片段或子网的VM(即其他VTEP所管理的VM)的地址映射信息。

在VTEP根据本地的VM创建地址映射表的情况下,VXLAN控制器从虚拟机管理系统获取VM生命周期信息,包括VM的网络地址(IP地址)、物理地址(MAC地址)、运行状态、迁移状态等。VXLAN控制器向VTEP同步更新本地VM的信息。在ARP代理机制下,VTEP创建和维护地址映射表,实现本地VM的MAC地址和IP地址的绑定。

在VTEP根据其他片段或子网的VM创建地址映射表的情况下,VTEP之间通过动态路由扩展协议实现VXLAN隧道远端VM的信息的同步和更新。发送端VTEP将MAC地址更新和路由协议联动,动态将MAC地址信息通过路由协议发布和通知给其他的VTEP设备。接收端VTEP接收到VM信息后,查找地址映射表,对于未知MAC地址则新建MAC地址表项,对于已有表项则进行转发信息和绑定信息的更新。后续处理中,ARP代理模块根据更新后的信息实现ARP代答。

根据本发明实施例还提供一种VTEP设备,所述VTEP设备应用于VXLAN中,所述VTEP管理第一VM在所述VXLAN中的通信。在本实施例中,所述VTEP设备可看作源VTEP,第一VM可看作源VM;所述VXLAN中还包括目的VTEP,目的VTEP用于管理第二VM在所述VXLAN中的通信,第二VM可看作目的VM。

如图5所示,根据本发明实施例的VTEP设备包括:

创建模块51,用于创建并维护地址映射表,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;

接收模块52,用于接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;

地址确定模块53,用于根据所述第二VM的IP地址以及所述地址映射表的地址映射信息,确定所述第二VM的MAC地址;

报文应答模块54,用于向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

在本发明的一个实施例中,所述VXLAN还包括VXLAN控制器。参考图6,所述VTEP设备还包括:

第一地址获取模块55,用于通过所述VXLAN控制器获取所述第一VTEP管理的多个VM的地址映射信息;

所述创建模块51根据获取的所述多个VM的地址映射信息创建并维护所述地址映射表。

进一步地,继续参考图6,所述VTEP设备还包括:

第二地址获取模块56,用于通过路由扩展协议接收所述第二VTEP发送的所述第二VTEP管理的多个VM的地址映射信息;

所述创建模块51根据所述第二VTEP管理的多个VM的地址映射信息创建并维护所述地址映射表。

根据本发明实施例还提供一种VTEP设备,所述VTEP设备应用于VXLAN中,所述VTEP管理第一VM在所述VXLAN中的通信。在本实施例中,所述VTEP设备可看作源VTEP,第一VM可看作源VM;所述VXLAN中还包括目的VTEP,目的VTEP用于管理第二VM在所述VXLAN中的通信,第二VM可看作目的VM。

如图7所示,所述VTEP设备包括ARP代理模块71,所述ARP代理模块71进一步包括:

接收模块711,用于接收所述第一VM广播发送的ARP请求报文,其中所述ARP请求报文中包括第二VM的IP地址;

地址确定模块712,用于根据所述第二VM的IP地址以及预先创建的地址映射表确定所述第二VM的MAC地址,其中所述地址映射表中包括所述VXLAN的多个VM中的每个VM的MAC地址和IP地址的地址映射信息;

报文应答模块713,用于向所述第一VM发送ARP应答报文,其中所述ARP应答报文中携带有所述第二VM的MAC地址,以使所述第一VM根据所述第二VM的MAC地址发送VXLAN报文。

继续参考图7,所述VTEP设备还包括:

创建模块72,用于创建并维护所述地址映射表。

在本发明的一个实施例中,,所述VXLAN还包括VXLAN控制器;所述VTEP设备还包括:

第一地址获取模块73,用于通过所述VXLAN控制器获取所述第一VTEP管理的多个VM的地址映射信息;

所述创建模72块根据获取的所述多个VM的地址映射信息创建并维护地址映射表。

进一步地,所述VTEP设备还包括:

第二地址获取模块74,用于通过路由扩展协议接收所述第二VTEP发送的所述第二VTEP管理的多个VM的地址映射信息;

所述创建模块72根据所述第二VTEP管理的多个VM的地址映射信息创建并维护所述地址映射表。

本申请的方法的操作步骤与设备的结构特征对应,可以相互参照,不再一一赘述。

综上所述,根据本申请的技术方案,在VXLAN中的每个VTEP设备创建并维护地址映射表,VTEP设备接收到本地VM的ARP请求报文后,通过查找所述地址映射表获取目的VM的MAC地址,封装为ARP应答报文并返回至本地VM。通过本发明实施例,ARP请求报文在本地VTEP设备被终结,即ARP报文不会在VXLAN内广播,避免了ARP广播流量占用大量IP网络带宽的情况,有效提高网络处理性能。

并且,本发明通过在VTEP设备创建并维护地址映射表,即VTEP设备负责存储地址映射信息,而VTEP设备是负责数据转发的设备,在转发大量数据报文的情况下,VTEP设备能够在本地直接查找获取到目的MAC地址,并不需要在VTEP和VXLAN控制器之间频繁交互数据,有效提升了系统性能。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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