ネットワークエンジニアがよく使うツールと言えば、exping、teratermなどがありますが、ネットワークをメインでやっていた時は、トラブルシューティングでWireSharkを使っていました。パケットキャプチャと言えば、これですよね。


ただ、状況によってはWiresharkが使えないケースもあります。ソフトウェアをインストールできないとか、ミラーポートが設定できないとか。


そこで、便利なのがLinux、CentOS7でパケットキャプチャできるフリーツールtcmdumpがトラブル対応に便利です。


使い方は簡単で、入っていれば「tcpdump」とコマンドを実行するだけで使えますが、NICを指定しないと使えないケースもあると思いますので、オプションを紹介します。


ちなみに、「tcpdump」とコマンドがない場合は、yumなりでインストールしてください。

#yum -y install tcpdump


そして、オプションです。

[root@localhost ~]# tcpdump -h
tcpdump version 4.9.0
libpcap version 1.5.3
OpenSSL 1.0.1e-fips 11 Feb 2013
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
                [ -Q|-P in|out|inout ]
                [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
                [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
                [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
                [ -Z user ] [ expression ]


■インターフェースを指定する
まず、インターフェースの指定です。「0 packets captured」と表示される場合は、インターフェースを指定してください。


ちなみに、CentOS7 tcpdumpで0 packets capturedでパケットのキャプチャ量が増えない場合は、こんな感じです。

[root@localhost ~]# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

このまま放置していても一向に増えません。その場合は、インターフェースを指定してあげます。インターフェースの確認は「ifconfig」で行います。


[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500


ここで確認したインターフェース名をオプションの「-i」で指定すればOKです。

# tcpdump -i ens33

■パケットの内容を ASCII で表示する
リアルタイムにログを見る場合は、これがあるとかなり見やすいです。

# tcpdump -A


このツールは本当に便利なので、サーバーなどでログがあまり出力されない場合や、トラブルシューティングに使用すると非情に助かります。




コメント

コメントフォーム
評価する
  • 1
  • 2
  • 3
  • 4
  • 5
  • リセット
  • 1
  • 2
  • 3
  • 4
  • 5
  • リセット