2. EVPN基础回顾

在进入多活与高可用设计之前,必须先把EVPN的“骨架”重新梳理清楚。EVPN(Ethernet VPN)本质上是一套用BGP承载二层/三层可达性信息的控制平面,它把MAC地址、IP地址、VTEP位置等信息抽象成BGP路由,再通过VXLAN等隧道完成数据转发。理解EVPN,关键是分清三件事:有哪些路由类型、控制平面如何传递、数据平面如何封装。这三者决定了后续多活场景中“流量走哪条路、故障时如何切换、网关如何冗余”。

一、EVPN的五类核心路由

EVPN在BGP中定义了多种路由类型(Route Type),每种承载不同语义。工程中最常用的是Type 2、Type 3、Type 5,Type 1和Type 4则服务于多归与冗余。

  • Type 1(Ethernet Auto-Discovery,A-D路由):用于多归场景下的水平分割与快速收敛,携带ESI(Ethernet Segment Identifier)和LACP端口信息,实现“同一CE双归到两台PE”时的流量负载与防环。
  • Type 2(MAC/IP Advertisement路由):最核心的一类,通告“某MAC(可带IP)位于某VTEP之后”。它既支撑二层桥接,也支撑ARP抑制与分布式网关的ARP/ND代理。
  • Type 3(Inclusive Multicast Ethernet Tag路由):用于BUM(广播、未知单播、组播)流量的自动发现,携带VTEP地址,构建VXLAN隧道的“泛洪列表”。
  • Type 4(Ethernet Segment路由):配合Type 1,用于DF(指定转发者)选举,决定多归接入时由哪台PE负责转发BUM流量。
  • Type 5(IP Prefix路由):承载三层前缀,用于EVPN L3VPN场景,实现跨VTEP的三层路由互通,是分布式网关对称IRB的基础。

可以这样记忆:Type 2管“主机”、Type 3管“泛洪”、Type 5管“网段”、Type 1/4管“多归”。多活高可用中,Type 1/4决定接入侧冗余,Type 2/3决定隧道与主机可达性,Type 5决定跨子网转发。

二、BGP EVPN控制平面

EVPN的控制平面由MP-BGP承载,使用AFI 25(L2VPN)、SAFI 70(EVPN)。两台VTEP之间建立IBGP或EBGP邻居后,通过EVPN NLRI交换上述路由。控制平面的关键机制包括:

  • Route Target(RT):控制路由的导入导出,决定哪些EVPN实例能互相学习。
  • Route Distinguisher(RD):区分不同VRF或实例中的相同前缀,保证NLRI唯一。
  • 下一跳与隧道端点:Type 2/3路由的下一跳通常是VTEP的Loopback地址,数据平面据此建立VXLAN隧道。
  • BGP属性:通过Local Preference、MED、AS-Path等影响选路,多活场景中常配合BGP Best Path实现主备或负载。

控制平面的收敛速度直接决定故障切换时间。实际部署中,常通过BFD加速BGP邻居故障检测,并利用BGP Add-Path、ECMP实现多路径负载。

三、VXLAN数据平面封装

控制平面学到的VTEP地址,最终要落到数据平面的封装上。VXLAN采用MAC-in-UDP封装:原始以太网帧被加上VXLAN头(8字节)、UDP头(8字节)、外层IP头(20字节)和外层以太网头(14字节),总计约50字节开销。

原始帧 | VXLAN头(24bit VNI) | UDP(目的端口4789) | 外层IP(VTEP地址) | 外层MAC

其中VNI(VXLAN Network Identifier)相当于VLAN ID的扩展,24位可支持约1600万个租户网络。数据平面转发时,入口VTEP根据目的MAC查EVPN表,找到目的VTEP地址,封装后经Underlay IP网络送达;出口VTEP解封装,还原原始帧交给目标主机。

需要特别区分:控制平面负责“告诉你去哪”,数据平面负责“怎么去”。EVPN本身不转发数据,它只是BGP的一个地址族;真正搬数据的是VXLAN隧道。

四、多活与高可用术语辨析

多活(Multi-Active)与高可用(High Availability)常被混用,但在EVPN语境下有明确区别:

  • 多活:同一CE或同一网关同时接入多台PE/VTEP,且多台设备同时转发流量,实现负载分担与冗余。典型如ESI多归、分布式网关Anycast IRB。
  • 高可用:强调故障时业务不中断,可以是主备(Active-Standby)也可以是主主(Active-Active)。多活是高可用的一种实现方式,但高可用不一定是多活。
  • Anycast VTEP / Anycast Gateway:多台VTEP使用相同IP或MAC作为网关,主机无需感知网关切换,实现就近接入与快速收敛。
  • ESI(Ethernet Segment Identifier):标识一段多归以太网段,配合Type 1/4实现DF选举与水平分割。
  • DF(Designated Forwarder):多归场景中负责向CE转发BUM流量的PE,避免重复泛洪。

下面用一张关系图把“控制平面—路由类型—数据平面—多活术语”串起来,帮助建立整体认知。

BGP EVPN 控制平面 AFI 25 / SAFI 70 · MP-BGP Type 2 MAC/IP 主机可达 / ARP抑制 Type 3 IMET BUM泛洪列表 Type 5 IP Prefix 三层前缀 / 对称IRB Type 1 / 4 多归 / DF选举 VXLAN 数据平面 MAC-in-UDP · 目的端口 4789 原始以太网帧 + VXLAN头(24bit VNI) UDP + 外层IP(VTEP) + 外层MAC 封装开销约 50 字节 下一跳=VTEP 多活与高可用关键术语 多活 Multi-Active 多台PE同时转发 负载分担 + 冗余 高可用 HA 故障不中断业务 主备或主主 ESI 多归以太网段标识 配合Type 1/4 DF 指定转发者 防BUM重复 Anycast VTEP / Gateway 相同IP/MAC,就近接入 分布式网关对称IRB Type 2 + Type 5 协同

五、从术语到工程判断

把上述概念落到实际排障与设计上,可以形成几条判断线索:

  1. 主机学不到对端MAC,先查Type 2路由是否收到,再看RT是否匹配、下一跳是否可达。
  2. BUM流量不通,检查Type 3路由是否建立,VXLAN泛洪列表是否包含对端VTEP。
  3. 跨子网不通,检查Type 5路由与分布式网关的IRB配置,确认VNI与VRF映射一致。
  4. 多归接入出现重复泛洪,检查Type 1/4与DF选举,确认ESI配置一致、DF角色正确。
  5. 故障切换慢,检查BFD、BGP收敛、Anycast网关是否协同,避免控制平面与数据平面不同步。
记忆口诀:Type 2找主机,Type 3建泛洪,Type 5通网段,Type 1/4管多归;控制平面用BGP,数据平面靠VXLAN;多活是同时转发,高可用是故障不中断。