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 更适合汇总前缀,减少路由表规模。
三、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。启动后:
- 两端建立 MP-BGP 邻居,激活 L2VPN EVPN 地址族。
- 各自发送 Type-3 路由,携带本端 Loopback IP 和 VNI,互相发现并建立 VXLAN 隧道。
- 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。
- VTEP-2 检查 Import RT 匹配,接受该路由,安装到 EVPN 表,并生成对应的 MAC/IP 表项,下一跳为 10.0.0.1。
- 若该主机迁移到 VTEP-2,VTEP-2 发送更高序列号的 MAC Mobility 扩展团体,VTEP-1 更新或撤销旧路由。
show bgp l2vpn evpn 无路由,多数由地址族未激活或 RT 不匹配导致。
五、关键字段速查
| 路由类型 | 核心字段 | 主要用途 |
|---|---|---|
| Type-2 | RD、ESI、EthTag、MAC、IP、Label | 主机 MAC/IP 可达性、ARP 抑制 |
| Type-3 | RD、EthTag、Originating IP | VTEP 自动发现、BUM 泛洪列表 |
| Type-5 | RD、ESI、EthTag、IP Prefix、GW IP、Label | 三层前缀通告、L3VPN |
掌握这三类路由和扩展团体属性后,后续配置分布式网关、跨子网转发和 EVPN 多归属时,就能准确判断每条路由的来源、去向和策略匹配关系。