跳转至

VXLAN


简介

VXLAN(Virtual extensible Local Area Network,虚拟扩展局域网)
是对传统VLAN协议的一种扩展。
VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输。

VXLAN本质上是一种隧道技术,
在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,
将用户侧报文经过特定的封装后通过这条隧道转发。
从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上
vxlan

作用

  • 支持虚拟机动态迁移
  • 在庞大的数据中心里隔离海量租户的网络

虚拟机动态迁移

所谓虚拟机动态迁移,就是在保证虚拟机上服务正常运行的同时,
将一个虚拟机系统从一个物理服务器移动到另一个物理服务器的过程。

为了保证迁移时业务不中断,在虚拟机迁移时,
不仅虚拟机的IP地址不变,而且虚拟机的运行状态也必须保持原状(例如TCP会话状态)
所以虚拟机的动态迁移只能在同一个二层域中进行,而不能跨二层域迁移。

传统的二三层网络架构限制了虚拟机的动态迁移范围,迁移只能在一个较小的局部范围内进行,应用受到了极大的限制。
vxlan

服务器互通

把VM迁移可能涉及的所有服务器都纳入同一个二层网络域
当源和目的之间有通信需求时,便在数据中心IP网络之上创建一条虚拟的隧道(vxlan),透明转发用户数据。
为了使任意两点之间都能通过VXLAN隧道来通信
需要在数据中心IP网络基础上,构建一张全互联的二层隧道虚拟网络

从服务器的角度看,VXLAN为它们将整个数据中心基础网络虚拟成了一台巨大的“二层交换机”,
所有服务器都连接在这台虚拟二层交换机上。
而基础网络之内如何转发都是这台“巨大交换机”内部的事情,服务器完全无需关心。
vxlan

隔离用户网络

数据中心租户数量激增,要求提供一个可隔离海量租户的网络 VLAN,可用VLAN数量只有4000个左右
VXLAN在帧头中引入VXLAN网络标识VNI(VXLAN Network ID),由24比特组成,理论上可支持多达16M的VXLAN段

VXLAN报文格式

在原始二层报文数据外增加mac头,udp头,VXLAN头 vxlan

VXLAN头

字段 长度 作用
flag 1字节 标志位
保留字段 1字节 保留字段
VNI 3字节 VXLAN网络标识VNI
保留字段 1字节 保留字段

VXLAN VNI

VNI(VXLAN Network Identifier,VXLAN 网络标识符)
VNI是一种类似于VLAN ID的用户标识,
一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信
另外,在分布式网关部署场景下,VNI还可分为二层VNI和三层VNI,它们的作用不同:
二层VNI是普通的VNI,以1:1方式映射到广播域BD,实现VXLAN报文同子网的转发。
三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发。

外层头

UDP目的端口号(VXLAN Port)固定为4789 其他IP和MAC均为VM所属VTEP使用的IP和MAC

转发过程

vxlan

VXLAN VTEP

VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)是VXLAN网络的边缘设备,
VXLAN对用户原始数据帧的封装和解封装均在VTEP上进行。

vxlan
同一大二层域内的VTEP之间都需要建立VXLAN隧道.
vxlan

同一大二层域

在VXLAN网络,“同一大二层域”叫做Bridge-Domain,简称BD
它类似于传统网络中VLAN(虚拟局域网)的概念
vxlan vxlan vxlan vxlan vxlan vxlan vxlan vxlan

参考

华为VXLAN简介