3. EVPN 控制平面基础
在 Nexus VXLAN EVPN 架构中,数据平面负责封装与转发,控制平面负责“告诉设备该往哪里转发”。BGP EVPN 正是这套控制平面的核心:它把二层 MAC、三层前缀、VTEP 地址等信息,用标准 BGP 路由的形式在 Leaf 与 Spine 之间传播,从而让每台 Leaf 都能自动学习到远端 VTEP 与远端主机的位置,而不必依赖泛洪或手工静态配置。
一、BGP EVPN 地址族:承载 EVPN 信息的容器
传统 BGP 只承载 IPv4/IPv6 单播路由,而 EVPN 信息(MAC、ARP、前缀、VTEP)需要独立的地址族来承载。在 Nexus 上启用 EVPN 时,需要在 BGP 进程下激活 address-family l2vpn evpn,并让 Leaf 与 Spine 之间通过该地址族交换 EVPN 路由。典型配置如下:
router bgp 65001
router-id 10.0.0.1
address-family l2vpn evpn
retain route-target all
neighbor 10.0.0.100
remote-as 65000
address-family l2vpn evpn
send-community extended
route-reflector-client
其中 send-community extended 必须开启,因为 EVPN 的 RT 是通过 BGP 扩展团体属性携带的;retain route-target all 用于在收到未匹配本地 RT 的路由时仍保留,便于排障与多租户场景。Spine 通常作为 EVPN 的 BGP 路由反射器(RR),Leaf 作为客户端,从而避免 Leaf 之间建立全互联 iBGP 会话。
二、EVPN 路由类型:Type-2、Type-3、Type-5
EVPN 定义了多种路由类型,Nexus VXLAN 场景中最常用的是 Type-2、Type-3 和 Type-5,它们分别解决“主机在哪里”“VTEP 在哪里”“三层前缀在哪里”三个问题。
- Type-2(MAC/IP Advertisement Route):携带主机 MAC、可选 IP、VTEP 地址与 VNI。用于远端 Leaf 学习主机 MAC 与 ARP,实现二层与分布式网关的 ARP 抑制。
- Type-3(Inclusive Multicast Ethernet Tag Route):携带 VTEP 地址与 VNI,用于自动发现同一 VNI 下的所有远端 VTEP,构建 BUM 流量的复制列表(Ingress Replication)。
- Type-5(IP Prefix Route):携带 IP 前缀、下一跳 VTEP 与 VNI,用于在 EVPN 中传播三层前缀,实现跨 VNI 或外部网络的三层可达性。
三者的关系可以用下面的信号链来理解:Type-3 先建立 VTEP 拓扑,Type-2 再填充主机位置,Type-5 补充三层前缀。缺少 Type-3,BUM 流量无法复制;缺少 Type-2,主机 MAC 无法远端学习;缺少 Type-5,跨子网路由无法通过 EVPN 传播。
三、RD 与 RT 设计:区分与匹配
RD(Route Distinguisher)与 RT(Route Target)是 EVPN 多租户设计的关键。RD 用于在 BGP 中唯一标识一条 EVPN 路由,避免不同 VNI 或不同租户的相同 MAC/IP 前缀冲突;RT 用于控制路由的导入与导出,决定哪些 Leaf 能接收并安装这条路由。
在 Nexus 上,RD 通常按 VTEP-IP:VNI 或 AS:VNI 设计,RT 则按 AS:VNI 设计。例如:
vlan 10
vn-segment 10010
evpn
vni 10010 l2
rd auto
route-target import 65001:10010
route-target export 65001:10010
这里 rd auto 会自动生成 VTEP-IP:VNI 形式的 RD,保证同一 VNI 在不同 Leaf 上的 RD 唯一;RT 使用 65001:10010,表示只有导入该 RT 的 Leaf 才会安装这条 VNI 10010 的 EVPN 路由。若需要实现租户间互通,可在三层 VRF 下配置相同的 RT 导入导出,但二层 VNI 的 RT 应保持隔离。
VTEP-IP:VNI 保证唯一性,RT 用 AS:VNI 保证可读性与一致性;二层 VNI 的 RT 按租户隔离,三层 VRF 的 RT 按互通需求规划。
四、控制平面与数据平面分离的优势
BGP EVPN 将控制平面与数据平面彻底分离:控制平面用 BGP 传播 MAC、IP、VTEP 信息,数据平面用 VXLAN 封装转发。这种分离带来三个直接好处:
- 消除泛洪:Type-2 让远端 MAC 提前学习,Type-3 让 BUM 流量按复制列表发送,避免传统 VXLAN 的未知单播泛洪。
- 快速收敛:主机迁移时,新 Leaf 发布 Type-2 路由,旧 Leaf 撤销路由,全网快速更新,无需等待 ARP 老化。
- 多租户隔离:通过 RD/RT 精确控制路由导入导出,不同租户的 VNI 与路由互不干扰。
在实际排障中,可以用以下命令观察控制平面状态:
show bgp l2vpn evpn summary
show bgp l2vpn evpn route-type 2
show bgp l2vpn evpn route-type 3
show bgp l2vpn evpn route-type 5
show nve peers
show nve vni
若 show bgp l2vpn evpn summary 显示邻居建立但路由数为 0,应检查 RT 是否匹配、send-community extended 是否开启;若 show nve peers 中远端 VTEP 状态为 Up 但主机不通,应检查 Type-2 路由是否已安装到 MAC 表。通过这些观察点,可以把“控制平面是否学会”与“数据平面是否转发”分开判断,快速定位问题所在。