EVPN-VXLAN 不是 Spine-Leaf 架构本身,而是运行在 Spine-Leaf(或其他 IP Fabric)之上的 Overlay 控制与转发协议;
Spine-Leaf 是物理/逻辑网络拓扑(Underlay),EVPN-VXLAN 是构建在它之上的虚拟网络平面(Overlay)——二者是「承载关系」,非等价关系。
就像:
- 🏗️ Spine-Leaf = 高速公路网(沥青路面、立交桥、ETC 门架);
- 🚛 EVPN-VXLAN = 在这条公路上跑的智能物流系统(带路径规划、货物标签、实时追踪、跨省无缝配送);
- 没有高速公路,物流系统无法高效运转;但有了高速公路,你也可以只跑普通货车(静态路由),不一定用智能物流。
🌐 EVPN-VXLAN 全栈架构图(文字版 · 严格分层 · 可直接用于方案设计)
┌───────────────────────────────────────────────────────────────────────────────┐ │ APPLICATION LAYER │ │ (e.g., AI Training Jobs, VMs, Pods) │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 192.168.10.100 │ │ 192.168.20.200 │ │ 192.168.30.300 │ │ │ │ (VNI=10010) │ │ (VNI=10020) │ │ (VNI=10030) │ │ │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ ├───────────▼─────────────────────▼─────────────────────▼────────────────────────┤ │ OVERLAY NETWORK (Logical) │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ VXLAN Data Plane (Encapsulation & Decapsulation) │ │ │ │ • Original L2 Frame: │ │ │ │ src MAC = aa:bb:cc:dd:ee:ff │ │ │ │ dst MAC = 11:22:33:44:55:66 │ │ │ │ src IP = 192.168.10.100, dst IP = 192.168.20.200 │ │ │ │ ↓ Encapsulated by VTEP (Leaf) │ │ │ │ • Outer UDP/IP Header: │ │ │ │ src IP = 10.1.1.10 (Leaf-1 VTEP IP), dst IP = 10.1.1.20 (Leaf-2 VTEP IP)│ │ │ │ dst UDP = 8472 (VXLAN port), VNI = 10020 │ │ │ │ • Inner L2 Frame preserved intact │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ EVPN Control Plane (BGP-based) │ │ │ │ • Type-2 Route (MAC/IP Advertisement): │ │ │ │ RD=10.1.1.10:10020, RT=65001:10020, MAC=11:22:33:44:55:66, │ │ │ │ IP=192.168.20.200, NextHop=10.1.1.20, ESI=0000.0000.0000 │ │ │ │ • Type-3 Route (Inclusive Multicast Ethernet Tag): │ │ │ │ RD=10.1.1.10:10020, RT=65001:10020, Originator=10.1.1.10, │ │ │ │ Multicast-Group=239.1.1.100 │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ ├───────────┬─────────────────────────────────────────────────────────────────┤ │ │ │ │ ▼ │ ├───────────────────────────────────────────────────────────────────────────────┤ │ UNDERLAY NETWORK (Physical IP Fabric) │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ IP Routing Infrastructure (L3 Only) │ │ │ │ • Topology: Spine-Leaf (or any ECMP-capable L3 network) │ │ │ │ • Protocols: OSPF / IS-IS / eBGP (for loopback reachability) │ │ │ │ • Addressing: Loopback IPs used as VTEP addresses (10.1.1.10, 10.1.1.20…)│ │ │ │ • Forwarding: ECMP across multiple spine links — no STP, no L2 loops │ │ │ │ • Devices: Spine switches (core routers), Leaf switches (ToR) │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ Physical Connectivity │ │ │ │ • Leaf ↔ Spine: 10G/25G/100G Ethernet (no VLAN, no STP) │ │ │ │ • Server ↔ Leaf: 10G/25G/100G (access ports, possibly with VLAN subif) │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ ├───────────┬─────────────────────────────────────────────────────────────────┤ │ │ │ │ ▼ │ └───────────────────────────────────────────────────────────────────────────────┘ PHYSICAL LAYER (Optical/Ethernet PHY)
🔍 关键分层说明(按自上而下顺序)
层级 |
名称 |
核心职责 |
是否可编程? |
典型设备/协议 |
L7–L4 |
Application |
运行业务(PyTorch AllReduce、K8s Pod、VM) |
✅ 是(应用代码) |
Python/TensorFlow/K8s |
Overlay |
VXLAN Data Plane |
封装/解封装原始以太帧,携带 VNI 标识租户/子网 |
✅ 是(VTEP 软件或 ASIC) |
Linux kernel |
Overlay |
EVPN Control Plane |
用 BGP 分发 MAC/IP/IGMP 路由,实现控制面收敛 |
✅ 是(BGP 扩展) |
FRRouting、Junos EVPN、Cisco NX-OS EVPN |
Underlay |
IP Fabric |
提供高吞吐、低延迟、ECMP 的 L3 互通能力 |
⚠️ 有限(配置 OSPF/BGP) |
Spine-Leaf 交换机(Cisco N9K、Arista 7280、H3C S12500R) |
Physical |
PHY Layer |
光模块、线缆、SerDes 物理信号传输 |
❌ 否(硬件固化) |
QSFP28、OSFP、SMF/MMF 光纤 |
✅ Spine-Leaf 是 EVPN-VXLAN 的事实标准 Underlay,但不是唯一选择:
Underlay 类型 |
是否支持 EVPN-VXLAN? |
适用场景 |
缺陷 |
Spine-Leaf(推荐) |
✅ 原生支持(BGP EVPN 最佳实践) |
大中型 DC、AI 集群、云平台 |
需专用硬件支持 BGP+VXLAN 卸载 |
传统三层核心(Router + Distribution) |
✅ 可行(需路由器支持 EVPN) |
运营商边缘、广域互联 |
扩展性差、ECMP 不均衡、运维复杂 |
互联网公网(Internet) |
✅ 技术可行(如 VXLAN over UDP over Internet),但 ❌ 生产不推荐 |
远程办公接入(非关键业务) |
丢包率高、延迟抖动大、MTU 不确定、无 QoS |
纯二层网络(STP/RSTP) |
❌ 严重不推荐:EVPN 依赖稳定 IP 连通性,L2 网络无法提供可靠 VTEP 通信 |
已淘汰 |
广播风暴、收敛慢、无法部署 BGP |
💡 为什么 Spine-Leaf 成为事实标准?
- 它天然满足 EVPN-VXLAN 的三大底层需求:
① 全节点可达(每个 Leaf 的 Loopback IP 必须被所有 Spine 和其他 Leaf 学习到 → BGP/OSPF 确保);
② 无环 ECMP 转发(Underlay 不跑 STP,避免广播风暴和链路浪费);
③ VTEP 地址稳定(Loopback 作为 VTEP IP,不随物理端口 up/down 变化)。
📌 补充:一张图看懂 VTEP 如何工作(Leaf 角色)
Server A (192.168.10.100) Server B (192.168.20.200) ┌──────────────────────┐ ┌──────────────────────┐ │ MAC: aa:bb:cc:dd:ee:ff │ │ MAC: 11:22:33:44:55:66 │ │ IP: 192.168.10.100 │ │ IP: 192.168.20.200 │ └───────────┬────────────┘ └───────────┬────────────┘ │ │ ▼ ▼ ┌───────────────────┐ ┌───────────────────┐ │ Leaf-1 (VTEP IP: │ │ Leaf-2 (VTEP IP: │ │ 10.1.1.10) │ │ 10.1.1.20) │ │ • SVI Vlan10: │ │ • SVI Vlan20: │ │ 192.168.10.254/24│ │ 192.168.20.254/24│ │ • VXLAN VNI=10010 │ │ • VXLAN VNI=10020 │ │ • EVPN Type-2: │ │ • EVPN Type-2: │ │ 192.168.10.100 → │←(BGP)────────→│ 192.168.20.200 → │ │ aa:bb:cc:dd:ee:ff│ │ 11:22:33:44:55:66 │ └───────────┬────────┘ └───────────┬────────┘ │ │ └───────────────┬─────────────────┘ │ ┌───────────────────────┐ │ Spine Switch │ │ (IP Fabric Core) │ │ • Runs OSPF/BGP │ │ • Routes 10.1.1.10/32,│ │ 10.1.1.20/32, etc. │ └───────────────────────┘
✅ 流量路径:Server A → Leaf-1 → VXLAN encapsulation → Spine → Leaf-2 → VXLAN decapsulation → Server B
全程无 ARP 泛洪、无三层子网边界感知、无 TTL 减 1(因为外层 IP 是 Underlay,内层 IP 是 Overlay)
📘 二层网络核心技术名词解释(EVPN-VXLAN 体系)
名词 |
定义(一句话) |
关键说明 |
EVPN(Ethernet Virtual Private Network) |
基于 BGP 的标准化 L2 控制平面协议族,通过扩展 BGP NLRI 类型(如 Type-2)分发 MAC/IP/VNI 等二层状态信息,实现跨物理域的大二层网络自动化构建。 |
• ✅ 不是新协议,而是 BGP 的语义扩展(AFI=2, SAFI=70); |
VNI(VXLAN Network Identifier) |
VXLAN 封装头中的 24 位标识字段,用于唯一区分不同的逻辑二层网络(租户/业务/子网),是 Overlay 网络的隔离边界。 |
• ✅ 范围: |
VTEP(VXLAN Tunnel End Point) |
执行 VXLAN 封装(Encap)与解封装(Decap)的网络节点,拥有 Underlay IP 地址(通常为 Loopback),是 VXLAN 隧道的起点与终点。 |
• ✅ 角色:Leaf 交换机、服务器 Linux kernel、DPU、智能网卡均可作为 VTEP; |
Underlay 网络 |
为 Overlay 提供可达性服务的底层 IP 网络基础设施,其唯一职责是确保所有 VTEP 的 Loopback IP 地址可达,并提供低延迟、高吞吐、ECMP 负载分担能力。 |
• ✅ 技术实现:Spine-Leaf + eBGP/OSPF;也可为传统三层核心; |
Overlay 网络 |
构建于 Underlay 之上的虚拟化网络平面,通过隧道(VXLAN)和控制面(EVPN)抽象出逻辑二层域,对终端呈现为“超大交换机”,屏蔽底层物理拓扑。 |
• ✅ 终端视角:所有同 VNI 主机“在同一台交换机下”; |
Type-2 Route(MAC/IP Advertisement Route) |
EVPN 中最核心的路由类型,用于通告“MAC 地址 + 对应 IPv4/v6 地址 + 所属 VNI + 源 VTEP IP”,实现主机路由(/32)同步与 Proxy ARP 基础。 |
• ✅ 触发条件:主机首次发送 ARP/ND 或 IP 流量; |
Anycast Gateway |
多个 Leaf 交换机使用相同的 SVI IP 地址(如 |
• ✅ 不依赖 VRRP/HSRP —— 高可用由 EVPN 控制面自动保障; |
BUM Traffic(Broadcast, Unknown Unicast, Multicast) |
二层网络中无法精确查表转发的三类流量:广播帧(ARP)、未知单播(MAC 表无条目)、组播帧(IGMP);Overlay 中需特殊优化,避免泛洪风暴。 |
• ✅ EVPN 解法: |
ESI(Ethernet Segment Identifier) |
一个 10 字节全局唯一标识符,分配给多归属(Multi-homing)的以太网段(如双归接入的服务器),用于 EVPN 中防环、DF(Designated Forwarder)选举及快速故障收敛。 |
• ✅ 典型场景:服务器双连两台 Leaf(Active-Active); |
RD(Route Distinguisher) |
BGP VPNv4/vpnv6 地址族中用于全局唯一区分相同前缀(如 |
• ✅ 格式: |
RT(Route Target) |
BGP 扩展团体属性(Extended Community),用于控制 EVPN 路由的导入(import)与导出(export)策略,实现租户间隔离或互通。 |
• ✅ 格式: |
💡 附:一张帮你建立关系的认知地图(文字版)
┌───────────────────┐ │ UNDERLAY │ ← OSPF/eBGP/IPv4 → 确保 VTEP Loopback 互通 └─────────┬─────────┘ │ ┌──────────────────▼──────────────────┐ ┌──────────────────────────────┐ │ OVERLAY CONTROL PLANE │ │ OVERLAY DATA PLANE │ │ ┌───────────────────────────────┐ │ │ ┌──────────────────────────┐ │ │ │ EVPN │ │ │ │ VXLAN │ │ │ │ • Type-2 (MAC+IP+VNI) │←─┼────▶│ │ • Outer IP: VTEP→VTEP │ │ │ │ • Type-3 (BUM Group) │ │ │ │ • UDP dport=8472 │ │ │ │ • RD/RT/ESI │ │ │ │ • VNI=24-bit │ │ │ └───────────────────────────────┘ │ │ │ • Inner Frame: intact │ │ └────────────────────────────────────┘ │ └──────────────────────────┘ │ └──────────────────────────────┘ │ ┌───────────────▼───────────────┐ │ ENDPOINT BEHAVIOR │ │ • ARP to gateway (Proxy) │ │ • No cross-subnet ARP │ │ • /32 host routes in FIB │ └───────────────────────────────┘
✅以下文章引用qwen-plus的回答,是我在学习大二层网络的过程文档。