2011年7月13日水曜日

tsharkでパケットキャプチャ

Ciscoのスイッチに大量のパケットが送られているようでネットワーク帯域のほとんどを消費してしまい、ネットワークが非常に遅くなってしまった。
どんなパケットが送られてきているのか調べるためにwiresharkのCUI版、tsharkでキャプチャしてみた。

まずはスイッチ上での設定。
FastEther0/1のポートが本番稼動しているが、そこにキャプチャ用のサーバを入れて、というわけにはいかないので、monitorコマンドを使用。
空いている10番ポートに同じパケットが流れるようにする
monitor session 1 source interface Fa0/1
monitor session 1 destination interface Fa0/10
キャプチャするサーバのeth1にはアドレスも何も振らず10番ポートと接続。
これで準備完了。
$ tshark -i eth1 -t ad -w <ファイル名>
これで指定したファイルにキャプチャが取られて行く。
止めないと永遠にキャプチャし続けるので適当なところでCtrl+Cで打ち切る。

キャプチャしたファイルを読み込むには
$ tshark -r <ファイル名>
で読める。

ただダラダラ読んでも解析が難しい…。
ログ集計スクリプトを組まなくちゃダメかなぁ、と思ったらちゃんとtsharkに統計機能があった!

というわけで、
$ tshark -r <ファイル名> -z conv,ip            # IPごとに集計
$ tshark -r <ファイル名> -z io,phs             # プロトコル階層で集計
$ tshark -r <ファイル名> -z io,stat,600,eth    # 600秒ごとにethフレームとして集計
とすればログのあとに統計情報が出てくる。
これは便利!

tsharkに関してはこちらを参考にしました。
集計の部分がすごく分かりやすい!
http://assimane.blog.so-net.ne.jp/2011-01-08

0 件のコメント: