IPv6フローベース処理
このトピックでは、IPv6トラフィックとIPv6セッションのフロー処理について説明します。
IPv6 アドバンスドフロー
IPv6 アドバンスドフローでは、ファイアウォール、NAT、NAT-PT、マルチキャスト(ローカル リンクとトランジット)、IPsec、IDP、JSF フレームワーク、TCP プロキシ、セッション マネージャーが SRXシリーズ ファイアウォールで IPv6 サポートを追加できます。MIB は IPv6 フローでは使用されません。
現在のIPv4環境への影響を回避するために、IPv6セキュリティが使用されています。IPv6セキュリティが有効になっている場合、拡張セッションとゲートが割り当てられます。既存のアドレスフィールドとゲートは、拡張セッションまたはゲートのインデックスを格納するために使用されます。IPv6セキュリティが無効になっている場合、IPv6セキュリティ関連のリソースは割り当てられません。
既存のIPv4システムのパフォーマンスへの影響を防ぐために、IPv6フロートラフィックに新しいログが使用されます。
IPv6アドバンスドフローの動作と実装は、ほとんどの場合、IPv4と同じです。
IPv6のセッション、ゲート、IPアクション、マルチスレッドの処理、配信、ロック、同期、シリアル化、順序付け、パケットキューイング、非同期メッセージング、IKEトラフィック問題、サニティーチェック、およびIPv6のキューの実装は、IPv4の実装と類似しています。
違いのいくつかを以下に説明します。
Header Parse IPv6 アドバンスドフローは、以下の拡張ヘッダーに遭遇した場合、ヘッダーの解析を停止し、対応するプロトコルパケットとしてパケットを解釈します。
TCP/UDP
ESP/AH
ICMPv6
IPv6 高度なフローは、以下の拡張ヘッダーに遭遇した場合、ヘッダーの解析を続行します。
ホップバイホップ
ルーティングと宛先、フラグメント
IPv6アドバンスドフローは、拡張ヘッダーNo Next Headerに遭遇した場合、パケットを不明なプロトコルパケットとして解釈します
Sanity Checks— IPv6 アドバンスドフローは、以下のサニティーチェックをサポートしています。
TCP長
UDPの長さ
ホップバイホップ
IPデータ長エラー
レイヤー3サニティーチェック(IPバージョンやIP長など)
ICMPv6 Packets IPv6アドバンスドフローでは、ICMPv6パケットは通常のIPv6トラフィックと同じ動作を共有しますが、次の例外があります。
組み込みICMPv6パケット
パス MTU メッセージ
Host Inbound and Outbound Traffic IPv6アドバンスドフローは、OSPF v3、RIPng、Telnet、SSHなど、ルーティングエンジン(RE)で実行されているすべてのルートおよび管理プロトコルをサポートします。フローではフローラベルは使用されていないことに注意してください。
Tunnel Traffic IPv6 アドバンスドフローは、以下のトンネルタイプをサポートしています。
IPv4、IP-IP
IPv4 GRE
IPv4 IPsec
デュアルスタックライト
Events and Logs 以下のログはIPv6関連のフロートラフィック用です。
RT_FLOW_IPVX_SESSION_DENY
RT_FLOW_IPVX_SESSION_CREATE
RT_FLOW_IPVX_SESSION_CLOSE
IPv6フローのセッションについて
このトピックでは、フローベースのセッションの概要を説明します。
ほとんどのパケット処理は、ポリシー、ゾーン、およびほとんどの画面の管理を含むフローのコンテキストで行われます。セッションは、以下の目的でフローの最初のパケットに対して作成されます。
フローのパケットに適用されるセキュリティ対策のほとんどを保存します。
フローの状態に関する情報をキャッシュします。例えば、フローのロギングとカウント情報は、そのセッションにキャッシュされます。(また、一部のステートフルファイアウォール画面は、個々のセッションまたはすべてのセッションに関連するしきい値に依存しています。
フローの機能に必要なリソースを割り当てます。
アプリケーション層ゲートウェイ(ALG)などの機能のフレームワークを提供するため。
SRX5400、SRX5600、および SRX5800 デバイスでの IPv6 フロー処理について
このトピックでは、SRX5400、SRX5600、SRX5800デバイスのアーキテクチャを紹介します。これらのデバイス上のフロー処理は、支社/拠点のSRXシリーズファイアウォール上のフロー処理と似ています。
これらのデバイスには、I/O カード(IOC)とサービス処理カード(SPC)が含まれており、それぞれにデバイスを通過するパケットを処理する処理ユニットが含まれています。これらの処理ユニットには、さまざまな責任があります。
IOC上で動作するネットワーク処理ユニット(NPU)。IOCには、1つ以上のNPUがあります。NPU はパケットを個別に処理し、基本的なフロー管理機能を実行します。
IPv6 パケットが IOC に到着すると、パケットフロープロセスが開始されます。
NPU は、パケットに対して以下の IPv6 サニティー チェックを実行します。
IPv6 基本ヘッダーについては、以下のヘッダー チェックを実行します。
バージョン。ヘッダーがバージョンのIPv6を指定していることを確認します。
ペイロード長。ペイロード長をチェックして、IPv6パケットとレイヤー2ヘッダーの合計長がレイヤー2フレーム長よりも短くなっていることを確認します。
ホップ制限。ホップ制限で0(ゼロ)が指定されていないことを確認します。
アドレスチェック。送信元 IP アドレスが ::0 または FF::00 を指定していないこと、宛先 IP アドレスが ::0 または ::1 を指定していないことを確認します。
NPUは、以下を含むIPv6拡張ヘッダーチェックを実行します。
ホップバイホップオプション。これがIPv6基本ヘッダーに続く最初の拡張ヘッダーであることを検証します。
ルーティング拡張。ルーティング拡張ヘッダーが1つだけであることを検証します。
宛先オプション。2つ以下の宛先オプション拡張ヘッダーが含まれていることを確認します。
フラグメント。フラグメントヘッダーが1つしかないことを確認します。
注:NPUは、その他の拡張ヘッダーをレイヤー4ヘッダーとして扱います。
NPUは、以下を含むレイヤー4 TCP、UDP、ICMP6プロトコルチェックを実行します。
UDP。最初のフラグメントパケット以外のIPペイロード長パケットの長さが少なくとも8バイトであることを確認します。
TCPです。最初のフラグメントパケット以外のIPペイロード長パケットの長さが少なくとも20バイトであることを確認します。
ICMPv6です。最初のフラグメントパケット以外のIPペイロード長パケットの長さが少なくとも8バイトであることを確認します。
パケットがTCPまたはUDPプロトコルを指定している場合、NPUは以下の情報を使用してパケットヘッダーデータからタプルを作成します。
送信元IPアドレス
宛先IPアドレス
送信元ポート
宛先ポート
プロトコル
仮想ルーター識別子(VRID)
デバイスは、VRID テーブルから VRID を検索します。
ICMPv6(Internet Control Message Protocol version 6)パケットの場合、タプルには、送信元と宛先ポートフィールドを除き、TCPおよびUDP検索キーに使用されるものと同じ情報が含まれています。送信元と宛先ポートのフィールドは、ICMPv6パケットから抽出された以下の情報に置き換えられます。
ICMPエラーパケットの場合: パターン「0x00010001」
ICMP 情報パケットの場合: タイプまたはコード、フィールド識別子
認証ヘッダー(AH)またはカプセル化セキュリティペイロード(ESP)ヘッダーを持つパケットの場合、検索キーは送信元と宛先ポートフィールドを除き、TCPおよびUDPタプルに使用されるものと同じです。この場合、送信元ポートと宛先ポートではなく、SPI(セキュリティパラメーターインデックス)フィールド値が使用されます。セキュリティペイロード(ESP)ヘッダーと認証ヘッダー(AH)のカプセル化では、センラルポイントアーキテクチャの拡張前は3タプルとSPI(セキュリティパラメーターインデックス)フィールドでハッシュされ、センターポイントアーキテクチャの拡張後はIPペアでハッシュされます。
パケットのフローにセッションが存在する場合、NPUはセッションを管理するSPUにパケットを送信します。
一致するセッションが存在しない場合、
NPUはパケット情報を中央ポイントに送信し、保留中のセッションを作成します。
中央点は、パケットを処理し、そのセッションを作成するSPUを選択します。
次に、SPUはセッション作成メッセージを中央ポイントとイングレスおよびエグレスNPUに送信し、パケットフローのセッションを作成するように指示します。
専用SPUで実行できる中央点、またはSPUが1つしかない場合は1つのリソースを共有できます。中央点が仲裁とリソースの割り当てを管理し、インテリジェントな方法でセッションを分散します。中央点は、SPUがフローの最初のパケットを処理するときに、特定のセッションに使用するSPUを割り当てます。
SRX5000シリーズデバイスの場合、セントラルポイントアーキテクチャは、アプリケーションセントラルポイントと分散セントラルポイント(DCP)の2つのモジュールに分かれています。App-CP はグローバル リソース管理とロード バランシングを担当し、DCP はトラフィックの識別(グローバル セッション マッチング)を担当します。App-CP 機能は専用のセントラル ポイント SPU で実行され、DCP 機能は残りの SPU に分散されます。
サービス処理カード(SPC)で実行される1つ以上のSPU。パケットのすべてのフローベースサービスは、パケットフロー用に設定されたセッションのコンテキスト内で、単一のパケットフローで実行されます。
SRX5000シリーズデバイス用のSPCには、2つのSPUがあります。
複数のSPCをシャーシに取り付けることができます。
主に、SPUは以下のタスクを実行します。
セッションを管理し、セキュリティ機能やその他のサービスをパケットに適用します。
パケットベースのステートレスファイアウォールフィルター、分類子、トラフィックシェーパーを適用します。
パケットのセッションがまだ存在しない場合、SPUはパケットのセッションの検索を実行したNPUにリクエストメッセージを送信し、そのパケットのセッションを追加するように指示します。
システムのこれらの個別の協調部分には、パケットのストリームに対してセッションが存在するかどうかを示す情報と、既存のセッションに属しているかどうかを判断するためにパケットが照合される情報が格納されます。
IPv6トラフィックのフローベース処理の有効化
IPv6トラフィックの処理には、以下のオプションがあります。
ドロップ—IPv6パケットを転送しません。
パケットベースの転送—パケットベースの機能(ファイアウォールフィルターやサービスクラスを含む)のみに従ってセッションやプロセスを作成しないでください。
フローベースの転送—パケットベースの機能(ファイアウォールフィルターやサービスクラスを含む)だけでなく、画面やファイアウォールセキュリティポリシーなどのフローベースのセキュリティ機能に従って、セッションとプロセスを作成します。これはデフォルトの動作です。
IPv6トラフィックのフローベース処理を有効にするには、[edit security forwarding-options family inet6]階層レベルでmodeステートメントを変更します。
security {
forwarding-options {
family {
inet6 {
mode flow-based;
}
}
}
}
次の例は、IPv6トラフィックの転送を設定するために使用するCLIコマンドを示しています。
[edit]
user@host# set security forwarding-options family inet6 mode ?
Possible completions:
drop Disable forwarding
flow-based Enable flow-based forwarding
packet-based Enable packet-based forwarding
[edit]
user@host# set security forwarding-options family inet6 mode flow-based
user@host# show security forwarding-options
family {
inet6 {
mode flow-based;
}
}
IPv6の転送オプションモードを変更した場合、設定変更を初期化するために再起動を実行する必要がある場合があります。 表1は 、設定変更時のデバイスの状態をまとめたものです。
構成変更 |
コミットに関する警告 |
再起動が必要 |
再起動前の既存トラフィックへの影響 |
再起動前の新規トラフィックへの影響 |
|---|---|---|---|---|
フローベースにドロップ |
はい |
はい |
ドロップ済み |
ドロップ済み |
パケットベースへのドロップ |
いいえ |
いいえ |
パケットベース |
パケットベース |
フローベースからパケットベースへ |
はい |
はい |
なし |
作成されたフローセッション |
フローベースからドロップ |
はい |
はい |
なし |
作成されたフローセッション |
パケットベースからフローベースへ |
はい |
はい |
パケットベース |
パケットベース |
パケットベースでドロップ |
いいえ |
いいえ |
ドロップ済み |
ドロップ済み |
セキュリティデバイス上のIPv6トラフィックのフローベース処理
フローベースの処理モードは、ゾーン、スクリーン、ファイアウォールポリシーなどのセキュリティ機能を機能させるために必要です。デフォルトでは、SRXシリーズファイアウォールは、ドロップモードに設定されているSRX300シリーズデバイスを除くすべてのデバイスでIPv6トラフィックのフローベース転送に対して有効になっています。Junos OSリリース15.1X49-D70およびリリース17.3R1以降Junos OS、SRX4100、SRX4200、SRX5400、SRX5600、SRX5800、およびvSRX仮想ファイアウォールデバイスでは、フローモード、パケットモード、およびドロップモードの間でモードを切り替えるときにデバイスを再起動する必要はありません。SRX300シリーズデバイスでは、フローモード、パケットモード、ドロップモードを切り替えるときにデバイスを再起動する必要があります。
SRX300 Series Devices
SRX300シリーズデバイスでIPv6が設定されている場合、メモリの制約により、デフォルトの動作はドロップモードに設定されます。この場合、処理モードをドロップモードのデフォルトからフローベース処理モードまたはパケットベース処理モード(つまり、これらのデバイス上のモード間)に変更した後、デバイスを再起動する必要があります。
ドロップモード処理の場合、トラフィックは直接ドロップされ、転送されません。トラフィックは処理されますが、セキュリティプロセスは適用されないパケットモード処理とは異なります。
SRX300シリーズデバイスでIPv6トラフィックを処理するには、トラフィックを受信および転送するトランジットインターフェイスにIPv6アドレスを設定する必要があります。inet6プロトコルファミリーとインターフェイスにIPv6アドレスを設定する手順については、こちらをご覧ください。
Configuring an SRX Series Device as a Border Router
任意のタイプのSRXシリーズファイアウォールでフローベース処理またはドロップモードが有効になっている場合、デバイスをボーダールーターとして設定するには、モードをMPLSのパケットベース処理に変更する必要があります。この場合、SRXシリーズファイアウォールをMPLSのパケットモードに設定するには、 set security forwarding-options family mpls mode packet-based ステートメントを使用します。
Enabling Flow-Based Processing for IPv6 Traffic on SRX300 Series Devices
SRX300シリーズデバイスでIPv6トラフィックのフローベース転送を有効にするには、[edit security forwarding-options family inet6]階層レベルでモードを変更します。
security {
forwarding-options {
family {
inet6 {
mode flow-based;
}
}
}
}
SRX300シリーズデバイスでIPv6トラフィックの転送を設定するには:
SRX300シリーズデバイスの場合、デバイスはIPv6タイプ0ルーティングヘッダー(RH0)パケットを破棄します。
フィルターを使用して、SRXシリーズサービスゲートウェイのIPv6セッションとフロー情報を表示する
目的
show security flow session コマンドを使用すると、1 つ以上のセッションに関するフローおよびセッション情報を表示できます。IPv6セッションは、集計統計情報に含まれます。
show security flow sessionコマンドで使用できるフィルターは、application、destination-port、destination-prefix、family、idp、interface、nat、protocol、resource-manager、session-identifier、source-port、source-prefix、およびトンネルです。
セッション識別子フィルターを除く他のすべてのフィルターの出力は、概要、要約、拡張モードで表示できます。ブリーフモードはデフォルトモードです。セッション識別子フィルターの出力は、ブリーフモードでのみ表示できます。
clear security flow sessionコマンドで同じフィルターオプションを使用して、セッションを終了できます。
アクション
以下の例は、IPv6 関連フィルターを使用して、IPv6 セッションの概要と詳細を表示する方法を示しています。
ファミリーに基づいてフィルタリングされた概要レポート
root> show security flow session summary family ? Possible completions: inet Show IPv4 sessions inet6 Show IPv6/IPv6-NATPT sessions root> show security flow session summary family inet6 Flow Sessions on FPC10 PIC1: Valid sessions: 2 Pending sessions: 0 Invalidated sessions: 0 Sessions in other states: 0 Total sessions: 2 Flow Sessions on FPC10 PIC2: Valid sessions: 1 Pending sessions: 0 Invalidated sessions: 0 Sessions in other states: 0 Total sessions: 1 Flow Sessions on FPC10 PIC3: Valid sessions: 0 Pending sessions: 0 Invalidated sessions: 1 Sessions in other states: 0 Total sessions: 1
ファミリーに基づいてフィルタリングされた詳細レポート
root> show security flow session family ? Possible completions: inet Show IPv4 sessions inet6 Show IPv6/IPv6-NATPT sessions root> show security flow session family inet6 Flow Sessions on FPC10 PIC1: Total sessions: 0 Flow Sessions on FPC10 PIC2: Total sessions: 0 Flow Sessions on FPC10 PIC3: Session ID: 430000026, Policy name: default-policy-00/2, Timeout: 1794, Valid In: 2001:db8::10/64712 -> 2001:db8::4/21;tcp If: ge-7/1/0.0, Pkts: 8, Bytes: 562, CP Session ID: 430000025 Out: 2001:db8::4/21 --> 2001:db8::10/64712;tcp, If: ge-7/1/1.0, Pkts: 12, Bytes: 1014, CP Session ID: 430000025 Total sessions: 1
ファミリーに基づいてフィルタリングされた簡単なレポート
root> show security flow session family inet brief Flow Sessions on FPC10 PIC1: Session ID: 410000031, Policy name: default-policy-00/2, Timeout: 48, Valid In: 203.0.113.8/3 --> 198.51.100.11/43053;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 410000039 Out: 198.51.100.11/43053 --> 203.0.113.8/3;icmp, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 410000039 Total sessions: 1 Flow Sessions on FPC10 PIC2: Session ID: 420000034, Policy name: default-policy-00/2, Timeout: 48, Valid In: 203.0.113.8/4 --> 198.51.100.11/43053;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 420000041 Out: 198.51.100.11/43053 --> 203.0.113.8/4;icmp, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 420000041 Total sessions: 1 Flow Sessions on FPC10 PIC3: Session ID: 430000042, Policy name: default-policy-00/2, Timeout: 44, Valid In: 203.0.113.8/2 --> 198.51.100.11/43053;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 430000041 Out: 198.51.100.11/43053 --> 203.0.113.8/2;icmp, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 430000041 Total sessions: 1 2001:dbf8::6:2/32
IPv6ソースプレフィックスに基づいてフィルタリングされた詳細レポート
root> show security flow session source-prefix 2001:dbf8::
Flow Sessions on FPC10 PIC1:
Session ID: 410000066, Policy name: default-policy-00/2, Timeout: 2, Valid
In: 2001:dbf8::6:2/3 > 2001:dbf8:5::2/7214;icmp6, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 410000076
Out: 2001:dbf8:5::2/7214 --> 2001:dbf8:5::2/323;icmp6, If: .local..0, Pkts: 1, Bytes: 104, CP Session ID: 410000076
Session ID: 410000068, Policy name: default-policy-00/2, Timeout: 2, Valid
In: 2001:dbf8::6:2/4 --> 2001:dbf8:5::2/7214;icmp6, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 410000077
Out: 2001:dbf8:5::2/7214 --> 2001:dbf8::6:2/4;icmp6, If: .local..0, Pkts: 1, Bytes: 104, CP Session ID: 410000077
Total sessions: 2
Flow Sessions on FPC10 PIC2:
Session ID: 420000067, Policy name: default-policy-00/2, Timeout: 28, Valid
In: 2001:dbf8::6:2/4 --> 2001:dbf8:5::3/6702;icmp6, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 420000080
Out: 2001:dbf8:5::3/6702 --> 2001:dbf8::6:2/4 ;icmp6, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 420000080
Total sessions: 1
Flow Sessions on FPC10 PIC3:
Session ID: 430000077, Policy name: default-policy-00/2, Timeout: 28, Valid
In: 2001:dbf8::6:2/3 --> 2001:dbf8:5::3/6702;icmp6, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 430000075
Out: 2001:dbf8:5::3/6702 --> 2001:dbf8::6:2/3;icmp6, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 430000075
Session ID: 430000078, Policy name: default-policy-00/2, Timeout: 30, Valid
In: 2001:dbf8::6:2/5 --> 2001:dbf8:5::3/6702, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 430000076
Out: 2001:dbf8:5::3/6702 --> 2001:dbf8::6:2/5;icmp6, If: ge-7/1/1.0, Pkts: 0, Bytes: 0, CP Session ID: 430000076
Session ID: 430000079, Policy name: default-policy-00/2, Timeout: 2, Valid
In: 2001:dbf8::6:2/5 --> 2001:dbf8:5::1/7214;icmp6, If: ge-7/1/0.0, Pkts: 1, Bytes: 104, CP Session ID: 430000077
Out: 2001:dbf8:5::1/7214 --> 2001:dbf8::6:2/5;icmp6, If: .local..0, Pkts: 1, Bytes: 104, CP Session ID: 430000077
Total sessions: 3
ファミリー、プロトコル、ソースプレフィックスに基づく複数フィルターされた詳細レポート
root> show security flow session family inet protocol icmp source-prefix 2001:db8:: Flow Sessions on FPC10 PIC1: Session ID: 410000074, Policy name: default-policy-00/2, Timeout: 2, Valid In: 2001:dbf8::6:2/1 --> 2001:dbf8:8::2/26935;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 410000195 Out: 2001:dbf8:8::2 --> 2001:dbf8::6:2/1;icmp, If: ge-7/1/1.0, Pkts: 1, Bytes: 84, CP Session ID: 410000195 Total sessions: 1 Flow Sessions on FPC10 PIC2: Session ID: 420000075, Policy name: default-policy-00/2, Timeout: 2, Valid In: 2001:dbf8::6:2/3 --> 2001:dbf8::6:2/26935;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 420000159 Out: 2001:dbf8::6:2/26935 --> 2001:dbf8::6:2/3;icmp, If: ge-7/1/1.0, Pkts: 1, Bytes: 84, CP Session ID: 420000159 Total sessions: 1 Flow Sessions on FPC10 PIC3: Session ID: 430000085, Policy name: default-policy-00/2, Timeout: 2, Valid In: 2001:dbf8::6:2/4 --> 2001:dbf8::6:2/26935;icmp, If: ge-7/1/0.0, Pkts: 1, Bytes: 84, CP Session ID: 430000083 Out: 2001:dbf8::6:2/26935 --> 2001:dbf8::6:2/4;icmp, If: ge-7/1/1.0, Pkts: 1, Bytes: 84, CP Session ID: 430000083 Total sessions: 1
IPv6セッションを含むすべてのセッションをクリアする
root> clear security flow session all This command may terminate the current session too. Continue? [yes,no] (no) yes 0 active sessions cleared 1 active sessions cleared 1 active sessions cleared 1 active sessions cleared
IPv6セッションのみのクリア
root> clear security flow session family ? Possible completions: inet Clear IPv4 sessions inet6 Clear IPv6/IPv6-NATPT sessions root> clear security flow session family inet6 0 active sessions cleared 1 active sessions cleared 1 active sessions cleared 1 active sessions cleared
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。