例:ファイアウォールフィルターチェーンの使用
この例では、ファイアウォール フィルター チェーンの使用方法を示します。ファイアウォールフィルターfilter1、filter2、およびfilter3は、 および 設定ステートメントを使用してインターフェイスge-0/1/1.0に適用されます。input-chain
output-chain
要件
開始する前に、以下を実行します。
-
MPC搭載のMXシリーズルーターで、Junosリリース18.4R1以降を実行している必要があります。
この機能にPTX10001-36MR、PTX10004、PTX10008、またはPTX10016ルーターを使用している場合は、Junos OS Evolvedリリース21.4R1をインストールしてください。
ルーターは、IPv4(IPバージョン4)プロトコル()用に設定し、インターフェイスアドレスを使用して論理インターフェイスを設定する必要があります。
family inet
その他のルーターの初期設定はすべて完了し、デバイス間の基本的な IPv4 接続が確認されている必要があります。送信するトラフィックはファイアウォールフィルタールールと互換性があり、設定するルールが送信するテストトラフィックと一致する必要があります。
概要
この例では、複数のファイアウォールフィルターを特定のインターフェイスに適用して順番に評価できるように、イングレスとエグレスの両方に対して連鎖させる方法を示します。 実行の順序は、チェーンと同じ順序で、左から右に行われます。
(input-list フィルターではなく) フィルター チェーンを使用すると、評価で使用される IP アドレスが重複した場合に発生する可能性のある継承の競合を回避するため、最初のフィルターを使用して一般的な分類 (QoS など) を実行し、その後に 1 つ以上の後続のフィルターを使用して追加の調整 (セキュリティなど) を実行するなど、複数レベルのフィルター処理を使用できるという利点があります。
Junos OS Evolvedリリース21.4R1以降、PTX10001-36MR、PTX10004、PTX10008、およびPTX10016ルーターでファイアウォールフィルターチェーンを使用できるようになりました。
フィルターチェーンは次のように適用できます。
set interfaces interface-name unit unit family inet filter input-chain [filter1 filter2 filter3];
set interfaces interface-name unit unit family inet filter output-chain [filter1 filter2 filter3];
PTX Evoプラットフォームでは、この機能には以下の制限があります。
-
一連のフィルターの最初のフィルターのみをインターフェイス固有として設定できます。MXシリーズルーターでは、一連のフィルター内のすべてのフィルターをインターフェイス固有として設定できます。
-
同じインターフェイス固有のバインドポイントで、同じフィルターを通常のCLIフィルターおよびチェーンフィルターの一部として設定することはできません。このようなインターフェイス固有のバインドポイントでは、既存のCLIフィルターをフィルターチェーンに置き換えて個別にコミットし、エラーを回避します。
-
同じバインドポイントに「ファミリーANY」およびインターフェイスポリサーとともにチェーンフィルターを設定することはできません。
-
ループバックインターフェイスでは、出力チェーンフィルターはサポートされていません。
-
ループバックインターフェイスでは、入力CLIの標準フィルターとチェーンフィルターの両方を設定することはできません。
-
IRB インターフェイスでは、通常の CLI インターフェイス固有のフィルターとフィルター チェーンの両方を設定することはできません。
-
レイヤー2 SPスタイルの出力では、通常のCLIインターフェイス固有のフィルターとチェーンフィルターの両方を設定することはできません。
-
などの フィルターは、CLIチェーンフィルターの一部としてはサポートされていません。
fast-lookup-filter
-
CLIフィルターチェーンは、Urpf-fail-filterではサポートされていません。
-
MPLSファミリーのエグレスフィルタは としてのみサポート されており、チェーンフィルタは高速ルックアップフィルタをサポートしていないため、ファミリーMPLSエグレスチェーンフィルタを設定する際に関連するコミットチェックが提供されます。
fast-lookup-filter
トポロジー
この例では、複数のファイアウォールフィルターを設定し、それらを特定のインターフェイスにチェーンすることで順番に適用します。この例では、入力チェーンと出力チェーンの両方に、IP アドレス 172.16.1.1/30 で設定された を使用します 。ge-0/1/1.0
パケットがチェーンリスト内のどのフィルターにも一致しない場合、そのパケットは破棄されます。
設定
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、を参照してください 。設定モードでのCLIエディターの使用
CLIクイック構成
この例をすばやく設定するには、次のコマンドをテキスト ファイルにコピーし、改行を削除してから、 階層レベルの CLI にコマンドを貼り付けます。[edit]
ここで 使用されるフィルター名は 、などであり、用語名は (term1, filter1 を使用) という具合です。filter1t1_f1
set firewall family inet filter filter1 term t1_f1 from protocol tcp set firewall family inet filter filter1 term t1_f1 then count f1_t1_cnt set firewall family inet filter filter1 term t2_f1 from precedence 7 set firewall family inet filter filter1 term t2_f1 then count f1_t2_cnt set firewall family inet filter filter1 term t2_f1 then accept set firewall family inet filter filter2 term t1_f2 from dscp 0 set firewall family inet filter filter2 term t1_f2 then count f2_t1_cnt set firewall family inet filter filter2 term t2_f2 from source-port 1020 set firewall family inet filter filter2 term t2_f2 then count f2_t2_cnt set firewall family inet filter filter2 term t2_f2 then accept set firewall family inet filter filter3 term t1_f3 from destination-address 172.30.1.1/32 set firewall family inet filter filter3 term t1_f3 then count f3_t1_cnt set firewall family inet filter filter3 term t2_f3 from destination-port 5454 set firewall family inet filter filter3 term t2_f3 then count f3_t2_cnt set firewall family inet filter filter3 term t2_f3 then accept set interfaces ge-0/1/1 unit 0 family inet address 172.16.1.1/30 set interfaces ge-0/1/1 unit 0 family inet filter input-chain [ filter1 filter2 filter3 ] set interfaces ge-0/1/1 unit 0 family inet filter output-chain [ filter1 filter2 filter3 ]
IPv4ファイアウォールフィルターの設定
ここでは、ファイアウォールフィルターを構成します。それぞれに異なる一致条件とカウントアクションがあります。最初の 2 つのフィルターには、非終了アクションが の 複数の条件があります。つまり、一致するパケットはチェーン内の次のフィルターに渡され、3 番目のフィルターは accept のアクションを持ちます。count 指定された条件のいずれにも一致しないパケットは破棄されます。
ステップバイステップでの手順
ファイアウォールフィルターを設定するには:
CLI を、IPv4 ファイアウォール フィルターを設定する階層レベルに移動します。
[edit] user@host# edit firewall family inet
最初のファイアウォールフィルターを構成して、TCPパケット、または優先順位が7のパケットをカウントしてから、チェーン内の次のフィルターに送信します。
[edit firewall family inet] user@host# set filter filter1 term t1_f1 from protocol tcp user@host# set filter filter1 term t1_f1 then count f1_t1_cnt user@host# set filter filter1 term t2_f1 from precedence 7 user@host# set filter filter1 term t2_f1 then count f1_t2_cnt user@host# set filter filter1 term t2_f1 then accept
2 番目のファイアウォール フィルターを構成して、DSCP パケット、または送信元ポート 1020 のパケットをカウントしてから、チェーン内の次のフィルターに送信します。
[edit firewall family inet] user@host# set filter filter2 term t1_f2 from dscp 0 user@host# set filter filter2 term t1_f2 then count f2_t1_cnt user@host# set filter filter2 term t2_f2 from source-port 1020 user@host# set filter filter2 term t2_f2 then count f2_t2_cnt user@host# set filter filter2 term t2_f2 then accept
最後のファイアウォールフィルターを設定して、宛先アドレスが 172.30.1.1/32 または宛先ポート 5454 のパケットをカウントして受け入れます。
[edit firewall family inet] user@host# set filter filter3 term t1_f3 from destination-address 172.30.1.1/32 user@host# set filter filter3 term t1_f3 then count f3_t1_cnt user@host# set filter filter3 term t2_f3 from destination-port 5454 user@host# set filter filter3 term t2_f3 then count f3_t2_cnt user@host# set filter filter3 term t2_f3 then accept
入力フィルターのチェーンを適用する
ここでは、特定のインターフェイスにファイアウォールフィルターをアタッチします。実行の順序は、チェーンと同じ順序で、左から右に行われます。
ステップバイステップでの手順
インターフェイスにIPアドレスを割り当てるには:
フィルター に使用しているインターフェイスに移動します。
ge-0/1/1.0
[edit] user@host# edit interfaces ge-0/1/1 unit 0 family inet
論理インターフェイスに IPv4 アドレスを割り当てます。
[edit interfaces ge-0/1/1 unit 0 family inet] user@host# set address 172.16.1.1/30
フィルターを入力フィルターのリストとして適用します。
[edit interfaces ge-0/1/1 unit 0 family inet] user@host# set filter input-chain [ filter1 filter2 filter3 ] user@host# set filter out-chain [ filter1 filter2 filter3 ]
受験者の設定を確認してコミットする
ステップバイステップでの手順
候補の設定を確認してコミットするには、次の手順に従います。
設定モード コマンドを入力して、ファイアウォール フィルターの設定 を確認します。
show firewall
コマンドの出力結果に意図した設定内容が表示されない場合は、この例の手順を再実行して設定を修正します。[edit firewall] user@host# show family inet { } filter filter1 { term t1_f1 { from { protocol tcp; } then count f1_t1_cnt; accept; } term t2_f1 { from { precedence 7; } then count f1_t2_cnt; accept; } } filter filter2 { term t1_f2 { from { dscp 0; } then count f2_t1_cnt; } term t2_f2 { from { source-port 1020; } then count f2_t2_cnt; } } filter filter3 { term t1_f3 { from { destination-address { 172.30.1.1/32; } } then { count f3_t1_cnt; } } term t2_f3 { from { destination-port 5454; } then { count f3_t2_cnt; accept; } } } } }
設定モード コマンドを入力して、 インターフェイスの設定を確認します。
show interfaces
[edit] user@host# show interfaces ge-0/1/1 { unit 0 { family inet { filter { input-chain [ filter1 filter2 filter3 ]; } address 172.16.1.1/30; } } }
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
構成が期待どおりに動作すること、つまり、一致するトラフィックがフィルター filter1、filter2、filter3 のそれぞれによって評価され、予期されるアクション(カウントまたは受け入れ)が実行されていることを確認します。
ファイアウォールフィルターを介してトラフィックを送信する
目的
1つのデバイスから設定したルーターにトラフィックを送信し、一致するパケットがチェーン内のすべての関連フィルターによって評価されているかどうかを確認します。
アクション
入力パケットがフィルター 1、フィルター 2、およびフィルター 3 によって評価されることを確認するには、次のようにします。
に接続されているリモートホスト から、優先順位が 7 のパケットを送信します。パケットはカウントされ、filter2 で評価されます。
ge-0/1/1.0
に接続されている リモートホストから、DSCP値が0のパケットを送信します。パケットはカウントされ、filter3 で評価されます。
ge-0/1/1.0
に接続されている リモートホストから、宛先アドレスが 172.30.1.1/32、宛先ポート番号が 5454 のパケットを送信します。
ge-0/1/1.0
パケットをカウントしてから受け入れる必要があります。設定したフィルターのカウンタ情報を表示するには、 動作 モード コマンドを入力します。
show firewall filter filter-name
コマンドの出力は、カウンターに関連付けられたフィルター条件に一致するバイト数とパケット数を表示します。