Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. Linux
  3. 正文

[转]isic使用说明

2010年07月25日 13883点热度 0人点赞 0条评论

简单说明一下isic这个软件。刚安装的时候以为就一个isic的命令,其实i只是代表ip报文的意思,软件安装后有tcpsic、esic、 icmpsic、udpsic和isic5种操作命令。所以各种命令操作主要是发送该类型的报文为主,比如isic,主要是各种ip报文,可以选择各种 ip报文字段中的内容的比例,例如IP协议版本、选项字段等。注意所有发送报文的速率跟网卡有关,我们不能控制发送报文的速率,但是可以控制每秒发送报文的个数来控制发送的流量。文档内容将以帮助文件为主,结合一两个实际的命令来解释各个命令参数的作用。

1.    tcpsic

usage: tcpsic [-v] [-D] -s [,port] -d [,port]
[-r seed] [-m ]
[-p ] [-k ] [-x ]

参数含义:

-v:显示版本号,没有多大意义,不需要配置。

-D:Debug模式,会把具体的报文内容都打印出来,一般情况下不使用,在需要确定是否有报文发出的情况下可以使用。

-s:配置源ip和端口,可以不设置端口,设置时ip和端口号中间用逗号“,”连接,ip可以用随机的ip来代替,参数是rand。

-d:配置目的ip和端口,可以不设置端口,设置时ip和端口号中间用逗号“,”连接,ip同样可以设置rand,但是运行后会报错“Failed to send packet: Invalid argument”,所以目的ip一定要设置。

-r:配置发送报文的编号,其实是一个rand这个函数一个参数,如果参数固定,那么构造报文的类型就固定了。就是说你可以固定的总是发送这一个编号的报文,如果测试中确认这个编号的报文会影响到设备,就记住这个seed编号,就可以节省构造报文的时间。这个编号在发送报文之前和完毕后都会打印出来。

-m:平均发送报文大小的最大值。200以上的参数值有效,单位kB。

-p:平均发送报文的个数,注意这个不是总数,总数需要和-x 这个参数一起决定。这里的发送的个数是指发送多少个不一样的包,包的内容不一样。不带该参数表示连续不断的发送。

-k:忽略的报文个数,就是指不发送多少个报文,这里的报文是参数-p后的报文内容。

-x:重复发送同一个报文x次。这里的报文就是-p参数后的报文内容。

注:-p、-k、-x三个参数决定了总计发送了多少个报文,假设总计报文个数为N,那么存在这样一个表达式:N=(p-k)*x。也就是说k一定要小于p,不然就没有报文发出,建议不要配置k参数。

Percentage Opts: [-F frags] [-V ] [-I ]
[-T ] [-u ] [-t ]

百分比的参数配置:

-F: 发送需要分片报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-V: 发送错误IP版本号的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。控制不是很精确。

-I:发送含有IP选项字段的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-T: 发送含有TCP选项字段的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-u: 发送TCP的flag中urgent标志位置1的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-t: 发送TCP的checksum中错误的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。控制不是很精确。

注:这里的参数和参数值是针对各自的协议报文一个总的统计,在命令输入后就会有一个统计值输出,比如:-T的参数值为50,那么发送的所有TCP报文中有一半含有option字段,而IP报文不在统计之列。

ex: -s 10.10.10.10,23   -d 10.10.10.100 -I 100

will give a 100% chance of IP Options ^^^

向10.10.10.100这个地址持续不断的发送源地址为10.10.10.10,源端口为23,目的端口随机,每个IP数据包文都含有选项字段的报文。

ex: -s 10.10.10.10,23   -d 10.10.10.100 -p 100 -r 103334

向10.10.10.100这个地址发送100个源地址为10.10.10.10,源端口为23,目的端口随机,报文内容的seed编号为103334的报文。

2.    esic

usage: esic -i interface [-s ] [-d ]
[-p or 'rand'>]   [-r ]
[-c <# of pkts to send>]       [-l ]
[-m <# of pkts between printout>]

参数含义:

-i: 指定发送的接口,必须的参数,因为没有配置ip,发送的报文不知道从哪个接口送出,而且配置了接口后就可以使用了。注意:这个时候的目的地址是ff:ff:ff:ff:ff:ff,可以使用-D参数来查看,显然这样的配置导致的结果就是全网的广播风暴。

- Be careful, the source MAC defaults to your interface

and the dest MAC defaults to broadcast

这里就是说明默认的配置,源MAC为PC接口的MAC,目的MAC为广播地址。

-s: 配置源MAC地址,可以配置随机参数值rand。

-d:配置目的MAC地址,可以配置随机参数值rand。

注:它对MAC的判断不是很严格,中间用“:”或“-”连接都是正确的,不连接也可以,但是它只认后两位,例如“aabb”或“aa bb”,它会认为是“bb:00:00:00:00:00”这个MAC地址。

-p: 配置发送的协议类型编号,但是选择该参数后发包的proto是一个你配置的编号,但是它的编号和protocol的协议编号不是对应的。默认发送的是IP协议类型的数据包。

-r:配置发送报文的编号,就是说你可以固定的总是发送这一个编号的报文,如果测试中确认这个编号的报文会影响到设备,就记住这个seed编号,就可以节省构造报文的时间。这个编号在发送前会打印出来。

-c: 配置发送报文的总个数。

-l: 配置发送报文的最大长度,发送的报文length在这个参数值以内。

-m: 配置打印信息的间隔,例如-m 100表示每发送100个报文后打印一次统计信息。

examples:

esic -i eth0 -d 02:de:ad:be:ef:40 -r123 -c10000

从eth0口发出10000个seed编号123内容,目的MAC为02:de:ad:be:ef:40的报文。默认的源MAC为接口MAC地址。

3.    icmpsic

usage: icmpsic [-v] [-D] -s [,port] -d [,port]

[-r seed] [-m ]

[-p ] [-k ] [-x ]

参数含义:

-v:显示版本号,没有多大意义,不需要配置。

-D:Debug模式,会把具体的报文内容都打印出来,一般情况下不使用,在需要确定是否有报文发出的情况下可以使用。

-s:配置源ip,注意ICMP没有端口的概念,所以如果配置了端口就会报错,这里的命令提示是有错误的。ip可以用随机的ip来代替,参数是rand。

-d:配置目的ip,注意ICMP没有端口的概念,所以如果配置了端口就会报错,这里的命令提示是有错误的。ip可以用随机的ip来代替,参数是rand。

-r:配置发送报文的编号,就是说你可以固定的总是发送这一个编号的报文,如果测试中确认这个编号的报文会影响到设备,就记住这个seed编号,就可以节省构造报文的时间。这个编号在发送前会打印出来。

-m:平均发送报文大小的最大值。从试验来看这个参数无效,大小是随机的,没有受这个参数的控制。

-p:平均发送报文的个数,注意这个不是总数,总数需要和-x 这个参数一起决定。这里的发送的个数是指发送多少个不一样的包,包的内容不一样。不带该参数表示连续不断的发送。

-k:忽略的报文个数,就是指不发送多少个报文,这里的报文是参数-p后的报文内容。

-x:重复发送同一个报文x次。这里的报文就是-p参数后的报文。

注:-p、-k、-x三个参数决定了总计发送了多少个报文,假设总计报文个数为N,那么存在这样一个表达式:N=(p-k)*x。也就是说k一定要小于p,不然就没有报文发出,建议不要配置k参数。

Percentage Opts: [-F frags] [-V ] [-I ]
[-i ]

百分比的参数配置:

-F: 发送需要分片报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-V: 发送错误IP版本号的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-I:发送含有IP选项字段的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-i: 发送ICMP的checksum中错误的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。控制不是很精确。

ex: -s 10.10.10.10,23   -d 10.10.10.100 -I 100

这个实例实际上是错误的,照搬了tcpsic的实例,端口是不能被添加的。剩下的就不说了,我举几个实例说明一下。

icmpsic -s 192.168.96.10 -d 192.168.96.201 -p 10 -F 1000 -I 100 -V 100 -i 100

构造源地址为192.168.96.10(-s)的10个(-p)icmp报文(icmpsic),所有的报文都进行分片(-F 1000),ip包头全部含有选项字段(-I 100),IP的版本号全部错误(-V 100),并且所有的报文checksum都是错误的(-i),将这样的报文发向192.168.96.201(-d)这个ip地址。这样的报文如果穿过了一个转发设备的话,所有的报文应该都会被丢弃。

命令执行的过程:

[root@FC5 ~]# icmpsic -s 192.168.96.10 -d 192.168.96.201 -p 10 -F 1000 -I 100 -V 100 -i 100

Compiled against Libnet 1.1.2.1

Installing Signal Handlers.

Seeding with 2445

No Maximum traffic limiter

Bad IP Version  = 100%          IP Opts Pcnt    = 100%

Frag'd Pcnt     = 1000%         Bad ICMP Cksm   = 100%

Wrote 10 packets in 0.00s @ 2999.40 pkts/s

4.    udpsic

usage: udpsic [-v] [-D] -s [,port] -d [,port]

[-r seed] [-m ]

[-p ] [-k ] [-x ]

参数含义:

-v:显示版本号,没有多大意义,不需要配置。

-D:Debug模式,会把具体的报文内容都打印出来,一般情况下不使用,在需要确定是否有报文发出的情况下可以使用。

-s:配置源ip和端口,可以不设置端口,设置时ip和端口号中间用逗号“,”连接,ip可以用随机的ip来代替,参数是rand。

-d:配置目的ip和端口,可以不设置端口,设置时ip和端口号中间用逗号“,”连接,ip同样可以设置rand,但是运行后会报错“Failed to send packet: Invalid argument”,所以目的ip一定要设置。

-r:配置发送报文的编号,就是说你可以固定的总是发送这一个编号的报文,如果测试中确认这个编号的报文会影响到设备,就记住这个seed编号,就可以节省构造报文的时间。这个编号在发送前会打印出来。

-m:平均发送报文大小的最大值。200以上的参数值有效,单位kB。

-p:平均发送报文的个数,注意这个不是总数,总数需要和-x 这个参数一起决定。这里的发送的个数是指发送多少个不一样的包,包的内容不一样。不带该参数表示连续不断的发送。

-k:忽略的报文个数,就是指不发送多少个报文,这里的报文是参数-p后的报文内容。

-x:重复发送同一个报文x次。这里的报文就是-p参数后的报文内容。

Percentage Opts: [-F frags] [-V ] [-I ]

[-U ]

百分比的参数配置:

-F: 发送需要分片报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-V: 发送错误IP版本号的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。控制不是很精确。

-I:发送含有IP选项字段的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-U: 发送checksum错误的UDP报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

配置实例:

udpsic -s 192.168.96.10,10 -d 192.168.96.202,80 -p 100 -U 10 -V 0 -F 0 -I 0

构造源地址为192.168.96.10源端口为10(-s)的,checksun有10%(-U)为错误的,没有分片(-F)和ip选项(-I),正确协议(-V)类型的10个(-p)udp报文(udpsic)发送给目的地址为192.168.96.202目的端口为80(-d)的主机。

这个实例可以检验DUT设备是否对分片、协议类型错误、checksum错误等是否进行检测。

命令执行的过程:

[root@FC5 ~]# udpsic -s 192.168.96.10,10 -d 192.168.96.202,80 -p 100 -U 10 -V 0 -F 0 -I 0

Compiled against Libnet 1.1.2.1

Installing Signal Handlers.

Seeding with 2475

No Maximum traffic limiter

Bad IP Version  = 0%            IP Opts Pcnt    = 0%

Frag'd Pcnt     = 0%            Bad UDP Cksm    = 10%

Wrote 100 packets in 0.01s @ 15835.31 pkts/s

5.    isic

usage: isic [-v] [-D] -s -d
[-p ] [-k ] [-x ]
[-r ] [-m ]

参数含义:

-v:显示版本号,没有多大意义,不需要配置。

-D:Debug模式,会把具体的报文内容都打印出来,一般情况下不使用,在需要确定是否有报文发出的情况下可以使用。

-s:配置源ip,ip可以用随机的ip来代替,参数是rand。

-d:配置目的ip, ip同样可以设置rand。

-r:配置发送报文的编号,就是说你可以固定的总是发送这一个编号的报文,如果测试中确认这个编号的报文会影响到设备,就记住这个seed编号,就可以节省构造报文的时间。这个编号在发送前会打印出来。

-m:平均发送报文大小的最大值。200以上的参数值有效,单位kB。

-p:平均发送报文的个数,注意这个不是总数,总数需要和-x 这个参数一起决定。这里的发送的个数是指发送多少个不一样的包,包的内容不一样。不带该参数表示连续不断的发送。

-k:忽略的报文个数,就是指不发送多少个报文,这里的报文是参数-p后的报文内容。

-x:重复发送同一个报文x次。这里的报文就是-p参数后的报文内容。

Percentage Opts: [-F frags] [-V ]
[-I ]

百分比的参数配置:

-F: 发送需要分片报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。

-V: 发送错误IP版本号的报文的百分比,可以直接输入数字或百分数,例如50=50%,也可以大于100,不会报错,命令可以执行。控制不是很精确。

-I: 发送IP报文的头部使用随机的长度的报文的百分比。

配置实例:

isic -s 192.168.96.10 -d 192.168.96.202 -p 10 -I 100

-I表示所发送的IP报文都使用随机的Header length,其它的就不多罗嗦了。

使用小结:

isic这个工具主要是测试DUT对非正常报文的处理情况,有的设备检测五元组,有的还检测checksum,有的还检测tcp的序列号,所以使用 isic这个工具可以构造我们所需要的正常或非正常报文,来检测DUT对报文内容的检测深度和处理的速度。而且它自身的统计功能可以很好的为测试服务,提 高了测试的精度。

isic工作原理

刚开始使用发包工具的时候会觉得这个东西很神奇,可以构造出这么多不同的报文,还可以控制一些参数来发送自己想要发送的报文,但是看过源码文件以后,也许就没有这么神秘了。

以isic-0.06来说,先看看解压tar包后的文件内容:

isic使用说明

isic_图1

安装过程就不多说了,看其中一个c文件就可以知道它的报文是怎样构造的了,以isic.c为例,看其中一部分内容。

isic使用说明

isic_图2

可以学习到isic的含义:ISIC - IP Stack Integrity Checker,就是IP协议栈完整性检测的意思。

isic使用说明

isic_图3

可以看到main函数中定义了默认的参数值,例如默认的分片的比例值,默认发送的次数,最大的发包速率等信息,很显然isic是依靠对应的c文件去构造报文的。构造完毕后经由网卡发送出去。

相关文章

  • openssl client authentication bundle CA 验证备忘
  • [转]Iperf 带宽性能测试使用方法与参数说明
  • tcl实例详解
  • redhat上装bind9.3.4
  • Ubuntu配置作为DNS服务器
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2010年07月25日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

页面AI聊天助手
文章目录
  • 1.    tcpsic
  • 2.    esic
  • 3.    icmpsic
  • 4.    udpsic
  • 5.    isic
  • 使用小结:
  • isic工作原理

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    gtm DNS neutron api network flannel F5 k8s openstack irule nginx istio envoy bigip docker
    最近评论
    汤姆 发布于 8 个月前(09月10日) 嗨,楼主,里面的json怎么下载啊,怎么收费啊?
    汤姆 发布于 8 个月前(09月09日) 大佬,kib的页面可以分享下吗?谢谢
    zhangsha 发布于 1 年前(05月12日) 资料发给我下,谢谢纳米同志!!!!lyx895@qq.com
    李成才 发布于 1 年前(01月02日) 麻烦了,谢谢大佬
    纳米 发布于 1 年前(01月02日) 你好。是的,因为以前下载系统插件在一次升级后将所有的下载生成信息全弄丢了。所以不少文件无法下载。DN...
    浏览次数
    • Downloads - 183,766 views
    • 联系我 - 118,966 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 116,509 views
    • Github - 103,659 views
    • F5常见log日志解释 - 79,774 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 74,623 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 74,320 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 67,770 views
    • 关于本站 - 60,909 views
    • 这篇文档您是否感兴趣 - 55,495 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号