在云和虚拟化时代,物理网络(Underlay)只负责“通”,逻辑网络(Overlay)才决定“用”。VXLAN 并非又一个简单的隧道协议,它是为解决传统 VLAN 扩展性瓶颈而生的大规模二层网络革命——让数据中心网络能够像“乐高积木”一样被灵活地拼装与扩展。
一、为什么需要 VXLAN?—— 传统网络的三大天花板
1. VLAN 数量限制(4094 个)
- 问题:
- 大型云平台需要支持数万甚至更多租户(如 AWS/Azure/阿里云)。
- 每个租户至少需要 1 个 VLAN,这直接导致了 VLAN ID 耗尽。
-
| 数据对比: |
场景 |
所需 VLAN 数量 |
传统 VLAN 支持 |
结果 |
| 中小企业 |
10-50 |
✅ |
可用 |
| 金融多租户 |
500+ |
⚠️ |
勉强可用 |
| 公有云平台 |
10,000+ |
❌ |
不可用 |
2. 二层域无法跨三层扩展

- 痛点:
- 虚拟机迁移(如 vMotion)需要保持 IP 地址不变,这就要求网络能够提供跨机房甚至跨地域的二层连通性。
- 传统方案依赖 STP/MSTP 等协议,不仅扩展性差,还会导致大量链路被阻塞,浪费带宽。
3. 多租户隔离复杂
- 传统方案:
- 租户 A 使用 VLAN 10,租户 B 使用 VLAN 20。
- 问题:如果租户希望自定义网络,例如都选择使用 VLAN 100,就会产生 VLAN ID 冲突!
- VXLAN 方案:
- 租户 A 使用 VNI 10000,租户 B 使用 VNI 20000。
- 优势:租户在其独立的逻辑网络内,可以自由使用 VLAN 1-4094,因为经过 VXLAN 封装后,不同租户的相同 VLAN ID 在物理层面不会产生任何冲突。
二、VXLAN 核心原理:用 UDP 封装二层帧
1. VXLAN 数据包结构
+-------------------+------------------+------------------+
| Outer Ethernet | Outer IP | Outer UDP |
| (物理网络) | (Underlay) | (目的端口 4789) |
+-------------------+------------------+------------------+
| VXLAN Header | Original Ethernet| Original Payload |
| (含 24-bit VNI) | (租户二层帧) | (IP/TCP/应用数据)|
+-------------------+------------------+------------------+
- 关键字段:
- VNI (VXLAN Network Identifier):24 位标识符 → 支持 约 1600 万个 逻辑网络,远超 VLAN 的 4094 个限制。
- UDP 目的端口:IANA 标准端口号 4789,用于与普通业务流量区分。
- Outer IP:VTEP(VXLAN Tunnel End Point,隧道端点)的 IP 地址,用于在物理 IP 网络中路由。
2. VXLAN 工作流程(以虚拟机通信为例)

3. VTEP(VXLAN 隧道端点)角色
| 设备类型 |
VTEP 实现方式 |
典型场景 |
| 服务器 |
软件 VTEP(如 OVS) |
OpenStack/K8s 等虚拟化或容器化平台 |
| TOR 交换机 |
硬件 VTEP(支持 VXLAN) |
企业数据中心 |
| 云网关 |
集中式 VTEP(如阿里云 VPC 网关) |
公有云 |
💡 关键洞察:
- VTEP 是 VXLAN 的“翻译官”:负责在租户的二层流量和物理的三层 IP 流量之间进行转换(封装与解封装)。
- Underlay 网络只需 IP 连通:物理网络设备无需感知 VXLAN 的具体细节,只需根据外层 IP 头进行路由转发,这极大地简化了底层网络的运维。
三、VXLAN 控制平面:如何学习 MAC 地址?
1. 泛洪模式(Multicast)—— 传统方案
- 原理:
- 为每个 VNI 分配一个组播地址(如 239.1.1.1),所有相关 VTEP 都加入该组播组。
- 当需要转发目标 MAC 地址未知的单播流量时,VTEP 会将其封装后组播泛洪到该组内的所有 VTEP。
- 问题:
- 需要在物理网络中配置 PIM/IGMP 等组播协议,配置复杂。
- 浪费带宽,非目标 VTEP 也会收到并处理这些泛洪包,影响效率。
2. 分布式控制平面(EVPN)—— 现代方案
- 原理:
- 使用 BGP EVPN 作为 VXLAN 的控制平面。
- VTEP 之间通过 BGP 协议交换MAC/IP 路由信息,而不是依赖泛洪来学习。
- 优势:
- 无泛洪:已知目标地址的流量直接发送到正确的远端 VTEP,实现精确转发。
- 支持 ARP 代理:减少广播风暴,优化网络性能。
- 与 Underlay 融合:可使用同一套 BGP 协议管理 Underlay 和 Overlay,简化管理。
EVPN 路由示例(Type 2 路由)
Route Type: 2 (MAC/IP Advertisement)
RD: 10.0.0.1:5000
ESI: 0
Ethernet Tag: 0
MAC Address: 00:11:22:33:44:55
IP Address: 192.168.10.10
MPLS Label1: 5000 (VNI)
Next Hop: 10.0.0.1
✅ 效果:
- VTEP2 收到这条路由后就知道:IP 地址为
192.168.10.10、MAC 为 00:11:22:33:44:55 的终端位于 VTEP1(10.0.0.1)上,且属于 VNI 5000。
- 当需要向该终端发送数据时,VTEP2 会直接将 VXLAN 包封装发送至
10.0.0.1,完全不需要泛洪。
四、VXLAN vs 其他 Overlay 技术
| 技术 |
封装协议 |
控制平面 |
扩展性 |
典型场景 |
| VXLAN |
UDP |
EVPN/组播 |
⭐⭐⭐⭐⭐ (1600万) |
云数据中心 |
| NVGRE |
GRE |
自定义 |
⭐⭐⭐⭐ |
微软 Azure |
| STT |
TCP |
无 |
⭐⭐ |
Nicira (已淘汰) |
| Geneve |
UDP |
EVPN |
⭐⭐⭐⭐⭐ |
新一代 SDN |
💡 为什么 VXLAN 能成为主流?
- 标准化:基于 IETF 的 RFC 7348 标准,开放性更好。
- 硬件支持广泛:Cisco、Juniper、Huawei 等主流网络设备厂商全线支持。
- 生态完善:与 OpenStack、Kubernetes、VMware 等主流虚拟化和云平台原生集成。
五、实战:VXLAN 在云网络中的应用
场景:阿里云 VPC 跨可用区通信

关键实现:
- 租户视角:
- 位于不同可用区的 ECS1 (
192.168.1.10) 与 ECS2 (192.168.1.11) 处于同一个子网。
- 它们之间的通信体验,就像连接在同一台交换机上一样简单。
- 云平台视角:
- 为该 VPC 分配一个唯一的 VNI(如
12345)。
- 在每个可用区的网关节点上部署 VTEP。
- Underlay 网络基于阿里云自研的高性能 IP 骨干网,提供低延迟和高可靠性。
✅ 业务价值:
- 虚拟机跨 AZ 迁移:迁移过程中 IP 地址保持不变,上层业务完全无感知。
- 租户网络天然隔离:不同 VPC 使用不同的 VNI,逻辑上完全隔离,安全且易于管理。
六、VXLAN 的挑战与优化
1. MTU 问题(分片风险)
- 问题:
VXLAN 封装会增加约 50 字节的额外开销。如果物理网络 MTU 仍是标准的 1500 字节,那么封装后的有效载荷 MTU 就只剩大约 1450 字节,极易导致数据包分片,影响性能。
- 解决方案:
- Jumbo Frame:将物理网络设备的 MTU 设置为 1600 或更大。
- TCP MSS 调整:在 VTEP 或终端上调整 TCP 最大报文段长度,例如使用命令
ip tcp adjust-mss 1400。
2. 多路径负载分担
- 问题:
在 ECMP(等价多路径)环境中,如果只根据外层 IP(VTEP 地址)进行哈希,那么同一对 VTEP 之间的所有流量都会走同一条物理路径,导致负载不均。
- 解决方案:
- ECMP + 基于流的哈希:让网络设备能够基于 VXLAN 内层封装的原始数据包的五元组(源/目的 IP、端口等)进行哈希计算。
- VXLAN-GBP:在 VXLAN 头部添加策略标签,为负载分担算法提供更多信息。
3. 安全与监控
- 挑战:
- 物理网络中的安全设备(如防火墙)和监控工具无法直接解析 VXLAN 封装内部的流量,导致传统的基于物理端口的 ACL、入侵检测等安全策略失效。
- 解决方案:
- VXLAN Gateway:在网络边界部署专门的网关设备,将 VXLAN 流量解封装后进行安全检查和策略实施。
- Telemetry 技术:在 VTEP 上启用 sFlow、IPFIX 等遥测技术,将流日志信息导出到外部分析平台。
七、未来趋势:VXLAN 的演进方向
- 与 SRv6 融合
- 使用 SRv6(分段路由 IPv6)的 Segment 列表来替代 VXLAN 外层固定的 IP 头,实现对数据包转发路径的更灵活、更精细的控制。
- 硬件卸载(SmartNIC/DPU)
- 将 VXLAN 的封装、解封装以及加解密等任务,从服务器 CPU 卸载到 SmartNIC 或 DPU(数据处理器) 上执行,显著释放主机计算资源。
- 零信任网络集成
- 在 VXLAN 头部嵌入安全组标签(如 SGT) ,实现基于身份的微隔离策略,无需依赖传统的 IP 和端口规则,更贴合零信任安全架构。
结语
“VXLAN 的真正价值,不在于它封装了二层帧,而在于它成功解耦了逻辑网络与物理网络。”
这项技术让网络工程师的角色从关注物理连线的“布线工”,转变为设计业务逻辑网络的“架构师”。你不再需要过度关心光纤具体如何铺设,而是可以专注于如何利用灵活的网络服务来支撑和驱动业务创新。
附:快速上手指南
-
实验环境:
- EVE-NG:优秀的网络仿真平台,可模拟 Cisco NX-OS 等支持 VXLAN 的设备。
https://www.eve-ng.net/
- Mininet + OVS:开源的软件定义网络模拟器,适合快速验证 VXLAN 概念。
http://mininet.org/
-
命令速查:
# Cisco NX-OS 查看 VXLAN 配置
show vxlan vni
show bgp l2vpn evpn
# Linux OVS 创建 VXLAN 隧道
ovs-vsctl add-port br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.0.0.2 options:key=5000
-
学习资源:
- RFC 7348: VXLAN 官方标准文档
https://datatracker.ietf.org/doc/html/rfc7348
- Cisco VXLAN Design Guide:思科的官方设计与部署指南
https://www.cisco.com/c/en/us/td/docs/solutions/CVD/DCV/VXLAN.html
希望这篇关于 VXLAN 和 Overlay网络 的解析能帮助你理解现代云数据中心的网络基石。想了解更多网络与系统层面的深度技术讨论,欢迎来云栈社区交流分享。

|