配置基于 MS-MPC 或基于 MX-SPC3 的静态 HTTP 重定向服务
从 Junos OS 19.3R2 版开始,基于 MX-SPC3 服务卡的强制门户也支持静态 HTTP 重定向服务配置,如果您在 MX 系列路由器上启用了新一代服务。
围墙花园是一组服务器,可向用户提供对围墙花园内站点的访问,而无需通过强制门户进行重新授权。强制门户页面通常是订阅者登录订阅者会话后看到的初始页面。
当订阅者尝试访问有围墙花园之外的站点时,HTTP 重定向服务会处理 IPv4 和 IPv6 HTTP 请求以管理该流量。不发往围墙花园的订阅者 HTTP 请求流量被发送至重定向服务器,该重定向服务器使用重定向 URL 进行响应,该 URL 会将流量发送到强制门户,而不是未经授权的外部站点。强制门户为重定向的订阅者提供身份验证和授权服务,然后授予他们对围墙花园外受保护服务器的访问权限。
重定向服务器可以是本地的,也可以是远程的:
本地重定向服务器 — 驻留在路由器上,将订阅者流量重定向到围墙花园内的强制门户。
远程重定向服务器 — 驻留在路由器后面围墙花园内的设备(如策略服务器)上。订阅者的 HTTP 流量的目标地址将重写为远程重定向服务器的地址。远程服务器将订阅者流量重定向到该围墙花园内的强制门户。
您将围墙花园配置为防火墙服务过滤器。服务过滤器连接到静态接口。CPCD 服务通过服务集应用于服务接口(MS-MPC 上的 ms-或 MX-SPC3 服务卡上的 vms);然后,服务集连接到静态接口。
将围墙花园配置为防火墙服务过滤器
将围墙花园配置为防火墙服务过滤器时,将识别并跳过目的地为围墙花园内的服务器的流量。由于此流量不会流向线卡,因此处理要求有所降低。
所有其他 HTTP 流量都流向有围墙花园外的地址。由于此流量与过滤器条件不匹配,因此会流向线卡进行处理。
您可以配置服务过滤器,以便围墙式花园包含单个服务器作为强制门户或服务器列表。
将围墙式花园配置为一个服务器作为强制门户:
创建服务过滤器。
[edit] user@host# edit firewall family address-family service-filter filter-name
定义一个过滤器术语,以识别并跳过对强制门户的流量进行处理。
通过指定强制门户和目标端口的目标地址,指定过滤器条件,以匹配强制门户的流量。
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-address ip-address user@host# set term name from destination-port port-number
指定匹配流量跳过线卡上的处理。
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
定义一个过滤器术语,以识别与上一术语不匹配的所有流量中的 HTTP 流量,并发送该流量以便按 CPCD 服务规则进行处理。
指定一个或多个 HTTP 端口号,以匹配跳过的 HTTP 流量。
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
指定由 CPCD 服务处理匹配的流量。
[edit firewall family inet service-filter filter-name] user@host# set term name then service
定义过滤器术语,以跳过任何剩余的非 HTTP 流量的进一步操作。
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
例如,以下配置为 IPv4 HTTP 流量(walled-v4)创建一个过滤器,其强制门户位于 192.0.2.0。与地址匹配的流量被跳过。非匹配流量用于术语 http,其中 HTTP 流量会从所有跳过的流量中挑选出来,并发送到根据 CPCD 服务进行处理。最后,术语跳过会导致跳过所有剩余的非 HTTP 流量。
[edit] user@host# edit firewall family inet service-filter walled-v4 [edit firewall family inet service-filter walled-v4] user@host# set term portal from destination-address 192.0.2.0 user@host# set term portal from destination-port 80 user@host# set term portal then skip user@host# set term http from destination-port 80 user@host# set term http then service user@host# set term skip then skip
将围墙花园配置为服务器列表或子网。
创建服务过滤器。
[edit] user@host# edit firewall family address-family service-filter filter-name
定义过滤器术语。
通过指定服务器的目标前缀列表,指定过滤器条件,以匹配发往围墙花园中任何服务器的流量。
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-prefix-list list-name user@host# set term name from destination-port port-number
指定匹配流量跳过线卡上的处理。
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
定义一个过滤器术语,以识别与上一术语不匹配的所有流量中的 HTTP 流量,并发送该流量以便按 CPCD 服务规则进行处理。
指定一个或多个 HTTP 端口号,以匹配跳过的 HTTP 流量。
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
指定由 CPCD 服务处理匹配的流量。
[edit firewall family inet service-filter filter-name] user@host# set term name then service
定义过滤器术语,以跳过任何剩余的非 HTTP 流量的进一步操作。
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
(可选)定义一个前缀列表,用于指定围墙花园内的服务器。您可以指定一个子网或多个单独的地址。
[edit policy-options] user@host# set prefix-list list- name ip-address/mask user@host# set prefix-list list- name ip-address1 user@host# set prefix-list list- name ip-address2
例如,以下配置会为 IPv6 HTTP 流量创建一个过滤器 walled-v6-list,其中前缀列表 wg-list 指定了围墙花园中的两个服务器。过滤器术语门户6 标识流向围墙花园的 IPv6 流量。非匹配流量用于术语 http6,其中 HTTP 流量从所有跳过的流量中挑选出来,并发送到根据 CPCD 服务进行处理。最后,术语跳过会使所有剩余的非 HTTP 流量被跳过。
[edit] user@host# edit firewall family inet6 service-filter walled-v6-list user@host# set term portal6 from destination-prefix-list wg-list user@host# set term portal6 then skip user@host# set term http6 from destination-port [80 8080] user@host# set term http6 then service user@host# set term skip6 then skip [edit policy-options] user@host# set prefix-list wg-list 2001:db8::10.10 user@host# set prefix-list wg-list 2001:db8::10.22
为本地和远程重定向服务器配置 HTTP 重定向
当对围墙花园之外的站点发出 HTTP 请求时,CPCD 可以将流量重定向到强制门户进行身份验证和授权。
配置 CPCD 服务规则,以指定对发往围墙花园之外的流量采取的操作。此流量由围墙花园服务过滤器识别并传递到该服务。您配置的操作取决于您使用的是本地还是远程 HTTP 重定向服务器:
如果在路由器上使用本地 HTTP 重定向服务器,请指定重定向操作。
如果您使用的远程 HTTP 重定向服务器位于路由器后面的围墙花园中,则不能简单地指定重定向 URL。在这种情况下,服务规则必须重写流量的 IP 目标地址。新的目标地址是远程 HTTP 重定向服务器的地址。然后,远程服务器会提供重定向 URL,将流量发送到强制门户。
CPCD 服务通过服务集与服务接口相关联。服务集和围墙花园服务过滤器均应用于静态配置的接口。
例如,在以下本地服务器配置中,CPCD 服务规则 redir-svc 将流量重定向到强制门户 http://www.portal.example.com
。订阅者输入的原始 URL 将附加到重定向 URL。
user@host# edit services captive-portal-content-delivery user@host# edit rule redir-svc user@host# set match-direction input user@host# set term redir1 then redirect http://www.portal.example.com/url=%dest-url%
远程服务器的以下配置会创建 CPCD 服务规则 rewr-svc,将原始目标地址重写为远程服务器的地址 192.0.2.230。
user@host# edit services captive-portal-content-delivery user@host# edit rule rewr-svc user@host# set match-direction input user@host# set term rewr1 then rewrite destination-address 192.0.2.230
配置服务配置文件和服务集,以将服务配置文件和服务接口相关联
服务集定义由 MS-MPC/MS-MIC 执行的一个或多个服务,或者 MX-SPC3 服务卡(如果您在 MX 系列路由器上启用了 NEXT Gen 服务)。对于 HTTP 重定向服务,您可以定义包含 CPCD 规则的 CPCD 服务配置文件。服务集将 CPCD 服务配置文件应用于特定服务接口。
例如,以下配置将创建 CPCD 服务配置文件 redir-prof,其引用 CPCD 规则 redir-svc。服务集 ss2 将 CPCD 服务配置文件 redir-prof 和服务接口 ms-5/0/0 相关联。
[edit services captive-portal-content-delivery] user@host# edit profile redir-prof user@host# set cpcd-rules redir-svc [edit services] user@host# edit service-set sset2 user@host# set captive-portal-content-delivery-profile redir-prof user@host# set interface-service-service-interface ms-5/0/0
将 CPCD 服务集和服务过滤器连接到逻辑接口
要使用 HTTP 重定向服务,必须将 CPCD 服务集连接到逻辑接口。如果将有墙的花园配置为服务过滤器,则必须将其连接到与服务集相同的接口。到达该接口并离开该接口的流量会受到服务过滤器的过滤。标识用于服务的流量将发送到 MS-MPC,或者发送到 MX-SPC3 服务卡(如果您在 MX 系列路由器上启用了新一代服务),并在服务接口上应用 CPCD 配置文件。
例如,以下配置将服务集 sset2 和服务过滤器 walled-v4 连接到 IPv4 地址家族的 ge-2/0/1.0。它会为逻辑接口分配地址。服务集和过滤器均应用于接口输入和输出。
user@host# edit interfaces ge-2/0/1 unit 0 family inet user@host# set address 203.0.113.5 user@host# set service input service-set sset2 service-filter walled-v4 user@host# set service output service-set sset2 service-filter walled-v4
安装 CPCD 服务的服务包
若要在 MS-MPC/MS-MIC 上使用 CPCD 服务,或者如果您在 MX 系列路由器上启用了新一代服务,请在 MS-MIC 或 MX-SPC3 上配置服务接口。您必须在具有服务接口的每个 MS-MIC 或 MX-SPC3 服务卡上安装所需的服务包。
例如,以下配置在机箱插槽 1 中的 MS-MPC 上加载 CPCD 服务包,在 MPC 的插槽 0 中加载 MS-MIC。系统会为所有守护程序以及所有严重级别的本地外部应用程序生成系统日志消息。
user@host# edit chassis fpc 1 pic 0 adaptive-services service-package [edit chassis fpc 1 pic 0 adaptive-services service-package] user@host# set extension-provider package jservices-cpcd [edit chassis fpc 1 pic 0 adaptive-services service-package] user@host# set extension-provider syslog daemon any user@host# set extension-provider syslog external any