web-dev-qa-db-ja.com

大規模なパケットの重複

ショートバージョン:特定のサーバーが大量のパケットの複製を受信するという問題が発生しました。多くの障害を発見した後、問題の原因はスイッチがすべてのポートにパケットを送信し(つまり、ハブのように機能し)、3台のルーターがパケットを反射していることがわかりました。ルーターがパケットを反射して戻すと、スイッチは再びパケットを1つおきのポートに送信し、他のルーターによって再び反射されます。これは、TTLが0にデクリメントされるまで続きます。私が理解していないのは、ルーターがパケットを送り返した理由です。destmacアドレスがそうでないように、ルーターがパケットをドロップするべきではありません。 Macアドレスと一致しますか?

ロングバージョン:スイッチとVMに接続されているルーターが3つ(A、B、C)あるとします。 udpパケットは、ルーターAからVM宛てに到着します。この段階では、TTLは60です。スイッチにはVMのMACアドレスがないため、他のすべてのポートからパケットがフラッディングされます。ルーターBとCはパケットを受信し、IPアドレスが同じポート上でTTLをデクリメントし、同じポートからパケットを送り返します。これで、59のTTLの2つのパケットができました。スイッチが再びフラッディングします。 2つのパケットが出力され、他の2つのルーターに反映されるため、TTL of 58)の4つのパケットになります。パケットが開始されるまで、57で8、56で16などになります。私のVMは、これらすべてのパケットのコピーを受信して​​います。VMは受信するだけなので、スイッチに入ることができません。 MACテーブル。ARPはここで役立ちますが、タイムアウトはMacテーブルのスイッチタイムアウトよりも大きかったです。これを下げると問題は解決しましたが、ルーターがパケットを反映している理由については疑問が残ります。これは標準的な動作ではないことを理解しています。 。

編集:wiresharkキャプチャからの詳細(Macの最後の2桁のみを表示):

MAC    TTL
95     60

99     59
EC     59

95     58
EC     58
95     58
99     58

then 8 packets at 57 etc

95で終わるMACアドレスから着信し、他の2つのルーターでバウンスし、それらのパケットが両方とも他の2つでバウンスして、4つのパケットを作成する様子をご覧ください。

4
MikeKulls

あなたが説明しているのは、スイッチのCAMテーブルがいっぱいになるとどうなるかということです。この場合、スイッチはMACアドレスを学習できなくなり、すべてのポートにパケットを転送します。これがアンマネージドスイッチの問題であるかどうかを判断するのは難しいかもしれませんが、マネージドスイッチを使用するとCAMテーブルを表示できるはずです。

この質問にも役立つのは、ネットワークの図です。

編集:

追加された図から、2つの問題があることがわかります。最初のものは、どこに行くべきかわからない場合、スイッチがすべてのポートからパケットを転送しようとしている場所に残ります。ログをチェックして、MACアドレスがテーブルから削除されている理由を確認してください。

2番目の問題は、ルーターがパケットを受信して​​スイッチに送り返し、スイッチがすべてのポート(ポートを除く)にパケットを送信することです。デフォルトルート0.0.0.0で設定された特定のポートはありますか?

4
ponsfonze