栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux: ping 问题总结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux: ping 问题总结

文章目录
  • 命令示例参数
  • 遇到的问题
    • 这个参数的说明
    • 发现问题不是参数 rp_filter
    • 代码,计数

命令示例参数

ping -c 1 -s 2000 -M dont -I int0 -W 2 169.254.33.2

-c count
-s size
-M don’t fragment
-I interface name
-W timeout in seconds
IP 地址

遇到的问题

今天碰到一个问题是,再vlan接口上,发出去了ping request,但是ping程序却接收不到icmp reply。通过tcpdump 抓包看,icmp reply 确实已经回到了没有标签的网络接口,但是就是没有到vlan的接口。
从网上找了一下原因:
https://stackoverflow.com/questions/32100506/icmp-replies-seen-by-tcpdump-but-ping-100-fails
说有一个参数,可能影响ping的reply:rp_filter (reverse-path-filtering)
可以尝试将这个开关关掉: sysctl -w net.ipv4.conf.all.rp_filter=0 (、/proc/sys/net/ipv4/conf/all/rp_filter)

这个参数的说明

/documentation/networking/ip-sysctl.txt
rp_filter - INTEGER
0 - No source validation. 不做源检查
1 - Strict mode as defined in RFC3704 Strict Reverse Path; 做严格的反向路径检查;每一个进入的包,都要用FIB测试一下,如果当前的接收接口不是最优反向路径,就说明检查失败。默认失败就丢弃包。
2 - Loose mode as defined in RFC3704 Loose Reverse Path;做非严格检查;每一个进入的包的源地址,都要用FIB做测试,如果源地址在任何接口上都不可达,就认为检查失败。
在RFC3704里的建议是,打开严格模式来防止DDos攻击过来的IP探测。If using asymmetric routing or other complicated routing, then loose mode is recommended.
The max value from conf/{all,interface}/rp_filter is used when doing source validation on the {interface}.
Default value is 0. Note that some distributions enable it in startup scripts.

发现问题不是参数 rp_filter

最后通过看/var/log/messages日志文件,看到了内核有很多checksum的错误。
Oct 19 07:55:24 sim04 kernel: ens6: hw csum failure
最后定位在产品内核模块在做转发是的错误。

代码,计数

$ nstat -rsz | grep IPReversePathFilter
TcpExtIPReversePathFilter 52537 0.0

$ netstat -s | grep IPReversePathFilter
IPReversePathFilter: 52537
https://github.com/torvalds/linux/commit/b5f7e7554753e2cc3ef3bef0271fdb32027df2ba
添加了这个counter,来查看有多少packets 是由于这个原因丢的。但是在netstat里看不到,难道是如果counter是0,就不显示?

net/ipv4/proc
SNMP_MIB_ITEM("IPReversePathFilter", LINUX_MIB_IPRPFILTER),

net/ipv4/ip_input.c

ip_rcv_finish:
drop_error:
	if (err == -EXDEV)
		__NET_INC_STATS(net, LINUX_MIB_IPRPFILTER);
	goto drop;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334643.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号