第一部分:什么是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个字节跳变,也就是3456字节跳变,对于字段112233445566来说就是在33445566范围内进行跳变。

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


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

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

一、添加和连接机箱

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

配置IPv6地址跳变——网络测试仪实操_随机变化


二、预约端口

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

配置IPv6地址跳变——网络测试仪实操_字段_02


三、添加流量

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

配置IPv6地址跳变——网络测试仪实操_偏移量_03



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

删除IPv4 Hader,增加IPv6 Header

配置IPv6地址跳变——网络测试仪实操_随机变化_04

配置IPv6地址跳变——网络测试仪实操_16进制_05

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

配置IPv6地址跳变——网络测试仪实操_取值_06


五、配置IPv6地址为固定值

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

配置IPv6地址跳变——网络测试仪实操_偏移量_07

配置IPv6地址跳变——网络测试仪实操_随机变化_08


六、配置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的关系如下:

配置IPv6地址跳变——网络测试仪实操_字段_09

※注意: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)

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

配置IPv6地址跳变——网络测试仪实操_偏移量_10

配置IPv6地址跳变——网络测试仪实操_字段_11

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

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

配置IPv6地址跳变——网络测试仪实操_偏移量_12

配置IPv6地址跳变——网络测试仪实操_偏移量_13


七、配置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的关系如下:

配置IPv6地址跳变——网络测试仪实操_字段_14

※注意: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)

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

配置IPv6地址跳变——网络测试仪实操_字段_15

配置IPv6地址跳变——网络测试仪实操_16进制_16

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

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

配置IPv6地址跳变——网络测试仪实操_偏移量_17

配置IPv6地址跳变——网络测试仪实操_随机变化_18





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

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

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

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

举例:IPv6从2001::20023001:30024001:4002这几个值变化

配置IPv6地址跳变——网络测试仪实操_取值_19

配置IPv6地址跳变——网络测试仪实操_16进制_20


九、配置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的关系如下:

配置IPv6地址跳变——网络测试仪实操_随机变化_21

※注意: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地址跳变——网络测试仪实操_字段_22

配置IPv6地址跳变——网络测试仪实操_偏移量_23