2024年6月3日发(作者:)

技术盛宴 | 基于EVPN的分布式VXLAN实现方案

VXLAN (Virtual eXtensible Local Area Network,虚拟可扩展局域网),是目前在数据中

心内部主要采用的一种Overlay网络技术,从最初的VXLAN方案(RFC7348)发展至如今

的EVPN+VXLAN分布式方案经历了一些比较复杂的过程。

本文将伴随着VXLAN的发展过程讲述当前比较流行的EVPN+VXLAN分布式实现方案。

为什么要采用分布式VXLAN方案?

目前,VXLAN的实现主要有两种方式:集中式和分布式。那么在VXLAN部署方案中

应该选择集中式VXLAN方案还是分布式VXLAN方案呢?其实这个问题很好回答,可根据

数据中心的规模需求选择。如下表所示,适用于服务器集群在5000台以上的大型数据

中心的最佳实践为分布式VXLAN方案。

三层网关位置

二层网关位置

集中式VXLAN

三层网关部署在Spine

二层网关部署在Leaf

同一Leaf下的三层流量需要绕行

Spine

分布式VXLAN

三层网关部署在Leaf

二层网关部署在Leaf

同一Leaf下的三层流量无需绕行

Spine

流量转发规则

表项存储规则 Spine 需要保存整网的MAC和ARP Spine 不需要保存整网的MAC和ARP

控制面 静态或者EVPN EVPN

运维 简单,因为网关在spine 复杂,因为网关在leaf

适用数据中心规模 适合小规模组网 适合中大规模组网

集中式VXLAN与分布式VXLAN的区别

集中式会存在传统大二层网络所常见的问题,例如广播风暴问题,为了避免这个问题,

广播域不宜过大,从而集群规模不宜过大;而分布式方案由于三层到边缘,加上EVPN的

控制作用,可以减少广播域,从而形成更大的网络规模。

为什么要引入EVPN作为控制平面?

通过对比,分布式网关更适合作为公有云厂商或中大型规模私有云数据中心组网。

VXLAN由RFC7348定义,只定义了转发面的行为,并没有指定VXLAN控制面。在VXLAN

技术早期,通过转发面来获取转发信息,在实现上较为简单,但是随着网络规模的发展,完

全依赖转发面做控制会造成网络中广播组播风暴,同时给运维方面带来很大问题,因此

VXLAN也需要有一个控制平面。在了解EVPN之前,我们先看下几种VXLAN控制平面的

对比,如下表:

静态模式 IS-IS 模式

需要VTEP上配置

隧道建立

方式

采用静态配置

的方式

ENDP(增强邻居发

现协议),通过该

协议发现VTEP,建

立隧道

VTEP之间

隧道建立

方式

地址学习

采用静态配置

的方式

MAC地址泛洪

学习

IS-IS协议扩展方

IS-IS协议扩展方

式实现远端地址学

EVPN 模式

BGP扩展属性实现邻

居发现 ,自动发现

VXLAN网络中的

VTEP,在各VTEP之

间自动创建VXLAN隧

通过BGP扩展属性关

联,自动建立VXLAN

隧道

MP-BGP协议

扩展实现

Controller

统一控制

首包上报,

由Controller下发

转发表项

VTEP与Controller

标准化

程度

无控制平面

私有协议,

扩展IS-IS报文

EVPN的控制协议已

RFC7209,RFC7432

基于标准协议框架

但各厂商均有私有定

义,无法兼容

VXLAN控制平面技术对比

Controller 模式

Controller

统一控制

标准化,见RFC 7348 Netconf/OpenFlow,

通过上表,我们可以看出采用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表自动生成主机路由,并自动发布

到网络中。

总结

本文从为什么采用分布式VXLAN、为什么采用EVPN作为VXLAN的控制平面、

EVPN+VXLAN实现方案以及方案部署优化等方面,对基于EVPN+VXLAN的实现方案进行

阐述,这也是当前锐捷网络虚拟化数据中心网络架构的推荐方案。欢迎大家留言交流。