一、概念
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。使用物理网络的ip和mac作为outer-header,在ip网络中转发二层数据的三层隧道封装技术。
二、背景
需求出处:随着服务器虚拟化技术的广泛部署,大规模云计算IDC、数据中心中虚拟化容器的通信和网络迁移。
1、网络隔离限制
vlan 数量不足:vlan Header头部限长是12bit,vlan的限制个数是2^12=4096个。虚拟化(虚拟机和容器)的兴起使得一个数据中心会有成千上万的机器需要通信,而传统的 VLAN 技术只能支持 4096 个网络上限,已经满足不了不断扩展的数据中心规模。VXLAN 的报文 Header 内有 24 bit,可以支持 2^24次方的 VNI 个数(VXLAN中通过 VNI 来识别,相当于VLAN ID)。
网络动态调整:越多的数据中心(尤其是公有云服务)需要提供多租户的功能,不同用户之间需要独立地分配 ip 和 MAC 地址,如何保证这个功能的扩展性和正确性也是一个待解决的问题。传统的VLAN无法满足网络动态调整的需求,网络的扩容和调整都非常困难。
2、虚拟机规模受网络规格限制(虚拟机数量快速增长)
虚拟机规模受到网络规格的限制,大L2网络里,报文通过查询MAC地址转发,MAC表容量限制了虚拟机的数量。接入交换机需要学习每一个虚拟机的MAC地址,这对接入交换机的MAC地址表容量提出了很高的要求。一旦MAC地址表学习满,交换机便不再主动学习MAC地址,这时一个目的MAC地址未知的数据帧就会引发全网的广播。
VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
3、虚拟机迁移
虚拟机从一个物理机迁移到另一个物理机,但是要求在迁移过程中业务不能中断。要做到这一点,需要保证虚拟机迁移前后,其IP地址、MAC地址等参数维持不变。这就决定了,虚拟机迁移必须发生在一个二层域中。而传统数据中心网络的二层域,将虚拟机迁移限制在了一个较小的局部范围内。
三、特点
1、多租户的网络在整个数据中心更具灵活性:VXLAN提供了一个在可靠的共享网络设施上扩展2层网段的解决方案,从而租户的负载(tenant workload)可以在数据中心跨physical pods.
2、更好地在基础设施中利用网络路径(Network path):VLAN使用STP(Spanning Tree Protocol)协议防止环路,最终不使用网络中的网络链接半阻塞冗余路径。相反,VXLAN数据包基于3层的报头,可以完整的利用3层路由,ECMP路由以及链路聚合协议来使用所有可用的路径.