外观
虚拟机从北京机房瞬间“飘”到上海机房,为什么它的 IP 和 TCP 连接能够毫发无伤?
在云计算中心,为了进行物理服务器节能、硬件维护或容灾,运维工程师经常需要执行 “虚拟机动态热迁移(Live Migration)”。 要让正在对外提供支付服务的虚拟机平滑搬家到另一台物理宿主机上,有一个冷酷的前提条件:
- 虚拟机的 IP 地址与 MAC 地址绝对不能发生任何变化!
- 如果 IP 地址变了,数以万计用户正在进行的 TCP 支付连接将全部瞬间崩塌。
在传统网络中,二层广播域无法跨越三层路由器,虚拟机只能在同一个 VLAN 的物理机柜内迁移。 为了让虚拟机能够在整座数据中心数十万台物理服务器之间像幽灵一样自由漫步,IETF 联合各大网络巨头打造了现代云计算的大二层神器——虚拟扩展局域网(VXLAN)(虚拟扩展局域网,RFC 7348)!
学完本课后,你将能够:
- 辨析 传统 802.1Q VLAN 与现代 VXLAN 在租户容量与二层跨越能力上的划时代突破。
- 逐层拆解 VXLAN 核心报文结构:外层以太头 + 外层 IP 头 + UDP 4789 + 8B VXLAN 头(24 位 VXLAN网络标识符(VNI))+ 内层原始以太帧。
- 精通 VXLAN隧道端点(VTEP)(VXLAN 隧道端点)在物理交换机上的封包与解包时序。
- 对比 集中式三层网关的“流量折返瓶颈”与 分布式三层网关(Distributed Gateway) 的“就近线速路由”优势。
1. 传统 VLAN 的双重绝境与 VXLAN 的诞生
在第 12 课中,我们学到了 802.1Q VLAN。然而在现代云计算多租户场景下,VLAN 遭遇了两道无法逾越的铁壁:
- 数量天花板(4094 个上限):
- 802.1Q 头部中的 VLAN ID 只有 12 位(Bit),扣除保留值后最多只能划分 4094 个隔离子网;
- 公有云(如阿里云、华为云)拥有数百万租户,4094 个标识甚至不够一天分配!
- 广播域无法跨越三层网络:
- VLAN 报文无法穿越三层路由器;
- 随着数据中心演变为 Spine-Leaf 全三层 Underlay 拓扑,底层到处是三层路由接口,传统的二层 VLAN 帧根本无法跨机架通行。
虚拟扩展局域网(VXLAN) 的解决思路极其优雅:既然三层网络能传 IP,那我们就把整个二层以太网帧当成普通的载荷,塞进标准的 UDP 报文中,跨三层“坐飞机”运过去!
2. 报文显微镜:MAC-in-UDP 封装结构
VXLAN 采用独特的 MAC-in-UDP(将以太网帧封装在 UDP 报文内) 架构:
- 内层原始以太网帧(Inner Frame):
- 包含虚拟机生成的真实源 MAC、目的 MAC,以及原始的 TCP/IP 业务数据。
- VXLAN 专有头部(8 字节):
- 24 位 VXLAN网络标识符(VNI)(VXLAN Network Identifier):支持
(1677 万)个完全隔离的租户虚拟网络!
- 24 位 VXLAN网络标识符(VNI)(VXLAN Network Identifier):支持
- 外层 UDP 头部(8 字节):
- 目的端口号固定为:
4789(IANA 官方分配的标准 VXLAN 端口号,必考点!); - 源端口号(巧妙设计):由源端交换机根据内层原始报文的五元组进行数学哈希计算随机生成。这样,Underlay 的 Spine 交换机根据外层源端口就能自动执行 ECMP 等价多路径并发分流!
- 目的端口号固定为:
- 外层 IP 头部(20 字节):
- 源 IP 为发送端交换机的物理 VTEP IP;目的 IP 为接收端交换机的物理 VTEP IP。承载协议号为 17(UDP)。
- 外层以太头部(14 字节):
- 逐跳转发的物理光口 MAC 地址。
3. 核心部件:VTEP 与 Bridge Domain(BD)
在华为 CloudFabric 交换机中:
- VXLAN隧道端点(VTEP)(VXLAN 隧道端点):是负责执行“穿衣(打上 VXLAN 头)”与“脱衣(剥除外层外壳)”的硬件节点。在硬件 Leaf 交换机中,ASIC 芯片以线速硬件执行该封解包动作。
- Bridge Domain(BD,桥域):华为交换机内部的一个二层广播域实体。传统的 VLAN ID 被映射绑定到具体的 BD,每个 BD 对应一个唯一的 VNI。
4. 三层网关架构演进:集中式 vs 分布式
当位于不同子网(例如 10.1.1.0/24 与 10.1.2.0/24)的虚拟机需要跨子网通信时,必须经过三层网关。网关的部署方式经历了两次迭代:
(1) 集中式网关(Centralized Gateway)
- 部署位置:集中配置在核心 Spine 交换机或专用网关群上。
- 弊端:哪怕两台不同网段的虚拟机插在同一台物理 Leaf 交换机上,它们通信的报文也必须千里迢迢先通过隧道发给 Spine 网关,路由后再打隧道送回 Leaf,形成严重的 “流量折返(Trombone Effect / 羊角通信)”,极易冲垮核心网关。
(2) 分布式三层网关(Distributed Gateway)——现代标准
- 部署位置:所有接入服务器的 Server Leaf 交换机全部兼任三层网关!
- 机制:
- 每一个 Server Leaf 上都配置了所有业务子网的任播网关(Anycast Gateway,所有 Leaf 网关拥有完全相同的 IP 和虚拟 MAC);
- 虚拟机发出的跨网段首包在本地 Leaf 交换机就近直接执行三层路由查找,本地即刻解封装并转换为新的目标 VNI 转发!
- 彻底消除了 Spine 节点的集中转发压力,实现了真正意义上的任意东西向线速路由!
5. 课堂小结与真题实战
- VXLAN 突破了 VLAN 4094 个隔离上限(采用 24 位 VNI 支持 1677 万子网),并通过 MAC-in-UDP 隧道让大二层漫游跨越三层 Underlay 边界。
- VXLAN 报文外层采用标准 UDP 封装,IANA 标准目的端口号为 4789。
- 分布式三层网关部署在 Leaf 设备上,避免了集中式网关在 Spine 造成的流量折返与性能瓶颈。