线上一台服务器在重启后发现,有些机器无法 ping 通,有些机器可以。
机器情况如下:
host_a 192.168.1.111 192.168.11.1 x.x.x.x host_b 192.168.1.112 host_c y.y.y.y 192.168.11.2 其中,host_a 和 host_b 在同一个局域网中 192.168.1.0/24,host_a 上运行着 openvpn server,host_c 运行着 openvpn client。
问题表现为在 c 机器上,ping b 的 ip,无法 ping 通,tcpdump 在 b 上抓包,有接收到 ping request 包,没有 ping reply 包。
正当我要按 stackoverflow 上的一个答案配置打开 log_martians 这个选项时,想到会不会是 b 的路由表配置问题,运行 ip route 查看路由发现果然。
ip route add 192.168.11.0/24 via 192.168.1.111
上述命令添加路由后问题解决。
参考:
- http://stackoverflow.com/questions/18536796/icmp-request-received-but-doesnt-reply
- https://www.cyberciti.biz/faq/linux-log-suspicious-martian-packets-un-routable-source-addresses/
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-static-routes.html