tcpreplay 学习与使用经验(持续更新)

1.利用tcpprep区分客户端-服务端 tcpprep

  • 确定服务端的3种方法:
    • 知名端口
    • 服务器的ip
    • 交互流程
  • tcpprep 就能帮助我们完成客户端-服务端的区分,生成file.cache文件
    • 知名端口:-p -s services文件
    • 服务器ip: -c 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8
    • 交互流程:-a client
      • 发起sync的为客户端
      • 发起dns的为客户端
  • 参考命令如下:
# 知名端口
tcpprep -p -s  /etc/services -i input.pcap -o input.cache
#/etc/services 可以如下,设置知名端口;
#可以设置自己的myservices文件,不修改系统的/etc/services文件
#http		8000/tcp		www		# WorldWideWeb HTTP

# 服务器端口
tcpprep -c 8.8.8.8,114.114.114.114 -i input.pcap -o input.cache

# 交互流程
tcpprep -a client -i input.pcap -o input.cache
# -a bridge
# -a router
# -a server

2.查看客户端-服务端的区分效果 tcpprep

  • tcpprep -S file.cache
  • 能查看3种区分服务端的方法的效果,最好客户端-服务端区分为1:1
    • 如下,36个报文
    • 服务端为18个,即Primary
    • 客户端为18个,即Secondary
Primary packets:	18
Secondary packets:	18
Skipped packets:	0
------------------------------
Total packets:		36

3.根据客户端-服务端修复报文的2-3-4层 tcprewrite

  • 有时我们需要按客户端、服务端分别修改报文的2-3-4层,以便在测试环境回放

3.1 修改3层的ip 按客户端-服务端分别修改

  • 比如客户端统一修改为192.168.100.1
  • 比如服务端统一修改为192.168.100.2
  • 利用上一节生成的file.cache,就能办到
tcprewrite -e 192.168.100.1:192.168.100.2 -c input.cache -i input.pcap -o output.pcap
# 不使用file.cache,则简单粗暴地将src_ip/dst_ip替换
# 使用file.cache,将客户端的ip替换为192.168.100.1,服务端的ip替换为192.168.100.2

3.2 修改2层的mac 接收方统一全部修改

  • 统一将流量里的dst_mac修改为接收方,方便回放
  • 若使用上一节生成的file.cache,仅服务端的mac被修改
  • 不使用上一节生产的file.cache,则可以使用接收方的mac全被修改
tcprewrite -i input.pcap -o output.pcap --enet-dmac=00:50:56:22:58:2f #--ent-dmac 设置为回放环境里接收方的mac,保证交换机或网线直连时tcpreplay的回放包能到达接收方

4.回放报文 tcpreplay

  • 具体的参数,tcpreplay -h或man tcpreplay即可
  • 示例命令如下
tcpreplay -i enp3s0 --loop=0 --loopdelay-ms=5000 output.pcap &
4.1 循环回放+设置间隔
  • 使用-l 0:设置循环回放
  • 使用–loopdelay-ms=x000:设置间隔为x秒
  • 若希望能以最高速度回放即-t,是无法与–loopdelay-ms兼容
  • 可以利用sleep x替代–loopdelay-ms选项,编写脚本完成模拟回放

5.参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值