概述
VXLAN(Virtual eXtensible LAN,虚拟可扩展的局域网),是一种虚拟化隧道通信技术。它是一种overlay(覆盖网络)技术,通过三层的网络搭建虚拟的二层网络。
- 由RFC7348中定义:A framework for overlaying virtualized layer 2 networks over lay 3 networks.
- 在底层物理网络(underlay)之上,依托UDP层构建
- 逻辑网络与物理网络解耦
- 对原有的网络架构影响小
- 底层多厂家设备组网需求
- 能适配虚拟机和容器环境
VXLAN封装
VXLAN创建在原来的IP网络(三层)上,只要是三层可达的网络就能部署VXLAN。
在VXLAN网络的每个端点都有一个VTEP设备,负责VXLAN协议报文的封包和解包,也就是在虚拟报文上封装VTEP通信的报文头部。
其封装如下
- VTEP(VXLAN Tunnel Endpoints):VXLAN网络的边缘设备,用来进行VXLAN报文的处理(封包和解包)
- VNI(VXLAN Network Identifier):VNI是每个VXLAN的标识,占24 bits,所以是个24位整数,因此最大值是224=16777216
Underlay交换机(物理或虚拟)MTU 问题,传统网络 MTU 一般为 1500,这里加上 VXLAN 的封装多出的50 或 54 字节,需要调整 MTU 为 1550 或 1554,防止频繁分包。一般设置为1600+。
VXLAN通信双方(一般为虚拟机或容器)都认为在直接通信,并不知道底层网络的存在。从整体看,通过Vtep对包进行封装,每个VXLAN网络像是为通信的终端搭建了一个单独的通信通道,也就是隧道。