VXLAN 基本信息介绍
VXLAN
Virtual eXtensible Local Area Network,虚拟扩展局域网;
是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展;
VXLAN的特点是将L2的以太帧封装到UDP报文中,并在L3进行传输;
本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发;
设计理念:
VXLAN如何满足虚拟机动态迁移时对网络的要求?
同一台二层交换机可以实现下挂服务器之间的二层通信,且服务器从该二层交换机的一个端口迁移到另一个端口时,
IP地址是可以保持不变的。这样就可以满足虚拟机动态迁移的需求了。
VXLAN的设计理念和目标正是由此而来的;
基本概念:
VNI:
VXLAN在VXLAN帧头中引入了类似VLAN ID的网络标识,称为VXLAN网络标识VNI(VXLAN Network ID),由24比特组成, 理论上可支持多达16M的VXLAN段,从而满足了大规模不同网络之间的标识、隔离需求;
VNI 分类:
二层VNI是普通vni,以 1:1方式映射到广播域BD,实现VXLAN报文同子网的转发;
三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发;
Vtep:
vxlan 隧道的端点,报文的封装结与解封装都在此进行;
可以是物理设备,也可以是服务器等;
VSI:
虚拟机交换机实例;
可当作是vtep 设备上的一个交换机;比如将vlan 10 的报文,它会将报文进行处理,打vxlan 相关报文信息头;
在虚拟机接入端口上,配置绑定到指定的VSI;
如:将物理交换机的1口的tag 报文与VSI绑定,那么在转发的时候会将其丢进vxlan 隧道;
service-instance 1000 # 创建虚拟交换机实例,标识符为1000;
encapsulation s-vid 10 # 将vlan 10 的报文设置为感兴趣流;
xconnect vsi vsi1 # 将这个虚拟交换机1000的感兴趣流与vsi 进行绑定;
AC:
接入链路,终端接入vtep的逻辑链路,要指定接入到vxlan segment的感兴趣流;
什么样的流量接入进来呢,比如vlan 10 的,那么这个流就叫AC的感兴趣流;
如:encapsulation s-vid 10 # 将vlan 10 的报文设置为感兴趣流;
关联关系:VTEP ---- VSI ---(虚拟交换机)--物理端口
VXLAN Vtep mac 地址表
包含的内容:MAC地址、状态(动态或静态)、VSI Name、Link ID/Name(对应的接口);
如:
[SW1]dis l2vpn mac-address
* - The output interface is issued to another VSI
MAC Address State VSI Name Link ID/Name Aging
244a-e9a8-0906 Dynamic vsi1 Tunnel18 Aging
24df-e948-0506 Dynamic vsi1 GE1/0/1 Aging
24e0-0479-0606 Dynamic vsi1 Tunnel12 Aging
很直接的可以看出G1/0/1 学习到的mac 地址,对应的VSI等信息;
VXLAN报文:
如:外层IP头为IPv4格式为例:
以太帧头(mac) || IP头 || UDP头 || VXLAN头 || 原始数据帧
VTEP对VM发送的原始以太帧(Original L2 Frame)进行了以下“包装”,增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户;
还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段;
VXLAN头和原始以太帧一起作为UDP的数据,UDP头中,目的端口号(VXLAN Port)固定为4789,源端口号(UDP Src. Port)是原始以太帧通过哈希算法计算后的值;
源IP地址(Outer Src. IP)为源VM所属VTEP的IP地址,目的IP地址(Outer Dst. IP)为目的VM所属VTEP的IP地址;
源MAC地址(Src. MAC Addr.)为源VM所属VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)为到达目的VTEP的路径中下一跳设备的MAC地址;
注意:
vxlan封装要占50 字节的长度,所以一般需要在交换机上开启jumbo frame 功能;
Vxlan 隧道建立:
简单的理解就是数据报文到达vtep(vsi)后,对原始报文进行封装,在vxlan 通道中进行传输,到达对端口,再对报文进行解封装,再送到到目标;
vtep 是隧道的起点与终点,报文的封装与解封装都再次进行;
VTEP既可以是一台独立的网络设备,也可以是在服务器中的虚拟交换机;
vxlan 隧道建立如:
interface tunnel 1 mode vxlan
source 1.1.1.1
dest 2.2.2.2