HTTP 重定向服务概述
来自用户的 HTTP 请求流量从接入网络聚合到宽带远程接入服务器 (B-RAS) 路由器,在该中,HTTP 流量可以被拦截并重定向到外部设备上的强制门户。强制门户通常是订阅者登录到订阅者会话后看到的初始页面。强制门户还接收和管理对未经授权的 Web 资源的 HTTP 请求。
例如,用户可能会被重定向到显示公司徽标和网络使用策略的网页,或者订阅者为服务付费的页面。强制门户通常为重定向的订阅者提供身份验证和授权服务,然后再授予对围墙花园外受保护服务器的访问权限。
围墙花园(也称为允许列表)定义了一组服务器,在这些服务器中,无需通过强制门户向订阅者提供访问权限。这些围墙花园使您能够通过向客户营销各种服务来增加收入。
典型的围墙花园链接是:
-
汽车租赁等供应商服务
-
酒店和汽车旅馆忠诚度或企业计划门户
-
客房服务
-
当地景点和天气
本文档可互换使用术语 HTTP 重定向服务 和 强制门户内容交付 (CPCD) 服务 。
HTTP 重定向服务实现数据处理程序和控制处理程序,并使用适用于 HTTP 应用程序的服务规则注册它们。这些规则由路由引擎上的 cpcdd 进程解析。数据处理程序将规则应用于 HTTP 数据流,并处理重写 IP 目标地址或使用预配置的重定向 URL 发送 HTTP 响应。响应消息包含一个 HTTP 状态代码。返回的状态代码取决于发送 GET 请求的 HTTP 客户端使用的 HTTP 版本。当版本高于 HTTP 1.0 时,重定向服务器将返回 307(临时重定向)状态代码。当版本为 HTTP 1.0 时,将返回 302(找到)状态代码。在 17.3R1 之前的版本中,无论 HTTP 版本如何,重定向服务器都会返回 302 状态代码。这两个代码都通知 HTTP 客户端为后续 GET 请求使用原始 URL,而不是重定向 URL。
将对 HTTP 请求的响应发送到订阅者时,将保留原始 URL,方法是选择性地将其附加到配置的重定向 URL 的末尾。重定向 URL(包括附加的原始 URL)的最大长度为 128 字节。重定向 URL 的最大长度增加到 1360 字节,重定向服务器可以将有关订阅者的其他信息附加到重定向 URL。无论订阅者信息是否附加到 URL,最大长度都适用。要追加订阅者信息,可以在 RADIUS 接受访问消息中返回的 VSA 中指定某些订阅者属性,以响应订阅者登录或 RADIUS 授权变更 (CoA) 消息。这适用于激活服务 (26-65) 和停用服务 (26-66) VSA。从用户会话数据库中检索用户信息。
控制处理程序与路由引擎上的 cpcdd 进程保持连接,以了解配置更改,例如重定向 URL 以及重写 IP 目标和端口。为了实现更快的性能,控制处理程序会在模块化端口集中器 (MPC) 上维护相关配置实体的缓存,例如 URL。
IPv4 和 IPv6 均支持 HTTP 重定向服务。您可以将 HTTP 重定向服务或服务集附加到静态或动态接口。对于动态订阅者管理,您可以在订阅者登录时或使用 RADIUS 授权变更 (CoA) 动态附加 HTTP 服务或服务集。
-
您最多可以配置 1000 个 HTTP 重定向服务。
-
可以为 HTTP 重定向服务过滤器中的每个术语创建计数器。由于服务过滤器作为共享过滤器安装,因此对于配置的每个术语,硬件中只有一个聚合计数器可用。强制门户内容交付 (CPCD) 应用程序使用聚合计数器对软件中重定向的数据包进行计数。使用命令
show services captive-portal-content-delivery statistics interface查看计数器统计信息。
配置 HTTP 重定向服务有三种方法。如果启用了新一代服务,您还可以在 MX-SPC3 服务处理卡上配置 HTTP 重定向。 表 1 列出了 HTTP 重定向服务支持的方法以及支持每种方法的 Junos OS 版本。
| 方法 |
支持的 Junos OS 版本 |
|
|---|---|---|
| MS-DPC-based |
(MX-SPC3 服务卡上的新一代服务不受支持) |
|
| 静态 |
早于 15.1 的版本 |
|
| 融合 |
不支持 |
|
| MS-MPC-based |
(MX-SPC3 服务卡上的新一代服务不受支持。) |
|
| 静态 |
从 Junos OS 15.1 版开始 |
|
| 融合 |
从 Junos OS 17.2 版开始 |
|
| MX-SPC3-based |
||
| 静态 |
从 Junos OS 19.3R2 版开始,如果在 MX-SPC3 服务卡上启用了下一代服务。 |
|
| 融合 |
从 Junos OS 19.3R2 版开始,如果在 MX-SPC3 服务卡上启用了下一代服务。 |
|
| Routing Engine-based |
||
| 静态 |
所有 Junos OS 版本 |
|
| 融合 |
从 Junos OS 16.1R4 和 17.2 版开始 |
|
对于所有方法,您都可以将围墙花园配置为静态防火墙服务过滤器。
基于服务卡的强制门户
基于 MS-MPC 的强制门户
从 Junos OS 15.1R4 版开始,唯一支持 MX 系列路由器上 HTTP 重定向服务的线卡和接口卡组合是带有多服务模块化接口卡 (MS-MIC) 的多服务模块化端口集中器 (MS-MPC)。这种组合提供了改进的扩展性和高性能。MS-MIC 和 MS-MPC 具有增强的内存(MS-MIC 为 16 GB,MS-MPC 的每个 NPU 为 32 GB)和处理能力。MS-MPC 和 MS-MIC 上的服务接口在配置中以 ms- 前缀(例如,ms-1/2/1)来标识。
在本文档中, 术语“基于 MS-MPC” 是指安装了 MS-MIC 的 MPC,以及仅指安装在不接受线卡的 MX 系列路由器中时的 MS-MIC。
MX-SPC3 服务基于卡的强制门户
从 Junos OS 19.3R2 版开始,如果在 MX-SPC3 服务卡上启用了下一代服务,则可以配置 HTTP 重定向服务。MX-SPC3 上的服务接口在配置中使用 vms- 前缀来标识(例如,vms-1/2/1)。
配置为服务过滤器的加墙花园
基于服务卡的强制门户的数据包流因围墙花园的配置方式而异。发往围墙花园内服务器的 HTTP 流量不会流向服务卡。但是,发往围墙花园之外的任何 HTTP 流量都会流向服务卡。
对于第一个数据流量数据包中包含的用户请求,系统期望 TCP 代理生成一个 TCP SYN 标志,从而使数据处理程序执行规则查找并将这些规则应用于 HTTP 数据流。
对于 HTTP 重写条件 — 如果策略中未提供 IP 目的地址,控制处理程序将查找 IP 目的地址。
对于 HTTP 重定向条件 — 触发 TCP 代理以完成其三向握手。
对于 HTTP 请求数据包。
对于 HTTP 重写条件 — 控制处理程序使用缓存的 IP 目的地址并修改数据包。
对于 HTTP 重定向条件 - 控制处理程序使用预配置的重定向 URL 发送 HTTP 302 或 307 响应。
基于路由引擎的强制门户
基于路由引擎的强制门户支持将围墙花园用作静态和融合服务的防火墙服务过滤器。一旦 HTTP 流量与防火墙服务过滤器中定义的规则匹配,HTTP 流量就会发送到路由引擎。路由引擎上的服务接口使用 si- 前缀标识(例如,si-1/1/0)。si- 接口处理路由引擎的所有重定向和重写流量和服务。si-接口必须处于运行状态为up,才能启用和激活强制门户内容交付(CPCD)服务。启用 CPCD 服务后,si- 接口作状态的任何更改都不会影响现有 CPCD 服务。
适用于 HTTP 重定向服务的融合服务配置
从 Junos OS 17.2R1 版开始,基于路由引擎的强制门户和基于 MS-MPC/MS-MIC 的强制门户都支持融合服务配置。从 Junos OS 19.3R2 版开始,如果在 MX-SPC3 服务卡上启用了新一代服务,则基于 MX-SPC3 服务卡的强制门户也支持融合服务配置。融合服务配置意味着您可以在动态配置文件中配置服务配置。您可以为通过 RADIUS VSA 或授权变更 (CoA) 消息填充的服务指定用户定义的变量。
例如,您可能希望为每个订阅者使用不同的重定向 URL。您可以在动态配置文件中创建 redirect-url 变量,然后配置服务规则以将匹配的订阅者重定向到 $redirect-url。当 RADIUS 对用户进行身份验证时,激活服务 VSA (26–65) 会提供特定于该用户的 URL。
HTTP 重定向服务的静态服务配置
从 Junos OS 17.4R1 版开始,基于路由引擎的强制门户和基于 MS-MPC/MS-MIC 的强制门户都支持静态服务配置。从 Junos OS 19.3R2 版开始,如果在 MX-SPC3 服务卡上启用了新一代服务,则基于 MX-SPC3 的强制门户也支持静态服务配置。静态服务配置意味着您可以在静态配置文件中配置服务配置。您可以为通过 RADIUS VSA 或授权变更 (CoA) 消息填充的服务指定用户定义的变量(例如)。 http://portal.wifi.example.com/xx?wlanuseraddr=%subsc-ip%&nasaddr=%nas-ip%&acname=%ac -name%&url=%dest-url%&userlocation=%nas-port-id%&usermac=%mac-sa%& session-id=%sess-id%&username=%user-name%&wlanuseraddrv6=%subsc-ipv6%
在静态 CPCD 中,重定向 URL 中的属性不会在瞻博网络 VSA、激活服务 (26-65) 和停用服务 (26-66) 中发送。您可以按以下示例所示进行配置:
captive-portal-content-delivery {
rule redirect {
match-direction input;
term t1 {
then {
redirect url;
}
}
}
}
URL 中的标记,如“subsc-ip”、“nas-ip”、“ac-name”,必须在“%”符号之间指定。令牌的顺序并不重要。
以下是代币及其重要性的列表:
%subsc-ip% — 订阅者的专用 IP 地址。
%nas-ip% — BNG IP 地址。
%ac-name% — 对于 BNG,它将为空。
%dest-url% - 原始请求 URL。
%nas-port-id% — 用于订阅者。此参数必须包括接口名称、pvlan 和 cvlan。接口名称可以是物理接口名称,也可以是虚拟接口名称。例如,ge0/0/0 或 ae0。pvlan 和 cvlan 范围为 14095
%mac-sa% — WLAN 客户端 MAC 地址。
%sess-id% — 订阅者的会话 ID。
%user-name% — 订阅者的用户名。
%subsc-ipv6% — 用户 IPv6 地址(仅 IANA 地址)。如果未为订阅者指定 IANA 地址,则此字段将为空。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。