+ -------- + |ホストA | + ---- + --- + | eth0(AA:AA:AA:AA:AA:AA) | | + ---- + ----- + |スイッチ1 | (layer2/3) + ---- + ----- + | + ---- + ----- + |スイッチ2 | + ---- + ----- + | + ---------- + ------- --- + + ------------------------- +スイッチ3+ ----------- -------------- + | + ---- + ----------- + ---- + | | | | | | | | | | eth0(B0:B0:B0:B0:B0:B0)| | eth4(B4:B4:B4:B4:B4:B4)| | + ---- + ----------- + ---- + | | |ホストB | | | + ---- + ----------- + ---- + | | eth1(B1:B1:B1:B1:B1:B1)| | eth5(B5:B5:B5:B5:B5:B5)| | | | | | | | | + ------------------------------ + + ----------- ------------------- +
私はこれを長い間研究してきましたが、答えは見つかりませんでした。ドキュメントには、Linuxインターフェイスボンディングのモード6(balance-alb)を使用する場合、スイッチを変更する必要はないと記載されています。この動作は、ホストBがeth5からそれ以上パケットを送信しないために発生しますが、通常の状況では送信されると予想されますか? 1つの解決策は、ホストBにpingを実行してブリッジテーブルエントリがタイムアウトしないようにするcronジョブを設定することですが、これは汚いハックのようです。
はい-これは予想されます。 NICホストへのボンディング、ユニキャストフラッディングで、かなり一般的な問題が発生しました。ご指摘のとおり、問題のハードウェアアドレスのスイッチのタイマーは、これらのアドレスから送信されたフレームがないためです。観察されています。
一般的なオプションは次のとおりです-
1.)アドレステーブルのタイムアウトが長くなります。混合L2/L3スイッチでは、ARPタイマーとCAMタイマーを互いに近づける必要があります(CAMタイマーは数秒長く実行されます)。この推奨事項は、残りの構成に関係なく有効です。 L2スイッチでは、タイマーは通常、あまり問題なく長く設定できます。とはいえ、タイマーを完全に無効にしない限り、他のアドレスからの何らかのトラフィックソーシングがなければ、最終的には同じ状況に戻ります。
2.)問題のスイッチ(残念ながら、図のすべてのスイッチ)にMACアドレスをハードコーディングすることができます。これは、いくつかの理由で明らかに最適ではありません。
3.)Linux側のボンディングモードを、共通ソースMACを使用するモード(802.3ad/LACPなど)に変更します。スイッチがサポートしている場合、これには多くの操作上の利点があります。
4.)各インターフェイスからcronジョブを介して gratuitous arps を生成します。発振状態を防ぐために、さまざまなインターフェイスにダミーIPが必要になる場合があります(つまり、ホストのIPがさまざまなハードウェアアドレスを循環します)。
5.)トラフィックの問題の場合は、10GEにアクセスしてください。 (申し訳ありません-そこにそれを投げなければなりませんでした)
LACPルートはおそらく最も一般的でサポート可能であり、スイッチは、さまざまなリンク間でサーバーへのインバウンドトラフィックのバランスをかなり均等にするように構成できます。それに失敗すると、Gratuitousarpオプションを統合するのが最も簡単になると思います。