本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。
导读:云时代的到来,导致传统二层网络技术,在链路使用率、收敛时间等方面都不满足需求,即便使用VLAN隔离用户和虚拟机,理论上也只能支持4K个标签。VXLAN主要是解决VLAN有限标签的问题。
一、背景
传统的交换网络解决了二层的互通及隔离问题,这个架构发展了几十年已经相当成熟。而随着云时代的到来,却逐渐暴露出了一些主要的缺点。
1)多租户环境和虚拟机迁移
为了满足在云网络中海量虚拟机迁移前后业务不中断的需要,要求虚拟机迁移前后的IP不能变化,继而要求网络必须是大二层结构。传统的二层网络技术,在链路使用率、收敛时间等方面都不能满足需要。
2)VLAN的局限
随着云业务的运营,租户数量剧增。传统交换网络用VLAN来隔离用户和虚拟机,但理论上只支持最多4K个标签的VLAN,已无法满足需求。
二、VXLAN的诞生
为了解决上述局限性,不论是网络设备厂商,还是虚拟化软件厂商,都提出了一些新的Overlay解决方案。
网络设备厂商,基于硬件设备开发出了EVI(Ethernet Virtualization Interconnect)、TRILL(TransparentInterconnection of Lots of Links)、SPB(Shortest Path Bridging)等大二层技术。这些技术通过网络边缘设备对流量进行封装/解封装,构造一个逻辑的二层拓扑,同时对链路充分利用、表项资源分担、多租户等问题采取各自的解决方法。此类技术一般要求网络边缘设备必须支持相应的协议,优点是硬件设备表项容量大、转发速度快。
虚拟化软件厂商,从自身出发,提出了VXLAN(Virtual eXtensible LAN)、NVGRE(Network Virtualization Using Generic RoutingEncapsulation)、STT(A StatelessTransport Tunneling Protocol for Network Virtualization)等一系列技术。这部分技术利用主机上的虚拟交换机(vSwitch)作为网络边缘设备,对流量进行封装/解封装。优点是对网络硬件设备没有过多要求。
通过表1,我们可以看到这几种Overlay技术对比。其中,虚拟化软件厂商提出的Overlay技术由于天然支持vSwitch,在云计算网络中更有优势。
表1 各种Overlay技术比较
通过表2,可以看到VXLAN、NVGRE、STT这三种技术的区别。与NVGRE相比,VXLAN不需要改变报文结构即可支持L2~L4的链路负载均衡;与STT相比,VXLAN不需要修改传输层结构,与传统网络设备完美兼容。由此,VXLAN脱颖而出,成为了SDN环境下的主流Overlay技术。
表2 VXLAN、NVGRE及STT对比
VXLAN采用MAC-in-UDP的报文封装模式,可实现二层网络在三层范围内进行扩展,满足数据中心大二层虚拟机迁移的需求。在VXLAN网络中,属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。
VXLAN最初只在虚拟交换机实现,但虚拟交换机天然具有转发性能低下的缺点,并不适合大流量的网络环境。于是,各硬件厂商也纷纷推出支持VXLAN的硬件产品,与虚拟交换机一起,共同成为网络边缘设备,最终使VXLAN技术能够适应各种网络。
三、VXLAN基本概念