下载帮

您现在的位置是:首页 > 网络 > 网络设备

网络设备

NVGRE 与 VXLAN有什么不同?

2022-08-19 20:06网络设备

众所周知,NVGRE(使用通用路由封装的网络虚拟化)和VXVLAN(虚拟可扩展VLAN)都是一种网络虚拟化技术,旨在扩展虚拟局域网(即VLAN),解决大型数据中心中虚拟网络不足的问题。但事实上NVGRE和VLAN只是虚拟网络的一部分,并没有提供实质性的功能,只是定义了如何在不同的虚拟机之间封装和转发数据包。那么NVGRE和VXLAN到底有什么不同呢?本文将为您揭晓答案。

NVGRE是什么?

NVGRE标准是由微软、Arista、英特尔、惠普、戴尔以及博通等提出,是一种用于网络虚拟化的方法,通过封装和隧道技术为子网提供大量的虚拟局域网。NVGRE充分考虑到虚拟局域网可以跨分散的数据中心以及数据链路层和网络层进行扩展,因此通过虚拟局域网提供子网,使多租户和负载平衡的网络在本地和云环境中共享。总而言之,NVGRE旨在解决因虚拟局域网数量无法在复杂的虚拟化环境中工作而导致的一系列问题,以及在分散的数据中心无法进行长距离传输时扩展网段。

VXLAN是什么?

VXLAN规范是由思科、VMware、Citrix、红帽、Arista以及博通等创建,是一种扩展VLAN的网络虚拟化技术,旨在解决当前大型数据中心虚拟网络不足的问题。实际上,网络工程师曾利用虚拟局域网在云计算数据中心中分离云应用程序和租户,但虚拟局域网仅允许在特定时间分配最多4096个网络ID,这对于大型云计算数据中心来说远远不够。因此VXLAN应运而生。VXLAN通过添加24位的段ID扩展虚拟局域网地址空间,从而将可用ID增加到1600万个,与此同时,在逻辑上分离了云应用程序和租户。其中每个帧中的VXLAN段ID可区分租户的各个逻辑网络和网络ID,因此数百万个独立的第2层VXLAN网络可以与一个公共的第3层基础设施上共存。欲了解更多VXLAN可访问《QinQ vs VLAN vs VXLAN》。

NVGRE与VXLAN有什么区别?

由上可知,NVGRE和VXLAN目的相同,实际使用几乎一样,但两者在传输协议、数据包格式、传输方式、分片等方面也存在些许差异。

传输协议的不同

VXLAN采用的是标准传输协议,即TCP/UDP协议;而NVGRE采用的是通用路由封装协议,即GRE协议。此外,前者由思科驱动,后者由微软支持。

数据包格式的不同

数据包格式是VXLAN和NVGRE最明显的区别。VXLAN的数据包报头包含了一个24位的ID段(代表1600万个唯一的虚拟段),该ID段通常由UDP端口上伪随机算法生成的(UDP端口是由该帧中的原始MAC Hash生成的)。这将有助于保证基于5元组的负载均衡,并且通过将数据包中的MAC组映射到唯一的UDP端口组,保存虚拟机(VM)之间数据包的顺序。VXLAN封装将数据包的大小扩展到了50 字节,如下图所示:

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

传输方式的不同

VXLAN利用传输网络中的组播来进行模拟广播、未知单播和第2层段中的组播的泛洪行为,这对于MAC地址学习以及VXLAN工作过程中的地址解析协议(ARP)和邻居发现协议(NDP/ND)等都非常重要。而NVGRE为了提高负载均衡,通常会在每个NVGRE主机使用多个IP地址,确保更多流量能够被负载均衡。NVGRE不再需要依靠泛洪和IP组播进行学习,而是以一种更为灵活的方式进行广播。

分片的不同

NVGRE支持分片数据包最大传输单元,从而能减少内部虚拟网络数据包大小,不需要传输网络支持传输大型帧。但是VXLAN不支持分片,它需要一个支持大型帧的传输网络来承担数据包大小的扩展。

总结

总而言之,VXLAN和NVGRE是实现隧道化的高级网络虚拟化技术,它们将虚拟网络的规模从4094扩展到了1600万,并且允许第2层的数据包在第3层的网络上进行传输,因此大型数据中心通常会添加支持NVGRE和VXLAN的网络设备来扩展网络,如,使用支持NVGRE和VXLAN的交换机克服虚拟局域网在大型数据中心中的限制,且提供更为敏捷的虚拟机网络环境。

文章评论