3

tcpdump ログに 2 つのパケットがあり、2 番目の列の「P」と「In」が何を意味するのかわかりません。誰かが彼らの意味を説明できますか?

00:43:44.896482   P 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.xx.xx.xx.56365: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8>

00:43:44.896482  In 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.yy.yy.yy.4242: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8>

この「P」が原因で宛先 IP が変更されることに注意してください。

4

1 に答える 1

5

Guy Harris の tcpdump-workers メーリング リストから次の回答を得ました。

Linux の「任意の」デバイスは、DLT_LINUX_SLL/LINKTYPE_LINUX_SLL リンク層ヘッダーを使用します。これには、PF_PACKET ソケットでの「recvfrom()」呼び出しから取得した情報が含まれます。パケットの送信元アドレスは含まれますが、宛先アドレスは含まれません。したがって、表示される唯一のリンク層アドレスは送信元アドレスです。

また、パケットがどのように受信されたかを示すいくつかのフラグも含まれています。

  • "In" - パケットはホストにユニキャストされました。

  • "B" - パケットはブロードキャストされました。

  • "M" - パケットはブロードキャストではなくマルチキャストでした。

  • "P" - パケットは他のホストにユニキャストされ、ネットワーク アダプタがプロミスキャス モードであったため、このホストがパケットを受信しました。

  • "Out" - パケットはホストによって送信され、"ラップアラウンド" され、PF_PACKET ソケットに配信されました。

Linux ネットワーク スタックが "In"、"B"、"M"、"P" の違いを判断する方法は、パケットの宛先アドレスを見て、それがブロードキャスト アドレスであるかどうかを確認することだと思います (ff: ff:ff:ff:ff:ff (IEEE MAC-48 アドレスを使用するネットワークでは ff:ff:ff:ff:ff)、マルチキャスト アドレス (IEEE MAC-48 アドレスを使用するネットワークでは「グループ」ビットが設定されている)、またはそれが存在するアダプタのアドレス受け取った。「任意の」デバイス自体を無差別モードにすることはできないため、「任意の」デバイスで無差別に受信されたパケットを検出したことは少し驚くべきことですが、おそらく、そのパケットを受信した特定のインターフェイスが無差別モードであった可能性があります。他の理由で。

于 2011-09-28T20:22:25.690 に答える