フロー単位のロード バランシングの設定
Junos OS では、ルーティング ポリシー設定で [ロード バランス フロー単位] オプションを設定することで、 フロー単位のロード バランシングを有効にします。既存の パケット単位の負荷分散 オプションは、Junos OSおよびJunos OS Evolvedソフトウェアでもサポートされていることに注意してください。
アクティブなルートの同じ宛先へのイコールコスト パスが複数ある場合、Junos OS はデフォルトでハッシュ アルゴリズムを使用して、ネクストホップ アドレスの 1 つを選択し、転送テーブルにインストールします。フロー単位のロード バランシングを使用すると、宛先宛先のすべてのネクストホップ アドレスが転送テーブルにインストールされます。こうして負荷が分散され、ルート間の複数のパスにトラフィックを分散させることができます。
フローごとのロード バランシングを設定するには、 load-balance per-packet
階層レベルの ステートメントのオプションとして route-filter
または load-balance per-flow
のいずれかのステートメントを含めます[edit policy-options policy-statement policy-name term term-name from]
。
または load-balance per-flow
オプションを使用できload-balance per-packet
、どちらも同じ機能を備えています。
[edit policy-options policy-statement policy-name term term-name from] route-filter destination-prefix match-type { load-balance per-flow; }
[edit policy-options policy-statement policy-name term term-name then]
または階層レベルで:
[edit policy-options policy-statement policy-name term term-name then] load-balance per-flow;
設定を完了するには、ルーティング テーブルから転送テーブルにエクスポートされるルートに、 ステートメントで指定された export
リストにポリシー名を含めて、ルーティング ポリシーを適用する必要があります。
export [ policy-names ];
以下の階層レベルでこのステートメントを含めることができます。
-
[edit routing-options forwarding-table]
-
[edit logical-systems logical-system-name routing-options forwarding-table]
デフォルトでは、Junos はフローを決定する際にポート データを無視します。フロー決定にポートデータを含めるには、 階層レベルで ステートメントを含め family inet
ます [edit forwarding-options hash-key]
。
[edit forwarding-options hash-key] family inet { layer-3; layer-4; }
レイヤー 3 とレイヤー 4 の両方のステートメントを含めると、デバイスは次のレイヤー 3 とレイヤー 4 の情報を使用してロードバランシングを行います。
-
送信元 IP アドレス
-
宛先 IP アドレス
-
プロトコル
-
送信元ポート番号
-
宛先ポート番号
-
受信インターフェイス インデックス
-
サービスのIPタイプ
レイヤー 3 と レイヤー 4 のパラメーターがすべて同一の場合、デバイスはフロー内のパケットを同じインターフェイスを介して送信し、TCP および UDP フローの配信が順不同になるのを防ぐのに役立ちます。
インターネット コントロール メッセージ プロトコル(ICMP)パケットは、フィールド ロケーション オフセットがチェックサム フィールドであり、各 ping パケットが個別の「フロー」になるため、異なる方法で処理されます。IP にカプセル化できるプロトコルには、32 ビット オフセットで変化する値を持つ他のプロトコルがあります。これらのプロトコルは別のフローと見なされるため、これも問題になる可能性があります。
M シリーズ(M120 ルーターを除く)および T シリーズ ルーターでは、最初のフラグメントはフラグメント化されていないパケットと同じ負荷分散された宛先にマップされます。他のフラグメントは、他の負荷分散された宛先にマップできます。
M120 ルーターの場合のみ、すべてのフラグメントが同じ負荷分散された宛先にマッピングされます。この宛先は、フラグメント化されていないパケットの宛先と必ずしも同じではありません。
デフォルトでは、またはレイヤー3ステートメントのみを含める場合、ルーターは着信インターフェイスインデックスとパケットヘッダー内の次の レイヤー3 情報を使用して、トラフィックを負荷分散します。
-
PTX-1000
-
PTX-10002-60
-
QFX-10001-I-20C
-
QFX-10002-60C
-
QFX-10003-160C
-
QFX-10003-80C
-
Junos Evo PTXのデフォルト設定ファイル
-
Junos PTX デフォルト コンフィギュレーション ファイル
-
送信元 IP アドレス
-
宛先 IP アドレス
-
プロトコル
デフォルトでは、IP バージョン 6(IPv6)パケットは、次のレイヤー 3 およびレイヤー 4 の情報に基づいて自動的にロード バランシングされます。
-
送信元 IP アドレス
-
宛先 IP アドレス
-
プロトコル
-
送信元ポート番号
-
宛先ポート番号
-
受信インターフェイス インデックス
-
トラフィック クラス
パケット単位のロードバランシングの例
すべてのルートに対してパケット単位のロード バランシングを実行します。
[edit] policy-options { policy-statement load-balancing-policy { then { load-balance per-flow; } } } routing-options { forwarding-table { export load-balancing-policy; } }
パケット単位のロード バランシングは、限られたルート セットに対してのみ実行します。
[edit] policy-options { policy-statement load-balancing-polic { from { route-filter 192.168.10/24 orlonger; route-filter 10.114/16 orlonger; } then { load-balance per-flow; } } } routing-options { forwarding-table { export load-balancing-policy; } }
パケットごとのランダムスプレーロードバランシングを設定するには、 階層レベルで ステートメントを含め load-balance random
ます [edit policy-options policy-statement policy-name term term-name then]
。
[edit policy-options policy-statement policy-name term term-name then] load-balance random;
設定を完了するには、 階層レベルの ステートメント[edit routing-options forwarding-table]
で指定されたリストにexport
ポリシー名を含めて、ルーティング テーブルから転送テーブルにエクスポートされるルートにルーティング ポリシーを適用する必要があります
[edit routing-options forwarding-table] export [ policy-names ];