TCPReplay使用---张子芳
2013-11-27 15:49
162 查看
TCPReplay主要功能是将PCAP包重新发送,用于性能或者功能测试。但是在测试环境与原转包系统结构一般是不同的。比如被测试机的二层MAC地址与抓包机器的MAC不同,所以被测试机在二层处理时发现目的MAC不是自己,就会把packet丢弃。协议栈把目的MAC与本机的MAC匹配,才会将packet交给上层处理。为了实现测试,需要使用TCPReplay的两个配套工具,TCPPrep和TCPRewrite。这两个工具和TCPReplay的详细用法可以通过MAN来查询,这里不再细讲。此处通过一个经过测试的实例来介绍他们的用法。
测试拓扑图如下图所示
其中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.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.tcpdump -o 1.pcap
这条命令将eth0设为服务端接口,eth1设为客户端接口,重写了IP和MAC,可通过wireshark等工具打开1.pcap,查看修改是否成功。
测试第三步:重放packet,首先为了获取更高的发送速度,可以把文件放到/dev/shm目录下,最高速度有1倍左右的加速。重放命令为:
tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap
这条命令将文件以最高速率循环发送1000次。
上述步骤通过测试,保证能够通过。
测试拓扑图如下图所示
其中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.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.tcpdump -o 1.pcap
这条命令将eth0设为服务端接口,eth1设为客户端接口,重写了IP和MAC,可通过wireshark等工具打开1.pcap,查看修改是否成功。
测试第三步:重放packet,首先为了获取更高的发送速度,可以把文件放到/dev/shm目录下,最高速度有1倍左右的加速。重放命令为:
tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap
这条命令将文件以最高速率循环发送1000次。
上述步骤通过测试,保证能够通过。
相关文章推荐
- tcpreplay使用方法
- 使用PHP中破解md5密码(循环:10万个/3秒)
- 多线程编程:何时使用同步类
- ASP.NET中使用托管组件
- vc知识积累(3.动态链接库使用)
- C#中使用HashTable
- [原创]SQL Server 2005:一个使用新创建的User的问题和解决方法
- JSP/SERVLET入门教程--Servlet 使用入门
- JavaScript使用正则表达式 (转)
- ASP.NET 2.0使用FCKEditor初體驗
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- 使用System.Text.RegularExpression中的API实现网页数据的抓取
- 在SharePoint中模板中实现类似框架的结构:使用Splitter分割导航与内容区,拖动调整大小(一)
- 达芬奇开发_烧写Flash:方案一:使用ramdisk,烧写到nor flash,文件格式ext2
- 使用LINQ来简化编程的7个技巧
- 在JSP中使用JavaMail
- CListCtrl 使用技巧(完整版)
- PayPal注册及使用详解
- /etc/xinetd.d 的使用