产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

VXLAN:云计算时代的隧道技术(一)

【VXLAN隧道技术】本文主要是介绍了什么VXLAN,VXLAN二层隧道技术以及为什么需要VXLAN, VXLAN的优势和价值。

  • 发布时间:2022-04-27

  • 点击量:

  • 点赞:

分享至

我想评论

1 VXLAN:云计算时代的隧道技术

1.1   什么是VXLAN

VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)是建立在物理IP网络之上的二层隧道技术。在云计算快速发展的时代,传统网络无法满足云计算对扩展性的要求,VXLAN能够为跨地域的多数据中心间提供二层互联,并且能够对海量用户不同业务进行隔离。VXLAN使用UDP报文对原始二层以太网数据帧进行封装,因此能够跨三层网络传输二层业务流量。

图1-1    VXLAN二层隧道技术

1.2   为什么需要VXLAN
1.2.1  传统技术在数据中心场景下的困境
 
随着网络和虚拟化技术的发展,服务器虚拟化在数据中心中的应用越发广泛。在数据中心的服务器设备上部署虚拟机提高了服务器的设备利用率,有效降低了数据中心的硬件成本和运营成本。
虚拟化技术的引入为传统数据中心网络带来了新的挑战。
 
●二层网络边界限制
 
随着虚拟化技术的应用,每个实体服务器上可能会运行大量虚拟机,因此二层网络中虚拟机MAC地址数量面临数量级的增长。为了不同二层网络间能够正常转发数据报文,接入交换机需要学习每一个二层网络中虚拟机的MAC地址。受限于硬件水平,接入交换机的MAC地址表容量一般较小,难以满足需求。
 
图1-2    MAC地址表限制
●网络隔离能力有限
 
在传统数据中心网络中,虚拟机通过VLAN进行流量隔离,不同租户虚拟机被划分到不同的VLAN中。VLAN技术通过VLAN ID对不同的VLAN进行区分,用于进行VLAN识别的VID字段长度为12bit,即实际可分配的VLAN ID数量为2^12-2 = 4094(首尾两个VLAN ID保留),这个数量在某些大规模数据中心内是不足的。另外传统的VLAN无法满足网络动态调整的需求,网络的扩容和调整都非常困难。
 
●虚拟机迁移限制
 
由于服务器硬件资源问题(如CPU过高、磁盘不够和内存不足等)或机房的搬迁转移,虚拟机需迁移到其他服务器上。为了保证虚拟机迁移过程中业务不被中断,要求虚拟机的MAC地址和IP地址在迁移前后不发生改变,因此虚拟机只能在当前所在二层网络中进行迁移。
 
图1-3    虚拟机迁移限制

1.2.2  VXLAN的优势和价值
 
1)VXLAN报文格式
 
为了便于理解VXLAN是如何解决数据中心网络发展遇到的种种困难,我们先对VXLAN的报文格式进行介绍。
VXLAN设备在收到虚拟机发送的数据帧时会封装四个部分以形成新的帧头(内层的数据帧携带的原始目的/源MAC、内层VLAN Tag和以太网类型保持不变)。这四个部分由内而外分别是“VXLAN头部”、“外层UDP头”、“外层IP头”和“外层以太帧头”。VXLAN头和原始以太网数据帧作为UDP报文的数据段。
 
图1-4    VXLAN报文格式

●VXLAN头部
 
长度为64位,目前协议版本设计中,其唯一的作用就是携带中间24位的VNI标识,这个VNI标识是由VTEP(VXLAN Tunnel End Point,虚拟扩展本地网络隧道终结结点)分配的。
 
○Flag(8位):其中I位必须设置成1以表示有效的VNI,R位设置成0。
 
○VXLAN Segment ID/VXLAN Network Identifier (VNI):占24位,表示VXLAN网络标识符。与VLAN的情况类似,虚拟机属于相同的VXLAN才能进行二层通信。
 
○Reserved:有两处,分别占24位和8位,填充0。
 
●外层UDP头部
 
图1-5    外层UDP头部

UDP头部各字段含义如下:
○Source Port:UDP源端口号。由VTEP分配,源端口号是数据帧本身的二层帧头哈希运算的结果。
○Destination Port:目的端口号,IANA分配端口号为4789。
○UDP Length:UDP头部的长度。
○UDP Checksum:UDP校验和,发送时填充0。
●外层IP头部
 
图1-6    外层IP头部

 
外层IP头部主要字段含义如下:
 
○Outer Source IPv4 Address:VXLAN隧道本端VTEP的IP地址。VTEP为VXLAN隧道两端的设备。
 
○Outer Destination IPv4 Address:可以是单播IP地址,也可以是多播地址。如果是单播地址,表示需要通信的虚拟机对应的VTEP的IP地址。
 
外层IP头部的IP地址不再是通信双方虚拟机的地址,而是隧道两端的VTEP设备地址。如果虚拟机所在服务器的虚拟机监视器直接承担VTEP的工作,那么此处IP地址就是运行虚拟机软件的服务器网卡的IP地址。若VTEP是交换或路由设备,则IP地址是出端口上的IP地址或三层SVI接口的IP地址。
 
●外层以太网头部
 
图1-7    外层以太网头部

外层以太网头部主要字段含义如下:
○    Outer destination MAC address:指向目的VTEP IP的下一跳MAC地址。
○    Outer source MAC address:本端VTEP的MAC地址。
○    Outer VLAN tag information:可选携带。

2)为什么VXLAN是数据中心的最优解
从上文的VXLAN报文格式可以看出VXLAN是如何解决传统技术在数据中心场景下的困境。
 
●打破二层网络边界限制,解决MAC容量问题
VXLAN利用UDP封装虚拟机发出的数据包,UDP数据包的外层IP/MAC头部均使用物理网络的IP/MAC地址。因此,除了VXLAN网络边缘设备,网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力。
 
●解决VLAN数量不足问题
VXLAN可以支持多达16M的VXLAN网段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。
 
●虚拟机迁移限制
VXLAN通过采用MAC in UDP封装来延伸二层网络,实现了物理网络和虚拟网络解耦,租户规划虚拟网络时不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度。通过VXLAN构建大二层网络,保证了在虚拟迁移时虚拟机的IP地址、MAC地址等参数保持不变。
 
1.3   VXLAN基本概念
1.3.1  什么是Underlay网络和Overlay网络
 
Underlay网络是一个已有的物理承载网络。Overlay网络是一个建立在已有网络上的虚拟网络,由逻辑节点和逻辑链路构成。VXLAN就是在物理网络基础上(比如IP网络)构建了一个叠加的虚拟网络。
 
图1-8    Overlay和Underlay示意图

这里我们以班车为例做一个类比,便于大家理解Underlay网络和Overlay网络和其中的概念。公共交通道路好比上文中提到的承载网络。若员工选择自驾上班,那么员工需要在每个路口规划下一段路需要怎么走,这种情况属于工作在Underlay网络。若员工选择坐班车上班,员工不需要知道中间每个路段需要如何通行,只需了解班车时间表和站点信息(上车地点和目的地),并通过工牌等方式搭乘班车即可,员工只需要关心起点和终点即可,这种情况属于工作在Overlay网络。员工选择Overlay方式上班的案例中,班车排班、站点规划、行政分发班车信息等均属控制面板行为,通过工牌搭乘班车和下班车属于数据面行为。
Underlay网络和Overlay网络存在如下特点:
 
●承载网络(Underlay)和虚拟网络(Overlay)完全分离,互不感知。
●Underlay网络要求简单、易管理,同时能够为Overlay网络提供稳定、可靠的转发能力。
●Overlay网络需要提供灵活性和可扩展性。

1.3.2  什么是VTEP
 
以VLAN使用场景为类比,VTEP相当于交换机设备。局域网中交换机负责修改和还原VLAN数据帧,而VTEP用于封装和解封装VXLAN报文。VTEP是VXLAN隧道的起点和终点,在VXLAN隧道的起点,VTEP将虚拟机产生的数据封装到UDP包头内再发送出去,虚拟机本身的MAC地址和VLAN信息在经过封装后不再作为数据转发的依据;在隧道终点将收到的VXLAN报文解封装。
 
1.3.3  什么是VNI
 
VNI(VXLAN Network Identifier,VXLAN 网络标识符)是一种类似于VLAN ID的用户标识,用来表示不同的租户和不同的VXLAN网段(VXLAN Segment)。只有具有相同VNI,处于同一VXLAN网段的虚拟机才能通过VXLAN二层转发相互通信,否则需要通过VXLAN三层转发通信。VNI用一个24位二进制数表示,可以支持2^24个租户。
 
1.3.4  什么是VXLAN隧道
 
VXLAN隧道是在两个VTEP之间完成VXLAN封装报文传输的逻辑隧道,是Overlay层面的传输链路。业务报文在进入隧道时进行VXLAN头、UDP头和IP头封装后,通过Underlay网络的三层转发透明地将封装后的报文传输给远端VTEP,再由远端VTEP对其进行出隧道解封装处理。VXLAN隧道使得不同VTEP上的相同VNI的主机互通,VLAN中的Trunk则是使不同交换机上的相同VLAN中的主机互通。虽然二者作用有些相似,但是本质却有很大不同。VXLAN隧道是虚拟链路,传输的是封装后的UDP报文,而Trunk链路是物理链路,传输的是帧头改造后的数据帧。
 
1.3.5  什么是VXLAN网关
VXLAN网关的功能是根据VXLAN报文内层的IP进行三层转发,充当VXLAN网络内虚拟机的网关,类似于局域网中的网关设备,实现跨网段通讯功能。配置VXLAN网关之后,便可以构建Overlay层面的三层网络,实现VXLAN子网之间的跨网段通信和Internet访问。
 
VXLAN网关上必须拥有VXLAN路由接口,类似于VLAN网络中的SVI(Switch Virtual Interface,交换机虚拟接口)。VXLAN路由接口和VXLAN实例一一对应,VXLAN路由接口负责VXLAN实例内所有三层业务数据的转发工作。
 
1.3.6  什么是VXLAN实例
 
VXLAN实例是基于VXLAN的Overlay网络上的一个节点,类似于VLAN实例,处理一个VNI内的报文转发。该节点可以在Overlay网络实现MAC地址学习和泛洪等传统的二层交换功能,在被指定为VXLAN网关(配置VXLAN路由接口)后也可以进行三层转发。在同一台设备上,VXLAN实例和VNI为一一对应关系。
 
1.3.7  VXLAN网络概念图示
 
上文中我们介绍了大量VXLAN相关的概念,现在我们以架构图的方式呈现,便于大家能够理解VXLAN内各个元素之间的关系。
 
图1-9    VXLAN概念图示

 
如图1-9所示,图中是一个集中式网关的拓扑图,其中一共有三台物理设备,两台交换设备和一台网关设备。我们从左侧开始逐一介绍每个元素。
 
(1)虚拟机通过OVS接入交换设备。
 
(2)交换设备通过子接口或者是VLAN ID方式识别不同网段虚拟机流量,并与对应的VXLAN实例进行绑定。
 
(3)VXLAN实例与VNI一一对应,负责处理对应VNI的数据转发。
 
(4)VTEP与VTEP之间建立了VXLAN隧道。VXLAN隧道通过与VXLAN实例绑定,从而能够传输该VXLAN实例的VXLAN报文。接收端通过VXLAN报文的VNI将数据移交给对应的VXLAN实例。
 
(5)VXLAN网关的VXLAN实例绑定了VXLAN路由接口,负责该VNI的三层转发。
 
相关链接
 

相关标签:

点赞

更多技术博文

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式