例:ファイアウォールフィルターチェーンの使用
この例では、ファイアウォール フィルター チェーンの使用方法を示します。ファイアウォールフィルターfilter1、filter2、filter3は、 input-chain
および output-chain
設定ステートメントを使用してインターフェイスge-0/1/1.0に適用されます。
要件
開始する前に、以下を実行します。
-
MPC搭載のMXシリーズルーターで、Junosリリース18.4R1以降を実行している必要があります。
この機能にPTX10001-36MR、PTX10004、PTX10008、またはPTX10016ルーターを使用している場合は、Junos OS Evolvedリリース21.4R1をインストールしてください。
ルーターは、IPv4(IP バージョン 4)プロトコル(
family inet
)用に設定し、インターフェイス アドレスを使用して論理インターフェイスを設定する必要があります。その他のルーターの初期設定はすべて完了し、デバイス間の基本的な IPv4 接続が確認されている必要があります。送信するトラフィックはファイアウォールフィルタールールと互換性があり、設定するルールが送信するテストトラフィックと一致する必要があります。
概要
この例では、複数のファイアウォールフィルターを特定のインターフェイスに適用して順番に評価できるように、イングレスとエグレスの両方に対して連鎖させる方法を示します。 実行の順序は、チェーンと同じ順序で、左から右に行われます。
(入力リスト フィルターではなく) フィルター チェーンを使用すると、最初のフィルターを使用して一般的な分類 (QoS など) を実行し、その後に 1 つ以上の後続のフィルターを使用して追加の絞り込み (セキュリティなど) を実行するなど、複数レベルのフィルター処理が可能になるという利点があります。
入力リストは、受け入れまたは破棄時にパケットの処理を停止します。後続のファイアウォールフィルターは評価されませんが、ファイアウォールフィルターチェーンでは、acceptまたはdiscastアクションによって現在のファイアウォールフィルターの処理が停止しますが、パケットはファイアウォールフィルターチェーン内の後続のファイアウォールフィルター(存在する場合)に提示されます。
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インターフェイス固有のフィルターとチェーンフィルターの両方を設定することはできません。
-
fast-lookup-filter
などのフィルターは、CLI チェーン フィルターの一部としてはサポートされていません。 -
CLIフィルターチェーンは、Urpf-fail-filterではサポートされていません。
-
MPLSファミリーのエグレスフィルタは
fast-lookup-filter
のみサポートされており、チェーンフィルタは高速ルックアップフィルタをサポートしていないため、ファミリMPLSエグレスチェーンフィルタを設定する際に関連するコミットチェックが提供されます。
トポロジー
この例では、複数のファイアウォールフィルターを設定し、それらを特定のインターフェイスにチェーンすることで順番に適用します。この例では ge-0/1/1.0
入力チェーンと出力チェーンの両方に IP アドレス 172.16.1.1/30 で設定された を使用します。パケットがチェーンリスト内のどのフィルターにも一致しない場合、そのパケットは破棄されます。
設定
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。
CLIクイック構成
この例をすばやく設定するには、次のコマンドをテキスト ファイルにコピーし、改行を削除してから、 [edit]
階層レベルの CLI にコマンドを貼り付けます。ここで使用されるフィルター名は filter1 などですが、用語名は t1_f1 (term1、filter1 を使用) などです。
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 つのフィルターには、非終了アクションが count の複数の条件があります。つまり、一致するパケットはチェーン内の次のフィルターに渡され、3 番目のフィルターは accept のアクションを持ちます。指定された条件のいずれにも一致しないパケットは破棄されます。
ステップバイステップでの手順
ファイアウォールフィルターを設定するには:
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 によって評価されることを確認するには、次のようにします。
ge-0/1/1.0
に接続されているリモートホストから、優先順位 7 のパケットを送信します。パケットはカウントされ、filter2 で評価されます。ge-0/1/1.0
に接続されているリモート ホストから、DSCP 値が 0 のパケットを送信します。パケットはカウントされ、filter3 で評価されます。ge-0/1/1.0
に接続されているリモートホストから、宛先アドレスが 172.30.1.1/32、宛先ポート番号が 5454 のパケットを送信します。パケットをカウントしてから受け入れる必要があります。設定したフィルターのカウンタ情報を表示するには、
show firewall filter filter-name
動作モード コマンドを入力します。コマンドの出力は、カウンターに関連付けられたフィルター条件に一致するバイト数とパケット数を表示します。