tcpdumpを用いてネットワークのデバッグを行う

文:Vincent Danen(TechRepublic) 翻訳校正:原井彰弘
2008-02-15 10:00:00
  • このエントリーをはてなブックマークに追加

 ネットワークパケット追跡システム「tcpdump」は非常に便利なツールである。Wiresharkのようなプログラムほど豊富な機能を備えているわけではないものの、出力されるパケットの「ダンプ」を他のプログラムに入力として渡し、ダンプの分析を行うことも可能なのである。問題が発生したときやネットワークのデバッグが必要なときには、tcpdumpはすばらしく有用なのだ。

 たとえば、80番のポートに送られてくるパケットをリアルタイムで確認したいとしよう。つまり、どこからパケットが送られてくるのか、またはどこへ送られるのかを把握したいのである。そうした場合には、以下のようなコマンドを用いればよい。

# tcpdump -i eth1 tcp port 80

 このコマンドはeth1インタフェースを監視し、80番ポートに送られてくる、または送られていくトラフィックをすべて出力する。もしそのときに、他のウェブサイトに向けて大量のデータが送信されている不審なトラフィックが見つかったとしよう。そのようなときでも、以下のようにコマンドをさらに修正すれば、80番ポートで受信するトラフィックをすべて無視して、80番ポートに送信されるトラフィックのみを監視することが可能になる。

# tcpdump -i eth1 tcp dst port 80 and src host 192.168.0.10

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

15:23:02.435235 IP localsystem.47270 > frontal2.mandriva.com.http: S 1119588236:1119588236(0) win 5840 <mss 1460,sackOK,timestamp 5110073 0,nop,wscale 2>

15:23:02.603021 IP localsystem.47270 > frontal2.mandriva.com.http: . ack 2575114973 win 1460 <nop,nop,timestamp 5110114 53440877>

...

 ちなみに、上記の例ではIPアドレス192.168.0.10はインタフェースeth1に関連づけられているIPアドレスで、frontal2.mandriva.comは接続しているリモートのアドレスである。

  • 新着記事
  • 特集
  • ブログ