Tcpreplay重放pcap包, tcprewrite编辑pcap文件
Tcpreplay是一种pcap包的重放工具, 它可以将tcpdump和Ethereal/Wireshark等工具捕捉到的网络流量包进行编辑修改和重放. 重写Layer 2、3、4层数据包,并将流量重新发送至目标网络, 这样通过重放网络流量包从而实现复现问题情景以定位bug
tcpreplay本身包含了几个辅助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge等等)
» tcpreplay:以任意速度将pcap文件重播到网络上
» tcprewrite:编辑pcap文件并创建一个新的pcap文件
» tcpreplay-edit:编辑pcap文件并重放到网络上
» tcpprep:创建tcpreplay / tcprewrite使用的客户端/服务器定义缓存文件
» tcpbridge:使用tcprewrite的功能桥接两个网段
» tcpliveplay:以服务器识别的方式重放TCP pcap文件
» tcpcapinfo:raw pcap文件解码器和调试器
下面只简单介绍使用tcpreplay重放syslog UDP报文
1、先使用tcpdump抓取一段syslog的报文
tcpdump -i eth0 -s 0 -v -w syslog.pcap port 514

2、yum install tcpreplay进行安装,需要使用EPEL源

3、who 以及arp 命令查看本机的IP地址192.168.60.106 MAC地址为74:d4:35:88:68:e6
然后利用tcprewire重写目标IP地址和MAC地址
tcprewrite --infile=syslog.pcap --outfile=rsyslog_1.pcap --dstipmap=0.0.0.0/0:192.168.60.106 --enet-dmac=74:d4:35:88:68:e6

4、当然也可对源IP地址以及源MAC地址进行改写
tcprewrite --infile=rsyslog_1.pcap --outfile=rsyslog_2.pcap --srcipmap=0.0.0.0/0:172.16.11.5 --enet-smac=00:11:32:12:33:8e

5、更新数据包的校验和
tcprewrite --infile=rsyslog_2.pcap --outfile=rsyslogfinal.pcap --fixcsum

6、完成数据包重写后,重放最终的数据包
tcpreplay -v -i eth0 -M 1000 rsyslogfinal.pcap


上图Kiwi Syslog Server中可以看到重放到本机192.168.60.106的syslog报文,说明重放成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2017-08-28 ES不设置副本是非常脆弱的,整个文章告诉了你为什么
2017-08-28 集群版本升级——rolling upgrade在ES 单节点从 restart 到加入集群,大概要 100s 左右的时间。也就是说,这 100s 内,该节点上的所有分片都是 unassigned 状态
2017-08-28 ES跨版本升级?——难道升级集群发生shard allocation是因为要分配replica节点???
2017-08-28 官方文档 Upgrading Elasticsearch
2017-08-28 集群节点Elasticsearch升级
2017-08-28 ES什么时候会平衡分片
2017-08-28 ElasticSearch 深入理解 三:集群部署设计