集合型イーサネットインターフェイスのロードバランシング
ロードバランシングは、メンバーリンク全体のレイヤー2で行われ、混雑することなく構成を改善し、冗長性を維持します。以下のトピックでは、ロードバランシングの概要、MACアドレスとLAGリンクに基づくロードバランシングの設定、復元力のあるハッシュによる一貫性の理解について説明します。
ロードバランシングとイーサネットリンクアグリゲーションの概要
イーサネットポートのグループに対して、リンクアグリゲーショングループ(LAG)を作成できます。レイヤー 2 ブリッジング トラフィックは、このグループのメンバー リンク間でロード バランシングされるため、冗長性だけでなく、輻輳の懸念にも魅力的な構成になっています。各LAGバンドルには、最大16個のリンクが含まれています。(プラットフォームのサポートは、インストールされたJunos OSのリリースによって異なります)。
LAGバンドルの場合、ハッシュアルゴリズムにより、LAGバンドルに入るトラフィックがバンドルのメンバーリンクにどのように配置されるかが決まります。ハッシュ アルゴリズムは、バンドル内のメンバー リンク間ですべての受信トラフィックを均等にロード バランシングすることにより、帯域幅を管理しようとします。ハッシュ アルゴリズムのハッシュ モードは、デフォルトでレイヤ 2 ペイロードに設定されています。hash-mode がレイヤー 2 ペイロードに設定されている場合、ハッシュ アルゴリズムは IPv4 および IPv6 ペイロード フィールドをハッシュに使用します。また、 payload
ステートメントを使用して、レイヤー 3 およびレイヤー 4 ヘッダーのフィールドを使用するようにレイヤー 2 トラフィックのロードバランシング ハッシュ キーを設定することもできます。ただし、ロードバランシングの動作はプラットフォーム固有であり、適切なハッシュキー設定に基づいていることに注意してください。
詳細については、 LAGリンクでの負荷分散の設定を参照してください。レイヤー2スイッチでは、1つのリンクが過剰に使用され、他のリンクが過小に使用されています。
MACアドレスに基づくロード バランシングの設定
負荷分散のためのハッシュ鍵メカニズムは、フレームの送信元や宛先アドレスなどのレイヤー 2 のメディアアクセス制御(MAC)情報を使用します。レイヤー2 MAC情報に基づいてトラフィックをロードバランシングするには、[edit forwarding-options hash-key]
または[edit chassis fpc slot number pic PIC number hash-key]
階層レベルでmultiservice
ステートメントを含めます。
multiservice { source-mac; destination-mac; payload { ip { layer3-only; layer-3 (source-ip-only | destination-ip-only); layer-4; inner-vlan-id; outer-vlan-id; } } }
Feature Expolorerを使用して、特定の機能に対するプラットフォームとリリースのサポートを確認します。
プラットフォームに関連する注意事項については、「 プラットフォーム固有の MAC アドレス ベースのロードバランシング動作 」セクションを確認します。
ハッシュ キーに宛先アドレスの MAC 情報を含めるには、 destination-mac
オプションを含めます。ハッシュ キーに送信元アドレスの MAC 情報を含めるには、 source-mac
オプションを含めます。
-
同じ送信元アドレスと宛先アドレスを持つパケットはすべて、同じパスを介して送信されます。
-
パケット単位のロードバランシングを設定して、複数のパスにわたるEVPNトラフィック フローを最適化できます。
-
集合型イーサネットメンバーリンクは、802.3ah OAMパケットの送信元MACアドレスとして物理MACアドレスを使用するようになります。
プラットフォーム固有のMACアドレスベースのロードバランシング動作
プラットホーム |
差 |
---|---|
ACXシリーズ |
ACX7000シリーズルーターは、対称ハッシュをサポートしています。たとえば、「マルチサービス」オプションで ACX7000シリーズルーターでのハッシュについては、以下の点に注意してください。
|
参照
LAGリンクでの負荷分散の設定
レイヤー 2 トラフィックの ロードバランシング ハッシュ キーは、 payload
ステートメントを使用して負荷分散を行う目的で、フレーム ペイロード内のレイヤー 3 およびレイヤー 4 ヘッダーのフィールドを使用するように設定できます。ステートメントを設定して、 レイヤー 3 (および source-ip-only または destination-ip-only パケット ヘッダー フィールド)または レイヤー 4 フィールドを参照できます。このステートメントは、 [edit forwarding-options hash-key family multiservice]
階層レベルで設定します。
レイヤー 3 またはレイヤー 4 オプション、あるいはその両方を設定できます。 source-ip-only オプションと destination-ip-only オプションは相互に排他的です。 layer-3-only
ステートメントは、MXシリーズルーターでは使用できません。
デフォルトでは、Junosに802.3adを実装すると、パケットに含まれるレイヤー3情報に基づいて、集約されたイーサネットバンドル内のメンバーリンク間でトラフィックが分散されます。
リンクアグリゲーショングループ(LAG)設定の詳細については、 ルーティングデバイス用Junos OSネットワークインターフェイスライブラリを参照してください。
例:LAGリンクでのロードバランシングの設定
この例では、送信元レイヤー 3 の IP アドレスオプションとレイヤー 4 ヘッダーフィールド、さらに送信元と宛先の MAC アドレスを使用して、リンク集約グループ(LAG)リンクのロードバランシングを行うように負荷分散ハッシュキーを設定します。
[edit] forwarding-options { hash-key { family multiservice { source-mac; destination-mac; payload { ip { layer-3 { source-ip-only; } layer-4; } } } } }
ハッシュ キー設定の変更を有効にするには、FPC を再起動する必要があります。
EX8200スイッチ上のルーティングされたマルチキャストトラフィックの集約された10ギガビットリンクのマルチキャストロードバランシングを理解する
ストリーミングビデオ技術は1997年に導入されました。その後、データレプリケーションとネットワークの過負荷を軽減するために、マルチキャストプロトコルが開発されました。マルチキャストを使用すると、サーバーは複数のユニキャスト ストリームを送信する代わりに、1 つのストリームを受信者のグループに送信できます。ストリーミングビデオテクノロジーの使用は、以前は時折の企業プレゼンテーションに限定されていましたが、マルチキャスティングがテクノロジーを後押しし、その結果、映画、リアルタイムデータ、ニュースクリップ、アマチュアビデオの絶え間ないストリームがコンピューター、テレビ、タブレット、および電話にノンストップで流れています。しかし、これらのストリームはすべて、ネットワーク ハードウェアの容量をすぐに圧倒し、帯域幅の需要が増加し、伝送中に許容できないブリップとスタッタリングが発生しました。
増大する帯域幅の需要を満たすために、複数のリンクが仮想的に集約され、データフロー用のより大きな論理ポイントツーポイントリンクチャネルが形成されました。これらの仮想リンクの組み合わせは、マルチキャストインターフェイスと呼ばれ、リンクアグリゲーショングループ(LAG)とも呼ばれます。
マルチキャストロードバランシングでは、各LAG内の個々のリンクを管理して、各リンクが効率的に使用されるようにします。ハッシュアルゴリズムは、データストリームを継続的に評価し、LAG内のリンク上のストリーム分布を調整して、リンクが過小利用または過剰利用されないようにします。マルチキャストロードバランシングは、ジュニパーネットワークスEX8200イーサネットスイッチでデフォルトで有効になっています。
このトピックには以下のものが含まれます。
- マルチキャスト用のLAGを10ギガビット単位で作成
- マルチキャスト負荷分散はどのような場合に使用すべきですか?
- マルチキャストロードバランシングの仕組み
- EX8200スイッチにマルチキャストロードバランシングを実装する方法
マルチキャスト用のLAGを10ギガビット単位で作成
EX8200スイッチの最大リンクサイズは10ギガビットです。EX8200スイッチでより大きなリンクが必要な場合、最大12の10ギガビットリンクを組み合わせることができます。 図 1 に示すサンプル トポロジーでは、4 つの 10 ギガビット リンクが集約され、各 40 ギガビット リンクが形成されています。
マルチキャスト負荷分散はどのような場合に使用すべきですか?
10ギガビットを超えるダウンストリームリンクが必要な場合は、マルチキャストロードバランシングを備えたLAGを使用します。このニーズは、サービス プロバイダーとして機能する場合や、大勢の視聴者にビデオをマルチキャストする場合に頻繁に発生します。
マルチキャストロードバランシングを使用するには、以下が必要です。
EX8200スイッチ—スタンドアロンスイッチはマルチキャストロードバランシングをサポートしていますが、 バーチャルシャーシ はサポートしていません。
レイヤー 3 ルーティングされたマルチキャスト設定—マルチキャストの設定については、『 Junos OS ルーティングプロトコル設定ガイド』を参照してください。
LAG内の集約された10ギガビットリンク—マルチキャストロードバランシングを使用したLAGの設定については、 EX8200スイッチ上の集約型10ギガビットイーサネットリンクで使用するマルチキャストロードバランシングの設定(CLI手順)を参照してください。
マルチキャストロードバランシングの仕組み
トラフィックが複数のメンバーリンクを使用できる場合、同じストリームの一部であるトラフィックは、常に同じリンク上にある必要があります。
マルチキャストロードバランシングでは、7種類のハッシュアルゴリズムのうちの1つと、キューシャッフル(2つのキューを交互に使用する)と呼ばれる技術を使用して、データを分散および分散し、利用可能なすべての集約リンクにストリームを誘導します。マルチキャストロードバランシングを設定するときに7つのアルゴリズムのいずれかを選択するか、マルチキャストパケットのグループIPアドレスに巡回冗長性検査(CRC)アルゴリズムを使用するデフォルトのアルゴリズムであるcrc-sgipを使用できます。crc-sgip のデフォルトから始めて、このアルゴリズムがレイヤ 3 ルーティングされたマルチキャスト トラフィックを均等に分散しない場合は、他のオプションを試すことを推奨します。そのうちの6つのアルゴリズムは、IPアドレスのハッシュ値(IPv4またはIPv6)に基づいており、使用するたびに同じ結果を生成します。バランス モード オプションのみ、ストリームが追加される順序によって異なる結果が生成されます。詳しくは、 表 1 を参照してください。
ハッシュ アルゴリズム |
に基づいて |
最適な使用方法 |
---|---|---|
CRC-SGIP |
マルチキャストパケットの送信元とグループIPアドレスの巡回冗長性チェック |
デフォルト—10ギガビットイーサネットネットワーク上のIPトラフィックの高性能管理。毎回同じリンクに予測可能な割り当て。このモードは複雑ですが、優れた分散ハッシュが得られます。 |
CRC-GIP |
マルチキャストパケットのグループIPアドレスの巡回冗長性チェック |
毎回同じリンクに予測可能な割り当て。crc-sgip がレイヤ 3 のルーティングされたマルチキャスト トラフィックを均等に分配せず、グループ IP アドレスが異なる場合は、このモードを試してください。 |
CRC-SIP |
マルチキャストパケットの送信元IPアドレスの巡回冗長性チェック |
毎回同じリンクに予測可能な割り当て。crc-sgip がレイヤ 3 のルーティングされたマルチキャスト トラフィックを均等に分散せず、ストリーム ソースが異なる場合は、このモードを試してください。 |
simple-sgip |
マルチキャストパケットの送信元とグループIPアドレスのXOR計算 |
毎回同じリンクに予測可能な割り当て。これは単純なハッシュ法であり、crc-sgipが生成する分布ほど生成されない可能性があります。crc-sgip がレイヤ 3 ルーティングされたマルチキャスト トラフィックを均等に分散しない場合は、このモードを試してください。 |
simple-gip |
マルチキャストパケットのグループIPアドレスのXOR計算 |
毎回同じリンクに予測可能な割り当て。これは単純なハッシュ方法であり、crc-gipが生成する分布ほど生成されない可能性があります。crc-gip がレイヤ 3 のルーティングされたマルチキャスト トラフィックを均等に分散せず、グループ IP アドレスが異なる場合にこれを試してください。 |
シンプルシップ |
マルチキャストパケットの送信元IPアドレスのXOR計算 |
毎回同じリンクに予測可能な割り当て。これは単純なハッシュ方式であり、crc-sipが生成する分布ほど生成されない可能性があります。crc-sip がレイヤ 3 ルーティングされたマルチキャスト トラフィックを均等に分散せず、ストリーム ソースが異なる場合は、このモードを試してください。 |
バランス |
トラフィック量が最も少ないマルチキャスト リンクを特定するために使用されるラウンドロビン計算方式 |
最適なバランスが実現されますが、どのリンクが一貫して使用されるかは、ストリームがオンラインになる順序に依存するため、予測できません。再起動のたびに一貫した割り当てが不要な場合に使用します。 |
EX8200スイッチにマルチキャストロードバランシングを実装する方法
EX8200スイッチで最適化されたスループット レベルでマルチキャストロードバランシングを実装するには、次の推奨事項に従います。
集約されたリンクの25%の未使用帯域幅を許可し、マルチキャストインターフェイスの共有によるリンク変更による動的な不均衡に対応します。
ダウンストリーム リンクの場合は、可能な限り同じサイズのマルチキャスト インターフェイスを使用します。また、ダウンストリームの集約されたリンクでは、集約されたリンクのメンバーが同じデバイスに属している場合にスループットが最適化されます。
アップストリームの集約型リンクについては、可能な限りレイヤー3リンクを使用します。また、アップストリームの集約リンクでは、集約されたリンクのメンバーが異なるデバイスに属している場合にスループットが最適化されます。
参照
例:EX8200スイッチ上の集合型10ギガビットイーサネットインターフェイスで使用するマルチキャストロードバランシングの設定
EX8200スイッチは、LAG(リンクアグリゲーショングループ)上でマルチキャストロードバランシングをサポートしています。マルチキャストロードバランシングは、レイヤー3のルーティングされたマルチキャストトラフィックをLAG上に均等に分散し、最大12の10ギガビットイーサネットリンクを集約して、120ギガビットの仮想リンクまたはLAGを形成できます。MACクライアントは、この仮想リンクを単一リンクのように扱うことで、帯域幅を拡大し、リンク障害発生時に緩やかな劣化を提供し、可用性を高めることができます。EX8200 スイッチでは、マルチキャスト ロードバランシングがデフォルトで有効になっています。ただし、明示的に無効になっている場合は、再度有効にすることができます。.
IPアドレスがすでに設定されているインターフェイスは、LAGの一部になれません。
10ギガビットリンクを備えたEX8200スタンドアロンスイッチのみが、マルチキャストロードバランシングをサポートしています。バーチャルシャーシは、マルチキャストロードバランシングをサポートしていません。
次に、LAG を設定し、マルチキャストのロードバランシングを再度有効にする例を示します。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
EX8200 スイッチ 2台。1台はアクセス スイッチ、もう 1 台は分散型スイッチとして使用
Junos OS リリース 12.2 以降(EXシリーズ スイッチの場合)
開始する前に、以下を実行します。
EX8200分散型スイッチで、4つの10ギガビットインターフェイス(xe-0/1/0、xe-1/1/0、xe-2/1/0、xe-3/1/0)を設定します。ギ ガビットイーサネットインターフェイスの設定(CLI手順)を参照してください。
概要とトポロジー
マルチキャスト ロードバランシングは、7 つのハッシュ アルゴリズムのいずれかを使用して、LAG 内の個々の 10 ギガビット リンク間のトラフィックを分散します。ハッシュ アルゴリズムの説明については、 multicast-loadbalanceを参照してください。デフォルトのハッシュアルゴリズムは crc-sgip です。レイヤー 3 ルーティングされたマルチキャスト トラフィックのバランスが最適のものが見つかるまで、さまざまなハッシュ アルゴリズムを試すことができます。
EX8200スイッチで10ギガビットを超えるリンクが必要な場合、最大12の10ギガビットリンクを組み合わせて、より多くの帯域幅を作成できます。この例では、リンクアグリゲーション機能を使用して、4つの10ギガビットリンクを分散型スイッチ上の40ギガビットリンクに結合します。さらに、マルチキャストロードバランシングが有効になっているため、40ギガビットリンク上でレイヤー3ルーティングされたマルチキャストトラフィックが均等に分散されます。 図 2 に示すサンプル トポロジーでは、ディストリビューション層の EX8200 スイッチがアクセス層の EX8200 スイッチに接続されています。
リンク速度は、設定されたLAGのサイズに基づいて自動的に決定されます。たとえば、LAGが4つの10ギガビットリンクで構成されている場合、リンク速度は40ギガビット/秒です)。
デフォルトのハッシュ アルゴリズムである crc-sgip では、マルチキャスト パケットの送信元 IP アドレスとグループ IP アドレスの両方の巡回冗長性チェックが行われます。
各スイッチでLAGを設定し、マルチキャストロードバランシングを再度有効にします。再度有効にすると、マルチキャストロードバランシングがLAGで自動的に有効になり、LAG内の各リンクの速度が10ギガビット/秒に設定されます。40ギガビットLAGのリンク速度は、自動的に40ギガビット/秒に設定されます。
構成
プロシージャ
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
set chassis aggregated-devices ethernet device-count 1 set interfaces ae0 aggregated-ether-options minimum-links 1 set interfaces xe-0/1/0 ether-options 802.3ad ae0 set interfaces xe-1/1/0 ether-options 802.3ad ae0 set interfaces xe-2/1/0 ether-options 802.3ad ae0 set interfaces xe-3/1/0 ether-options 802.3ad ae0 set chassis multicast-loadbalance hash-mode crc-gip
手順
LAG を設定し、マルチキャストのロードバランシングを再度有効にするには:
作成するアグリゲートイーサネットインターフェイスの数を指定します。
[edit chassis] user@switch#
set aggregated-devices ethernet device-count 1
集合型イーサネットインターフェイス(aex)、つまりLAGのリンク最小数を指定します。
up
ラベル付けします。手記:デフォルトでは、LAGに
up
ラベルを付けるために必要なリンクは1つだけです。[edit interfaces] user@switch#
set ae0 aggregated-ether-options minimum-links 1
LAG 内に含める 4 つのメンバーを指定します。
[edit interfaces] user@switch#
set xe-0/1/0 ether-options 802.3ad ae0
user@switch#set xe-1/1/0 ether-options 802.3ad ae0
user@switch#set xe-2/1/0 ether-options 802.3ad ae0
user@switch#set xe-3/1/0 ether-options 802.3ad ae0
マルチキャストロードバランシングを再度有効にします。
[edit chassis] user@switch# set multicast-loadbalance
手記:マルチキャストロードバランシングを使用しないLAGの場合のように、リンク速度を設定する必要はありません。リンク速度は、40ギガビットLAGで毎秒40ギガビットに自動的に設定されます。
オプションで、multicast-loadbalance ステートメントの
hash-mode
オプションの値を変更して、レイヤー 3 ルーティングされたマルチキャスト トラフィックを最適に分散するアルゴリズムが見つかるまで、さまざまなアルゴリズムを試すことができます。マルチキャストロードバランシングが無効になっているときにハッシュアルゴリズムを変更した場合、マルチキャストロードバランシングを再度有効にした後に新しいアルゴリズムが有効になります。
業績
構成の結果を確認します。
user@switch> show configuration chassis aggregated-devices { ethernet { device-count 1; } } multicast-loadbalance { hash-mode crc-gip; } interfaces xe-0/1/0 { ether-options { 802.3ad ae0; } } xe-1/1/0 { ether-options { 802.3ad ae0; } } xe-2/1/0 { ether-options { 802.3ad ae0; } } xe-3/1/0 { ether-options { 802.3ad ae0; } } ae0 { aggregated-ether-options { minimum-links 1; } } }
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
LAGインターフェイスのステータス検証
目的
スイッチ上にリンク アグリゲーション グループ(LAG)(ae0)が作成されていることを確認します。
アクション
ae0 LAGが作成されていることを確認します。
user@switch> show interfaces ae0 terse
Interface Admin Link Proto Local Remote ae0 up up ae0.0 up up inet 10.10.10.2/24
意味
インターフェイス名aex は、これがLAGであることを示しています。 A は集約を表し、 E はイーサネットを表します。この番号によって、さまざまなLAGが区別されます。
マルチキャスト負荷分散の検証
目的
トラフィックがパス全体で均等にロードバランシングされていることを確認します。
アクション
4つのインターフェイスのロードバランシングを検証します。
user@switch> monitor interface traffic
Bytes=b, Clear=c, Delta=d, Packets=p, Quit=q or ESC, Rate=r, Up=^U, Down=^D ibmoem02-re1 Seconds: 3 Time: 16:06:14 Interface Link Input packets (pps) Output packets (pps) xe-0/1/0 Up 2058834 (10) 7345862 (19) xe-1/1/0 Up 2509289 (9) 6740592 (21) xe-2/1/0 Up 8625688 (90) 10558315 (20) xe-3/1/0 Up 2374154 (23) 71494375 (9)
意味
インターフェイスは、ほぼ同じ量のトラフィックを伝送する必要があります。
動的ロードバランシング
ロードバランシングは、特定のECMP(等価コストマルチパスルーティング)またはLAG(リンクアグリゲーショングループ)のメンバー間でネットワークトラフィックができるだけ均等に分散されるようにするために使用されます。一般に、ロードバランシングは静的または動的に分類されます。静的ロードバランシング(SLB)は、パケットの内容(送信元 IP や宛先 IP など)のみに基づいてハッシュを計算します。SLB の最大の利点は、特定のフローのすべてのパケットが同じパスを通るため、パケットの順序が保証されることです。しかし、SLBメカニズムではパスやリンクの負荷が考慮されないため、ネットワークで次の問題が頻繁に発生します。
-
リンク帯域幅の使用率が低い
-
1つのリンク上のエレファントフローは、その上にマウスフローを完全にドロップします。
動的ロードバランシング(DLB)は、SLBを改良したものです。
ECMPの場合、DLBをグローバルに設定できますが、LAGの場合、集合型イーサネットインターフェイスごとにDLBを設定します。設定に基づいて、選択した イーサタイプ(動的ロードバランシング)( IPv4、IPv6、MPLS)にDLBを適用できます。 ether-type(動的ロードバランシング)を設定しない場合、DLBはすべてのEtherTypeに適用されます。デフォルト モードがないため、DLB モードを明示的に設定する必要があることに注意してください。
-
Junos OS リリース 22.3R1-EVO 以降、QFX5130-32CD スイッチは ECMP と LAG の両方で動的ロードバランシングをサポートします。
-
Junos OS リリース 19.4R1以降、QFX5120-32CスイッチとQFX5120-48Yスイッチは、ECMPとLAGの両方でダイナミックロードバランシングをサポートしています。LAGの場合、DLBは集合型イーサネットインターフェイスごとに設定する必要があります。
-
Junos OS Evolved Release 19.4R2以降、QFX5220スイッチはECMPのダイナミックロードバランシング(DLB)をサポートします。ECMP の場合、DLB はグローバルに設定する必要があります。
-
DLB と復元力のあるハッシュの両方を同時に設定することはできません。そうでない場合は、コミットエラーがスローされます。
-
DLB は、ユニキャスト トラフィックにのみ適用されます。
-
LAGがエグレスECMPメンバーの1つである場合、DLBはサポートされません。
-
DLBは、リモートLAGメンバーにはサポートされません。
-
DLB は、バーチャルシャーシおよび VCF(バーチャルシャーシファブリック)ではサポートされていません。
-
LAG上のDLBとHiGigトランクは同時にサポートされていません。
-
QFX5220、QFX5230-64CD、およびQFX5240スイッチは、LAG 上のDLBをサポートしていません。
プラットホーム |
ECMP の DLB サポート |
LAG の DLB サポート |
---|---|---|
QFX5120-32C |
はい |
はい |
QFX5120-48Y |
はい |
はい |
QFX5220 |
はい |
いいえ |
QFX5230-64CD |
はい |
いいえ |
QFX5240 |
はい |
いいえ |
以下のDLBモードを使用して、トラフィックのロードバランシングを行うことができます。
-
パケット単位モード
このモードでは、フロー内の各パケットに対して DLB が開始されます。このモードでは、パケットが常に最高品質のメンバーポートに割り当てられます。ただし、このモードでは、DLB でパケット並べ替えの問題が起こり、遅延スキューが原因で発生する可能性があります。
-
フローレットモード
このモードでは、フローではなく フローレット に基づいてリンクを割り当てる必要があります。実際のアプリケーション トラフィックは、TCP などの上位層トランスポート プロトコルのフロー制御メカニズムに依存しており、伝送速度が調整されます。その結果、フローレットが作成されます。フローレットは、同じフローの複数のバーストを、これらのバースト間の非アクティブ期間で区切られたものと考えることができます。この非アクティブ期間を「非アクティブ間隔」と呼びます。非アクティブ間隔は、新しいフローレットを識別するための境界基準として機能し、DLB 設定でユーザー設定可能なステートメントとして提供されます。このモードでは、DLB はフローレットごとに、つまり、新しいフローと、十分に長い期間非アクティブになっている(設定された
inactivity-interval
)既存のフローに対して開始されます。パケット単位 モードの並べ替えの問題は、フローレット内のすべてのパケットが同じリンクを使用するため、このモードで対処されます。inactivity-interval
値がすべての ECMP パスの最大遅延スキューよりも大きくなるように設定されている場合、利用可能なすべての ECMP リンクのリンク使用率を高めながら、フローレット間でのパケットの並べ替えを回避できます。 -
割り当てられたフローモード
割り当てられたフローモードを使用して、一定期間リバランスを選択的に無効にし、問題の原因を切り分けることができます。割り当てられたフロー モードではポートの負荷とキューのサイズが考慮されないため、このモードをリアルタイム DLB に使用したり、このモードを使用して選択されるエグレス ポートを予測したりすることはできません。
DLB の重要な動作の一部を次に示します。
-
DLB は、受信 EtherType にのみ適用されます。
-
DLBの観点からは、レイヤー2とレイヤー3の両方のリンクアグリゲーショングループ(LAG)バンドルは同じと見なされます。
-
非対称バンドル、つまりメンバー容量の異なるECMPリンクで動的ロードバランシングを使用する場合、リンクの利用率は最適ではありません。
-
DLB では、パケットごとに新しいリンクが追加され、フロー モードが割り当てられている場合、フローの再割り当ては行われません。これにより、リンク フラップのシナリオでは、フラップ後に新しいフローやフローレットが見られない場合、使用されているリンクがフラップ後に使用されない可能性があるなど、最適ではない使用が発生する可能性があります。
利点
-
DLBでは、メンバーを選択する際、パケットの内容とともにメンバーの帯域幅使用率を考慮します。その結果、リアルタイムのリンク負荷に基づいて、より良いリンク使用率を実現します。
-
DLB は、エレファントフローによって占有されたリンクがマウスフローによって使用されないようにします。したがって、DLBを使用することで、SLBで発生するハッシュコリジョンドロップを回避します。つまり、DLBではリンクが拡散されるため、コリジョンとそれに伴うパケットのドロップが回避されます。
動的ロードバランシングの設定
このトピックでは、フローレット モードで動的ロードバランシング(DLB)を設定する方法について説明します。
Junos OS リリース 19.4R1以降、QFX5120-32CスイッチとQFX5120-48Yスイッチは、ECMPとLAGの両方でダイナミックロードバランシングをサポートしています。LAGの場合、DLBは集合型イーサネットインターフェイスごとに設定する必要があります。
Junos OS Evolved Release 19.4R2以降、QFX5220スイッチはECMPのダイナミックロードバランシング(DLB)をサポートします。ECMP の場合、DLB はグローバルに設定する必要があります。
ECMP の DLB の設定(Flowlet モード)
フローレットモード(QFX5120-32C、QFX5120-48Y、QFX5220スイッチ)を使用してECMPのダイナミックロードバランシングを設定するには:
同様に、パケット 単位 または 割り当て済みフロー モードで ECMP の DLB を設定できます。
LAG の DLB の設定(Flowlet モード)
開始する前に、ルーターインターフェイスのセットを集合型イーサネットとして設定し、特定の集合型イーサネット(AE)グループ識別子を使用して、集合型イーサネット(AE)バンドルを作成します。
フローレットモード(QFX5120-32CおよびQFX5120-48Y)を使用してLAGの動的ロードバランシングを設定するには、次の手順に従います。
フローレットモードで動的ロードバランシングを有効にします。
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet
(オプション) inactivity-interval 値を設定します。リンク再割り当ての最小非アクティブ間隔(マイクロ秒単位)。
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet inactivity-interval (micro seconds)
(オプション)
ether-type
で動的ロードバランシングを設定します。[edit forwarding-options enhanced-hash-key] user@router# set lag-dlb ether-type mpls
(オプション)
show forwarding-options enhanced-hash-key
コマンドを使用して、LAGのダイナミックロードバランシングに設定されたオプションを表示できます。
同様に、 パケット単位 または 割り当て済みフロー モードで LAG の DLB を設定できます。
参照
例:動的ロード バランシングの設定
この例では、動的ロードバランシングを設定する方法を示しています。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
2 台の QFX5120-32C または QFX5120-48Y スイッチ
すべてのデバイスでJunos OS リリース 19.4R1 以降が実行されている
概要
動的ロードバランシング(DLB)は、SLBを改良したものです。
ECMPの場合、DLBをグローバルに設定できますが、LAGの場合、集合型イーサネットインターフェイスごとにDLBを設定します。設定に基づいて、IPv4、IPv6、MPLSなどの選択した イーサタイプ(動的ロードバランシング) にDLBを適用できます。 ether-type(動的ロードバランシング)を設定しない場合、DLBはすべてのEtherTypeに適用されます。デフォルト モードがないため、DLB モードを明示的に設定する必要があることに注意してください。
Junos OS リリース 19.4R1以降、QFX5120-32CおよびQFX5120-48Yスイッチは、ECMPとLAGの両方で動的ロードバランシングをサポートしています。
DLB と復元力のあるハッシュの両方を同時に設定することはできません。そうでない場合は、コミットエラーがスローされます。
位相幾何学
このトポロジーでは、R0とR1の両方が接続されています。
この例では、静的設定を示しています。また、動的プロトコルを使用して設定を追加することもできます。
構成
- CLIクイック構成
- LAG(QFX5120-32CおよびQFX5120-48Y)の動的ロードバランシングの設定
- ECMPの動的ロードバランシングの設定(QFX5120-32C、QFX5120-48Y、およびQFX5220スイッチ)
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
R0
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24 set forwarding-options enhanced-hash-key ecmp-dlb per-packet set policy-options policy-statement loadbal then load-balance per-packet set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3 set routing-options forwarding-table export loadbal
R1
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
LAG(QFX5120-32CおよびQFX5120-48Y)の動的ロードバランシングの設定
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、「 1 コンフィグレーション・モードでのCLIエディタの使用」を参照してください。
R0 ルーターを設定するには:
各ルーターの適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、他のルーターに対してこの手順を繰り返します。
リンクアグリゲーショングループ(LAG)を設定します。
[edit interfaces]
user@R0# set interfaces xe-0/0/0 ether-options 802.3ad ae0 user@R0# set interfaces xe-0/0/10 ether-options 802.3ad ae0 user@R0# set interfaces ae0 aggregated-ether-options lacp active user@R0# set interfaces ae0 unit 0 family inet address 10.1.0.2/24 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3LAG を設定した後、検証セクションで、「 LAG で動的ロード バランシング機能を設定する前にトラフィック負荷 を確認する」セクションの手順を実行して、DLB を設定する前に設定またはトラフィック負荷を確認します。
LAGのパケット単位モードで動的ロードバランシングを設定します。
[edit]
user@R0# set interfaces ae0 aggregated-ether-options dlb per-packetDLB を設定した後、検証セクションで、「 LAG の動的ロード バランシング機能を設定した後のトラフィック負荷の検証 」セクションの手順を実行して、DLB を設定する前に設定またはトラフィック負荷を確認します。
ECMPの動的ロードバランシングの設定(QFX5120-32C、QFX5120-48Y、およびQFX5220スイッチ)
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、「 1 コンフィグレーション・モードでのCLIエディタの使用」を参照してください。
R0 ルーターを設定するには:
各ルーターの適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、他のルーターに対してこの手順を繰り返します。
R0からR1への接続するギガビットイーサネットインターフェイスリンクを設定します。
[edit interfaces]
user@R0# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 user@R0# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 user@R0# set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24静的ルートを作成します。
[edit interfaces]
user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3ロードバランシングポリシーを適用します。動的ロードバランシング機能を使用するには、転送テーブルに複数の ECMP ネクスト ホップが存在する必要があります。
[edit interfaces]
user@R0# set policy-options policy-statement loadbal then load-balance per-packet user@R0# set routing-options forwarding-table export loadbalECMP のパケット単位モードで動的ロードバランシングを設定します。
[edit interfaces]
user@R0# set forwarding-options enhanced-hash-key ecmp-dlb per-packetR1で、ギガビットイーサネットインターフェイスリンクを設定します。
[edit interfaces]
user@R2# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 user@R2# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 user@R2# set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
検証
設定が正常に機能していることを確認します。
LAGで動的ロードバランシング機能を設定する前にトラフィック負荷を確認する
目的
リンク アグリゲーション グループで DLB 機能が設定される前に確認します。
アクション
動作モードから、 show interfaces interface-name | match pps
コマンドを実行します。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 1240 bps (1 pps) Output rate : 1024616 bps (1000 pps) ## all traffic in one link. user@R0>show interfaces xe-0/0/10 | match pps Input rate : 616 bps (0 pps) Output rate : 1240 bps (1 pps)<< Output rate : 1240 bps (1 pps) ## no traffic
LAGで動的ロードバランシング機能を設定した後のトラフィック負荷の検証
目的
R0で受信したパケットがロードバランシングされていることを確認します。
アクション
動作モードから、 show interfaces interface-name
コマンドを実行します。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 616 bps (0 pps) Output rate : 519096 bps (506 pps)<< Output rate : 519096 bps (506 pps) ## load equally shared user@R0>show interfaces xe-0/0/10 | match pps Input rate : 1232 bps (1 pps) Output rate : 512616 bps (500 pps)<< Output rate : 512616 bps (500 pps) ## load equally shared
意味
パケット単位のモードでの動的ロードバランシングが正常に機能しています。LAGにダイナミックロードバランシング機能を適用すると、ネットワーク内で負荷が均等に共有されます。
検証
R0で設定が正常に機能していることを確認します。
R0 での動的ロードバランシングの検証
目的
R0で受信したパケットがロードバランシングされていることを確認します。
アクション
運用モードから、 run show route forwarding-table destination destination-address
コマンドを実行します。
user@R0>show route forwarding-table destination 20.0.1.0/24 inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.1.0/24 *[Static/5] 1d 03:35:12 > to 10.1.0.3 via xe-0/0/0.0 to 10.1.1.3 via xe-0/0/10.0 user@R0>show route 20.0.1.0/24 inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.1.0/24 *[Static/5] 1d 03:35:12 > to 10.1.0.3 via xe-0/0/0.0 to 10.1.1.3 via xe-0/0/10.0
意味
R1のロードバランシングの確認
目的
R1で設定が正しく機能していることを確認します。
アクション
動作モードから、 show route
コマンドを実行します。
user@R1>show route 20.0.1.25 inet.0: 146 destinations, 146 routes (146 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.0.0/16 *[Direct/0] 1d 03:37:11 > via xe-0/0/52:0.0
意味
パケット単位のモードでの動的ロードバランシングが正常に機能しています。ECMPに動的ロードバランシング機能を適用すると、ネットワーク内で負荷が均等に共有されます。
DLB フローレット モードでのフローセット テーブル サイズの設定
概要
動的ロードバランシング(DLB)とは、トラフィックフローが均等に分散されるように、リンクの品質に基づいて最適なエグレスリンクを選択するロードバランシング技術です。ネットワーク管理者は、 DLB を Flowlet モードで設定できます。
フローレットモードでは、DLBは最後に確認されたタイムスタンプと、DLBが最適なリンク品質に基づいて選択したエグレスインターフェイスを記録することでフローを追跡します。DLB は、この情報を各 ECMP グループに割り当てられたフローセット テーブルに記録します。DLB アルゴリズムは、最後に確認されたタイムスタンプが非アクティブ タイマーを超えるまで、特定のリンクで特定のフローを維持します。特定のフローの非アクティブ タイマーが期限切れになると、DLB は、そのリンクがそのフローに対して引き続き最適であるかどうかを再確認します。リンクが最適でなくなった場合、DLB は新しいエグレス リンクを選択し、新しいリンクとフローの最後の既知のタイムスタンプでフローセット テーブルを更新します。リンクが引き続き最適である場合、フローセット テーブルは引き続き同じエグレス リンクを使用します。
ネットワーク管理者は、フローセット テーブルのサイズを大きくして、ECMP グループ間でのフローセット テーブル エントリーの配分を変更することができます。ECMP グループがフローセット テーブルに持つエントリーが多いほど、ECMP グループが対応できるフローも多くなります。AI-MLデータセンターなど、多数のフローを処理する必要がある環境では、DLBがより大きなフローセットテーブルサイズを使用することが特に有用です。各 ECMP グループが多数のフローに対応できる場合、DLB は ECMP メンバー リンク全体でより良いフロー分散を実現します。
フローセット テーブルには合計 32,768 個のエントリーが保存され、これらのエントリーは DLB ECMP グループ間で均等に分割されます。各 ECMP グループのフローセット テーブルのサイズは、256〜32,768 の範囲です。ECMP グループの数を計算するには、次の式を使用します。
32,768/(flowset size) = Number of ECMP groups
デフォルトでは、フローセット サイズは 256 エントリであるため、デフォルトで 128 個の ECMP グループがあります。
利点
-
エグレスリンク上の負荷分散を改善します。
-
フローをグループ化して、各フローに対して DLB が行う必要のある計算の数を最小限に抑えます。
-
フローセットテーブルエントリの割り当てをカスタマイズして、効率を最大化します。
-
フローレットモードの効率を上げます。
構成
フローセット テーブル サイズを設定する際は、次の点に注意してください。
-
フローセット サイズを変更すると、ECMP DLB グループの規模も変更されます。256 を超えるフローセット テーブル サイズを割り当てると、DLB 対応 ECMP グループの数が減少します。
-
この設定をコミットすると、設定変更中にトラフィックがドロップする可能性があります。
-
リンク アグリゲーション グループ(LAG)が ECMP のエグレス メンバーの 1 つである場合、DLB はサポートされません。
-
アンダーレイ ファブリックのみが DLB をサポートしています。
-
50 Gbps未満の速度のQFX5240スイッチポートはDLBをサポートしていません。
プラットフォームのサポート
プラットフォームとリリースのサポートについては 、Feature Explorer を参照してください。
関連資料
事後対応型パスリバランシング
概要
動的ロードバランシング(DLB)は、AI-MLデータセンターファブリックに内在する大規模なデータフロー(エレファントフローとも呼ばれる)を処理するための重要なツールです。 リアクティブ パス リバランシング は、既存の DLB 機能の拡張機能です。
DLB のフローレットモードでは、ネットワーク管理者が非アクティブ間隔を設定します。トラフィックは、フローが休止タイマーよりも長く一時停止するまで、割り当てられた発信(エグレス)インターフェイスを使用します。発信リンクの品質が徐々に低下する場合、フロー内の一時停止は、設定された非アクティブタイマーを超えない可能性があります。この場合、従来のフローレット モードではトラフィックが別のリンクに再割り当てされないため、トラフィックはより高品質のリンクを利用できません。リアクティブパスリバランシングは、フローレットモードが有効になっている場合でも、ユーザーがトラフィックをより高品質のリンクに移動できるようにすることで、この制限に対処します。
デバイスは、各 ECMP(Equal Cost Multipath)のエグレス メンバー リンクに、リンクを通過するトラフィックに基づいて、品質バンドを割り当てます。品質帯域は、ポート負荷とキューバッファに依存します。ポート負荷は、送信されたエグレスバイト数です。キューバッファは、エグレスポートからの送信を待機しているバイト数です。ECMP を通過するトラフィック パターンに基づいて、これらの属性をカスタマイズできます。
利点
-
リンク劣化に対するスケーラブルなソリューション
-
大規模なデータフローにおける帯域幅の最適な利用
-
長時間のフローによるロードバランシングの非効率性の回避
構成
構成の概要
品質バンドには 0 から 7 までの番号が付けられており、0 が最低品質、7 が最高品質です。DLB は、メンバー ポートの負荷とキュー サイズに基づいて、メンバー ポートに品質帯域値を割り当てます。ポートから品質へのバンド マッピングは、瞬間的なポート負荷とキュー サイズに基づいて変化します。
以下の両方の条件が満たされた場合、リアクティブ パス リバランスにより、フローをより品質の高いメンバー リンクに再割り当てできます。
-
現在のメンバーの品質バンドに設定された再割り当て 品質デルタ 値を加えた値以上の品質バンドを持つ、より高品質のメンバーリンクが利用可能です。品質差分は、2 つの品質バンドの差です。
quality-delta
ステートメントを使用して品質デルタ値を設定します。 -
システムが生成するパケットのランダム値が、再割り当て 確率のしきい値 よりも低い値です。
prob-threshold
ステートメントを使用して確率しきい値を設定します。
この機能を使用する際は、以下の点に注意してください。
-
リアクティブ パス リバランスはグローバル設定であり、システム内のすべての ECMP DLB 設定に適用されます。
-
フローの再割り当てを制御するために、リアクティブパスリバランスに加えて、出力量子化を設定することができます。
-
パケットの並べ替えは、フローが 1 つのポートから別のポートに移動するときに発生する可能性があります。リアクティブ パス リバランスを設定すると、フローが新しいリンクに再割り当てされたときに、一時的に順序不同の問題が発生する可能性があります。
位相幾何学
このトポロジーでは、デバイスには3つの入力ポートと2つの出力ポートがあります。イングレス ストリームのうち 2 つはレイヤー 2(L2)トラフィックで、1 つはレイヤー 3(L3)トラフィックです。この図は、各エグレスポートにトラフィックを転送するテーブルエントリーを示しています。すべてのイングレスポートとエグレスポートは同じ速度です。
このトポロジーでは、リアクティブパスリバランスは次のように機能します。
品質差分 2 が設定されています。
L2 ストリーム 1(
mac 0x123
)は、10 % のレートでイングレス ポート et-0/0/0 に入ります。et-0/0/10から出ます。et-0/0/10のエグレスリンク利用率は10%で、品質帯域値は6です。L3 ストリームは、50 % のレートでポート et-0/0/1 に入ります。et-0/0/11から出て、ECMPメンバーリストから最適なリンクを選択します。et-0/0/11のエグレスリンク利用率は50%で、品質帯域値は5です。
L2 ストリーム 2(
mac 0x223
)は、40 % のレートでポート et-0/0/2 に入ります。また、et-0/0/11から出ます。これにより、et-0/0/11 リンク品質帯域値がさらに 4 に低下します。これで、両方の ECMP メンバー リンクの品質帯域値の差は 2 になります。ポート et-0/0/10 と et-0/0/11 の品質帯域値の差が設定された品質デルタ 2 以上であるため、リアクティブ パス バランシング アルゴリズムが動作可能になります。このアルゴリズムは、L3 ストリームを et-0/0/11 からより品質の高いメンバー リンク(この場合は et-0/0/10)に移動します。
L3 蒸気が et-0/0/10 に移動すると、et-0/0/10 リンク使用率は 60 % に増加し、品質帯域値は 5 に減少します。L2 ストリーム 2 は、引き続き et-0/0/11 を経由して送信されます。et-0/0/11 リンク使用率は 40% のままで、品質帯域値が 5 に増加しています。
リアクティブ パス リバランシングの設定
プラットフォームのサポート
プラットフォームとリリースのサポートについては 、Feature Explorer を参照してください。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
payload
ステートメントを使用して、レイヤー2トラフィックのロードバランシングハッシュキーを設定して、レイヤー3およびレイヤー4ヘッダーのフィールドを使用することもできます。