1 什么是VxLAN?
VxLAN 全称是 Visual eXtensible Local Area Network(虚拟扩展本地局域网),从名字上就知道,这是一个VLAN的扩展协议。
VxLAN本质上是一种隧道封装技术。它使用TCP/IP协议栈的惯用手法——封装/解封装技术,将L2的以太网帧(Ethernet frames)封装成L4的UDP数据报(datagrams),然后在L3的网络中传输,效果就像L2的以太网帧在一个广播域中传输一样,实际上是跨越了L3网络,但却感知不到L3网络的存在。
2 为什么需要VxLAN?
一台服务器可虚拟多台虚拟机,而一台虚拟机相当于一台主机。主机的数量发生了数量级的变化,这也为虚拟网络带来了如下问题:
1. 虚拟机规模受网络规格限制
在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。
2. 网络隔离能力限制
当前主流的网络隔离技术是VLAN,在大规模的虚拟化网络中部署存在如下限制:
① 由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量租户或租户群的需求。
② 传统二层网络中的VLAN无法满足网络动态调整的需求。
3. 虚拟机迁移范围受网络架构限制
虚拟机启动后,可能由于服务器资源等问题(如CPU过高,内存不够等),需要将虚拟机迁移到新的服务器上。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。
针对大二层网络,VXLAN的提出很好地解决了上述问题:
1. 针对虚拟机规模受网络规格限制
VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
2. 针对网络隔离能力限制
VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识。
3. 针对虚拟机迁移范围受网络架构限制
VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟机迁移不受网络架构限制。
3 VxLAN隧道是如何建立的?
VXLAN在两台TOR交换机之间建立了一条隧道,将服务器发出的原始数据帧加以“包装”,好让原始报文可以在承载网络(比如IP网络)上传输。当到达目的服务器所连接的TOR交换机后,离开VXLAN隧道,并将原始数据帧恢复出来,继续转发给目的服务器。
另外,VxLAN网络中出现了一些传统数据中心网络中没有的新元素,如VTEP、VNI等。
VxLAN VTEP
VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)是VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN对用户原始数据帧的封装和解封装均在VTEP上进行。
VTEP是VXLAN网络中绝对的主角,VTEP既可以是一台独立的网络设备,也可以是在服务器中的虚拟交换机。源服务器发出的原始数据帧,在VTEP上被封装成VXLAN格式的报文,并在IP网络中传递到另外一个VTEP上,并经过解封转还原出原始的数据帧,最后转发给目的服务器。
VxLAN VNI
以太网数据帧中VLAN只占了12比特的空间,这使得VLAN的隔离能力在数据中心网络中力不从心。而VNI的出现,就是专门解决这个问题的。
VNI(VXLAN Network Identifier,VXLAN 网络标识符),VNI是一种类似于VLAN ID的用户标识,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VXLAN报文封装时,给VNI分配了24比特的长度空间,使其可以支持海量租户的隔离。
另外,在分布式网关部署场景下,VNI还可分为二层VNI和三层VNI,它们的作用不同:
① 二层VNI是普通的VNI,以1:1方式映射到广播域BD,实现VXLAN报文同子网的转发。
② 三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发。
4 VxLAN网关
VxLAN二层网关与三层网关
和VLAN类似,不同VNI之间的主机,以及VXLAN网络和非VXLAN网络中的主机不能直接相互通信。为了满足这些通信需求,VXLAN引入了VXLAN网关的概念。VXLAN网关分为二层网关和三层网关:
① VXLAN二层网关:用于终端接入VXLAN网络,也可用于同一VXLAN网络的子网通信。
② VXLAN三层网关:用于VXLAN网络中跨子网通信以及访问外部网络。
VxLAN集中式网关与分布式网关
根据三层网关部署方式的不同,VXLAN三层网关又可以分为集中式网关和分布式网关。
VxLAN集中式网关
集中式网关是指将三层网关集中部署在一台设备上,如下图所示,所有跨子网的流量都经过这个三层网关转发,实现流量的集中管理。
部署集中式网关的优点和缺点如下:
优点:
对跨子网流量进行集中管理,网关的部署和管理比较简单。
缺点:
① 转发路径不是最优:同一二层网关下跨子网的数据中心三层流量都需要经过集中三层网关绕行转发(如图中蓝色虚线所示)。
② ARP表项规格瓶颈:由于采用集中三层网关,通过三层网关转发的终端的ARP表项都需要在三层网关上生成,而三层网关上的ARP表项规格有限,这不利于数据中心网络的扩展。
VXLAN分布式网关
通过部署分布式网关可以解决集中式网关部署的缺点。VXLAN分布式网关是指在典型的“Spine-Leaf”组网结构下,将Leaf节点作为VXLAN隧道端点VTEP,每个Leaf节点都可作为VXLAN三层网关(同时也是VXLAN二层网关),Spine节点不感知VXLAN隧道,只作为VXLAN报文的转发节点。
如下图所示,Server1和Server2不在同一个网段,但是都连接到同一个Leaf节点。Server1和Server2通信时,流量只需要在该Leaf节点上转发,不再需要经过Spine节点。
部署分布式网关时:
1.Spine节点:
关注于高速IP转发,强调的是设备的高速转发能力。
2.Leaf节点:
① 作为VXLAN网络中的二层网关设备,与物理服务器或VM对接,用于解决终端租户接入VXLAN虚拟网络的问题。
② 作为VXLAN网络中的三层网关设备,进行VXLAN报文封装/解封装,实现跨子网的终端租户通信,以及外部网络的访问。
VXLAN分布式网关具有如下特点:
① 同一个Leaf节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,部署灵活。
① Leaf节点只需要学习自身连接服务器的ARP表项,而不必像集中三层网关一样,需要学习所有服务器的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。