引言:
采用MP-BGP EVPN作为VXLAN的控制平面协议,可以实现VTEP自动发现、VXLAN隧道自动建立,同时可以发布二层MAC信息和三层路由信息,实现VXLAN数据面与控制面的分离。
在IP网络中可以通过一个Anycast IP地址标识一组提供特定服务的主机,通过Anycast IP和BGP技术,控制路由选路可以实现负载分担及冗余。但是,Anycast技术也存在一定的局限性:使用Anycast中的共享单播地址不能作为客户端发起请求,因为请求的响应不一定能返回到发起的Anycast单播地址。目前Anycast最广泛的应用是DNS的部署。
本篇内容基于MP-BGP EVPN和Anycast IP技术,在数据中心中实现VXLAN网关的分布式多活方案。利用MP-BGP传递EVPN路由,解决使用Anycast技术时使用共享单播地址的局限问题。
技术方案:
1. 多活网关报文转发原理
如图所示:典型的Spine-Leaf组网结构下,GW1和GW2都挂在Leaf节点下,承担VXLAN转发网关角色,通过配置相同的VTEP IP,将多个GW设备形成一个多活网关设备组,在Leaf上开启ECMP功能(当GW挂在不同Leaf节点下,在spine上开启ECMP),实现到VTEP VIP流量的负载分担,流量转发到任意一台GW,都可以正常进行VXLAN报文处理,由此实现链路备份和流量负载分担。
2. 路由和转发表项同步
VXLAN多活网关方案中,为了保证流量正常转发,所有的多活网关设备需要实现路由和转发表项同步。以IPv4为例,需要实现ARP表象同步。
由于Anycast技术的局限性,设备发起的请求响应不一定能返回到发起的设备,因此不能通过数据面自动学习到ARP表象。可以通过控制器去统一管理和配置以及设备间自动同步去解决。下面介绍一种基于MP-BGP EVPN实现控制面自动学习表项的方法。
如图所示:spine承担RR角色(也可以单独部署RR),每个网关组除分配一个VTEP VIP外,还给网关组中每台设备单独分配一个IP,用于和RR建立MP-IBGP邻居,发布BGP EVPN路由。RR会将路由反射给远端网关组中的每台设备,实现VXLAN隧道的自动建立,同时学习到VXLAN转发表象。
总结:
本文主要结合EVPN和ANYCAST IP技术,实现VXLAN网关的分布式多活方案,在CLOS架构数据中心中,部署集中式VXLAN网关时,可以很好的进行横向扩展,提高转发性能和故障收敛性能。