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 来初始化 MIB 中仅三重奏匹配过滤器的过滤器计数器,例如。 show snmp mib walk name ascii 这会强制 Junos 学习过滤器计数器,并确保显示过滤器统计信息(这是因为筛选统计信息的第一个轮询可能不会显示所有计数器)。本指南适用于所有增强模式防火墙筛选器、具有灵活条件的筛选器以及具有某些终止操作的筛选器。有关详细信息,请参阅“相关文档”下列出的这些主题。

表 1介绍了可以在层次结构级别配置[edit firewall family inet filter filter-name term term-name from]match-conditions

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

匹配条件

Description

address address [ except ]

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

EX2300 和 EX3400 平台不支持修饰 except 符。

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 udp or protocol tcp match 语句。仅在端口值上进行匹配可能会导致意外匹配。

要代替数值,可以指定以下文本同义词之一(还会列出端口号):afs(1483), bgp (179), biff (512), bootpc (68), bootps (67), cmd (514), cvspserver (2401), dhcp (67), domain (53), eklogin (2105), 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), snpp (444), socks (1080), ssh (22), sunrpc (111), syslog (514), tacacs (49), (65), talk (517), telnet (23), tftp (69), timedtacacs-ds (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。有关更多信息,请参阅 了解行为聚合分类器如何确定可信流量的优先级

添加了对路由引擎源数据包(包括封装在通用路由封装 (GRE) 中的 IS-IS 数据包)的差异服务代码点 (DSCP) 和转发类进行过滤的支持。随后,从同时具有服务等级 (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-effortexpedited-forwarding、 或 network-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-fragmentis-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 (1), host-unreachable-for-TOS (12), 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 演化版,您必须在同一术语中配置 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 ]匹配包含 、 record-routesecurity值或 0 到 147 之间的任何其他值的 loose-source-routeIP 选项字段。但是,此匹配条件在仅 router-alert 包含值 (148) 的 IP 选项字段上不匹配。

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

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

  • 如果出现系统瓶颈,内核上处理的数据包可能会被丢弃。要确保将匹配的数据包发送到数据包转发引擎(其中数据包处理在硬件中实现),请使用 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 。有限的解决方法是使用该命令ip-options查看show pfe statistics ip options每个 PFE 的统计信息。有关示例输出,请参阅 显示 pfe 统计信息 ip

ip-options-except values

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

is-fragment

如果在 IP 报头 中启用了“更多片段”标志并且 片段偏移量不为零,则使用此条件会导致匹配。

注:

要匹配第一个片段和尾随片段,可以使用两个指定不同匹配条件的术语 (first-fragmentis-fragment)。

loss-priority level

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

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

在 M120 和 M320 路由器上受支持;采用增强型 CFEB (CFEB-E) 的 M7i 和 M10i 路由器;和 MX 系列路由器。

对于配备增强型 II 灵活 PIC 集中器 (FPC) 的 M320、MX 系列和 T 系列路由器上的 IP 流量,必须在层次结构级别包含语句 tri-color [edit class-of-service],才能提交具有指定四个级别中的任何一个的 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 udp or protocol 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)、(58)、 igmpicmpv6 (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)、(58)、 igmpicmpv6 (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 源端口字段。

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

配置基于端口的匹配时,还必须在同一筛选术语中配置 protocol udp or protocol 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,可以从 中255指定一个或多个值0。此匹配条件仅在 M120、M320、MX 系列和 T 系列路由器上受支持。

ttl-except number

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

变更历史表

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

版本
说明
13.3R7
添加了对路由引擎源数据包(包括封装在通用路由封装 (GRE) 中的 IS-IS 数据包)的差异服务代码点 (DSCP) 和转发类进行过滤的支持。