VXLan与云网络

VXLAN (Virtual Extensible LAN) 虚拟可扩展局域网

VXLAN 是一种网络虚拟化技术,它的全称是 “Virtual Extensible LAN”,即“虚拟可扩展局域网”。你可以把它理解成一种网络隧道技术,它旨在解决传统数据中心网络中存在的一些问题,特别是 VLAN(虚拟局域网)的限制。

简单来说,VXLAN 就是在现有的三层网络(IP 网络)之上,创建出一个虚拟的、隔离的二层网络(以太网)。它将二层以太网帧“打包”在三层 UDP 数据包中进行传输。


为什么需要 VXLAN?VLAN 有什么问题?

要理解 VXLAN 的价值,首先要了解它解决了什么问题。在它出现之前,数据中心主要使用 VLAN 来隔离不同的租户或应用。但随着云计算和虚拟化技术的发展,VLAN 暴露了几个主要缺点:

  1. 数量限制:VLAN ID 只有 12 位,理论上最多只能创建 4096 个 VLAN(实际可用约 4094 个)。对于需要成千上万个独立网络的大型云服务提供商来说,这个数量远远不够。
  2. 扩展性差:VLAN 是一个二层技术,它依赖于 STP(生成树协议)来防止网络环路。这导致网络的可扩展性受限,无法构建超大规模的二层网络。
  3. 灵活性不足:VLAN 的配置和管理与物理网络设备(交换机)紧密耦合。虚拟机的迁移如果跨越了不同的三层网络边界,会导致网络配置非常复杂,甚至中断业务。

VXLAN 如何解决这些问题?

VXLAN 通过其独特的设计巧妙地规避了 VLAN 的这些限制:

  1. 海量的网络标识符:VXLAN 使用一个 24 位的标识符,称为 VNI (VXLAN Network Identifier)。这意味着理论上可以创建多达 224 个(约 1677 万个)独立的虚拟网络,完全满足了大规模多租户环境的需求。
  2. 利用现有 IP 网络:VXLAN 运行在现有的三层 IP 网络之上。它将原始的二层数据帧封装到 UDP 数据包中,然后通过标准的 IP 路由在网络中传输。这意味着你不需要对底层物理网络做大规模的改动,只要保证 IP 可达即可。这极大地提高了网络的可扩展性和灵活性。
  3. 虚拟机迁移更自由:由于 VXLAN 构建了一个跨越物理三层网络的“大二层”虚拟网络,虚拟机可以在数据中心的不同物理位置之间自由迁移,而无需更改其 IP 地址和网络配置,因为它们始终处于同一个虚拟的二层网络中。

VXLAN 的工作原理:封装与解封装

VXLAN 的核心在于封装 (Encapsulation)解封装 (Decapsulation)。这个过程由网络中的特定设备或软件来完成,这个角色被称为 VTEP (VXLAN Tunnel End Point)。VTEP 通常位于虚拟化宿主机(Hypervisor)、物理交换机或路由器上。
工作流程如下:

  1. 封装
    • 虚拟机 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。
      • 最后加上外部的以太网头部,通过物理网络发送出去。
  2. 传输
    • 这个被“打包”好的 UDP 数据包,在物理网络中就像一个普通的 IP 包一样被路由和转发,直到它到达 VTEP 2。
  3. 解封装
    • VTEP 2 收到这个 UDP 数据包。
    • 它会“拆开”这个包,去掉外部的以太网头、IP 头和 UDP 头。
    • 然后检查 VXLAN 头部,确认 VNI 是 100。
    • 最后,将最里面的、原始的二层以太网帧取出,并将其转发给目标虚拟机 B。
      对于虚拟机 A 和 B 来说,它们完全感觉不到这个封装和解封装过程的存在,它们会认为自己是直接通过一个普通的以太网交换机连接在一起的。

VXLAN 的关键组件

总结

VXLAN 是一种功能强大的网络虚拟化技术,它通过在三层 IP 网络之上构建虚拟的二层隧道,克服了传统 VLAN 技术的诸多限制。它为现代数据中心,特别是云计算和大规模虚拟化环境,提供了一种更具扩展性、灵活性和隔离性的网络解决方案。