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 传播。

BGP EVPN 控制平面:三类路由协同 Leaf-1 VTEP 10.0.0.1 VNI 10010 Spine / BGP RR AS 65000 l2vpn evpn AF Leaf-2 VTEP 10.0.0.2 VNI 10010 Type-3 Inclusive Multicast VTEP 发现 → BUM 复制列表 Type-2 MAC/IP Advertisement 主机 MAC/IP → 远端学习 Type-5 IP Prefix 三层前缀 → 跨 VNI 路由 数据平面:VXLAN 封装 / 转发(MAC 表、ARP 表、路由表由控制平面填充) 控制平面与数据平面分离:BGP EVPN 负责“告知”,VXLAN 负责“搬运”

三、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 应保持隔离。

设计建议:RD 用 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 表。通过这些观察点,可以把“控制平面是否学会”与“数据平面是否转发”分开判断,快速定位问题所在。

本节要点:BGP EVPN 地址族承载 EVPN 路由;Type-3 建 VTEP 拓扑,Type-2 学主机位置,Type-5 传三层前缀;RD 保唯一,RT 控导入导出;控制平面与数据平面分离,使 VXLAN 网络具备无泛洪、快收敛、多租户隔离的能力。