wps336

VLAN (virtual local area network)技术允许用户不受距离和物理位置的限制进行通信,这大大简化了
网络管理。然而,随着设备和用户数量的大规模增长,由于可伸缩性有限,最多只能支持4094个VLAN,并且
对可用网络链接的使用效率很低,VLAN已经不能满足不断增长的网络规模需求。于是VXLAN (virtual ext
ensible LAN)和QinQ技术应运而生。本篇我们将对这三种技术进行说明和比较。并对VXLAN与NVGRE的区别
进行介绍。

VLAN

VLAN是一种将网络划分为几个广播域的技术。在每个广播域中,用户可以自由地相互通信。不同VLAN之间
的连接,VLAN标记和VLAN间路由是用户必须知道的两个必要术语。VLAN标记是在帧经过VLAN主干端口时,
将一个特殊的标记添加到帧中,这个主干端口允许来自不同VLAN的帧通过。其中一种标记方法是ieee 802.
1q。在CLI和Web用户界面中,VLAN的配置非常简单。

QinQ

QinQ,也称为堆叠VLAN或双VLAN,是由IEEE 802.1ad标准化的。它将VLAN标记封装为两层—私有网络的内部
标记和公共网络的外部标记。随着网络用户的增加,对VLANs ID的需求越来越大,传统的VLAN标签使用IEEE
802.1Q,无法识别和隔离用户数据,扩展metro Ethernet工作。因此,使用QinQ将VLAN号扩展到4096×
4096,可以有效地保存公共VLAN id。

QinQ包有固定的格式。通常一个802.11Q标记的包被封装在另一个802.1Q标记中,这个标记的名字“QinQ”来
自于。在传输过程中,数据包是基于公共网络上的外部VLAN标签进行转发的。内部的VLAN标记被视为也在公共
网络上传输的数据。使用这种双标记形式,QinQ包比普通802.1Q VLAN标记包多4个字节。

wps337

QinQ的实现方式有两种:基本QinQ和选择性QinQ。

基本QinQ是一种基于端口的标注方式。当数据包到达启用了VLAN VPN的接口时,交换机将使用其默认VLAN标
记标记该数据包。传入的数据包是否被标记并不重要。如果它已经被标记,那么它将有两个VLAN标记;如果没
有,它将有一个带有交换机端口的VLAN标记。

选择性QinQ具有基本的QinQ功能,但更加灵活。它可以根据MAC地址、IP协议、源IP地址和VLAN标签来识别
包的内部VLAN标签,然后确定应该添加哪个标签。

VXLAN

VXLAN,也称为虚拟可扩展LAN,顾名思义,VXLAN是一种扩展VLAN的网络虚拟技术。通过使用MAC用户地址
数据报协议(MAC-in-udp)封装,设计用于在第3层网络之上提供第2层覆盖网络。简单地说,VXLAN可以提
供与VLAN相同的服务,但是具有更大的可扩展性和灵活性。与QinQ类似,VXLAN数据包也有一个相对固定的
格式。有了VXLAN MAC-in-UDP封装,原始数据包将添加到VXLAN报头,然后放置在UDP-IP数据包中。这是
一个简单的例子。VXLAN报头:它由一个24位的VNID组成,用于识别第2层段并在段之间保持第2层隔离。VLAN
ID中的所有24位都定义了VXLAN最多可以支持1600万个LAN段的数量。VXLAN是为了解决目前大型云计算数据
中心虚拟网络不足的问题而设计的。事实上,网络工程师过去常常利用vlan来分离云计算环境中的云应用程序
和租户。然而,VLAN只允许在特定时间分配最多4096个网络id,这对于大型云计算环境来说是不够的。因此,
VXLAN旨在通过添加一个24位的段ID来扩展VLAN地址空间,从而将可用的ID数量增加到1600万个,同时在逻
辑上隔离云应用程序和租户。每个帧中的VXLAN段ID可以区分租户的各个逻辑网络和网络ID。因此,数百万个
独立的第2层VXLAN网络可以在一个公共的第3层基础设施上共存。VXLAN规范最初是由Cisco、VMware和
Arista Networks创建的。

wps338

外部UDP报头:VTEP (VXLAN隧道端点)在UDP报头中分配源端口,目标端口通常是UDP端口4789。

外部IP报头:它有一个与内部帧源相关联的源VETP的源IP地址。

外部以太网报头:外部以太网报头有一个与内部帧源相关联的VTEP源MAC地址。

QinQ vs VLAN vs VXLAN

VLAN被用来解决第二层网络隔离、泛洪和as路由接口等问题。VLAN支持功能现在在大多数系统和网络设备
(如以太网交换机、路由器和防火墙)中可用。然而,本文中的比较主要集中在VLAN标记上。要实现不同
VLAN之间的通信,VLAN标记是必不可少的一部分。

如上所述,VLAN标记使用协议IEEE 802.1Q或ISL(交换链路)来处理流经不同VLAN的标记帧。使用此方法
标记的帧只有一个标记。然而,与VLAN相比,QinQ技术更加灵活。一方面,它可以有选择地向传入的帧或
包添加标记。另一方面,外部VLAN标签解决了VLAN id有限的问题。独特的内部标签避免了私有VLAN ID和
公共VLAN id之间的冲突,为小型或大型企业网络提供了一个简单的第二层VPN解决方案。

wps339

当涉及到VXLAN时,它在某种程度上提供了与QinQ相同的功能,但是它的工作层更具可扩展性。VXLAN通过
MAC-in-UDP封装数据包,极大地扩展了第二层网络。我们知道,随着云计算的发展,租户对网络构建的要
求越来越高,特别是对虚拟化数据中心的要求,这就增加了对第二层网络的需求。udp MAC-in-UDP支持使
用24位VINDs,这允许数据中心容纳多个租户,并打破物理距离限制和部署。这就是为什么VXLANs近年来在
云计算和虚拟化数据中心越来越流行的原因。然而,与VLAN和QinQ相比,VXLAN技术更加昂贵和复杂。因此,
并不是所有的VLAN交换机都支持这个功能。

NVGRE

NVGRE是一种网络虚拟化方法,它使用封装和隧道技术为子网提供大量的虚拟lan (vlan)。考虑到VLANs可
以跨分散的数据中心以及第2层(数据链路层)和第3层(网络层)进行扩展,所以使用VLANs提供子网可以使多
租户和负载平衡的网络在本地和云环境中共享。NVGRE旨在解决由于有限数量的vlan无法在复杂的虚拟化环
境中工作而导致的问题,并在分散的数据中心所需的长距离上扩展网络段。NVGRE标准由微软、英特尔、惠普
和戴尔提出。它与另一种封装方法VXLAN竞争。

NVGRE vs VXLAN

NVGRE(使用通用路由封装的网络虚拟化)和VXLAN(虚拟可扩展LAN)都是网络虚拟化技术,旨在扩展VLAN以解
决大型云计算部署中虚拟网络不足的问题。作为虚拟网络的一部分,NVGRE和VXLAN没有提供实质性的功能。
它们只是定义了如何在不同的vm(虚拟机)之间封装和转发数据包。NVGRE和VXLAN在实际使用方面几乎是相同
的。它们之间的主要区别在于后台、传输协议、包格式等。

支持方和传输协议

NVGRE主要由微软支持,VXLAN主要由思科驱动。与使用标准传输协议(TCP/UDP)的VXLAN不同,NVGRE协议是
GRE(通用路由封装)。

数据包格式

数据包格式是NVGRE和VXLAN最显著的区别。VXLAN包报头包含一个24位的ID段,代表1600万个惟一的虚拟段。
此ID通常由UDP端口上的伪随机算法生成。这有助于保持基于5元组的负载平衡,并通过将包中的MAC组映射到
唯一的UDP端口组来保持vm之间的包顺序。VXLAN封装将包的大小扩展到50字节,如下所示。

wps340

NVGRE使用GRE报头的较低24位作为TNI(租户网络标识符),它与VXLAN一样可以支持1600万个虚拟网络。为
了提供描述带宽利用率的流级粒度,传输网络需要使用GRE报头。但是,这导致NVGRE与传统的负载平衡不兼
容,这是NVGRE的主要缺点,也是与NVGRE最大的区别。

wps341

传输方法

VXLAN利用传输网络中的组播来模拟广播、未知单播和第2层段中的组播的泛洪行为,这对于MAC地址学习以
及整个VXLAN工作过程中的ARP和邻居发现等协议都是非常重要的。至于NVGRE,为了增强负载平衡能力,建
议在每个NVGRE主机中使用多个IP地址,以确保可以平衡更多的流量。NVGRE以一种更灵活的方式广播,而
不是依靠泛洪和IP多播。

数据分片

NVGRE支持分片数据包最大传输单元,进一步降低内部虚拟网络的数据包规模。它不需要传输网络来支持大
帧。然而,VXLAN需要一个支持大帧的传输网络来承担数据包规模的扩展。也就是说,VXLAN不支持分片。

VXLAN和NVGRE是与VLAN相比实现隧道化的高级网络虚拟化技术。它们将虚拟网络的规模从4096扩大到1600
万,并允许第2层的数据包在第3层的网络之间传输。因此,通常会添加网络设备NVGRE和NVGRE来扩展网络的
可伸缩性。因此,支持VXLAN和NVGRE的交换机通常用于克服VLAN在大型云计算中的限制,并支持敏捷的VM网
络环境。

Last modification:March 23rd, 2020 at 10:55 am
如果觉得我的文章对你有用,请随意赞赏