4. 控制平面选型

VXLAN本身只定义了数据平面的封装格式:外层UDP、VXLAN头、原始以太网帧。它并没有规定VTEP之间如何互相发现、如何学习对端MAC地址、如何判断某个MAC到底在本地还是远端。这个“谁在哪里”的问题,必须由控制平面回答。工程上主要有两条路线:一是依赖数据平面泛洪的“泛洪学习”(Flood-and-Learn),二是引入BGP EVPN作为显式控制平面。理解两者的差别,是跨数据中心互联选型的起点。

泛洪学习为什么在DCI场景中不可接受

泛洪学习的工作方式是:VTEP收到未知单播、广播或组播帧时,向本VXLAN内所有远端VTEP复制一份。远端VTEP回包后,源VTEP才把“源MAC—源VTEP”写入本地转发表。它不需要额外协议,小规模下能跑通,但代价明显:

  • 未知单播泛洪会周期性发生,MAC老化后再次泛洪,形成持续的“背景噪声”;
  • ARP广播被复制到所有VTEP,跨数据中心时还要穿过DCI链路,放大带宽消耗;
  • 无法表达“某MAC不可达”这类负向信息,只能靠老化超时,收敛慢;
  • 多归属场景下,同一MAC可能从两个VTEP同时被学到,容易产生MAC漂移和转发环路。

跨数据中心互联通常跨越运营商链路或专线,带宽成本高、时延敏感,泛洪学习带来的广播放大和收敛不确定性会被显著放大。因此,DCI场景几乎默认选择EVPN作为控制平面。

EVPN作为VXLAN控制平面的核心优势

EVPN(Ethernet VPN)最初用于MPLS L2VPN,RFC 7432定义了其BGP扩展。把它用于VXLAN时,控制平面由MP-BGP承载,数据平面仍是VXLAN封装。其优势可以归纳为四点。

第一,控制平面与数据平面解耦。MAC/IP可达性通过BGP路由提前分发,VTEP在转发前就已知对端位置,未知单播泛洪被大幅抑制。ARP请求也可以通过EVPN的ARP代理或分布式网关机制在本地应答,广播域被有效收敛。

第二,天然支持多归属与全活转发。EVPN定义了以太网段(Ethernet Segment)和DF(Designated Forwarder)选举机制。同一台服务器双归到两台Leaf时,两台Leaf通过ES路由和DF选举决定谁转发BUM流量,避免重复泛洪;单播流量则可从两条路径同时转发,实现多活。

第三,支持对称IRB与分布式网关。EVPN可以同时发布MAC路由和IP路由(Type-2携带IP、Type-5携带前缀),使VXLAN内的分布式网关能够在每台Leaf上就近完成三层转发,跨子网流量不必绕行到集中式网关,路径更短、时延更低。

第四,收敛可预期、可运维。BGP路由的撤销、属性变化、下一跳失效都有明确的状态机,收敛时间可测量、可优化。配合BFD、BGP Add-Path、路由策略,可以做到故障快速感知和精确控制。

MP-BGP EVPN的五种路由类型

EVPN通过MP-BGP的EVPN地址族(AFI 25,SAFI 70)传递NLRI。每种路由类型解决一个具体问题,理解它们的分工比记住编号更重要。

类型名称关键字段作用
Type-1以太网自动发现路由ESI、以太网标签多归属成员发现、DF选举、快速收敛、别名(Aliasing)
Type-2MAC/IP通告路由MAC、IP、VNI、ESI发布MAC可达性;携带IP时支持ARP抑制和对称IRB
Type-3包含多播以太网标签路由VNI、源VTEP IP建立BUM流量的 ingress replication 列表,替代泛洪
Type-4以太网段路由ESI、源IPDF选举,决定哪个PE转发该ES的BUM流量
Type-5IP前缀路由IP前缀、网关IP、VNI发布外部或三层前缀,支持L3VPN over VXLAN

实际部署中,Type-2和Type-3是基础:前者让单播有路可走,后者让BUM有表可依。Type-1和Type-4在多归属场景下才真正发挥作用。Type-5用于把VXLAN域与外部IP网络打通,例如数据中心与广域网互联。

RR部署:为什么EVPN离不开路由反射器

EVPN基于BGP,而BGP要求IBGP全互联或使用路由反射器。在典型Spine-Leaf架构中,Leaf数量可能几十到上百台,如果每台Leaf都与其他Leaf建立IBGP会话,会话数按N×(N-1)/2增长,配置和状态维护都不可接受。因此,Spine通常兼任RR,Leaf只与Spine建立IBGP会话。

RR部署有几个关键点:

  • RR与客户端同AS。EVPN通常运行在IBGP内,Spine作为RR,Leaf作为客户端。RR不修改下一跳,只反射路由。
  • 下一跳保持。反射时使用 next-hop-unchanged 或默认保留原下一跳,确保Leaf学到的VTEP地址是真实的远端VTEP,而不是RR地址。
  • 冗余RR。至少两台Spine作为RR,Leaf与两台RR都建立会话,单台RR故障不影响路由反射。
  • Add-Path。当同一前缀有多条路径时,RR默认只选最优一条反射,可能导致流量集中。启用Add-Path可让RR反射多条路径,Leaf侧做多路径负载。
  • 路由策略。通过RT(Route Target)控制哪些VNI的路由被接收,避免无关路由进入Leaf,减少表项和收敛压力。

下面这张图展示了EVPN控制平面在Spine-Leaf架构中的路由分发关系:Leaf将本地MAC/IP和VNI信息通过Type-2/Type-3发布给RR,RR反射给其他Leaf,各Leaf据此建立远端VTEP转发表。

EVPN控制平面:Spine作为RR的路由反射关系 Spine-1 / RR-1 AS 65000 · IBGP · Add-Path Spine-2 / RR-2 AS 65000 · IBGP · Add-Path RR间IBGP Leaf-1 VTEP 10.0.1.1 VNI 10010 / 10020 Leaf-2 VTEP 10.0.1.2 VNI 10010 / 10020 Leaf-3 VTEP 10.0.1.3 VNI 10010 / 10020 Type-2/3 Type-2/3 Type-2/3 Type-2/3 Host A MAC: 00:11:22 Host B MAC: 00:33:44 Host C MAC: 00:55:66 BGP EVPN路由发布/反射 主机接入 RR(Spine) VTEP(Leaf)

一个可参考的EVPN RR部署参数示例

以下参数属于教学示例,用于说明RR部署时通常需要关注的配置项,并非实测结果。实际部署需根据设备型号和网络规模调整。

! Spine-1 作为RR的EVPN相关配置示例
router bgp 65000
 bgp router-id 10.0.0.1
 neighbor 10.0.1.1 remote-as 65000
 neighbor 10.0.1.1 update-source Loopback0
 neighbor 10.0.1.2 remote-as 65000
 neighbor 10.0.1.2 update-source Loopback0
 neighbor 10.0.1.3 remote-as 65000
 neighbor 10.0.1.3 update-source Loopback0
 !
 address-family l2vpn evpn
  neighbor 10.0.1.1 activate
  neighbor 10.0.1.1 route-reflector-client
  neighbor 10.0.1.1 send-community extended
  neighbor 10.0.1.2 activate
  neighbor 10.0.1.2 route-reflector-client
  neighbor 10.0.1.2 send-community extended
  neighbor 10.0.1.3 activate
  neighbor 10.0.1.3 route-reflector-client
  neighbor 10.0.1.3 send-community extended
  ! 保留下一跳,确保Leaf学到真实VTEP地址
  neighbor 10.0.1.1 next-hop-unchanged
  neighbor 10.0.1.2 next-hop-unchanged
  neighbor 10.0.1.3 next-hop-unchanged
 exit-address-family

配置完成后,可以在Leaf上执行 show bgp l2vpn evpn summary 确认与两台RR的会话均为Established;执行 show bgp l2vpn evpn route-type 2 查看是否收到其他Leaf发布的MAC/IP路由;执行 show bgp l2vpn evpn route-type 3 确认BUM复制列表是否包含所有远端VTEP。如果Type-3路由缺失,BUM流量将无法正确复制到远端,表现为跨Leaf的广播或未知单播不通。

RR部署时建议同时启用BGP Add-Path和BFD。Add-Path让RR反射多条等价路径,Leaf侧可做ECMP;BFD可将BGP故障感知从秒级降到毫秒级,对DCI链路的收敛尤为重要。
注意:EVPN的RT(Route Target)必须与VNI正确绑定。如果Leaf上导入的RT与远端发布的RT不匹配,路由会被丢弃,表现为“BGP会话正常但转发表为空”。排障时应先检查 show bgp l2vpn evpn route-type 2 detail 中的RT值,再核对本地 vrf 或 evpn 配置下的 route-target import。

总结来看,EVPN作为VXLAN控制平面的价值不在于“多了一个协议”,而在于把MAC/IP可达性从数据平面的泛洪行为中抽离出来,变成可策略、可观测、可收敛的路由信息。Type-2和Type-3解决基本转发,Type-1和Type-4解决多归属,Type-5解决外部互联。RR则是让这套机制在Spine-Leaf规模下可扩展的关键组件。理解这五类路由的分工和RR的反射逻辑,是后续跨数据中心EVPN部署和排障的基础。