Linux 数据包回放工具tcpreplay安装使用

摘要:
背景:tcpreplay是pcap包的播放工具。它可以按原样或在任何修改后重放ethral和wireshark工具捕获的包。它允许您对消息进行任意修改,指定消息重放的速度等。这样,tcpreplay可以用于复制包捕获场景以定位错误,并以极快的速度重放以实现压力测试。Tcpreplay本身包含多个辅助工具,用于准备数据包缓存并重写消息*Tcpreplay-您可以选择主网卡和从网卡以及真正发送的发送速度*Tcpreplayedit-更改pcap数据并回放,并在一个命令中实现tcprewrite和tcprecat。
背景介绍

tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试。

tcpreplay本身包含了几个辅助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge), 用于准备发包的cache, 重写报文等。

* tcpprep - 简单的说就是划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发。即区分pcap数据包的流向,即区分出客户端和服务器。
* tcprewrite - 简单的说就是修改2层, 3层, 4层报文头部。即改写pcap数据包的2-4层的头部信息,即MAC地址、IP地址和PORT等。
* tcpreplay - 真正发包, 可以选择主、从网卡, 发包速度等。即回放pcap文件中的数据包。
* tcpreplay-edit-更写pcap数据并回放,将tcprewrite和tcpreplat一条命令实现。
* tcpbridge - 利用tcprewrite的功能实现两个网络部分的桥接

正文

1、安装

以centos为例: 直接yum install tcpreplay 安装或者编译离线包安装

 1 解压依赖 tar zxvf libpcap-1.9.1.tar.gz
 2 
 3 编译 ./configure 
 4 
 5 make && make install
 6 
 7 解压安装包 tar zxvf tcpreplay-4.1.0.tar.gz
 8 
 9 编译 ./configure --enable-dynamic-link
10 
11 make && make install

2、tcpreplay工具

命令格式:tcpreplay [-flags] [-flag [value]] [--option-name[[=| ]value]] <pcap_file(s)>

命令参数如下图:

Linux 数据包回放工具tcpreplay安装使用第1张

 3、示例

预处理后发包:

1.预处理生成Cache:
tcpprep -a client -i test.pacp -o test.cache 
这条命令将PCAP文件分成客户端和服务端,默认为客户端。发送时packet将分别从客户端和服务端发出。

2.重写IP地址和MAC地址:
tcprewrite -e 192.85.1.2:192.85.2.2 --enet-dmac=00:15:17:2b:ca:14,00:15:17:2b:ca:15 --enet-smac=00:10:f3:19:79:86,00:10:f3:19:79:87 -c test.cache -i test.pcap -o 1.pcap  
这条命令将eth0设为服务端接口,eth1设为客户端接口,重写了IP和MAC,可通过wireshark等工具打开1.pcap,查看修改是否成功。
 
3.重放packet:
tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap 

直接发包:

附带参数即可: tcpreplay -i eth1 -M 10 -l 100 1.pcap
--使用eth0网口,每秒20个数据包,重复100次

4、遇到的报错

包过长导致的报错:

Linux 数据包回放工具tcpreplay安装使用第2张

解决办法: 查看并调整网口mtu:ifconfig eth0 mtu 6000 up

或增加回放参数:tcpreplay-edit -i eth0 -M20--mtu-trunc xxx.pcap

Linux 数据包回放工具tcpreplay安装使用第3张

免责声明:文章转载自《Linux 数据包回放工具tcpreplay安装使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AD域批量的导入导出账号 转VS2010插件之NuGet的安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Centos7 挂载

1.Mount命令:Mount语法格式:Mount Mount设备文件信息Mount point(目录)注意:装载点(目录)必须有一个装载CD-ROM驱动器:Mount/dev/cdrom/mnt 2.卸载命令:umount语法格式:umountmount point(directory)3.查看磁盘装载状态/查看磁盘使用情况df4。存储设备通电时自动装载#...

Dapper系列之一:Dapper的入门(多表批量插入)

Dapper只是一个完全开源的代码文件。您可以在项目中的任何位置实现数据到对象ORM操作,其大小小,速度快。Dapper的优点:1。Dapper是一个轻量级ORM类。该代码是一个SQLMapper.cs文件,编译后通常约为40k dll;2.Dapper,快点,你为什么说得快?因为Dapper的速度接近IDataReader,所以列表的数据比DataTabl...

【转】 中兴OLT-C300常用命令

在当前的C220版本中,ONU类型名称在GPON和EPON中应该是唯一的。这里我们使用“ZTEG-F620”。ZXAN#ponZXAN#onu-typegponZTEG-F620描述4ETH,2POTSZXAN#onu-ifZTEG-F620eth_0/1-4ZXAN#onon-ifZTEG-F620pots_0/1-2ZXAN#on u type attr...

IPv6地址的ping、telnet等操作

最近,我在研究https协议如何传输数据。我用wireshark捕捉数据包并分析它们。我发现客户端和谷歌网站在传输数据时使用了IPv6地址,因此我测试了与IPv6地址相关的基本功能。...

一款支持显卡GPU的视频格式转换工具转码软件,速度快提升400%

只要软件有图形卡,转换速度非常快,但也有一个缺点。转换后的视频文件大于格式工厂。软件还可以自行设置各种转换参数。当然,你需要更加熟练。我们没有更多的麻烦了。如何确保最小音量的最佳质量,将留给您来解决问题。...

pageoffice

--PageOfficeEnd--˃4.这将更改为印章简单管理页面的管理员登录密码。为了安全起见,强烈建议更改它!!!如果您使用Oracle、MySQL和其他数据库,请删除以下节点上的注释,并将其修改为密封数据库连接参数。最好删除印章。WEB-INF库下的mdb。...