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-only一致フィルターのフィルターカウンターを初期化する必要があります。例えば、Trio 専用フィルターに関して設定または変更されたフィルターについては、以下のようなコマンドを実行する必要があります。show snmp mib walk (ascii | decimal) object-id. これにより、Junosはフィルター カウンターを学習し、フィルター統計が表示されていることを確認します(これは、統計をフィルターする最初のポールがすべてのカウンターを表示しない場合があるためです)。Trio のみの一致フィルターとは、Trio チップセットでのみサポートされている一致条件またはアクションを少なくとも 1 つ含むフィルターです。

このガイダンスは、すべての enhanced-mode ファイアウォールフィルターに適用されます。また、IPv6トラフィックのオフセット範囲またはオフセットマスク、gre-key、ファイアウォールフィルター一致条件について、次のいずれかの一致条件を持つ柔軟な一致フィルター条件を持つIPv4トラフィックのファイアウォールフィルター一致条件にも適用されます。payload-protocolextension headersis_fragment。また、次のいずれかの ファイアウォールフィルター終了アクションのフィルターにも適用されます。encapsulate または decapsulate、あるいは次のいずれかの ファイアウォールフィルター非終了アクションpolicy-map、および clear-policy-map

ステートメント階層

柔軟な一致フィルター項目は、 表 1に示すように3つのバリエーションで利用できます。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

(match-start + バイト)オフセット(0..7)の後のビットオフセット

byte-offset

一致開始ポイント後のバイトオフセット

match-start

パケットで一致させる開始ポイント

flexible-match-mask

bit-length

一致させるデータの長さ(ビット単位)、文字列入力には不要(0..128)

bit-offset

(match-start + バイト)オフセット(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

(match-start + バイト)オフセットの後のビットオフセット。(0..7)

byte-offset

一致開始ポイント後のバイトオフセット

flexible-range-name

定義済みテンプレートから柔軟な一致を選択します。

match-start

パケットで一致させる開始ポイント。flexible-range-name が構成されていない場合は必須です。

range

一致させる値の範囲。

range-except

一致しない値の範囲。

注:

flexible-match-range EX2300、EX3400、EX4100、EX4400ではサポートされていません。

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

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

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

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

プロトコルファミリー

利用可能な開始場所

inet

layer-3, layer-4 and payload

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

inet6

layer-3layer-4payload

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

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

   

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

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

この <mask-name>flexible-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 を指定します。

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

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

次の例では、柔軟なマッチングのために、パケット ペイロードの 3 番目から 6 番目のバイト (32 ビット) を選択するマスク テンプレートを定義します。

次の例は、文字列 JNPR と一致する ASCII 文字を示しています(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 ファミリを使用します(レイヤー3オフセットを使用しているため、inetinet6 もサポートされています)。

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。

リリース
説明
23.2R1
Junos OSリリース23.2R1以降、EX4100-24P、EX4100-24T、EX4100-24MP、EX4100-48P、EX4100-48T、EX4400-24T、EX4400-24X、EX4400-48Fスイッチで、レイヤー2およびレイヤー3(のみ)の柔軟な一致フィルターがサポートされています。
20.1R1
Junosリリース20.1R1で、QFX5120スイッチおよびEX4650スイッチで、レイヤー2およびレイヤー3(のみ)のフレキシブルマッチフィルターのサポートが追加されました。