2011-07-22 17 views
9

tcpdumpを使用すると、キャプチャのすべてのデータが表示されないようです。具体的には、フレームの先頭から6バイト離れているように見えます。なぜ誰かが理由を説明できるかどうか疑問に思っています。tcpdumpを使ってスナップショットの完全なキャプチャを確認するにはどうしたらいいですか?

説明すると、私はホストオンリーネットワーク構成でVMWare上にUbuntuインスタンスをセットアップしました。

$ ping 192.168.153.1 

を今すぐデータキャプチャし、印刷するには::私はVMWareのゲートウェイにpingを実行...私の場合には、トラフィックを生成するために期待されるように、この時点で

$ tcpdump -i eth0 -x -s 64 
... 
10:23:24.419067 IP 192.168.153.1 > ubuntu.local: ICMP echo reply, id 2959, seq 137, length 64 
    0x0000: 4500 0054 2313 4000 4001 63bf c0a8 9901 
    0x0010: c0a8 9984 0000 af80 0b8f 0089 0cb2 294e 
    0x0020: 1d64 0600 0809 0a0b 0c0d 0e0f 
10:23:25.418807 IP ubuntu.local > 192.168.153.1: ICMP echo request, id 2959, seq 138, length 64 
    0x0000: 4500 0054 0000 4000 4001 86d2 c0a8 9984 
    0x0010: c0a8 9901 0800 df7f 0b8f 008a 0db2 294e 
    0x0020: e463 0600 0809 0a0b 0c0d 0e0f 

をバイトのショーの合計数ではありません64;データリンクヘッダーが隠され、IPバイトが最初に表示されます。つまり '4500'です。データリンクヘッダーバイトを表示するには、別のxを追加します。

$ tcpdump -i eth0 -xx -s 64 
... 
10:29:29.523043 IP 192.168.153.1 > ubuntu.local: ICMP echo reply, id 2959, seq 501, length 64 
    0x0000: 000c 292a 4f6c 0050 56c0 0001 0800 4500 
    0x0010: 0054 b305 4000 4001 d3cc c0a8 9901 c0a8 
    0x0020: 9984 0000 007d 0b8f 01f5 79b3 294e 5cfa 
    0x0030: 0700 0809 0a0b 0c0d 0e0f 
10:29:30.522884 IP ubuntu.local > 192.168.153.1: ICMP echo request, id 2959, seq 502, length 64 
    0x0000: 0050 56c0 0001 000c 292a 4f6c 0800 4500 
    0x0010: 0054 0000 4000 4001 86d2 c0a8 9984 c0a8 
    0x0020: 9901 0800 f77b 0b8f 01f6 7ab3 294e 5cfa 
    0x0030: 0700 0809 0a0b 0c0d 0e0f 

さらに多くのバイトが表示されます。私は彼らがイーサネットフレームヘッダー(dest、ソースMAC + ethertype = 14バイト)の14バイトだと思います。これに対応して、IPヘッダーは14バイト下がります。

しかし、なぜまだ6バイトが欠落していますか? 58バイトしか表示されていないことに注意してください。私は64バイトが表示されることを期待していました。

答えて

5

-s0

でのtcpdumpを使用してみてください、私はこれを試してみましたが、それは私のために働いた...最小イーサネットフレームサイズがある

tcpdump -X -s0 port 21

+0

ありがとうございます。それはまたパケットの完全な尾(64よりも多くのバイト)を表示するために私のために働くが、-s0でさえ、まだ6バイトが頭から欠けているようだ。私はあなたの反応を誤解していますか? –

2

(それはあなただけ-s0を必要とする唯一の例です) 64バイト。ペイロードが小さすぎると、イーサネットはその内容を埋め込みます。 IPヘッダーの長さの合計値は、パディングの開始位置を決定するために使用されます。パディングは破棄されるため、Tcpdumpでは表示されません。

関連する問題