VXLAN技术应用场景及测试

news2024/11/23 8:33:39

定义

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技术,因此,其同样能够应用在园区网络中,以实现分散物理站点之间的二层互联以及站点间的三层互联。

VLAN的报文结构

下面来介绍下,VXLAN报文到底长啥样。
在这里插入图片描述
如上图所示,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 Heade得封装外层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网络中出现了一些传统网络中没有的新元素,如VTEP、VNI等,它们的作用是什么呢?下面将向您介绍这几个新元素。

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

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

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

VLAN的测试方法

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

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

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

▶3. 测试被测设备支持的最大 VXLAN L3 网关数量不小于 2K。
在这里插入图片描述

典型测试场景介绍

◆1.两台被测设备(DUT1、DUT2)各选择一张1040GE的业务板卡,总接口数为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转发能力,且不影响其他端口转发。


©著作权归作者所有:来自51CTO博客作者xinertel的原创作品,请联系作者获取转载授权,否则将追究法律责任
VXLAN技术应用场景及测试
https://blog.51cto.com/teletest1/6422433

©著作权归作者所有:来自51CTO博客作者xinertel的原创作品,请联系作者获取转载授权,否则将追究法律责任
VXLAN技术应用场景及测试
https://blog.51cto.com/teletest1/6422433

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式(行为型模式)之:Strategy(策略模式)

文章目录 本质:动机:定义:一个不好的例子策略模式重写总结 本质: 分离算法,选择实现。动机: 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算…

LeetCode 按摩师 python

目录 1.题目描述 2.普通解法(通过部分测试用例) ​编辑 3.动态规划解法 3.题目总结 1.题目描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻…

(六)CSharp-CSharp图解教程版-委托

一、委托概述 1、什么是委托 委托和类一样,是一种用户定义类型(即是一种类,所以也是一个引用类型)。在它们组成的结构方面区别是,类表示的是数据和方法的集合,而委托则持有一个或多个方法。 可以把 deleg…

Spring架构篇--2.7.1 远程通信基础--Netty原理--NioEventLoopGroup

前言:在使用Netty 时不管是服务端还是客户端都需要 new NioEventLoopGroup 对象进行工作,NioEventLoopGroup的作用是什么呢; 1 NioEventLoopGroup 类图: 从类名字来看它是一个Nio 流的事件轮询器组,既然是一组顾名思…

使用dataFEED OPC Suite将西门子PLC数据转发至阿里云RDS数据库

一 背景 工业现场级别的各种设备会产生大量的数据,这些数据包含生产过程的各种信息,在经过数据库等IT应用的处理后,可为企业提供全面的生产数据分析和决策支持。以往工厂的数据库通常部署在本地,然而得益于云计算的快速发展以及云…

k8s harbor镜像仓库搭建

1.前言 Harbor 是一个开源的云原生镜像仓库,用于存储和分发 Docker 镜像。它提供了一些安全性和管理方面的功能,使得用户可以更好地管理和共享 Docker 镜像 2.配置harbor搭建环境 harbor的搭建需要用到docker、docker-compose服务 docker搭建参考&am…

Vivado 下 IP核之双端口 RAM 读写

目录 Vivado 下 IP核之双端口 RAM 读写 1、RAM IP 核简介 2、实验任务 3、程序设计 3.1、RAM IP 核配置 3.2、顶层模块设计 (1)绘制波形图 4、编写代码 4.1、顶层模块 ip_2port_ram 4.2、RAM 写模块设计 4.3、ram_wr 模块代码 4.4、RAM 读模…

基于graalvm和java swing制作一个文件差异对比的原生应用,附源码

文章目录 1、DFDiff介绍2、软件架构3、安装教程3.1、编译为jar包运行3.2、编译为原生应用运行 4、运行效果图5、项目源码地址 1、DFDiff介绍 当前已实现的功能比较两个文件夹内的文件差异,已支持文件差异对比。 2、软件架构 软件架构说明 开发环境是在OpenJDK17&…

安装 Kafka

文章目录 1.选择操作系统2.配置 Java 环境3.安装 ZooKeeper4.安装 broker(1)安装 broker(2)验证是否安装正确 5.配置 broker(1)常规配置(2)主题的默认配置 6.配置 Kafka 集群&#x…

CAC2.0全新升级发布,为企业邮箱筑起安全壁垒!

5月31日,Coremail举办了【聚焦盗号,企业邮件安全的威胁分析与应对】直播交流会。直播会上Coremail邮件安全团队就邮箱盗号问题进行了深度分享。 面对如此肆虐的盗号现象和即将到来的攻击暴破高峰期,各行业应该如何应对防护邮箱安全呢&#xf…

什么是防火墙?它有什么作用?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是防火墙 二、防火墙的分类 1、软件防火墙 2、硬件防火墙 三、防火墙的作用 1、防止病毒 2、防止访问不安全内容 3、阻…

如何使用AI帮你制作PPT

一:前言 ChatGPT:智能AI助你畅聊天地 在现代人日益忙碌的生活中,难免需要一些轻松愉快的聊天来放松身心。而现在,有了 ChatGPT,轻松愉快的聊天变得更加智能、有趣且不受时间、地点限制! 什么是 ChatGPT&…

嵌入式Linux系统中SPI 子系统基本实现

1、SPI 驱动源文件目录 Linux common spi driver kernel-4.14/drivers/spi/spi.c Linux 提供的通用接口封装层驱动 kernel-4.14/drivers/spi/spidev.c linux 提供的 SPI 通用设备驱动程序 kernel-4.14/include/linux/spi/spi.h linux 提供的包含 SPI 的主要数据结构和函数…

sourcetree的使用

目录 前言 一、Sourcetree简介 二、创建分支与合并分支 三、合并冲突问题 总结 前言 今天提交项目代码时,接触到非常好用方便的可视化Git管理提交软件Sourcetree,今天记录一下使用过程 一、Sourcetree简介 通过Git可以进行对项目的版本管理,但是如果直接使用Git的软件会比…

MinIO快速入门——在Linux系统上安装和启动

1、简介 MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。MinIO系统,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 2、环境搭建&#…

【MySQL】一文带你了解数据库约束

文章目录 1. 约束类型2.PRIMARY KEY:主键约束3.FOREIGN KEY:外键约束4.NOT NULL:非空约束5.UNIQUE:唯一约束5.DEFAULT:默认值约束6.总结 1. 约束类…

用数据说话,R语言有哪七种可视化应用?

今天,随着数据量的不断增加,数据可视化成为将数字变成可用的信息的一个重要方式。R语言提供了一系列的已有函数和可调用的库,通过建立可视化的方式进行数据的呈现。在使用技术的方式实现可视化之前,我们可以先和AI科技评论一起看看…

SpringBoot 源码分析准备应用上下文(2)-prepareContext

一、入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link ApplicationContext}*/public ConfigurableApplicationC…

生成测试报告,在Unittest框架中就是简单

测试套件(Test Suite)是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)。 (1)创建一个测试套件: import unittest suite unittest.TestSuite…

车载测试:详解ADAS传感器(相机)标定数据采集方法

1.基本原理 相机外参标定,通过拍摄多角度棋盘格标定相机外参。 2.外参标定板设计 标定板分为垂直标定板和水平标定板,由于地面的水平标定板不容易被检测到,本文采用垂直标定板进行相机标定。 在标定过程中标定板需要和车身坐标成正交状态…