Vxlan学习笔记1
什么是 VxLAN?
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输。
简单来说Vxlan本质上是一种隧道技术,可以构建出二层网络,将其封装在UDP报文中在三层网络传输。
一些名词解释
VM(虚拟机):虚拟化技术可以把一台物理服务器虚拟化成多台逻辑服务器,这种逻辑服务器被称为虚拟机。每个虚拟机都可以独立运行,有自己的硬件资源和操作系统,也有自己的MAC地址和IP地址,它们通过服务器内部的虚拟交换机与外部网络连接。常见的有Hyper-V、Vmware、KVM……
vSwitch(虚拟交换机):在虚拟化平台上的虚拟交换机,为虚拟化平台上的虚拟机提供二层网络接入和部分三层网络功能。
VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点):是VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN原始数据帧的封装和解封装都是在VTEP上进行的。VTEP既可以是一台独立的网络设备,也可以是在服务器中的虚拟交换机。
VNI(VXLAN Network Identifier,VXLAN 网络标识符):VNI是一种类似于VLAN ID的用户标识,不同VNI之间的虚拟机之间不能直接进行二层通信。
VXLAN报文格式
这里是搬运的。
如上图所示,VTEP对VM发送的原始以太帧(Original L2 Frame)进行了以下“包装”:
- VXLAN Header
增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。
- UDP Header
VXLAN头和原始以太帧一起作为UDP的数据。UDP头中,目的端口号(VXLAN Port)默认为4789,源端口号(UDP Src. Port)是原始以太帧通过哈希算法计算后的值。
- Outer IP Header
封装外层IP头。其中,源IP地址(Outer Src. IP)为源VM所属VTEP的IP地址,目的IP地址(Outer Dst. IP)为目的VM所属VTEP的IP地址。
- Outer MAC Header
封装外层以太头。其中,源MAC地址(Src. MAC Addr.)为源VM所属VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)为到达目的VTEP的路径中下一跳设备的MAC地址。
VLAN和VxLAN的一些区别
- vlan的数据帧中表示vlanid的vid部分只有12bit,因此vlan最多为4094个。vxlan的数据帧中表示vni的部分有24bit,数量有16,777,216之大。
- 由于vxlan本质上是在三层传输的隧道,因此只要两端的VTEP是互通的vxlan就可以正常工作,vlan则有许多受限。
_(:3 」∠)_