您当前的位置:首页业界 >  >> 
VXLAN技术应用场景及测试方法
来源:C114 通信网      时间:2023-04-03 14:56:17

定 义


(资料图)

RFC7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。

VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。

起 源

传统的交换网络解决了二层的互通及隔离问题,这个架构发展了几十年已经相当成熟。而随着云时代的到来,却渐渐暴露出了一些主要的缺点

(1)多租户环境和虚拟机迁移

为了满足在云网络中海量虚拟机迁移前后业务不中断的需要,要求虚拟机迁移前后的IP不能变化,继而要求网络必须是大二层结构。传统的二层网络技术,在链路使用率、收敛时间等方面都不能满足需要。

(2)VLAN的局限

随着云业务的运营,租户数量剧增。传统交换网络用VLAN来隔离用户和虚拟机,但理论上只支持最多4K个标签的VLAN,已无法满足需求。

目 的

为了解决数据中心网络服务器虚拟化以及虚拟机不受限迁移问题,VXLAN特性应运而生。由于VXLAN特性在本质上属于一种VPN技术,因此,其同样能够应用在园区网络中,以实现分散物理站点之间的二层互联以及站点间的三层互联。

VXLAN的报文结构

下面来介绍下,VXLAN报文到底长啥样。

VXLAN报文格式(以外层IP头为IPv4格式为例)

如上图所示,VTEP对VM发送的原始以太帧(Original L2 Frame)进行了以下“包装”

VXLAN Header增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。

UDP HeaderVXLAN头和原始以太帧一起作为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地址。

VXLAN中的VTEP和VNI

在介绍VXLAN隧道的建立过程前,先来了解VXLAN网络模型中一些常见的概念。

如下图所示,两台服务器之间通过VXLAN网络进行通信。在两台TOR交换机之间建立了一条VXLAN隧道,TOR交换机将服务器发出的原始数据帧加以“包装”,好让原始报文可以在承载网络(比如IP网络)上传输。当到达目的服务器所连接的TOR交换机后,离开VXLAN隧道,并将原始数据帧恢复出来,继续转发给目的服务器。

VXLAN网络模型示意

VXLAN网络中出现了一些传统网络中没有的新元素,如VTEP、VNI等,它们的作用是什么呢?下面将向您介绍这几个新元素。

什么是VXLAN VTEP

VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)是VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,源服务器发出的原始数据帧,在VTEP上被封装成VXLAN格式的报文,并在IP网络中传递到另外一个VTEP上,并经过解封转还原出原始的数据帧,最后转发给目的服务器。

什么是VXLAN VNI

VNI(VXLAN Network Identifier,VXLAN 网络标识符),VNI是一种类似于VLAN ID的用户标识,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。

VNI还可分为二层VNI和三层VNI,它们的作用不同,二层VNI是普通的VNI,用于VXLAN报文同子网的转发;三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发。

VXLAN的测试方法

配置Vxlan的方式主要有两种,一种是静态方式,另一种是动态方式(EVPN的方式)。此处以Vxlan性能测试为例。

测试背景

1. 被测试设备在 VXLAN 数据转发时,性能无下降。

2. 测试被测设备支持的最大 VXLAN 隧道数量不小于 256。

3. 测试被测设备支持的最大 VXLAN L3网关数量不小于 2K。

测试拓扑

典型测试场景介绍

1.两台被测设备(DUT1、DUT2)各选择一张10*40GE的业务板卡,总接口数为20个40GE接口,每板卡10个连续的端口每2个端口一组归属于同一租户,共10个租户,每个租户分配100个ipv4网段和100个ipv6网段,并且每个网段分别配置网关,总共1000个ipv4网关和1000个ipv6网关。

2.所有同一租户端口发送二层Pair to Pair流量和携带三层VXLAN封装的Backbone流量,每端口流量发流总负载为40G,整体流量大小为20*40GB=800GB,分别验证报文长度为64、65、129、257、1518和9000字节时的转发能力。

3.DUT1和DUT2在步骤1的测试环境上增加测试端口,DUT1和DUT2再各增加2个端口(port A、port B)与测试仪相连,DUT1与DUT2再通过额外的100G端口连接,DUT1与测试仪端口port B建立EVPN VXLAN 隧道,隧道数量为设备支持的最大隧道数量-1,发送流量验证隧道的转发能力。

测试步骤

1.使用配置向导配置业务,点击交换,然后选择VXLAN EVPN Overlay向导。

2.选择VTEP端口:选择端口,然后VTEP选择IPV4,选择启用VLAN。

3.配置VTEP设备:每个VLAN中VTEP数量为1。

4.配置BGP参数:选择IBGP,勾选使用网关地址作为DUT。

5.配置EVPN路由:勾选EVPN MAC/IP地址通告路由(勾选MAC/IP),选择勾选配置下一跳。

6.配置L2 L3Sements:配置L3-VNI为5000,勾选L3-VNI路由目标为AS:L3-VNI。

7.配置L2 VNI VM设备:地址模式选择IPV4 And IPV6,配置IPV4和IPV6地址。

8.配置HOST:选择HOST端口,配置IPV4地址以及网关。

9.配置流参数:点击创建流,流封装选择MAC和IPV4。

10.点击预览:可以看到生成的流情况。

11.设备支持 VXLAN 隧道不小于 256,相关协议与表项均正常,流量不丢包。

12.在设备上查看VNI与VPN实例绑定的情况:

13.查看V-XLAN的流量构造

14.抓包查看:

测试结果

1. 在被测设备查看相关表项,总共1000个ipv4网关和1000个ipv6网关,相关协议与表项均正常,流量转发正常不丢包。

2. 在被测设备查看VXLAN 隧道总数,相关协议与表项均正常,流量转发正常不丢包。

3. 被测设备进行 VXLAN 转发时流量不丢包,port B端口中的流量中能看到VXLAN封装,该端口转发能力不低于ipv4转发能力,且不影响其他端口转发。

标签:

X 关闭

X 关闭