什么是 NVGRE(使用通用路由封装的网络虚拟化)?
NVGRE 代表“使用通用路由封装的网络虚拟化”。 它是一种隧道协议,使用 GRE(通用路由封装)将以太网帧封装到 IP 数据包中,从而可以在第 3 层 (L3) 网络之上创建虚拟第 2 层 (L2) 段。
自 20 世纪 90 年代中期以来,VLAN(虚拟局域网)一直是在物理交换机上创建逻辑(虚拟)L2 网段的常用技术。 但是,VLAN 标准仅允许使用 12 位 VLAN ID 来标识逻辑 L2 段,这将段数限制为大约 4,000 个,因此不适用于大规模网络。 NVGRE 的开发是为了解决这一限制。
通过 NVGRE,用于识别逻辑 L2 段的 VSID(虚拟子网 ID)扩展至 24 位,从而能够创建最多约 1600 万个 L2 段。 此外,由于 NVGRE 在 L3 网络之上构建逻辑 L2 段,因此它允许创建跨越路由器连接的多个 VLAN 的单个逻辑 L2 段。
此功能在不同物理服务器之间的虚拟机实时迁移等情况下尤其有利。 通常,跨 L2 域的实时迁移可能会导致诸如 IP 子网更改、需要为迁移的虚拟机提供新的 IP 地址以及强制客户端调整以访问更新的地址等问题。 但是,通过跨路由器维护统一的 L2 段,NVGRE 可以有效地缓解这些问题。
使用隧道协议在现有物理网络之上创建逻辑网络的做法称为网络覆盖。 与 NVGRE 类似的使用网络覆盖的其他技术包括 VXLAN。 通过覆盖技术实现网络虚拟化是实现 SDN(软件定义网络)的关键组成部分,SDN 是一种基于软件的网络配置管理方法。