web-dev-qa-db-ja.com

tcpdumpがフリーズし、インターネットに接続しないと正しくキャプチャされない

インターネット接続がなく、ローカルコンピューター間のネットワークをキャプチャしたい場合、tcpdumpは次のように動作します。

1.次のコマンドを使用してtcpdumpを起動します。

tcpdump -ixenbr0

2.実行後、tcpdumpは約1〜2分間フリーズモードになり、その後、いくつかのパケットをキャプチャして再びフリーズし、同じことが何度も何度もキャプチャされます。

Ctrl + cでtcpdumpを終了したり、killall tcpdumpコマンドを使用してtcpdumpプロセスを強制終了したりすることもできません。

この問題は、1台だけでなく、ネットワーク内のすべてのコンピューターで発生します。

しかし、ネットワークをインターネットに接続すると、tcpdumpは問題なく機能します。インターネット接続ですべてが大丈夫です。私には非常に奇妙に思えます。

-lも試しましたが、うまくいきませんでした。

Ubuntu14.04を使用しています。 Tcpdumpのバージョンは4.5.1です。

誰もが何が悪いのか考えていますか?

2
Michel Gokan

インターネットがないとき

.。

tcpdumpは約1〜2分間フリーズモードになり、その後、いくつかのパケットをキャプチャして再びフリーズし、同じことが何度も繰り返されます。

-wなしで実行しているため、生のパケットデータをファイルに書き込むだけでなく、パケットを分析して要約を出力します。

これは、IPパケットの場合、パケットの送信元IPアドレスと宛先IPアドレスを報告しようとすることを意味します。

-nがないと、アドレスに対応するホスト名を見つけようとします。つまり、アドレスがhostsファイルにない限り、DNSを使用して名前を見つけようとします。インターネットに接続していないが、ローカルDNSリゾルバーがインターネットDNSサーバーを検索する必要があると判断した場合、それらのサーバーに接続して、応答またはタイムアウトを待ちます。回答が得られないため、タイムアウトを待つ必要があります。

タイムアウトが発生すると、「そのアドレスのホスト名がありません」と通知され、アドレスを数値で示すパケット情報を出力するだけです。次に、次のパケットが到着したときに、itにIPアドレスがある場合、同じことが起こります。

-nはIPアドレスの名前の検索を無効にするため、タイムアウトは発生しません。

6
user137177