2. 传统网络隔离技术:VLAN、VXLAN 与 GRE 隧道对比

在多租户隔离场景中,网络隔离技术经历了从“基于端口/标签的二层隔离”到“基于隧道/封装的三层叠加网络”的演进。本章深入剖析 VLAN、VXLAN 和 GRE 三种核心技术的原理、封装格式、隔离能力及适用场景,为后续多租户故障定位奠定基础。

2.1 VLAN:基于 802.1Q 的二层隔离

VLAN(Virtual Local Area Network)通过在以太网帧中插入 4 字节的 802.1Q 标签,将物理局域网划分为多个逻辑广播域。每个 VLAN 对应一个独立的二层广播域,租户流量默认无法跨 VLAN 通信。

2.1.1 封装格式与隔离原理

字段 长度 说明
TPID 2 字节 固定值 0x8100,标识为 802.1Q 帧
PCP 3 位 优先级编码,用于 QoS
DEI 1 位 丢弃合格指示
VID 12 位 VLAN 标识符,取值范围 1–4094

VLAN 隔离的核心限制在于 VID 只有 12 位,最大支持 4094 个隔离域。在公有云或大型数据中心中,租户数量远超此上限,导致 VLAN 无法满足大规模多租户隔离需求。

关键限制: VLAN 是二层隔离技术,无法跨越三层网络边界。跨物理机架或跨数据中心的租户通信必须依赖三层路由或隧道封装,增加了网络复杂度。

2.1.2 VLAN 隔离的典型拓扑

VLAN 隔离拓扑示意 接入交换机(802.1Q) 租户 A 主机 VLAN 100 租户 B 主机 VLAN 200 租户 C 主机 VLAN 300 每个 VLAN 是一个独立广播域,租户间默认二层隔离 跨 VLAN 通信需经过三层网关(路由器/防火墙)

2.2 VXLAN:基于 MAC-in-UDP 的大二层叠加网络

VXLAN(Virtual Extensible LAN)将二层以太网帧封装在 UDP 数据报中,通过 24 位 VNI(VXLAN Network Identifier)提供高达 1600 万个隔离域,彻底解决了 VLAN 的规模瓶颈。VXLAN 是当前云原生多租户网络隔离的事实标准。

2.2.1 封装格式与转发流程

+------------------+------------------+------------------+------------------+
|  外层 MAC 头      |  外层 IP 头      |  外层 UDP 头     |  VXLAN 头        |
| (14/18 字节)      | (20 字节)        | (8 字节)         | (8 字节)         |
+------------------+------------------+------------------+------------------+
|  内层 MAC 头      |  内层 IP 头      |  内层 Payload    |  FCS             |
| (14/18 字节)      | (20 字节)        | (可变)           | (4 字节)         |
+------------------+------------------+------------------+------------------+
字段 长度 说明
VXLAN 标志 1 字节 标志位,I 位为 1 表示有效 VNI
保留 3 字节 必须为 0
VNI 3 字节 24 位网络标识符,支持 16,777,216 个隔离域
保留 1 字节 必须为 0
关键优势: VXLAN 使用 UDP 封装,可以跨越三层网络边界。VTEP(VXLAN Tunnel Endpoint)负责封装/解封装,支持多播或 BGP EVPN 控制平面进行远端 MAC 学习。

2.2.2 VXLAN 多租户隔离架构

VXLAN 多租户叠加网络架构 物理 IP 网络(Underlay) VTEP-1 10.0.1.1 VTEP-2 10.0.2.1 VTEP-3 10.0.3.1 租户 A 主机 VNI 10001 租户 B 主机 VNI 10002 租户 C 主机 VNI 10003 每个 VNI 对应一个独立租户的二层网络,租户间完全隔离 VTEP 通过 UDP 封装在物理 IP 网络上传输租户流量 控制平面推荐使用 BGP EVPN 实现自动 MAC/VNI 分发

2.3 GRE:通用路由封装隧道

GRE(Generic Routing Encapsulation)是一种轻量级隧道协议,可以将任意网络层协议(如 IPv4、IPv6、MPLS)封装在另一个网络层协议中。GRE 本身不提供加密或隔离标识,通常与 IPsec 结合使用以增强安全性。

2.3.1 GRE 封装格式

+------------------+------------------+------------------+------------------+
|  外层 IP 头       |  GRE 头          |  内层 IP 头       |  内层 Payload    |
| (20 字节)         | (4–20 字节)      | (20 字节)         | (可变)           |
+------------------+------------------+------------------+------------------+
字段 长度 说明
C / K / S 位 各 1 位 校验和、密钥、序列号标志
协议类型 2 字节 内层协议类型(如 0x0800 为 IPv4)
密钥(可选) 4 字节 用于标识隧道,可作为简单的隔离标识
注意: GRE 隧道本身不提供多租户隔离标识。若使用 GRE 进行多租户隔离,通常依赖 GRE Key 字段(32 位)区分不同租户,但 Key 字段为可选且无标准控制平面支持,管理复杂度高。

2.4 三种技术对比总结

对比维度 VLAN (802.1Q) VXLAN GRE
封装方式 MAC 帧插入标签 MAC-in-UDP IP-in-IP(通用)
隔离标识 VID(12 位) VNI(24 位) GRE Key(32 位,可选)
最大隔离域 4094 约 1600 万 约 43 亿(依赖 Key)
跨三层能力 否(需路由) 是(UDP 封装) 是(IP 封装)
控制平面 无(静态配置) BGP EVPN(推荐) 无(静态配置)
多播依赖 否 可选(头端复制更常见) 否
MTU 开销 +4 字节 +50 字节 +24–40 字节
多租户适用性 小规模(< 4000 租户) 大规模(云原生标准) 低(无标准隔离机制)

2.5 选型建议与故障定位要点

  • VLAN:适用于小型私有云或传统 IDC,租户数量少于 1000 的场景。故障定位时需关注 Trunk 端口配置、VLAN 修剪、STP 收敛问题。
  • VXLAN:适用于公有云、容器平台、大规模多租户环境。故障定位重点包括 VTEP 连通性、VNI 映射、BGP EVPN 路由、UDP 端口 4789 可达性。
  • GRE:适用于站点间简单隧道或与 IPsec 组合使用。故障定位需检查隧道 Keepalive、MTU 分片、GRE Key 一致性。
核心结论: 在多租户隔离场景中,VXLAN 凭借 24 位 VNI、标准控制平面(BGP EVPN)和跨三层能力,已成为云原生网络隔离的首选技术。VLAN 适用于边缘或存量场景,GRE 则更多作为补充隧道技术使用。