サーバー上のインターフェイスのIPアドレスを静的に構成しました。
ip addr add 10.40.0.6/16 broadcast 10.40.255.255 dev eth1
ネットワーク上のマシン(10.40.0.1など)にpingを実行しようとすると、「DestinationHostUnreachable」で失敗します。
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ブロードキャストは失敗します。 eth1はレイヤ2宛先なしでユニキャストIPパケットを送信しないため、Tcpdumpはicmpを認識しません。
これを試して:
tcpdump -i eth1 arp
ARP解決が失敗するのが見えるはずです。