VXLAN (Virtual eXtensible Local Area Network,虚拟可扩展局域网),是目前在数据中心内部主要采用的一种Overlay网络技术,从最初的VXLAN方案(RFC7348)发展至如今的EVPN+VXLAN分布式方案经历了一些比较复杂的过程。
本文将伴随着VXLAN的发展过程讲述当前比较流行的EVPN+VXLAN分布式实现方案。
为什么要采用分布式VXLAN方案?
目前,VXLAN的实现主要有两种方式:集中式和分布式。那么在VXLAN部署方案中应该选择集中式VXLAN方案还是分布式VXLAN方案呢?其实这个问题很好回答,可根据数据中心的规模需求选择。如下表所示,适用于服务器集群在5000台以上的大型数据中心的理想实践为分布式VXLAN方案。
▲集中式VXLAN与分布式VXLAN的区别
集中式会存在传统大二层网络所常见的问题,例如广播风暴问题,为了避免这个问题,广播域不宜过大,从而集群规模不宜过大;而分布式方案由于三层到边缘,加上EVPN的控制作用,可以减少广播域,从而形成更大的网络规模。
为什么要引入EVPN作为控制平面?
通过对比,分布式网关更适合作为公有云厂商或中大型规模私有云数据中心组网。VXLAN由RFC7348
定义,只定义了转发面的行为,并没有指定VXLAN控制面。在VXLAN技术早期,通过转发面来获取转发信息,在实现上较为简单,但是随着网络规模的发展,完全依赖转发面做控制会造成网络中广播组播风暴,同时给运维方面带来很大问题,因此VXLAN也需要有一个控制平面。在了解EVPN之前,我们先看下几种VXLAN控制平面的对比,如下表:
▲VXLAN控制平面技术对比
通过上表,我们可以看出采用EVPN作为控制平面的好处: 路由协议
对于中大型的数据中心,Underlay网络的路由协议多数已经采用了BGP,而EVPN就是通过BGP的扩展协议实现,因此,仅需要维护一套路由协议,更具运维优势;
标准化
相比其他控制面技术,只有EVPN已有标准化定义,可以实现网络的异构,便于网络兼容和扩展。
基于EVPN+VXLAN的实现方案
接下来,我们就来看下基于EVPN+VXLAN的具体实现方案,网络架构如下图所示:
▲物理网络架构
Type3路由——隧道的建立
基于EVPN-Type3路由——Inclusive Multicast路由(注1)
自动发现VXLAN网络中的VTEP(VXLAN Tunnel End Point,为VXLAN隧道的端点),并在各VTEP之间自动创建VXLAN隧道,自动关联VNI与VXLAN隧道。
注1(该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。)
EVPN-Type2路由——MAC与路由同步
基于EVPN-Type2路由——MAC/IP路由(注2)可自动完成网络中MAC以及路由同步。
注2(该类型的路由主要功能为:主机MAC地址通告,主机ARP通告,主机IP路由通告)
EVPN-Type5路由——边界路由访问
在实际的网络部署中我们既可以选择Spine 作为Border也可以选择一组Leaf作为Border,主要看我们实际网络中的流量,如果以南北向流量为主的话,一般一组Leaf作为Border即可,但有些场景,比如混合云的情况下,东西流量依然需要Border转发,那么我们建议将Spine 作为Border。
在这种Underlay与Overlay互通的场景下,就会用到EVPN的一个比较重要的路由类型-网段路由,通过EVPN-Type5路由——IP前缀路由来传递,当外部路由进入到Border后,Border会通过Type5类路由同步到VXLAN网络里面,从而实现VXLAN网络中的主机访问外部网络。
分布式VXLAN方案部署优化
优化点一:ARP泛洪抑制
当网络中虚机的规模扩大, ARP广播会消耗网络带宽,而且会存在广播风暴的隐患,为了减少ARP广播所带来的影响,我们可通过ARP代理的方式,对ARP泛洪进行抑制。
ARP代理实现方式:网关开启ARP代理后,主机学习到远端的ARP均为网关的MAC地址。有如下优点:
? 减小广播域,抑制广播风暴;
? 集群规模提高:由于ARP代理开启,二层广播变为三层路由,因此每个VTEP仅需要维护自己本端的主机MAC,可以关闭同步远端MAC功能,从而节省了MAC表项空间,提供更大集群规模的支持。
但在某些场景下可能不适用,比如LVS的DR模式要求LVS学习到服务器的真实MAC地址,因而不能被网关MAC所代替。这个场景下,我们可以将LVS所在VNI的ARP代理功能进行关闭,从而确保DR模式的正常通信。
优化点二:ARP-TO-HOST
▲业务模型
如上图所示,假设VM1-4在属于同一个子网,这种情况的出现可能由于业务部署形成,也可能由于虚拟机迁移导致。如果VETP1和VTEP4发布的是网段路由,由于ECMP的存在,会出现访问VM1部分流量会通过VTEP1->VTEP4绕行。
为了解决这个问题,就需要明细路由或者主机路由来解决。如果要手动配置的话,工作量比较大,并且容易出错,目前常用的一种做法是通过ARP来自动生成主机路由并发布到网络中。
实现方式:网关开启ARP-TO-HOST后,根据ARP表自动生成主机路由,并自动发布到网络中。