第一部分:什么是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. pytest文档7-计算单元测试代码覆盖率(pytest-cov)

    pytest-cov 先命令行安装 pytest-cov 2.10.1版本 pip install pytest-cov==2.10.1 环境要求:1.python3.6.6 版本备注:其它版本没试过 ...

  2. java继承子类实例化过程(细节解释)

    1 package face_08; 2 class Fu{ 3 Fu(){ 4 super(); 5 show(); 6 return; 7 } 8 void show() { 9 System.o ...

  3. String类-intern方法

    1 package cn.itcast.p1.string.demo; 2 3 class StringObjectDemo { 4 public static void main(String[] ...

  4. collate utf8_bin是什么意思

    创建数据库时 collate utf_bin是 以二进制值比较,也就是区分大小写,collate是核对的意思 uft-8_general_ci  一般比较,不区分大小写

  5. Jupyter Notebook 更改字体、字体大小、行高

    (废话):今天在做实验的时候遇到了一点问题,就问了问本科的室友,结果室友推荐我使用Jupyter Notebook来写代码,以前看其他同学使用过,但是一直在用Pycharm写,需要的时候顶多是Debu ...

  6. mybatis 配置文件 简单介绍

    配置文件? 一. properties属性:可以引入外部的属性文件,可以自定义属性信息,供后续的节点使用: 注意!外部文件 定义在SRC目录下 否则找不到资源.二. settings设置:全局的配置信 ...

  7. ApacheCN JavaScript 译文集 20211122 更新

    JavaScript 编程精解 中文第三版 零.前言 一.值,类型和运算符 二.程序结构 三.函数 四.数据结构:对象和数组 五.高阶函数 六.对象的秘密 七.项目:机器人 八.Bug 和错误 九.正 ...

  8. ApacheCN 深度学习译文集 20210112 更新

    新增了六个教程: TensorFlow 2 和 Keras 高级深度学习 零.前言 一.使用 Keras 入门高级深度学习 二.深度神经网络 三.自编码器 四.生成对抗网络(GAN) 五.改进的 GA ...

  9. java8 stream详细

    转载:   https://zhuanlan.zhihu.com/p/299064490

  10. JAVA多线程学习十一-线程锁技术

    前面我们讲到了synchronized:那么这节就来将lock的功效. 一.locks相关类 锁相关的类都在包java.util.concurrent.locks下,有以下类和接口: |---Abst ...