使用通用路由封装的网络虚拟化(NVGRE)
什么是NVGRE(使用通用路由封装的网络虚拟化)?
NVGRE是“使用通用路由封装的网络虚拟化”(Network Virtualization using Generic Routing Encapsulation)的缩写。它是一种隧道协议,使用通用路由封装(GRE)将以太网帧封装到IP数据包中,从而能够在第3层(L3)网络之上创建虚拟第2层(L2)网段。
自20世纪90年代中期以来,VLAN(虚拟局域网)一直是物理交换机上创建逻辑(虚拟)L2网段的常用技术。然而,VLAN标准仅允许使用12位VLAN ID来标识逻辑L2网段,因此网段数量被限制在约4,000个,无法满足大规模网络的需求。NVGRE正是为解决这一限制而开发的。
借助NVGRE,用于标识逻辑L2网段的VSID(虚拟子网ID)扩展至24位,因此最多可创建约1,600万个L2网段。此外,由于NVGRE在L3网络之上构建逻辑L2网段,因此可以创建跨越多个由路由器连接的VLAN的单一逻辑L2网段。
此功能在虚拟机于不同物理服务器之间进行实时迁移等场景中尤其有用。通常,跨L2域的实时迁移可能导致IP子网发生变化等问题,迁移后的虚拟机需要使用新的IP地址,客户端也必须进行相应调整才能访问新地址。不过,NVGRE即使跨越路由器也能维持统一的L2网段,从而有效缓解这些问题。
使用隧道协议在现有物理网络之上创建逻辑网络的做法称为网络叠加。与NVGRE类似,VXLAN也是采用网络叠加的技术。通过叠加技术实现网络虚拟化,是实施软件定义网络(SDN)的关键组成部分。SDN是一种基于软件的网络配置管理方法。
