1. EVPN控制平面工程导入

在传统数据中心网络中,VXLAN 隧道解决了二层网络跨三层 IP 骨干延伸的问题,但它本身只定义了数据平面的封装格式,并没有定义“MAC 地址和 IP 地址该由谁告诉谁”。如果仍然依赖数据平面泛洪来学习 MAC,VXLAN 就会退化成一张巨大的、靠广播撑起来的二层网络。BGP EVPN 的价值,正是把“谁在哪里”这件事从数据平面搬到控制平面,用 BGP 作为承载协议,把 MAC、IP、VTEP 位置等信息作为路由条目在设备之间显式分发。

理解 Arista BGP EVPN 的定位,需要先分清控制平面与数据平面的分工。控制平面负责“知道”:VTEP 之间通过 MP-BGP 交换 EVPN 路由类型,建立 MAC/IP 可达性、IMET 组播隧道、前缀路由等信息;数据平面负责“转发”:主机流量进入 VTEP 后,依据控制平面下发的转发表项完成 VXLAN 封装、隧道转发与解封装。二者边界清晰——BGP 不转发业务报文,VXLAN 不负责邻居发现。工程上最常见的误区,是把 EVPN 当成“自动配置 VXLAN 的魔法”,实际上 EVPN 只解决控制平面通告,VXLAN 接口、VNI 映射、Underlay 可达性仍需独立配置和验证。

核心分工:Underlay(OSPF/IS-IS/BGP)负责 VTEP 之间 IP 可达;BGP EVPN 负责租户 MAC/IP 与 VTEP 的映射通告;VXLAN 负责实际数据封装与转发。三层各司其职,缺一不可。

从场景看,BGP EVPN 在数据中心与园区中的定位并不相同。数据中心场景强调大规模多租户、Leaf-Spine 扁平化、VXLAN 分布式网关,EVPN 主要承载 Type-2(MAC/IP)与 Type-5(IP Prefix)路由,实现跨 Leaf 的二层延伸与三层对称路由。园区场景则更关注接入层 VLAN 与无线漫游,EVPN 常与 EVPN Multihoming(ESI)配合,解决多归属接入的快速收敛与流量负载。Arista 的 EOS 在这两类场景中都使用同一套 MP-BGP EVPN 地址族,差异主要体现在 VNI 规划、Anycast 网关和 Underlay 协议选择上。

本课程后续实验将围绕一套可复现的 Leaf-Spine 拓扑展开。典型拓扑为两台 Spine(S1、S2)与两台 Leaf(L1、L2),Leaf 下挂主机,Leaf 之间建立 iBGP EVPN 会话,Spine 作为路由反射器。Underlay 使用 OSPF 或 eBGP 保证 Loopback0 互通,Loopback0 作为 VTEP 源地址。租户 VNI 规划为 VNI 10010 对应 VLAN 10,VNI 10020 对应 VLAN 20,分布式网关使用同一 Anycast MAC(如 0000.2222.3333)。工具链方面,EOS 命令行用于配置与状态查看,show bgp evpn、show vxlan address-table、show interfaces vxlan1 是核心排障命令,Wireshark 抓取 VXLAN 报文用于验证封装,Linux 主机或 vEOS 用于产生真实流量。

BGP EVPN 控制平面与数据平面分工示意 Underlay 控制平面(OSPF / eBGP) 负责 VTEP Loopback0 之间 IP 可达,不承载租户 MAC/IP 信息 S1 S2 L1 L2 BGP EVPN 控制平面(MP-BGP AFI 25 / SAFI 70) 通告 Type-2 MAC/IP、Type-3 IMET、Type-5 IP Prefix,建立 VTEP 映射表 Type-2 MAC/IP Type-3 IMET Type-5 Prefix ESI Multihoming VXLAN 数据平面(UDP 4789) 依据控制平面下发的转发表项,完成封装、隧道转发、解封装 VNI 10010 / VLAN 10 VNI 10020 / VLAN 20 Anycast GW MAC VTEP 封装 Host-A 10.10.10.1 Host-B 10.10.10.2

实验准备阶段,建议先完成三项基础检查,再进入 EVPN 配置。第一,确认 Underlay 邻居状态:show ip ospf neighbor 或 show bgp summary 应显示 Full/Established,且 Loopback0 可互 ping。第二,确认 VTEP 源地址唯一且稳定:show interfaces Loopback0 查看 IP,show vxlan vtep 确认本端 VTEP 已生成。第三,确认 BGP EVPN 地址族已激活:show bgp evpn summary 应看到邻居处于 Established,且 show bgp evpn 能列出本地 Type-3 路由。若这三项任一不通过,后续 MAC 学习与跨 Leaf 通信都不会正常。

下面给出一段最小可用的 Leaf 侧 EVPN 配置示例,用于建立控制平面会话并通告本地 VNI。示例参数属于教学假设,实际部署需按规划替换:

! Leaf L1 关键配置片段
interface Loopback0
   ip address 10.0.0.11/32
!
interface Vxlan1
   vxlan source-interface Loopback0
   vxlan vlan 10 vni 10010
   vxlan vlan 20 vni 10020
!
router bgp 65001
   neighbor 10.0.0.21 remote-as 65001
   neighbor 10.0.0.21 update-source Loopback0
   address-family evpn
      neighbor 10.0.0.21 activate
   !
   vlan 10
      rd 10.0.0.11:10010
      route-target both 65001:10010
      redistribute learned
   vlan 20
      rd 10.0.0.11:10020
      route-target both 65001:10020
      redistribute learned

配置完成后,判断控制平面是否真正工作的依据不是“邻居起来了”,而是 EVPN 路由表里是否出现了对端 VTEP 的 Type-3 路由,以及本端 MAC 是否被正确通告为 Type-2。执行 show bgp evpn route-type imet 应看到对端 VTEP 的 IMET 路由;执行 show bgp evpn route-type mac-ip 应看到 Host-A 的 MAC/IP 条目,下一跳指向 L1 的 Loopback0。若只有 IMET 没有 MAC/IP,通常说明主机未产生流量或 redistribute learned 未生效;若两者都没有,则应回到 Underlay 与 BGP EVPN 邻居状态排查。

排障顺序建议:先 Underlay 可达,再 BGP EVPN 邻居,再 EVPN 路由类型,最后 VXLAN 转发表。每一步都有对应的 show 命令,不要跳步。