適用於 Cisco Meraki 的 Captive Portal
一份權威的中級技術參考指南,用於將 Cisco Meraki MR 存取點與 Purple 的雲端 Captive Portal 進行整合。內容涵蓋 Meraki 儀表板逐步設定、RADIUS 伺服器設定(連接埠 1812/1813)、Walled Garden 萬用字元網域排除,以及適用於高效能訪客 WiFi 部署的工作階段逾時參數。
收聽此指南
查看播客逐字稿
📚 核心系列的一部分:多租戶 WiFi →

执行摘要
本权威参考指南提供了一个全面的、分步的配置框架,用于将 Cisco Meraki 无线网络与 Purple 基于云的 captive portal 进行集成。本文件专为 IT 经理、网络架构师和托管服务提供商 (MSP) 设计,详细介绍了在 Meraki Dashboard 中部署安全、高性能访客 WiFi 解决方案所需的精确配置 [1]。
通过将访客智能层与硬件解耦,企业场所可以利用 Purple 经过认证的 Guest WiFi 和 WiFi Analytics 平台来捕获丰富的、符合 GDPR 的第一方数据,同时确保网络完整性和合规性 [2]。本指南解决了关键的集成参数,包括跨不同实体场所(如 Retail (零售)、 Healthcare (医疗保健)、 Hospitality (酒店)和 Transport (交通)枢纽)的 RADIUS 认证(端口 1812/1813)、围墙花园域名例外、CDN 通配符解析以及访客重定向机制。
技术深度剖析
为了成功将 Cisco Meraki MR 接入点 (AP) 与 Purple 等外部 captive portal 集成,网络工程师必须了解底层的控制面和数据面架构。与传统的本地无线控制器(其 RADIUS 认证请求源自物理控制器或单个 AP)不同,Cisco Meraki 采用云管理架构 [1]。
控制面与数据面分离
当访客客户端关联到为外部 captive portal 配置的开放 SSID 时,Meraki MR AP 会将客户端置于预认证状态。在此状态下,除了 DNS 查询、DHCP 以及发往 Walled Garden [3] 中明确定义的 IP 地址或主机名的流量外,所有流量都会被阻止。
实际的 RADIUS Access-Request 消息并非由本地 Meraki MR AP 生成。相反,它们源自 Cisco Meraki Dashboard 云端基础设施 [1]。这是一个至关重要的架构区别:
> "展示页面的 RADIUS 访问请求消息将源自控制面板,而不是源自本地 Meraki 设备。因此,此处无法指定 RADIUS 服务器的私有局域网 IP 地址。" [1]
因此,保护您的 RADIUS 服务器的上游防火墙必须允许来自整个 Meraki Dashboard 出站 IP 范围块的入站流量,这些范围是动态的且因地区而异 [1]。这些范围可以通过 Meraki Dashboard 在 Help > Firewall info 下动态获取 [1]。

RADIUS 认证协议 (PAP)
对于登录展示页面认证,Meraki 使用密码认证协议 (PAP) [1]。虽然 PAP 在历史上是未加密的,但 Meraki-Purple 集成通过多层加密降低了安全风险:
- 客户端到云端加密:访客客户端直接与 Purple 托管的 captive portal 建立安全的 HTTPS (SSL/TLS) 会话。凭据(例如社交登录令牌、电子邮件表单)在从客户端浏览器传输到 Purple 服务器的过程中被加密 [1]。
- RADIUS 共享密钥加密:当 Meraki 云向 Purple 的云端 RADIUS 服务器发送 RADIUS Access-Request 时,它会根据 RFC 2865 使用配置的 RADIUS Shared Secret 和标准 XOR 函数对用户密码进行加密 [1]。这确保了明文凭据绝不会通过公共互联网传输。
支持的 RADIUS 属性
Meraki 云和 Purple 云端 RADIUS 在认证握手期间交换几个关键属性,以执行会话参数和策略:
| RADIUS 属性 | 类型 | 方向 | 描述与实际应用背景 |
|---|---|---|---|
| User-Name | String | Request | 访客用户的标识符(例如电子邮件地址、MAC 地址)[1]。 |
| User-Password | String | Request | 加密的用户密码或会话令牌 [1]。 |
| Called-Station-ID | String | Request | 格式为 AP_MAC:SSID_NAME(例如 AA-BB-CC-DD-EE-FF:GuestWiFi)。对于基于位置的策略路由至关重要 [1]。 |
| Calling-Station-ID | String | Request | 客户端的物理 MAC 地址(例如 11-22-33-44-55-66)。用于设备跟踪和会话恢复 [1]。 |
| Session-Timeout | Integer | Accept | 以秒为单位的最大会话持续时间。过期后,客户端将被重定向回 captive portal [1]。 |
| Idle-Timeout | Integer | Accept | 以秒为单位的最大空闲时间。如果没有数据传输,会话将被终止。需要 RADIUS 计费 [1]。 |
| Filter-Id | String | Accept | 传递要应用于客户端的特定 Meraki 组策略名称(例如限制带宽或阻止特定类别)[1]。 |
实施指南
此分步配置演练概述了如何将 Cisco Meraki MR 接入点与 Purple 的外部 captive portal 进行集成。
步骤 1:配置 SSID 访问控制
在 Meraki Dashboard 中导航至 Wireless > Configure > Access control [1]。选择您的目标访客 SSID 并配置以下参数:
- Association Requirements:设置为 Open (no encryption) [1]。这可确保无摩擦的接入体验。如果您需要加密的访客传输,请考虑实施部署 Passpoint / Hotspot 2.0 with Cloud RADIUS [4]。
- Splash Page:选择 Sign-on with 并从下拉菜单中选择 my RADIUS server [1]。
- RADIUS Servers:点击 Add server 并输入 Purple 的 Cloud RADIUS 主和备用端点 [1]:
- Host IP:
116.203.120.121(主)和195.201.123.149(备) - Port:
1812(认证)[1] - Secret:[您的 Purple 共享密钥]
- Host IP:
- RADIUS Accounting:设置为 RADIUS accounting is enabled 并添加计费服务器:
- Host IP:
116.203.120.121(主)和195.201.123.149(备) - Port:
1813(计费) - Secret:[您的 Purple 共享密钥]
- Host IP:
- Captive Portal Strength:选择 Block all access until sign-on is complete [1]。这会严格强制客户端在通过 splash page 之前无法访问互联网。
步骤 2:配置自定义 Splash Page URL
导航至 Wireless > Configure > Splash page [1]。选择您的访客 SSID 并配置:
- Custom Splash URL:选择 Or point to a custom URL 并输入 Purple 重定向 URL:
https://login.venuewifi.com/ip/v2/meraki
- Splash Page Redirect:设置为 The URL they were trying to fetch 或将他们重定向到特定的着陆页(例如,您场所的主页)[3]。
步骤 3:配置 Walled Garden 域名例外
为确保访客客户端能够加载 Captive Portal、从内容分发网络 (CDN) 下载资源并完成社交媒体认证(例如 Google 或 Facebook OAuth),您必须启用并配置 Walled Garden [3]。
返回导航至 Wireless > Configure > Access control 并找到 Walled Garden 区域 [1]。
- 将 Walled Garden 设置为 Walled garden is enabled [1]。
- 在 Walled garden ranges 字段中,输入所需的 FQDN 和通配符域名 [1]。

Meraki 如何处理通配符和 CDN 流量
Cisco Meraki MR 无线接入点支持在 walled garden 中使用星号前缀(例如 *.purple.ai)的通配符域名 [1]。然而,了解其底层机制至关重要:
- 基于 DNS 的白名单:Meraki AP 会拦截客户端的 DNS 请求。当客户端请求与 walled garden 中的条目匹配的域名时,AP 会将该域名解析为其当前的 IP 地址,并临时允许客户端与该 IP 进行通信 [3]。
- 动态 CDN IP:像 Amazon CloudFront (
*.cloudfront.net) 和 Akamai (*.akamaihd.net) 这样的 CDN 会解析为高度动态、地理分布且频繁变化的 IP 地址。Meraki 基于 DNS 的白名单通过实时解析域名来无缝处理这一问题。切勿在您的 walled garden 中为 CDN 资源使用静态 IP 地址,因为这会导致门户资源间歇性加载失败。
最佳实践
为确保高可用性、安全性和最佳用户体验,请遵循以下行业标准的部署最佳实践:
1. 网络分段与 VLAN 隔离
切勿将访客流量直接桥接到您的企业局域网(LAN)。配置您的 Meraki MR AP,使用专用的 Guest VLAN(例如 VLAN 30)标记访客流量 [4]。确保此 VLAN 终止于上游防火墙上的 DMZ 或独立的虚拟路由和转发 (VRF) 实例。这可以降低横向移动风险,并确保符合 PCI DSS 和 GDPR 等安全标准 [2] [4]。
2. 配置故障转移与会话恢复能力
网络链路可能会发生故障。为了防止在认证服务器宕机期间访客被锁定而无法访问互联网,请在 Meraki Dashboard 中配置 RADIUS Failover Policy:
- Failover Policy:设置为 Deny access 以获得最大安全性,或者如果在宕机期间保持访客连接的优先级高于数据捕获,则设置为 Allow access。
- Secondary Servers:始终配置主和备用 RADIUS 服务器,以分担负载并提供自动故障转移 [1]。
3. 实施会话与空闲超时
通过配置适当的超时参数来管理您的无线频谱和 DHCP 池租约 [1]:
- Session Timeout:对于酒店/款待环境,设置为 1440 分钟(24 小时),允许访客在整个停留期间保持连接,而无需频繁重新认证 [1]。对于零售或公共交通,将其缩短至 120 分钟(2 小时),以鼓励新的互动并释放 DHCP 租约。
- Idle Timeout:设置为 15 分钟。如果客户端设备进入睡眠状态或离开场所,AP 将终止会话并回收网络资源 [1]。
故障排除与风险缓解
在 Cisco Meraki 上部署外部 Captive Portal 时,工程师通常会遇到三种主要的故障模式。使用此诊断矩阵可快速隔离并解决问题:
| 现象 | 根本原因 | 诊断步骤 | 解决办法 |
|---|---|---|---|
| Splash page 无法加载;浏览器显示“连接超时”。 | 上游防火墙正在阻止指向 Purple 的 CDN 的出站 DNS 或 HTTP/HTTPS 流量 [1]。 | 尝试从同一 VLAN 上的有线设备解析 login.venuewifi.com。 |
确保访客 VLAN 具有访问公共 DNS (UDP 53) 和 HTTP/HTTPS (TCP 80/443) 的出站权限。 |
| Splash page 已加载,但用户凭据认证失败。 | 上游防火墙正在阻止源自 Meraki Cloud 的 RADIUS 流量 [1]。 | 使用 Meraki Dashboard 中 Access Control 下的 RADIUS Test 工具 [1]。 | 将 Meraki Dashboard 的出站 IP 范围(可在 Help > Firewall info 下找到)添加到防火墙针对 UDP 端口 1812 和 1813 的出站允许列表中 [1]。 |
| 社交登录(例如 Google OAuth)失败,并出现重定向错误。 | 缺少所需的 OAuth 辅助域名 | Meraki Walled Garden 中的 ns [1]。 | 检查客户端设备上的浏览器控制台,查看是否有被拦截的资源加载。 |
投资回报率 (ROI) 与业务影响
将 Cisco Meraki 与 Purple 集成,可将访客 WiFi 从成本中心转变为战略性业务资产。通过将企业级硬件与先进的分析技术相结合,企业可以在多个维度上实现可衡量的回报:
- 数据变现与营销触达:通过获取经验证的电子邮件地址和社交账号信息,场所可以构建一个干净、合规的第一方客户数据库 [2]。这些数据可直接导入客户关系管理 (CRM) 和营销自动化系统,从而实现高度精准、本地化的营销活动。
- 运营效率:通过 Purple 实现的自动化入网流程减轻了前台和 IT 支持人员的负担。在酒店及餐饮环境中,这意味着更少关于 WiFi 连接的客户投诉,以及更低的运营开销。
- 先进的人流量分析:通过将 Meraki 的位置 API 与 Purple 的分析引擎相结合,场所运营商可以深入了解访客行为,包括人流量、停留时间、回头率和客流高峰时段 [2]。这些数据有助于在人员配置、店铺布局和房地产估值方面做出明智的决策。
参考资料
關鍵定義
Captive Portal
在向新連線的 Wi-Fi 網路使用者授予更廣泛的網路資源存取權限之前,向其顯示的網頁。
場所(場域)用於強制執行服務條款、收集使用者資料,並在允許存取網際網路之前透過 RADIUS 驗證訪客身分。
RADIUS (遠端驗證撥入使用者服務)
一種網路協定,為連線和使用網路服務的使用者提供集中式的驗證、授權和計費 (AAA) 管理。
Meraki AP 會查詢 Purple 的 Cloud RADIUS 伺服器,以驗證訪客憑證並授權網路存取。
Walled Garden (圍牆花園)
一組受限制的 IP 位址或網域名稱,允許未經驗證的訪客用戶端在完成 Captive Portal 登入流程之前進行存取。
這對於允許用戶端到達託管的歡迎頁面(Splash Page)、從 CDN 下載 CSS/JS 資產以及與社群登入 OAuth 端點進行通訊至關重要。
Session-Timeout (工作階段逾時)
一個 RFC 2865 RADIUS 屬性,指定使用者工作階段在需要重新驗證之前可以保持作用狀態的最大秒數。
由 Purple RADIUS 在 Access-Accept 封包中傳回,以控制訪客保持登入狀態的時間(例如,飯店旅客為 24 小時)。
Idle-Timeout (閒置逾時)
一個 RADIUS 屬性,定義在終止使用者工作階段之前允許的最大非作用期(無資料傳輸)。
用於在體育場或零售店等高密度環境中斷開閒置裝置的連線並回收 IP 位址。
PAP (密碼驗證協定)
RADIUS 用於驗證使用者憑證的一種簡單、未加密的驗證協定。
Cisco Meraki 進行外部歡迎頁面 RADIUS 驗證時所需。安全性是透過 HTTPS 加密用戶端到入口網站的傳輸,並使用共用金鑰加密 RADIUS 封包密碼欄位來維護。
Passpoint (Hotspot 2.0)
由 Wi-Fi 聯盟開發的產業標準,可實現類似行動網路的自動漫遊以及與 Wi-Fi 網路的安全連線。
由 Meraki MR 存取點和 Purple 支援,以實現無縫、基於憑證的訪客上網,而無需 Captive Portal。
CMX (Cisco Meraki 位置 API)
一個 API 框架,允許 Meraki 存取點將即時位置和存在資料(探測請求)匯出到第三方分析平台。
與 Purple 整合,為實體場所提供詳細的客流量、停留時間和回訪率分析。
範例
一家擁有 350 間客房、使用 Cisco Meraki MR46 存取點的奢華飯店需要部署安全的訪客 WiFi 網路。他們希望收集訪客電子郵件、將每位訪客的頻寬限制為 5 Mbps,並確保訪客每 7 天只需登入一次。網路架構師應如何設定 Meraki 儀表板和 RADIUS 設定?
- SSID 設定:設定一個名為「Hotel_Guest」的開放式 SSID,並將 Splash Page 設定為「Sign-on with」和「my RADIUS server」。\n2. RADIUS 設定:輸入 Purple 的主要(
116.203.120.121)和次要(195.201.123.149)RADIUS IP。將驗證連接埠設定為1812,計費連接埠設定為1813。設定共用金鑰。\n3. 逾時參數:在 RADIUS 伺服器設定檔或 Purple 儀表板中,將 Session-Timeout 屬性設定為604800秒(7 天),並將 Idle-Timeout 設定為1800秒(30 分鐘),以回收閒置的 DHCP 租約。\n4. 流量塑形:在 Meraki 儀表板的 Wireless > Configure > Firewall & traffic shaping 下,選擇該 SSID,啟用流量塑形,並將每位用戶端的限制設定為下行 5 Mbps 和上行 2 Mbps。\n5. Walled Garden:啟用 Walled Garden 並新增*.purple.ai、*.venuewifi.com以及必要的 CDN 萬用字元(如*.cloudfront.net),以允許在驗證前轉譯 Splash Page。
一家擁有 45 家分店的連鎖零售商希望使用 Meraki MR33 AP 在所有位置部署訪客 WiFi。他們需要確保設定一致、阻擋對企業網路的存取,並收集客流量分析數據。這該如何大規模實施?
- 設定範本:在 Meraki 儀表板中建立單一的網路設定範本。使用 Purple 的 RADIUS 設定、Walled Garden 網域和自訂 Splash URL(
https://login.venuewifi.com/ip/v2/meraki)設定訪客 SSID。將所有 45 家分店的網路綁定到此範本。\n2. VLAN 區隔:在每家分店的本機交換器和防火牆上,設定專用的訪客 VLAN(例如 VLAN 50)。在 Meraki SSID 設定中,將 Client IP Assignment 設定為「External DHCP server」並指定 VLAN 50。確保防火牆阻擋從 VLAN 50 到企業子網路的所有路由。\n3. 位置分析:在 Meraki 儀表板的 Network-wide > Configure > General 下啟用 Meraki Scanning API (CMX)。輸入 Purple Post URL 和金鑰驗證器。這使 Meraki AP 能夠將即時探測請求數據串流傳輸到 Purple 的分析引擎,以進行客流量和停留時間報告。
練習題
Q1. 網路工程師部署了具有 Purple Captive Portal 的全新 Meraki 訪客 SSID。未經驗證的用戶端已成功重新導向至登入頁面,但當他們嘗試使用「使用 Google 登入」時,頁面會一直旋轉,最終因 DNS 或逾時錯誤而失敗。其他登入方式(如電子郵件表單)運作完全正常。此問題最可能的原因是什麼,應如何解決?
提示:請考慮在 RADIUS 驗證完成之前,用戶端的瀏覽器必須連線到哪些外部網域才能完成 Google OAuth 握手。
查看標準答案
最可能的原因是 Meraki SSID 的 Walled Garden 設定中遺漏了 Google OAuth 輔助網域。雖然核心 Purple 網域和 CDN 網域已被允許(這就是 Splash 頁面能載入的原因),但 Google 驗證伺服器正被 AP 的預先驗證防火牆規則阻擋。要解決此問題,請導覽至 Wireless > Configure > Access control,選擇訪客 SSID,並將以下 Google OAuth 網域新增至 Walled Garden 清單:accounts.google.com、*.googleapis.com、*.gstatic.com 和 *.googleusercontent.com。儲存後,AP 將允許用戶端完成 Google 驗證握手,並重新導向回 Purple 以完成 RADIUS 登入。
Q2. 在對高密度體育場 WiFi 網路進行部署後稽核期間,IT 團隊發現訪客 VLAN(具有 2048 個 IP 的 /21 子網路)的 DHCP 核心集在活動開始的前 2 小時內就已完全耗盡,即使活動中的並行連線數從未超過 800 個。RADIUS 計費已啟用。網路架構師應如何調整 Meraki 和 RADIUS 設定以緩解此問題?
提示:分析高密度暫態環境中用戶端工作階段逾時、閒置逾時和 DHCP 租約時間之間的關係。
查看標準答案
DHCP 核心集耗盡是由暫態用戶端(短暫路過或進入體育場的使用者)連線、取得 IP 位址然後離開場地所致。由於預設的 Meraki Session-Timeout 或 DHCP 租約時間過長,即使實體裝置已不在現場,這些 IP 位址仍保持保留狀態。為解決此問題,架構師應實施三項協調變更:1) 縮短 DHCP 租約時間:在 DHCP 伺服器(或處理 DHCP 的 Meraki 安全設備)上,將租約時間縮短至 10 或 15 分鐘。2) 設定閒置逾時:確保在連接埠 1813 上啟用了 RADIUS 計費,並在 RADIUS Access-Accept 設定檔中設定 10 分鐘(600 秒)的 Idle-Timeout。這會通知 Meraki AP 終止任何閒置 10 分鐘的用戶端工作階段。3) 縮短工作階段逾時:將體育場設定檔的全域 Session-Timeout 縮短至 120 分鐘(7200 秒),以強制定期重新評估作用中裝置。
Q3. MSP 正在設定具有 Purple Captive Portal 的 Meraki 訪客 SSID。他們已在 Meraki Dashboard 中輸入了正確的 Purple RADIUS 伺服器 IP 和連接埠 (1812/1813),但在使用內建的 RADIUS「測試」工具進行測試時,所有存取點都無法連線到該伺服器。MSP 確認 RADIUS 共用金鑰正確無誤,且 Purple 雲端處於線上狀態。MSP 很可能忽略了哪項路由或防火牆設定?
提示:回想在 Cisco Meraki 雲端管理架構中,RADIUS 驗證請求是從何處發起的。
查看標準答案
MSP 很可能將其本機網路防火牆設定為允許來自本機 AP 子網路的輸出 RADIUS 流量,但忘記了在 Meraki Splash 頁面部署中,RADIUS Access-Request 是直接源自 Cisco Meraki Dashboard Cloud Infrastructure,而非本機 AP。要解決此問題,MSP 必須取得 Meraki Dashboard 的輸出 IP 範圍(可在 Meraki Dashboard 的 Help > Firewall info 中找到),並設定其上游企業防火牆,以允許在這些 Meraki Dashboard IP 範圍與 Purple 的 Cloud RADIUS 伺服器之間的連接埠 1812(驗證)和 1813(計費)上進行輸入和輸出 UDP 流量。此外,他們必須確保將 Meraki Dashboard IP 作為有效的 RADIUS 用戶端新增至 Purple 入口網站設定中。
繼續閱讀本系列
Cisco WLC and Catalyst Integration with Purple WiFi: Step-by-Step Guest Access Guide
本權威指南詳細介紹 Cisco Catalyst 9800 WLC 與 Purple WiFi 的逐步整合。內容涵蓋用於訪客 Captive Portal 的外部網頁驗證、用於員工安全存取的 802.1X EAP-TLS,以及用於多租戶動態 VLAN 隔離的 Cisco iPSK。
CommScope Ruckus 與 Purple WiFi 整合:安裝與設定指南
本技術參考指南為 CommScope Ruckus 架構與 Purple WiFi 的整合提供了權威的設定指南。其中詳細介紹了使用 Guest WiFi Captive Portal、透過 802.1X 的安全員工 WiFi,以及使用 Ruckus Dynamic PSK 的多租戶網路隔離的逐步部署步驟。
Allied Telesis 基地台與 Purple WiFi 整合
本指南提供將 Allied Telesis TQ 系列基地台與 Purple WiFi 整合的完整設定指南。內容涵蓋外部 Captive Portal 重新導向、802.1X RADIUS 驗證,以及使用私有預共用金鑰 (PPSK) 進行動態 VLAN 導向,以實現安全的多租戶部署。