首页 > 其他分享 >Vxlan协议原理及基本配置——网络测试仪实操手册

Vxlan协议原理及基本配置——网络测试仪实操手册

时间:2022-11-10 19:02:34浏览次数:45  
标签:ARP VTEP 封装 VNI 实操 Vxlan VXLAN 测试仪

一、Vxlan协议原理

1.Vxlan协议相关术语(一)

缩略语

OSI中的概念

NVE

Network Virtualization Edge,网络虚拟边缘节点

VTEP

VXLAN Tunnel Endpoints,VXLAN隧道端点

VNI

VXLAN Network Identifier,VXLAN 网络标识符

VAP

Virtual Access Point,虚拟接入点

2.VXLAN技术背景

(1)虚拟机规模受网络设备表项规格的限制
●对于同网段主机的通信而言,报文通过查询MAC表进行二层转发。服务器虚拟化后,数据中心中VM的数量比原有的物理机发生了数量级的增长,伴随而来的便是虚拟机网卡MAC地址数量的空前增加。此时,处于接入侧的二层设备表示“我要Hold不住了”。

(2)传统网络的隔离能力有限
●VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,也就是说可用的VLAN数量只有4000个左右。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力显然已经力不从心。

(3)虚拟机迁移范围受限

●虚拟机迁移,顾名思义,就是将虚拟机从一个物理机迁移到另一个物理机,但是要求在迁移过程中业务不能中断。要做到这一点,需要保证虚拟机迁移前后,其IP地址、MAC地址等参数维持不变。这就决定了,虚拟机迁移必须发生在一个二层域中。而传统数据中心网络的二层域,将虚拟机迁移限制在了一个较小的局部范围内。

●通过堆叠、SVF、TRILL等技术构建物理上的大二层网络,可以将虚拟机迁移的范围扩大。但是,构建物理上的大二层,难免需要对原来的网络做大的改动,并且大二层网络的范围依然会受到种种条件的限制。

(4)VXLAN是什么

●VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。

(5)VXLAN网络架构

​编辑

●VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)
VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN报文的相关处理均在这上面进行。总之,它是VXLAN网络中绝对的主角。VTEP既可以是一***立的网络设备(比如华为的CE系列交换机),也可以是虚拟机所在的服务器。
●VNI(VXLAN Network Identifier,VXLAN 网络标识符)
前文提到,以太网数据帧中VLAN只占了12比特的空间,这使得VLAN的隔离能力在数据中心网络中力不从心。而VNI的出现,就是专门解决这个问题的。VNI是一种类似于VLAN ID的用户标示,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。VXLAN报文封装时,给VNI分配了足够的空间使其可以支持海量租户的隔离。
●VXLAN隧道
“隧道”是一个逻辑上的概念,它并不新鲜,比如大家熟悉的GRE。说白了就是将原始报文“变身”下,加以“包装”,好让它可以在承载网络(比如IP网络)上传输。从主机的角度看,就好像原始报文的起点和终点之间,有一条直通的链路一样。而这个看起来直通的链路,就是“隧道”。顾名思义,“VXLAN隧道”便是用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。

●VXLAN报文结构

 

​编辑

●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地址。

3.VXLAN转发原理

(1)控制平面

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

(2)转发平面

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

​编辑

 

(3)VXLAN ARP请求

如上图所示,VM1和VM2属于同一网段,且VNI相同,需要通信

●VM1发送送 ARP请求,请求VM2 的 MAC地址;

●VTEP-A收到VM发送的 ARP请求,此时 VTEP-A还没有VM对应的地址映射表项, VTEP-A将 ARP请求进行 VXLAN封装, VNI 设置为100,outer-src-ip 是 IP-A,outer-dst-ip 是加入的组播组地址,封装完成后转发至 VXLAN组播组(可以选择单播学习,单播到VTEP Peer)

●VTEP-B、VTEP-C收到VTEP-A发送的组播报文,解封装后检查 VNI 与本地 VNI 是否匹配,如匹配将 ARP请求发送至本地网络,同时记录 VNI、inner MAC、outer IP 的对应关系,构建控制平面地址映射表项。如 VNI 不匹配则丢弃数据包。

●VM-2 收到 ARP请求后以单播方式发送 ARP响应;

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

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

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

二、测试用例

​编辑

 

(1)测试目的

验证Vxlan ARP学习流程

验证Vxlan流量封装

(2)测试说明

由于交换机不支持Vxlan,所以只能测试仪背靠背来模拟VTEP

测试仪两端配置Vxlan VTEP以及下挂主机后,运行Vxlan。抓包验证ARP和数据报文封装

(3)测试步骤

●按图连接好拓扑

●使用配置向导在P1上配置Vxlan业务

●使用配置向导在P2上配置Vxlan业务

●开启Vxlan业务

●开启抓包,在VM接口上发送ARP请求,并抓包

●创建、发送Vxlan流并抓包查看封装

(4)预期结果

Vxlan业务运行后,两个VTEP下的VM可以学习到对方的ARP

查看抓包,ARP报文做了Vxlan封装

数据流量可以通,抓包可以看到数据流量也做了Vxlan封装

三、测试步骤

1.占用Ports

(1)添加机框

​编辑

 

(2)占用Ports

​编辑

 

2.配置Vxlan

(1)配置Vxlan

​编辑

 

(2)选择端口,配置端口VTEP数

​编辑

 

(3)每VTEP的Vxlan Segment数

​编辑

 

 

(4)设置VM

​编辑

 

(5)设置学习模式

​编辑

(6)设置Non-Vxlan端口

​编辑

(7)查看配置

​编辑

​编辑

 

3.验证ARP封装

(1)开启抓包

​编辑

(2)运行Vxlan协议

​编辑

(3)检查抓包结果

 

​编辑

​编辑
(4)组播封装的ARP请求

 

​编辑

 

4.配置流量

​编辑

 ​编辑

5.验证数据流量封装 

​编辑

标签:ARP,VTEP,封装,VNI,实操,Vxlan,VXLAN,测试仪
From: https://www.cnblogs.com/xinertel/p/16878062.html

相关文章

  • Redis对于字符串(String)知识点理解和实操过程例子的详解记录
    一.Redis字符串1.1基本操作如果字符串内容为整数的时候。1.1.1set、mset、get、mget存和取Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味......
  • 《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 上周更新了一期视频教程:USB应用实战视频教程第4期:手把手玩转基......
  • Redis的安装和Redis的基本数据库操作实操详解
    一.什么是Redis?Redis是远程字典服务器,Remotedictionaryserver一个开源的基于内存的数据库,常用作键值存储、缓存和消息队列等。Redis通常被称为数据结构服务器......
  • 单细胞分析:质控实操(五)
    1.学习目标构建质量控制指标并评估数据质量适当的应用过滤器去除低质量的细胞2.过滤目标过滤数据以仅包含高质量的真实细胞,以便在对细胞进行聚类时更容易识别不同......
  • Kubernetes StatefulSet 实操整理
    StatefulSetStatefulSet用来管理有状态应用的工作负载API对象。和Deployment类似,StatefulSet管理基于相同容器规约的一组Pod。但和Deployment不同的是,Statefu......
  • 内存马的攻防博弈实操
    一、概述一文看懂内存马概述:内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的websh......
  • 收下这份实操案例,还怕不会用Jmeter接口测试工具?!
    01简介每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试J......
  • Kubernetes Deployment 实操整理
    Deployment用于部署无状态的服务。一般不直接管理Pod或者ReplicaSet。创建DeploymentDeployment文件apiVersion:apps/v1kind:Deploymentmetadata:name:nginx......
  • Q&A特辑 | 电商风控实操全解答
    10月27日下午15:00顶象第八期业务安全大讲堂之——《电商安全风控策略应用实战》正式开播,本期直播就风控体系搭建所需要的平台,决策引擎的底层架构功能、策略专家必备的三......
  • 第二章 Linux 实操
    第二章Linux实操1、Linux实用指令指定运行级别运行级别说明:0:关机1:单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务(实际生产环境用这个)4:系统未使用......