3. EVPN控制平面基础

VXLAN EVPN 的数据平面负责把二层帧或三层报文封装进 VXLAN 隧道,而控制平面负责回答一个更根本的问题:某个 MAC、某个 IP 前缀或某台 VTEP 究竟在哪里,应该把流量送到哪个下一跳。在数据中心网络中,这个控制平面由 MP-BGP 承载的 EVPN 地址族完成。理解 BGP EVPN 地址族、路由类型和扩展团体属性,是读懂后续所有 EVPN 配置与排障的基础。

一、BGP EVPN 地址族:把 EVPN 路由装进 MP-BGP

传统 BGP 只通告 IPv4 或 IPv6 单播前缀,而 EVPN 需要传递 MAC 地址、IP 地址、VTEP 地址、VNI 等复合信息。为此,BGP 通过多协议扩展(MP-BGP,RFC 4760)新增了一个地址族:L2VPN EVPN(AFI=25,SAFI=70)。在 Cisco IOS-XE/NX-OS 上通常写作 address-family l2vpn evpn,在华为上写作 l2vpn-family evpn。

启用该地址族后,BGP 邻居之间交换的不再是普通 NLRI,而是 EVPN NLRI。每条 EVPN NLRI 由三部分组成:Route Type(1 字节)+ Length(1 字节)+ Route Type Specific Data(变长)。Route Type 决定了这条路由携带什么语义,这正是 EVPN 路由类型的来源。EVPN 邻居通常建立在 VTEP 的 Loopback 接口之间,使用 iBGP 或 eBGP,并要求两端都激活 L2VPN EVPN 地址族,否则邻居虽 Up 但不会交换 EVPN 路由。

二、核心路由类型:Type-2、Type-3、Type-5

EVPN 定义了多种路由类型,数据中心场景中最常用的是 Type-2、Type-3 和 Type-5,它们分别解决“主机在哪里”“VTEP 在哪里”“三层前缀在哪里”三个问题。

Type-2(MAC/IP Advertisement Route)是最核心的一类。它通告某个 MAC 地址(可同时携带 IP)位于本 VTEP 的某个 VNI 下。关键字段包括:RD、ESI、Ethernet Tag ID(即 VLAN/VNI 标识)、MAC Address Length、MAC Address、IP Address Length、IP Address、MPLS Label(即 VNI)。当只携带 MAC 时用于二层转发;当同时携带 IP 时,还可用于 ARP 抑制和分布式三层网关的主机路由。Type-2 是 EVPN 实现“MAC 学习从数据平面迁移到控制平面”的关键。

Type-3(Inclusive Multicast Ethernet Tag Route)用于 VTEP 自动发现。它通告本 VTEP 的源 IP 和所属 VNI,使同一 EVPN 实例内的所有 VTEP 互相知道对方存在,从而自动构建 VXLAN 的泛洪列表(BUM 流量复制列表)。没有 Type-3,VTEP 之间就无法自动建立全互联隧道,BUM 流量(广播、未知单播、组播)将无法正确泛洪。

Type-5(IP Prefix Route)用于通告三层 IP 前缀,主要服务于 EVPN 的 L3VPN 场景或分布式三层网关的外部路由。它携带 RD、ESI、Ethernet Tag ID、IP Prefix Length、IP Prefix、GW IP Address、MPLS Label 等字段。相比 Type-2 的主机路由,Type-5 更适合汇总前缀,减少路由表规模。

BGP EVPN 控制平面:地址族、路由类型与扩展团体 VTEP-1 Loopback0: 10.0.0.1 VNI 10010 MAC: 00:11:22:33:44:55 IP: 192.168.10.10 VTEP-2 Loopback0: 10.0.0.2 VNI 10010 MAC: 00:aa:bb:cc:dd:ee IP: 192.168.10.20 MP-BGP L2VPN EVPN (AFI=25, SAFI=70) iBGP / eBGP over Loopback Type-2 MAC/IP 通告 RD + ESI + EthTag MAC + IP + Label(VNI) 用途:主机 MAC/IP 可达性 ARP 抑制 / 主机路由 Type-3 包含性组播 RD + EthTag Originating Router IP 用途:VTEP 自动发现 构建 BUM 泛洪列表 Type-5 IP 前缀 RD + ESI + EthTag IP Prefix + GW IP + Label 用途:三层前缀通告 L3VPN / 外部路由汇总 MP-BGP 扩展团体属性(Extended Communities) RT (Route Target) 控制 EVPN 实例导入导出 Encap (Encapsulation) 标识 VXLAN 封装类型 MAC Mobility MAC 迁移序列号 Default GW 标识默认网关

三、MP-BGP 扩展团体属性:让路由“知道该去哪里”

EVPN 路由本身只描述“有什么”,而扩展团体属性(Extended Community,8 字节)描述“怎么用”。它们附加在 EVPN NLRI 之后,是 EVPN 实现策略控制和语义补充的关键。

Route Target(RT)是最重要的扩展团体。它分为 Export RT 和 Import RT:本端为路由打上 Export RT,对端根据 Import RT 决定是否接收。RT 通常格式为 ASN:VNI 或 IP:VNI,例如 65000:10010。RT 匹配是 EVPN 实例之间路由泄漏和隔离的基础,配置错误会导致“邻居 Up 但路由学不到”。

Encapsulation Extended Community 用于标识隧道封装类型,VXLAN 对应值为 8。它确保接收端知道该路由应使用 VXLAN 封装,而不是 MPLS 或其他方式。

MAC Mobility Extended Community 携带序列号,用于处理同一 MAC 在不同 VTEP 之间迁移的场景。当虚拟机热迁移后,新 VTEP 通告的 Type-2 路由序列号更高,旧 VTEP 会撤销或更新,避免 MAC 表项冲突。

Default Gateway Extended Community 用于标识某条 Type-2 路由对应的 IP 是默认网关,帮助分布式网关场景下正确选择网关。

四、一个典型交互过程

假设 VTEP-1 和 VTEP-2 同属 VNI 10010,RT 为 65000:10010。启动后:

  1. 两端建立 MP-BGP 邻居,激活 L2VPN EVPN 地址族。
  2. 各自发送 Type-3 路由,携带本端 Loopback IP 和 VNI,互相发现并建立 VXLAN 隧道。
  3. VTEP-1 学习到本地主机 MAC 00:11:22:33:44:55 / IP 192.168.10.10,生成 Type-2 路由,携带 RT 65000:10010、Encap VXLAN、Label 10010,通告给 VTEP-2。
  4. VTEP-2 检查 Import RT 匹配,接受该路由,安装到 EVPN 表,并生成对应的 MAC/IP 表项,下一跳为 10.0.0.1。
  5. 若该主机迁移到 VTEP-2,VTEP-2 发送更高序列号的 MAC Mobility 扩展团体,VTEP-1 更新或撤销旧路由。
排障时可按以下顺序检查:邻居是否建立 → 是否激活 L2VPN EVPN 地址族 → RT 是否匹配 → 路由类型是否正确 → 扩展团体是否携带 Encap VXLAN。常见现象是邻居 Up 但 show bgp l2vpn evpn 无路由,多数由地址族未激活或 RT 不匹配导致。

五、关键字段速查

路由类型核心字段主要用途
Type-2RD、ESI、EthTag、MAC、IP、Label主机 MAC/IP 可达性、ARP 抑制
Type-3RD、EthTag、Originating IPVTEP 自动发现、BUM 泛洪列表
Type-5RD、ESI、EthTag、IP Prefix、GW IP、Label三层前缀通告、L3VPN

掌握这三类路由和扩展团体属性后,后续配置分布式网关、跨子网转发和 EVPN 多归属时,就能准确判断每条路由的来源、去向和策略匹配关系。