什么是 VXLAN?

什么是 VXLAN?

虚拟可扩展局域网 (VXLAN) 是一项互联网工程任务组 (IETF) 网络虚拟化技术标准。它允许多个不同的组织(即“租户”)共享单个物理网络,但租户均无法查看其他租户的网络流量。 

这样,VXLAN 就类似于公寓楼中的各个单元:每间公寓都是公共结构内的一个独立私人居所,正如每个 VXLAN 都是共享物理网络中的独立专用网络分段。

理论上来说,VXLAN 允许将物理网络分割成多达 1600 万个虚拟或逻辑网络。它将第 2 层以太网帧封装到第 4 层用户数据报协议 (UDP) 数据包中,并添加 VXLAN 标头。如果与以太网虚拟专用网络 (EVPN) 搭配使用,使用 WAN 协议在虚拟化网络中传输以太网流量,VXLAN 更可将第 2 层网络扩展到第 3 层 IP 或 MPLS 网络。

 

主要优势

由于 VXLAN 封装在 UDP 数据包中,因此可以在任何能够传输 UDP 数据包的网络中运行。只要 UDP 数据报是从封装 VXLAN 隧道端点 (VTEP) 转发到解封装 VTEP 中,底层网络节点之间的物理布局和地理距离就会变得不再重要。 

将 VXLAN 与 EVPN 搭配使用,运营商就可以利用支持该标准且属于同一个第 3 层网络的任何物理网络交换机上的物理网络端口创建虚拟网络。例如,您可以从交换机 A 上取一个端口,从交换机 B 上取两个端口,从交换机 C 上再取一个端口,然后构建一个虚拟网络。对所有互连设备而言,该虚拟网络就是单个物理网络。在该虚拟网络中运行的设备将无法查看任何其他 VXLAN 或底层网络交换矩阵中的流量。

 

VXLAN 攻克的难题

随着服务器虚拟化的快速采用推动了敏捷性和灵活性的大幅提高,与物理基础架构分离的虚拟网络的运维也变得更简单、更快速、更经济。例如,虚拟网络允许多个租户安全地共享一个物理网络,使网络运营商能够快速、经济地扩展其基础架构,以满足不断增长的需求。采用分段网络的主要原因在于隐私和安全;目的是防止租户查看或访问属于其他租户的流量。

运营商从逻辑上对网络进行分段,方式与它们长期以来部署传统虚拟 LAN (VLAN) 的方式相似;但是,VXLAN 通过以下方式克服了 VLAN 扩展的局限性。

  • 理论上,您可以在管理域中创建多达 1600 万个 VXLAN,而非最多 4094 个传统 VLAN。这样,VXLAN 能够以云和服务提供商要求的规模提供网络分段,从而为大量租户提供支持。
  • 您可以使用 VXLAN 创建可在数据中心之间延伸的网络分段。传统的基于 VLAN 的网络分段可创建广播域,但一旦含有 VLAN 标签的数据包进入路由器,所有 VLAN 信息都会被删除。这意味着,VLAN 的传输距离最远只能达到底层第 2 层网络的传输距离。对某些用例而言,这是个难题,比如虚拟机 (VM) 迁移通常无法跨越第 3 层边界。相比之下,VXLAN 网络分段可将原始数据包封装在 UDP 数据包中。只要路径中的所有交换机和路由器均支持 VXLAN,VXLAN 网络分段就可以延伸到第 3 层物理路由网络的覆盖范围,而虚拟叠加网络中运行的应用无需跨越任何第 3 层边界。就连接到网络的服务器而言,即使底层 UDP 数据包可能已经过一个或多个路由器,它们也属于同一个第 2 层网络。
  • 在底层第 3 层网络之上提供第 2 层分段的能力,加上大量受支持的网络分段,即使彼此相距遥远,服务器也能属于同一个 VXLAN,同时网络管理员也能将第 2 层网络保持较小规模。拥有较小规模的第 2 层网络有助于避免交换机上的 MAC 表溢出。

 

VXLAN 主要应用

服务提供商和云提供商的 VXLAN 用例很直观:这些运营商拥有大量租户(即客户),出于多种法律、隐私和伦理原因,供应商必须将一个客户的网络流量与其他客户分开。

在企业环境中,一个租户可能是一个用户群、一个部门或其他出于内部安全考虑而组建的一组网络分段用户或设备。例如,物联网 (IoT) 设备(如数据中心环境传感器)很容易受到攻击,因此将 IoT 网络流量与生产网络应用流量隔离是一种妥善的安全做法。

 

VXLAN 工作原理

VXLAN 隧道协议可将第 2 层以太网帧封装到第 4 层 UDP 数据包中,使您可以创建可以跨越第 3 层物理网络的第 2 层虚拟子网。每个分段子网都由一个 VXLAN 网络标识符 (VNI) 进行唯一标识。

执行数据包封装和解封装的实体被称为 VXLAN 隧道端点 (VTEP)。VTEP 可能是独立的网络设备,如物理路由器或交换机,也可能是部署在服务器上的虚拟交换机。VTEP 将以太网帧封装到 VXLAN 数据包中,然后通过 IP 或其他第 3 层网络发送至目的 VTEP,在此处进行解封装并转发至目的服务器。

为了为无法作为 VTEP 独立运行的设备(如裸机服务器)提供支持,硬件 VTEP(如部分瞻博网络交换机和路由器)可以对数据包进行封装和解封装。此外,VTEP 可以驻留在虚拟机管理程序主机中,例如基于内核的虚拟机 (KVM),为虚拟化工作负载提供直接支持。这种类型的 VTEP 被称为软件 VTEP。

Hardware and software VTEPs are shown above.

硬件和软件 VTEP 如上所示。

 

What is VXLAN diagram 2

在上图中,当 VTEP1 接收来自对虚拟机 3 (VM3) 寻址的虚拟机 1 (VM1) 的以太网帧时,其使用 VNI 和目标 MAC 在其转发表中查找将数据包发送到的 VTEP。VTEP1 将包含 VNI 的 VXLAN 表头添加到以太网帧中,将此帧封装在第 3 层 UDP 数据包中,然后通过第 3 层网络将数据包发送至 VTEP2。VTEP2 解封装原始以太网帧并将其转发至 VM3。VM1 和 VM3 完全不知道其间存在 VXLAN 隧道及第 3 层网络。

瞻博网络 VXLAN 解决方案

瞻博网络的 MX 系列路由器QFX 系列交换机EX 系列交换机支持 EVPN-VXLAN,并可作为 VTEP 网关对 VXLAN 数据包进行封装/解封装,并在不同 VXLAN 之间进行路由。

VXLAN 常见问题解答

VXLAN 有什么用途?

VXLAN 可用于实现传统 VLAN 无法实现的网络分段。传统 VLAN 仅提供 4094 个虚拟网络,而 VXLAN 可提供多达 1600 万个。网络分段有两个主要用途:支持多个租户共享一个物理网络,而无法查看彼此的流量,并允许重复使用 IP 地址空间。此外,还可以根据差异化服务质量 (OoS) 策略和服务级别协议 (SLA) 配置网络分段。

VXLAN 主要用于大型数据中心、服务提供商网络和云运营商网络,在这些环境中,传统 VLAN 的 4094 个虚拟网络上限过少。不过,随着越来越多且越来越便宜的交换机处理器支持 VXLAN,它开始不局限于数据中心,也适用于园区网络。 

VXLAN 是一项标准吗?

是的,VXLAN 标准由 IETF 于 2014 年制定,并在 RFC 7348 中载明。 

VXLAN 是第 3 层标准吗?

VXLAN 有时被视作第 3 层协议,因为它依赖 IP(第 3 层)传输网络。有时候,它还被视作第 4 层标准,因为它将以太网帧封装在 UDP 中,通过运维影响第 4 层 UDP。 

VXLAN 是否取代了 VLAN?

VXLAN 并不能完全取代 VLAN;在某些情况下(如大型服务提供商数据中心),两种标准可能都适用。VXLAN 可用来为服务提供商的全球网络进行分段,将每个客户隔离在各自的 VXLAN 中,同时支持每个客户在各自的 VXLAN 中创建专用 VLAN。

VXLAN、VLAN 和 QinQ 技术之间的基本区别是什么?

VLAN、QinQ 和 VXLAN 都是用来将物理网络从逻辑上分段为多个虚拟网络的标准。每个标准都比前一个标准提供更强的可扩展性。对网络进行分段通常是出于安全因素考量以及为了满足不同的 OoS 要求(通常是 SLA 的一部分)。

VLAN 于 1998 年率先实现标准化;QinQ 以 VLAN 为基础,增加了可创建的逻辑网络数量。QinQ 还使企业/商业 VLAN 得到了公共 WAN 服务的支持。QinQ 还使企业/商业 VLAN 得到了公共 WAN 服务的支持。

理论上来讲,这些技术之间的区别在于它们通过通信网络进行传输之前如何标记和封装以太网帧。  

VXLAN、VLAN 和 QinQ 之间还有哪些技术方面的区别?

要认识这些不同的虚拟化技术,就需要对以太网的运维方式有基本的认识。以太网帧由含有数据转发信息(如源以及目的 MAC 和 IP 地址)的标头以及包含待传输实际数据的有效负载组成。若要将这些帧从一个位置成功转发到另一个位置,通信链中涉及的每个网络元素(如网络接口卡、交换机和路由器)必须理解所涉及的以太网和虚拟化标准。

VLAN 和 QinQ 都扩展了基本以太网帧头的长度,要求所有网络设备(两头端点和所有中间设备)支持这些标准。相比之下,VXLAN 并未扩展以太网帧头,因此仅要求作为 VTEP 的设备支持该标准。

VLAN 标准于 1998 年推出,将以太网帧头扩展了 4 个字节,使以太网帧可以被“标记”为多达 4094 个虚拟网络中的一个。QinQ 扩展了 VLAN 标准,可以在 4094 个“公共”VLAN 中的每个 VLAN 上创建 4094 个“私有”VLAN,即总共 1600 万个 VLAN。为满足需求,它还将以太网帧头扩展了 4 个字节。

与 QinQ 一样,于 2014 年推出的 VXLAN 标准支持多达 1600 万个虚拟网络。虽然它没有扩展以太网帧头,但要求提高 IP 数据包最大容量,将 IPv4 数据包从 1518 个字节扩展到 1554 个字节。VXLAN 数据包将原始以太网帧封装在 UDP 数据包中。新 UDP 数据包的有效负载中含有 VXLAN 标头和完整的原始以太网帧。UDP 通常用于对延迟敏感的流量,是核心互联网协议套件中的无连接第 4 层通信协议,也是面向连接的 TCP 的低延迟替代协议。  

VXLAN、VLAN 和 QinQ 通常配合使用吗?

假设您可以同时使用传统 VLAN、QinQ VLAN 和 VXLAN。这是因为网络标识符存在于数据包中的位置。VXLAN 不会更改或扩展在其中封装的 UDP 数据包的格式,也不会更改或扩展携带 UDP 数据包的外层以太网帧。这是因为 VXLAN 数据包包含在 UDP 数据包(而非标头)的有效负载中。它们包括一个 VXLAN 标头和最终要传输的完整原始以太网帧。然后,UDP 数据包中的 VXLAN 就可以包含也包含 VLAN 和 QinQ 标识符的外层以太网帧。

换言之,在 VXLAN 数据包中,有三个位置可以定义虚拟网络:外层以太网帧、VXLAN 标头和内层以太网帧,每组虚拟网络都可能完全互不相同。这可能产生一个数据包,其中外层以太网帧可支持 1600 万个虚拟网络,VLXAN 标头可支持 1600 万个额外虚拟网络,内层以太网帧可支持另外 1600 万个虚拟网络。

然而在企业网络实践中,网络往往基于 VLAN 或 VXLAN。当多种技术配合使用时,通常由网络和云服务提供商为企业客户提供在各自 VXLAN 中使用 VLAN 的能力。在此场景中,内层以太网帧使用 VALN,以及 VXLAN 标头的虚拟网络功能,但未在外层以太网帧上使用 VLAN。

VXLAN 比 VLAN 更好吗?

VXLAN 和 VLAN 虽然表面上相似,但以不同的方式解决同一个问题。这意味着,它们适用于不同的情形,并不互相排斥。

如今,几乎每台售出的交换机至少可支持基本 VLAN,大多数(包括许多消费级交换机)可支持 QinQ。EVPN-VXLAN 支持通常仅限于功能更强大的企业或运营商等级交换机。

VXLAN 是公认更高效的技术。原因在于,在基于 VXLAN 的网络中,只有包含 VTEP 的交换机才能承载额外查找表 (LUT) 负担,且它们仅需要为具有 VTEP 的虚拟网络承载这一负担,而非整个网络。这与基于 VLAN 的网络(如 QinQ)形成鲜明对比,QinQ 也与 VXLAN 一样支持 1600 万潜在虚拟网络,但要求所有交换机承载额外负担。 

与 QinQ VLAN 相比,VXLAN 效率包括哪些技术细节?

QinQ VLAN 要求可能与 QinQ 数据包交互的每台设备都支持扩展的以太网标头。VXLAN 要求可能与 VXLAN 数据包交互的设备支持更长的以太网帧,但仅要求具有 VTEP 的设备支持 VXLAN 标头解封装和读取。

由于传统的 VLAN 及其 QinQ 扩展都只在以太网帧标头中添加标记,因此检测到 VLAN 或 QinQ 数据包的每台交换机都将存储每个数据包的元数据。这导致 LUT 迅速扩大,因为每台交换机都需要掌握整个网络中每台设备的位置。

由于 VXLAN 封装原始以太网帧,因此它们将网络分为“底层”网络和“叠加”网络。底层网络是传输 UDP 数据包的物理网络,是 VXLAN 标头和原始以太网帧驻留的位置。大多数传输这些 UDP 数据包的物理交换机不需要存储有关 VXLAN 标头或原始以太网帧的信息。它们只需要了解向哪里传输 UDP 数据包。

当 UDP 数据包到达具有相关 VTEP 的交换机时,UDP 数据包被解封装,包含 VTEP 的交换机会读取 VXLAN 标头和封装的以太网帧头信息,从而将该数据添加到其 LUT 中。因此,在基于 VXLAN 的网络中,只有包含 VTEP 的交换机才能承载额外 LUT 负担,且它们仅需要为具有 VTEP 的虚拟网络承载这一负担,而非整个网络。这与基于 VLAN 的网络形成鲜明对比,后者中的所有交换机必须为整个网络承载额外 LUT 负担。

因此,从 LUT 资源使用的角度来看,基于 VXLAN 的大型网络比基于 VLAN/QinQ 的网络高效得多。但是,基于 VXLAN 的网络需要支持 VTEP 的交换机,而目前这仅限于更高端的交换机。

VXLAN 与 EVPN 有什么区别?

所有类型的虚拟 LAN 都是将物理网络分段为多个专用虚拟网络的一种方式。以太网 VPN (EVPN) 和 VXLAN 经常配合使用,但它们在技术上相互独立,目标不同。

VXLAN 将第 2 层地址空间从约 4000 个扩展至约 1600 万个,从而将以太网扩展到更广泛的 IP 网络,对物理网络进行切片,以便多个租户可以共享资源,而不会看到彼此的流量。EVPN 支持创建由交换机端口以及来自不同设备和网域的其他资源组成的虚拟网络。EVPN 基本上就是一种让未连接到同一物理网络且地理位置可能互相远离的计算机如同插入同一物理交换机运行一般的方式,该 EVPN 的所有节点都能像连接到传统的第 2 层本地网络一样接收数据广播。 

为什么要将 VXLAN 和 EVPN 配合使用?

将这些技术综合到 EVPN-VXLAN 中,即可获得终极网络配置灵活性;一台计算机的物理位置对其所连接的网络没有影响。一台 32 端口交换机的每个端口可能接入不同的 VXLAN,这意味着如果没有路由器提供连接,插入任何端口的计算机都无法与插入同一交换机其他端口的另一台计算机进行通信。但是,您可以通过 EVPN 构建虚拟以太网,如果配置正确,位于两个不同城市的计算机可以接入同一子网。

瞻博网络提供哪些 VXLAN 解决方案?

瞻博网络在多款交换机和路由器中提供 VXLAN VTEP 支持,并提供配置和管理 VXLAN 和 EVPN-VXLAN 数据中心交换矩阵的方案: