Skip to main content

VXLAN报文格式

RFC 7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network)。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualizaiton over Layer 3)中的一种网络虚拟化技术。 

协议栈结构

VXLAN是MAC in UDP的网络虚拟化技术,所以其报文封装是在原始以太报文之前添加了一个UDP封装及VXLAN头封装,其目的UDP端口号是4789,源端口号是内层以太报文头通过哈希算法计算后的值。

IP报文头的源IP地址是VXLAN隧道本端VTEP的IP地址,目的IP地址是VXLAN隧道远端VTEP的IP地址。

 +-------------------------------+
 |     Original Layer2 Frame     |
 +-------------------------------+
 |         VXLAN Header         |
 +-------------------------------+
 | UDP Header (Dest Port = 4789) |
 +-------------------------------+
 |             IP               |
 +-------------------------------+
 |             L2               |
 +-------------------------------+
 |             L1               |
 +-------------------------------+

报文格式

VXLAN Header报文格式
 +0--------------7---------------15--------------23--------------31 -------------------------------
 |           Source Port         |       Dest Port = VXLAN Port |                 |
 +---------------------------------------------------------------+             UDP Header
 |           UDP Length         |       UDP Checksum           |                 |
 +---------------------------------------------------------------+ -------------------------------
 | VXLAN Flags |           Reserved_1                         |                 |
 +---------------------------------------------------------------+           VXLAN Header
 |               VXLAN Network Identifier       |   Reserved_2 |                 |
 +---------------------------------------------------------------+ \-------------------------------
VXLAN Header报文字段解释
  字段 长度 含义
UDP Header
Source Port 16比特 源端口号是内层以太报文头通过哈希算法计算后的值。
:Dest Port 16比特 目的UDP端口号是4789。
:UDP Length 16比特 UDP数据包长度。
: UDP Checksum 16比特 UDP数据包检验和。
VXLAN Header
VXLAN Flags 8比特 取值为00001000。
:Reserved_1 24比特。24比特 保留字段,必须设置为0
: VXLAN Network Identifier 24比特 VXLAN网络标识,用于区分VXLAN段。
: Reserved_2 8比特 保留字段,必须设置为0。

参考标准

文档 描述
RFC 7348 Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks