tcpdump(1)


LAN上を流れているパケットを(直接自分宛てではない)キャプチャリング
するコマンド。
tcpdumpは仮想デバイスである "バークレーパケットフィルタ"(bpf(4))
を使い、ネットワークを流れるパケットを取り込みます。

起動方法
tcpdump [条件式]

条件式を省略すると、すべてのパケットのヘッダがダンプ
されます。

tcpdump host ホスト
とすると、送信元、あるいはあて先が指定したホストのパ
ケットのみをダンプします。
条件式には、ホストの指定以外にも、ポート番号やパケット
の長さなど、いろいろな条件を設定することができます。
さらに、andやorなどの演算子を使って、より複雑な指定
をすることも可能です。

ホスト指定を使って、192.168.1.1から192.268.1.2へftpを
をかけたときのパケットの流れをダンプした場合の実行例を
示します。

# tcpdump host 192.168.1.1
tcpdump: listing on ed0
05:07:32.147864 arp who-has 192.168.1.2 (2a:df:7e:76:ed:a7) tell 192.168.1.1
05:07:32.148188 arp reply 192.168.1.2 is-at 8:0:0:5:72:54
05:07:32.148639 192.168.1.1.1287 > 192.168.1.2.ftp: s 205586432:205586432(0)
        win 2048 
05:07:32.149452 192.168.1.2.ftp > 192.168.1.1.1287: s 1210561451:1210561451(0)
        ack 205586433 win 17520  (DF)
05:07:32.150177 192.168.1.1.1287 > 192.168.1.2.ftp: . ack 1 win 2048
05:07:32.243534 192.168.1.2.ftp > 192.168.1.1.1287: P 1:56(55) ack 1 win 17520
        (DF) [tos 0x10]
05:07:32.738075 192.168.1.1.1287 > 192.168.1.2.ftp: . ack 56 win 1993

1行目で、192.168.1.1は192.168.1.2のEthernetアドレスを
調べるためにarpの問い合わせを行っている。
2行目で、その問い合わせに対する返答が送られています。
3行目で、192.168.1.1はポート1287を使って、192.168.1.2
のftpポートへパケットを送信しています。また、この行は
このパケットにはSYNフラグが設定されていて("s")、パケット
パケットのシーケンス番号は205586432であり、データが含ま
れていない("205586432:205586432(0)")ことを示しています。
また、このパケットの有効な受信ウィンドウの大きさは2048で
あり("win2048")、1460バイトの最大セグメントサイズ要求を
行うオプションがついている("")ことがわかる。
4行目のパケットでは、パケットにはackが含まれており("ack")
フラグメント不可フラグが設定されている("(DF)")ことがわかり
ます。
最初の14バイトはEthernetヘッダで、6バイトの終点アドレス
と始点アドレス、2バイトのタイプが並んでいます。
その次は、IPヘッダが続きます、最初の0x45から、IPバージョン
が4、IPヘッダ長が5ワードがわかる。
次にTCPヘッダが来ます、TCPヘッダには、始点ポート番号、終点
ポート番号などが並んでおり、192.168.1.2の21番(0x0015,ftp)
ポートから、192.168.1.1の1287番(0x0507)ポートへのパケット
であることがわかる。

Windows95&WindowsNTの場合

Windowsには、相当コマンドがありません。サードパーティのツール
を使えば可能ですし、BackOfficeのSystem Management Server
でも簡易ネットワークモニタリングの機能はあります。

一つ前へ