HTTP 重定向服务概述
来自订阅者的 HTTP 请求流量从接入网络聚合到宽带远程访问服务器 (B-RAS) 路由器上,在该路由器中,HTTP 流量可以被拦截并重定向到外部设备上的强制门户。强制门户通常是订阅者在登录订阅者会话后看到的初始页面。强制门户还接收和管理对未授权 Web 资源的 HTTP 请求。
例如,用户可能会被重定向到显示公司徽标和网络使用策略的网页,或者重定向到订阅者支付服务费用的页面。强制门户通常会先为重定向的订阅者提供身份验证和授权服务,然后再授予对围墙花园外部受保护服务器的访问权限。
围墙花园(也称为允许列表)定义了一组服务器,在这些服务器中,无需通过强制门户重新授权即可向订阅者提供访问权限。这些围墙花园使您能够通过向客户营销各种服务来增加收入。
典型的围墙花园链接是:
供应商服务,如汽车租赁
酒店和汽车旅馆忠诚度或企业计划门户
客房服务
当地景点和天气
本文档交替使用术语 HTTP 重定向服务和强制门户内容交付 (CPCD) 服务。
HTTP 重定向服务实现数据处理程序和控制处理程序,并使用适用于 HTTP 应用程序的服务规则注册它们。这些规则由路由引擎上的 cpcdd 进程解析。数据处理程序将规则应用于 HTTP 数据流,并处理重写 IP 目标地址或使用预配置的重定向 URL 发送 HTTP 响应。响应消息包含 HTTP 状态代码。从 Junos OS 版本 17.3R1 开始,返回的状态代码取决于发送 GET 请求的 HTTP 客户端使用的 HTTP 版本。当版本高于 HTTP 1.0 时,重定向服务器将返回 307(临时重定向)状态代码。当版本为 HTTP 1.0 时,将返回 302(已找到)状态代码。在早于 17.3R1 的版本中,重定向服务器返回 302 状态代码,而不考虑 HTTP 版本。这两个代码都通知 HTTP 客户端对后续 GET 请求使用原始 URL,而不是重定向 URL。
当对 HTTP 请求的响应发送到订阅者时,通过将原始 URL 选择性地附加到配置的重定向 URL 的末尾来保留原始 URL。重定向 URL(包括附加的原始 URL)的最大长度为 128 字节。从 Junos 版本 17.3R1 开始,重定向 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 服务或服务集。
从 Junos OS 17.2R1 版开始,有三种方法可以配置 HTTP 重定向服务。从 Junos OS 19.3R2 版开始,如果启用了新一代服务,还可以在 MX-SPC3 服务处理卡上配置 HTTP 重定向。 表 1 列出了 HTTP 重定向服务支持的方法以及支持每种方法的 Junos OS 版本。
我们建议您使用 Junos OS 15.1 及更高版本来实现 HTTP 重定向服务。
方法 |
支持的 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,以及当 MS-MIC 安装在不接受线卡的 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。您可以在动态配置文件中创建重定向 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。
%用户名%—订阅者的用户名。
%subsc-IPv6% — 订阅者 IPv6 地址(仅限 IANA 地址)。如果未为订阅者指定 IANA 地址,则此字段将为空。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。