Linuxでの奇妙な一時的なネットワーク停止


8

今から1週間後に気づき、答えが見つからないという非常に迷惑な問題に直面しています。ネットワークが突然応答を停止し、通常はちょうど25秒後に戻ってきます。私はカーネル3.10.4を使用していましたが、3.11-rc4に移行して何かが変更されたかどうかを確認しましたが、動作は同じです。また、通常のWebサーフィンは「バースト」状態であり、停止は完全にランダムであるため、問題を特定するのは難しいため、この問題が以前のカーネルにも存在していたとは本当に言えません(常にカスタムを使用しますが、 kernel.orgからのパッチされていないカーネル、すべて自分でコンパイルしたもの)

私は、カーネルがいずれかの犯人である伝えることはできませんが、私は、システムログには何の手がかりがないと言うことができます(私は両方を確認/var/log/syslogし、/var/log/messagesそして珍しい何もありません)、そのハードウェアは、問題のショーのために、故障していないようです私のネットワークカードのいずれかを使用してアップ:

lspci output:

02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
04:00.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 30)

私はすでにイーサネットスイッチポートを交換しようとしましたが、私以外は誰も問題を抱えていません(私たちが同様のマシンを使用していますが、私がLinuxを使用しているのは私だけなので、それについて悪名高い冗談を言わなければなりませんでした)まあ... hehe)。

私は自分のマシンでWiresharkを実行し、ゲートウェイと同じネットワークセグメント上の別のマシンにpingを送信し続けました。次に、ネットワーク障害の最初の兆候でそれをチェックし、ゲートウェイがpingの応答を停止したことを確認しましたが、他のマシンはまだ正常に応答していました。他の場合には、他のマシンが応答を停止し、ゲートウェイが正常である場合もあれば、両方が応答を停止する場合もあります。他に何をすべきかわからないので、システムログは完全に正常であるため、これをさらにデバッグする方法についていくつかのヘルプまたはヒントをお願いします。

私は自分のカーネル構成ファイルと、wiresharkからのキャプチャファイルを使用して、状況を示しています。誰かがケースを理解するのに便利だと思う場合は、ここまたはペーストビンサイトに投稿できます。使用する詳細レベルを教えてください(生データなしのパケットレベルで十分でしょう)。



これは、IPアドレスの競合に非常によく似ています(つまり、他のマシンには同じIPアドレスが割り当てられています)。他のホストは、最近受信したARP応答に応じて、前後にスイングします。
Gilles「SO-邪悪なことをやめよう」

Gilles、私のIPはネットワーク上で一意であると確信していますが、それが発生する可能性があるとしても、1つのホストが正常にpingしているのに、もう1つのホストがpingしていない(同時にpingされている)とは説明できないと思います。同意しない?
2013

@ギレス、あなたは正しかった。今日、誰かの携帯電話がDHCP割り当てを通じて私のIPを使用していることを発見しました(私のIPは修正されていますが、DHCPプールはそれにオーバーラップしていました)。先ほど述べたように、最初のホストに到達できないときに別のホストにpingを実行できるはずだったので、最初はこの可能性を破棄しましたが、今日はすべてが停止し、別のNICからpingされているIPがあったときに、すぐにIPを変更しました。私がそれを受け入れることができるように、コメントを回答に移動していただけませんか?とにかく、あなたは本当に最初にそれに答えました。ありがとう!
クラウディオ

回答:


10

症状は、IPアドレスの競合と一致しています。マシンと同じネットワーク上の他のマシンが同じIPアドレスを使用しようとすると、IPアドレスの競合が発生します。

ローカルリンクネットワークでは、アドレッシングはMACアドレスに基づいています。すべてのイーサネットカードには独自のMACアドレスがあります(全体的な設定ミスや悪意を除く)。IPパケットの送信先を決定するルーターは、すべてのポートでターゲットIPアドレスのARP要求を送信します。そのメッセージは、「誰が持っている」と呼ばれることもあります。ルーターは、このIPアドレスの原因となっているピアを見つけようとしています。ルータは、MACアドレスを含む応答を受信すると、IPパケットを含むイーサネットフレーム(イーサネットパケット)を作成して、そのMACアドレスに送信できます。この交換にはしばらく時間がかかるため、ルーターは最新のARP情報のキャッシュを保持します。(他のタイプのARPメッセージがありますが、ここで説明したことは、現在の問題を理解するには十分です。)

つまり、ルーターは、IPパケットの送信先となる各IPアドレスがどの物理デバイスにあるかを知る必要があります。では、2つのデバイスが同じIPアドレスを要求するとどうなりますか?ルータはデバイスの1つから応答を受信し、それ以降、対応するキャッシュエントリが期限切れになるまで、このIPアドレスがそのデバイスに属していると判断します。キャッシュエントリの有効期限が切れると、ルーターは新しいARP要求を送信し、他のデバイスは今回より速く応答します。これは、そのような状況が不安定である理由を説明しています。1分間、ルーターがあなたに話しかけ、次の1分間は、他の人に話しかけています。

継続的に誰かにpingを送信すると、ルーターはほぼ常にARPキャッシュにIPアドレスを保持します。したがって、pingを実行している間、他の人がキャッシュ内であなたを置き換えることができる小さなウィンドウしかありません(キャッシュエントリの期限が切れてから、次のpingが来る前に)。そのため、問題を観察することで問題がほとんど解消され、問題が何であるかを理解するまでイライラすることがあります。

あなたのケースでは、ローカルルーターがエントリをキャッシュに25秒間保持しているようです。キャッシュにいるときは、25秒間有効です。それから時々、他の男がランダムに見える瞬間に来て、あなたは25秒間それから離れます。

同じローカルリンク上の複数のマシンに接続しようとすると、それぞれに独自のARPテーブルがあるため、1つのマシンがIPアドレスを所有していると判断し、別のマシンが他の人が実行していると判断して、一貫性のない結果が観察される場合があります。

ハイエンドルーターはIPアドレスの競合をログに記録するため、このような問題が発生していると思われる場合は、システム管理者に相談してください。まず、使用してはいけないIPアドレスを使用しようとしているのが自分のマシンではないことを確認してください。


1
ところでarping、あなたのIPアドレスをARPにすることで、重複を探すために使用することもできます。応答がないはずです。または、別のマシンから実行すると、両方の応答が表示されます。
derobert 2013

1

では/etc/resolv.conf、「nameserver」エントリが2つあることをお勧めします。最初のエントリは、ダウンしているか、定期的に到達できない、またはダウンしているDNSサーバーを参照しています。libcのリゾルバーコードは、最初のネームサーバーのIPアドレスを試し、タイムアウトを取得してから、2番目のネームサーバーのIPアドレスを試し、成功します。

これをテストするには、「nameserver」のIPアドレスを、/etc/resolv.confGoogleのパブリックDNSサーバーである8.8.8.8だけに置き換えることができます。停止が発生しない場合は、ネームサーバーに問題があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.