跳至主要内容

如何在 Starlink 上设置 Captive Portal:海事、交通和偏远地区站点指南

本技术指南阐述了如何绕过 Starlink 原生的 CGNAT 限制,部署安全且符合 GDPR 的访客 WiFi Captive Portal。内容涵盖海事、交通和偏远企业站点的网络架构、VLAN 隔离以及云端 RADIUS 集成。

📖 5 分钟阅读📝 352 🔧 2 应用实例3 练习题📚 8 关键定义

收听本指南

查看播客转录
如何在全球星链(Starlink)上设置 Captive Portal:海事、交通与偏远场所指南 [引言 - 约 1 分钟] 好了。现在您已经拥有了 Starlink。您已经把天线安装在了渡轮码头的屋顶上,或者固定在了船只的桅杆上,又或者在偏远的建设营地里指向天空。互联网已经连通。太棒了。但有一个没人提醒过您的棘手问题:Starlink 开箱即用只为您提供了一个通道。仅仅是一个通道。没有身份验证。没有品牌定制。没有符合 GDPR 的同意信息收集。您无法知道谁在使用您的网络、他们消耗了多少带宽,甚至在数据保护法下您是否得到了合法的保障。 这正是本期内容要解决的空白。我将带您了解如何精确地在 Starlink 之上部署一个真正的企业级 captive portal - 涵盖网络架构、您会立刻遇到的 CGNAT 问题、用于海事和偏远场所的 VLAN 隔离,以及 Purple 等平台如何集成到这个架构中。无论您是在运营渡轮航线、偏远地区的酒店、高速公路服务区,还是建设营地,这都是同样的核心问题,而解决方案也是一样的。 让我们开始深入探讨。 [技术深挖 - 约 5 分钟] 首先,让我们了解一下 Starlink 在网络层实际上为您提供了什么。 Starlink 通过低地球轨道卫星提供连接。天线连接到一个路由器 - 可以是 Starlink 原生路由器,或者在 Business 和 Maritime 级别中,是通过以太网适配器连接您自己的硬件。您需要立即理解的关键技术限制是 CGNAT - 运营商级网络地址转换。在标准的 Starlink 计划中,您处于共享的公网 IP 之后。您无法获得专属的公网 IP 地址,也无法接收对内的连接。这不是一个漏洞 - 而是 Starlink 在数百万订阅用户中管理 IP 地址空间的方式。 为什么 CGNAT 对 captive portal 如此重要?因为传统的 captive portal 架构往往依赖于对内连接 - 用于 RADIUS 身份验证回调、管理访问以及门户重定向逻辑。如果您的 captive portal 系统需要静态公网 IP 或对内端口转发,那么在 Starlink 的 CGNAT 之后它将无法稳定工作。绝对不行。 解决方案是采用云原生 RADIUS 架构。与您的本地控制器尝试接收对内身份验证请求不同,身份验证流程是向外发起的 - 从您的本地硬件发送到云端 RADIUS 服务器。Purple 的平台正是这样运作的。本地控制器向 Purple 的云端 RADIUS 架构发起向外连接。展示页面托管在云端。身份验证交互通过该向外隧道完成。CGNAT 将不再受影响,因为您根本不需要对内连接。 现在,您需要做的第二件事是绕过原生 Starlink 路由器。Starlink 路由器是一款消费级设备。它不支持 VLAN、没有 Captive Portal 功能、没有单用户带宽控制,也没有与企业身份验证系统的集成点。您需要将其设置为旁路模式(或者在 Business 和 Performance 硬件上使用以太网适配器),并用托管的企业路由器取而代之。在此场景中,我们最常用的平台是 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist 和 Ubiquiti UniFi。它们都支持 VLAN 标记、RADIUS 集成以及 Captive Portal 所需的围墙花园(Walled Garden)配置。 让我为您介绍一下应该部署的 VLAN 架构。在海上船只上,您通常至少需要三个 VLAN。VLAN 10 用于访客或旅客 WiFi - 这是 Captive Portal 所在的区域。VLAN 20 用于船员或员工 - 通常位于具有不同身份验证的独立 SSID 上。VLAN 30 用于运营、导航系统或物联网设备 - 与其他两个完全隔离,并配有严格的防火墙规则以防止任何横向移动。在远程施工营地或交通枢纽中,同样的逻辑也适用:访客接入、员工接入和运营系统绝不应共享同一个广播域。 Captive Portal 流程本身是这样工作的。旅客或访客连接到 VLAN 10 上的开放 SSID。其设备的 Captive Network Assistant(CNA)检测到互联网连接被阻止。在 iOS 上会弹出窗口。在 Android 上会触发通知。在 Windows 上会打开浏览器窗口。所有这些都会重定向到托管在云端的 Purple 页面。访客完成登录流程(邮箱注册、社交登录或凭证码)并同意您的条款。Purple 的页面服务器将一次性身份验证令牌发送回本地控制器。控制器将其转发给 Purple 的云端 RADIUS 服务器。RADIUS 返回 Access Accept 允许接入。控制器解除该设备 MAC 地址的 Captive Portal 限制。访客即可上线。 围墙花园是一项至关重要的配置步骤。在身份验证完成之前,设备唯一能访问的域名只有加载门户所需的那些域名 - 也就是 Purple 页面基础设施、任何社交登录端点以及操作系统使用的 CNA 检测 URL。其他所有内容都将被阻止。您需要在您的企业路由器或无线控制器中配置此围墙花园。Purple 提供了您需要列入白名单的特定域名列表 - 请参阅 support.purple.ai 上的支持文档以获取当前列表。 在技术方面还有一件事:SSL 证书。如果您使用的是 Cisco WLC,存在一个已知问题,即 Web 身份验证重定向会指向 HTTP URL,而非 HTTPS。现代浏览器会抛出安全警告。解决方案是在 WLC 上安装受公开信任的 SSL 证书,并配置虚拟主机名以匹配证书的通用名称(Common Name)。Purple 为 Cisco Catalyst 9800 系列控制器提供了专门的对此支持的文章 - 我会在节目简报中提供链接。 [实施建议与常见陷阱 - 约 2 分钟] 让我为您介绍 Starlink Captive Portal 部署中最容易出错的三件事。 第一:在第一天没有考虑到 CGNAT。团队订购了硬件,在工作台上配置了一切,在标准宽带连接上进行了测试,运行完美。然后他们将其部署在 Starlink 之后,身份验证就中断了。解决方案是在开始之前选择一个云 RADIUS 服务商 - 例如 Purple - 并确认您选择的平台采用仅出站的身份验证流。不要想当然地认为任何 Captive Portal 平台都能优雅地处理 CGNAT。请明确地提出这个问题。 第二:扁平网络设计。我在船只和偏远站点上经常看到这种情况。Starlink 接入后,有人插上了一个消费级 WiFi 路由器,突然间船员、访客、导航系统和闭路电视(CCTV)摄像头都处于同一个子网中。一个受损的船员设备就可能触及业务系统。一个观看 4K 视频流媒体的访客就会使所有人的链路饱和。在共享的卫星连接上,VLAN 划分是必选项。这是托管网络与安全隐患之间的本质区别。 第三:忘记了 macOS 上的 CNA。Apple 的 macOS 不允许在 CNA 浏览器会话中使用 Cookie。Purple 的 Captive Portal 需要会话 Cookie 来维持登录流程。在 macOS 笔记本电脑上,CNA 弹窗会将访问者重定向到 neverssl.com - 一个普通的 HTTP 网站,可以在没有 SSL 干扰的情况下正确触发重定向。确保您的支持人员知晓这一点,并考虑为笔记本电脑用户在 Splash Page 上添加一条说明。 在硬件方面:对于海洋部署,请使用 Starlink Performance 套件 - 专为恶劣环境设计的铝外壳设备。它的额定寿命为 10 年,且支持交流和直流电源。对于偏远陆地站点,标准的 Business 套件通常就足够了,但如果电力稳定性存在隐患,请规划 UPS。 [快速问答 - 约 1 分钟] 我经常被问到的快速问题: 我可以使用原生的 Starlink 路由器来做 Captive Portal 吗?不能。它没有 VLAN 支持,也没有 RADIUS 集成。请绕过它。 我需要静态 IP 才能运行 Purple 的 Captive Portal 吗?不需要。Purple 的云 RADIUS 架构可在 CGNAT 之后运行。不需要静态 IP。 当 Starlink 在会话期间离线时会发生什么?已验证的会话通常会持续到会话超时失效。新的验证将在连接恢复前进行排队。请配置您的会话超时,以匹配您预期的中断窗口。 这符合 GDPR 规范吗?是的,在正确配置的情况下。Purple 在展示页面通过明确的同意来获取有意识选择的选择性加入。数据处理符合 GDPR,且 Purple 持有 ISO 27001 认证。 我可以在一个控制面板中运行多个场所吗?可以。Purple 的平台从单一窗口管理超过 80,000 个活跃场馆。远程场所、船只和交通枢纽都显示在同一个管理界面中。 [总结与后续步骤 - 约 1 分钟] 好,让我们来做个总结。核心信息是:Starlink 解决了远程和海洋场所的连接问题。它并没有解决访问控制、合规性或分析问题。您需要在其上建立一个企业层。 本周要做的三件事:第一,确认您的 Starlink 硬件层级,以及您是否拥有用于旁路模式的以太网适配器访问权限。第二,从支持的硬件列表中选择一个企业 WiFi 控制器 - Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist 或 Ubiquiti UniFi 都是可靠的选择。第三,向 Purple 咨询 Connect 计划 - 这是部署 Captive Portal 的起点,其中包括云 RADIUS、展示页面编辑器和符合 GDPR 规范的同意获取。 包含架构图、工作示例和配置参考的完整书面指南可在 purple.ai 找到。如果您专门在海洋或交通环境中进行部署,指南部分有针对此特定设置的专门文章。 感谢收听。下一期,我们将介绍针对多场所企业网络的 RADIUS 验证配置 - 相同的听众,相同的深度。下期再。

header_image.png

执行摘要

Starlink 向偏远地区提供高速卫星连接,但其原生的消费级路由器缺乏企业环境所需的安全性、身份验证和合规性控制。对于运营海上船舶、偏远建设营地或交通枢纽的 IT 经理而言,在 Starlink 上部署 Captive Portal 面临着一个特定的技术挑战:Starlink 在运营商级网络地址转换 (CGNAT) 后运行,这会破坏传统的入站 RADIUS 身份验证流程。

本指南详细介绍了如何绕过原生 Starlink 硬件,并使用企业级路由设备集成云管理 Captive Portal。通过实施仅出站的云 RADIUS 身份验证和严格的 VLAN 隔离,网络架构师可以提供安全、品牌化且符合法律合规的 Guest WiFi 体验,同时隔离关键的业务运营系统。Purple 提供了身份管理层,用于捕获第一方数据并执行带宽配额,确保单个访客不会耗尽卫星上行链路带宽。

技术深度剖析

CGNAT 限制

Starlink 使用 CGNAT 管理其 IPv4 地址空间。您的终端与其他订户共享一个公网 IP 地址,这意味着您无法接受入站连接,也无法配置传统的端口转发。

传统的本地 Captive Portal 控制器通常期望接收来自 RADIUS 服务器的入站身份验证回调。当部署在 Starlink 之后时,这些入站数据包会在 CGNAT 边界处被丢弃,从而导致登录流程中断。

架构上的解决方案是采用仅出站身份验证模型。控制器不再等待入站请求,而是向云原生 RADIUS 服务器发起安全的出站隧道。Purple 的平台使用由云数据库支持的 FreeRADIUS 服务器来处理此身份验证 [1]。现场控制器将客户端详细信息传递给 Purple,Purple 处理登录并通过已建立的出站连接返回 Access-Accept 数据包,从而完全绕过了 CGNAT 的限制。

architecture_overview.png

绕过原生硬件

Starlink 路由器提供的是一个扁平的、未托管的网络。它不支持 802.1Q VLAN 标记、单用户带宽限制或企业级身份验证。

要部署 Captive Portal,您必须从路由路径中移除 Starlink 路由器。在标准套件上,这需要在 Starlink 应用中启用旁路模式并使用以太网适配器。对于使用 High Performance 或 Flat High Performance 套件的航海和企业部署,您需要将 Starlink 电源直接连接到企业路由器的 WAN 端口。

Purple 与所有主流企业硬件厂商无缝集成。此架构的经典硬件列表包括 Cisco Meraki、HPE Aruba、Ruckus、Juniper Mist 和 Ubiquiti UniFi。这些平台提供了配置 Walled Garden、标记 VLAN 以及将认证请求转发到 Purple 云 RADIUS 所需的功能。

Walled Garden 配置

在用户进行认证之前,其设备必须能够访问 Captive Portal 基础设施。这需要配置 Walled Garden - 一个在认证前可访问的允许域名列表。

当设备连接到开放 SSID 时,其内置的 Captive Network Assistant (CNA) 会尝试访问预定义的 URL 以检查互联网连接 [1]。当此请求被控制器拦截时,CNA 会启动一个伪浏览器以显示 Captive Portal。

您的 Walled Garden 必须允许访问 Purple 的 Splash Page 服务器、静态内容分发网络(Cloudfront)以及任何所需的社交登录端点(例如 Google 或 Microsoft Entra ID)。如果这些域名被阻止,CNA 将无法加载登录页面,用户将保持离线状态。

实施指南

1. 网络细分

切勿在共享的卫星链路上部署扁平网络。您必须使用 VLAN 隔离流量,以保护业务运行的完整性。

对于航海船只或远程站点,请至少实施三个 VLAN:

  • VLAN 10 (Guest WiFi): 面向公众的网络,Captive Portal 部署于此。应用严格的单用户带宽限额(例如下行 5 Mbps / 上行 1 Mbps)以防止链路饱和。
  • VLAN 20 (员工网络): 供船员或员工使用的安全网络,通过 WPA3-Enterprise 或安全密码进行认证。
  • VLAN 30 (运营/IoT): 用于驾驶台导航、SCADA 系统或 POS 终端的高度受限网络。拒绝来自 VLAN 10 和 VLAN 20 的所有入站流量。

2. 控制器配置

配置您的企业路由器以指向 Purple 的 RADIUS 服务器。

  1. 设置 Purple 门户中提供的备用和主 RADIUS IP 地址。
  2. 配置 RADIUS 共享密钥。
  3. 将重定向 URL 设置为您的自定义 Purple Splash Page。
  4. 输入加载门户所需的 Walled Garden 域名。

3. 处理 SSL 证书(Cisco 特定)

如果您部署 Cisco Catalyst 9800 系列控制器,您可能会遇到初始重定向使用 HTTP(例如 http://192.168.0.2/login.html)的问题。现代桌面浏览器期望使用 HTTPS,并会显示“您的连接不是私密连接”警告,从而降低用户体验 [2]。要解决此问题,您必须在 Cisco WLC 上安装公开受信任的 SSL/TLS 证书。确保控制器上的虚拟 IPv4 主机名与证书中指定的公用名 (CN) 相匹配 [2]。这可以确保 Web 认证过程的安全,并满足浏览器的安全要求。

最佳实践

缓解 macOS CNA 限制

Apple 的 macOS 限制了 CNA 弹窗浏览器中的 Cookie。Purple 需要一个临时会话 Cookie 来在整个认证流程中维持登录状态 [1]。

当 macOS 用户连接时,CNA 弹窗会建议他们打开一个完整的系统浏览器(如 Safari 或 Chrome)并访问 neverssl.com [1]。这个纯 HTTP 网站可以干净地触发控制器的重定向,而不会受到 SSL 干扰,从而允许门户网站设置所需的 Cookie 并完成登录。确保您的支持人员了解这一行为,以便为用户提供帮助。

带宽管理

Starlink 提供了高带宽,但它是有限的。单个用户下载 50 GB 的游戏更新就可能导致整个场所的网速受到限制。

使用您的企业控制器来实施针对单用户的速度限制。Purple 平台允许您配置数据配额(例如,每天 1 GB)和时间限制。一旦用户达到配额,Purple 就会通过 RADIUS CoA (Change of Authorization) 撤销访问权限,或者提示用户购买高级套餐。

comparison_chart.png

故障排除与风险缓解

Captive Portal 无法加载

如果设备连接时未出现 Captive Portal:

  1. 检查围墙花园 (Walled Garden): 确保所有 Purple 域名和社交登录端点均已列入白名单。如果所需的脚本被阻止,页面将会卡死。
  2. 验证 DNS: 客户端设备必须通过 DHCP 接收到有效的 DNS 服务器,以便解析围墙花园域名。
  3. 使用 HTTP 进行测试: 打开浏览器并访问一个 HTTP 网站(如 neverssl.com)以强制进行重定向。

认证失败

如果用户看到了门户网站,但在提交详细信息后无法上网:

  1. 检查 RADIUS 可达性: 确保您的企业路由器可以通过端口 1812 和 1813 访问 Purple 的 RADIUS IP。
  2. 验证共享密钥: RADIUS 密钥不匹配会导致服务器静默丢包。
  3. 确认出站 NAT: 确保路由器正确地将 RADIUS 数据包的源 IP 转换为 Starlink WAN IP。

投资回报率与业务影响

部署企业级 Captive Portal 可将 Starlink 从单纯的互联网管道转化为可管理的业务资产。

对于 酒店餐饮交通运输 运营商而言,它提供了捕获第一方数据的机制。当每年有4.4亿次登录发生在Purple的网络中时,场所便能深入了解访客的人口统计特征、停留时间以及重复访问频率。这些数据直接输入到营销平台中,以推动客户忠诚度和收入增长。

此外,它还确保了合规性。提供开放式WiFi而不捕获明确的同意,会使组织面临数据隐私风险。Purple的Captive Portal可捕获有意识的选择性加入,从而确保您的网络运营符合GDPR、CCPA和ISO 27001标准。

参考文献

[1] Purple Support, "Captive Portal", https://support.purple.ai/hc/en-gb/articles/13856885831069-Captive-Portal [2] Purple Support, "Cisco WLC Captive Portal Certificate Setup", https://support.purple.ai/hc/en-gb/articles/31098410273693-Cisco-WLC-Captive-Portal-Certificate-Setup

关键定义

CGNAT (Carrier-Grade Network Address Translation)

互联网服务提供商(ISP)用于在多个客户之间共享单个公网 IP 地址的方法。

Starlink 使用 CGNAT,这会阻止 IT 团队配置端口转发或接受指向本地控制器的入站连接。

Captive Network Assistant (CNA)

嵌入在操作系统(iOS, Android, Windows)中的微型浏览器,它能检测互联网访问何时被阻断,并自动打开以显示登录页面。

CNA 是在访客连接 WiFi 时触发其手机上弹出窗口的机制,引导他们访问 Purple 的展示页面。

Walled Garden(围墙花园)

一种受限的网络环境,在用户通过身份验证之前,仅允许访问特定的、经批准的网页域名。

IT 团队必须配置 Walled Garden 以包含 Purple 的服务器和社交登录域名,否则 Captive Portal 将无法加载。

RADIUS (Remote Authentication Dial-In User Service)

一种提供集中化身份验证、授权和计费管理服务的网络协议。

Purple 使用托管在云端的 FreeRADIUS 服务器,在用户完成展示页面流程后对其进行安全的身份验证。

VLAN (Virtual Local Area Network)

一种对一组设备进行分组的逻辑子网,可将它们的流量与同一物理网络上的其他设备分离开来。

对于海事和偏远部署至关重要,用于将不可信的访客流量与关键的业务系统隔离开来。

Bypass Mode(旁路模式)

一种配置设置,可禁用家用路由器的路由和 WiFi 功能,使其转变为简单的桥接器。

在标准 Starlink 硬件上必须启用此模式,以允许企业级路由器管理网络并处理 Captive Portal 重定向。

Session Cookie

浏览器临时存储的一小段数据,用于在特定的浏览会话期间记住状态。

Purple 需要 session cookie 来维持登录状态。macOS CNA 会阻止这些 cookie,因此需要重定向到类似 neverssl.com 的 HTTP 网站。

授权变更 (CoA)

一种 RADIUS 扩展,允许服务器动态修改活动会话的授权属性。

Purple 使用此功能在用户超出其定义的流量配额时,立即撤销网络访问权限或限制网速。

应用实例

一家拥有 200 间客房的偏远生态旅馆安装了 Starlink 以提供访客互联网。在三天内,访客抱怨网速缓慢,运营商也注意到 Starlink 连接受到限制。IT 团队应该如何解决这个问题?

IT 团队必须绕过原生的 Starlink 路由器并安装企业级控制器(例如 HPE Aruba 或 Ubiquiti UniFi)。他们配置了两个 VLAN:一个用于员工,一个用于访客。在访客 VLAN 上,他们部署了 Purple 的 Captive Portal。他们将控制器配置为强制限制每位用户 5 Mbps 的网速。在 Purple 门户内,他们将每台设备的每日数据配额设为 1 GB。当访客达到限制时,其连接将被切断,以防占用他人带宽。

考官评语: 此方法直接解决了根本原因:不受控制的带宽消耗。通过切换到企业级控制器,场所获得了对流量进行整形的能力。Purple 提供了策略执行层,在捕获宝贵访客数据的同时,确保所有 200 间客房的公平使用。

一家海事渡轮运营商部署了 Starlink。他们使用位于总部的本地 RADIUS 服务器配置了一个 Captive Portal。渡轮的本地控制器试图通过将 RADIUS 请求发送回总部来对访客进行身份验证,但所有登录均失败。为什么会这样,又该如何解决?

登录失败是因为 Starlink 使用了 CGNAT,这意味着渡轮没有专用的公网 IP。如果总部 RADIUS 服务器尝试向渡轮发送数据包,或者该架构依赖于入站连接,CGNAT 边界就会丢弃该流量。解决方案是迁移到类似 Purple 的云原生 RADIUS 架构。渡轮的控制器向 Purple 的云端 RADIUS 发起出站连接,从而完全绕过了 CGNAT 限制。

考官评语: 此场景突出了在卫星链路上部署时最常见的架构失效。理解 CGNAT 会破坏入站路由至关重要。转向由出站发起的云端 RADIUS 模型是唯一可靠的企业级解决方案。

练习题

Q1. 您正在远程零售网点部署 Starlink。您已启用旁路模式并连接了 Cisco Meraki MX 路由器。用户连接到访客 SSID,但 Captive Portal 页面从未出现,屏幕保持空白。最可能的配置错误是什么?

提示:考虑设备在完成身份验证之前需要访问哪些域名。

查看标准答案

围墙花园(walled garden)配置不完整或缺失。在身份验证之前,设备必须能够访问 Purple 的展示页面服务器及任何相关的内容分发网络。如果这些域名未在 Meraki 控制器中加入白名单,则 Captive Network Assistant 无法加载该页面。

Q2. 一位海事 IT 总监希望使用其位于伦敦总部的现有本地 RADIUS 服务器,对配备 Starlink 的船只上的船员进行身份验证。为什么这种架构会失败,推荐的替代方案是什么?

提示:思考 Starlink 如何处理公网 IP 地址和入站路由。

查看标准答案

它会失败,因为 Starlink 使用 CGNAT,这意味着船只没有专用的公网 IP,无法接受来自伦敦总部的入站连接。推荐的替代方案是采用云原生 RADIUS 架构,由船只的本地控制器向云 RADIUS 服务器发起出站连接,从而绕过 CGNAT 的限制。

Q3. 一家酒店运营商报告称,使用 Apple MacBook 的宾客无法完成登录流程。弹窗出现了,但会话在身份验证完成前就中断了。Windows 和 Android 用户不受影响。支持团队应该如何指导 MacBook 用户?

提示:考虑 macOS 如何在 Captive Network Assistant 中处理 cookie。

查看标准答案

macOS 不允许在 CNA 浏览器会话中使用 cookie,而 Purple 需要 cookie 来维持登录状态。支持团队应指导 MacBook 用户打开完整的系统浏览器(如 Safari)并访问一个 HTTP 网站(例如 neverssl.com)。这将干净地触发重定向并允许设置 cookie。