示例:配置和应用服务过滤器
此示例说明如何配置和应用服务筛选器。
要求
此示例在以下任一硬件组件上使用逻辑接口 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