从 Underlay 到 VXLAN EVPN:一条跨子网报文是怎样到达目标服务器的
在数据中心网络中,Spine-Leaf 解决的是交换设备之间的高带宽、低时延和多路径转发问题;VXLAN EVPN 解决的是租户业务跨 Leaf 延伸、主机位置学习和跨子网通信问题。
理解 VXLAN EVPN,不能只记住 VLAN、VNI、VTEP 和 BGP EVPN 的定义。更重要的是把它们放回一条真实的转发链路中:底层网络如何找到远端 VTEP,EVPN 如何发布主机和网段,Leaf 如何封装报文,出口 Leaf 又如何完成第二次三层查表。
本文使用一个简化的两 Leaf 场景,完整说明同子网二层通信和跨子网三层通信的差异,并给出一套分层排障方法。
一、实验场景
服务器A 服务器C
192.168.10.10 192.168.20.20
| |
Leaf1 -------- Spine ----------- Leaf2
VTEP 3.3.3.3 VTEP 4.4.4.4
业务参数:
网段10:192.168.10.0/24
网段20:192.168.20.0/24
网段10 L2 VNI:1010
网段20 L2 VNI:1020
Tenant-A L3 VNI:50001
假设 Underlay 已经完成,Leaf1 和 Leaf2 的 VTEP Loopback 地址可以双向到达,并通过 MP-BGP EVPN 交换路由。
二、Underlay:先保证 VTEP 可达
Underlay 是 VXLAN 的底层 IP 网络。Leaf 和 Spine 之间一般使用三层点到点链路,每条链路拥有独立的物理接口地址。
Leaf1-Spine1:10.0.0.1/31 ↔ 10.0.0.0/31
Leaf1-Spine2:10.0.0.3/31 ↔ 10.0.0.2/31
每台设备还配置唯一的 Loopback 地址:
Leaf1 Loopback0:3.3.3.3/32
Leaf2 Loopback0:4.4.4.4/32
Loopback 地址通常同时承担以下角色:
- OSPF Router ID;
- BGP 邻居地址;
- VXLAN VTEP 地址;
- 设备稳定的逻辑身份。
OSPF 或 Underlay BGP 发布这些 Loopback 路由后,Leaf1 才能通过 Spine 找到 Leaf2 的 4.4.4.4。如果 VTEP 地址不可达,EVPN 控制面和 VXLAN 数据面都无法正常工作。
当 Leaf1 到 Leaf2 存在多条总开销相同的路径时,Underlay 可以安装多个等价下一跳,形成 ECMP。ECMP 通常基于流的哈希选择路径,而不是让同一条流的每个报文随机切换链路。
三、Overlay:VLAN、VNI、VRF 和 VTEP
1. VLAN 与 L2 VNI
VLAN 是本地设备上的二层标识,VNI 是 VXLAN 网络中的业务标识。需要通过映射关系把二者关联起来:
VLAN 10 ↔ Bridge-Domain 10 ↔ L2 VNI 1010
同一个二层业务跨越多个 Leaf 时,相关 Leaf 通常使用相同的 L2 VNI。
2. VRF 与 L3 VNI
VRF 为不同租户提供独立的三层路由表。Tenant-A 的跨子网流量可以使用独立的 L3 VNI:
Tenant-A VRF ↔ L3 VNI 50001
L2 VNI 主要表示二层广播域,L3 VNI 主要承载租户跨 Leaf 的三层转发。
3. VTEP 和 NVE
VTEP 是 VXLAN 隧道端点,通常使用 Leaf 的 Loopback 地址。NVE 是设备上的 VXLAN 逻辑接口,负责将业务报文封装成 VXLAN 报文,以及对接收报文进行解封装。
需要区分两类地址:
VTEP地址:每台Leaf必须唯一,用于隧道端点
Anycast Gateway地址:多台Leaf可以相同,用于统一租户网关
四、EVPN 控制面如何发布信息
EVPN 使用 MP-BGP 传递不同类型的路由。
Type 2:主机位置
Type 2 发布 MAC/IP 和主机所在的远端 VTEP。例如:
192.168.20.20 / MAC-C → Leaf2 → 4.4.4.4
它适合具体主机位置学习,也可以用于 ARP 抑制。
Type 3:VNI 成员和 BUM
Type 3 用于发布某个 VNI 的远端 VTEP 成员,主要服务广播、未知单播和组播流量,也就是 BUM 流量。
Type 5:IP 前缀位置
Type 5 发布 IP 前缀所在的远端 VTEP:
192.168.20.0/24 → 4.4.4.4
跨子网通信首先依靠 Type 5 找到目标网段,再由出口 Leaf 的本地 ARP/MAC 表找到具体服务器。Type 5 可以使用聚合前缀,避免为每一台主机传播大量路由。
五、RD 和 RT 的作用
RD(Route Distinguisher)用于让 EVPN/VPN 路由保持唯一。不同租户即使使用相同的 IP 前缀,也可以通过不同 RD 被识别为不同路由。
RT(Route Target)用于控制路由导入和导出:
Export RT:路由发出时携带的业务标签
Import RT:本地业务实例愿意接受的标签
路由进入全局 BGP EVPN 表,不等于已经进入某个租户 VRF。只有 Export RT 与 Import RT 匹配,业务实例才会导入该路由。
可以用下面的方式记忆:
RD:让路由唯一
RT:决定路由进入哪个业务实例
六、同子网二层 VXLAN 转发
假设服务器 A 和服务器 B 都属于 192.168.10.0/24,使用 L2 VNI 1010。
转发过程如下:
- 服务器 A 通过 ARP 获取服务器 B 的 MAC 地址;
- Leaf1 学习服务器 A 的本地 MAC/IP;
- Leaf2 学习服务器 B 的本地 MAC/IP;
- Leaf2 通过 Type 2 告诉 Leaf1 服务器 B 的位置;
- Leaf1 查找到远端 VTEP;
- Leaf1 使用 L2 VNI
1010封装报文; - Spine 根据外层 VTEP IP 转发;
- Leaf2 解封装 VXLAN;
- Leaf2 根据 L2 VNI 映射到本地 VLAN 或 Bridge-Domain;
- Leaf2 通过本地 MAC 表将报文发送给服务器 B。
这个过程不需要进行跨子网三层路由。
七、跨子网三层 VXLAN 转发
现在考虑服务器 A 192.168.10.10 访问服务器 C 192.168.20.20。
第一步:发送到 Anycast Gateway
服务器 A 判断目标地址不属于本地网段,因此把报文交给默认网关。Leaf1 上的 Anycast Gateway 接收报文,并将其放入 Tenant-A VRF。
第二步:入口 Leaf 进行三层查表
Leaf1 在 Tenant-A VRF 中查询 192.168.20.20。通过 EVPN Type 5,Leaf1 知道目标网段位于 Leaf2,远端 VTEP 为 4.4.4.4。
这一步是对称 IRB 的第一次三层查表。
第三步:使用 L3 VNI 封装
Leaf1 使用 Tenant-A 的 L3 VNI 50001 封装报文:
外层源IP:3.3.3.3
外层目的IP:4.4.4.4
UDP目的端口:4789
VXLAN VNI:50001
外层 IP 负责在 Underlay 中找到远端 Leaf,内层 IP 继续表示租户业务。通常没有 NAT 时,内层源 IP 和目的 IP 不变;内层 MAC 会随着三层转发被重写。
第四步:Spine 通过 Underlay 转发
Spine 只根据外层目的 IP 4.4.4.4 查询路由并转发。它不需要理解租户 VRF、服务器 MAC 或业务网段。
第五步:出口 Leaf 解封装并再次查表
Leaf2 收到报文后,执行以下操作:
去除外层VXLAN封装
→ 识别L3 VNI 50001
→ 映射到Tenant-A VRF
→ 查询目标192.168.20.20
→ 判断目标网段属于本地
→ 使用L2 VNI 1020
→ 查询本地ARP/MAC
→ 将报文发送到服务器C
出口 Leaf 的第二次 VRF 查表是对称 IRB 的关键特征。
八、对称 IRB 与非对称 IRB
对称 IRB:
入口Leaf三层查表
→ 跨Leaf使用L3 VNI
→ 出口Leaf再次进入VRF查表
→ 使用目标L2 VNI
非对称 IRB:
入口Leaf三层查表
→ 跨Leaf直接使用目标L2 VNI
→ 出口Leaf进行二层转发
非对称 IRB 的主要问题不是二层查表速度,而是入口 Leaf 需要了解更多远端 L2 VNI。随着租户和网段数量增加,配置和扩展复杂度更高。大规模 AIDC 通常更倾向对称 IRB。
九、完整排障顺序
1. 检查服务器接口和默认网关
2. 检查Leaf-Spine物理接口
3. 检查/31链路地址
4. 检查OSPF或Underlay BGP邻居
5. 检查远端VTEP Loopback是否可达
6. 检查BGP EVPN邻居是否Established
7. 检查Type 2、Type 3、Type 5
8. 检查RD、Import RT、Export RT和Route-Policy
9. 检查目标路由是否进入正确VRF
10. 检查L3 VNI与VRF映射
11. 检查NVE和VXLAN隧道
12. 检查L2 VNI、VLAN和Bridge-Domain
13. 检查出口ARP和MAC
14. 检查MTU、ACL和回程路径
典型故障对应关系:
| 现象 | 优先检查 |
|---|---|
| VTEP 不可达 | Underlay、Loopback、OSPF/BGP |
| 全局 EVPN 表有路由,VRF 没有 | RT、Route-Policy、VRF绑定 |
| VRF 有路由,VXLAN 不通 | NVE、VNI、MTU |
| 出口 Leaf 找到网段但找不到主机 | ARP、MAC、VLAN、Bridge-Domain |
| 去程正常、回程失败 | 反向路由、反向 EVPN、ECMP 和策略 |
十、总结
VXLAN EVPN 的完整逻辑可以压缩成一句话:
Underlay负责找到远端VTEP,EVPN负责学习业务位置,VXLAN负责封装承载,VRF和VNI负责租户转发,出口Leaf再通过ARP/MAC找到最终服务器。
理解这条主线后,VLAN、VNI、VTEP、NVE、VRF、RD、RT、Type 2、Type 3、Type 5 就不再是相互孤立的名词,而是同一条数据中心业务链路中的不同组成部分。
[!note]
不同华为 CloudEngine 型号和 VRP 版本的具体命令可能存在差异。发布配置文章时,应根据实际版本补充设备型号、软件版本、拓扑地址和验证输出,避免把概念配置误认为所有设备都能直接执行的命令。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)