VXLAN 与 GRE 的区别

云数据中心网络从 VLAN 走向 Overlay 后,最常见的两类隧道封装是 VXLANGRE。它们都能把一段原始报文封装进新的三层报文里,让原本不在同一个二层网络或路由域中的主机跨越 Underlay 通信;但二者的设计目标、封装格式、可扩展性和云网络适配程度完全不同。

1. 先说结论

核心区别:VXLAN 更像“云数据中心里的虚拟二层交换网络”;GRE 更像“通用 IP 隧道工具”。

VXLAN 是面向大规模云数据中心多租户网络设计的二层 Overlay 技术,核心目标是替代 VLAN,并在 Leaf-Spine Underlay 之上承载海量虚拟网络。

GRE 是更通用的三层隧道封装技术,核心目标是“把一种三层协议封装进另一种三层协议”,常用于点到点隧道、跨网络互联、VPN、动态路由穿越等场景。

2. 二者解决的问题不同

VXLAN 解决什么问题

VXLAN 主要解决传统 VLAN 在云数据中心里的三个瓶颈:

  • VLAN ID 只有 12 bit,最多约 4096 个,无法支撑大规模租户隔离
  • 虚拟机和容器会在不同宿主机之间迁移,需要跨三层 Underlay 维持逻辑二层连通
  • 东西向流量巨大,需要配合 Leaf-Spine、ECMP、硬件 offload 做规模化转发

VXLAN 的核心不是“打通一条隧道”,而是“构建很多张虚拟二层网络”。

GRE 解决什么问题

GRE 的目标更通用:

  • 在两个三层节点之间建立隧道
  • 承载原本 Underlay 不直接支持的协议
  • 跨公网或跨运营商网络打通私有地址空间
  • 让动态路由协议、组播或特殊协议穿越普通 IP 网络

GRE 的核心不是多租户大规模虚拟网络,而是“通用封装与点到点互联”。

3. 封装结构不同

VXLAN 封装

VXLAN 把原始二层以太帧封装进 UDP 报文中,默认目的端口是 4789

Outer Ethernet Outer IP UDP VXLAN Header Inner Ethernet Inner IP TCP/UDP/ICMP Payload
  • 外层 IP 用于 Underlay 转发
  • UDP 端口让物理网络可以基于五元组做 ECMP 哈希
  • VXLAN Header 中的 VNI 用于标识虚拟网络
  • 内层 Ethernet 是租户看到的原始二层报文

GRE 封装

GRE 直接在 IP 之上增加 GRE Header,IP Protocol 号是 47

Outer Ethernet Outer IP GRE Header Inner IP / Inner Ethernet / Other Protocol Payload
  • GRE 不依赖 UDP/TCP 端口
  • GRE 可以封装多种三层协议,也可以通过扩展承载二层
  • 普通 GRE 天然更像点到点隧道
  • 由于没有 UDP 端口,传统 ECMP 设备可能只能看到外层源/目的 IP,负载分担粒度较粗

4. 标识空间不同:VNI vs Key

维度VXLANGRE
标识字段 VNI(VXLAN Network Identifier) 可选 Key 字段
字段长度 24 bit 通常 32 bit
典型含义 一个租户虚拟网络 / 一个逻辑二层域 区分隧道、业务或租户,依赖具体实现
云网络适配 围绕 VNI 形成成熟控制平面生态 可实现隔离,但不是主流 VPC 抽象

不能简单说 GRE Key 比 VNI 长就更适合云网络。云网络看重的不只是字段长度,还包括控制平面、硬件转发、ECMP、网关、VTEP 发现和运维生态。

5. ECMP 友好度不同

云数据中心 Underlay 通常依赖 ECMP 把东西向流量分散到多条 Spine 路径上。

VXLAN 使用 UDP 封装,外层报文有源 IP、目的 IP、源端口、目的端口、协议号。很多 VTEP 会根据内层五元组计算 UDP 源端口,让不同租户流量在 Underlay 中分散到不同路径。

VM A -> VM B: UDP Source Port 35001 -> Spine1 VM C -> VM D: UDP Source Port 42017 -> Spine2 VM E -> VM F: UDP Source Port 50123 -> Spine3

GRE 没有 UDP 端口,很多网络设备只能基于外层源 IP、目的 IP、协议号做哈希。如果两个隧道端点之间流量很大,就容易落到同一条路径上,导致 ECMP 利用率不如 VXLAN。

关键点:VXLAN 更适合 Leaf-Spine 云数据中心,很大一部分原因就是 UDP 封装更利于 Underlay 多路径负载均衡。

6. NAT 和防火墙穿越能力不同

VXLAN 基于 UDP,网络设备能识别端口,防火墙策略也比较直接:

  • UDP 4789 是标准 VXLAN 端口
  • 可以按 UDP 端口放行
  • NAT 设备对 UDP 的处理通常更成熟
  • 但生产数据中心 VXLAN 一般运行在受控 Underlay 内,不建议随意穿越公网 NAT

GRE 使用 IP Protocol 47,不是 TCP/UDP 端口:

  • 某些 NAT 或防火墙对 GRE 支持不好
  • 放行规则不是“端口放行”,而是协议号放行
  • 多个 GRE 会话穿越同一个 NAT 时可能遇到识别和映射问题

7. 二层语义不同

VXLAN 天生就是把二层以太帧封装到三层网络中,因此可以直接承载 ARP、IPv4、IPv6、广播、未知单播、组播,以及同一虚拟二层网络内的东西向通信。

GRE 默认更偏向三层隧道,例如 IP over GRE。它也可以通过不同变体承载二层,例如 Ethernet over GRE、gretap,但这不是现代云数据中心的主流多租户模型。

8. 控制平面生态不同

VXLAN 在云数据中心里通常和控制平面一起使用:

  • EVPN + VXLAN
  • OpenStack Neutron + OVS/OVN
  • Kubernetes CNI VXLAN 模式
  • 云厂商 VPC 控制系统
  • 硬件 VTEP 与分布式网关

控制平面负责回答:某个 VNI 对应哪个租户网络、某个 MAC/IP 当前在哪个 VTEP、哪些 VTEP 需要建立隧道、ARP/ND 如何抑制、跨子网流量走哪个分布式网关。

GRE 也可以被路由协议、VPN 系统和 SDN 控制器管理,但它不是为大规模 L2 VNI、分布式网关和云租户生命周期设计出来的主流抽象。

9. 性能与硬件支持不同

VXLAN 已经成为主流云数据中心网络硬件的重点优化对象,常见能力包括:

  • 网卡 VXLAN checksum offload
  • 网卡 TSO/GSO offload
  • 交换机 VXLAN routing/bridging
  • ASIC 硬件 VTEP
  • DPU/SmartNIC 卸载 VXLAN、安全组、转发策略

GRE 也有硬件和内核支持,但在云数据中心大规模 Overlay 网络中的生态成熟度通常不如 VXLAN。如果目标是构建 VPC、租户隔离、弹性迁移和分布式网关,VXLAN 的产业链更完整。

10. MTU 开销不同

VXLAN 和 GRE 都会增加额外封装头,都会降低有效载荷空间。

常见 IPv4 VXLAN 封装开销

TextOuter Ethernet 14B
Outer IP       20B
UDP             8B
VXLAN           8B
合计约          50B

普通 IPv4 GRE 封装开销

TextOuter IP       20B
GRE             4B
合计约          24B

结论:GRE 头部通常更轻;VXLAN 头部更重,但换来 VNI、UDP ECMP 和云网络生态。因此 VXLAN 环境常见做法是把 Underlay MTU 调大,例如 1550、1600 或 9000,避免 Overlay 报文因为额外封装而分片。

11. 典型使用场景对比

场景更常用选择原因
云数据中心 VPC VXLAN VNI 支持大规模租户隔离,控制平面生态完整
Kubernetes Pod Overlay VXLAN CNI 容易实现跨 Node 二层/三层 Overlay
EVPN 数据中心 Fabric VXLAN EVPN + VXLAN 是主流标准组合
点到点跨网络隧道 GRE 配置简单,适合三层互联
跑动态路由协议穿越公网或专线 GRE / IPsec GRE GRE 可承载路由协议,常与 IPsec 组合
需要 Underlay ECMP 充分分流 VXLAN UDP 源端口可参与五元组哈希
受限防火墙 / NAT 环境 VXLAN 或其他 UDP 隧道通常更友好 GRE 是 IP Protocol 47,不是端口

12. VXLAN 与 GRE 对比总表

维度VXLANGRE
技术定位云数据中心二层 Overlay通用三层隧道封装
封装方式MAC-in-UDPProtocol-in-IP
默认协议 / 端口UDP 4789IP Protocol 47
网络标识24 bit VNI可选 Key 字段
多租户规模很强,约 1600 万 VNI可实现,但不是主流云网络抽象
ECMP 友好度强,UDP 源端口可参与哈希较弱,传统设备哈希粒度有限
NAT / 防火墙相对容易按 UDP 端口处理依赖设备对 GRE 协议号支持
二层能力原生承载以太帧需 GRE 变体承载二层
控制平面生态EVPN、OVN、Neutron、CNI、VPC路由隧道、VPN、点到点互联
硬件卸载生态云数据中心支持广泛有支持,但云 Overlay 生态弱一些
典型用途VPC、虚拟网络、Pod 网络、EVPN FabricIP 隧道、跨网互联、GRE over IPsec

13. 在云数据中心里为什么更偏向 VXLAN

现代云数据中心选择 VXLAN,不是因为 GRE 不能封装,而是因为 VXLAN 更符合云网络的系统性需求:

  1. VNI 天然对应租户虚拟网络
  2. UDP 封装更适合 Leaf-Spine ECMP
  3. 可以承载完整二层语义,便于虚拟机迁移和虚拟子网抽象
  4. EVPN/SDN 控制平面生态成熟
  5. 交换机、网卡、DPU 对 VXLAN 的硬件卸载更普遍
  6. 和 VPC、安全组、分布式网关等云产品模型更匹配

GRE 的优势在于简单、通用、头部开销较低,适合点到点隧道和三层互联;但当规模上升到“成千上万个租户网络 + 海量宿主机 + 自动化控制平面”时,VXLAN 更容易形成标准化架构。

14. 记忆口诀

  1. VXLAN 是云数据中心 Overlay 主力,GRE 是通用 IP 隧道工具。
  2. VXLAN 用 UDP + VNI,GRE 用 IP Protocol 47 + 可选 Key。
  3. VXLAN 更适合 ECMP、多租户、VPC、EVPN 和分布式网关。
  4. GRE 更适合点到点三层隧道、路由协议穿越和 GRE over IPsec。

最终选择原则:构建云数据中心虚拟网络,优先 VXLAN;打通简单三层隧道或承载特殊协议,可以考虑 GRE。

目录