2つのWANインターフェイスと1つのLANを備えたWebプロキシとして機能するCentOS 5サーバー上のトラフィックをキャプチャする必要があります。プロキシの奇妙な問題をトラブルシューティングするために、会話全体をキャプチャしたいと思います。外部接続は2つのWAN=インターフェース間でバランスが取れているので、すべてのインターフェースで同時にキャプチャーすることは可能だろうかと思います。
以前にtcpdumpを使用したことがありますが、一度に1つのインターフェースしか許可しません。 3つの並列プロセスを起動してすべてのインターフェイスでキャプチャできますが、最終的に3つの異なるキャプチャファイルができます。
これを行う正しい方法は何ですか?
Tcpdumpのmanページによると:
2.2以降のカーネルを備えたLinuxシステムでは、「 ‘any」というインターフェイス引数を使用して、すべてのインターフェイスからパケットをキャプチャできます。 「any」デバイスでのキャプチャは、プロミスキャスモードでは行われないことに注意してください。
したがって、実行できるはずです:tcpdump -i any
すべてのインターフェースのデータを同時に1つのキャプチャファイルにキャプチャするため。
私がこれに取り組む方法は、各インターフェイスで個別のファイルにダンプし、それらをマージすることです。 anyインターフェイスには、キャプチャを汚染する可能性のあるトラフィックも含まれます。
これにより、複雑なフィルタリングを行わなくても、インターフェイスごとのパケットストリームを分析できます。
私は3つの端末でキャプチャするか、&でコマンドをバックグラウンドでキャプチャします
フラグ-nnは速度のためにdns解決をオフにし、-s 0はパケット全体を保存し、-wはファイルに書き込みます。
tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump
次に、wiresharkのmergecapコマンドを使用してファイルをマージします。
mergecap -w merged.dump wan0.dump wan1.dump lan0.dump
すべてのインターフェイスでtcpdumpをキャプチャするには、次を使用します。
tcpdump -i any