我已经静态配置了服务器上接口的IP地址:
ip addr add 10.40.0.6/16 broadcast 10.40.255.255 dev eth1
如果我尝试ping网络上的计算机(例如,10.40.0.1),则会因“目标主机无法访问”而失败.
当ping运行时,如果我执行以下操作,我根本看不到任何活动
tcpdump -i eth1 icmp
但是,如果我在环回接口上侦听:
tcpdump -i lo icmp
然后我看到类似的东西:
16:02:57.369632 IP 10.40.0.6 > 10.40.0.6: ICMP host 10.40.0.1 unreachable,length 92
我的问题是:为什么ICMP数据包不会出现在eth1接口上?
编辑:
# ip r ls 10.40.0.0/16 dev eth1 proto kernel scope link src 10.40.0.6
解决方法
如果您正在ping不存在的主机,则ARP广播将失败. Tcpdump永远不会看到icmp,因为eth1不会发送没有第2层目的地的单播IP数据包.
试试这个:
tcpdump -i eth1 arp
您应该看到ARP解析失败.