Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

フロー配信とパケット順序

このトピックでは、SRX5000 シリーズ デバイスでの負荷分散とパケットの順序について説明します。

SRX5000 シリーズ デバイスの負荷分散について

負荷分散アルゴリズムは、SRX5800、SRX5600、SRX5400 のデバイスでサポートされており、セッション容量と処理能力に基づいて調整されます。(実際のプラットフォームサポートは、インストールされているJunos OSリリースによって異なります)。

ハッシュベースのセッション配信では、ハッシュテーブルを使用します。SPU セッション重みテーブルは、セッション配信ハッシュテーブル内の各ハッシュインデックスにSPU IDを割り当てるために使用されます。このようにして、ハッシュベースの配信を使用して各SPUで作成されたセッション数は、SPUセッション重みテーブル内のSPUの重さに比例します。また、各 NPU は、NPU セッションに一致しないパケットを転送するために SPU を選択するために使用する、同一の SPU セッション重みテーブルとセッション配信ハッシュ テーブルを保持します。

SPUに障害が発生した場合、ルーティングエンジンは、セッション配信のハッシュテーブルの一貫性を維持するために、IOCやNPCを含むデータプレーン上のすべてのカードをリセットします。

ハッシュベースのセッション配信では、重みはセッション容量に基づいています。高いセッション容量が必要な場合は、ハッシュセッション配信モードを推奨します。

メモ:

SRX5000 シリーズ デバイスでの負荷分散は、常にハッシュベースです。

SPC を挿入および削除すると、挿入後にシャーシを再起動する必要があるため、中央ポイント初期化時に SPU セッション重みテーブルの再計算が行われます。

Junos OS リリース 15.1X49-D30 以降、SRX5000 シリーズ デバイスの高い同時セッションおよび 1 秒あたりの接続(cps)を処理するように中央ポイント アーキテクチャが拡張されました。

中央ポイントアーキテクチャの機能強化により、トラフィック管理をSPUにオフロードすることで、データパケットが中央ポイントを通過することを防ぎます。中央ポイントのセッション制限が削除されるため、システム セッション容量が拡張されます。

SPU ID の計算

SRX3K-SPC-1-10-40、SRX5K-SPC-2-10-40、またはSRX5K-SPC3サービス処理カード(SPC)を装備したデバイスのSPU IDは、以下のように計算されます。

SRX3K-SPC-1-10-40、SRX5K-SPC-2-10-40、SRX5K-SPC3 には、カードあたり 2 個の PIC、カード当たり 4 個の PIC(FPC)、カードあたり 2 個の PIC がそれぞれ含まれています。たとえば、デバイスにはスロット 1(FPC ID 0)とスロット 2(FPC ID 1)に 2 個のカードが含まれており、想定される SPU ID は次のようになります。

  • SPC1 の場合:(0、1)および(4、5)、合計 4 つの SPU を 2 枚のカードで利用できます。

  • SPC2 の場合:(0、1、2、3)および(4、5、6、7)、2 枚のカードで合計 8 個の SPU。

  • SPC3 の場合:(0、1)および(4、5)、合計 4 個の SPU を 2 枚のカードで利用できます。

FPC1(第2カード)とPIC1(カード内の2番目のPIC)の場合、SPU IDは次のように計算されます。

CLI および SNMP の SPU ID を参照しながら、この規則を使用します。

SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)のハッシュベースフォワーディング

これらの SRX シリーズ デバイスでは、パケットはイングレスからエグレスの処理に進むにつれて、さまざまなコンポーネントが関係する一連のイベントを通過します。データパスパケット転送機能を使用すると、SRX 5000シリーズのデバイスを介してI/Oトラフィックを迅速に配信できます。

SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)は、SRX5400、SRX5600、SRX5800デバイスでサポートされているインターフェイスカードです。MPC(モジュラーポートコンセントレータ)は、ハッシュベースの転送方法を使用して、サービス処理ユニット(SPU)にロードバランシングサービスを提供します。

ハッシュベースの転送では、パケットが中央ポイントではなく、選択した SPU(DCP)に MPC によって転送される場合があります。このアプローチにより、セッションのスケーリングが強化され、中央ポイントの過負荷を防ぐことができます。

ハッシュ値の計算には、以下の手順が含まれます。

  • IPv4 パケットの場合、ハッシュベース転送モジュールは、異なるレイヤー 4 プロトコル タイプに応じて、レイヤー 3 とレイヤー 4 の情報に基づいてハッシュ値を生成します。

  • Stream Control Transmission Protocol(SCTP)、TCP、UDP、Authentication Header(AH)、エッジ サービス プロバイダ(ESP)、ICMP(Internet Control Message Protocol)プロトコルの場合、ハッシュ モジュールはレイヤー 4 情報を利用してハッシュ値を生成します。その他のプロトコルでは、レイヤー 3 情報のみがハッシュ生成で使用されます。

  • IPv4 フラグメント パケットの場合、ハッシュ値はレイヤー 3 情報のみを使用して計算されます。これは、パケットの最初のフラグメントにも適用されます。

  • 非 IP パケットの場合、ハッシュベース転送モジュールはレイヤー 2 情報を使用してハッシュ値を計算します。

パケットのレイヤー 2、レイヤー 3、またはレイヤー 4 の情報に従ってハッシュ値が計算されると、SPU ID がセッション配信ハッシュ テーブル内の各ハッシュ インデックスに割り当てられます。

メモ:

SRX5K-MPC(IOC2)、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)は、ハッシュベースのセッション配信用に構成されたSRX5400、SRX5600、SRX5800デバイスでのみ使用できます。

ハッシュベースセッション配信モードが有効になっている場合、SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)がデバイスにインストールされている場合、システムは動作を高セッション容量ベースモードに変更します。

メモ:

SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、またはSRX5K-MPC3-100G10G(IOC3)がインストールされているSRX5000シリーズデバイスでは、システムまたはSPU再起動時に、ハッシュベースのセッション配信モードが有効になっている場合、すべてのSPUが再起動後にのみトラフィックが通過します。

IOC3上のMPCは、ハッシュベースのデータパスパケット転送を実行して、既存のすべてのIOCおよびSPCと相互接続することで、SPUにロードバランシングサービスを提供します。

IOC3 は、イングレス パケットとエグレス パケットを処理します。IOC3 はイングレス パケットを解析し、SPU に送信して、フロー セッション ルックアップ、ゾーンとポリシー チェック、VPN、ALG などのセキュリティ処理を行います。

IOC3 は、パケット データ メモリとファブリック キューイングを管理して、パケット ルックアップとカプセル化機能を実行します。

メモ:

Junos OSリリース15.1X49-D10およびJunos OSリリース17.3R1以降、ハッシュベースのセッション配信は、SRX5400、SRX5600、SRX5800デバイスのデフォルトモードです。ハッシュキーの選択は、アプリケーションプロトコルによって異なります。

Junos OSリリース17.4R1以降、トラフィックはハッシュされ、ハッシュベースのセッション配信アルゴリズムに基づいて、IOCによって異なるSPUに配信されます。この機能強化では、より大きな固定長ハッシュテーブルを使用して、すべてのSPU間で均等なハッシュ配信を提供します。Junos OSの初期リリースでは、固定長ハッシュテーブルにより、すべてのSPU間でトラフィック分散が不均一でした。

IOC3は、キー、結果テーブル、パケットメモリを含むセキュリティフローテーブル(IPv4およびIPv6)を設定します。

フローテーブルには、以下の機能が提供されます。

  • フロー ルックアップ

  • フローの挿入と削除

  • セキュリティ フローのエージング アウト

  • セキュリティ フロー統計

SRX5000 シリーズ デバイスでのパケット順序機能について

SRX5400、SRX5600、SRX5800、デバイスおよびvSRXでサポートされているパケット順序機能は、アプリケーションセントラルポイントでXLPプロセッサー上のパケット注文エンジンの組み込みパケット順序機能を有効にすることで、デバイスのパフォーマンスを向上させます。

ハードウェアとソフトウェアの 2 種類のパケット順序モードがサポートされています。

パケット順序機能が ハードウェアに設定されている場合、ロードバランシングスレッド(LBT)とパケット注文スレッド(POT)はパケット注文エンジンにオフロードされ、リソースはパケット処理を実行するために解放されます。パケット順序機能が ソフトウェアに設定されている場合、負荷分散スレッド(LBT)とパケット順序スレッド(POT)がSPUで実行されます。デフォルトでは、デバイスでパケット順序エンジン(ハードウェア)を使用したパケット順序モードが有効になっています。再起動が必要な設定変更で無効にすることができます。

フロー スレッドは、パケットを受信し、処理し、送信または破棄します。順序付けを必要としないパケットの場合、フロー スレッドはネットワーク アクセラレーション エンジン(NAE)のエグレスにパケットの送信またはドロップを通知します。順序付けが必要なパケットの場合、フロー スレッドはパケット注文エンジンに、順序リストからパケットをデキューし、パケットを順番に送信またはドロップするように通知します。

SRX5000 シリーズ デバイスでのパケット注文モードの変更

パケット注文エンジンを使用したパケット注文機能は、次世代SPCを搭載したSRX5400、SRX5800、SRX5600デバイスでサポートされています(プラットフォームのサポートは、インストールされているJunos OSリリースによって異なります)。デフォルトでは、パケット順序エンジンを使用したパケット順序モードは有効になっています。パケット順序エンジンを使用してパケット順序機能を無効にするには、デバイス上のパケット順序モードを更新する必要があります。

次のパケット順序モードがサポートされています。

  • ソフトウェア—パケット順序エンジンを使用してパケット順序モードを無効にします。

  • ハードウェア—パケット順序エンジンを使用してパケット順序モードを有効にします。これはデフォルトオプションです。

パケット順序エンジンを使用してパケット順序モードを無効にするには:

  1. CLI 設定プロンプトで次のコマンドを入力して、パケット順序モードを指定します。

  2. コマンドを show security forwarding-process 使用して、設定を確認します。

  3. コミットする前に、設定の変更を確認します。

  4. 設定をコミットします。

  5. 適切なタイミングでデバイスを再起動します。

  6. コマンドを show security flow status 使用して、パケット順序モードを確認します。

適応モードでのSRX5000シリーズデバイスでのセッション配信について

Junos OS リリース 15.1X49-D30 および Junos OS リリース 17.3R1 以降、適応モード セッション配信は、中央ポイント アーキテクチャの機能強化に置き換えられました。

適応モードセッション配信は、Junos OSリリース15.1X49-D30およびJunos OSリリース17.1R1より前の混合モードで実行されているSRX5000シリーズデバイスに実装されています。適応モードセッション配信は、サービス処理ユニット(SPU)容量と利用可能なリソースを考慮して、システムリソースの利用を最大限に活用します。XLR/XLP 混合モードで動作する SRX5000 シリーズ デバイスでのみ有効になります。これは、異なるタイプの SPU が異なる組み合わせで使用されるシャーシ環境で有効になります。SRX5800、SRX5600、または SRX5400 デバイスに、次世代サービス処理カード(SPC)と既存の SPC の混在が含まれている場合、適応モード セッション配信がデフォルトと見なされます。混合モードで動作しない SRX5000 シリーズ デバイスの場合、ハッシュベースのロード バランシングがデフォルトです。

SPC(サービス処理カード)には、それぞれ1つ以上のSPUが含まれており、中央ポイント(CP)によって分散されたセッションに設定されたセキュリティ機能やその他のサービスに従ってフローのパケットを処理します。SPU の CPU 負荷は随時変化します。変化する利用可能な容量をフルに活用し、それに応じてセッション配信を適応させるために、適応モードでは、システムはすべてのSPUに動的に重みを割り当てます。セッション配信を決定するのは、SPU の重み付けです。

各 SPU は、CPU 使用率情報を中央ポイント(CP)に定期的に送信します。中央点は、これらの値をチェックし、1 秒ごとに重みを計算し、システム全体のパフォーマンスを最大化するようにセッションを分散します。言い換えると、適応モードでは、セッション配信はリアルタイムで計算される 動的 な重み付け割り当てシステムに基づいてあり、そのタイプに関係なく、すべてのSPUのCPUの完全な容量利用を可能にします。

これは、適応モードセッション配信と WRR(Weighted Round-Robin)セッション配信を区別する重み付けの動的計算です。WRR は SPU と CPU 容量を区別するために、さまざまなタイプの SPU に重み付けを計算して割り当てますが、計算と割り当ては静的であり、つまり初期化時に 1 回だけ実行されます。適応モードは、WRRの固定比率セッション分散プロセスを改善します。WRR では、使用可能な処理能力を考慮せず、SPU の種類とその CPU 容量のみに基づいてセッション処理制限が設定されるため、システム リソースの十分な利用ができません。

アダプティブ モード セッション配信では、SPU に割り当てられた重みの計算に次の式が使用されます。

Wi = Sum(W1-n)*Ci*Si/Sum(C1-n*S1-n)

どこ:

  • Wi— SPU に割り当てられた重量。

  • Sum(W1-n)— システムの総重量。この値は定数です。

  • n-SPUの総数。

  • CiSPU の CPU 計算能力を利用できます。

  • Si-SPU の使用可能なセッション容量。

適応モードでは、1つのSPUのCPU使用率が高い場合、そのSPUに分散するセッションは少なくてすみます。次の例では、計算について説明します。

2つのSPUを持つデバイスを検討してください。各SPUのセッション容量は100万です。

一定時間:

  • SPU1のセッション数が500,000の場合、そのCPU使用率は10%です。

    • SPU1(C1)の使用可能な CPU 容量 = 1-10 パーセント = 90 (パーセント)

    • SPU1(S1)= 1-500,000/1M = 50(パーセント)の使用可能なセッション容量。

  • SPU2のセッション数が400,000の場合、そのCPU使用率は20%です。

    • SPU2(C2)= 1~20 percent= 80(パーセント)の使用可能容量。

    • SPU2(S2)= 1-400,000/1M= 60(パーセント)の使用可能なセッション容量。

システム全体の重みが 100 の場合、各 SPU の個別の重み値は次のようになります。

  • SPU1(W1)の重量 = 100*90*50/(50*90+80*60) = 48

  • SPU2(W2)の重量 = 100*80*60/(50*90+80*60) = 52

受信セッションでは、セッションの48%がSPU1に割り当てられ、パケットの52%がSPU2に割り当てられます。

重み付け番号は、中央ポイントがランタイム使用情報を確認し、新しい値に重み付けを調整する前に、短期間でシステムで有効になる場合があります。

リリース履歴テーブル
リリース
説明
17.4R1
Junos OSリリース17.4R1以降、トラフィックはハッシュされ、ハッシュベースのセッション配信アルゴリズムに基づいて、IOCによって異なるSPUに配信されます。この機能強化では、より大きな固定長ハッシュテーブルを使用して、すべてのSPU間で均等なハッシュ配信を提供します。Junos OSの初期リリースでは、固定長ハッシュテーブルにより、すべてのSPU間でトラフィック分散が不均一でした。
15.1X49-D30
Junos OS リリース 15.1X49-D30 以降、SRX5000 シリーズ デバイスの高い同時セッションおよび 1 秒あたりの接続(cps)を処理するように中央ポイント アーキテクチャが拡張されました。
15.1X49-D30
Junos OS リリース 15.1X49-D30 および Junos OS リリース 17.3R1 以降、適応モード セッション配信は、中央ポイント アーキテクチャの機能強化に置き換えられました。
49-D10 x 15.1
Junos OSリリース15.1X49-D10およびJunos OSリリース17.3R1以降、ハッシュベースのセッション配信は、SRX5400、SRX5600、SRX5800デバイスのデフォルトモードです。ハッシュキーの選択は、アプリケーションプロトコルによって異なります。