フローの再マッピングを最小限に抑えるためのリシリアントハッシュの使用
ネットワーク エンドポイント間の展開では、確立された接続と、関連するレイヤー 2 およびレイヤー 3 パスを保持する必要があります。ネットワーキングデバイスやサーバーの障害など、ネットワークに変更が加えられた場合、パケットは新しいパスをたどります。
耐障害性に優れたハッシュにより、ネットワーク変更の影響が軽減されます。耐障害性に優れたハッシュを使用する各 ECMP には、負荷分散テーブル (マクロフロー テーブルとも呼ばれます) で 256 エントリの領域が割り当てられます。テーブル内の各エントリには、そのマクロフローに割り当てられたメンバーリンク ID が格納されます。
回復力のあるハッシュは、次のように機能します。
-
受信パケットをこれらのマクロフローエントリまたはバケットのいずれかにハッシュします。
-
その後、ECMP グループのパスにパケットをリンクします。
各メンバーのリンク/パスを表すために「バスケット」を使用する場合、回復力のあるハッシュ操作は、バスケットの1つにバケット(マクロフロー)を入れるようにモデル化できます。
ECMP グループに N 個のバケットと P 個のパスがある場合は、次のシーケンスを使用します。
-
最初のバケットマッピングは、ラウンドロビン方式を使用して生成されます。したがって、すべてのバケットは ECMP グループ メンバー間でほぼ均等に(N/P)分散されます。その後、バケットはパスの追加イベントまたは削除イベントに基づいて移動します。
N=64 バケットおよび P=4 パスの場合、64 個のバケットすべてをラウンドロビン方式で配布します。4つのパスがあるので、4つのスタックがあります。各スタックは 1 つのパスに対応します。各スタックのバケット数は同じで、N/P=16 です。
Last_processed_path = 0 (アルゴリズムのステップ 5 を参照)。
-
パスの障害または削除が発生した場合は、障害が発生したパス/スタックからすべてのバケットを突然削除し、循環ラウンドロビン方式で残りのパス/スタックにプッシュします。
パス3(上の画像のスタック3)を削除した場合、スタック3(下図のオレンジ色)から残りのスタックにすべてのバケットを移動する必要があります。
-
パス追加があった場合、循環ラウンドロビン方式で既存のパスから突然N/(P+1)バケットを削除し、新しく追加したパス/スタックにプッシュします。
新しいパスを追加する場合は、既存のスタック(スタック 0、1、2)から N/P+1=64/4=16 バケットを移動する必要があります。オレンジ色のバケットはすべてスタック 3 に戻り、青色のスタックは移動されず、そのまま残ります。
Last_processed_path= 0
-
ステップ2とステップ3の円形ラウンドロビン方向は反対です。循環ラウンドロビンが開始される最初のスタックを決定することが重要です。ステップ 2 の開始スタックインデックスを提供するインデックスポインタ
last_processed_path
およびステップ 3 の開始スタックの前に保持します。 -
5.
last_processed_path
を設定するには、次の操作を行います。-
ステップ 2 のようにバケットをプッシュすると、
last_processed_path
、最後のバケットをプッシュした最後のスタックの次のスタックになります。 -
ステップ 3 のようにバケットを削除すると、バケットが削除された最後のスタックが
last_processed_path
になります。
-
回復力のあるハッシュの制限と注意事項
-
耐障害性ハッシュは、ECMP ベースの等価コスト BGP ルートでのみサポートされます。BGP ルートよりも優先度の高い他のプロトコルやスタティックルートを設定した場合、復元力のあるハッシュはサポートされません。
-
耐障害性ハッシュは、混合速度LAGではサポートされていません。
-
128ウェイECMP復元力ハッシュは、現在のデザインではサポートされていません。64ウェイECMP復元力ハッシュのみがサポートされています。
-
混合レート集合型イーサネット(AE)と適応型ロード バランシング(ALB)AEは、現在の耐障害性に優れたハッシュ設計ではサポートされていません。
ECMP の復元力のあるハッシュの設定
集合型イーサネットインターフェイスの耐障害性ハッシュの設定
user@router# set interface ae1 aggregated-ehter-options resilient-hash