示例:配置和应用服务过滤器
此示例说明如何配置和应用服务过滤器。
要求
此示例在以下任一硬件组件上使用逻辑接口 xe-0/1/0.0
:
M 系列或 T 系列路由器上的自适应服务 (AS) PIC
M 系列或 T 系列路由器上的多服务 (MS) PIC
MX 系列路由器上的多服务 (MS) DPC
EX 系列交换机
开始之前,请确保您已:
已安装支持的路由器(或交换机)以及 PIC 或 DPC,并执行初始路由器(或交换机)配置。
在拓扑中配置了基本以太网,并验证流量是否在拓扑中流动,以及 IPv4 流量是否通过逻辑接口
xe-0/1/0.0
。使用服务输入和输出规则以及服务接口上的服务默认设置配置服务集
vrf_svcs
。
有关配置服务集的准则,请参阅 配置要应用于服务接口的服务集。
概述
在此示例中,您将为 IPv4 流量创建三种类型的服务过滤器:一个输入服务过滤器、一个后服务输入过滤器和一个输出服务过滤器。不同的服务过滤器可以应用于同一服务集。另请参阅:配置要应用于服务接口的服务集
拓扑
将输入服务过滤器和后服务输入过滤器应用于逻辑接口 xe-0/1/0.0
上的输入流量,并将输出服务过滤器应用于同一逻辑接口上的输出流量。
先过滤 IPv4 流量,然后再接受用于输入服务处理 — 在逻辑接口
xe-0/1/0.0
上,您可以使用服务过滤器in_filter_presvc
过滤 IPv4 输入流量,然后才能接受与服务集vrf_svcs
关联的服务来处理该流量。服务in_filter_presvc
过滤器对从 ICMP 端口 179 发送的数据包进行计数,将这些数据包定向到与服务集vrf_svcs
关联的输入服务,并丢弃所有其他数据包。完成输入服务处理后过滤 IPv4 流量 — 在逻辑接口
xe-0/1/0.0
上,您可以使用服务过滤器in_filter_postsvc
过滤执行输入服务集in_filter_presvc
后返回到服务接口的流量。服务in_filter_postsvc
过滤器对从 ICMP 端口 179 发送的数据包进行计数,然后丢弃这些数据包。先过滤 IPv4 流量,然后再接受用于输出服务处理 —在逻辑接口
xe-0/1/0.0
上,您可以使用服务过滤器out_filter_presvc
过滤 IPv4 输出流量,然后才能接受与服务集vrf_svcs
关联的服务来处理该流量。服务out_filter_presvc
过滤器对发往 TCP 端口 179 的数据包进行计数,然后将数据包定向到与服务集vrf_svcs
关联的输出服务。
配置
以下示例要求您在配置层次结构中的各个级别上导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置此示例,请执行以下操作:
CLI 快速配置
要快速配置此示例,请将以下命令复制到文本文件中,删除所有换行符,然后将命令粘贴到层次结构级别的 CLI 中 [edit]
。
set firewall family inet service-filter in_filter_presvc term t1 from protocol tcp set firewall family inet service-filter in_filter_presvc term t1 from source-port bgp set firewall family inet service-filter in_filter_presvc term t1 then count svc_in_pkts set firewall family inet service-filter in_filter_presvc term t1 then service set firewall family inet service-filter in_filter_postsvc term t2 from protocol tcp set firewall family inet service-filter in_filter_postsvc term t2 from source-port bgp set firewall family inet service-filter in_filter_postsvc term t2 then count svc_in_pkts_rtn set firewall family inet service-filter in_filter_postsvc term t2 then skip set firewall family inet service-filter out_filter_presvc term t3 from protocol icmp set firewall family inet service-filter out_filter_presvc term t3 from destination-port bgp set firewall family inet service-filter out_filter_presvc term t3 then count svc_out_pkts set firewall family inet service-filter out_filter_presvc term t3 then service set interfaces xe-0/1/0 unit 0 family inet service input service-set vrf_svcs service-filter in_filter_presvc set interfaces xe-0/1/0 unit 0 family inet service input post-service-filter in_filter_postsvc set interfaces xe-0/1/0 unit 0 family inet service output service-set vrf_svcs service-filter out_filter_presvc
配置三个服务过滤器
逐步过程
要配置这三个服务过滤器:
配置输入服务过滤器。
[edit] user@host# edit firewall family inet service-filter in_filter_presvc [edit firewall family inet service-filter in_filter_presvc] user@host# set term t1 from protocol tcp user@host# set term t1 from source-port bgp user@host# set term t1 then count svc_in_pkts user@host# set term t1 then service
配置服务后输入过滤器。
[edit] user@host# edit firewall family inet service-filter in_filter_postsvc [edit firewall family inet service-filter in_filter_postsvc] user@host# set term t2 from protocol tcp user@host# set term t2 from source-port bgp user@host# set term t2 then count svc_in_pkts_rtn user@host# set term t2 then skip
配置输出服务过滤器。
[edit] user@host# edit firewall family inet service-filter out_filter_presvc [edit firewall family inet service-filter out_filter_presvc] user@host# set term t3 from protocol icmp user@host# set term t3 from destination-port bgp user@host# set term t3 then count svc_out_pkts user@host# set term t3 then service
结果
输入 show firewall
配置模式命令,确认输入和输出服务过滤器以及服务后输入过滤器的配置。如果命令输出未显示预期的配置,请重复此过程中的说明,以更正配置。
[edit] user@host# show firewall family inet { service-filter in_filter_presvc { term t1 { from { protocol tcp; source-port bgp; } then { count svc_in_pkts; service; } } } service-filter in_filter_postsvc { term t2 { from { protocol tcp; source-port bgp; } then { count svc_in_pkts_rtn; skip; } } } service-filter out_filter_presvc { term t3 { from { protocol icmp; destination-port bgp; } then { count svc_out_pkts; service; } } } }
应用三个服务过滤器
逐步过程
要应用这三个服务过滤器:
访问输入接口
xe-0/1/0.0
上的 IPv4 协议。[edit] user@host# edit interfaces xe-0/1/0 unit 0 family inet
应用输入服务过滤器和服务后输入过滤器。
[edit interfaces xe-0/1/0 unit 0 family inet] user@host# set service input service-set vrf_svcs service-filter in_filter_presvc user@host# set service input post-service-filter in_filter_postsvc user@host# set service output service-set vrf_svcs service-filter out_filter_presvc
结果
输入 show interfaces
配置模式命令,确认接口的配置。如果命令输出未显示预期的配置,请重复此示例中的说明,以更正配置。
[edit] user@host# show interfaces xe-0/1/0 { unit 0 { family inet { service { input { service-set vrf_svcs service-filter in_filter_presvc; post-service-filter in_filter_postsvc; } output { service-set vrf_svcs service-filter out_filter_presvc; } } } } }
完成设备配置后,提交您的候选配置。
验证
确认配置工作正常。
验证入站流量在输入服务之前是否已过滤
目的
验证从 TCP 端口 179 发送的入站数据包是否由与服务集vrf_svcs
关联的输入服务进行处理。
行动
显示由与服务集vrf_svcs
关联的输入服务发送处理的数据包计数。
[edit] user@host> show firewall filter in_filter_presvc-vrf_svcs counter svc_in_pkts
验证输入服务处理后是否过滤了入站流量
目的
验证从 TCP 端口 179 发送的入站数据包是否由与服务集vrf_svcs
关联的输入服务从处理中返回。
行动
显示由与服务集vrf_svcs
关联的输入服务从处理中返回的数据包计数。
[edit] user@host> show firewall filter in_filter_postsvc-vrf_svcs counter svc_in_pkts_rtn