构建VXLAN集中式多活网关的方法和设备与流程

文档序号:14252983阅读:2280来源:国知局
构建VXLAN集中式多活网关的方法和设备与流程

本发明涉及通信技术领域,尤其涉及一种构建vxlan集中式多活网关的方法和设备。



背景技术:

可扩展虚拟局域网(英文全称:virtualextensiblelocalareanetwork,简称:vxlan)基于互联网协议(英文全称:internetprotocol,简称:ip)网络、采用媒体访问控制(英文全称:mediaaccesscontrol,简称:mac)in用户数据协议(英文全称:userdatagramprotocol,简称:udp)封装形成虚拟专用网络的技术。vxlan可以基于已有的服务提供商企业ip网络为分散的物理接入点二层互联,并能够为不同的租户提供业务隔离。

参照图1所示,vxlan集中部署架构将重叠(英文全称:overlay)网络中的虚拟扩展本地网络隧道终结节点(英文名称:vxlantunnelendpoint,简称:vtep)设备区分为两层:vxlan网桥和vxlan网关;其中,vxlan网桥是虚拟服务器接入的首台vtep设备。vxlan网桥上配置了虚拟扩展本地网络标识符(英文名称:vxlannetworkidentifier,简称:vni)能够将虚拟服务器通过接入的端口和vlan映射到vni。虚拟服务器发送的报文都将在vxlan网桥封装成vxlan报文,通过vxlan隧道转发到其他vtep设备(vxlan网桥或vxlan网关)。并且vxlan网桥只能进行vxlan二层转发,即:基于vxlanmac地址表项,在同一个vni内进行二层转发,无法进行vxlan三层转发。vxlan网关一般不直接和虚拟服务器直连,vxlan网关和所有vxlan网桥互联并建立vxlan隧道。来自虚拟服务器的报文需要通过vxlan网桥封装成vxlan报文,经过vxlan隧道转发后,到达vxlan网关。vxlan网关可以进行vxlan报文的三层转发,即:基于vxlan路由表和arp邻接表,进行跨vni的三层转发。由于一个vni只有一个ip地址,所以传统的集中式vxlan三层转发,一个vni只能有一个网关,这样虚拟服务器的三层流量转发都需要先转发到全vxlan唯一的网关触发路由,因此可能会导致单点故障的风险,并可能会产生数据绕行。

为解决上述问题,现有技术中的一种方案为在集中式vxlan的vxlan网关上部署设备堆叠,虽然在集中式vxlan的vxlan网关上部署设备堆叠可以解决单台vxlan网关物理层的转发故障,但在控制面上,堆叠设备依然是单活,无法预防控制面的软件故障。现有技术中的另一种方案为:通过虚拟路由冗余协议(英文名称:virtualrouterredundancyprotocol,简称vrrp)在集中式vxlan的vxlan网关上部署冗余设备;这种在集中式vxlan的vxlan网关上部署冗余设备虽然可以解决单点故障的风险,但vrrp网关之间的关系是主备关系,即同一时刻只有其中一台网关能够正常工作,无法实现多活网关对网络的充分利用。现有技术中的再一种方案为:通过私有协议组成集中式vxlan的多活网关组,手动配置网关成员,在网关成员之间通过私有协议进行报文转发以及表项同步。虽然该方案能够实现集中式vxlan的多活网关,但是依赖私有协议,无法与标准vtep设备兼容。且该方案不支持动态扩展网关组,每当新增网关组成员时,都需要对所有网关组重新配置。而且由于不开启evpn协议,当网络拓扑变化时,需要手动修改隧道配置。

综上,现有技术构建的vxlan无法在实现vxlan集中式多活网关的同时使vxlan网关与vxlan网桥之间自动创建隧道。



技术实现要素:

本发明的实施例提供一种构建vxlan集中式多活网关的方法和设备,用于构建可以使vxlan网关与vxlan网桥之间自动创建隧道的vxlan集中式多活网关。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种构建vxlan集中式多活网关的方法,用于vxlan中的任一vxlan网关,所述vxlan包括:多个vxlan网关和至少一个vxlan网桥;所述方法包括:

接收ip配置指令;所述ip配置指令携带有vtep-ip,且所述多个vxlan网关接收到的ip配置指令中携带的vtep-ip相同;

将所述ip配置指令中携带的vtep-ip配置为自身的vtep-ip;

根据边界路由协议bgp-evpn协议与所述vxlan中的其他vxlan网关和vxlan网桥间相互建立bgp邻居;

与各bgp邻居之间相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的,所述方法还包括:

接收第一vxlan网桥通过evpn2类路由发送的虚拟服务器媒体访问控制mac地址表项,或者mac地址表项变更或删除通告;所述第一vxlan网桥为所述vxlan中的任一vxlan网桥,所述evpn2类路由携带有所述第一vxlan网桥的第一vtep-ip;

当到接收到第一vxlan网桥通过evpn2类路由发送的mac地址表项时,根据所述第一vtep-ip,获取与第一vxlan网桥创建的第一vxlan隧道,将所述虚拟服务器mac地址表项的下一跳修改为所述第一vxlan隧道的接口,并学习修改后的虚拟服务器mac地址表项;

当到接收到第一vxlan网桥通过evpn2类路由发送的mac地址表项变更或删除通告时,根据所述mac地址表项变更或删除通告变更或删除本地维护的mac表中与所述mac地址表项变更或删除通告对应的mac地址表项。

可选的,所述方法还包括:

接收虚拟服务器发送的apr请求或虚拟服务器发送的arp应答;

根据所述apr请求或所述arp应答学习arp表项;

通过evpn2类路由将所述arp表项发送到所有bgp邻居,所述evpn2类路由中携带有所述arp表项的下一跳的对端设备的vtep-ip;以便所述vxlan中的其他vxlan网关根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道,将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,所述方法还包括:

接收其他vxlan网关通过evpn2类路由发送的arp表项;其中,所述evpn2类路由中携带有所述arp表项的下一跳的对端设备的vtep-ip;

根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道;

将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,在接收虚拟服务器发送的apr请求或虚拟服务器发送的arp应答之前,所述方法还包括:

判断根据所述apr请求或所述arp应答学习的arp表项未使用时间长度是否大于老化周期;

若是,则向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

可选的,所述方法还包括:

接收第一vxlan网关的bgp邻居删除信息;所述第一vxlan网关为所述vxlan中的任一vxlan网关;

根据所述bgp邻居删除信息获取第一arp表项;所述第一arp表项为通过第一vxlan网关发送的evpn2类路由学习到的arp表项;

根据所述第一arp表项向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

第二方面,提供一种构建vxlan集中式多活网关的方法,用于vxlan中的vxlan网桥,所述vxlan包括:多个vxlan网关和至少一个vxlan网桥;所述方法包括:

接收ip配置指令;所述ip配置指令携带有vtep-ip,且所述vxlan网桥接收到的ip配置指令中携带的vtep-ip与任一所述vxlan网关或所述vxlan中其他vxlan网桥的vtep-ip不同;

将所述ip配置指令中携带的vtep-ip地址配置为自身的ip;

根据bgp-evpn协议与所述vxlan中的vxlan网关和其他vxlan网桥间均相互建立bgp邻居;

与各bgp邻居之相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的,所述方法还包括:

若学习到虚拟服务器mac地址表项,则通过evpn2类路由将所述虚拟服务器mac地址表项同步到各bgp邻居;

若发现mac地址变更或删除,则通过evpn2类路由向各bgp邻居发送mac地址表项变更或删除通告;

其中,所述evpn2类路由携带有自身的vtep-ip。

第三方面,提供一种vxlan网关,vxlan包括:多个所述vxlan网关和至少一个vxlan网桥;所述vxlan网关包括:

收发单元,用于接收ip配置指令;其中,所述ip配置指令携带有vtep-ip,且所述多个vxlan网关接收到的ip配置指令中携带的vtep-ip相同;

处理单元,用于将所述ip配置指令中携带的vtep-ip地址配置为自身的vtep-ip;

bgp邻居建立单元,用于根据bgp-evpn协议与所述vxlan中的其他vxlan网关和vxlan网桥间相互建立bgp邻居;

隧道创建单元,用于与各bgp邻居之间相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的,所述收发单元还用于接收第一vxlan网桥通过evpn2类路由发送的虚拟服务器mac地址表项,或者mac地址表项变更或删除通告;其中,所述第一vxlan网桥为所述vxlan中的任一vxlan网桥,所述evpn2类路由携带有所述第一vxlan网桥的第一vtep-ip;

当到接收到第一vxlan网桥通过evpn2类路由发送的mac地址表项时,所述处理单元还用于根据所述第一vtep-ip,获取与第一vxlan网桥创建的第一vxlan隧道,将所述虚拟服务器mac地址表项的下一跳修改为所述第一vxlan隧道的接口,并学习修改后的虚拟服务器mac地址表项;

当到接收到第一vxlan网桥通过evpn2类路由发送的mac地址表项变更或删除通告时,所述处理单元还用于根据所述mac地址表项变更或删除通告变更或删除本地维护的mac表中与所述mac地址表项变更或删除通告对应的mac地址表项。

可选的,所述收发单元还用于接收虚拟服务器发送的apr请求或虚拟服务器发送的arp应答;

所述处理单元还用于根据所述apr请求或所述arp应答学习arp表项;

所述收发单元还用于通过evpn2类路由将所述arp表项发送到所有bgp邻居,所述evpn2类路由中携带有所述arp表项的下一跳的对端设备的vtep-ip;以便所述vxlan中的其他vxlan网关根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道,将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,所述收发单元还接收其他vxlan网关通过evpn2类路由发送的arp表项;其中,所述evpn2类路由中携带有所述arp表项的下一跳的对端设备的vtep-ip;

所述处理单元还用于根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道;将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,所述处理单元还用于判断根据所述apr请求或所述arp应答学习的arp表项未使用时间长度是否大于老化周期;若是,则向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

可选的,所述收发单元还用于接收第一vxlan网关的bgp邻居删除信息;所述第一vxlan网关为所述vxlan中的任一vxlan网关;

所述处理单元还用于根据所述bgp邻居删除信息获取第一arp表项,根据所述第一arp表项向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答;所述第一arp表项为通过第一vxlan网关发送的evpn2类路由学习到的arp表项。

第四方面,提供一种vxlan网桥,vxlan包括:多个vxlan网关和至少一个所述vxlan网桥;所述vxlan网桥包括:

收发单元,用于接收ip配置指令;所述ip配置指令携带有vtep-ip,且所述vxlan网桥接收到的ip配置指令中携带的vtep-ip与任一所述vxlan网关或所述vxlan中其他vxlan网桥的vtep-ip不同;

处理单元,用于将所述ip配置指令中携带的vtep-ip地址配置为自身的ip;

bgp邻居建立单元,用于根据bgp-evpn协议与所述vxlan中的vxlan网关和其他vxlan网桥间均相互建立bgp邻居;

隧道创建单元,用于与各bgp邻居之相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的,若学习到虚拟服务器mac地址表项,则所述收发单元通过evpn2类路由将所述虚拟服务器mac地址表项同步到各bgp邻居;

若发现mac地址变更或删除,则所述收发单元通过evpn2类路由向各bgp邻居发送mac地址表项变更或删除通告;

其中,所述evpn2类路由携带有自身的vtep-ip。

本发明实施例提供的构建vxlan集中式多活网关的方法,首先通过ip配置指令为多个vxlan网关配置相同的vtep-ip,并通过ip配置指令为多个vxlan网关配置与各vxlan网关和其他vxlan网桥均不同的vtep-ip,然后再使vxlan网关、vxlan网桥之间通过bgp-evpn协议相互建立bgp邻居,相互发布evpn3类路由,并与vtep-ip与自身不同的bgp邻居间创建vxlan隧道;因此上述实施例提供的构建vxlan集中式多活网关的方法在新建vxlan或者在现有vxlan的网络拓扑中任一新增vxlan网桥和/或vxlan网关时均可以执行上述方法从而使vxlan网桥和vxlan网关之间自动创建vxlan隧道。

附图说明

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

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

图2为本发明实施例提供的构建vxlan集中式多活网关的方法的步骤流程图;

图3为本发明实施例提供的vxlan网关与vxlan网桥之间创建的vxlan隧道的示意图之一;

图4为本发明实施例提供的vxlan网关与vxlan网桥之间创建的vxlan隧道的示意图之二;

图5为本发明实施例提供的vxlan学习mac地址表项的方法的步骤流程图;

图6为本发明实施例提供的vxlan老化mac地址表项的方法的步骤流程图;

图7为本发明实施例提供的vxlan学习apr表项的方法的步骤流程图;

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

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

具体实施方式

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

需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。

在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本发明的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个感应单元是指两个或两个以上的感应单元。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

首先对本发明实施例中可能涉及到的一些概念进行介绍。

vxlan,英文全称:virtualextensiblelan,中文名称:虚拟可扩展局域网是一种overlay的网络技术,建立在物理ip(underlay)网络之上的虚拟以太网,使用macinudp的方法进行封装,共50字节的封装报文头。具备24位vxlan网络标识符vni,打破目前广泛采用的vlan所能表示的4096个隔离网络的限制,使用户可以创建16777216个相互隔离的虚拟网络,满足多租户环境和规模扩展的需求。是一种大二层虚拟网络扩展的隧道封装技术。

vni全称vxlannetworkidentifier,虚拟扩展本地网络标识符。vni取代vlan用来表示不同的vxlan网段(vxlansegment),只有具有相同vni,处于同一vxlan网段的虚拟机才能相互通信。vni用一个24位二进制表示。

vm,英文全称:virtualmachine,中文名称:虚拟服务器。

vtep,英文全称:vxlantunnelendpoint,虚拟扩展本地网络隧道终结结点。vtep将虚拟机产生的数据封装到udp包头内再发送出去。虚拟机本身的mac地址和vlan信息在经过封装后不再作为数据转发的依据。在数据中心网络中,vtep一般指的是vxlan交换机。

vxlan隧道,在两个vtep之间完成vxlan封装报文传输的逻辑隧道。业务报文在进入隧道时进行vxlan头,udp头,ip头封装后,通过三层转发透明地将封装后的报文传输给远端vtep,远端vtep对其进行出隧道解封装处理。

evpn,英文全称:ethernetvirtualprivatenetwork,中文名称:以太虚拟专用网络。是rfc7432定义的一种网络技术,它使用bgp作为上层控制协议,使得vpn的拓扑更加具有灵活性。

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

evpn2类路由,vtep设备使用evpn2类路由在vtep设备之间互相同步本地学到的vm信息(mac表项、arp表项)。

本发明的实施例提供一种构建vxlan集中式多活网关的方法,其中,vxlan包括多个vxlan网关和至少一个vxlan网桥。具体的,参照图2所示,该方法包括:

s21、各个vxlan网关均接收ip配置指令。

其中,ip配置指令携带有vtep-ip,且多个vxlan网关接收到的ip配置指令中携带的vtep-ip相同。

s22、vxlan网关将ip配置指令中携带的vtep-ip配置为自身的vtep-ip。

即,步骤s21和s22中为多个vxlan网关配置了相同的vtep-ip。

由于三层网络中一个vxlan对只能有一个ip地址,所以当进行三层转发的vxlan网关为多个时,需要为多个vxlan网关配置相同的vtep-ip,这样在三层网路内,其他设备与多个vxlan网关可以通过现有通信协议进行数据传输,而不会引起造成与现有通信协议的冲突。

s23、vxlan网桥接收ip配置指令。

其中,ip配置指令携带有vtep-ip,且vxlan网关接收到的ip配置指令中携带的vtep-ip与任一vxlan网关或vxlan中其他vxlan网桥的vtep-ip不同。

即,vxlan网桥接收到的ip配置指令中携带的vtep-ip是唯一的,与vxlan中其它vtep设备的vtep-ip均不同。

具体的,vxlan网桥是虚拟服务器接入的首台vtep设备。虚拟服务器发送的报文都将在vxlan网桥封装成vxlan报文,通过vxlan隧道转发到其他vtep设备(vxlan网桥或vxlan网关)。由于vxlan网桥只进行vxlan二层转发,而不进行三层转发,所以vxlan网桥可以与vxlan中其他vtep设备配置不同的vtep-ip。

s24、vxlan网桥根据ip配置指令将ip配置指令中携带的vtep-ip地址配置为自身的ip。

即,步骤s23和s24中为每一个vxlan网桥配置了唯一的vtep-ip。

还需要说明的是,本发明实施例中不限定配置vxlan网关的vtep-ip和配置vxlan网桥的vtep-ip的先后顺序,可以先执行步骤s21和s22,后执行步骤s23和s24;也可以先执行步骤s23和s24,后执行步骤s21和s22,还可以同时执行。

s25、各vtep设备根据bgp-evpn协议相互建立bgp邻居。

需要说明的书,由于各vtep设备需要根据bgp-evpn协议相互建立bgp邻居,所以在各vtep设备根据bgp-evpn协议相互建立bgp邻居之前,首先需要在所有vxlan网关和vxlan网桥上部署bgp-evpn协议。

具体的,各vtep设备根据bgp-evpn协议相互建立bgp邻居包括:

1、多个vxlan网关之间相互建立bgp邻居。

2、各个vxlan网关和各个vxlan网桥之间相互建立bgp邻居。

3、当vxlan包括多个vxlan网桥时,还包括:多个vxlan网桥之间相互建立bgp邻居。

s26、各bgp邻居之间相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

一方面,多个vxlan网关之间相互发布evpn3类路由,但由于所有vxlan网关配置的vtep-ip相同,所以多个vxlan网关之间不会创建vxlan隧道;另一方面,vxlan网关与vxlan网桥之间相互发布evpn3类路由,由于vxlan网桥配置的vtep-ip是唯一的,所以任一vxlan网关与任一vxlan网桥之间均创建vxlan隧道。此外,当vxlan包括多个vxlan网桥时,由于各个vxlan网桥的vtep-ip不同,因此任意两个vxlan网桥之间也会创建vxlan隧道。

示例性的,参照图3所示,图3中以vxlan包括三个vxlan网关以及一个vxlan网桥为例对各vtep设备创建的vxlan隧道进行说明。如图3所示,vxlan网关分别与vxlan网桥之间均创建了一条vxlan隧道。

此外,参照图4所示,虽然vxlan网桥会收到来自所有vxlan网关的evpn3类路由,但由于所有vxlan网关的vtep-ip相同,所以在vxlan网桥上只会对所有的vxlan网关创建一条vxlan隧道,下一跳是vxlan网关的vtep-ip。在underlay层面,这条隧道存在多个下一跳,可以通过等价路由(英文名称:equal-costmultipathrouting,英文简称:ecmp)走与vxlan连接的任一条物理链路,到达任意一台vxlan网关,而每一台vxlan网关上都会与每一个vxlan网桥分别创建一条vxlan隧道。

此外,多个vxlan网关属于同一个vxlan所以配置相同的vni,当虚拟服务器访问vxlan网关时,访问报文依次通过vxlan网桥、vxlan隧道传输到vxlan网关上,在underlay层面,访问报文通过ecmp到其中任一台vxlan网关上。在范围报文传输过程中,每一台vxlan网关都处于活动状态,可以正常转发报文和同步表项,因此本发明实施例实现了集中vxlan网关的多活。

本发明实施例提供的构建vxlan集中式多活网关的方法,通过ip配置指令为多个vxlan网关配置相同的vtep-ip,并通过ip配置指令为多个vxlan网关配置与各vxlan网关和其他vxlan网桥均不同的vtep-ip,然后再使vxlan网关、vxlan网桥之间通过bgp-evpn协议相互建立bgp邻居,相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道;因此上述实施例提供的构建vxlan集中式多活网关的方法在新建vxlan或者在现有vxlan的网络拓扑中任一新增vxlan网桥和/或vxlan网关时均可以执行上述方法从而使vxlan网桥和vxlan网关之间自动创建vxlan隧道。

进一步的,现有技术中,vxlan网关通过报文学习、更新mac地址表项。这种方案在集中式多活网关的场景下,存在mac表项老化风险。这是由于虚拟服务器访问vxlan网关的报文经过ecmp到达vxlan网关,根据ecmp规则,某些vxlan网关可能长时间都不会收到特定虚拟服务器发出的报文,因此vxlan网关会将mac地址老化删除。在vxlan网关将mac地址老化删除后如果网关收到目的mac地址为该虚拟服务器的报文,在查找不到mac地址的情况下,网关会将报文在vxlan内泛洪,从而导致大量的广播报文。为了解决上述问题本,参照图5所示,在上述实施例构建的vxlan集中式多活网关的基础上,本发明实施例还进一步包括:

s51、第一vxlan网桥学习到虚拟服务器mac地址表项后,通过evpn2类路由将mac地址表项同步到各bgp邻居。

其中,第一vxlan网桥为所述vxlan中的任一vxlan网桥,evpn2类路由携带有所述第一vxlan网桥的第一vtep-ip。

由于任一vxlan网桥均与各个vxlan建立了bgp邻居,因此对应的,各个vxlan网关均接收vxlan网桥通过evpn2类路由发送的虚拟服务器mac地址表项。

s52、vxlan网关根据evpn2类路由中携带的vtep-ip获取自身与第一vxlan网桥创建的第一vxlan隧道,将所述虚拟服务器mac地址表项的下一跳修改为所述第一vxlan隧道的接口,并学习修改后的虚拟服务器mac地址表项。

具体的,由于vxlan网桥学习一个虚拟服务器mac地址表项后,会将该虚拟服务器mac地址表项通过与各个vxlan网关之间的vxlan隧道发送给各个vxlan网关,因此可以保证每一个vxlan网关都接收到虚拟服务器mac地址表项;其次,第一vxlan网桥学习到的虚拟服务器mac地址表项的下一跳为第一vxlan网桥自身,而vxlan网关学习该虚拟服务器mac地址表项时,为了保证该虚拟服务器mac地址表项的正确性,vxlan网关需要保持该虚拟服务器mac地址表项的下一跳为第一vxlan网桥,而当vxlan网关将报文发送至与第一vxlan网桥创建的隧道的接口时,可以通过与第一vxlan网桥创建的隧道直接将报文转发至第一vxlan网桥,因此vxlan网关需要将该虚拟服务器mac地址表项的下一跳修改为与第一vxlan网桥创建的隧道的接口。此外,如图3所示,由于vxlan网关分别与vxlan网桥之间创建了一条vxlan隧道,因此对于不同的vxlan网关来说,需要将该虚拟服务器mac地址表项的下一跳修改为自身与第一vxlan网桥创建的vxlan隧道的接口,进而保证该虚拟服务器mac地址表项的正确性。

上述实施例中,vxlan网关不再通过从vxlan隧道来的报文学习mac地址表项,而是通过vxlan网桥学习mac地址表项后同步到各个vxlan网关,因此可以保持mac地址表的一致性。

进一步的,参照图6所示,上述实施提供的方法还包括:

s61、当vxlan中的任一vxlan网桥发现mac地址变更或删除时,通过evpn2类路由向各bgp邻居发送mac地址表项变更或删除通告。

同样,bgp邻居包括各vxlan网关,因此对应的,vxlan网关接收vxlan网桥通过evpn2类路由发送的mac地址表项变更或删除通告。

s62、vxlan网关根据mac地址表项变更或删除通告变更或删除本地维护的mac表中与所述mac地址表项变更或删除通告对应的mac地址表项。

即,vxlan网关也不再自行老化删除mac地址表项,而是在vxlan网桥发现mac地址变更或删除时,根据vxlan网桥发送的mac地址表项变更或删除通告,变更或删除mac地址表项。

由vxlan网关不需要进行mac表项老化,所以避免了ecmp带来的mac老化风险,解决了集中式多活网关mac老化、单播报文查不到mac表项变成未知名单播报文泛洪的问题。

进一步的,现有技术中每一台vxlan网关都要维护虚拟服务器的arp表项,且arp表项存在老化周期,当任一arp表项老化后,vxlan网关需要发送arp请求进行arp打通,虚拟服务器收到arp请求后,返回arp应答给vxlan网关,若vxlan网关收到arp应答,则更新该arp表项老化时间,若vxlan网关未收到arp应答,则删除该arp表项。然而,在集中式多活网关的场景下,由于存在报文ecmp,虚拟服务器发送的arp应答可能都会送到特定的vxlan网关,vxlan中的其他vxlan网关在未收到arp应答的情况下,会将arp表项老化,并再次发起arp打通,由于arp应答仍然被ecmp到其他网关,因此再次arp打通也会失败,这时vxlan网关会删除arp表项对应的单播路由表项。如果vxlan网关删除arp表项对应的单播路由表项后收到目的地址为该虚拟服务器的报文,在查找不到路由的情况下,会又一次发起arp打通,由于同样的原因,arp打通仍会失败,进而造成报文转发失败。为了解决上述问题本,参照图7所示,在上述实施例构建的vxlan集中式多活网关的基础上,本发明实施例还进一步包括:

s71、第一vxlan网关接收虚拟服务器发送的apr请求或虚拟服务器发送的arp应答。

其中,第一vxlan网关可以为vxlan中的任一vxlan网关。

s72、第一vxlan网关根据apr请求或arp应答学习arp表项。

具体的,当虚拟服务器发出一份arp请求获取vxlan网关mac时,该arp请求会通过ecmp到达任一台vxlan网关,这时收到arp请求的vxlan网关会学习到一条arp表项,且该arp表项的下一跳为接收该arp请求报文的vxlan隧道的接口;或者当arp表项老化后,vxlan网关会发起arp打通,虚拟服务器返回的arp应答可能通过ecmp到达任一台vxlan网关,这时收到arp应答的vxlan网关也会学习到一条arp表项,且该arp表项的下一跳为也接收该arp请求报文的vxlan隧道接口。其中,对于通过虚拟服务器发送的apr请求或虚拟服务器发送的arp应答学习的arp表项,可以将接收到虚拟服务器发送的apr请求或虚拟服务器发送的arp应答的vxlan网关称为源网关,且将通过虚拟服务器发送的apr请求或虚拟服务器发送的arp应答学习的arp表项称为源网关的本地表项。

s73、第一vxlan网关通过evpn2类路由将arp表项发送到所有bgp邻居。

其中,evpn2类路由中携带有arp表项的下一跳的对端设备的vtep-ip。

具体的,如上所述第一vxlan网关学习到的arp表项的下一跳为接收该arp请求报文的vxlan隧道接口,因此arp表项的下一跳的对端设备为与第一vxlan网关创建该接收arp请求报文的vxlan隧道的设备。例如:arp表项a的下一跳为vxlan隧道b的接口,vxlan隧道b为第一vxlan网关与vxlan网桥c间创建的vxlan隧道,则vxlan网桥c为arp表项a的下一跳的对端设备。

具体的,由于vxlan网关通过evpn2类路由将arp表项同步到了所有bgp邻居,因此,vxlan中除源网关以外其他vxlan网关都可以接收到源网关发送的evpn2类路由。即,除第一vxlan网关以外vxlan中的其他vxlan网关都会接收第一vxlan网关通过evpn2类路由发送的arp表项。

s74、vxlan中除第一vxlan网关以外的其他vxlan网关根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道,分别将arp表项的下一跳修改为与对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

具体的,第一vxlan网关学习到的arp表项的下一跳为接收该arp请求报文的vxlan隧道接口,而其他vxlan网关学习该arp表项时,为了保证该arp表项的正确性,其他vxlan网关需要保持该arp表项的下一跳为接收该arp请求报文的vxlan隧道接口,同样,如图3所示,vxlan网关分别与vxlan网桥之间创建了一条vxlan隧道,因此对于不同的vxlan网关来说,要保持该arp表项的正确性,需要根据自身与端设备创建的vxlan隧道来修改arp表项的下一跳,因此除第一vxlan网关以外vxlan中的其他vxlan网关需要根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道,然后再学习修改后的arp表项。

由于vxlan网关根据apr请求或arp应答学习arp表项,后会通过evpn2类路由将arp表项同步到所有bgp邻居,其他vxlan网关接收源网关通过evpn2类路由发送的arp表项后,根据arp表项的下一跳的对端设备的vtep-ip,将arp表项的下一跳修改为arp表项的下一跳的对端设备的vxlan隧道的接口,并学习修改后的arp表项,因此当一台vxlan网关学习到一条arp表项时,其他vxlan网关就会学习到与该arp表项对应的arp表项,因此本发明实施例可以避免集中式多活网关arp老化后打通失败,进而导致报文转发失败的问题。

进一步的,若vxlan网关对通过apr请求或arp应答学习的arp表项(本地表项)和通过接收其他vxlan网关发送evpn2类路由学习的arp表项(远端表项)均进行老化,则会造成大量arp打通报文。因此本发明实施例还进一步包括:

vxlan网关判断根据apr请求或arp应答学习的arp表项未使用时间长度是否大于老化周期;

若是,则向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

具体的,当vxlan网关向虚拟服务器发送arp请求后,虚拟机服务器返回的arp应答可能会通过ecmp到达另一台vxlan网关,这时收到arp应答(步骤s51)的vxlan网关又会依次执行上述步骤s52至s53,从而成为这条arp表项的源网关,且修改这条arp表项的属性为本地表项,而除这台vxlan网关以外的其他vxlan网关(包括这条arp的旧的源网关),收到这台vxlan网关通过evpn2类路由发送的arp表项后,修改arp表项并学习修改后的arp表项,且修改这条arp表项的属性为远端表项,因此再对该条arp表项进行老化。

由于上述实施例中vxlan网关对根据apr请求或arp应答学习的arp表项进行老化(本地表项),而不对通过接收其他vxlan网关发送evpn2类路由学习的arp表项均进行老化(远端表项),所以可以减小arp打通报文的数量。

进一步的,现有技术中若某一台vxlan网关出现故障时,该以vxlan网关为源网关的arp表项就会失效,因此可能会导致控制面arp表项异常,转发面断流。为了解决上述问题,本发明的实施例还进一步包括:

接收第一vxlan网关的bgp邻居删除信息。其中,所述第一vxlan网关为所述vxlan中的任一vxlan网关。

具体的,单台vxlan网关故障后,其他vxlan网关会接收到该vxlan网关的bgp邻居删除信息。

根据所述bgp邻居删除信息获取第一arp表项;所述第一arp表项为通过第一vxlan网关发送的evpn2类路由学习到的arp表项。

根据所述第一arp表项向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

同样,当vxlan网关向虚拟服务器发送arp请求后,虚拟机服务器返回的arp应答可能会通过ecmp到达另一台vxlan网关,这时收到arp应答(步骤s51)的vxlan网关又会依次执行上述步骤s52至s53,从而成为这条arp表项的源网关,且修改这条arp表项的属性为本地表项,而除这台vxlan网关以外的其他vxlan网关,收到这台vxlan网关通过evpn2类路由发送的arp表项后,修改arp表项并学习修改后的arp表项,且修改这条arp表项的属性为远端表项。

即,为避免表项删除导致控制异常即转发断流,vxlan网关在收到其他vxlan网关的bgp邻居删除信息时,触发对通过该vxlan网关发送的evpn2类路由学习到的arp表项进行arp打通,收到arp应答的网关成为进行打通的arp表项新的源网关,并重新同步arp表项到其他vxlan网关,从而实现控制面表项的正常接管,避免转发断流。

下面说明本发明实施例提供的与上文所提供的方法实施例相对应的装置实施例。需要说明的是,下述装置实施例中相关内容的解释,均可以参考上述方法实施例。

本发明的实施例提供一种vxlan网关,其中vxlan包括:多个vxlan网关和至少一个vxlan网桥。具体的,参照图8所示,该vxlan网关800包括:

收发单元81,用于接收ip配置指令;其中,ip配置指令携带有vtep-ip,且多个vxlan网关接收到的ip配置指令中携带的vtep-ip相同;

处理单元82,用于根据ip配置指令将ip配置指令中携带的vtep-ip地址配置为自身的vtep-ip;

bgp邻居建立单元83,用于根据bgp-evpn协议与vxlan中的其他vxlan网关和vxlan网桥间相互建立bgp邻居;

隧道创建单元84,用于与各bgp邻居之间相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的,收发单元81还用于接收第一vxlan网桥通过evpn2类路由发送的虚拟服务器mac地址表项;其中,所述第一vxlan网桥为所述vxlan中的任一vxlan网桥,所述evpn2类路由携带有所述第一vxlan网桥的第一vtep-ip;

处理单元82还用于根据所述第一vtep-ip,获取与第一vxlan网桥创建的第一vxlan隧道,将所述虚拟服务器mac地址表项的下一跳修改为所述第一vxlan隧道的接口,并学习修改后的虚拟服务器mac地址表项。

可选的,收发单元81还用于接收所述vxlan中的任一vxlan网桥通过evpn2类路由发送的mac地址表项变更或删除通告;

处理单元82用于根据mac地址表项变更或删除通告变更或删除本地维护的mac表中与所述mac地址表项变更或删除通告对应的mac地址表项。

可选的,收发单元81还用于接收虚拟服务器发送的apr请求或虚拟服务器发送的arp应答;

处理单元82还用于根据apr请求或arp应答学习arp表项;

收发单元81还用于通过evpn2类路由将arp表项发送到所有bgp邻居,所述evpn2类路由中携带有所述arp表项的下一跳的对端设备的vtep-ip;以便所述vxlan中的其他vxlan网关根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道,将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,收发单元81还接收其他vxlan网关通过evpn2类路由发送的arp表项;其中,evpn2类路由中携带有arp表项的下一跳的对端设备的vtep-ip;

处理单元82还用于根据所述对端设备的vtep-ip获取与所述对端设备创建的vxlan隧道;将所述arp表项的下一跳修改为与所述对端设备创建的vxlan隧道的接口,并学习修改后的arp表项。

可选的,处理单元82还用于判断根据apr请求或arp应答学习的arp表项未使用时间长度是否大于老化周期;若是,则向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答。

可选的,收发单元81还用于接收第一vxlan网关的bgp邻居删除信息;所述第一vxlan网关为所述vxlan中的任一vxlan网关;

处理单元82还用于根据所述bgp邻居删除信息获取第一arp表项,根据所述第一arp表项向虚拟服务器发送arp请求,以便所述虚拟服务器根据所述arp请求返回arp应答;所述第一arp表项为通过第一vxlan网关发送的evpn2类路由学习到的arp表项。

本发明再一实施例提供一种vxlan网桥,其中,vxlan包括:多个vxlan网关和至少一个vxlan网桥。参照图9所示,该vxlan网桥900包括:

收发单元91,用于接收ip配置指令;ip配置指令携带有vtep-ip,且vxlan网桥接收到的ip配置指令中携带的vtep-ip与任一vxlan网关或vxlan中其他vxlan网桥的vtep-ip不同.

处理单元92,用于将ip配置指令中携带的vtep-ip地址配置为自身的ip;

bgp邻居建立单元93,用于根据bgp-evpn协议与vxlan中的vxlan网关和其他vxlan网桥间均相互建立bgp邻居;

隧道创建单元94,用于与各bgp邻居之相互发布evpn3类路由,从而与vtep-ip与自身不同的bgp邻居间创建vxlan隧道。

可选的若学习到虚拟服务器mac地址表项,则收发单元91通过evpn2类路由将虚拟服务器mac地址表项同步到各bgp邻居;其中,evpn2类路由携带有自身的vtep-ip。

可选的,若发现mac地址变更或删除,则收发单元91通过evpn2类路由向各bgp邻居发送mac地址表项变更或删除通告。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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