Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解防火墙过滤器匹配条件

定义防火墙过滤器术语之前,您必须了解如何处理术语中的条件,以及如何指定接口、数字、地址和位字段过滤器匹配条件,才能获得所需的过滤器结果。

过滤器匹配条件

from防火墙过滤器术语的语句中,您可以指定要采取的语句中的then操作所需的数据包匹配的条件。要实施的行动必须符合所有条件。指定匹配条件的顺序并不重要,因为数据包必须匹配一个术语中的所有条件,才能发生匹配。

如果为同一条件指定多个值,则其中任何一个值上的匹配值都与该条件匹配。例如,如果使用语句指定多个 IP 源地址 source-address ,则包含其中任一 IP 源地址的数据包将匹配该条件。在某些情况下,您可以将可能的值括在方括号中,为同一条件指定多个值,如:

在其他情况下,您必须输入多个语句,如:

如果某个术语中未指定匹配条件,则该术语匹配所有数据包。

注:

与传统 Junos OS 防火墙过滤器不同,您不能 except 在条件语句中使用来否定该条件。

数字过滤器匹配条件

您可以指定由数值识别的数字过滤器匹配条件,例如端口和协议编号。对于数字过滤器匹配条件,请指定数据包中字段必须包含的条件和单个值才能被视为匹配。

您可以通过以下方式之一指定数值:

  • 单一数字 — 如果字段的值与数字匹配,将发生匹配。例如,要匹配 Telnet 流量:

  • 单个数字的文本同义词 — 如果字段的值与同义词对应的数字匹配,将发生匹配。例如,要匹配 Telnet 流量:

  • 要为过滤器术语中的相同匹配条件指定多个值,请在其自己的 match 语句中输入每个值。例如,如果数据包中的源端口值为 22 或 23,则会出现在以下术语中匹配。

接口过滤器匹配条件

您可以指定接口过滤器匹配条件,以匹配接收或传输数据包的接口。例如,如果对 VLAN 应用过滤器,则可能希望过滤器与参与 VLAN 的某些接口匹配,而不适用于 VLAN 中的其他接口。指定接口名称时,必须包含一个逻辑单元。

在此示例中,最后一个字符 (0) 用于指定逻辑单元。您可以将通配符 (*) 包含在接口名称中。例如:

请注意,您必须为逻辑单元指定值或通配符。

IP 地址过滤器匹配条件

您可以指定地址过滤器匹配条件,以匹配数据包中的 IP 源、目标地址或前缀。指定地址或前缀类型以及地址或前缀本身。例如:

如果省略前缀长度,则默认为 /32。例如:

要指定过滤器术语中的多个 IP 地址或前缀,请在其自己的 match 语句中输入每个地址或前缀。例如,如果数据包的源地址与以下前缀之一匹配,则会出现在以下术语中:

MAC 地址过滤器匹配条件

您可以指定 MAC 地址过滤器匹配条件,以匹配源或目标 MAC 地址。您可以指定数据包必须包含的地址类型和值,以视为匹配。

您可以将 MAC 地址指定为六个十六进制字节,格式如下:

无论您使用什么格式,系统都以标准格式解析地址,在本案例中为 00:11:22:33:44:55。

要指定过滤器术语中的多个 MAC 地址,请在其自己的 match 语句中输入每个 MAC 地址。例如,如果 MAC 源地址的值与以下任一地址匹配,则匹配将出现在以下术语中:

位字段过滤器匹配条件

您可以指定位字段过滤器匹配条件,以匹配以太网帧以及 IP、TCP、UDP 和 ICMP 报头中某些字段中的特定位。通常指定在数据包中设置的字段和字段内的位,以视为匹配。

在大多数情况下,您可以使用关键词来指定要匹配的位。例如,要匹配您可以输入 syn的 TCP SYN 数据包,如:

您也可以输入 0x02 ,因为 SYN 位是 8 位 tcp 标志字段的第三个最小显著位:

要匹配多个位字段值,请使用逻辑运算符,如中 表 1介绍。运算符按从最高优先级到最低优先级列出。从左到右评估操作。

表 1: 防火墙过滤器的操作

逻辑运算符

说明

!

否定

&

逻辑和

|

逻辑或

如果使用逻辑运算符,请将值括在引号中,请勿包含任何空格。例如,以下语句与 TCP 握手的第二个数据包匹配:

要否定匹配项,请在值前面加上一个感叹号。例如,以下语句仅匹配 TCP 握手的初始数据包:

您可以使用文本同义词来指定一些常见的位字段匹配。例如,以下语句也与 TCP 握手的初始数据包匹配: