码迷,mamicode.com
首页 > 其他好文 > 详细

tcpreplay工具安装-配置-实例

时间:2015-12-18 16:06:09      阅读:1274      评论:0      收藏:0      [点我收藏+]

标签:

tcpreplay工具安装-配置-实例

 TCPReplay是一个非常强大的集成工具,其中主要包括TCPReplay、TCPPrepare、TCPrewrite工具,根据其具体参数对.pcap文件进行更改,然后重放数据包。

 

使用条件Linux操作系统、双网卡

TCPReplay工具3个部分来讲解,第一部分安装一个操作linux操作系统、第二部分安装TCPReplay以及相关组件、举一个实例来分析相关参数意义。

一.          Ubuntu12的USB安装过程或者硬盘安装过程,在WIN7操作系统上安装

1、 使用USB镜像安装ubuntu12操作系统的安装过程:http://www.linuxidc.com/Linux/2012-11/74695.htm;

2、 使用硬盘安装ubuntu12操作系统的安装过程:http://www.linuxidc.com/Linux/2012-11/73500.htm;

二.          TCPReplay的准备安装过程

首先推荐一个网站:http://tcpreplay.synfin.net/ ,上面有Tcpreplay的安装包和很多文档,包括手册、man页和FAQ等。

Tcpreplay是一系列工具的总称,包括tcpreplay、tcprewrite和tcpprep等工具,它可以用来在Unix系统或者linux系统上重放网络包。这些包是由tcpdump、ethereal和wireshark等软件抓取到的,即pcap格式的数据包。

安装Tcpreplay包时,默认情况下是安装了下面这些工具, 用于准备发包的cache, 重写报文等:

1)tcpprep: 这个工具的作用就是划分客户端和服务器,区分pcap数据包的流向,即划分那些包是client的,哪些包是server的,一会发包的时候client包从一个网卡发,另一个server的包可能从另一个网卡发。

2)tcprewrite:这个工具的作用就是来修改报文,主要修改2层,3层,4层报文头,即MAC地址,IP地址和PORT地址。

3)tcpreplay: 这是最终真正发包使用的工具,可以选择主网卡、从网卡、发包速度等。

Tcpreplay安装条件

Tcpreplay要实现它的功能要用到其它一些库:

1)libpcap库:由于tcpreplay在使用过程中主要依赖于libpcap库,因此在安装tcpreplay之前需要先安装libpcap,否则在安装tcpreplay的时候会提示你libpcap没有安装安装失败。但如果希望libpcap能在linux上正常工作,则必须使内核支持"packet"协议,也即在编译内核时 打开配置选项 CONFIG_PACKET(选项缺省为打开)。

Libpcap可以从以下链接下载:http://www.tcpdump.org/  可以用源码安装,比较简单。

2)tcpdump: 这个不是必须的,这个工具的主要作用就是来解码数据包,在linux系统下查看pcap文件内的数据包,也可以用它来进行抓包。在安装tcpreplay时可以选择安装它也可以不选择安装。(个人建议也一起安装,以防止在使用tcpreplay时发生其他错误。)

3)libnet库。也不是必须的一个库。Tcpreplay也可用它来发送数据包,但由于libnet自身的bug比较多且已不再有人维护,Tcpreplay未来版本有可能取消对它的支持。(目前的版本还需要这个库的支持,因此建议也安装

另外,你所使用的linux系统需要安装GCC编译器,否则无法安装所有工具

Tcpreplay安装过程

1)首先来说明一下如何安装libpcap库(在安装tcpreplay之前需要先安装libpcap),安装libpcap之前需要首先安装m4、bison,flex,否则会出现错误:

1)打开网址:www.tcpdump.org/ 下载 libpcap-1.1.1.tar.gz (512.0KB) 软件包,通过命令tar zxvf libpcap-1.1.1.tar.gz 解压文件,并将其放入自定义的安装目录。

2)打开网址:flex.sourceforge.net/ 下载 flex-2.5.35.tar.gz (1.40MB) 软件包,通过 tar zxvf flex-2.5.35.tar.gz  解压文件,并将其放入上述自定义的安装目录中。

注意:如果没有编译安装此文件,在编译安装libpcap时,就会出现 “configure: error: Your operating system\‘s lex is insufficient to compile libpcap.”的错误提示。

3)打开网址:ftp.gnu.org/gnu/bison/ 下载 bison-2.4.1.tar.gz (1.9MB) 软件包,通过 tar zxvf bison-2.4.1.tar.gz 解压文件,并将其放入上述自定义的安装目录中。

注意:如果没有编译安装此文件,在编译安装libpcap时,就会出现 "configure: WARNING: don\‘t have both flex and bison; reverting to lex/yacc checking for capable lex... insufficient" 的错误提示。

4)打开网址:ftp.gnu.org/gnu/m4/ 下载 m4-1.4.13.tar.gz (1.2MB)软件包,通过 tar zxvfm4-1.4.13.tar.gz 解压文件,并将其放入上述自定义的安装目录中。

注意:如果没有编译安装此文件,在编译安装bison-2.4.1时,就会出现 “configure: error: GNU M4 1.4 is required”的错误提示。

然后,依次进入m4-1.4.13,bison-2.4.1,flex-2.5.35,libpcap-1.1.1 并执行以下命令:

# ./configure

# make

# make install

命令完成后,libpcap才能正常使用。

2)安装libpcap后就可以安装tcpreplay了,从这个链接http://tcpreplay.synfin.net/下载tcpreplay-3.4.4.tar.gz软件包,通过 tar zxvf tcpreplay-3.4.4.tar.gz  解压文件,并将其放入上述自定义的安装目录中。然后进入tcpreplay-3.4.4,并执行以下命令:

# ./configure

# make

# make install

执行完后,tcpreplay 就可以使用了,可以通过命令:tcpreplay –vesion来查看它的版本信息,tcpreplay –h来查看帮助内容。 

.Tcpreplay具体实例

通过一个经过测试的实例来介绍他们的用法。

测试拓扑图如下图所示

技术分享

其中TCPReplay机器的配置为:

OS: Ubuntu9.04内核版本:2.6.28

 

 

 

 

 

 

 

 

TCPReplay版本:3.3.2(不同版本命令可能稍有不同,具体请通过MAN查询)

网卡:Intel e1000e 双千兆

PCAP文件:test.tcpdump

测试第一步:预处理生成Cache,命令为

tcpprep -a client -i test.tcpdump -o test.cache

这条命令将PCAP文件分成客户端和服务端,默认为客户端。发送时packet将分别从客户端和服务端发出。

测试第二步:重写IP地址和MAC地址,命令为:

tcprewrite -e 192.85.2.2:192.85.1.2 --enet-dmac=00:15:17:2b:ca:15,00:15:17:2b:ca:14 --enet-smac=00:10:f3:19:79:87,00:10:f3:19:79:86 -c test.cache -i test.tcpdump -o 1.pcap

这条命令将eth0设为客户端接口,eth1设为服务端接口,重写了IP和MAC,可通过wireshark等工具打开1.pcap,查看修改是否成功,其中IP地址谁在前,默认谁为服务端,其中IP/MAC都要验证正确输入,否则在重放过程中会出错。

测试第三步:重放packet,首先为了获取更高的发送速度,可以把文件放到/dev/shm目录下,最高速度有1倍左右的加速。重放命令为:

tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap

命令分析:-i后面参数为主网卡/服务器网卡, -I后面参数为次网卡/客户端网卡; -l 后面的参数为播放次数,-t表示尽可能的快 –c后面紧跟着两个参数分别为.cache和.pcap。这条命令将文件以最高速率循环发送1000次。上述步骤通过测试,保证能够通过。

" >

 

sharenet

tcpreplay工具安装-配置-实例

标签:

原文地址:http://www.cnblogs.com/legendbaby/p/5057044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!