Overlay在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。
随着云计算虚拟化的驱动,基于主机虚拟化的Overlay技术出现,在服务器的Hypervisor内vSwitch上支持了基于IP的二层Overlay技术,通过更靠近应用的边缘来提供网络虚拟化服务,其目的是使虚拟机的部署与业务活动脱离物理网络及其限制,使得云计算的网络形态不断完善。主机的vSwitch支持基于IP的Overlay之后,虚机的二层访问直接构建在Overlay之上,物理网不再感知虚机的诸多特性。
存在三种不同的构建模式:
Network Overlay 方案:
所有终端均采用物理交换机作为VTEP节点,所有的物理接入交换机支持VXLAN,物理服务器支持SR-IOV功能,使虚拟机通过SR-IOV技术直接与物理交换机相连,虚拟机的流量在接入交换机上进行VXLAN报文的封装和卸载,对于非虚拟化服务器,直接连接支持VXLAN的接入交换机,服务器流量在接入交换机上进行VXLAN报文封装和卸载;当VXLAN网络需要与VLAN网络通信时,采用物理交换机做VXLAN GW,实现VXLAN网络主机与VLAN网络主机的通信;采用高端交换机做VXLAN IP GW,实现VXLAN网络与WAN以及Internet的互连。
Host Overlay 方案:
所有终端均采用虚拟交换机作为VTEP节点,VTEP、VXLAN GW、VXLAN IP GW均通过安装在服务器上的软件实现,vSwitch实现VTEP功能,完成VXLAN报文的封装解封装;vFW等实现VXLAN GW功能,实现VXLAN网络与VLAN网络、物理服务器的互通;vRouter作为VXLAN IP GW,实现VXLAN网络与Internet和WAN的互联。在本组网中,由于所有VXLAN报文的封装卸载都通过软件实现,会占用部分服务器资源,当访问量大时,vRouter会成为系统瓶颈。
Hybrid Overlay 方案:
既有物理交换机接入,又有虚拟交换机接入,且软件VTEP和硬件VTEP之间可以基于标准协议互通。上述两种组网方案中,网络Overlay方案与虚拟机相连,需要通过一些特殊的要求或技术实现虚拟机与VTEP的对接,组网不够灵活,但是主机Overlay方案与传统网络互通时,连接也比较复杂,且通过软件实现VXLAN IP GW也会成为整个网络的瓶颈,所以最理想的组网方案应该是一个结合了网络Overlay与主机Overlay两种方案优势的混合Overlay方案。如上图所示它通过vSwitch实现虚拟机的VTEP,通过物理交换机实现物理服务器的VTEP,通过物理交换机实现VXALN GW和VXLAN IP GW;混合式Overlay组网方案对虚拟机和物理服务器都能够很好的兼容,同时通过专业的硬件交换机实现VXLAN IP GW从而承载超大规模的流量转发,是目前应用比较广泛的组网方案。
PS: OpenStack 采用的是第二种方案
另外IETF在Overlay技术领域有如下三大技术路线正在讨论,为简单起见,只讨论基于IPv4的Overlay相关内容。
1 . VXLAN。 VXLAN是将以太网报文封装在UDP传输层上的一种隧道转发模式,目的UDP端口号为4798;为了使VXLAN充分利用承载网络路由的均衡性,VXLAN通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为UDP的号;采用24比特标识二层网络分段,称为VNI(VXLAN Network Identifier),类似于VLAN ID作用;未知目的、广播、组播等网络流量均被封装为组播转发,物理网络要求支持任意源组播(ASM)。
2. GRE/NVGRE(Generic Routing Encapsulation,通用路由协议封装)是一种 IP-over-IP 的隧道。 NVGRE是将以太网报文封装在GRE内的一种隧道转发模式;采用24比特标识二层网络分段,称为VSI(Virtual Subnet Identifier),类似于VLAN ID作用;为了使NVGRE利用承载网络路由的均衡性,NVGRE在GRE扩展字段flow ID,这就要求物理网络能够识别到GRE隧道的扩展信息,并以flow ID进行流量分担;未知目的、广播、组播等网络流量均被封装为组播转发。
3.STT(Stateless Transport Tunneling)。 STT利用了TCP的数据封装形式,但改造了TCP的传输机制,数据传输不遵循TCP状态机,而是全新定义的无状态机制,将TCP各字段意义重新定义,无需三次握手建立TCP连接,因此称为无状态TCP;以太网数据封装在无状态TCP;采用64比特Context ID标识二层网络分段;为了使STT充分利用承载网络路由的均衡性,通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为无状态TCP的源端口号;未知目的、广播、组播等网络流量均被封装为组播转发。
参考: