標準ファイアウォールフィルターによるパケットの評価方法
このトピックでは、次の情報について説明します。
ファイアウォール フィルター パケット評価の概要
次のシーケンスは、デバイスインターフェイスの入力または出力トラフィックが ファイアウォールフィルターに関連付けられている場合に、デバイスがインターフェイスに出入りするパケットをどのように評価するかを説明しています。パケットの評価は次のように進行します。
デバイスは、ファイアウォール フィルターの条件に対してパケットを、フィルターの最初の条件から順次評価します。
パケットが条件で指定されたすべての条件に一致する場合、デバイスはその条件で指定されたすべてのアクションを実行します。
パケットが条件で指定されたすべての条件に一致しない場合、デバイスはフィルター内の次の条件に進み(後続の条件が存在する場合)、その条件に対してパケットを評価します。
パケットがファイアウォールフィルターのどの条件にも一致しない場合、デバイスは暗黙的にパケットを破棄します。
サービスフィルターや単純フィルターとは異なり、ファイアウォールフィルターは、終了アクションでも非終了アクションでもなく、フロー制御アクションであるアクション をサポートします。
next term
注:Junos および
Junos OS Evolved では、 はアクションの最終項として表示することはできません。next term 設定した一致条件なしで
next term
がアクションとして指定されるフィルター項はサポートされていません。一致した項に アクションが含まれる 場合、デバイスはファイアウォール フィルター内の次の項でパケットの評価を続行します。
next term
一致した条件に アクションが含まれていない 場合、指定されたファイアウォールフィルターに対するパケットの評価はこの条件で終了します。
next term
デバイスは、このフィルターの後続の条件に対してパケットを評価しません。
ファイアウォールフィルター設定ごとに最大1024 のアクションがサポートされています。
next term
この制限を超えるファイアウォールフィルターを設定すると、候補の設定がコミットエラーになります。デバイスは、パケットがアクションなしの 条件に一致するか、パケットがファイアウォールフィルターの最後の条件と一致しない場合、特定のファイアウォールフィルターに対するパケットの評価を停止します。
next term
ローカルパケットが、イングレスファイアウォールフィルターに関連付けられたルーターインターフェイスに到着すると、フィルターはパケットを 2 回評価します。最初の評価は、ルーターの転送プレーンの中央処理要素であるパケット転送エンジンで行われ、2番目の評価は、ルーターのコントロールプレーンソフトウェアを実行するルーティングエンジンで行われます。
注:ローカルパケット(ルーター自体とやり取りするデータのチャンク)には、通常、ルーティングプロトコルデータ、TelnetやSSHなどのIPサービス用のデータ、ICMP(インターネット制御メッセージプロトコル)などの管理プロトコル用のデータが含まれています。
ファイアウォールフィルターの最初の評価で着信ローカルパケットまたはパケットコンテキスト値を変更する場合、ファイアウォールフィルターの2回目の評価は、更新されたパケットまたはパケットコンテキスト値に基づきます。
例えば、フィルタに、パケットに関連付けられた転送クラスまたは損失優先度値に基づく一致条件が含まれ、フィルタに、パケットに関連付けられた転送クラスまたは損失優先度の値を変更するアクションが含まれるとします。イングレスローカルパケットが関連付けられたインターフェイスに到着し、パケット転送エンジンのフィルター評価がパケットをドロップするのではなく変更した場合、ルーティングエンジンでのフィルター評価は、(元のパケットコンテキストではなく)変更されたパケットコンテキストに基づきます。
単一ファイアウォール フィルターでのパケット評価
表 1 は、単一のファイアウォール フィルターに関連付けられたデバイス インターフェイスでのパケット フィルタリングの動作について説明します。
Junos OS Evolved では、 はアクションの最終項として表示することはnext term
できません。設定した一致条件なしで next term
がアクションとして指定されるフィルター項はサポートされていません。
ファイアウォールフィルターイベント |
アクション |
後続のアクション |
|
---|---|---|---|
ファイアウォールフィルターの条件では、一致条件は指定されません。 |
この条件はデフォルトですべてのパケットに一致するため、デバイスはその条件で指定されたアクションを実行します。 |
用語アクションに アクションが含まれる 場合、デバイスはファイアウォールフィルター内の次の用語(後続の用語が存在する場合)に対してパケットの評価を続行します。 |
|
パケットは、ファイアウォールフィルター条件で指定されたすべての条件に一致します。 |
デバイスは、その用語で指定されたアクションを実行します。 |
用語アクションに アクションが含まれる 場合、デバイスはファイアウォールフィルター内の次の用語(後続の用語が存在する場合)に対してパケットの評価を続行します。 |
|
パケットはファイアウォールフィルター条件で指定されたすべての条件に一致しますが、条件にはアクションが指定されていません。 |
デバイスは暗黙的にパケットを受け入れます。 |
用語アクションに アクションが含まれる 場合、デバイスはファイアウォールフィルター内の次の用語(後続の用語が存在する場合)に対してパケットの評価を続行します。 |
|
パケットが、ファイアウォールフィルター条件で指定されたすべての条件に一致するわけではありません。 |
デバイスは、その用語で指定されたアクションを実行しません。 |
デバイスは、フィルタ内の次の項(後続の項が存在する場合)に対してパケットの評価を続行します。 |
|
パケットはフィルター内のどの項とも一致しません |
デバイスは暗黙的にパケットを破棄します すべてのファイアウォールフィルター設定には、フィルターの最後に暗黙的な アクションがあります。 term t_explicit_discard { then discard; } |
ベスト プラクティス: 特に破棄されていないトラフィックを明示的に受け入れる
ファイアウォールフィルターは、フィルターが特に破棄しないトラフィックを受け入れることができます。この場合、終了アクションを指定する 最後の条件でファイアウォールフィルターを設定することをお勧めします。accept
次のスニペットの例では、 をファイアウォールフィルターの最後の用語として設定 すると、フィルターが特に破棄しなかったトラフィックを受け入れるようにファイアウォールフィルターが明示的に設定されます。t_allow_all_else
term t_allow_all_else { then accept; }
このベストプラクティスに従うと、ファイアウォールフィルターのトラブルシューティングを簡素化できます。
ベスト プラクティス: 特に受け入れられないトラフィックを明示的に拒否する
一方、ファイアウォールフィルターが特に受け入れないトラフィックを拒否することもできます。この場合、終了アクションを指定する 最後の条件でファイアウォールフィルターを設定することをお勧めします。reject
次のスニペットの例では、ファイアウォールフィルターの最後の用語として用語を設定する と、フィルターが特に受け入れなかったトラフィックを拒否するようにファイアウォールフィルターが明示的に設定されます。t_deny_all_else
term t_deny_all_else { then reject; }
このベストプラクティスに従うと、ファイアウォールフィルターのトラブルシューティングを簡素化できます。
単一のインターフェイスに接続された複数のファイアウォールフィルター
サポートされているデバイスインターフェイスでは、単一のインターフェイスに複数のファイアウォールフィルターを取り付けることができます。詳細については、リストとして適用された複数のファイアウォールフィルターについてを参照してください。
サポートされているインターフェイスでは、プロトコル非依存()ファイアウォールフィルターとプロトコル固有(または)ファイアウォールフィルターを同じインターフェイスにアタッチできます。family any
family inet
family inet6
プロトコル非依存型ファイアウォールフィルターが最初に実行されます。詳細については、標準ファイアウォールフィルターの適用に関するガイドラインを参照してください。
複数のインターフェイスに接続された単一のファイアウォールフィルター
サポートされているインターフェイスでは、単一のファイアウォールフィルターを複数のインターフェイスに関連付けることができ、Junos OSは、関連付けられたインターフェイスごとにそのファイアウォールフィルターの インターフェイス固有のインスタンス を作成します。
Junos OSは、ファイアウォールフィルターの各インターフェイス固有のインスタンス化を、システムが生成したインターフェイス固有の名前に関連付けます。
フィルター項目内のアクション に対して、パケット転送エンジンは個別のインターフェイス固有のカウンターを維持し、Junos OSは各カウンターをシステムが生成したインターフェイス固有の名前に関連付けます。
count
フィルター項目内のアクション については、Junos OSはポリサーアクションの個別のインターフェイス固有のインスタンスを作成します。
policer
詳細については、インターフェイス固有のファイアウォール フィルター インスタンスの概要を参照してください。