Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

标准防火墙过滤器如何评估数据包

本主题涵盖以下信息:

防火墙过滤器数据包评估概述

下面的序列介绍设备在设备接口上的输入或输出流量与防火墙过滤器关联时如何评估数据包进入或退出接口。数据包评估过程如下:

  1. 设备将根据防火墙过滤器中的条款顺序评估数据包,从过滤器中的第一项开始。

    • 如果数据包符合术语中指定的所有条件,设备将执行该术语中指定的所有操作。

    • 如果数据包与在搜索词中指定的所有条件不匹配,设备将进入过滤器中的下一个术语(如果存在后续术语),然后根据该搜索项评估数据包。

    • 如果数据包与防火墙过滤器中任一术语不匹配,则设备会隐式丢弃该数据包。

  2. 与服务过滤器和简单过滤器不同,防火墙过滤器支持next term操作,这既不是终止操作,也不是 nonterminating 操作,而是流控制操作。

    注:

    在 Junos OS 演变时next term ,不能显示为操作的最后一项。指定为操作但next term不支持任何未配置任何匹配条件的过滤器术语。

    • 如果匹配的术语包括next term操作,设备将在防火墙过滤器内的下一术语继续对数据包进行评估。

    • 如果匹配术语不包括操作,则根据给定防火墙过滤器对数据包的评估在此搜索词 next term 结束。设备不会根据此过滤器中任何后续术语评估数据包。

    每个防火墙过滤器next term配置最多支持1024个操作。如果您配置的防火墙过滤器超过此限制,您的候选配置将导致提交错误。

  3. 当数据包与没有此操作的next term术语匹配或数据包无法匹配防火墙过滤器中的最后一项时,设备将停止根据给定防火墙过滤器评估数据包。

  4. 如果本地数据包到达与入口防火墙过滤器相关联的路由器接口,则过滤器将评估数据包两次。第一个评估在 数据包转发引擎 中执行,这是路由器转发平面的中央处理元素,第二个评估在运行路由器控制平面软件的 路由引擎 中执行。

    注:

    本地数据包—由路由器自身发出或发送的数据块—通常包含路由协议数据、用于 IP 服务(如 Telnet 或 SSH)的数据以及管理协议(如 Internet 控制消息协议(ICMP))的数据。

    如果防火墙过滤器的第一次评估修改了传入的本地数据包或数据包上下文值,则防火墙过滤器的第二个评估基于更新的数据包或数据包上下文值。

    例如,假设过滤器包含基于与数据包相关的转发类或丢失优先级值的匹配条件,并且过滤器中包含修改与数据包相关联的转发类或丢失优先级值的操作. 如果入口本地数据包到达关联接口,并且数据包转发引擎修改(而非丢弃)数据包,则路由引擎中的过滤器评估基于修改后的数据包环境(而不是原始数据包上下文)。

单个防火墙过滤器上的数据包评估

表 1介绍与单个防火墙过滤器关联的设备接口上的数据包过滤行为。

注:

在 Junos OS 演变时next term ,不能显示为操作的最后一项。指定为操作但next term不支持任何未配置任何匹配条件的过滤器术语。

表 1: 单个防火墙过滤器上的数据包评估

防火墙过滤器事件

操作

后续操作

防火墙过滤器术语未指定任何匹配条件。

此术语默认情况下匹配所有数据包,因此设备将执行该术语指定的操作。

如果术语操作包括next term操作,设备将根据防火墙过滤器中的下一术语继续对数据包进行评估(如果存在后续术语)。

该数据包匹配由防火墙过滤器术语指定的所有条件。

设备将执行该术语指定的操作。

如果术语操作包括next term操作,设备将根据防火墙过滤器中的下一术语继续对数据包进行评估(如果存在后续术语)。

该数据包匹配防火墙过滤器术语指定的所有条件,但该搜索词未指定任何操作。

设备隐式接受数据包。

如果术语操作包括next term操作,设备将根据防火墙过滤器中的下一术语继续对数据包进行评估(如果存在后续术语)。

数据包与防火墙过滤器术语指定的所有条件不匹配。

设备不会执行该术语指定的操作。

设备会根据过滤器中的下一术语继续对数据包进行评估(如果存在后续术语)。

数据包与过滤器中任一术语不匹配

设备隐式丢弃数据包

每个防火墙过滤器配置都包括discard过滤器结尾处的隐式操作。此隐式终止操作等效于将以下示例术语t_explicit_discard作为防火墙过滤器中的最后一项:

term t_explicit_discard {
    then discard;
}

优秀实践:明确接受未明确丢弃的任何信息流

您可能需要防火墙过滤器接受过滤器不会特别丢弃的任何信息流。在这种情况下,建议使用指定accept终止操作的最后一个术语来配置防火墙过滤器。

在以下示例片段中,将 搜索词配置为防火墙过滤器中的最终术语,明确配置防火墙过滤器接受过滤器未特别丢弃 t_allow_all_else 的任何信息流:

遵循此优秀实践可简化防火墙过滤器故障排除。

优秀实践:明确拒绝未特别接受的任何流量

另一方面,可能需要防火墙过滤器拒绝防火墙过滤器不特别接受的任何流量。在这种情况下,建议使用指定reject终止操作的最后一个术语来配置防火墙过滤器。

在下面的示例代码段中, t_deny_all_else将术语配置为防火墙过滤器中的最后一项将显式配置防火墙过滤器,以拒绝过滤器未明确接受的任何流量:

遵循此优秀实践可简化防火墙过滤器故障排除。

连接到单个接口的多个防火墙过滤器

在支持的设备接口上,您可以将多个防火墙过滤器连接到一个接口。有关更多详细信息,请参阅了解作为列表应用的多个防火墙过滤器

注:

在支持的接口上,您可以将与协议无关family any的()防火墙过滤器和协议特定(family inetfamily inet6)防火墙过滤器附加到相同接口。首先执行协议无关的防火墙过滤器。有关更多详细信息,请参阅标准防火墙过滤器应用准则

连接到多个接口的单个防火墙过滤器

在支持的接口上,您可以将单个防火墙过滤器与多个接口相关联,Junos OS 为每个关联接口创建该防火墙过滤器的接口特定实例

  • Junos OS 将防火墙过滤器的每个接口特定实例化与系统生成的接口特定名称相关联。

  • 对于过滤器count术语中的任何操作,数据包转发引擎将保持单独的接口特定的计数器,并 Junos OS 将每个计数器与系统生成的接口特定名称相关联。

  • 对于过滤policer条件中的任何操作,Junos OS 将创建监管器操作的单独接口特定实例。

有关更多详细信息,请参阅接口特定防火墙过滤器实例概述