1. 多租户网络基础:多租户概念、网络隔离需求、VXLAN/VLAN 技术原理
1.1 多租户概念与核心特征
多租户(Multi-Tenancy)是云计算中最基础也是最重要的架构模式之一。它允许一个物理或逻辑的共享基础设施同时服务于多个相互隔离的客户(租户),每个租户都认为自己独占了资源。
| 特征 | 说明 | 对网络的要求 |
|---|---|---|
| 资源隔离 | 租户间的计算、存储、网络资源严格隔离 | 网络必须提供独立的转发平面,防止数据泄露 |
| 独立管理视图 | 每个租户可自定义自己的网络拓扑、IP 地址、安全策略 | 支持重叠 IP 地址空间,租户可自由规划 |
| 弹性伸缩 | 租户资源按需分配,动态扩缩容 | 网络策略需随虚拟机/容器迁移自动跟随 |
| 计量与配额 | 精确统计每个租户的网络流量与资源消耗 | 网络设备需支持租户级流标签与 QoS 队列 |
关键认知:多租户网络的核心矛盾在于“共享物理链路”与“逻辑隔离”之间的平衡。传统 VLAN 在规模上存在 4094 个 ID 的限制,而 VXLAN 通过 24-bit VNI 将隔离数量扩展至 1600 万以上,成为云数据中心多租户网络的事实标准。
1.2 网络隔离需求分析
在多租户环境中,网络隔离不仅仅是安全需求,更是运营合规和性能保障的基础。以下从三个维度分析隔离需求:
- 数据平面隔离:确保租户 A 的流量不会意外到达租户 B 的网卡。这要求二层广播域、三层路由表、ARP 表项完全隔离。
- 控制平面隔离:租户不能感知或影响其他租户的路由协议状态、MAC 学习过程。例如,一个租户的 BGP 震荡不应影响其他租户。
- 管理平面隔离:租户的管理员只能查看和配置自己的虚拟网络资源,不能越权访问物理网络设备或其它租户的配置。
常见误区:很多初学者认为只要使用了 VXLAN 就自动实现了完全隔离。实际上,VXLAN 只解决了数据平面的隧道封装问题,控制平面(如 ARP 抑制、MAC 学习)仍需配合 EVPN 或集中式控制器才能实现真正的租户级隔离。
1.3 VLAN 技术原理与局限性
VLAN(Virtual Local Area Network)通过在标准以太网帧中插入 4 字节的 802.1Q 标签,将物理局域网划分为多个逻辑广播域。其核心字段为 12-bit 的 VLAN ID,取值范围 1–4094。
VLAN 帧结构(802.1Q):
+--------+--------+--------+--------+--------+--------+--------+--------+
| 目的MAC | 源MAC | TPID | TCI | 类型 | 数据 | FCS |
| (6B) | (6B) | (2B) | (2B) | (2B) | (46-1500B)| (4B) |
+--------+--------+--------+--------+--------+--------+--------+--------+
|--- 0x8100 --|-- PRI(3) CFI(1) VLAN ID(12) --|
VLAN 的局限性在云环境中非常突出:
- 数量上限:4094 个 VLAN ID 在公有云或大型私有云中远远不够。
- 二层网络范围受限:VLAN 依赖 STP 防止环路,STP 收敛慢且浪费大量冗余链路。
- 虚拟机迁移困难:VM 迁移后必须保持同一 VLAN,否则 IP 地址和网关需要重新配置,限制了迁移范围。
- 租户重叠 IP 无法支持:不同租户使用相同 IP 段(如 10.0.0.0/24)时,VLAN 无法区分。
VLAN 适用场景:在中小规模企业私有云(租户数 < 200)或物理机隔离场景中,VLAN 仍然是最简单、最成熟的选择,无需额外 Overlay 封装开销。
1.4 VXLAN 技术原理与优势
VXLAN(Virtual Extensible LAN)是一种 MAC-in-UDP 的 Overlay 封装技术,它将二层以太网帧封装在 UDP 数据包中,通过三层 IP 网络传输。核心组件包括:
- VTEP(VXLAN Tunnel Endpoint):封装/解封装的边界设备,可以是物理交换机、虚拟交换机(如 Open vSwitch)或软件路由器。
- VNI(VXLAN Network Identifier):24-bit 标识符,用于区分不同的租户网络,支持 16,777,216 个隔离网络。
- VXLAN 头部:包含 VNI 和保留位,封装在 UDP 目标端口 4789 之上。
VXLAN 封装结构(外层 IP/UDP):
+------------------+------------------+------------------+------------------+
| 外层MAC (14B) | 外层IP (20B) | UDP (8B) | VXLAN头部 (8B) |
+------------------+------------------+------------------+------------------+
| 内层MAC (14B) | 内层IP (20B) | 内层数据 (可变) | FCS (4B) |
+------------------+------------------+------------------+------------------+
|--- VNI (24bit) ---| 保留 (8bit) ---|
VXLAN 相比 VLAN 的核心优势:
| 对比维度 | VLAN | VXLAN |
|---|---|---|
| 隔离标识符位数 | 12-bit(4094 个) | 24-bit(约 1600 万个) |
| 传输网络 | 二层以太网 | 三层 IP 网络(任意可达) |
| 环路避免 | STP/RSTP(收敛慢) | ECMP 多路径(无 STP) |
| 租户重叠 IP | 不支持 | 天然支持 |
| 虚拟机迁移范围 | 同一 VLAN 域 | 任意三层可达位置 |
| 封装开销 | 4 字节(802.1Q) | 50 字节(IP+UDP+VXLAN) |
1.5 多租户网络隔离技术对比图
下图展示了 VLAN 与 VXLAN 在典型多租户数据中心中的隔离实现方式对比:
1.6 VXLAN 控制平面:从 Flood-and-Learn 到 EVPN
VXLAN 早期依赖数据平面的“Flood-and-Learn”方式学习远端 MAC 地址,这种方式在大型网络中会产生大量泛洪流量。现代数据中心普遍采用 EVPN(Ethernet VPN)作为 VXLAN 的控制平面,通过 MP-BGP 通告 MAC/VNI 路由。
下图展示了 EVPN+VXLAN 的控制平面工作流程:
EVPN 核心价值:通过 BGP 的 Type-2(MAC/IP 通告)和 Type-3(IMET 组播成员)路由,VTEP 之间可以精确获知每个 VNI 下有哪些 MAC 地址,从而避免数据平面的泛洪学习,大幅提升大规模多租户网络的收敛速度和转发效率。
1.7 多租户网络选型建议
在实际项目中,选择 VLAN 还是 VXLAN 需要根据租户规模和网络需求决定:
- 租户数 < 200,且无重叠 IP 需求:优先使用 VLAN + 传统三层架构,运维简单,延迟最低。
- 租户数 200–2000,需要大二层迁移:采用 VXLAN + 集中式控制平面(如 OpenStack Neutron OVS),配合 DHCP 代理和 ARP 抑制。
- 租户数 > 2000,或需要跨数据中心互联:必须使用 EVPN+VXLAN 方案,通过 BGP 实现控制平面统一,支持多活数据中心和自动故障切换。
性能调优提示:VXLAN 封装会增加 50 字节的 MTU 开销。在物理网络中必须启用 Jumbo Frame(MTU ≥ 1600),否则会导致分片和性能下降。同时,建议在 VTEP 上开启 RSS(Receive Side Scaling) 和 TSO(TCP Segmentation Offload) 以降低 CPU 负载。