<返回更多

什么是VXLAN

2019-07-30    
加入收藏

VXLAN概述

作为云计算核心技术之一的“服务器虚拟化”已经被数据中心普遍应用。随着企业业务的发展,虚拟机数量的快速增长和虚拟机迁移已成为一个常态性业务。由此也给传统网络带来了以下一些问题:

1、虚拟机规模受网络规格限制

在传统二层网络环境下,数据报文是通过查询mac地址表进行二层转发。而接入侧二层设备的MAC地址表容量有限,无法支撑大量虚拟机的接入需求。

2、传统网络的隔离能力有限

VLAN作为当前主流的网络隔离技术,由于IEEE 802.1Q中定义的VLAN ID只有12比特,仅能表示4096个VLAN,无法满足大量租户的隔离需求。

3、虚拟机迁移范围受限

为了虚拟机迁移过程中业务不中断,需要保证虚拟机迁移前后的IP地址、MAC地址不变。这就决定了,虚拟机迁移必须发生在一个二层域中。而传统数据中心网络的二层域,将虚拟机迁移限制在了一个较小的局部范围内。

针对上述问题,为了满足云计算的网络能力需求,逐步演化出了Overlay网络技术。Overlay技术有多种,例如VXLAN、NVGRE、STT等。本文就来介绍目前获得最广泛支持的VXLAN技术。

VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,本质上是一种隧道技术。通过将原始数据帧添加VXLAN头后封装在UDP报文中,并以传统IP网络的传输方式转发该UDP报文。报文到达目的端点后,去掉外层封装的部分,将原始数据帧交付给目标终端。

什么是VXLAN

VXLAN网络模型

VXLAN是在三层网络上构建虚拟二层网络,实现主机之间的二层互通。相对于VLAN,VXLAN具有更好的灵活性与扩展性:

1、针对虚拟机规模受网络规格限制

虚拟机发出的数据包封装在IP数据包中,对网络只表现为封装后的网络参数。因此,极大降低了大二层网络对MAC地址规格的需求。

2、针对网络隔离能力限制

VXLAN技术扩展了隔离标识的位数(24比特),理论上可以达到16M的租户隔离,极大扩展了隔离数量。VXLAN引入了类似VLAN ID的网络标识,称为VNI(VXLAN Network ID),由24比特组成,理论上支持多达16M的租户,从而满足了大量租户隔离的需求。

3、针对虚拟机迁移范围受网络架构限制

VXLAN将以太报文封装在IP报文之上,通过路由在网络中传输,构建出了大二层网络,虚拟机迁移不受网络架构限制。而且路由网络具备良好的扩展能力、故障自愈能力、负载均衡能力。

VXLAN报文格式

VXLAN采用了MAC-in-UDP的报文封装模式,在原始数据帧上依次添加VXLAN首部、UDP首部、IP首部和以太帧首部。

什么是VXLAN

 

VXLAN报文转发原理

VXLAN网络中报文的转发一般分为两大类,一类为BUM报文转发(广播、组播、未知单播);另一类为已知单播报文转发。下面分别就以这两类报文的转发流程做介绍。

BUM报文转发

BUM报文在VXLAN中有多种方式可以实现:头端复制、集中复制、组播复制。其中集中复制、组播复制的部署稍复杂,下面只以常用的头端复制方式进行说明。

什么是VXLAN

 

BUM报文转发流程如下:

  1. VM_A向VM_C发出ARP广播请求,请求VM_C的MAC地址,源MAC为MAC_A、目的MAC为全F。
  2. VTEP_1收到ARP请求后,确定对应的VNI及VXLAN隧道头端复制列表。VTEP_1会根据头端复制列表对报文进行复制及VXLAN封装,然后向各隧道发送。
  3. 可以看到,外层目的IP地址为对端VTEP(VTEP_2和VTEP_3)的IP地址。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到达对端VTEP。
  4. 报文到达VTEP_2和VTEP_3后,VTEP对报文进行解封装,得到VM_A发送的原始报文。同时,VTEP_2和VTEP_3记录VM_A的MAC地址、VNI和远端VTEP_1的IP地址的对应关系,并记录在本地MAC表中。之后,VTEP_2和VTEP_3将原始报文发送给对应二层域内的主机。
  5. VM_C接收到ARP请求后,对ARP请求做出应答(VM_B丢弃报文)。因为VM_C上已经学习到了VM_A的MAC地址,所以ARP应答报文为已知单播报文。

已知单播报文转发

什么是VXLAN

 

以VM_C向VM_A进行ARP应答为例,已知单播报文转发流程如下:

  1. VM_C向VM_A发送ARP应答报文,报文源MAC为MAC_C,目的MAC为MAC_A。
  2. VTEP_3接收到VM_C发送的报文后,确定对应的VNI,对报文进行VXLAN封装。可以看到,因为VTEP_3已经有VM_C的MAC地址表,所以这里封装外层目的IP地址为对端VTEP(VTEP_1)的IP地址。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到VTEP_1。
  3. 报文到达VTEP_1后,VTEP_1对报文进行解封装,得到VM_C发送的原始报文。之后,VTEP_1将解封装后的报文发送给VM_A。

VXLAN网关

集中式网关部署

集中式网关是指将三层网关集中部署在Spine设备上,如下图所示,所有跨子网的流量都经过三层网关进行转发,实现流量的集中管理。

什么是VXLAN

 

集中式网关部署方式可以对跨子网流量进行集中管理,网关的部署和管理比较简单,但是因为同Leaf下跨子网流量也需要经过Spine转发,所以流量转发路径不是最优。同时,所有通过三层转发的终端租户的表项都需要在Spine上生成。但是,Spine的表项规格有限,当终端租户的数量越来越多时,容易成为网络瓶颈。

分布式网关部署

VXLAN分布式网关是将Leaf节点作为VXLAN隧道端点VTEP,每个Leaf节点都可作为VXLAN三层网关,Spine节点不感知VXLAN隧道,只作为VXLAN报文的转发节点。

什么是VXLAN

 

在Leaf上部署VXLAN三层网关,即可实现同Leaf下跨子网通信。此时,流量只需要在Leaf节点进行转发,不再需要经过Spine节点,从而节约了大量的带宽资源。同时,Leaf节点只需要学习自身连接主机的ARP表项,而不必像集中三层网关一样,需要学习所有主机的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。

对于分布式网关场景,因为需要在三层网关间传递主机路由才能保证主机间互通,所以需要有控制平面来进行路由的传递。为此,VXLAN引入了EVPN(Ethernet VPN)作为VXLAN的控制平面。EVPN参考了BGP/MPLS IP VPN的机制,通过扩展BGP协议新定义了几种BGP EVPN路由,通过在网络中发布路由来实现VTEP的自动发现、主机地址学习。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>