web-dev-qa-db-ja.com

ローカルネットワーク上に存在しないホストにpingを実行するときのインターフェイスのtcpdump

サーバー上のインターフェイスの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
4
Lorin Hochstein

存在しないホストにpingを実行している場合、ARPブロードキャストは失敗します。 eth1はレイヤ2宛先なしでユニキャストIPパケットを送信しないため、Tcpdumpはicmpを認識しません。

これを試して:

tcpdump -i eth1 arp

ARP解決が失敗するのが見えるはずです。

8
Ryan