linux 内核 丢弃分片包,Linux发不出分片包的问题分析

今日有个网络攻击模拟需求,要打分片的ip包,程序写好了,在开发机上验证也没问题,然后部署到沙盒环境之后不行,就是发不出来数据包,而不分片的数据包能够正常发送,定位过程如下

1.对比了两台机器/proc/sys/net/ipv4下的ip相关参数的值,都一样,忽略了因为ipfrag相关设置带来的影响。

2. 查看dmesg、/var/log/messages,没有什么异常的日志。

3. 查看netstat -s

Ip:226610920001total packets received957with invalid addresses0forwarded0incoming packets discarded226610067704incoming packets delivered588767879431 requests sent out

20609816outgoing packets dropped43646dropped because of missing route42fragments dropped after timeout353567514 reassemblies required42 packet reassembles failed

其中飘红的这一样,按照50w/s的速率递增,大致知道了是内核丢掉了数据包,猜测的原因是:内核设定了重组数据包,等待发送来的后续数据包,一直没等到。

4. 搞网卡的参数

ethtool -K xgbe0 tso off

ethtool-K xgbe0 gso off

ethtool-K xgbe0 gro off

ethtool-K xgbe0 lrf off

5. 之后数据包能发出来10s不到,数据包又发不出来了。

6. 考虑是内核相关的东西,查看各内核模块发现有nf_defrag_ipv4模块,手工去掉所有相关模块

rmmod iptable_nat nf_nat

rmmod nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4

rmmod iptable_filter ip_queue nfnetlink iptable_mangle ip_tables x_tables

7.搞定

总结:解决问题的过程中并没有完全搞清楚各种现象的根本原因以及牵涉到知识的根本,需要继续补充

原文:http://www.cnblogs.com/lovemyspring/p/5664509.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值