Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

5組のデータを使用した、アグリゲート型イーサネットインターフェイスのステートフルロードバランシング

 

複数のフローがアグリゲートイーサネット (ae) インターフェイスから送信される場合、フローは、効果的かつ最適な負荷分散動作を実現するために、さまざまなメンバーリンクに均等に分散しなければなりません。効率的で堅牢なロードバランシングの方法を実現するために、負荷分散のたびに選択される集約型イーサネットインターフェイスバンドルのメンバーリンクが重要な役割を果たしています。リリース 13.2 R1 以前の Junos OS リリースでは、Trio ベースの FPCs (MPCs) を搭載した MX シリーズルーターでは、 aeインターフェイスバンドルのメンバーリンクまたはネクストホップ (またはその他のホップ) の選択は、同等のコストのマルチパス ECM を実現するために、バランスモードのネクストホップ選択方式と、非平衡モードのメンバーリンクまたはネクストホップ選択方式を使用して実行さリンク選択のバランスモードでは、precomputed ハッシュ値の n ビットが使用されます (2 を n の累乗で選択する必要がある場合)。この場合、unilist 内では次ホップです。メンバーリンクまたは next-hop 選択の非平衡モードでは、precomputed ハッシュで8ビットを使用してセレクターテーブル内のエントリを選択します。これは、LAG (リンクアグリゲーショングループ) またaeはバンドルのメンバーリンク id を使用してランダムに実行されます。

「バランスと不均衡」という用語は、セレクターテーブルがロードバランシングメカニズムに使用されているかどうかを示します。LAG バンドルは、不均衡モード (セレクターテーブルバランシング) を使用して、メンバーリンク間でトラフィックのバランスを取ることができます。トラフィックフローが最小限に抑えられると、次の問題が不均衡モードで発生する可能性があります。リンク選択ロジックでは、precomputed ハッシュのサブセットビットのみを利用しています。ハッシュアルゴリズムの効率に関係なく、フローの圧縮表現だけが表示されます。クロスフローの変化は非常に低いため、結果として得られるハッシュとサブセットは、すべての LAG メンバーリンクを効果的に活用するために必要な可変性を提供しません。大量のランダムな性質が、ハッシュの計算とセレクターテーブルにも存在しています。その結果、フローの数が少ないほど、選択された各子リンクに最適な負荷分散の手法から逸脱するということです。

子リンク当たりの偏差の定義

Vi = ((Ci-(M/N))) (/N)

どこ

  • Vi は、その子リンク’i’の偏差を示しています。

  • i は子リンクのメンバー/インデックスを示しています。

  • Ci は、その子リンク「i」で送信されたパケットを表します。

  • M は、その LAG バンドルで送信された総パケット数を示します。

  • N はその LAG にある子リンクの数を示します。

このような短所は、フローの数が少ない場合や、流れの変動が少ない場合に、リンクの利用率が低下し、わずかな子リンクの多くが使用されていない可能性があります。 MPC3Es と MPC4Es を除き、MX シリーズルーターには、一様な負荷分散を実行し、再調整を実行する機能がありますが、Junos OS リリース 13.2 R1 から開始しています。ロードバランシングがフローの数の変化に owing している場合、再バランシングはサポートされていません。

フローの状態を記録して維持し、それに応じてトラフィックの負荷を分散させるメカニズム。その結果、m 数のフローでは、LAG バンドルの n メンバーリンク、または ECMP リンク内の次ホップの unilist の間に配信されます。メンバーリンク間でロードを分割するこの方法は、ステートフル負荷分散と呼ばれ、5組の情報 (送信元および宛先のアドレス、プロトコル、送信元と宛先のポート) を使用します。このようなメソッドは、フローに直接マップすることも、特定のフィールドに基づいた precompute ハッシュにマッピングすることができます。その結果、各子リンクで監視された偏差が減少します。

このメカニズムは、最小数のフロー (約1000フロー未満) でのみ、効率的に機能します。より多くのフロー (1000 と1万のフロー) では、分散型の Trio ベースの負荷分散メカニズムを使用することをお勧めします。

LAG の「n」リンクが、0 ~ n-1 のリンク Id で識別されるサンプルシナリオを考えてみましょう。ハッシュテーブルまたはフローテーブルは、フローを表示するために使用されます。ハッシュキーは、フローを一意に識別するフィールドを使用して作成されます。このルックアップの結果は、フローが現在使用している link_id を識別します。各パケットに対して、フロー識別子に基づくフローテーブルが検査されます。一致するものが見つかった場合は、以前に処理または検知されたフローに属するパケットがあることを示します。リンク ID はフローに関連付けられています。一致するものが見つからない場合は、そのフローに属する最初のパケットです。リンク ID は、リンクを選択するために使用され、フローがフローテーブルに挿入されます。

ハッシュ値に基づいてフロー単位で負荷分散を可能にするper-flowには、階層レベル[edit interfaces aeX unit logical-unit-number forwarding-options load-balance-stateful]のにステートメントを追加します。デフォルトでは、Junos OS は、宛先アドレスのみをベースにしたハッシュ方式を使用して、複数の同等コストのパスが使用可能な場合に、転送の次ホップを選択します。デフォルトでは、すべてのパケット転送エンジンスロットに同じハッシュ値が割り当てられます。既存のパラメーターを使用して遅延を動的に再調整するようにロードバランスrebalance intervalアルゴリズムを設定[edit interfaces aeX unit logical-unit-number forwarding-options load-balance-stateful]するには、階層レベルでステートメントを追加します。このパラメーターは、すべての受信パケット転送エンジン (pfe) で再調整間隔の同期再調整を行うことで、定期的にトラフィックの負荷を分散します。間隔を 1 ~ 1000 フローの範囲内の値として分単位で指定できます。負荷タイプを設定するには、 load-type (low | medium | high)[edit interfaces aeX unit logical-unit-number forwarding-options load-balance-stateful]階層レベルでステートメントを指定します。

このstateful per-flowオプションを選択すると、AE バンドルで負荷分散機能が有効になります。このrebalanceオプションは、指定した間隔で負荷分散状態をクリアします。このloadオプションは、使用する適切なメモリパターンについてパケット転送エンジンに通知します。この集約型イーサネットインターフェイスでフローするフローの数が少なく (1 ~ 100 フロー)、そのlowキーワードを使用できます。比較的高いフロー (100 と1000フローの間) では、 mediumキーワードを使用できます。 largeまた、このキーワードを使用して最大フロー (1000 と1万フローの間) を実行することもできます。各キーワードで効果的なロードバランシングを実現するためのフローの概数は、微分係数です。

こちらの clear interfaces aeX unit logical-unit-number forwarding-options load-balance stateコマンドは、ハードウェアレベルで負荷分散状態をクリアし、クリーンアップされた空の状態から再調整できるようにします。このクリア状態は、このコマンドを使用した場合にのみトリガーされます。このclear interfaces aggregate forwarding-options load-balance stateコマンドは、アグリゲート型イーサネットインターフェイスの負荷分散の状態をすべてクリアし、新たに再作成します。

Aggegated イーサネットインターフェイスまたは LAG バンドルでステートフル負荷分散を構成するためのガイドライン

次の点に注意して、集約型イーサネットインターフェイスに対してステートフルな負荷分散を構成します。

  • 子リンクが削除または追加されると、新しい集約セレクターが選択され、新しいセレクターにトラフィックフローが流れます。セレクターが空であるため、フローがセレクターに入力されます。この動作により、古い状態が失われるため、フローの再配布が発生します。これは、フロー単位でのステートフルな負荷分散を可能にすることなく、既存の動作です。

  • 受信トラフィックが含む MPC1E、/MPC2E/、MPC3E-3D、MPC5E、MPC6E ラインカードに到着した場合、AE インターフェイスでのステートフルな、フローごとの負荷分散機能を実現します。その他のタイプのラインカードは、この機能を rigger しません。この機能をサポートしていない場合、適切な CLI エラーが表示されます。

    受信ラインカードを MPC として、送信ラインカードを MPC または DPC として使用すると、この機能が正常に動作します。受信ラインカードが DPC で、送信ラインカードが DPC または MPC である場合、ステートフルな負荷分散はサポートされません。

  • マルチキャストトラフィック (ネイティブ/フラッド) では、この機能はサポートされていません。

  • 再バランスオプションを有効にするか、負荷分散状態をクリアすると、トラフィックフロー用にさまざまなリンクセットを選択できるようになるため、アクティブなフローでパケットの並べ替えが行われる可能性があります。

  • 機能性能は高いのですが、大量のラインカードメモリを消費しています。およそ、4000の論理インタフェースまたは16個のアグリゲート型イーサネット論理インタフェースが、この機能をサポートしている MPCs で有効にすることができます。ただし、パケット転送エンジンハードウェアメモリが少ない場合は、利用可能なメモリに応じて、デフォルトのロードバランシングメカニズムにフォールバックします。このような状況では、システムロギングメッセージが生成され、ルーティングエンジンに送られます。ステートフルな負荷分散をサポートする AE インターフェイスの数の制限は存在しません。制限はラインカードによって決定されます。

  • トラフィックフローが頻繁に期限切れになると、デバイスは負荷分散状態を削除または更新する必要があります。その結果、適切なロードバランシングを実現するには、再バランシングを構成するか、定期的に clear コマンドを実行する必要があります。それ以外の場合は、トラフィックスキューが発生する可能性があります。子リンクがダウンしたり、移動したりすると、既存フローの変更は行われません。このような状況では、パケットの並べ替えを回避します。新しいフローは、発生した子リンクを取得します。負荷分散をあまり効果のないものにしても、ロードバランスの状態をクリアしたり、再調整機能を使用してハードウェアの状態を自動クリアランスにすることができます。再バランシング機能を構成すると、トラフィックフローがさまざまなリンクにリダイレクトされ、パケットの並べ替えが発生する可能性があります。

Release History Table
リリース
説明
MPC3Es と MPC4Es を除き、MX シリーズルーターには、一様な負荷分散を実行し、再調整を実行する機能がありますが、Junos OS リリース 13.2 R1 から開始しています。