VXLan与云网络
VXLAN (Virtual Extensible LAN) 虚拟可扩展局域网
VXLAN 是一种网络虚拟化技术,它的全称是 “Virtual Extensible LAN”,即“虚拟可扩展局域网”。你可以把它理解成一种网络隧道技术,它旨在解决传统数据中心网络中存在的一些问题,特别是 VLAN(虚拟局域网)的限制。
简单来说,VXLAN 就是在现有的三层网络(IP 网络)之上,创建出一个虚拟的、隔离的二层网络(以太网)。它将二层以太网帧“打包”在三层 UDP 数据包中进行传输。
为什么需要 VXLAN?VLAN 有什么问题?
要理解 VXLAN 的价值,首先要了解它解决了什么问题。在它出现之前,数据中心主要使用 VLAN 来隔离不同的租户或应用。但随着云计算和虚拟化技术的发展,VLAN 暴露了几个主要缺点:
- 数量限制:VLAN ID 只有 12 位,理论上最多只能创建 4096 个 VLAN(实际可用约 4094 个)。对于需要成千上万个独立网络的大型云服务提供商来说,这个数量远远不够。
- 扩展性差:VLAN 是一个二层技术,它依赖于 STP(生成树协议)来防止网络环路。这导致网络的可扩展性受限,无法构建超大规模的二层网络。
- 灵活性不足:VLAN 的配置和管理与物理网络设备(交换机)紧密耦合。虚拟机的迁移如果跨越了不同的三层网络边界,会导致网络配置非常复杂,甚至中断业务。
VXLAN 如何解决这些问题?
VXLAN 通过其独特的设计巧妙地规避了 VLAN 的这些限制:
- 海量的网络标识符:VXLAN 使用一个 24 位的标识符,称为 VNI (VXLAN Network Identifier)。这意味着理论上可以创建多达 224 个(约 1677 万个)独立的虚拟网络,完全满足了大规模多租户环境的需求。
- 利用现有 IP 网络:VXLAN 运行在现有的三层 IP 网络之上。它将原始的二层数据帧封装到 UDP 数据包中,然后通过标准的 IP 路由在网络中传输。这意味着你不需要对底层物理网络做大规模的改动,只要保证 IP 可达即可。这极大地提高了网络的可扩展性和灵活性。
- 虚拟机迁移更自由:由于 VXLAN 构建了一个跨越物理三层网络的“大二层”虚拟网络,虚拟机可以在数据中心的不同物理位置之间自由迁移,而无需更改其 IP 地址和网络配置,因为它们始终处于同一个虚拟的二层网络中。
VXLAN 的工作原理:封装与解封装
VXLAN 的核心在于封装 (Encapsulation) 和 解封装 (Decapsulation)。这个过程由网络中的特定设备或软件来完成,这个角色被称为 VTEP (VXLAN Tunnel End Point)。VTEP 通常位于虚拟化宿主机(Hypervisor)、物理交换机或路由器上。
工作流程如下:
- 封装:
- 虚拟机 A(属于 VNI 100)向虚拟机 B(也属于 VNI 100)发送数据。
- 数据到达其所在的物理服务器的 VTEP 1。
- VTEP 1 看到这是一个需要通过 VXLAN 传输的数据,于是进行“打包”:
- 在原始的二层以太网帧前,加上一个 VXLAN 头部(包含 24 位的 VNI 100)。
- 再为这个新的数据包加上标准的 UDP 头部和 IP 头部。IP 头部的源地址是 VTEP 1 的 IP,目标地址是虚拟机 B 所在服务器的 VTEP 2 的 IP。
- 最后加上外部的以太网头部,通过物理网络发送出去。
- 传输:
- 这个被“打包”好的 UDP 数据包,在物理网络中就像一个普通的 IP 包一样被路由和转发,直到它到达 VTEP 2。
- 解封装:
- VTEP 2 收到这个 UDP 数据包。
- 它会“拆开”这个包,去掉外部的以太网头、IP 头和 UDP 头。
- 然后检查 VXLAN 头部,确认 VNI 是 100。
- 最后,将最里面的、原始的二层以太网帧取出,并将其转发给目标虚拟机 B。
对于虚拟机 A 和 B 来说,它们完全感觉不到这个封装和解封装过程的存在,它们会认为自己是直接通过一个普通的以太网交换机连接在一起的。
VXLAN 的关键组件
- VTEP (VXLAN Tunnel End Point):VXLAN 隧道的起点和终点,负责数据帧的封装和解封装。
- VNI (VXLAN Network Identifier):24 位的网络标识符,用于区分不同的 VXLAN 段,类似于 VLAN ID,但数量庞大得多。
- Underlay Network:指底层的物理 IP 网络,负责传输被封装后的 VXLAN 数据包。
- Overlay Network:指基于 Underlay 网络构建的虚拟网络,也就是 VXLAN 网络本身。
总结
VXLAN 是一种功能强大的网络虚拟化技术,它通过在三层 IP 网络之上构建虚拟的二层隧道,克服了传统 VLAN 技术的诸多限制。它为现代数据中心,特别是云计算和大规模虚拟化环境,提供了一种更具扩展性、灵活性和隔离性的网络解决方案。