在本地networking上ping不存在的主机时,在接口上使用tcpdump

我静态configuration了服务器上的一个接口的IP地址:

ip addr add 10.40.0.6/16 broadcast 10.40.255.255 dev eth1 

如果我尝试pingnetworking上的一台机器(例如,10.40.0.1),则会失败,并显示“Destination Host Unreachable”。

当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 

您应该看到ARPparsing失败。