一种泛洪抑制方法、VXLAN网桥、网关及系统与流程

文档序号:16686034发布日期:2019-01-22 18:19阅读:730来源:国知局
一种泛洪抑制方法、VXLAN网桥、网关及系统与流程

本发明实施例涉及计算机通信技术领域,具体涉及一种泛洪抑制方法、vxlan网桥、网关及系统。



背景技术:

虚拟可扩展局域网(virtualextensiblelan,简称vxlan),是一种虚拟化(overlay)的网络技术,建立在物理ip(underlay)网络之上的虚拟以太网,使用mac(mediaaccesscontro,物理地址)inudp(userdatagramprotocol,用户数据报协议)的方法进行封装,共50字节的封装报文头。具备24位vxlan网络标识符vni(vxlannetworkidentifier,虚拟扩展本地网络标识符),打破目前广泛采用的vlan(virtuallocalareanetwork),虚拟局域网)所能表示的4096个隔离网络的限制,使用户可以创建16777216个相互隔离的虚拟网络,能够满足多租户环境和规模扩展的需求。vni取代vlan用来表示不同的vxlan网段,只有具有相同vni,处于同一vxlan网段的虚拟主机或虚拟服务器(virtualmachine,简称vm)才能相互通信。

图1为现有技术中vxlan网络示意图,如图1所示,vxlan网络包括骨干交换机(spine)、vxlan隧道节点(vxlantunnelendpoint,简称vtep)、边界节点(borderleaf)、外部路由器、虚拟交换机(vswitch)和虚拟机vm组成,vtep将虚拟机vm产生的数据封装到udp包头内再发送出去,虚拟机本身的mac地址和vlan信息在经过封装后不再作为数据转发的依据。在数据中心网络中,vtep一般指的是vxlan交换机。vtep之间通过vxlan隧道传输数据,vxlan隧道是指在两个vtep之间完成vxlan封装报文传输的逻辑隧道。业务报文在进入vxlan隧道时进行vxlan头、udp头、ip头封装后,通过三层转发透明地将封装后的报文传输给远端vtep,远端vtep对其进行出隧道解封装处理。

在vxlan网络中,vtep可以利用以太虚拟专用网络(ethernetvirtualprivatenetwork,简称evpn)协议进行vxlan隧道的建立与维护,并学习远端设备地址信息。evpn是rfc7432定义的一种网络技术,它使用边界网关协议(bordergatewayprotocol,简称bgp)作为上层控制协议,使得虚拟专用网络(virtualprivatenetwork,简称vpn)的拓扑更具灵活性。

evpn协议通过bgp互相同步evpn路由,其中常用的几种evpn路由类型包括:

evpn3类路由:vtep设备使用evpn3类路由互相感知,并建立vxlan隧道;

evpn2类路由:vtep设备使用evpn2类路由在vtep之间互相同步本地学到的vm信息,包括mac表项、arp表项等;

evpn5类路由:vtep设备使用evpn5类路由在vtep之间互相同步网络路由信息。

vxlan网络分为两种架构:vxlan集中式部署架构和vxlan分布式部署架构,图2为现有技术中vxlan集中式部署架构示意图,如图2所示,vxlan集中式部署架构,类似传统以太网络(接入层-核心层)部署架构,将overlay网络中的vtep设备区分为两层:vxlan网桥和vxlan网关。vxlan网桥是虚拟机vm接入的首台vtep设备,vxlan网桥上配置了vni,能够将vm通过接入的端口和vlan映射到vni。vm发送的报文都将在vxlan网桥封装成vxlan报文,通过vxlan隧道转发到其他vtep设备,包括其他vxlan网桥或vxlan网关。同物理(underlay)网络中的桥类似,vxlan网桥只能进行vxlan二层转发,即基于vxlanmac地址表,在同一个vni内进行二层转发,vxlan网桥上无法进行vxlan三层转发。vxlan网关是部署网关的vtep设备。如图2所示,vxlan网关一般不直接和vm(也称为服务器)直连,vxlan网关和所有vxlan网桥互联并建立vxlan隧道。来自vm设备的报文需要通过vxlan网桥封装成vxlan报文,经过vxlan隧道转发后,到达vxlan网关。同underlay网络中的核心网关相同,vxlan网关可以进行vxlan报文的三层转发,即基于vxlan路由表(vrfvirtualroutingforwarding,简称vrf)和地址解析协议(addressresolutionprotocol,简称arp)邻接表,进行跨vni的三层转发。

图3为现有技术中vxlan分布式部署架构示意图,如图3所示,在vxlan分布式部署架构中,overlay网络摒弃了传统网络的分层架构,通过将vtep配置为irb(integratedrouter&bridgegateway)分布式网关,实现接入和网关功能的融合。如图3所示,irb网关设备既有vxlan网桥功能,又有vxlan网关功能,vm只要接入irb设备,就能通过irb设备之间建立的vxlan隧道进行二、三层转发。

在vxlan网络中,由于网络拓扑架构具有大二层的特点,每个vni的广播域将扩展到部署该vni的所有vtep设备上,由此将带来arp泛洪问题:例如,当某台vm发出二层广播的arp请求报文请求另一台vm的mac地址时,该arp请求报文将被泛洪到这台vm所属的vni广播域内所有vtep设备上,对于一个大型数据中心网络,vtep设备数量多达数百台,因此一个arp请求报文将被复制数百份泛洪到vxlan网络中,从而对网络造成重大负担。

在vxlan集中式部署架构中,这一问题更为严重。由于在集中式部署架构中,服务器直连的vtep设备为vxlan网桥,vxlan网桥本身不部署三层网关,无法学习arp表项,也无法应答arp报文,因此vxlan网桥在收到arp请求报文后,只能无条件泛洪到全网,包括其他vxlan网桥和vxlan网关。图4为现有技术中vxlan集中式部署架构中arp请求报文泛洪示意图,如图4所示,vm1发送arp请求报文,请求vm5的arp信息。虽然vxlan网关已经有vm5的arp信息,但arp请求报文依然在vxlan网桥vtep1上被泛洪到全网所有vtep,包括vtep2、vtep3和vtep4,并在每台vtep上被泛洪到其下关联的所有主机vm。

针对vxlan网络的arp泛洪问题,目前有以下两种解决方案:(1)使用软件定义网络(softwaredefinednetwork,简称sdn)控制器进行arp抑制,即vxlan网桥将所有arp报文上送至sdn控制器,由sdn控制器代理arp应答;(2)在服务器直连的vxlan分布式网关上进行抑制,即vxlan分布式网关截获直连服务器发送的所有arp请求报文,查找本地保存的主机arp表项,将arp所请求的目的主机的mac通过arp应答报文应答给服务器。

然而,第一种方案只适用于部署了sdn控制器的数据中心网络,无法适用于不部署sdn控制器的数据中心网络,而且大量arp报文上送sdn控制器,造成sdn控制器的性能的巨大负担,而第二种方案只能适用于vxlan分布式vxlan网络场景,无法适用于集中式vxlan网络场景。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供了一种泛洪抑制方法、vxlan网桥、网关及系统。

第一方面,本发明实施例提供一种泛洪抑制方法,应用于可扩展虚拟局域网络vxlan中,包括:

接收虚拟机vm发送的地址解析协议第一arp请求报文,解析所述第一arp请求报文,确定目的ip地址;

若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址匹配本地存储的第一arp抑制表项,其中所述第一arp抑制表项是根据vxlan网关下发的第二arp抑制表项确定的;

若匹配成功,则基于所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述虚拟机vm。

如上述泛洪抑制方法,可选地,还包括:

若判断获知所述目的ip地址为网关ip地址,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关生成包含网关mac地址的第一arp应答报文,并获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项,并将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中;

接收所述vxlan网关发送的第一arp应答报文和所述第二arp抑制表项;

将所述第一arp应答报文单播至所述虚拟机vm;

根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

如上述泛洪抑制方法,可选地,还包括:

若匹配失败,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,并将所述第二arp请求报文泛洪至所述vxlan网络中的所有虚拟机vm,根据接收到的第二arp应答报文获取目的vm的arp表项,并将所述目的vm的arp表项增加到本地存储的第二arp抑制表项中,将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中,其中,所述第二arp请求报文的源mac地址为网关mac地址;

接收vxlan网关发送第二arp抑制表项;

根据所述第二arp抑制表项同步本地存储的第一arp抑制表项;

根据同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

如上述泛洪抑制方法,可选地,还包括:

缓存所述第一arp请求报文,若在第一预设时段内,未接收到包含所述第一arp请求报文中目的vm的第二arp抑制表项,则删除所述第一arp请求报文;

相应地,所述根据所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm,包括:

根据缓存的第一arp请求报文和同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

如上述泛洪抑制方法,可选地,所述接收虚拟机vm发送的地址解析协议第一arp请求报文之前,还包括:

接收vxlan网关下发的第二arp抑制表项,所述第二arp抑制表项包括vxlan网关的arp表项;

根据所述第二arp抑制表项建立第一arp抑制表项。

第二方面,本发明又一实施例提供一种泛洪抑制方法,应用于可扩展虚拟局域网络vxlan中,包括:

接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文;

解析所述第一arp请求报文,确定所述第一arp请求报文对应的目的ip地址;

若判断获知所述目的ip地址为网关ip地址,则生成包含网关mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述vxlan网桥,以供所述vxlan网桥将所述第一arp应答报文单播至所述虚拟机vm;

获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项;

将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

如上述泛洪抑制方法,可选地,还包括:

若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,其中,所述第二arp请求报文的源mac地址为网关mac地址;

向所述vxlan网络中的所有虚拟机vm泛洪所述第二arp请求报文;

接收所述第二arp请求报文对应的第二arp应答报文;

根据所述第二arp应答报文获取目的vm的arp表项;

在本地存储的第二arp抑制表项中增加所述目的vm的arp表项;

将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项,并根据所述第一arp抑制表项生成第一arp应答报文。

如上述泛洪抑制方法,可选地,还包括:

若在第二预设时段内,未更新所述第二arp抑制表项中的虚拟机vm的arp表项,则生成第三arp请求报文,所述第三arp请求报文的目的ip地址为所述虚拟机vm的ip地址,源mac地址为网关mac地址;

向所述虚拟机vm对应的vxlan网桥发送所述第三arp请求报文,以供所述vxlan网桥将所述第三arp请求报文泛洪至与其对应的所有虚拟机vm;

若未接收到所述第三arp请求报文对应的第三arp应答报文,则从所述第二arp抑制表项中删除所述虚拟机vm的arp表项;

将更新后的第二arp抑制表项下发至所述vxlan网络中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

如上述泛洪抑制方法,可选地,所述接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文之前,还包括:

获取网关的arp表项;

建立第二arp抑制表项,将所述网关的arp表项增加到所述第二arp抑制表项中;

将所述第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项建立第一arp抑制表项。

第三方面,本发明实施例提供一种vxlan网桥,应用于可扩展虚拟局域网络vxlan中,包括:

第一接收模块,用于接收虚拟机vm发送的地址解析协议第一arp请求报文,解析所述arp请求报文,确定目的ip地址;

匹配模块,用于若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址匹配本地存储的第一arp抑制表项,其中所述第一arp抑制表项是根据vxlan网关下发的第二arp抑制表项确定的;

第一应答模块,用于若匹配成功,则基于所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述虚拟机vm。

第四方面,本发明实施例提供一种vxlan网关,应用于可扩展虚拟局域网络vxlan中,包括:

第二接收模块,用于接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文;

解析模块,用于解析所述第一arp请求报文,确定所述第一arp请求报文对应的目的ip地址;

第二应答模块,用于若判断获知所述目的ip地址为网关ip地址,则生成包含网关mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述vxlan网桥,以供所述vxlan网桥将所述第一arp应答报文单播至所述虚拟机vm;

更新模块,用于获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项;

同步模块,用于将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

第五方面,本发明实施例提供一种泛洪抑制系统,应用于可扩展虚拟局域网络vxlan中,包括:至少一个如上所述的vxlan网桥和如上所述的vxlan网关。

本发明实施例提供的泛洪抑制方法,vxlan网桥根据vxlan网关下发的arp抑制表项确定本地存储的arp抑制表项,当vxlan网桥收到vm发送的arp请求广播报文后,从本地存储的arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文,从而避免了arp泛洪报文在vxlan网络中的泛洪。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中vxlan网络示意图;

图2为现有技术中vxlan集中式部署架构示意图;

图3为现有技术中vxlan分布式部署架构示意图;

图4为现有技术中vxlan集中式部署架构中arp请求报文泛洪示意图;

图5为本发明实施例提供的泛洪抑制方法流程示意图;

图6为本发明实施例提供的集中式vxlan网络示意图;

图7为本发明又一实施例提供的泛洪抑制方法流程示意图;

图8为本发明再一实施例提供的泛洪抑制方法流程示意图;

图9为本发明实施例提供的vxlan网桥的结构示意图;

图10为本发明实施例提供的vxlan网关的结构示意图;

图11为本发明实施例提供的泛洪抑制系统的结构示意图。

具体实施方式

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

图5为本发明实施例提供的泛洪抑制方法流程示意图,如图5所示,该泛洪抑制方法应用于可扩展虚拟局域网络vxlan中,包括以下步骤:

步骤s51、接收虚拟机vm发送的地址解析协议第一arp请求报文,解析所述第一arp请求报文,确定目的ip地址;

具体地,在集中式vxlan网络中,与虚拟机vm直接连接的vtep设备为vxlan网桥,当vxlan网络中的某个虚拟机vm需要获取其他虚拟机或者网关的arp信息时,首先生成地址解析协议请求报文,记为第一arp请求报文,第一arp请求报文中的源vm为该虚拟机vm,目的vm为所请求的其他虚拟机,目的网关为所请求的vxlan网关。由于与虚拟机vm直连的是vxlan网桥,vxlan网桥首先接收到第一arp请求报文,与现有技术直接将第一arp请求报文泛洪到vxlan网络中的所有vtep设备不同,本发明实施例中,vxlan网桥对接收到的第一arp请求报文进行解析,确定目的ip地址,例如,目的ip地址为网关ip地址,或者目的ip地址为其他虚拟机的ip地址等。

例如,图6为本发明实施例提供的集中式vxlan网络示意图,如图6所示,vxlan网络为vni10,vtep设备(包括vxlan网桥、vxlan网关)建立evpn邻居后,先通过evpn3类路由自动建立vxlan隧道。如图6所示:vtep1、vtep2、vtep3是vxlan网桥,vtep4是vxlan网关,vtep之间两两建立了vxlan隧道。vm1、vm2与vtep1直连,vm3与vtep2直连,vm4与vm5和vtep3直连,vm1的ip地址为ip_1,mac地址为mac_1,vm2的ip地址为ip_2,mac地址为mac_2,vm3的ip地址为ip_3,mac地址为mac_3,vm4的ip地址为ip_4,mac地址为mac_4,vm5的ip地址为ip_5,mac地址为mac_5。

当vm1请求vm5的arp信息时,vm1发出第一arp请求报文,第一arp请求报文是二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=ip_5。vtep1作为与vm1直连的vxlan网桥,首先接收到该第一arp请求报文,通过对报文进行解析,确定目的ip为ip_5。

步骤s52、若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址匹配本地存储的第一arp抑制表项,其中所述第一arp抑制表项是根据vxlan网关下发的第二arp抑制表项确定的;

具体地,获取目的ip地址之后,vxlan网桥判断目的ip地址是否为网关ip地址,若为非网关ip地址项,则根据目的ip地址匹配本地存储的arp抑制表项,记为第一arp抑制表项,查找在第一arp抑制表项中是否存在目的ip地址,由于vxlan网桥无法学习arp表项,因此在本发明实施例中,通过vxlan网关学习arp表项,生成arp抑制表项,记为第二arp抑制表项,vxlan网关将第二arp抑制表项下发到所有的vxlan网桥中,vxlan网桥根据第二arp抑制表项就可确定第一arp抑制表项,从而学习到arp表项。

例如,vtep1解析第一arp请求报文之后,获知目的ip地址为ip_5,非网关ip地址,则用ip_5匹配本地存储的第一arp抑制表项。

步骤s53、若匹配成功,则基于所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述虚拟机vm。

具体地,vxlan网桥若在本地存储的第一arp抑制表项中查找到目的ip地址,则根据目的ip地址确定目的mac地址,生成包含目的mac地址的第一arp应答报文,将第一arp应答报文封装为vxlan单播报文,发送至虚拟机vm。

例如,vtep1从本地存储的第一arp抑制表项中查找到ip_5和其对应的mac_5,则根据查找到的信息封装一个arp应答报文,包含mac_5的信息,单播至vm1。vm1收到后,学习到mac_5信息。由此,避免了vm请求vm的arp请求报文的泛洪。

本发明实施例提供的泛洪抑制方法,vxlan网桥根据vxlan网关下发的arp抑制表项确定本地存储的arp抑制表项,当vxlan网桥收到vm发送的arp请求广播报文后,从本地存储的arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文,从而避免了arp泛洪报文在vxlan网络中的泛洪。

在上述实施例的基础上,进一步地,该泛洪抑制方法还包括:

若判断获知所述目的ip地址为网关ip地址,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关生成包含网关mac地址的第一arp应答报文,并获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项,并将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中;

接收所述vxlan网关发送的第一arp应答报文和所述第二arp抑制表项;

将所述第一arp应答报文单播至所述虚拟机vm;

根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

具体地,在vxlan网络中,非哑终端vm配置好ip和网关信息后,会主动向vxlan网关发送第一arp请求报文,请求网关的mac信息,arp请求报文是二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=网关ip。

由于与vm直连的是vxlan网桥,vxlan网桥首先接收到第一arp请求报文,通过解析获知目的ip地址为网关ip地址,则将第一arp请求报文单播至vxlan网关,vxlan网关收到第一arp请求报文之后,生成包含网关mac地址的第一arp应答报文,并获取第一arp请求报文对应的源vm的arp表项,在本地存储的第二arp抑制表项中增加源vm的arp表项,第二arp抑制表项中关联存储了vm的ip地址、mac地址和下一跳信息。将第一arp应答报文,发送至与源vm直连的vxlan网桥,并通过evpn-2类路由将更新后的第二arp抑制表项同步到vxlan网络中所有的vxlan网桥中。

vxlan网桥接收到第一arp应答报文之后,将第一arp应答报文单播至虚拟机vm。

vxlan网络中的所有vxlan网桥根据第二arp抑制表项同步本地存储的第一arp抑制表项,增加该虚拟机vm的arp表项,从而学习到虚拟机的arp表项。

虚拟机vm接收到第一arp应答报文之后,学习到所请求的arp信息。

例如,假设vm1和vm5是非哑终端vm,当两台vm上配置好ip和网关信息后,会主动向网关(vtep4)发出arp请求报文,请求网关的mac信息。arp请求报文是二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=网关ip。

vtep1收到vm1发出的arp请求报文后,发现报文请求的目的ip地址为网关ip地址。vtep1将报文直接投递给vxlan网关。vtep3收到vm5发出的arp请求报文时,做同样的处理,由此,避免了vm请求网关的arp请求报文的泛洪。

vxlan网关收到vm1和vm5发送的目的ip地址为网关ip地址的arp请求报文后,做以下操作:1)学习到vm1和vm5的arp表项;2)封装arp应答报文,将网关arp信息应答给vm1和vm5。应答报文是二层以太网单播报文,目的mac分别是vm1和vm5的mac地址。3)将学习到的vm1和vm5的arp表项增加到本地存储的第二arp抑制表项中,通过evpn2类路由,将更新后的第二arp抑制表项同步给所有vxlan网桥。vtep1收到arp应答报文后,单播转发给vm1。vtep3收到arp应答报文后,单播转发给vm5。vtep1、vtep2、vtep3收到evpn2类路由后,在第一arp抑制表项中同步vm1和vm5的arp抑制表项。vm1收到arp应答报文后,学习到网关的mac地址。vm5收到arp应答报文后,学习到网关的mac地址。

本发明实施例提供的泛洪抑制方法,vxlan网关通过evpn协议同步的2类路由,将网关学习到的主机arp信息同步到vxlan网桥上,从而在vxlan网桥上生成一张arp抑制表项。当vxlan网桥收到vm发送的arp请求广播报文后,从arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文,从而避免了arp泛洪报文在vxlan网络中的泛洪。并且本发明实施例采用了rfc标准的evpn协议同步网关信息和vm的arp信息,避免使用私有协议,兼容性强。

在上述各实施例的基础上,进一步地,该泛洪抑制方法还包括:

若匹配失败,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,并将所述第二arp请求报文泛洪至所述vxlan网络中的所有虚拟机vm,根据接收到的第二arp应答报文获取目的vm的arp表项,并将所述目的vm的arp表项增加到本地存储的第二arp抑制表项中,将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中,其中,所述第二arp请求报文的源mac地址为网关mac地址;

接收vxlan网关发送第二arp抑制表项;

根据所述第二arp抑制表项同步本地存储的第一arp抑制表项;

根据同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

具体地,vxlan网络中的哑终端,配置好ip/网关信息后并不会主动向网关发起arp请求,因此网关学习不到该vm的arp信息,即第一arp抑制表项和第二arp抑制表项中都无法查找到该vm对应的arp信息,当第一次请求哑终端的arp信息时,vxlan网桥通过判断获知目的ip地址为非网关ip地址,但是匹配本地存储的第一arp抑制表项失败,则将第一arp请求报文发送至vxlan网关,vxlan网关获取第一arp请求报文中的源vm和目的vm,由于vxlan网关也未存储目的vm的arp表项,因此vxlan网关无法知晓目的vm的下一跳信息,vxlan网关根据目的vm生成第二arp请求报文,第二arp请求报文的源ip为网关ip,源mac地址为网关mac地址,第二arp请求报文的目的vm为第一arp请求的目的vm,vxlan网关将第二arp请求报文泛洪至vxlan网络中的所有虚拟机vm中,当目的vm接收到第二arp请求报文,将自身的arp信息封装为第二arp应答报文,发送至vxlan网关,vxlan网关接收到第二arp应答报文之后,学习到目的vm的arp信息,将目的vm的arp信息增加到本地存储的第二arp抑制表项,将更新后的第二arp抑制表项通过evpn-2类路由同步到所述vxlan网络中所有的vxlan网桥中。

vxlan网桥接收到第二arp抑制表项之后,根据第二arp抑制表项同步本地存储的第一arp抑制表项,并根据同步后的第一arp抑制表项,生成包含与目的ip地址对应的目的mac地址的第一arp应答报文,将第一arp应答报文单播至所请求的vm。这样,当下一次有arp请求报文的目的ip地址为新增加的vm的ip地址时,就可以直接通过vxlan网桥存储的第一arp抑制表项,直接生成应答报文,避免了arp请求哑终端报文的泛洪。

例如,假设vm3是一台哑终端,配置好ip/网关信息后并不会主动向网关发起arp请求,因此网关学习不到vm3的arp信息。当vm1请求vm3的arp信息时,发出arp请求,arp请求报文是二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=ip_3。

vtep1收到arp请求报文后,本地查找第一arp抑制表项,发现报文请求的目的ip未命中任何表项,则将报文直接投递给vxlan网关。vxlan网关收到vm1请求vm3的arp请求后,查找第二arp抑制表项,发现没有vm3的arp表项,则发起对vm3的arp打通操作:封装一份arp请求报文,报文为二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=ip_3;源ip=ip_gw,源mac=mac_gw。将这份arp广播报文将泛洪到全网所有vm,包括vm3。

vm3收到网关发出的arp打通报文后,将应答一份arp报文给vxlan网关,包含自身的arp信息。这是一份以太网二层单播报文,报文将单播转发到vxlan网关。vxlan网关收到arp应答报文后:学习到vm3的arp表项。将学习到的vm3的arp表项,通过evpn2类路由,同步给所有vxlan网桥。vtep1、vtep2、vtep3收到evpn2类路由后,生成vm3的arp抑制表项。vtep1生成vm3的arp抑制表项时,封装一个arp应答报文,包含vm3的arp信息,应答给vm1。vm1收到后,学习到vm3的arp信息。

之后当vm5需要请求vm3的arp时,发出arp请求报文。vtep3收到arp请求报文后,本地查找第一arp抑制表项,发现目的ip能够命中表项,则vtep3会封装一个arp应答报文,包含vm3的arp信息,应答给vm5,vm5收到后,学习到vm3的arp信息。

本发明实施例提供的泛洪抑制方法,当vxlan网桥收到arp请求报文,发现arp抑制表项中查找不到源vm或目的vm的arp信息时,vxlan网桥将arp请求报文单播送到vxlan网关,避免泛洪。vxlan网关收到该报文后,学习到源vm的arp表项,同时对目的vm发起arp打通,根据收到的arp应答报文学习目的vm的arp表项。本发明实施例提供的泛洪抑制方法,vxlan网关能快速学习到vm的arp表项,并将该表项同步到全网所有vxlan网桥,用于arp抑制,解决了vxlan网关无法学习到哑终端的arp表项的问题。

在上述各实施例的基础上,进一步地,所述泛洪抑制方法还包括:

缓存所述第一arp请求报文,若在第一预设时段内,未接收到包含所述第一arp请求报文中目的vm的第二arp抑制表项,则删除所述第一arp请求报文;

相应地,所述根据所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm,包括:

根据缓存的第一arp请求报文和同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

具体地,vxlan网桥在第一arp抑制表项中查找不到arp请求报文对应的目的ip地址时,还可以缓存第一arp请求报文,并启动计时器,若在第一预设时段内,例如5s内,未接收到vxlan网关发送的包含目的vm的第二arp抑制表项,则删除第一arp请求报文,之后再接到第二arp抑制表项时,由于第一arp请求报文已经删除,不再生成第一arp应答报文。若在第一预设时段内收到第二arp抑制表项,则根据缓存的第一arp请求报文和第一arp抑制表项,生成第一arp应答报文,将第一arp应答报文单播至vm,然后删除缓存的第一arp请求报文。

例如,当vm1请求vm3的arp信息时,发出arp请求报文,vtep1收到arp请求报文后,本地查找第一arp抑制表项,发现报文请求的目的ip地址未命中任何表项,则将报文直接投递给vxlan网关。同时,vtep1缓存一份arp请求信息(vm1请求vm3),启动定时器,用于老化这份请求信息。如果vtep1生成vm3的arp抑制表项时,查找本地缓存的arp请求信息,发现vm1请求vm3的请求信息已经老化删除,则不做arp应答。vm1发现请求vm3的arp请求失败,会再次发出请求vm3的arp请求报文。

vtep1收到arp请求报文后,本地查找第一arp抑制表项,发现报文请求的目的ip地址对应的mac地址,vtep1封装一个包含该mac地址的arp应答报文,应答给vm1。vm1收到后,学习到vm3的arp信息。

本发明实施例提供的泛洪抑制方法,通过在vxlan网桥缓存arp请求报文,在第一预设时段内接收到arp抑制表项时,基于同步后的arp抑制表项生成arp应答报文,将arp应答报文发送至虚拟机,避免arp请求报文泛洪。

在上述各实施例的基础上,进一步地,所述接收虚拟机vm发送的地址解析协议第一arp请求报文之前,还包括:

接收vxlan网关下发的第二arp抑制表项,所述第二arp抑制表项包括vxlan网关的arp表项;

根据所述第二arp抑制表项建立第一arp抑制表项。

具体地,vxlan网关配置ip地址后,建立第二arp抑制表项,在第二arp抑制表项中增加网关的arp表项,并通过evpn-2类路由下发至vxlan网络中的所有vxlan网桥上,vxlan网桥接收到第二arp抑制表项后,建立第一arp抑制表项,存储网关的arp信息和下一跳信息。

之后,当vxlan网关下发包含虚拟机arp表项的第二arp抑制表项时,vxlan网桥在第一arp抑制表项中增加该的虚拟机arp表项,这样第一arp抑制表项包括vm的arp表项和vxlan网关的arp表项,每个arp表项包括ip地址、mac地址和下一跳信息。例如,如图6所示,第一arp抑制表项中网关的arp表项为:ip_gw/mac_gw:vtep4(gw),表示vxlan网关的ip地址为ip_gw,mac地址为mac_gw,下一跳是通向vtep4的隧道。第一arp抑制表项中vm5的arp表项为:ip_5/mac_5:vtep3,表示vm5的ip地址为ip_5,mac地址为mac_5,下一跳是通向vtep3的隧道。这样,当vm1请求vm5的arp信息时,vm1发送arp请求报文,与vm1直连的vtep1(vxlan网桥)接收到arp请求报文之后,解析到该报文,确定目的vm为vm5,通过查找本地存储的第一arp抑制表项,查找到vm5的arp表项,然后将ip_5/mac_5封装成arp应答报文,单播发送至vm1,从而避免arp请求报文泛洪。

在实际应用中,vxlan网关配置ip地址后,还可以将自身的arp表项(mac_gw/ip_gw)作为evpn-2类路由,标记isgateway,发送给vxlan网络中的所有vxlan网桥。vxlan网桥收到这条evpn-2类路由后,根据路由中携带的isgateway标志,判断这是网关的arp信息。vxlan网桥从这条evpn-2类路由中提取出网关的arp信息,新建并保存到第一arp抑制表项中,ip_gw/mac_gw:vtep4(gw),这样,vxlan网桥就可获知哪个vtep为网关设备,与之连接的vxlan隧道是什么,当arp请求报文的目的ip地址为网关ip地址时,直接将该请求报文投递至与网关对应的隧道,避免了投向网关的arp请求报文的泛洪。

本发明实施例提供的泛洪抑制方法,通过在vxlan网桥缓存arp抑制表项,在arp抑制表项中保存网关arp表项和虚拟机arp表项,从而既避免了虚拟机请求虚拟机的arp请求报文的泛洪,又避免了虚拟机请求网关的arp请求报文的泛洪。

图7为本发明又一实施例提供的泛洪抑制方法流程示意图,如图7所示,该泛洪抑制方法应用于可扩展虚拟局域网络vxlan中,包括以下步骤:

步骤s71、接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文;

具体地,在集中式vxlan网络中,与虚拟机vm直接连接的vtep设备为vxlan网桥,当vxlan网络中的某个虚拟机vm需要获取其他虚拟机或者网关的arp信息时,首先生成地址解析协议请求报文,记为第一arp请求报文,第一arp请求报文中的源vm为该虚拟机vm,目的vm为所请求的其他虚拟机,目的网关为所请求的vxlan网关。由于与虚拟机vm直连的是vxlan网桥,vxlan网桥首先接收到第一arp请求报文,vxlan网桥接收到第一arp请求报文之后,获取目的ip地址,判断目的ip地址为网关ip地址,或者不能匹配本地存储的第一arp抑制表项,则将第一arp请求报文单播至vxlan网关,vxlan网关通过隧道接收到vxlan网桥发送的虚拟机vm发送的第一arp请求报文。

步骤s72、解析所述第一arp请求报文,确定所述第一arp请求报文对应的目的ip地址;

具体地,vxlan网关接收到第一arp请求报文之后,对第一arp请求报文进行解析,确定目的ip地址,例如,目的ip地址为网关ip地址,或者目的ip地址为其他虚拟机ip地址等。

步骤s73、若判断获知所述目的ip地址为网关ip地址,则生成包含网关mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述vxlan网桥,以供所述vxlan网桥将所述第一arp应答报文单播至所述虚拟机vm;

具体地,vxlan网关判断目的ip地址为网关ip地址时,根据自己的arp信息生成第一arp应答报文,将第一arp应答报文封装为vxlan单播报文,发送至与第一arp请求报文对应的vxlan网桥,vxlan网桥接收到第一arp应答报文之后,将第一arp应答报文单播至虚拟机vm,虚拟机vm学习到网关arp信息。

步骤s74、获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项;

具体地,在vxlan网络中,非哑终端在配置好ip和网关信息之后,会主动向网关(vtep4)发出arp请求,请求网关的mac信息。arp请求报文是二层以太网广播报文,目的mac:ffff.ffff.ffff,请求的目的ip=网关ip。因此,当vxlan网关接收到第一arp请求,并判断目的ip地址为网关ip地址时,获取第一arp请求对应的源vm的arp表项,在本地存储的第二arp抑制表项中增加该虚拟机vm的arp表项。第二arp抑制表项中关联存储了vm的ip地址、mac地址和下一跳信息。

步骤s75、将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

具体地,vxlan网关通过evpn-2类路由将更新的第二arp抑制表项同步到vxlan网络中所有的vxlan网桥中。各个vxlan网桥接收第二arp抑制表项之后,根据第二arp抑制表项同步本地存储的第一arp抑制表项,使第一arp抑制表项与第二arp抑制表项保持一致。

本发明实施例提供的泛洪抑制方法,vxlan网关通过evpn协议同步的2类路由,将网关学习到的主机arp信息同步到vxlan网桥上,从而在vxlan网桥上生成一张arp抑制表项。当vxlan网桥收到vm发送的arp请求广播报文后,从arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文,从而避免了arp泛洪报文在vxlan网络中的泛洪。并且本发明实施例采用了rfc标准的evpn协议同步网关信息和vm的arp信息,避免使用私有协议,兼容性强。

在上述实施例的基础上,进一步地,该泛洪抑制方法还包括:

若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,其中,所述第二arp请求报文的源mac地址为网关mac地址;

向所述vxlan网络中的所有虚拟机vm泛洪所述第二arp请求报文;

接收所述第二arp请求报文对应的第二arp应答报文;

根据所述第二arp应答报文获取目的vm的arp表项;

在本地存储的第二arp抑制表项中增加所述目的vm的arp表项;

将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项,并根据所述第一arp抑制表项生成第一arp应答报文。

具体地,vxlan网络中的哑终端,配置好ip/网关信息后并不会主动向网关发起arp请求,因此网关学习不到该vm的arp信息,即第一arp抑制表项和第二arp抑制表项中都无法查找到该vm对应的arp信息,当第一次请求哑终端的arp信息时,vxlan网桥通过判断获知目的ip地址为非网关ip地址,但是匹配本地存储的第一arp抑制表项失败,则将第一arp请求报文发送至vxlan网关,vxlan网关根据第一arp请求报文判断目的ip地址为非网关ip地址,获取第一arp请求报文中的源vm和目的vm,vxlan网关根据目的vm生成第二arp请求报文,报文的源ip地址为网关ip地址,源mac地址为网关mac地址,目的vm为第一arp请求的目的vm,由于vxlan网关也未存储目的vm的arp表项,因此vxlan网关无法知晓目的vm的下一跳信息,vxlan网关将第二arp请求报文泛洪至vxlan网络中的所有虚拟机vm中,当目的vm接收到第二arp请求报文,将自身的arp信息封装为第二arp应答报文,发送至vxlan网关,vxlan网桥接收到第二arp应答报文之后,学习到目的vm的arp信息,并更新本地存储的第二arp抑制表项,这样在第二arp抑制表项中就存储了该目的vm的arp表项,将第二arp抑制表项通过evpn-2类路由同步到所述vxlan网络中所有的vxlan网桥中。

vxlan网桥接收到第二arp抑制表项之后,根据第二arp抑制表项同步本地存储的第一arp抑制表项,然后根据同步后的第一arp抑制表项生成第一arp应答报文,单播至所请求的vm。这样,当下一次有arp请求报文的目的ip地址为新增的vm的ip地址时,就可以直接通过vxlan网桥存储的第一arp抑制表项,直接生成应答报文,避免了arp请求哑终端报文的泛洪。

本发明实施例提供的泛洪抑制方法,当vxlan网桥收到arp请求报文,发现arp抑制表项中查找不到源vm或目的vm的arp信息时,vxlan网桥将arp请求报文单播送到vxlan网关,避免泛洪。vxlan网关收到该报文后,学习到源vm的arp表项,同时对目的vm发起arp打通,根据收到的arp应答报文学习目的vm的arp表项。本发明实施例提供的泛洪抑制方法,vxlan网关能快速学习到vm的arp表项,并将该表项同步到全网所有vxlan网桥,用于arp抑制,解决了vxlan网关无法学习到哑终端的arp表项的问题。

在上述各实施例的基础上,进一步地,该泛洪抑制方法还包括:

若在第二预设时段内,未更新所述第二arp抑制表项中的虚拟机vm的arp表项,则生成第三arp请求报文,所述第三arp请求报文的目的ip地址为所述虚拟机vm的ip地址,源mac地址为网关mac地址;

向所述虚拟机vm对应的vxlan网桥发送所述第三arp请求报文,以供所述vxlan网桥将所述第三arp请求报文泛洪至与其对应的所有虚拟机vm;

若未接收到所述第三arp请求报文对应的第三arp应答报文,则从所述第二arp抑制表项中删除所述虚拟机vm的arp表项;

将更新后的第二arp抑制表项下发至所述vxlan网络中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

具体地,vxlan网关每更新第二arp抑制表项中的一个vm的arp表项时,vxlan网关对该vm计时,若在第二时段内,例如3600s内,未更新该vm的arp表项,则表示该arp表项已经老化,此时需要由vxlan网关发起arp打通。vxlan网关生成第三arp请求报文,第三arp请求报文的目的vm为老化的vm,源ip地址为网关ip地址,源mac地址为网关mac地址;由于第二arp抑制表项中存储了vm的下一跳信息,因此,vxlan网关可以直接根据下一跳信息将第三arp请求报文发送至vm对应的vxlan网桥,vxlan网桥将第三arp请求报文泛洪至与其直连的所有vm,如果,老化的vm在线,则vxlan网桥会接收到第三arp应答报文,将第三arp应答报文发送至vxlan网关。

若老化的vm已经下线,则vxlan网桥无法接收到第三arp应答报文,vxlan网关在一段时间内没有接收到第三arp应答报文,则将vm的arp表项从第二arp抑制表项中删除,然后将更新后的第二arp抑制表项同步至vxlan网络中所有的vxlan网桥,vxlan网桥根据第二arp抑制表项同步本地存储的第一arp抑制表项。

例如,图8为本发明再一实施例提供的泛洪抑制方法流程示意图,如图8所示,vxlan网关的vm1的arp表项老化,发起arp打通:根据arp表项保存的下一跳(vtep1),封装一个vxlan广播报文,发送给通向vtep1的隧道,图8中密集虚线箭头所示为arp打通流程,vtep1收到arp打通报文后,向下联的所有vm广播。由于vm1已经下线,没有vm应答该arp报文。vxlan网关打通失败,则删除vm1对应的arp表项,并发送evpn2类路由,通告所有vxlan网桥删除vm1的arp,表项,图8中点划线箭头所示为vtep4将第二arp抑制表项发送至vxlan网桥,vxlan网桥同步第一arp抑制表项。

本发明实施例提供的泛洪抑制方法,将vxlan网关的arp信息同步到vxlan网桥,用于生成arp抑制表项,当网关的中某个arp表项老化删除后,通过evpn协议通告vxlan网桥删除arp表项,保证了arp抑制行为和网关学习的arp表项保持一致,避免了vxlan网桥独立生成和维护抑制表项。

在上述各实施例的基础上,进一步地,该泛洪抑制方法还包括:

所述接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文之前,还包括:

获取网关的arp表项;

建立第二arp抑制表项,将所述网关的arp表项增加到所述第二arp抑制表项中;

将所述第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项建立第一arp抑制表项。

具体地,vxlan网关配置ip地址后,新建第二arp抑制表项,将自身的arp表项(mac_gw/ip_gw)增加到第二arp抑制表项中,并将第二arp抑制表项作为evpn-2类路由,标记isgateway,同步给vxlan网络中的所有vxlan网桥。vxlan网桥接收到该evpn-2类路由后,根据路由中携带的isgateway标志,判断是网关的arp信息。vxlan网桥从该evpn-2类路由中提取出网关的arp信息,新建并保存到第一arp抑制表中。这样,当有发送至vxlan网关的arp请求报文时,根据保存的网关arp信息就可以直接发送至通向网关的隧道,避免了vm请求网关的arp请求报文的泛洪。

本发明实施例提供的泛洪抑制方法,vxlan网关将网关的arp信息泛洪至所有vxlan网桥,vxlan网桥缓存vxlan网关的arp表项,避免了虚拟机请求网关的arp请求报文的泛洪。

图9为本发明实施例提供的vxlan网桥的结构示意图,如图9所示,该vxlan网桥包括:第一接收模块91、匹配模块92和第一应答模块93,其中:

第一接收模块91用于接收虚拟机vm发送的地址解析协议第一arp请求报文,解析所述arp请求报文,确定目的ip地址;匹配模块92用于若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址匹配本地存储的第一arp抑制表项,其中所述第一arp抑制表项是根据vxlan网关下发的第二arp抑制表项确定的;第一应答模块93用于用于若匹配成功,则基于所述第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述虚拟机vm。

具体地,当vxlan网络中的某个虚拟机vm需要获取其他虚拟机或者网关的arp信息时,首先生成第一arp请求报文,第一arp请求报文中的源vm为该虚拟机vm,第一接收模块91对接收到的第一arp请求报文进行解析,确定目的ip地址,例如,目的ip地址为网关目的ip地址,或者目的ip地址为其他虚拟机ip地址等。匹配模块92判断目的ip地址是否为网关ip地址,若为非网关ip地址,则根据目的ip地址匹配本地存储的第一arp抑制表项,查找在第一arp抑制表项中是否存在目的ip地址。如果vxlan网桥若在本地存储的第一arp抑制表项中查找到目的ip地址,则第一应答模块93根据目的p地址对应的mac地址等信息生成第一arp应答报文,将第一arp应答报文封装为vxlan单播报文,发送至虚拟机vm。其中第一arp抑制表项是根据vxlan网关下发的第二arp抑制表项确定的。

在实际应用中,该vxlan网桥还可以包括:

第一发送模块和第一同步模块;

所述第一发送模块,用于若判断获知所述目的ip地址为网关ip地址,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关生成包含网关mac地址的第一arp应答报文,并获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项,并将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中;

相应地,所述第一接收模块还用于:

接收所述vxlan网关发送的第一arp应答报文和所述第二arp抑制表项;

相应地,所述第一应答模块具体用于:

将所述第一arp应答报文单播至所述虚拟机vm;

所述第一同步模块,用于根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

在实际应用中,所述第一发送模块还可以用于:

若匹配失败,则将所述第一arp请求报文单播至vxlan网关,以供所述vxlan网关根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,并将所述第二arp请求报文泛洪至所述vxlan网络中的所有虚拟机vm,根据接收到的第二arp应答报文获取目的vm的arp表项,并将所述目的vm的arp表项增加到本地存储的第二arp抑制表项中,将更新后的第二arp抑制表项下发到所述vxlan网络中所有的vxlan网桥中,其中,所述第二arp请求报文的源mac地址为网关mac地址;

接收vxlan网关发送第二arp抑制表项;

根据所述第二arp抑制表项同步本地存储的第一arp抑制表项;

根据同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

相应地,所述第一应答模块还用于:

根据同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

在实际应用中,该vxlan网桥还可以包括:

第一缓存模块,用于缓存所述第一arp请求报文,若在第一预设时段内,未接收到包含所述第一arp请求报文中目的vm的第二arp抑制表项,则删除所述第一arp请求报文;

相应地,所述第一应答模块具体用于:

根据缓存的第一arp请求报文和同步后的第一arp抑制表项生成包含与所述目的ip地址对应的目的mac地址的第一arp应答报文,将所述第一arp应答报文单播至所述虚拟机vm。

本发明实施例提供的装置,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的vxlan网桥,vxlan网桥根据vxlan网关下发的arp抑制表项确定本地存储的arp抑制表项,当收到vm发送的arp请求广播报文后,从本地存储的arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文。从而避免了arp泛洪报文在vxlan网络中的泛洪。

图10为本发明实施例提供的vxlan网关的结构示意图,如图10所示,该vxlan网关包括:第二接收模块101、解析模块102、第二应答模块103、更新模块104和同步模块105,其中:

第二接收模块101用于接收vxlan网桥转发的虚拟机vm发送的地址解析协议第一arp请求报文;解析模块102用于解析所述第一arp请求报文,确定所述第一arp请求报文对应的目的ip地址;第二应答模块103用于若判断获知所述目的ip地址为网关ip地址,则生成包含网关mac地址的第一arp应答报文,将所述第一arp应答报文封装为vxlan单播报文,发送至所述vxlan网桥,以供所述vxlan网桥将所述第一arp应答报文单播至所述虚拟机vm;更新模块104于获取所述虚拟机vm的arp表项,在本地存储的第二arp抑制表项中增加所述虚拟机vm的arp表项;同步模块105用于将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项。

具体地,当vxlan网络中的某个虚拟机vm需要获取其他虚拟机或者网关的arp信息时,首先第一arp请求报文,第一arp请求报文中的源vm为该虚拟机vm,由于与虚拟机vm直连的是vxlan网桥,vxlan网桥首先接收到第一arp请求报文,vxlan网桥接收到第一arp请求报文之后,获取目的ip地址,判断目的ip地址为网关ip地址,或者不能匹配本地存储的第一arp抑制表项,则将第一arp请求报文单播至第二接收模块101,第二接收模块101通过隧道接收到vxlan网桥发送的虚拟机vm发送的第一arp请求报文。解析模块102对第一arp请求报文进行解析,确定目的ip地址。第二应答模块103判断目的ip地址为网关ip地址时,根据自身的arp信息生成第一arp应答报文,将第一arp应答报文封装为vxlan单播报文,发送至与第一arp请求报文对应的vxlan网桥,vxlan网桥接收到第一arp应答报文之后,将第一arp应答报文单播至虚拟机vm,虚拟机vm学习到网关arp信息。更新模块104获取第一arp请求对应的源vm的arp表项,在第二arp抑制表项中增加盖arp抑制表项,第二arp抑制表项中关联存储了vm的ip地址、mac地址和下一跳信息。同步模块105通过evpn-2类路由将更新后的第二arp抑制表项同步到vxlan网络中所有的vxlan网桥中。各个vxlan网桥接收第二arp抑制表项之后,根据第二arp抑制表项同步本地存储的第一arp抑制表项,使第一arp抑制表项与第二arp抑制表项保持一致。

在实际应用中,该vxlan网关还可以包括:

获取模块,用于若判断获知所述目的ip地址为非网关ip地址,则根据所述目的ip地址确定目的vm,生成包含目的ip地址的第二arp请求报文,其中,所述第二arp请求报文的源mac地址为网关mac地址;

泛洪模块,用于向所述vxlan网络中的所有虚拟机vm泛洪所述第二arp请求报文;

相应地,所述第二接收模块还用于:接收所述第二arp请求报文对应的第二arp应答报文;

相应地,所述获取模块还用于:根据所述第二arp应答报文获取目的vm的arp表项;

相应地,所述更新模块还用于:在本地存储的第二arp抑制表项中增加所述目的vm的arp表项;

相应地,所述同步模块还用于将更新后的第二arp抑制表项下发到所述vxlan中所有的vxlan网桥中,以供所述vxlan网桥根据所述第二arp抑制表项同步本地存储的第一arp抑制表项,并根据所述第一arp抑制表项生成第一arp应答报文。

在实际应用中,该vxlan网关还可以包括:

第二缓存模块,用于若在第二预设时段内,未更新所述第二arp抑制表项中的虚拟机vm的arp表项,则生成第三arp请求报文,所述第三arp请求报文的目的ip地址为所述虚拟机vm的ip地址,源mac地址为网关mac地址;

打通模块,用于向所述虚拟机vm对应的vxlan网桥发送所述第三arp请求报文,以供所述vxlan网桥将所述第三arp请求报文泛洪至与其对应的所有虚拟机vm;

相应地,所述更新模块还用于:若未接收到所述第三arp请求报文对应的第三arp应答报文,则从所述第二arp抑制表项中删除所述虚拟机vm的arp表项;本发明实施例提供的装置,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的vxlan网关,通过evpn协议同步的2类路由,将网关学习到的主机arp信息同步到vxlan网桥上,从而在vxlan网桥上生成一张arp抑制表项。当vxlan网桥收到vm发送的arp请求广播报文后,从arp抑制表项中查找目的vm的arp信息,查找到后,直接代理应答arp报文,从而避免了arp泛洪报文在vxlan网络中的泛洪。并且本发明实施例采用了rfc标准的evpn协议同步网关信息和vm的arp信息,避免使用私有协议,兼容性强。

图11为本发明实施例提供的泛洪抑制系统的结构示意图,如图11所示,所述泛洪抑制系统包括:vxlan网桥111和vxlan网关112,所述泛洪抑制系统中的vxlan网桥111,其功能具体参照上述vxlan网桥实施例,所述泛洪抑制系统中的vxlan网关112,其功能具体参照上述vxlan网关实施例,此处不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

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

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。

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