NVGRE与VXLAN都是用于虚拟化数据中心网络的技术,它们旨在解决传统网络架构中的一些问题,如隔离、伸缩性和性能。尽管它们的目标相似,但它们在实现方式和一些关键方面存在区别。本文将深入研究NVGRE和VXLAN,探讨它们的异同点以及它们在不同场景下的优劣势。

让我们直接开始!
目录:
NVGRE
VXLAN
NVGRE 与 VXLAN 对比
总结
虚拟化技术的崛起已经改变了数据中心的运行方式,使得在同一物理基础设施上运行多个虚拟机成为可能。然而,传统的数据中心网络设计并不适应这种新型应用的需求,因此需要一种新的方法来解决这些问题。NVGRE和VXLAN就是为此而生的。
NVGRE
NVGRE(Network Virtualization using Generic Routing Encapsulation)是一种网络虚拟化方法,它旨在解决传统的虚拟局域网(VLAN)在复杂虚拟化环境中的限制。

NVGRE工作原理
NVGRE工作原理涉及数据包的封装,将虚拟网络标识符(TNI)添加到数据包中,通过现有IP网络传输数据包,然后在目标主机上进行解封装和交付。这使得大规模虚拟网络在物理基础设施上更加灵活和可扩展。NVGRE是一种用于解决虚拟网络扩展性问题的有效技术。
- NVGRE引入了一个24位的虚拟网络标识符(Tenant Network Identifier,TNI),用于标识不同的虚拟网络或租户。每个TNI对应一个独立的虚拟网络,允许多个虚拟网络在同一物理基础设施上运行,而不会相互干扰。
- 原始以太网帧:包括源MAC地址、目标MAC地址、以太网协议类型(通常是IPv4或IPv6)等。
- 当虚拟机(VM)之间进行通信时,其数据包将被封装成NVGRE数据包。

- NVGRE数据包通过现有的IP网络进行传输,包括物理网络或虚拟化网络。
- 在传输过程中,NVGRE数据包的IP头部信息用于路由和传递,而TNI用于识别目标虚拟网络。
- 当NVGRE数据包到达目标虚拟网络的VM所在的主机时,主机将进行解封装。
- 它将从NVGRE数据包中提取原始以太网帧,将其交给目标VM进行处理。
- NVGRE主机会维护一个MAC地址表,用于将虚拟机的MAC地址映射到TNI。
- 当主机接收到NVGRE数据包时,它会查找MAC地址表以确定数据包应该传递给哪个VM。
- NVGRE通常使用广播和组播来支持虚拟网络内的通信。这允许虚拟机进行广播和组播操作,以便满足一些网络协议(如ARP和邻居发现)的需求。