Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

IPv4 流量的防火墙过滤器匹配条件

您可以配置具有互联网协议版本 4 (IPv4) 流量 () 的匹配条件的family inet防火墙过滤器。

注:

对于带有 MPC 的 MX 系列路由器,您需要通过走相应的 SNMP MIB(例如 show snmp mib walk name ascii),初始化 MIB 中仅三匹配过滤器的过滤器计数器。这迫使 Junos 学习过滤器计数器,并确保显示过滤器统计信息(这是因为对过滤器统计信息的第一次轮询可能不会显示所有计数器)。本指南适用于所有增强型模式防火墙过滤器、具有灵活条件的过滤器以及具有某些终止操作的过滤器。有关详细信息,请参阅相关文档下列出的这些主题。

表 1 介绍了 match-conditions 可以在层级配置 [edit firewall family inet filter filter-name term term-name from] 的问题。

表 1: IPv4 流量的防火墙过滤器匹配条件

匹配条件

说明

address address [ except ]

匹配 IPv4 源地址或目标地址字段, except 除非包含选项。如果包含选项,则与 IPv4 源地址或目标地址字段不匹配。

except EX2300 和 EX3400 平台不支持修改器。

ah-spi spi-value

(M 系列路由器,M120 和 M320 除外)匹配 IPsec 身份验证标头 (AH) 安全参数索引 (SPI) 值。

注:

PTX 系列路由器不支持此匹配条件。

ah-spi-except spi-value

(M 系列路由器,M120 和 M320 除外)与 IPsec AH SPI 值不匹配。

注:

PTX 系列路由器不支持此匹配条件。

apply-groups

指定要从哪些组继承配置数据。您可以指定多个组名。您必须按继承优先级顺序列出它们。第一个组中的配置数据优先于后续组中的数据。

apply-groups-except

指定不继承配置数据的组。您可以指定多个组名。

destination-address address [ except ]

匹配 IPv4 目标地址字段, except 除非包含选项。如果包含选项,则与 IPv4 目标地址字段不匹配。

您不能在同一 address 术语中同时指定和 destination-address 匹配条件。

destination-class class-names

匹配一个或多个指定的目标类名称(组合在一起并赋予一个类名的目标前缀集)。有关更多信息,请参阅 基于地址等级的防火墙过滤器匹配条件

destination-class-except class-names

与一个或多个指定的目标类名称不匹配。有关详细信息,请参阅 destination-class 匹配条件。

destination-port number

匹配 UDP 或 TCP 目标端口字段。

您不能在同一 port 术语中同时指定和 destination-port 匹配条件。

配置基于端口的匹配项时,还必须在同一过滤器术语中配置protocol udpprotocol tcp match 语句。仅在端口值上匹配可能会导致意外匹配。

您可以代替数值,指定以下文本同义词之一(同时列出了端口号):afs(1483)、 bgp (179)、 biff (512)、 bootpc (68)、 bootps (67)、 cmd (514)、 cvspserver (2401)、 dhcp (67)、 domain (53)、(21) eklogin 05)、 ekshell (2106)、 exec (512)、 finger (79)、 ftp (21)、 ftp-data (20)、 http (80)、 https (443)、 ident (113)、 imap (143)、 kerberos-sec (88)、 klogin (543)、 kpasswd (761)、 krb-prop (754)、 krbupdate (760)、 kshell (544)、 ldap (389)、 ldp (646)、 login (513)、 mobileip-agent (434)、 mobilip-mn (435)、 msdp (639)、 netbios-dgm (138)、 netbios-ns (137)、 netbios-ssn (139)、 nfsd (2049)、 nntp (119)、 ntalk (518)、 ntp (123)、 pop3 (110)、 pptp (1723)、 printer (515)、 radacct (1813)、 radius (1812)、 rip (520)、 rkinit (2108)、 smtp (25)、 snmp (161)、 snmptrap (162)、(44) snpp 4)、 socks (1080)、 ssh (22)、 sunrpc (111)、 syslog (514)、 tacacs (49)、 tacacs-ds (65)、 talk (517)、 telnet (23)、 tftp (69)、 timed (525)、 who (513) 或 xdmcp (177)。

destination-port-except number

与 UDP 或 TCP 目标端口字段不匹配。有关详细信息,请参阅 destination-port 匹配条件。

destination-prefix-list name [ except ]

匹配指定列表中 的目标前缀, except 除非包含选项。如果包含选项,则与指定列表中的目标前缀不匹配。

指定在 [edit policy-options prefix-list prefix-list-name] 层级定义的前缀列表的名称。

dscp number

匹配差异服务代码点 (DSCP)。DiffServ 协议在 IP 报头中使用服务类型 (ToS) 字节。此字节中最重要的 6 位构成 DSCP。有关更多信息,请参阅 了解行为聚合分类器如何确定可信流量的优先级

增加了对差异化服务代码点 (DSCP) 过滤的支持和路由引擎源数据包的转发类,包括以通用路由封装 (GRE) 封装的 IS-IS 数据包。随后,从同时具有服务等级 (CoS) 和防火墙过滤器且同时包含 DSCP 或转发类过滤器操作的 Junos OS 前一个版本升级时,防火墙过滤器中的标准会自动优先于 CoS 设置。创建新配置时也是如此;也就是说,如果存在相同的设置,则防火墙过滤器优先于 CoS,无论哪个是先创建的。

您可以指定一个从到 063数值。要以十六进制形式指定值,请添加 0x 为前缀。要以二进制形式指定值,请添加 b 为前缀。

代替数值,您可以指定以下文本同义词之一(字段值也列出):

  • RFC 3246, 加速转发 PHB(单跳行为)定义了一个代码点:ef(46).

  • RFC 2597, 保证转发 PHB 组,定义 4 个类别,每个类有 3 个丢弃优先级,总共 12 个代码点:

    • af11 (10), af12 (12), af13 (14)

    • af21 (18), af22 (20), af23 (22)

    • af31 (26), af32 (28), af33 (30)

    • af41(34)、 af42 (36)、 af43 (38)

dscp-except number

DSCP 编号不匹配。有关更多信息,请参阅 dscp 匹配条件。

esp-spi spi-value

匹配 IPsec 封装安全有效负载 (ESP) SPI 值。匹配此特定 SPI 值。您可以以十六进制、二进制或十进制形式指定 ESP SPI 值。

注:

PTX 系列路由器不支持此匹配条件。

esp-spi-except spi-value

匹配 IPsec ESP SPI 值。此特定 SPI 值不匹配。

注:

PTX 系列路由器不支持此匹配条件。

first-fragment

匹配数据包是否为分片数据包的第一个分片。如果数据包是分片数据包的尾随分片,则不匹配。分片数据包的第一个分片的分片偏移值 。0

此匹配条件是位字段匹配条件匹配条件 fragment-offset 0 的别名。

要同时匹配第一个和尾部分片,您可以使用两个指定不同匹配条件的术语:first-fragmentis-fragment

flexible-match-mask value

bit-length

要以位表示的数据长度,字符串输入 (0..128)

bit-offset

(匹配开始 + 字节) 偏移 (0.7) 后的位偏移量

byte-offset

匹配起点后的字节偏移量

flexible-mask-name

从预定义模板字段灵活选择匹配项

mask-in-hex

掩盖要匹配的数据包数据中的位

match-start

在数据包中匹配的起点

prefix

值数据/要匹配的字符串

flexible-match-range value

bit-length

要以位计的匹配数据长度 (0.32)

bit-offset

(匹配开始 + 字节) 偏移 (0.7) 后的位偏移量

byte-offset

匹配起点后的字节偏移量

flexible-range-name

从预定义模板字段灵活选择匹配项

match-start

在数据包中匹配的起点

range

要匹配的值范围

range-except

不匹配此值范围

forwarding-class class

匹配数据包的转发等级。

指定 assured-forwardingbest-effort、 、 expedited-forwardingnetwork-control

有关转发类和路由器内部输出队列的信息,请参阅 了解转发类如何将类分配给输出队列

forwarding-class-except class

与数据包的转发类不匹配。有关详细信息,请参阅 forwarding-class 匹配条件。

fragment-flags number

(仅限入口)匹配 IP 报头中的三位 IP 分片标志字段。

您可以指定以下一个关键词(字段值也列出)来代替数字字段值:dont-fragment(0x4)、 more-fragments (0x2) 或 reserved (0x8)。

fragment-offset value

匹配 IP 报头中的 13 位分片偏移字段。值是向数据分片发送的总体数据报消息中的 8 字节单位的偏移量。指定一个数字值、一个值范围或一组值。偏移值 0 表示分片数据包的第一个分片。

匹配 first-fragment 条件是匹配条件的 fragment-offset 0 别名。

要同时匹配第一个和尾部分片,您可以使用两个指定不同匹配条件(first-fragment 和)的 is-fragment术语。

fragment-offset-except number

与 13 位分片偏移字段不匹配。

gre-key range

匹配 gre-key 字段。GRE 密钥字段是由 GRE 封装器插入的 4 个八位位字节编号。这是用于 GRE 封装的可选字段。可以是 range 单个 GRE 密钥编号,也可以是一系列密钥编号。

对于具有 MPC 的 MX 系列路由器,通过走相应的 SNMP MIB 来初始化包含此情况的新防火墙过滤器。

icmp-code number

匹配 ICMP 消息代码字段。

注:

使用此匹配条件时,还应在同 protocol icmp 一术语中使用匹配条件(如下所示),以确保 icmp 正在评估数据包。

term Allow _ICMP {
                from protocol icmp {
                    icmp-code ip-header-bad;
                    icmp-type echo-reply;
                }
                then {
                    policer ICMP_Policier;
                    count Allow_ICMP;

您还必须在同一 icmp-type message-type 术语中配置匹配条件。ICMP 消息代码提供的信息比 ICMP 消息类型更具体,但 ICMP 消息代码的含义取决于关联的 ICMP 消息类型。

代替数值,可以指定以下文本同义词之一(字段值也会列出)。这些关键词按与之关联的 ICMP 类型进行分组:

  • 参数问题:ip-header-bad(0)、 required-option-missing (1)

  • 重 定向:redirect-for-host(1)、 redirect-for-network (0)、 redirect-for-tos-and-host (3)、 redirect-for-tos-and-net (2)

  • 超过时间:ttl-eq-zero-during-reassembly(1)、 ttl-eq-zero-during-transit (0)

  • 遥 不可 及:communication-prohibited-by-filtering(13)、 destination-host-prohibited (10)、 destination-host-unknown (7)、 destination-network-prohibited (9)、 destination-network-unknown (6)、 fragmentation-needed (4)、 host-precedence-violation (14)、 host-unreachable (12 host-unreachable-for-TOS )、 network-unreachable (0)、 network-unreachable-for-TOS (11)、 port-unreachable (3)、 precedence-cutoff-in-effect (15)、 protocol-unreachable (2)、 source-host-isolated (8)、 source-route-failed (5)

icmp-code-except message-code

与 ICMP 消息代码字段不匹配。有关详细信息,请参阅 icmp-code 匹配条件。

icmp-type number

匹配 ICMP 消息类型字段。

注:

使用此匹配条件时,还应在同 protocol icmp 一术语中使用匹配条件(如下所示),以确保 icmp 正在评估数据包。

term Allow _ICMP {
                from protocol icmp {
                    icmp-code ip-header-bad;
                    icmp-type echo-reply;
                }
                then {
                    policer ICMP_Policier;
                    count Allow_ICMP;

您还必须在同一 icmp-type message-type 术语中配置匹配条件。ICMP 消息代码提供的信息比 ICMP 消息类型更具体,但 ICMP 消息代码的含义取决于关联的 ICMP 消息类型。

注:

对于 Junos OS Evolved,您必须在同一术语中配置 protocol match 语句。

代替数值,您可以指定以下文本同义词之一(字段值也列出):echo-reply(0)、 echo-request (8)、 info-reply (16)、 info-request (15)、 mask-request (17)、 mask-reply (18)、 parameter-problem (12)、 redirect (5)、 router-advertisement (9)、 router-solicit (10)、 source-quench (4)、 time-exceeded (11)、 timestamp (13)、 timestamp-reply (14) 或 unreachable (3)。

icmp-type-except message-type

与 ICMP 消息类型字段不匹配。有关详细信息,请参阅 icmp-type 匹配条件。

interface interface-name

匹配接收数据包的接口。

注:

如果使用不存在的接口配置此匹配条件,则术语不会匹配任何数据包。

interface-group group-number

将接收数据包的逻辑接口与指定的接口组或接口组集匹配。对于 group-number,请指定从 0 到 255 的单个值或一个值范围。

要为接口组 group-number分配逻辑接口,请 group-number 指定层级的 [interfaces interface-name unit number family family filter group] 逻辑接口。

注:

PTX 系列路由器不支持此匹配条件。

有关更多信息,请参阅 过滤在一组接口组上接收的数据包概述

interface-group-except group-number

不要与接收数据包的逻辑接口匹配到指定的接口组或接口组集。有关详细信息,请参阅 interface-group 匹配条件。

注:

PTX 系列路由器不支持此匹配条件。

interface-set interface-set-name

将接收数据包的接口匹配到指定的接口集。

要定义接口集,请将语句 interface-set 包含在 [edit firewall] 层次结构级别。

注:

PTX 系列路由器不支持此匹配条件。

有关更多信息,请参阅 过滤接口集上接收的数据包概述

ip-options values

将 8 位 IP 选项字段(如果存在)匹配指定的值或值列表。

代替数值,可以指定以下文本同义词之一(同时列出了选项值):loose-source-route(131)、 record-route (7)、 router-alert (148)、 security (130)、 stream-id (136)、strict-source-route(137) 或 timestamp (68)。

要匹配 IP 选项 的任何 值,请使用文本同义词 any。要匹配多个值,请在方括号(“”和“”[])中指定值列表。要匹配一 系列 值,请使用值规格 value1-value2 ]

例如,匹配条件ip-options [ 0-147 ]与包含 loose-source-route、 或record-routesecurity值或任何从 0 到 147 的其他值的 IP 选项字段匹配。但是,此匹配条件与仅包含值 (148) 的 router-alert IP 选项字段不匹配。

对于大多数接口,在一 ip-option 个或多个 特定 IP 选项值(值以外的 any值)上指定匹配的过滤器术语会使数据包发送至路由引擎,以便内核可以解析数据包标头中的 IP 选项字段。

  • 对于针对一个或多个特定 IP 选项值指定 ip-option 匹配的防火墙过滤器术语,您不能指定 countlogsyslog 非终止操作, 除非您 在同一术语中也指定 discard 终止操作。此行为可防止对应用于路由器上传输接口的过滤器对数据包进行双计数。

  • 如果出现系统瓶颈,在内核上处理的数据包可能会丢失。要确保匹配的数据包被发送至数据包转发引擎(其中,数据包处理在硬件中实施),请使用 ip-options any 匹配条件。

MX 系列路由器上的 10 千兆以太网模块化端口集中器 (MPC)、100 千兆以太网 MPC、60 千兆以太网 MPC、60 千兆以太网 MPC 和 60 千兆以太网增强排队 MPC 能够解析 IPv4 数据包标头的 IP 选项字段。对于在这些 MPC 上配置的接口,使用ip-options匹配条件匹配的所有数据包都会发送至数据包转发引擎进行处理。

ip-options any从 Junos Evolved OS 20.2R1 版开始,PTX10003 和 PTX10008 系列路由器支持匹配条件。

注:
  • 在 MX 系列路由器上,使用的 ip-options 过滤器匹配不能与出口(输出)过滤器一起使用。
  • 在 M 和 T 系列路由器上,防火墙过滤器不能按选项类型和接口对数据包进行计数 ip-options 。一个有限的应对工作是使用 show pfe statistics ip options 命令查看 ip-options 每个 PFE 的统计信息。有关示例输出,请参阅 show pfe 统计信息 ip

ip-options-except values

请勿将 IP 选项字段与指定的值或值列表匹配。有关指定匹配 values条件的详细信息,请参阅 ip-options 匹配条件。

is-fragment

如果 IP 报头中启用了更多分片标志,或者分片偏移量不为零,则使用此条件将导致匹配。

注:

要同时匹配第一个和尾部分片,您可以使用两个指定不同匹配条件(first-fragment 和)的 is-fragment术语。

loss-priority level

匹配丢包优先级 (PLP) 级别。

指定单个级别或多个级别:lowmedium-lowmedium-highhigh

支持 M120 和 M320 路由器;配备增强型 CFEB (CFEB-E) 的 M7i 和 M10i 路由器;和 MX 系列路由器。

对于具有增强型 II 灵活 PIC 集中器 (FPC) 的 M320、MX 系列和 T 系列路由器上的 IP 流量,您必须在[edit class-of-service]层次结构级别中包含 tri-color 语句,以便提交具有四个指定级别中的任何一个级别的 PLP 配置。如果未启用语句 tri-color ,则只能配置 highlow 级别。这适用于所有协议家族。

有关 tri-color 语句的信息,请参阅 配置和应用 Tricolor 标记监管器。有关使用行为聚合 (BA) 分类器设置传入数据包的 PLP 级别的信息,请参阅 行为聚合分类器如何确定可信流量的优先级

loss-priority-except level

与 PLP 级别不匹配。有关详细信息,请参阅 loss-priority 匹配条件。

packet-length bytes

匹配接收数据包的长度(以字节为单位)。长度仅指 IP 数据包,包括数据包标头,不包括任何第 2 层封装开销。您还可以指定要匹配的值范围。

packet-length-except bytes

与收到的数据包的长度(以字节为单位)不匹配。有关详细信息,请参阅 packet-length 匹配类型。

port number

匹配 UDP 或 TCP 源或目标端口字段。

如果配置此匹配条件,则无法配置destination-port同一术语中的匹配条件。source-port

配置基于端口的匹配项时,还必须在同一过滤器术语中配置 protocol udpprotocol tcp match 语句。仅在端口值上匹配可能会导致意外匹配。

您可以指定下 destination-port列出的文本同义词之一,以取代数值。

port-except number

源、目标 UDP 或 TCP 端口字段不匹配。有关详细信息,请参阅 port 匹配条件。

precedence ip-precedence-value

匹配 IP 优先级字段。

代替数字字段值,可以指定以下文本同义词之一(字段值也会列出):critical-ecp(0xa0)、 flash (0x60)、 flash-override (0x80)、 immediate (0x40)、 internet-control (0xc0)、 net-control (0xe0)、 priority (0x20)或 routine (0x00)。您可以以十六进制、二进制或十进制形式指定优先级。

precedence-except ip-precedence-value

与 IP 优先级字段不匹配。

代替数字字段值,可以指定以下文本同义词之一(字段值也会列出):critical-ecp(0xa0)、 flash (0x60)、 flash-override (0x80)、 immediate (0x40)、 internet-control (0xc0)、 net-control (0xe0)、 priority (0x20)或 routine (0x00)。您可以以十六进制、二进制或十进制形式指定优先级。

prefix-list name [ except ]

将源地址或目标地址字段的前缀与指定列表中 前缀匹配, except 除非包含选项。如果包含选项,则不要将源地址或目标地址字段的前缀与指定列表中前缀匹配。

前缀列表在层次结构级别定义 [edit policy-options prefix-list prefix-list-name]

注:

PTX1000 路由器不支持此匹配条件。

protocol number

匹配 IP 协议类型字段。代替数值,您可以指定以下文本同义词之一(字段值也列出):ah(51)、 dstopts (60)、 egp (8)、 esp (50)、 fragment (44)、 gre (47)、 hop-by-hop (0)、 icmp (1)、 icmp6 (58)、 icmpv6 (58)、 igmp (2)、 ipip (4)、 ipv6 (41)、 ospf (89)、 pim (103)、 rsvp (46)、 sctp (132)、 tcp (6)、 udp (17)或 vrrp (112)。

protocol-except number

不匹配 IP 协议类型字段。代替数值,您可以指定以下文本同义词之一(字段值也列出):ah(51)、 dstopts (60)、 egp (8)、 esp (50)、 fragment (44)、 gre (47)、 hop-by-hop (0)、 icmp (1)、 icmp6 (58)、 icmpv6 (58)、 igmp (2)、 ipip (4)、 ipv6 (41)、 ospf (89)、 pim (103)、 rsvp (46)、 sctp (132)、 tcp (6)、 udp  (17)或 vrrp (112)。

rat-type tech-type-value

匹配代理移动 IPv4 (PMIPv4) 接入技术类型扩展的 8 位技术类型字段指定的无线接入技术 (RAT) 类型。技术类型指定移动设备连接到接入网络的接入技术。

指定单个值、一系列值或一组值。您可以将技术类型指定为 0 到 255 的数值或系统关键词。

  • 以下数值是众所周知的技术类型的示例:

    • 数值 1 与 IEEE 802.3 匹配。

    • 数值 2 与 IEEE 802.11a/b/g 匹配。

    • 数值 3 与 IEEE 802.16e 匹配

    • 数值 4 与 IEEE 802.16m 匹配。

  • 文本字符串 eutran 与 4G 匹配。

  • 文本字符串 geran 与 2G 匹配。

  • 文本字符串 utran 与 3G 匹配。

rat-type-except tech-type-value

与 RAT 类型不匹配。

service-filter-hit

匹配从应用操作的过滤器 service-filter-hit 收到的数据包。

注:

PTX 系列路由器不支持此匹配条件。

source-address address [ except ]

匹配发送数据包的源节点的 IPv4 地址, except 除非包含选项。如果包含选项,则与发送数据包的源节点的 IPv4 地址不匹配。

您不能在同一 address 术语中同时指定和 source-address 匹配条件。

source-class class-names

匹配一个或多个指定的源类名称(组合在一起并赋予一个类名称的源前缀集)。有关更多信息,请参阅 基于地址等级的防火墙过滤器匹配条件

source-class-except class-names

不匹配一个或多个指定的源类名称。有关详细信息,请参阅 source-class 匹配条件。

source-port number

匹配 UDP 或 TCP 源端口字段。

您不能在同一 port 术语中指定和 source-port 匹配条件。

配置基于端口的匹配项时,还必须在同一过滤器术语中配置 protocol udpprotocol tcp match 语句。仅在端口值上匹配可能会导致意外匹配。

您可以指定与匹配条件列出的 destination-port number 文本同义词之一,以取代数值。

source-port-except number

与 UDP 或 TCP 源端口字段不匹配。有关详细信息,请参阅 source-port 匹配条件。

source-prefix-list name [ except ]

匹配指定列表中 源前缀, except 除非包含选项。如果包含选项,则与指定列表中源前缀不匹配。

指定在 [edit policy-options prefix-list prefix-list-name] 层级定义的前缀列表的名称。

tcp-established

匹配已建立 TCP 会话的 TCP 数据包(连接第一个数据包以外的数据包)。这是的别名 tcp-flags "(ack | rst)"

此匹配条件不会隐式检查协议是否为 TCP。要检查这一点,请指定 protocol tcp 匹配条件。

tcp-flags value

匹配 TCP 标头中的 8 位 TCP 标志字段中的一个或多个低阶 6 位。

要指定单个位字段,可以指定以下文本同义词或十六进制值:

  • fin(0x01)

  • syn(0x02)

  • rst(0x04)

  • push(0x08)

  • ack(0x10)

  • urgent(0x20)

在 TCP 会话中,仅在发送的初始数据包中设置 SYN 标志,而 ACK 标志在初始数据包之后发送的所有数据包中设置。

您可以使用位字段逻辑运算符将多个标志串在一起。

有关组合位字段匹配条件,请参阅 tcp-establishedtcp-initial 匹配条件。

如果配置此匹配条件,我们建议也配置 protocol tcp 同一术语中的 match 语句,以指定端口上使用 TCP 协议。

仅对于 IPv4 流量,此匹配条件不会隐式检查数据报是否包含分片数据包的第一个分片。要仅检查 IPv4 流量的此条件,请使用 first-fragment 匹配条件。

tcp-initial

匹配 TCP 连接的初始数据包。这是的别名 tcp-flags "(!ack & syn)"

此条件不会隐式检查协议是否为 TCP。如果配置此匹配条件,我们建议您也配置 protocol tcp 同一术语中的匹配条件。

ttl number

匹配 IPv4 生存时间编号。指定 TTL 值或 TTL 值范围。对于 number,可以指定一个或多个值,从0255 此匹配条件仅在 M120、M320、MX 系列和 T 系列路由器上受支持。

ttl-except number

IPv4 TTL 编号不匹配。有关详细信息,请参阅 ttl 匹配条件。

发布历史记录表
版本
说明
13.3R7
增加了对差异化服务代码点 (DSCP) 过滤的支持和路由引擎源数据包的转发类,包括以通用路由封装 (GRE) 封装的 IS-IS 数据包。