示例:配置和应用服务过滤器
此示例说明如何配置和应用服务过滤器。
要求
此示例使用以下任何硬件组件上的逻辑接口 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 信息流进行输入服务处理之前,请先过滤 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 信息流进行输出服务处理之前,请先过滤 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