EqLlyHJ5w6,694hQRgLWm

VXLAN技术介绍

来源:济南磐龙笔记本交换机维修作者:济南磐龙交换机维修网址:http://www.pldtwx.com



VXLAN技术介绍



一、VXLAN概述

1. 什么是 VXLAN

VXLAN(Virtual Extensible LAN)虚拟可扩展局域网,是一种 overlay 网络技术,将原始2层以太网帧进行UDP封装 (MAC-in-UDP),增加8字节 VXLAN头部,8字节 UDP头部, 20字节 IP 头部和14字节以太网头部,共50字节。

2. VXLAN优点

VXLANVLAN相比能够提供更好的扩展性和灵活性,主要有以下特点:

应用灵活部署: 通过VXLAN封装后的2层以太网帧可以跨3层网络边界,让组网以及应用部署变得更加灵活,同时解决多租户网络环境中IP地址冲突问题。

更好的扩展性: 传统 VLANID字段为12-bitVLAN数量最大为4096;VXLAN使用24-bit VNID (VXLAN network identifier),最大支持 16,000,000 逻辑网络。

提高网络利用率: 传统以太网使用 STP预防环路, STP导致网络冗余路径处于阻塞状态, VXLAN报文基于 3 IP报头传输,能有效利用网络路径,支持 ECMP(equal-cost multipath )和链路聚合协议。

(1) 应用灵活部署

VXLAN技术介绍!济南磐龙维修

如图 1-1 所示,在 VXLAN环境中应用部署不受物理位置和3层网络边界限制,例如某应用的地址段为 192.168.1.0/24,在传统网络中所有该应用服务器或者虚拟机必须在同一 3网络内部署,否则会产生路由或者地址冲突问题。

(2) 更好的扩展性

VXLAN技术介绍!济南磐龙维修

传统网络通过 VLAN将客户网络逻辑隔离, VLAN ID字段为 12-bit VLAN数量最大为 4096;VXLAN使用 24-bit VNID ( VXLAN network identifier ),最大支持16,000,000 逻辑网络,扩展性得到极大增强。

(3) 提高网络利用率

VXLAN技术介绍!济南磐龙维修

1-3 使用 VXLAN 后使用三层接口互联消除生成树阻塞端口

传统以太网帧无法穿越三层网络,部署 VXLAN后, VTEP之间数据基于三层寻址,网络互联接口不再是二层接口, 可以将交换机之间互联接口部署为三层模式,消除生成树阻塞端口,提高网络利用率,支持 ECMP(equal-cost multipath )和链路聚合协议。

二、VXLAN术语

1. VTEP

VXLAN

Tunnel Endpoint (VTEP)VXLAN使用VTEP设备对VXLAN报文进行封装与解封装,包括ARP请求报文和正常的VXLAN数据报文,VTEP将原始以太网帧通过VXLAN封装后发送至对端 VTEP设备,对端VTEP接收到 VXLAN报文后解封装然后根据原始 MAC进行转发,VTEP可以是物理交换机、物理服务器或者其他支持 VXLAN的硬件设备或软件来实现。

2. VNI

Virtual Network ID ( VNI) VNI封装在 VXLAN头部,共 24-bit ,最大支持16,000,000 逻辑网络。

3. VXLAN 网关

VXLAN网关用于连接 VXLAN网络和传统 VLAN网络,VXLAN网关实现 VNIVLAN ID 之间的映射, VXLAN 网关实际上也是一台 VTEP设备。

4. 组播组

VTEP设备要加入相同的组播组,主要用于控制平面地址学习。

三、VXLAN封装

VXLAN使用 UDP封装完整的以太网帧 (MAC-in-UDP),共 50 字节的封装报文头。具体的报文格式如下:

VXLAN技术介绍!济南磐龙维修

1. Inner MAC

Inner MAC,内层 MAC是原始以太网帧的 MAC地址。

2. VXLAN Header

8 个字节,目前使用的是 Flags 中的一个 8bit 的标识位和 24bit VNI(Vxlan Network identifier) ,其余部分没有定义,但是在使用的时候必须设置为 0x0000

3. Outer UDP Header

8个字节,IANA分配的标准目的端口使用 4798,但是各厂商可以根据需要进行修改,同时UDP的校验和必须设置成全 0

4. Outer IP Header

20个字节,目的IP地址可以是单播地址,也可以是多播地址。 单播情况下,目的IP地址是目的VTEP IP地址;当用于VXLAN控制平面时会使用多播地址。

Outer IP: 外层IP地址是经过VTEP封装后的3IP地址,源IP是本端VTEP设备IP,用于控制平面时目的 IP 可以是多播地址,用于转发平面时目的 IP是远端 VTEP设备 IP

5. Outer Ethernet Header

共计14个字节,外层以太网帧头部。Outer MAC,外层 MAC是经过 VTEP封装后的二层 MAC,源 MAC是本端 VTEP设备MAC,目的 MAC可以是远端 VTEP设备MAC或者传输路径中间 3 层网络设备 MAC

四、VXLAN数据转发

1. 控制平面

VXLAN的实现中, 当通过组播实现控制平面路径发现时, VTEP设备之间使用无状态 tunnel VTEP设备之间不会维持状态化的长连接。 VXLAN需要通过控制平面学习远端设备地址信息, 在本地构建控制平面表项。 控制平面表项由 VNIInner Source MAC Outer Source IP 三元组组成。

2. 转发平面

控制平面学习地址映射信息后, 转发平面负责实际数据的转发。 VTEP为原始数据帧增加 UDP报头,新的报头到达目的 VTEP后才会被去掉,中间路径的网络设备只会根据外层包头内的目的地址进行数据转发。

3. VXLAN ARP请求

VXLAN技术介绍!济南磐龙维修

如上图所示,终端设备 A需要和终端设备 B通信, ARP请求过程如下:

终端设备 A 发送 ARP请求,请求终端设备 B MAC地址;

VTEP-1收到终端设备 A发送的 ARP请求,此时 VTEP-1还没有终端设备 B对应的地址映射表项, VTEP-1 ARP请求进行 VXLAN封装, VNI 设置为10outer-src-ip VTEP-1 IP outer-dst-ip 是加入的组播组地址,封装完成后转发至 VXLAN组播组;

VTEP-2VTEP3加入相同的组播组,所有组成员都会收到 VTEP-1发送的组播报文,解封装后检查 VNI 与本地 VNI 是否匹配,如匹配将 ARP请求发送至本地网络,同时记录 VNIinner MACouter IP 的对应关系,构建控制平面地址映射表项。如 VNI 不匹配则丢弃数据包。

终端设备 B 收到 ARP请求后以单播方式发送 ARP响应;

VTEP-2收到终端设备 B ARP响应后进行 VXLAN封装,此时 VTEP-2已经构建控制平面地址映射表项,通过 VXLAN封装后以单播方式发送。Outer-src-ip VTEP-2 IP 地址,outer-dst-ip VTEP-1 IP 地址;

VTEP-1收到封装后的 ARP响应后,解封装比对 VNI,如匹配将 ARP响应发送至终端设备 A,同时记录 VNIinner MAC outer IP 的对应关系,构建控制平面表项;

此时 VTEP-1VTEP-2均已成功构建控制平面地址映射信息,后续 VXLAN数据使用单播在 VTEP-1 VTEP-2之间传输。

4. VXLAN 数据传输

ARP请求完成后,终端设备 A 向终端设备 B 发送数据, VTEP-1收到数据中查找地址映射表项,将原始数据进行 VXLAN封装后转发至 VTEP-2;

VTEP-2收到 VXLAN数据包后检查 VNI 是否与本地 VNI 匹配, 如匹配则解封装后将原始以太网帧转发至终端设备 B

五、VXLAN部署

六、补充:

在进行 ARP处理时,为了将广播通过多播进行传输,必须要设置VNI 到多播组的映射,这种映射属于管理层,用于建立VTEP之间的管理通道。未知的目的 MAC(unknown MAC destination )同样会进行组播封装,处理方式和广播相同。

VXLAN报文不能进行分片处理,中间的设备可能会将 VXLAN报文分片,但是VTEP会将分片后的报文丢弃,为了确保 VXLAN报文不被分片处理,需要修改沿途所以设备的 MTURFC文档没有阐述为什么 VTEP必须丢弃分片后的报文。

在封装和解封装时 VLAN TAG信息都会被剥离,除非另有特殊配置。


EqLlyHJ5w6