第一部分:什么是IPv6地址跳变?

IPv6地址跳变是指IPv6地址进行一系列有规则的变化,Renix支持对IPv6地址进行递增、递减、列表和随机变化。

如当用户想要仿真大量的源IPv6地址变化的数据时,就可以使用Modifier进行规则的编辑,来达到源IPv6递增、递减、列表或随机的变化。

第二部分:跳变说明

Renix支持每个跳变域的大小只有4个字节,每条流最多支持4个跳变域。

对于跳变的大小只有4个字节,可以这么理解,当你需要跳变的字段内容是112233445566,长度是6字节已经超过了4个字节,你就只能在11223344、22334455或33445566这些字节里面去进行跳变,因为跳变域的大小只有4个字节。

怎么选择在那个区域去进行跳变的呢?通过offset(偏移量)的值去指定。Offset的值指定了字段中跳变的位置,即从Offset值对应位置开始连续的4个字节。如offset值为0,它就是指从左往右,第0字节后面的连续4个字节跳变,也就是1、2、3、4字节跳变,对于字段112233445566来说就是在11223344范围内进行跳变; 如offset值为是2,它就是指从左往右,第2字节后面的连续4个字节跳变,也就是3、4、5、6字节跳变,对于字段112233445566来说就是在33445566范围内进行跳变。

而对于4个跳变域来说,意思就是,一条流里面,如果你已经在源MAC地址、目的MAC地址、源IP地址、目的IP地址进行了跳变,你已经在4个地方进行了跳变,当你还需要在UDP端口号进行跳变时,因为这已经是在第5个地方进行跳变,不支持。

第三部分:如何配置IPv6地址跳变?

接下来介绍如何配置源IPv6地址如何在64bit进行跳变

一、添加和连接机箱

打开软件,在软件的开始界面,点击“预约端口”,然后点击“新增机箱”添加机箱,在“机箱名或IPv6地址”处输入机箱IPv6地址,例如10.0.11.104(机箱的前面板液晶屏上会显示机箱IPv6地址),最后点击“确定”

二、预约端口

预约用作测试的端口,勾选相应的复选框,点击“确定”

三、添加流量

选中测试端口并展开,选择“流模板”,鼠标右键,选择“新建流”,弹出编辑流量的窗口,选择“数据包、编辑”,切换到数据包的内容界面,对报文进行编辑

四、编辑报文(源IPv6字段)

删除IPv4 Hader,增加IPv6 Header

点击“Expand all” 将报文展开,选中Source Address字段,点击跳变按钮,弹出跳变的编辑窗口

五、配置IPv6地址为固定值

选择“Single value”,在编辑框填写指定的IPv6地址的值

六、配置IPv6地址递增变化

选择 “Increment”,字段的值可进行递增的变化

参数说明:

1、Start:字段的初始值

2、Count:该字段的值变化的次数

3、Step:字段的值增加的步长大小

4、Stream Type:一个字段的多个值将产生多个stream/flow,Stream Type决定产生的是多条stream还是多条flow

IntraModifier:值将在一个StreamBlock的一条stream的多个flow中进行变化

InterModifier:值将在一个StreamBlock的多条stream间发生变化

StreamBlock、Stream、Flow的关系如下:

※注意:Renix最多统计到Stream这一级,具体每一个Flow的信息是统计不到的,只能在所属的Steam上统一查看收发等信息

5、Offset:偏移量的大小,用来指定字段中的变化的位置,即由左至右从Offset值对应位置开始连续的4个字节。Offset的取值从0开始,且0对应字段值的第一个字节(从左往右),1对应字段值的第二个字节,以此类推。

※注意:Renix每个跳变域的长度是4个字节,最多支持4个跳变域

6、Mask(hex):掩码,用来指定该变化域中参与变化的位。值为1的位参与变化,值为0的位不参与变化,参考Mask(bit)的值。

举例:IPv6地址2001:2002:2003:2004:2005:2006:2007:2008需要在64bit的位置跳变。

分析:IPv6总共长度是16字节,1个字节为8个bit,所以总长是128bit。如果需要在第64bit位置递增,那也就是第8个字节的最后1位跳变,offset值的配置X+4应该包含第8字节,所以可以值可以是4~7。取4的时候跳变域刚好是5、6、7、8字节,取7的时候跳变域刚好是8、9、10、11字节。相应的Mask的配置也要随之变化。

当offset取4时,64bit在最后一个bit,之前也描述过参与跳变的位掩码值置为1,不参与的变化的位值置为0,所以掩码需要配置为0000 0000 0000 0001(bit),换成16进制为00000001(hex)或者简写为1(hex)。

如下图,可以看到如下变化

为了更好看到变化,我们可以将更多的掩码置为1,让更多的位参与跳变,如将掩码改为0000 0000 0000 1111(bit),换算成16进制为0000000F(hex)或者简写为F。

如下图,可以看到如下变化:

七、配置IPv6地址递减变化

选择 “Decrement”,字段的值可进行递减的变化

参数说明:

1、Start:字段的初始值

2、Count:该字段的值变化的次数

3、Step:字段的值减少的步长大小

4、Stream Type:一个字段的多个值将产生多个stream/flow,Stream Type决定产生的是多条stream还是多条flow

IntraModifier:值将在一个StreamBlock的一条stream的多个flow中进行变化

InterModifier:值将在一个StreamBlock的多条stream间发生变化

StreamBlock、Stream、Flow的关系如下:

※注意:Renix最多统计到Stream这一级,具体每一个Flow的信息是统计不到的,只能在所属的Steam上统一查看收发等信息

5、Offset:偏移量的大小,用来指定字段中的变化的位置,即由左至右从Offset值对应位置开始连续的4个字节。Offset的取值从0开始,且0对应字段值的第一个字节(从左往右),1对应字段值的第二个字节,以此类推。

※注意:Renix每个跳变域的长度是4个字节,最多支持4个跳变域

6、Mask(hex):掩码,用来指定该变化域中参与变化的位。值为1的位参与变化,值为0的位不参与变化,参考Mask(bit)的值。

举例:IPv6地址2001:2002:2003:2004:2005:2006:2007:2008需要在64bit的位置跳变。

分析:IPv6总共长度是16字节,1个字节为8个bit,所以总长是128bit。如果需要在第64bit位置递增,那也就是第8个字节的最后1位跳变,offset值的配置X+4应该包含第8字节,所以可以值可以是4~7。取4的时候跳变域刚好是5、6、7、8字节,取7的时候跳变域刚好是8、9、10、11字节。相应的Mask的配置也要随之变化。

当offset取4时,64bit在最后一个bit,之前也描述过参与跳变的位掩码值置为1,不参与的变化的位值置为0,所以掩码需要配置为0000 0000 0000 0001(bit),换成16进制为00000001(hex)或者简写为1(hex)。

如下图,可以看到如下变化

为了更好看到变化,我们可以将更多的掩码置为1,让更多的位参与跳变,如将掩码改为0000 0000 0000 1111(bit),换算成16进制为0000000F(hex)或者简写为F。

如下图,可以看到如下变化:

八、配置IPv6地址在列表中选择

选择“List”,字段的值将是列表中填写的值

单击Add,表中列出了一个条目 ,单击条目的单元格,输入适当的值 。重复之前的操作可以填加更多值

如有必要,请在表中选择一个条目,然后单击Delete按钮删除不需要的条目

举例:IPv6从2001::2002、3001:3002、4001:4002这几个值变化

九、配置IPv6地址随机变化

选择 “Random”,字段的值可进行随机的变化

参数说明:

1、Start:字段的初始值

2、Count:该字段的值变化的次数

3、Range:字段的值变化的最大值,和Start的值决定随机的范围

4、Stream Type:一个字段的多个值将产生多个stream/flow,Stream Type决定产生的是多条stream还是多条flow

IntraModifier:值将在一个StreamBlock的一条stream的多个flow中进行变化

InterModifier:值将在一个StreamBlock的多条stream间发生变化

StreamBlock、Stream、Flow的关系如下:

※注意:Renix最多统计到Stream这一级,具体每一个Flow的信息是统计不到的,只能在所属的Steam上统一查看收发等信息

5、Offset:偏移量的大小,用来指定字段中的变化的位置,即由左至右从Offset值对应位置开始连续的4个字节。Offset的取值从0开始,且0对应字段值的第一个字节(从左往右),1对应字段值的第二个字节,以此类推。

※注意:Renix每个跳变域的长度是4个字节,最多支持4个跳变域

6、Mask(hex):掩码,用来指定该变化域中参与变化的位。值为1的位参与变化,值为0的位不参与变化,参考Mask(bit)的值。

7、Seed:随机种子,当跳变类型为随机时,设置参与随机算法随机源的数量,其与Count项的值一起结合参与运算(其默认值是变化的,不同字段的默认值是不一样的)

※注意:种子的取值范围0-4294967295值越大,随机出来的数值越离散

注意:当我们配置随机的Start值和Range值的时候,在跳变域的位置取出来的值要有大小关系,Range的值要大于Start的值。比如我们配置了offset的值为4,那么就是5、6、7、8字节属于跳变域,,按照正常的理解:如果配置Start为::1,Range配置1::,让值在::1和1::之间去随机变化,这样是可以的,但是当你把地址写全0000 0000 0000 0000 0000 0000 0000 0001和0001 0000 0000 0000 0000 0000 0000 0000,我们把5、6、7、8字节的内容提取出来都是0000 0000,不存在大小之分,所以这么配置就会报错。

正确的配置应该是如下图:

地址为0000 0000 0000 0000 0000 0000 0000 0001和0000 0000 0000 000F 0000 0000 0000 0001,提取出跳变域的值为0000 0000和0000 000F,随机值就在这个范围内变化,当然Mask同样也会决定参加变化的位,和之前递增递减类似,就不多介绍。

配置IPv6地址跳变——网络测试仪实操的更多相关文章

  1. RENIX报文字段跳变——网络测试仪实操

    什么是报文字段跳变? 报文字段跳变是指字段的值进行一些列有规则的变化,Renix支持对字段进行递增.递减.列表和随机变化. 如当用户想要仿真大量的源IP变化的数据时,就可以使用Modifier进行规则 ...

  2. RFC2889MAC地址学习速率——网络测试仪实操

    一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...

  3. 基于IPv6的RIPng路由协议测试——信而泰网络测试仪实操

    关键词 IPv6; RIPng; 协议测试; 内部网关协议; 外部网关协议 前言:在国际性网络中,如因特网,拥有很多应用于整个网络的路由选择协议.形成网络的每一个自治系统(AS),都有属于自己的路由选 ...

  4. RFC2889广播时延测试——网络测试仪实操

    一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...

  5. 在 Linux 中自动配置 IPv6 地址

    在 Linux 中自动配置 IPv6 地址 在本文中,我们将学习如何为 ULA 自动配置 IP 地址. 何时使用唯一本地地址 唯一本地地址unique local addresses(ULA)使用 f ...

  6. 第11章 拾遗4:IPv6(2)_给计算机配置IPv6地址

    4. 给计算机配置IPv6地址 4.1 无状态自动配置IPv6地址 (1)网络拓扑 ①无状态地址自动配置是指不需要DHCP服务器进行管理,由客户端向路由器发送前缀请求(RS)询问其所在网段.路由器收到 ...

  7. IPv6系列-彻底弄明白有状态与无状态配置IPv6地址

    深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式 小慢哥的原创文章,欢迎转载 目录 ▪ 一. Link-Local Address的生成方式 ▪ 二. Glo ...

  8. 工程师技术(一):启用SELinux保护、自定义用户环境、配置IPv6地址、配置聚合连接、配置firewalld防火墙

    一.启用SELinux保护 目标: 本例要求为虚拟机 server0.desktop0 配置SELinux: 确保 SELinux 处于强制启用模式 在每次重新开机后,此设置必须仍然有效 方案: SE ...

  9. IPv6 OSPFv3路由协议测试——信而泰网络测试仪实操

    关键词 IPv6; OSPFv3; OSPFv2. 前言:在网络部署中,动态路由协议是重要的组成部分.良好的路由协议,是保证网络可靠.稳定运行的基础.为了适应IPv6协议栈的变化,OSPFv3协议在保 ...

随机推荐

  1. 微信小程序云开发框架

    概述 一直做后端服务器开发,最近看了一篇文章介绍小程序的云开发模式,觉得挺有意思,就尝试了一下,由本文做个记录. 因为不是专业的小程序开发人员,也没有做过网页开发,所以论述中出现错误难以避免,请多谅解 ...

  2. 【记录一个问题】神坑,自定义一个golang的error类型,居然运行崩溃了

    2020-05-20 18:20补充: 感谢yif同学提供指导,出现错误并且打印大量信息的原因是函数递归调用导致栈溢出. 而导致递归调用的关键代码是%v 类型实现了error的interface %v ...

  3. JavaScript获取URL参数方法总汇

    现在做页面基本都用AJAX,因此导致操作很麻烦,每次都需要通过JS获取url中的参数值,网上所搜到很多资料,没一次能记住的,也不知道在哪个项目中使用过,现在又需要通过JS获取url参数,因此不能在偷懒 ...

  4. 基于SpringBoot如何实现一个点赞功能?

    基于SpringBoot如何实现一个点赞功能? 解析: 基于 SpringCloud, 用户发起点赞.取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储 ...

  5. WebGPU图形编程(4):构建一个彩色的正方形<学习引自徐博士教程>

    本节我们来复原一个彩色的正方形,前提告知,本节的shaders和main的代码从结构上有调整,我会更加详细的描述每行的代码意思: 源代码下载地址:https://github.com/jack1232 ...

  6. Redisson 实现分布式锁原理分析

    Redisson 实现分布式锁原理分析   写在前面 在了解分布式锁具体实现方案之前,我们应该先思考一下使用分布式锁必须要考虑的一些问题.​ 互斥性:在任意时刻,只能有一个进程持有锁. 防死锁:即使有 ...

  7. golang源码阅读:VictoriaMetrics中的协程优先级的处理方式

    在阅读VictoriaMetrics的源码的时候,读到了那么平平无奇的一段: // AddRows adds the given mrs to s. func (s *Storage) AddRows ...

  8. SpringMVC 解析(二)DispatcherServlet

    在我的关于Tomcat容器介绍的文章中,介绍了Tomcat容器的工作原理,我们知道Tomcat容器在收到请求之后,会把请求处理为Request/Response对象,交给Servlet实例处理.对于S ...

  9. 「IOI2009」旅行商

    题目传送门 首先,看到这道题感觉就像dp(然鹅没什么用). 一个美好的设想 假如没有两个展销会在同一天开展:前途光明 暴力dp,复杂度o(\(n^2\)). 没有同一天的展销会 暴力dp慢,是因为本质 ...

  10. Java8之Stream常用操作方式

    哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...