工具的名称就能猜到工具的作用,就是重放TCP的报文,但是这个工具究竟功能如何,是不是仅仅局限于在一个网卡上回放报文,这篇说明书主要介绍tcprelay的一些与测试有关的使用,在介绍tcpreplay命令的使用之前,先要介绍与之密切相关的一个命令:tcpprep,中文直译就是tcp准备的意思,它的作用可以参见官方网站的介绍说明:tcpprep is the pcap pre-processor for tcpreplay and tcprewrite. The purpose of tcpprep is to create a cache file which is used to "split" traffic into two sides (often called primary/secondary or client/server). If you are intending to use tcpreplay with two NIC"s, then tcpprep is what decides which interface each packet will use. By using a seperate process to generate cache files, tcpreplay can send packets at a much higher rate then if it had to do the calculations to split traffic itself.
个人翻译:(建议大家看man文件,阅读3次就能够比较好的理解了)
P:<list> - Must be one of the listed packets where the list corresponds to the packet number in the capture file.Ex: -xP:1-5,9,15 would only send packets 1 through 5, 9 and 15.根据参数后的参数值(报文编号)发送指定的报文。可以在ethereal中确认报文的编号,然后把需要的报文发送。可以用于排除ARP报文。F:"<filter>" - BPF filter. See the tcpdump(8) man page for syntax.未知,以后补充。-X <match> Send all the packets except those specified可选参数,就是-x参数的取反,参数内容也是一样。-v Verbose可选参数,显示trpprep生成cache文件的处理过程,就是一些信息的即时打印。-V Version显示版本号。
Tcpprep使用小结再构造cache文件的过程中我用的比较多的选项参数就-v、-P、-xB、-xP,一般都是client和server的模式,其它两种模式没有实验过,暂时还不知道怎么使用,bridge模式我使用过一次,结果发现报文是从一个网卡送出。对于tcp和udp协议都做了测试,是可以支持的,icmp还没有成功。对于网络上的BT报文,只要你有pcap文件,也是可以构造cache文件来模拟完全真实的BT流量。目前的使用就是这么多,感觉还是很有用的,tcpreplay的参数有一部分是和tcpprep重复,下面的帮助文件说明就不详细说明了,但是特殊有好用的参数会使用蓝色字体标记出来给予重视。存在的不足是还没有学会在nat模式下重放报文,现在所有的报文重放都是在透明模式下完成的。
Tcpreplay帮助文件说明Usage: tcpreplay [args] <file(s)>-A "<args>" Pass arguments to tcpdump decoder (use w/ -v)可选参数,在使用tcpdump风格打印输出信息时,同时再调用tcpdump中的参数,默认已经带有“-n,-l”,所以一般看到的都是ip地址,而没有主机名的打印,注意这个是在tcpreplay使用了-v参数时,才能使用,不带-v不会报错,但是没有实际意义。格式:-vA “nnt”表示以tcpdump风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c参数来指定打印的数据报文的个数,这样发送出去的报文也会变少。-b Bridge two broadcast domains in sniffer mode可选参数,没有用过-c <cachefile> Split traffic via cache file双网卡回放报文必选参数,后面紧跟cache文件名,该文件为tcpprep根据对应的pcap文件构造出来。-C <CIDR1,CIDR2,...> Split traffic by matching src IP可选参数,-D Data dump mode (set this BEFORE -w and -W)可选参数,把应用层的数据,使用dump mode写入到指定文件中去,和-w、-W参数一起使用。-e <ip1:ip2> Specify IP endpoint rewriting可选参数,指定端点的ip,即把发送报文的和接收的报文的ip都修改称对应的参数值中指定的ip,但是这样发送的出的报文不会区分client和server,还没有发现使用的地方。-f <configfile> Specify configuration file可选参数,指定配置文件,目前不会使用。-F Fix IP, TCP, UDP and ICMP checksums可选参数,在发送报文时,自动纠正错误的校验和。对测试DUT的校验和检验还是有用的。-h Help显示帮助文件。-i <nic> Primary interface to send traffic out of双网卡回放报文必选参数,指定主接口。-I <mac> Rewrite dest MAC on primary interface可选参数,重写主网卡发送出报文的目的MAC地址。-j <nic> Secondary interface to send traffic out of双网卡回放报文必选参数,指定从接口。-J <mac> Rewrite dest MAC on secondary interface可选参数,重写从网卡发送出报文的目的MAC地址。-k <mac> Rewrite source MAC on primary interface可选参数,重写主网卡发送报文的源MAC地址。-K <mac> Rewrite source MAC on secondary interface可选参数,重写从网卡发送报文的源MAC地址。-l <loop> Specify number of times to loop可选参数,指定循环的次数,测试过程发现不是那么好用,有待确认。-L <limit> Specify the maximum number of packets to send可选参数,指定最大的发包数量。可以在确认连接的调试时使用。-m <multiple> Set replay speed to given multiple可选参数,指定一个倍数值,就是必默认发送速率要快多少倍的速率发送报文。加大发送的速率后,对于DUT可能意味着有更多的并发连接和连接数,特别是对于BT报文的重放,因为连接的超时是固定的,如果速率增大的话,留在session表中的连接数量增大,还可以通过修改连接的超时时间来达到该目的。-M Disable sending martian IP packets可选参数,表示不发送“火星”的ip报文,man文件中的定义是0/8、172/8、255/8。-n Not nosy mode (not promisc in sniff/bridge mode)可选参数,在使用-S参数,不对混杂模式进行侦听。没有测试过。-N <CIDR1:CIDR2,...> Rewrite IP"s via pseudo-NAT可选参数,通过伪造的NAT,重写IP地址。这个参数应该有很重要的应用,目前没有测试使用。-O One output mode可选参数,没有测试使用-p <packetrate> Set replay speed to given rate (packets/sec)
Tcpreplay 的详细介绍:请点这里
Tcpreplay 的下载地址:请点这里
Tcpreplay源码解析Tcpreplay使用相关资讯 Tcpreplay
- Tcpreplay 4.0.4 发布,网络安全工 (03/24/2014 13:51:03)
- Tcpreplay安装和使用——优化版 (01/28/2014 19:46:18)
- Tcpreplay源码解析 (01/17/2014 11:01:25)
| - Tcpreplay 4.0.3 发布,网络安全工 (02/05/2014 08:45:11)
- Tcpreplay使用 (01/17/2014 11:12:51)
- 网络安全工具 Tcpreplay (01/17/2014 10:47:00)
|
本文评论 查看全部评论 (0)