了解如何评估防火墙过滤器
防火墙过滤器由一个或多个术语组成,过滤器中条款的顺序非常重要。在配置防火墙过滤器之前,您应该了解交换机如何评估过滤器中的条款,以及如何根据条款评估数据包。
当防火墙过滤器包含单个术语时,将按如下评估过滤器:
如果数据包符合所有条件,将采取语句中的
then
操作。如果数据包匹配所有条件,且语句中
then
未指定任何操作,将执行默认操作 accept 。如果数据包不匹配所有条件,交换机将丢弃它。
当防火墙过滤器包含多个术语时,将按以下顺序评估过滤器:
将根据第一个术语语句中的
from
条件评估数据包。如果数据包与术语中的所有条件匹配,将采取语句中的
then
操作,并结束评估。不会评估过滤器中的后续术语。如果数据包与术语中的所有条件不匹配,将根据第二个术语中的语句中的
from
条件评估数据包。此过程一直持续到数据包与后续条款之一中的语句中的所有条件
from
匹配,或者过滤器中没有更多条款。如果数据包通过过滤器中的所有术语,但没有匹配项,交换机将丢弃它。
语句中 from
条件的顺序并不重要,因为数据包必须匹配所有条件,才被视为匹配。
图 1 展示了交换机如何评估防火墙过滤器中的条款。

如果某个术语中未包含语句 from
,则所有数据包都将与术语匹配,并由语句 then
处理。如果术语不包含语句, then
或者尚未在 then
语句中配置操作,则术语接受任何匹配的数据包。
每个防火墙过滤器在过滤器的末尾都包含一个隐式 deny
语句,这等同于以下显式过滤器术语:
term implicit-rule { then discard; }
因此,与防火墙过滤器中任何条款不匹配的数据包将被丢弃。如果配置了没有术语的过滤器,则通过过滤器的所有数据包都会被丢弃。
对于至少 64 字节长的数据包,则支持防火墙过滤。