首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tcpreplay删除IP校验和?

tcpreplay删除IP校验和?
EN

Stack Overflow用户
提问于 2013-02-14 11:55:43
回答 3查看 3K关注 0票数 0

我有一个包跟踪,我用scapy伪造,用tcpreplay重新发送。我用Scapy重新计算IP和传输层校验和,将数据包保存到pcap文件上的磁盘上,并在其上调用tcpreplay

通过并行运行tcpdump,我注意到所有传出数据包的IP校验和都没有任何价值。看来tcpreplay每次都要删除它。

这是故意的吗?我是不是遗漏了什么?

校验和应该是正确的,所以我认为tcpreplay不会删除它们,因为对它的检查失败了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-23 06:34:20

您没有指定要使用的实际tcpreplay命令,但是tcpreplay 从不编辑数据包。您可以使用tcpreplay -编辑或tcprewrite来编辑数据包,但不能使用tcpreplay。即使如此,tcpreplay编辑/tcprewrite也会计算/修复您的校验和,而不是将它们归零。

您是否打开了Wireshark中的scapy生成的原始pcap,并验证了那里确实存在校验和?老实说,这听起来就像一个简单的例子,垃圾进入,垃圾输出。

我不知道有什么能把你的支票和清零.至少我无法想象为什么内核会对通过PF_PACKET接口发送的数据包这样做--这将是一个bug IMHO。

如果你想清楚了,告诉我。

票数 1
EN

Stack Overflow用户

发布于 2013-02-14 13:36:33

我不太清楚到底发生了什么,但我怀疑tcpreplay检测到接口将用来发送包,Offload Checksum处于活动状态,并让NIC计算正确的校验和。

尝试禁用卸载校验和

代码语言:javascript
复制
ethtool -K eth0 rx off tx off

然后再试一次,让我们知道

票数 1
EN

Stack Overflow用户

发布于 2015-08-20 14:11:37

您可以使用tcpreplay-edit解决这个问题,它包含在与tcpreplay相同的包中,特别是这个选项:

代码语言:javascript
复制
-C, --fixcsum              Force recalculation of IPv4/TCP/UDP header checksums

取消对接口的卸载校验和是没有意义的:当数据包退出时,将被下一台启用校验和检查的机器拒绝(+99%)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14874300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档