ファイアウォールフィルターの評価方法の理解
ファイアウォールフィルターは1つ以上の用語で構成され、フィルター内の用語の順序が重要です。ファイアウォールフィルターを設定する前に、スイッチがフィルタ内の用語を評価する方法と、パケットが用語に対してどのように評価されるかを理解しておく必要があります。
ファイアウォールフィルターが単一の項で構成されている場合、そのフィルターは以下のように評価されます:
パケットがすべての条件に一致する場合、
then
ステートメントのアクションが実行されます。パケットがすべての条件に一致し、
then
ステートメントでアクションが指定されていない場合は、デフォルトのアクション accept が実行されます。パケットがすべての条件に一致しない場合、スイッチはそのパケットを廃棄します。
ファイアウォールフィルターが複数の項で構成されている場合、フィルターは順番に評価されます。
パケットは、最初の用語の
from
ステートメントの条件に対して評価されます。パケットが条件のすべての条件に一致する場合、
then
ステートメントのアクションが実行され、評価が終了します。フィルタ内の後続の項は評価されません。パケットが条件のすべての条件に一致しない場合、パケットは第 2 条件の
from
ステートメントの条件に対して評価されます。このプロセスは、パケットが後続のいずれかの項で
from
ステートメントのすべての条件に一致するか、フィルタにそれ以上の項がなくなるまで続きます。パケットが一致しないままフィルター内のすべての条件を通過した場合、スイッチはそのパケットを破棄します。
パケットがすべての条件に一致する必要があるため、 from
ステートメントの条件の順序は重要ではありません。
図 1 スイッチがファイアウォールフィルター内の用語を評価する方法を示します。
条件に from
ステートメントを含めない場合、すべてのパケットがその条件に一致し、 then
ステートメントによって処理されます。条件に then
ステートメントが含まれていない場合、またはアクションが then
ステートメントで設定されていない場合、条件は一致するパケットを受け入れます。
すべてのファイアウォールフィルターの末尾には、フィルターの最後に暗黙的な deny
ステートメントがあり、これは以下の明示的なフィルター条件と同等です。
term implicit-rule { then discard; }
その結果、ファイアウォールフィルターの条件のいずれにも一致しないパケットは破棄されます。条件のないフィルターを設定すると、そのフィルターを通過するパケットはすべて廃棄されます。
ファイアウォールフィルタリングは、64バイト以上のパケットでサポートされています。