フロー分散とパケット順序
このトピックでは、SRX5000 回線デバイスでの負荷分散とパケット順序について説明します。
SRX5000ラインデバイスの負荷分散の理解
SRX5800、SRX5600、および SRX5400 デバイスでサポートされている負荷分散アルゴリズムは、セッション容量と処理能力に基づいて調整されます。(実際のプラットフォーム サポートは、インストールされた Junos OS リリースによって異なります)。
ハッシュベースのセッション配信では、ハッシュテーブルを使用します。SPU セッション重みテーブルは、セッション配布ハッシュテーブルの各ハッシュインデックスに SPU ID を割り当てるために使用されます。これにより、ハッシュベースの分散を使用して各 SPU で作成されたセッションの数は、SPU セッションの重みテーブル内の SPU の重みに比例します。また、各 NPU は、同一の SPU セッション重みテーブルとセッション分散ハッシュ テーブルを保持し、NPU セッションと一致しないパケットを転送する 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 は、次のように計算されます。
SPU ID = (FPC ID X 4) + PIC 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)、2枚のカードに合計4つのSPU。
SPC2の場合:(0、1、2、3)および(4、5、6、7)、2枚のカードで合計8つのSPU。
SPC3 の場合:(0, 1)と(4, 5)、2 枚のカードに合計 4 つの SPU。
FPC1(2枚目のカード)とPIC1(カード内の2枚目のPIC)では、SPU IDは次のように計算されます。
SPU ID = (FPC ID X 4) + PIC ID
= (1 X 4) + 1
= 4 + 1
= 5
CLI および SNMP の SPU ID を参照する際には、この規則を使用します。
SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)でのハッシュベース転送
これらのSRXシリーズファイアウォールでは、パケットはingressからegress処理へと進む過程で、さまざまなコンポーネントが関与する一連のイベントを通過します。データパスパケット転送機能を使用すると、SRX 5000シリーズのデバイスを介してI/Oトラフィックを迅速に配信できます。
SRX5K-MPC、SRX5K-MPC3-40G10G(IOC3)、SRX5K-MPC3-100G10G(IOC3)は、SRX5400、SRX5600、SRX5800デバイスでサポートされているインターフェイス カードです。MPC(モジュラーポートコンセントレータ)は、ハッシュベースの転送方式を使用して、SPU(サービス処理ユニット)の負荷分散サービスを提供します。
ハッシュベースの転送では、パケットが MPC によって中央ポイントではなく、選択された SPU(DCP)に転送される場合があります。このアプローチにより、セッションのスケーリングが向上し、中央点の過負荷が防止されます。
ハッシュ値の計算には、次の手順が含まれます。
IPv4 パケットについては、ハッシュベース転送モジュールは、異なるレイヤー 4 プロトコル タイプに応じて、レイヤー 3 およびレイヤー 4 の情報に基づいてハッシュ値を生成します。
ストリーム制御伝送プロトコル(SCTP)、TCP、UDP、認証ヘッダー(AH)、エッジサービスプロバイダ(ESP)、インターネット制御メッセージプロトコル(ICMP)プロトコルの場合、ハッシュモジュールはレイヤー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リリースによって異なります)。デフォルトでは、パケット順序付けエンジンを使用したパケット順序モードが有効になっています。パケット注文エンジンを使用してパケット注文機能を無効にするには、デバイスのパケット注文モードを更新する必要があります。
次のパケット順序モードがサポートされています。
ソフトウェア—パケット注文エンジンを使用してパケット注文モードを無効にします。
ハードウェア—パケット順序付けエンジンを使用してパケット順序付けモードを有効にします。これはデフォルトのオプションです。
パケット順序付けエンジンを使用してパケット順序付けモードを無効にするには、次の手順に従います。
CLI 設定プロンプトで次のコマンドを入力して、パケット順序モードを指定します。
[edit] user@host# set security forwarding-process application-services packet-ordering-mode software
show security forwarding-processコマンドを使用して、設定を確認します。[edit] user@host# show security forwarding-process application-services{ packet-ordering-mode software; }コミットする前に、設定の変更を確認してください。
[edit] user@host# commit check
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. configuration check succeeds
設定をコミットします。
[edit] user@host# commit
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. commit complete
適切なタイミングでデバイスを再起動します。
show security flow statusコマンドを使用して、パケット順序モードを確認します。user@host> show security flow statusFlow forwarding mode: Inet forwarding mode: flow based Inet6 forwarding mode: drop MPLS forwarding mode: drop ISO forwarding mode: drop Flow trace status Flow tracing status: off Flow session distribution Distribution mode: RR-based Flow packet orderingOrdering mode: Software (reboot needed to change to Software)
適応モードにおける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 が含まれており、各 SPU は、中央点(CP)によって配信されたセッション用に設定されたセキュリティ機能やその他のサービスに従って、フローのパケットを処理します。SPU の CPU 負荷は随時変化します。適応モードでは、変化する利用可能な容量をフルに活用し、それに応じてセッション分散を適応させるため、システムはすべてのSPUに動的に重みを割り当てます。セッションの分散を決定するのは、SPU の重みです。
各SPUは、CPU使用率情報を定期的に中央ポイント(CP)に送信します。中央のポイントはこれらの値をチェックし、1秒ごとに重みを計算し、システム全体のパフォーマンスが最大になるようにセッションを分散します。言い換えると 適応モードでは、セッションの分散はリアルタイムで計算される 動的な 重み付けされた割り当てシステムに基づいて行われるため、タイプに関係なく、すべての SPU の CPU のフル容量使用率が得られます。
適応モードのセッション分散と重み付きラウンドロビン(WRR)セッション分散を区別するのは、重みの動的計算です。WRR は、異なるタイプの SPU に重みを計算して割り当てることで SPU とその CPU 容量を区別しますが、計算と割り当ては静的であり、初期化時に 1 回だけ行われます。適応モードは、WRR の固定比率のセッション分散プロセスを改善します。WRR では、セッション処理制限が SPU のタイプとその CPU 容量のみに基づいて設定され、使用可能な処理能力が考慮されないため、システム リソースが十分に活用されません。
適応モードのセッション分散では、次の式を使用して SPU に割り当てられた重みを計算します。
Wi = Sum(W1-n)*Ci*Si/Sum(C1-n*S1-n)
どこ:
Wi— SPU に割り当てられた重み。Sum(W1-n)— システムの総重量。この値は定数です。n—SPU の総数。Ci—SPU の使用可能な 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 パーセント = 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 に割り当てられています。
重み付けされた数値は、中央点がランタイム使用情報を確認し、重みを新しい値に調整するまでの短い期間内に、システム上で有効になる場合があります。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。