Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

フローの再マッピングを最小限に抑えるための復元力のあるハッシュの使用

ネットワーク エンドポイント間の展開では、確立された接続と、関連するレイヤー 2 およびレイヤー 3 パスを保持する必要があります。ネットワーク デバイスやサーバーの障害など、ネットワークに何らかの変更が発生した場合、パケットは新しいパスを取ります。

復元力のあるハッシュは、ネットワークの変更の影響を軽減します。レジリエント ハッシュを使用する各 ECMP には、負荷分散テーブル(マクロフロー テーブルとも呼ばれる)の 256 エントリ領域が割り当てられます。テーブル内の各エントリには、そのマクロフローに割り当てられたメンバーリンク ID が格納されます。

レジリエントハッシュは、以下のように機能します。

  • 受信パケットをこれらのマクロフローエントリまたはバケットの1つにハッシュします。

  • 次に、ECMP グループ内のパスにパケットをリンクします。

各メンバーリンク/パスを表すために「バスケット」を使用する場合、回復力のあるハッシュ操作は、バスケットの1つにバケット(マクロフロー)を入れるものとしてモデル化できます。

ECMP グループのバケットが N 個でパスが P 個の場合、以下のシーケンスを使用します。

  1. 最初のバケットマッピングは、ラウンドロビン方式を使用して生成されます。したがって、すべてのバケットは、ECMP グループ メンバー間でほぼ均等(N/P)に分散されます。その後、バケットはパスの追加または削除イベントに基づいて移動します。

    N=64 バケットおよび P=4 パスの場合、64 個のバケットすべてをラウンドロビン方式で分散します。パスが 4 つあるので、スタックは 4 つあります。各スタックは 1 つのパスに対応します。各スタックのバケット数は同じで、N/P=16です。

    Last_processed_path= 0(アルゴリズムのステップ5を参照)。

  2. パスの障害や削除が発生した場合、障害が発生したパス/スタックから突然すべてのバケットを削除し、循環ラウンドロビン方式で残りのパス/スタックにプッシュします。

    パス 3 (上の画像のスタック 3) を削除する場合は、スタック 3 (下図のオレンジ色) のすべてのバケットを残りのスタックに移動する必要があります。

  3. パスが追加された場合は、循環ラウンドロビン方式で既存のパスからN/(P+1)バケットを突然削除し、新しく追加されたパス/スタックにプッシュします。

    新しいパスを追加する場合は、既存のスタック (スタック 0、1、2) から N/P+1=64/4=16 バケットを移動する必要があります。オレンジ色のバケツはすべてスタック3に戻り、青いスタックは移動されず、そのまま残ります。

    Last_processed_path= 0

  4. ステップ 2 とステップ 3 の円形ラウンドロビン方向は逆です。循環ラウンドロビンが開始する最初のスタックを決定することが重要です。ステップ 2 の開始スタック インデックスとステップ 3 の開始スタックの前に last_processed_path インデックス ポインターを保持します。

  5. 5. last_processed_pathを設定するには、次の手順を実行します。

    • ステップ 2 のようにバケットをプッシュすると、 last_processed_path は最後のバケットをプッシュした最後のスタックの次のスタックです。

    • ステップ 3 のようにバケットを削除すると、バケットが削除された最後のスタックが last_processed_path になります。

レジリエント ハッシュの制限と注意事項

  • レジリエントハッシュは、イコールコストBGPルートベースのECMPグループでのみサポートされています。BGPルートよりも優先度の高い他のプロトコルやスタティックルートを設定した場合、レジリエントハッシュはサポートされません。

  • 復元力のあるハッシュは、混合速度LAGではサポートされていません。

  • 128 方向の ECMP 復元力のあるハッシュは、現在の設計ではサポートされていません。64方向ECMP復元力のあるハッシュのみがサポートされます。

  • 混合レート集約イーサネット(AE)と適応型ロードバランシング(ALB)AEは、現在の復元力のあるハッシュ設計ではサポートされていません。

ECMP の復元力のあるハッシュの設定

  1. 選択した ECMP ルートの強靭なハッシュを有効にします。1 つまたは複数の宛先プレフィックスに受信ルートを一致させる別のルーティングポリシーを作成します。 ルーティングポリシーのデフォルトアクションの設定を参照してください。
  2. BGP 設定階層の必要なレベル(グローバル、グループ、またはピア)にポリシーを適用します。
    手記:ピアレベルのimportまたはexportステートメントは、グループのimportまたはexportステートメントを上書きします。グループレベルのインポートまたはエクスポートステートメントは、グローバルなBGPインポートまたはエクスポートステートメントを上書きします。重要な点は、上記のような設定では、最も明示的なポリシーのみが適用されることです。ネイバーレベルのポリシーは、グループレベルのポリシーよりも明示的であり、グループレベルのポリシーは、グローバルポリシーよりも明示的です。(上記の例では、説明のために同じポリシーが各レベルで適用されていますが、結果は影響を受けません)。

    ネイバーに 3 つのポリシーすべての機能を実行させる必要がある場合は、次のいずれかを実行します。

    • 他の 3 つの機能を含む新しいネイバーレベルのポリシーを記述して適用できます。

    • 既存の 3 つのポリシーすべてをチェーンとして、このネイバーに適用できます。

  3. [オプション] ハッシュキー計算に使用するパケットフィールドを選択します。次の例は、PTX10001-36MR 22.2R1.12-Junos OS Evolvedのものです。

    以下のコマンドを使用して、パケットフィールドを選択します。

    1. user@router# set forwarding-options enhanced-hash-key family family

      ここでは、家族は inetinet6mpls、または multiservice 値を取ることができます。

    2. user@router# set forwarding-options enhanced-hash-key hash-seed

    3. user@router# set forwarding-options enhanced-hash-key resilient-hash-seed

    手記:

    デフォルトでは、ほとんどのフィールドがロードバランシングに対して有効になっています。forwarding-options enhanced-hash-key family で何かを設定した場合、復元力のあるハッシュ キーと通常の LAG および ECMP ロード バランシング キーの生成の両方に影響します。

集合型イーサネットインターフェイスの復元力のあるハッシュの設定

次のコマンドを使用して、を設定します。
user@router# set interface ae1 aggregated-ehter-options resilient-hash