Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

防火墙过滤器灵活匹配条件

标准防火墙过滤器匹配条件因要匹配的流量的协议系列而异。例如,可用于桥接协议流量的条款与可用于 inet 或 inet6 协议家族的条款不同。但是,每个协议系列中可用于匹配的字段是固定的或预定义的。这意味着筛选器只能匹配这些预定义字段中的模式。

使用灵活的匹配条件,可以构建防火墙过滤器,在第 2 层、第 3 层、第 4 层或有效负载位置开始匹配。从那里,可以指定额外的偏移标准,从而在数据包内用户定义的自定义位置实现模式匹配。

与任何其他防火墙过滤器术语一样,灵活匹配过滤器术语作为输入或输出过滤器应用于 MPC 或 MIC 接口。灵活的匹配过滤条件也可以在层级创建 [edit firewall] 为模板。然后,可以在灵活的匹配词中引用这些模板。

对于 MX 系列路由器,只有 MPC 或 MIC 支持灵活匹配条件。对于 FPC、PIC 和/或 DPC 与 MPC 或 MIC 一起安装的环境,请确保仅将灵活匹配防火墙过滤器标准应用于 MPC 或 MIC 接口。

注:

对于带有 MPC 的 MX 系列路由器,您需要通过执行相应的 SNMP MIB 来初始化 MIB 中仅三重奏匹配过滤器的过滤器计数器。例如,对于相对于其仅 Trio 筛选器配置或更改的任何筛选器,需要运行如下命令:show snmp mib walk (ascii | decimal) object-id。这会强制 Junos 学习过滤器计数器并确保显示过滤器统计信息(这是因为筛选统计信息的第一个轮询可能不会显示所有计数器)。仅 Trio 匹配筛选器是指包含至少一个仅 Trio 芯片组支持的匹配条件或操作的筛选器。

本指南适用于所有 enhanced-mode 防火墙筛选器。它也适用于 IPv4 流量的防火墙过滤器匹配条件 偏移范围或偏移掩码的灵活匹配过滤器条款, gre-key以及具有以下任何匹配条件的 IPv6 流量的防火墙过滤器匹配条件payload-protocolextension headersis_fragment。它也适用于具有以下 防火墙过滤器终止操作任一条件的过滤器:encapsulatedecapsulate,或以下 防火墙过滤器非终止操作任一选项:policy-map,和 clear-policy-map

语句层次结构

灵活匹配过滤器术语有三种变体,如 表 1所示。flexible-match变体在层次结构级别配置[edit firewall]。它用于定义灵活的匹配模板。flexible-filter-match-maskflexible-match-range在层次结构中[edit firewall family [inet|inet6|bridge|ethernet-switching|ccc|vpls] filter <filter-name> term <term-name> from]配置。对 family ethernet-switching EX9200 交换机使用过滤器。

灵活的过滤器匹配类型

表 1: 灵活的过滤器匹配类型

灵活的滤波器匹配类型

可用属性

Description

flexible-match

<name>

创建名为属性的 <name> 灵活匹配模板。

 

bit-length

要匹配的数据长度(以位为单位),字符串输入不需要 (0..32)

对于 QFX5120 和 EX4650 交换机,16 和 32 是唯一有效的位长度。

bit-offset

(匹配开始 + 字节)偏移量 (0..7) 之后的位偏移量

byte-offset

比赛起点之后的字节偏移量

match-start

数据包中匹配的起点

flexible-match-mask

bit-length

要匹配的数据长度(以位为单位),字符串输入不需要 (0..128)

bit-offset

(匹配开始 + 字节)偏移量 (0..7) 之后的位偏移量

byte-offset

比赛起点之后的字节偏移量

flexible-mask-name

从预定义的模板字段中选择灵活匹配。除非已配置,否则 match-start 为必需。

mask-in-hex

屏蔽数据包数据中要匹配的位。

match-start

数据包中匹配的起点。除非已配置,否则 flexible-mask-name 为必需。

prefix

值要匹配的数据/字符串。

flexible-match-range

bit-length

要匹配的数据长度(以位为单位)。(0..32) 除非已配置,否则 flexible-range-name 为必填项。

bit-offset

(匹配开始 + 字节)偏移量之后的位偏移量。(0..7)

byte-offset

比赛起点之后的字节偏移量

flexible-range-name

从预定义模板中选择灵活匹配。

match-start

数据包中匹配的起点。除非已配置,否则 flexible-range-name 为必需。

range

要匹配的值的范围。

range-except

不匹配的值范围。

注:

flexible-match-range EX2300、EX3400、EX4100 和 EX4400 不支持。

灵活的过滤器匹配起始位置

灵活的匹配过滤器术语是通过在数据包内给出起始位置或锚点来构造的。起始位置可以是以下位置中的任何一个:第 2 层、第 3 层、第 4 层或有效负载,具体取决于所使用的协议家族。 表 2 按协议家族显示可用的灵活过滤器匹配起始位置。您可以使用这些可用的起始位置作为 match-start 灵活匹配筛选条件的位置。

从这些起始位置,可以利用特定的字节和位偏移来允许过滤器匹配数据包中非常特定位置的模式。

表 2: 灵活的过滤器匹配起始位置

协议家族

可用的起始位置

inet

layer-3, layer-4 and payload

对于 QFX5120 和 EX4650 交换机,Junos 20.1R1 版中添加了对第 2 层和第 3 层(仅)灵活匹配过滤器的支持。

inet6

layer-3layer-4payload

对于 QFX5120 和 EX4650 交换机,Junos 20.1R1 版中添加了对第 2 层和第 3 层(仅)灵活匹配过滤器的支持。

bridge

layer-2, layer-3, layer-4 and payload

ccc

layer-2, layer-3, layer-4 and payload

mpls

layer-3 and payload

vpls

layer-2, layer-3, layer-4 and payload

ethernet-switching

(EX9200 交换机) layer-2, layer-3, layer-4 and payload

对于 QFX5120 和 EX4650 交换机,Junos 20.1R1 版中添加了对第 2 层和第 3 层(仅)灵活匹配过滤器的支持。下面是使用第 2 层数据包偏移和匹配长度的示例。

   

灵活的过滤器匹配示例

以下示例说明了 的 flexible-match-mask用法和上下文。

flexible-mask-name指定<mask-name>将哪个预定义模板用于灵活匹配条件。可以定义模板来指定应在数据包中的哪个位置(位置)执行灵活匹配条件。

<mask> for mask-in-hex 采用十六进制格式。例如,配置的掩码 0xf0fc 指定第一个字节中的第一个四个位(如 所指) <mask-name>和第二个字节中的前六个位的匹配项。如果数据包是 IPv4 数据包,并且 <mask-name> 引用 L3 报头中的前两个字节,则搜索 IP 版本字段和 DSCP 字段。作为另一个示例,配置的掩码 0xffc0 指定搜索整个第一个字节和从第二个字节搜索两个位。如果 引用 <mask-name> L3 标头中的前两个字节,并且数据包是 IPv6 数据包,则在流量类字段中指定 IP 版本字段和 DSCP。

<pattern>指定的 为 prefix 是一个 ASCII 字符串。如果前两个字符为 0x,则字符串将作为编码适当位的十六进制数字进行处理。例如,配置的前缀0x40c0与掩码0xf0fc结合使用并<mask-name>引用 L3 标头中的前两个字节,指示在前四位(版本字段等于 4)和 1100 00 IPv4 DSCP 字段(DSCP 等于 cs6)中进行搜索0100。或者,将配置的前缀0x6c00与掩码0xffc0<mask-name>结合使用并引用 L3 报头中的前两个字节,指定在前四位(版本字段等于 6)和 1100 00 IPv6 DSCP 字段(DSCP 等于 cs6)中搜索 for0110

第一个示例定义了一个掩码模板,该模板从 L3 报头中选择前两个字节(16 位)以实现灵活匹配:

下一个示例定义了一个掩码模板,该模板选择数据包有效负载的第三到第六字节(32 位)以实现灵活匹配:

此示例显示字符串 JNPR (ASCII 字符:0x4a0x4e0x500x52在数据包有效负载的第三到第六个字节中。筛选器使用 FM-FOUR-PAYLOAD-BYTES 上一示例中定义的掩码模板。

此示例显示了一个家族 ccc 过滤器,查找 DSCP 等于 cs6 和 DSCP ef,无论封装的数据包是 IPv4 还是 IPv6。它使用 FM-FIRST-TWO-L3-BYTES 第一个示例中定义的掩码模板。

此示例说明如何在防火墙过滤器中为运行 Junos 20.1R1 版的 QFX5120-32C、QFX5120-48Y 或 EX4650 设备使用从第 2 层数据包偏移开始的匹配长度。在这里,我们使用 32 位的位长度和ethernet-switching家族(inetinet6并且也受支持,就像使用第 3 层偏移一样)。

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
23.2R1
从 Junos OS 23.2R1 版开始,我们支持 EX4100-24P、EX4100-24T、EX4100-24MP、EX4100-48P、EX4100-48T、EX4400-24T、EX4400-24X 和 EX4400-48F 交换机上的第 2 层和第 3 层(仅)灵活匹配过滤器。
20.1R1
对于 QFX5120 和 EX4650 交换机,Junos 20.1R1 版中添加了对第 2 层和第 3 层(仅)灵活匹配过滤器的支持。