Express Pathの概要
Express Path(以前は サービス オフロードと呼ばれていました)は、サービス処理ユニット(SPU)ではなくネットワーク プロセッサで高速パス パケットを処理するメカニズムです。Express Path は、特定のトラフィックを SPU からネットワークプロセッサにオフロードすることで、パフォーマンスを向上させます。
ネットワークプロセッサ上でExpress Pathセッションを作成すると、フローの後続のパケットはネットワークプロセッサ上のセッションと一致します。次に、ネットワークプロセッサがパケットを処理して転送します。Express Path はノード間のセッションの HA フォワードをサポートしていないため、ノード間の非対称ルーティングを設定することはできません。
ネットワークプロセッサは、TCPシーケンスチェック、TTL(Time-to-live)処理、ネットワークアドレス変換(NAT)、レイヤー2ヘッダー変換などの追加処理も管理します。IOC3 上のフロー テーブルは、フロー モジュールの SPU によって管理されます。SPUは、ポリシーマッチング結果に基づいて、フローテーブルにフローエントリーを挿入および削除します。Express Path は IPv6 をサポートしています。
図は、Express Path のパケットフローを示しています。
Express Path のメリット
-
シングルフローおよびシャーシレベルのパフォーマンスが大幅に向上します。
-
SPUの使用率と遅延を削減します。
Express Pathの制限事項
Express Path は以下をサポートしていません。
-
顔立ち
-
透過モード
-
複数のファンアウトによるマルチキャストセッション
-
フラグメントパケット
-
IPsec VPN
-
異なるMTUサイズ値
-
Jフロー
-
柔軟なVLANタギング
-
-
アプリケーション層ゲートウェイ(ALG)データトラフィック:
-
DNS
-
IKEおよびESP
-
PPTP
-
SQL-NET
-
-
IPv6
-
NAT
-
透過モード
-
異なるMTUサイズ値
-
エグレスインターフェイスのサービスクラス(CoS)
-
ファイアウォールフィルターを使用してトラフィックを仮想ルーターに誘導する場合、エクスプレスパスとパケットオフロードは機能しません。
シャーシクラスターモードで動作するデバイスでExpress Pathを有効にした場合:
-
非対称I/Oカード(IOC)は設定できません。
-
LACP対応のrethインターフェイスからの子リンクがダウンした場合、このリンク上のすべてのトラフィックは、インターフェイスの他のアクティブな子リンクに分散されます。子リンクが立ち上がってrethインターフェイスに再参加した場合、既存のトラフィックまたはセッションは、新しく再参加したこのアクティブな子リンク上で再分配されません。新しいセッションはこのリンクを通過します。
-
新しい子リンクが LACP 対応の reth インターフェイスに追加された場合、既存のトラフィックまたはセッションはこの新しい子リンク上で再分配されません。新しいセッションはこのリンクを通過します。
自動化された Express Path
自動エクスプレスパスは、Junos OSリリース21.2R1からデフォルトで有効になっています。Junosリリース21.2R1以降にアップグレードすると、追加の設定やハードウェア投資なしで、比類のない次世代ファイアウォールのパフォーマンスを無料で利用できるようになります。デフォルトでは、自動Express Pathが有効になっています。
リリース21.2R1 Junos OSルールごとのExpress Pathを無効にするには、 set security policies from-zone [untrust] to-zone ptrust] policy [services-offload-pol1] then permit no-services-offload コマンドを使用します。
ルールごとにサービスオフロードを有効にして以前の動作に戻すには、 set security forwarding-options services-offload disable コマンドを使用します。
自動 Express Path では、次の機能がサポートされています。
-
ステートフルファイアウォール
-
ネットワークアドレス変換(NAT)
-
統合ポリシー(動的アプリケーションとURLカテゴリを使用)
-
ユーザーファイアウォール
-
セキュリティインテリジェンス
-
侵入検出および防止(IDP)
-
拡張Webフィルタリング
-
アプリケーション層ゲートウェイ(ALG)
-
スクリーン(DDoS対策)
Express Path はトラフィックをどのように処理しますか?
最初のパケットがインターフェイスに到着すると、ネットワークプロセッサはそれを中央点(CP)に転送します。次に、中央点がパケットをSPUに転送します。次に、SPUはネットワークプロセッサ上でセッションを作成し、トラフィックがExpress Pathセッションまたは通常のセッションに適格かどうかを確認します。
トラフィックがExpress Path処理の対象となる場合、SPUでトラフィックのExpress Pathセッションが作成されます。Express Path セッションは、ネットワークプロセッサ内の高速パスパケットを処理し、ネットワークプロセッサから出るパケットを処理します。
トラフィックがExpress Path処理の対象でない場合、SPUは通常のセッションを作成します。通常のセッションでは、高速パス処理のためにネットワークプロセッサからSPUにパケットを転送します。
Express Path ネットワーク プロセッサー
ネットワークプロセッサを搭載したSRXファイアウォールでは、パケットプラグインやストリームプラグインを含むすべてのプラグインがセッションを無視する場合、セッションをオフロードし、ネットワークプロセッサにセッションをインストールします。パケットプラグインがセッションを無視する場合、無視フラグをマークします。ストリーミングプラグインがセッションを無視した場合、無視フラグをマークし、TCP-TとTCP-Iを短絡させます。次に、ネットワークプロセッサにセッションをインストールして、セッションをオフロードします。
I/O カード(IOC)ネットワークプロセッサは、スイッチファブリックやSPUを経由せずに高速パスパケットを処理します。これにより、パケット処理の遅延が短縮されます。
各フロー エントリには、Express Path ネットワーク プロセッサのウィングごとのカウンターがあります。カウンタは、ネットワークプロセッサがウィングを介して送信するバイト数をキャプチャします。
さまざまなシナリオでのネットワークプロセッサの動作は、以下のとおりです。
-
最初のパスフロー—最初のパスフローは、現在のネットワークプロセッサフロープロセスと同じです。最初のパケットがネットワークプロセッサに到着すると、ネットワークプロセッサはTCPまたはUDPパケットを解析して5タプル鍵を抽出し、フローテーブルでセッション検索を実行します。次に、ネットワークプロセッサは最初のパケットを中央ポイントに転送します。これは最初のパケットであるため、現時点では中央点に一致するものを見つけることができません。中央点とSPUはセッションを作成し、それをユーザーが設定したポリシーと照合して、そのセッションが通常のセッションかサービスオフロードセッションかを判断します。
Express Path で管理するセッションを指定すると、SPU はネットワーク プロセッサー フロー テーブルにセッション エントリーを作成します。これにより、セッションエントリーテーブルでExpress Pathフラグが有効になります。それ以外の場合、SPUはExpress Pathフラグなしでネットワークプロセッサに通常のセッションエントリを作成します。
-
高速パスフロー—ネットワークプロセッサでセッションエントリーを作成すると、セッションの後続のパケットがセッションエントリーテーブルと一致します。
-
Express Path フラグが設定されていない場合、ネットワークプロセッサは、セッションエントリーテーブルで指定されたSPUにパケットを転送します。パケットは通常のフロープロセスを通過します。
-
ネットワークプロセッサは、セッションエントリテーブルでservices-offloadフラグを見つけると、パケットをローカルで処理し、パケットを直接送信します。
-
ネットワークプロセッサの早送り機能は、ワンファンアウトのマルチキャストセッションをサポートします。また、セッション内のエグレスポートは、イングレスポートと同じネットワークプロセッサに関連付けられている必要があります。その他のマルチキャストケースは、通常のセッションとして管理する必要があります。
-
-
NATプロセス—SPUは、内部IPアドレスまたはポートと外部IPアドレスまたはポート間のマッピングを担当します。セッションの最初のパケットが到着すると、SPUはIPアドレスまたはポートマッピングを割り当て、その情報をネットワークプロセッサセッションエントリーに保存します。NATフラグが設定されている場合、ネットワークプロセッサはパケットを変更します。
-
セッションのエージアウト—サービスオフロードセッションのトラフィックスループットを改善するために、SPUのパケット処理の需要を減らすために、事前に定義された期間ごとにパケットのコピーがSPUに送信されます。SPUに送信されるパケットコピー数を制限するために、サービスオフロードセッションごとにタイムスタンプが実装されます。ネットワークプロセッサは、最後のセッション一致からの経過時間を計算します。経過時間が定義された期間より長くある場合、ネットワークプロセッサはパケットのコピーをSPUに送信し、セッションタイムスタンプを更新します。
-
セッションの終了と削除—ネットワークプロセッサは、FIN(終了データ)またはRST(接続のリセット)フラグを持つIPパケットを受信すると、パケットをSPUに転送します。その後、SPUはネットワークプロセッサ上のセッションキャッシュを削除します。ネットワークプロセッサは、状態遷移中もパケットの受信とSPUへの転送を継続します。
翼統計カウンタ
Express Path では、ネットワーク プロセッサによって、各フロー エントリーにウィングごとのバイト カウンターを保持するオプションが用意されています。カウンタは、ネットワークプロセッサがウィングを介して送信するバイト数をキャプチャします。
カウンターを有効にすると、ネットワークプロセッサはすべてのイングレスパケットのフローエントリー(セッションウィング)を検索します。パケットが確立されたフローエントリーに属している場合、ネットワークプロセッサはパケット内のフローエントリーのバイトカウンターを増やします。ネットワークプロセッサは、各フローエントリーのパケット(コピーパケット)を関連するSPUに定期的にコピーし、SPUがセッションを維持できるようにします。ネットワークプロセッサは、コピーパケットパケットのヘッダーにフローバイトカウンター値を送信します。SPUは、ウィングごとの統計カウンターを蓄積して保持します。
ライブセッションのライフサイクル中に統計設定を変更することはできません。セッションがネットワークプロセッサでアクティブ中にウィングごとの統計設定を無効または有効にすると、現在のセッションのセッション統計は無効になります。新しいセッション統計は、設定変更がコミットされた後にのみ有効になります。ネットワークプロセッサのウィングごとのカウンターはクリアできません。
ウィングあたりのセッション数統計
ネットワークプロセッサは、セッションリソースに対応するため、SRAM(スタティックRAM)が大きくなっているため、PICあたりより多くのセッションをホストできます。 #concept_gkc_1ry_4sb__per-wing-sessions は、Express Pathと非Express Pathの両方を含むセッションウィングの合計数を表示します。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。追加のプラットフォームがサポートされる場合があります。
詳細については、 #concept_gkc_1ry_4sb__section_azn_4yk_khc セクションを参照してください。
補足プラットフォーム情報
| 翼の総数 |
Express Path UDP ウィングの数 |
Express Path TCPウィングの数 |
|||
|---|---|---|---|---|---|
| カードとSRXシリーズファイアウォール | 非Express Pathモードセッション | 統計情報なし | 統計情報付き | 統計情報なし | 統計情報付き |
| SRX5000シリーズデバイス、SRX5K-MPC(IOC2) |
180万 |
180万 |
180万 |
180万 |
180万 |
| SRX5000シリーズデバイス、SRX5K-MPC3(IOC3) |
2,000万 |
2,000万 |
2,000万 |
2,000万 |
2,000万 |
| SRX5000シリーズデバイス、SRX5K IOC4 |
1,000万 |
1,000万 |
1,000万 |
1,000万 |
1,000万 |
| SRX4600 |
2,000万 |
2,000万 |
2,000万 |
2,000万 |
2,000万 |
IOCカードでのExpress Pathパケット処理
IOC カードの Express Path は、SPU ではなくネットワーク プロセッサ チップセットを介して高速パス パケットを処理することに基づき、一部の基本的なファイアウォール機能を IOC カードにオフロードします。
Express Path 機能を有効にしている場合、IOC カードは遅延を低くし、SPU のオーバーロードを取り除くことでスループットも向上させます。IOCカードは、カード内トラフィックフローとカード間トラフィックフローの両方をサポートします。最良の遅延結果を得るには、トラフィックフローのイングレスポートとエグレスポートの両方が、IOCカードの同じXMチップ上にある必要があります。
IOCカードは240Gbps FPCをサポートし、第3世代ネットワーク処理(NP)シリーズのチップセットを使用しています。この最新のルックアップおよびキューイングチップは、大容量向けに最適化されています。IOC カードは SCB2 および SCB3 と互換性があり、それ以前の SCB はサポートされていません。
電力と熱に制約があるため、IOCカード内の4つのPICすべての電源を同時にオンにすることはできません。偶数または奇数の順序で最大2つのPICの電源を入れます。 set chassis fpc <slot> pic <pic> power off コマンドを使用して、電源を入れるPICを選択できます。
システムログメッセージは以下の通りです。
-
XMCHIP_CMERROR_DDRIF_INT_REG_CHKSUM_ERR_MINOR
-
XMCHIP_CMERROR_DDRIF_INT_REG_CHKSUM_ERR_MAJOR
エラーメッセージは、フレキシブルPICコンセントレータ(FPC)上のXMチップがチェックサムエラーを検出し、パケットドロップを引き起こしていることを示しています。以下のエラーしきい値は、エラーを重大エラーまたは軽微なエラーに分類します。
-
軽微なエラー - 毎秒> 5 エラー
-
重大エラー —> 255 エラー/秒(最大カウント)
データプレーンでは、IOCカードがパケットを解析し、フローテーブルで検索します。IOCカードがフローテーブルに一致するものを見つけると、フローテーブルに示された指示に基づいてパケットを転送します。IOCカードは、NATを実行し、レイヤー2(L2)ヘッダーをカプセル化し、エグレスインターフェイスからパケットを転送できます。egressインターフェイスは、同じIOCカード(カード内ケース)または別のIOCカード(カード間ケース)に配置できます。
IOCカードが最初のパケットを受信すると、既存の早送りセッションと一致しません。デフォルトのハッシュベース転送が実行され、最初のパケットがSPUに送信されます。その後、SPUがセキュリティセッションを作成します。SPUが、トラフィックが高速転送に適しており、関連するIOCカードが高速転送をサポートしていることを検出した場合、IOCカードに高速転送セッションをインストールします。トラフィックに高速転送を適用できない場合、セッションメッセージは送信されず、IOCカードはデフォルトのハッシュベース転送を使用してパケットをSPUに転送します。
早送りIOCカード処理では、早送りセッションが一致した場合、セッションフローの結果に従ってパケットを直接転送できます。IOCカードは、パケットの転送、TTLチェックとNAT変換の減少、レイヤー2ヘッダーのカプセル化など、必要なすべてのアクションを実行します。
さらに、XLチップは、事前に定義された時間に転送パケットのコピーを1つSPUに送信します。このコピーは、SPUセッションの更新や、現在のXLチップの状態の検出などに使用されます。SPUはこのパケットを消費し、実際のパケットが処理および送信されているため、転送しません。