对接口应用过滤器和服务
通过配置服务集定义对服务规则进行定义和分组后,可以将服务应用于路由器上的一个或多个接口。要将定义的服务集与接口相关联,请在层次结构级别将该service-set语句与 or output 语句包含在input[edit interfaces interface-name unit logical-unit-number family inet service]内:
[edit interfaces interface-name unit logical-unit-number family inet service] input { service-set service-set-name <service-filter filter-name>; post-service-filter filter-name; } output { service-set service-set-name <service-filter filter-name>; }
在某个接口上启用服务时,不支持反向路径转发。无法在管理接口 (fxp0) 或环路接口 (lo0) 上配置服务。
您可以在接口的输入侧和输出侧配置不同的服务集。但是,对于具有双向服务规则的服务集,您必须在 and input output 语句中包含相同的服务集定义。语句中包含的service任何服务集都必须在层次结构级别使用[edit services service-set service-set-name]该interface-service语句进行配置;有关更多信息,请参阅配置要应用于服务接口的服务集。
如果为接口配置了包含拒绝作的输入防火墙过滤器和包含状态防火墙规则的服务集,则在对数据包运行状态防火墙规则之前,路由器将先执行输入防火墙过滤器。因此,当数据包转发引擎通过接口发出互联网控制消息协议 (ICMP) 错误消息时,状态防火墙规则可能会丢弃数据包,因为在输入方向上看不到数据包。
可能的变通方法是包括一个转发表过滤器来执行拒绝作(因为这种类型的过滤器是在输入方向的状态防火墙之后执行的),或者包括一个输出服务过滤器,以防止本地生成的 ICMP 数据包进入状态防火墙服务。
配置服务过滤器
您可以选择性地添加与每个服务集关联的过滤器,以优化目标并额外处理流量。如果包含不 service-set 带定义的 service-filter 语句,路由器软件会假定匹配条件为 true,并自动选择服务集进行处理。
要配置服务过滤器,请在层次结构级别包含[edit]该firewall语句:
firewall {
family inet {
service-filter filter-name {
term term-name {
from {
match-conditions;
}
then {
action;
action-modifiers;
}
}
}
}
}
必须指定 inet 为地址族才能配置服务过滤器。
配置服务过滤器的方法与防火墙过滤器类似。服务过滤器与防火墙过滤器具有相同的匹配条件,但具体作如下:
count— 将数据包添加到计数器总计中。log— 记录数据包。port-mirror— 端口镜像数据包。sample— 对数据包进行采样。service— 转发数据包以进行服务处理。skip— 从服务处理中省略数据包。
有关配置防火墙过滤器的详细信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
您还可以在接口的每一端包含多个服务集定义。如果包含多个服务集,路由器软件将按配置中指定的顺序对其进行评估。它执行在服务过滤器中找到匹配项的第一个服务集,并忽略后续定义。
附加语句允许您指定用于在执行输入服务集后处理流量的过滤器。要配置这种类型的过滤器,请在层次结构级别包含[edit interfaces interface-name unit logical-unit-number family inet service input]该post-service-filter语句:
post-service-filter filter-name;
软件仅在选择并执行服务集后才会执行服务后过滤。如果流量不符合任何配置服务集的匹配标准,则会忽略服务后过滤器。当服务接口位于 MS-MIC 或 MS-MPC 上时,不支持该 post-service-filter 语句。
有关将服务集应用于接口的示例,请参阅 示例:配置服务接口。
有关将过滤器应用于接口的更多信息,请参阅适用于路由 设备的 Junos OS 网络接口库。有关过滤器的常规信息,请参阅路由 策略、防火墙过滤器和流量监管器用户指南。
将 NAT 处理应用于数据包后,它们不受输出服务过滤器的约束。服务过滤器仅影响未转换的流量。