Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ファイアウォール フィルターの柔軟な照合条件

標準のファイアウォール フィルターの一致条件は、一致するトラフィックのプロトコル ファミリーによって異なります。たとえば、ブリッジ プロトコル トラフィックに使用できる用語は、inet または inet6 プロトコル ファミリーで使用できる用語とは異なります。ただし、各プロトコル ファミリー内の照合に使用できるフィールドは、固定または事前定義されています。つまり、フィルターは、事前に定義されたフィールド内のパターンでのみ一致できます。

柔軟な照合条件を使用して、レイヤー 2、レイヤー 3、レイヤー 4、またはペイロードの場所で一致を開始するファイアウォール フィルターを構築できます。その結果、追加のオフセット基準を指定して、パケット内のカスタムユーザー定義の場所でパターン照会を有効にできます。

柔軟な一致フィルタ条件は、他のファイアウォール フィルタ条件と同様に、入出力フィルタとして MPC または MIC インターフェイスに適用されます。柔軟な一致フィルタ条件は、階層レベルで [edit firewall] テンプレートとして作成することもできます。これらのテンプレートは、柔軟な一致条件内で参照できます。

MX シリーズ ルーターの場合、柔軟な照合条件は MPC または MIC でのみサポートされます。FPC、PIC、DPC を MPC または MIC と共にインストールする環境では、MPC または MIC インターフェイスにのみ柔軟に一致するファイアウォール フィルタ条件を適用してください。

注:

MPC を搭載した MX シリーズ ルーターの場合、対応する SNMP MIB を歩くことで、MIB 内の Trio のみの一致フィルターのフィルター カウンターを初期化する必要があります。たとえば、Trio のみのフィルターに関して構成または変更されたフィルターについては、次のようなコマンドを実行する必要があります。show snmp mib walk (ascii | decimal) object-id. このため、Junos は強制的にフィルター カウンターを学習し、フィルター統計が表示されていることを確認します(これは、統計情報をフィルターする最初のポーリングですべてのカウンターが表示されない可能性があるためです)。Trio のみの一致フィルターは、Trio チップセットでのみサポートされている少なくとも 1 つの一致条件またはアクションを含むフィルターです。

このガイダンスは、すべての enhanced-mode ファイアウォール フィルターに適用されます。また、オフセット範囲またはオフセット マスクの柔軟な照会フィルタ条件、gre-keyおよび IPv6 トラフィックのファイアウォール フィルター一致条件と、次のいずれかの一致条件にも適用されますIPv4トラフィックのファイアウォールフィルター一致条件payload-protocol, extension headers, is_fragment. また、以下 ファイアウォール フィルタ終端処理のいずれかのフィルタにも適用されます。encapsulate または decapsulate、または以下 ファイアウォール フィルター非終端処理アクションのいずれか。policy-map、および clear-policy-map.

ステートメント階層

に示すように、柔軟な一致フィルタ条件は、3 つのバリエーションで 表 1利用できます。バリエーションは flexible-match 階層レベルで [edit firewall] 設定されます。柔軟な一致テンプレートを定義するために使用されます。および flexible-filter-match-maskflexible-match-range は階層で [edit firewall family [inet|inet6|bridge|ethernet-switching|ccc|vpls] filter <filter-name> term <term-name> from] 設定されます。EX9200 スイッチの family ethernet-switching フィルターを使用します。

柔軟なフィルター一致タイプ

表 1: 柔軟なフィルター一致タイプ

柔軟なフィルター一致タイプ

利用可能な属性

説明

flexible-match

<name>

<name>属性として指定されたフレキシブル マッチ テンプレートを作成します。

 

bit-length

文字列入力(0.32)に必要のないビットで照合するデータの長さ

QFX5120 および EX4650 スイッチの場合、有効なビット長は 16 と 32 のみです。

bit-offset

(マッチスタート + バイト) オフセット (0.7) の後のビット オフセット

byte-offset

照会開始点の後のバイト・オフセット

match-start

パケット内で一致する開始点

flexible-match-mask

bit-length

文字列入力(0..128)に必要のないビットで照合するデータの長さ

bit-offset

(マッチスタート + バイト) オフセット (0.7) の後のビット オフセット

byte-offset

照会開始点の後のバイト・オフセット

flexible-mask-name

定義済みのテンプレート フィールドから柔軟な照合を選択します。構成されていない限り match-start 必須。

mask-in-hex

照合するパケット データのビットをマスクします。

match-start

パケット内で一致する開始点。構成されていない限り flexible-mask-name 必須。

prefix

照合する値データ/文字列。

flexible-match-range

bit-length

照合するデータの長さをビットで示します。(0.32) 構成されていない場合 flexible-range-name は必須。

bit-offset

(マッチスタート + バイト) オフセットの後のビット オフセット。(0..7)

byte-offset

照会開始点の後のバイト・オフセット

flexible-range-name

事前定義されたテンプレートから柔軟に一致するものを選択します。

match-start

パケット内で一致する開始点。構成されていない限り flexible-range-name 必須。

range

照合する値の範囲。

range-except

一致しない値の範囲。

柔軟なフィルター一致の開始場所

柔軟な一致フィルタ条件は、パケット内の開始位置またはアンカー ポイントを与えることで構築されます。開始場所は次のいずれかになります。使用中のプロトコル ファミリーに応じて、レイヤー 2、レイヤー 3、レイヤー 4、またはペイロード。 表 2 は、プロトコル ファミリー別に使用可能な柔軟なフィルタ一致開始場所を示しています。これらの使用可能な開始場所は、 match-start 柔軟な一致フィルタ条件の場所として使用します。

これらの開始位置から、特定のバイトおよびビット オフセットを使用して、フィルターがパケット内の非常に特定の場所でパターンを一致させることができます。

表 2: 柔軟なフィルター一致の開始場所

プロトコル ファミリー

開始可能な場所

inet

layer-3, layer-4 and payload

QFX5120 および EX4650 スイッチでは、Junos リリース 20.1R1 でレイヤー 2 およびレイヤー 3(のみ)の柔軟な一致フィルターがサポートされました。

inet6

layer-3, layer-4 and payload

QFX5120 および EX4650 スイッチでは、Junos リリース 20.1R1 でレイヤー 2 およびレイヤー 3(のみ)の柔軟な一致フィルターがサポートされました。

bridge

layer-2, layer-3, layer-4 and payload

ccc

layer-2, layer-3, layer-4 and payload

mpls

layer-3 and payload

vpls

layer-2, layer-3, layer-4 and payload

ethernet-switching

(EX9200スイッチ) layer-2, layer-3, layer-4 and payload

QFX5120 および EX4650 スイッチについては、Junos リリース 20.1R1 でレイヤー 2 およびレイヤー 3(のみ)の柔軟な一致フィルターのサポートが追加されました。レイヤー 2 パケット オフセットと照合長の使用例を以下に示します。

柔軟なフィルター一致の例

次の例では、の用途とコンテキストを flexible-match-mask示しています。

<mask-name>は、フレキシブル一致条件に事前定義されたテンプレートが使用されるフレキシブルマスク名を指定します。柔軟な照合条件を実行するパケット内の場所(位置)を指定するようにテンプレートを定義できます。

mask-in-hexの<mask>は 16 進形式です。たとえば、設定されたマスクの最初の 0xf0fc バイトの4ビット( <mask-name>)、および2番目のバイトの最初の6ビットの一致を指定します。パケットが IPv4 パケットで、 <mask-name> が L3 ヘッダーの最初の 2 バイトを参照する場合、検索は IP バージョン フィールドと DSCP フィールドを検索します。別の例として、設定されたマスク 0xffc0 は、最初のバイト全体と2番目のバイトからの2ビットの検索を指定します。<mask-name>が L3 ヘッダーの最初の 2 バイトを指し、パケットが IPv6 パケットである場合、トラフィック クラス フィールドに IP バージョン フィールドと DSCP を指定します。

プレフィックスに指定された<パターン>はASCII文字列です。最初の 2 文字の場合、 0x文字列は、適切なビットをエンコードする 16 進数値として処理されます。たとえば、マスク0xf0fc<mask-nameと組み合わせて設定されたプレフィックス0x40c0は>L3ヘッダーの最初の2バイトを参照し、最初の4ビット(バージョンフィールドは4に等しい)と1100 00IPv4 DSCPフィールド(DSCPはcs6と等しい)で検索0100を示します。または、設定されたプレフィックス0x6c00をマスク0xffc0<mask-nameと組み合わせて使用>L3ヘッダーの最初の2バイトを参照して、最初の4ビット(バージョンフィールドは6に等しい)、および1100 00IPv6 DSCPフィールド(DSCPはcs6と等しい)で検索0110を指定します。

最初の例では、柔軟な一致のためにL3ヘッダーから最初の2バイト(16ビット)を選択するマスクテンプレートを定義しています。

次の例では、パケット ペイロードの 3~6 バイト(32 ビット)を柔軟に一致させるために選択するマスク テンプレートを定義します。

この例では、ストリング JNPR (ASCII 文字:0x4a0x4e0x500x52)をパケット ペイロードの 3~6 バイトで示します。フィルターは、前の FM-FOUR-PAYLOAD-BYTES 例で定義されたマスク テンプレートを使用します。

この例では、カプセル化されたパケットが IPv4 か IPv6 かに関係なく、DSCP と cs6 等しい DSCP を ef探しているファミリー ccc フィルターを示しています。最初の例で定義された FM-FIRST-TWO-L3-BYTES マスクテンプレートを使用します。

この例では、Junos リリース 20.1R1 を実行する QFX5120-32C、QFX5120-48Y、EX4650 デバイスのファイアウォール フィルターで、レイヤー 2 パケット オフセットから始まる照合長を使用する方法を示しています。ここでは、32ビットのビット長とethernet-switchingファミリーを使用します(inetinet6レイヤー3オフセットを使用する場合と同様にサポートされています)。

リリース履歴テーブル
リリース
説明
20.1R1
QFX5120 および EX4650 スイッチについては、Junos リリース 20.1R1 でレイヤー 2 およびレイヤー 3(のみ)の柔軟な一致フィルターのサポートが追加されました。