内容提要
VXLAN是一种网络虚拟化技术,通过在三层网络上封装二层以太帧,解决VLAN数量限制(扩展至1600万)、跨子网通信、虚拟机迁移及多租户隔离等问题。它由VTEP设备封装解封装,使用UDP传输,支持MAC学习,实现灵活可扩展的Overlay网络。
延伸解读
VXLAN 与 VLAN 的共存关系
文章指出,VXLAN 虽然将虚拟网络标识符扩展到 24 位,提供超过 1600 万个虚拟网络,但并不会完全取代 VLAN。在大型数据中心中,两者可能同时使用:VXLAN 用于租户之间的隔离,而单个租户内部仍可基于其 VXLAN 创建 VLAN。这种分层设计意味着运维人员需要同时理解两种技术,并在规划网络时明确各自的适用边界。
VTEP 的自动学习机制与广播控制
VXLAN 依赖 VTEP 设备对数据包进行封装和解封装,并具备 MAC 地址学习能力。在通信过程中,首次 ARP 请求会以广播或多播方式发送,但沿途 VTEP 会记录 MAC、VNI 与端口或对端 VTEP IP 的映射关系,后续通信即可转为单播。文章强调,如果 VTEP 没有自动学习能力,在 VTEP 数量很多时仍可能产生 ARP 广播风暴,因此该机制对抑制广播流量具有实际意义。
底层网络与 Overlay 的独立性
文章说明,VXLAN 封装在 UDP 数据包内,因此可以在任何能够传输 UDP 报文的网络上运行,只需保证 UDP 数据报能从封装 VTEP 转发到解封装 VTEP。底层 IP 网络的物理布局和地理距离并不重要,VXLAN 也独立于底层物理拓扑。这种独立性为虚拟机跨子网迁移提供了基础,但同时也要求底层网络具备可靠的三层连通性。
头部开销与传输端口细节
VXLAN 头部固定为 8 字节,包含标志位、保留位和 24 位 VNI,设计紧凑以降低额外开销。封装时,外层 UDP 目的端口通常固定为 4789,源端口则动态随机分配;外层 IP 和 MAC 头部由 VTEP 设备添加,分别使用 VTEP 的 IP 和 MAC 地址。这些细节有助于读者理解 VXLAN 报文在实际网络中的转发依据和识别方式。
Q&A
VXLAN 是什么?它主要解决什么问题?
VXLAN(Virtual Extensible LAN)是一种网络虚拟化技术,通过在已有网络基础上创建逻辑上的 Overlay 覆盖网络,实现跨物理网络的虚拟局域网扩展。它主要解决传统数据中心网络的可伸缩性和灵活性问题,如 VLAN 数量限制、跨子网通信、虚拟机迁移和多租户隔离等。
VXLAN 如何突破 VLAN 的数量限制?
传统 VLAN 使用 12 位标识符,最多支持 4096 个虚拟网络;VXLAN 使用 24 位标识符(VNI),最多可提供约 1600 万个虚拟网络,极大扩展了网络规模。VXLAN 不会完全取代 VLAN,两者可共存,例如用 VXLAN 隔离租户,租户内部再用 VLAN。
VXLAN 如何实现虚拟机迁移?
VXLAN 允许虚拟网络横跨物理网络的子网,虚拟机迁移后只要仍处于同一个二层网络,就不需要改变 IP 地址,从而减少迁移复杂性,保证业务连续性。
VXLAN 的报文封装和解封装过程是怎样的?
发送端 VTEP 将原始以太网帧加上 VXLAN 头部(含 VNI),再依次封装 UDP、IP、MAC 头部,通过三层网络发出;接收端 VTEP 解析 VXLAN 头部,识别 VNI,解封装出原始帧并发送给目标主机。整个过程对通信双方透明。
VXLAN 头部包含哪些字段?
VXLAN 头部由 8 字节组成,包括:8 比特标志位(目前仅用最低位 I 比特)、24 比特保留位、24 比特 VNI(VXLAN 网络标识符),以及原始以太网帧。紧凑的头部设计有助于降低额外网络开销。
VTEP 是什么?它在 VXLAN 中起什么作用?
VTEP(VXLAN Tunnel Endpoint)是 VXLAN 的关键组件,负责对 VXLAN 数据包进行封装和解封装。它可以是物理交换机或虚拟设备(如 KVM)。每个 VTEP 有独立的 IP 地址和 VNI,用于标识位置,两个 VTEP 之间建立无状态隧道传输数据。
同一子网内 VXLAN 的通信过程是怎样的?
以 VM_A 与 VM_C 通信为例:VM_A 发送 ARP 广播请求,VTEP_1 封装并发送给对端 VTEP;对端 VTEP 解封装并广播,VM_C 响应 ARP 应答(单播),VTEP_3 封装后发回 VTEP_1,VTEP_1 解封装并转发给 VM_A。双方学习到 MAC+IP 后,后续通信直接单播。