跳至主要内容

Cisco Meraki 适用 Captive Portal

一份权威的中级技术参考指南,用于将 Cisco Meraki MR 接入点与 Purple 的云端 Captive Portal 进行集成。涵盖了 Meraki Dashboard 的逐步配置、RADIUS 服务器设置(端口 1812/1813)、围墙花园(walled garden)通配符域名例外情况,以及用于高性能访客 WiFi 部署的会话超时参数。

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

收听本指南

查看播客转录
欢迎收听 Purple 技术简报系列。我是您的主持人,今天我们将探讨几乎在每个企业级访客 WiFi 部署中都会遇到的一个问题:在 Cisco Meraki MR 接入点上配置 captive portal,特别是如何使用 RADIUS 认证将其与 Purple 的云平台集成。无论您是正在为新酒店客户提供服务的 MSP,还是零售连锁店的内部网络架构师,本期节目都将为您提供精确的配置步骤以及每个步骤背后的原理。 让我们设想一下场景。您有一个场所——可以是酒店、会议中心、体育场或零售园区——运行着通过 Meraki Dashboard 管理的 Cisco Meraki MR 接入点。任务是部署品牌化的访客 WiFi 体验,捕获第一方数据,强制接受服务条款,并将分析数据反馈到营销平台。这正是 Purple 的设计初衷,而 Meraki 是我们在全球最常见的硬件部署之一。 现在,在您更改任何设置之前,需要了解的关键架构点是:在 Cisco Meraki 上,展示页面的 RADIUS 认证不是由接入点在本地处理的。RADIUS Access-Request 源自 Meraki 云——即 Dashboard 基础设施——而不是源自您局域网上的 AP。这是一个非常关键的区别,许多工程师在首次部署 Meraki 时都会忽略这一点。这意味着您的 RADIUS服务器(在本例中为 Purple 的云端 RADIUS 端点)需要能够从互联网访问,并且您的防火墙规则需要允许来自 Meraki Dashboard IP 范围的流量,而不仅仅是来自本地 AP 子网的流量。您可以在 Meraki Dashboard 的 Help(帮助)下的 Firewall Info(防火墙信息)中找到当前的 Dashboard IP 范围。 好的,让我们开始配置。我将按照您在实际部署中操作的顺序为您逐步讲解。 第一步:SSID 配置。在 Meraki Dashboard 中,导航至 Wireless,然后选择 Configure,再选择 SSIDs。选择您要用于访客访问的 SSID 插槽。给它起一个清晰的名字——比如 GuestWiFi 或 VenueName_Guest。在 Association requirements(关联要求)下,将 Security(安全性)设置为 Open, no encryption(开放,无加密)。这是正确且有意为之的——访客的安全层由 captive portal 和 RADIUS 认证处理,而不是由 WPA 加密处理。如果您是在 PCI DSS 环境中进行部署,您需要确保访客流量隔离在自己的 VLAN 上,我们稍后会对此进行介绍。 第二步:展示页面和认证。仍在 SSID 的 Access Control(访问控制)页面上,向下滚动到 Splash page(展示页面)部分。将其设置为 Sign-on with,然后从下拉菜单中选择 my RADIUS server。这是关键设置,它指示 Meraki 在授予网络访问权限之前,先通过外部 RADIUS 服务器对用户进行身份验证。在此之下,您将看到 Captive portal strength(Captive portal 强度)选项。将其设置为 Block all access until sign-on is complete(在登录完成前阻止所有访问)。这就是强制执行围墙花园的设置——如果没有它,访客就可以完全绕过门户。 第三步:RADIUS 服务器配置。在 RADIUS 部分下,点击 Add server(添加服务器)。您需要从您的 Purple 账户中获取三项信息:RADIUS 服务器 IP 地址或 FQDN、认证端口(UDP 1812)以及共享密钥。Purple 在门户的场所配置部分中提供这些信息。为了在生产部署中实现冗余,您应该添加一个备用 RADIUS 服务器——Purple 提供了一个故障转移端点。如果您希望将会话数据反馈到 Purple 的分析引擎中,请将计费端口设置为 UDP 1813,对于任何将停留时间和会话持续时间作为重要指标的场所,我都强烈建议这样做。 关于 RADIUS 属性的简要说明。Meraki 会遵守 RADIUS Access-Accept 响应中返回的 Session-Timeout 属性。Purple 使用它来控制访客会话在需要重新认证之前持续的时间。对于酒店,您可能会将其设置为 86,400 秒——即 24 小时。对于咖啡馆,3,600 秒(一小时)左右更为合适。Idle-Timeout 属性也会被遵守,但前提是启用了 RADIUS 计费。这会断开空闲会话,这对于高密度场所的容量管理非常重要。 第四步:展示页面 URL。导航至 Wireless,然后选择 Configure,再选择 Splash page。从下拉菜单中选择您的访客 SSID。将 Custom splash URL(自定义展示 URL)设置为您场所的 Purple 门户 URL。这是 Meraki 将未认证客户端重定向到的 URL。Meraki 会在此 URL 中附加查询参数——包括 login_url 参数——Purple 使用这些参数来完成认证握手。请勿修改或删除这些参数。 第五步:围墙花园(walled garden)。这是大多数部署遇到问题的地方。围墙花园是访客设备在认证前可以访问的域名和 IP 范围列表。如果没有正确的条目,captive portal 页面本身将无法加载,因为浏览器将被阻止访问 Purple CDN 和社交登录提供商。 导航回访客 SSID 的 Access Control(访问控制)。将 Walled garden 设置为 Walled garden is enabled(启用围墙花园)。在 Walled garden ranges(围墙花园范围)字段中,您需要添加以下内容。首先是 Purple 平台域名:`*.purple.ai` 和 `*.venuewifi.com`。其次是 Purple 用于提供门户资源的 CDN 域名:`*.cloudfront.net` 和 `*.akamaihd.net`。第三是 Meraki 重定向基础设施:`*.network-auth.com`。第四,如果您提供社交登录选项,则需要相关的 OAuth 域名。对于 Google:`accounts.google.com`、`*.googleapis.com`、`*.gstatic.com`。对于 Facebook:`*.facebook.com`、`*.fbcdn.net` 和 `connect.facebook.net`。对于 Twitter 或 X:`*.twitter.com` 和 `*.twimg.com`。 关于 Meraki 如何处理围墙花园中通配符域名的一个重要说明。Meraki 确实支持使用星号前缀的通配符条目,例如 `*.cloudfront.net`。然而,这是基于 DNS 的匹配——Meraki 解析域名并允许生成的 IP 地址。这意味着对于像 CloudFront 或 Akamai 这样解析后的 IP 可能会频繁更改的 CDN 提供商,您应该使用域名通配符而不是静态 IP 范围。静态 IP 条目对于稳定不变的 Purple RADIUS 端点来说是可以的,但不适用于 CDN 流量。 现在让我们谈谈我直接参与过的两个真实案例。 第一个是英国一家拥有 350 间客房的酒店。客户在三栋建筑中运行着 Meraki MR46 接入点,高峰期大约有 400 台并发访客设备。最初的部署使用的是一键式展示页面——没有 RADIUS,只需接受条款。问题是他们对谁在连接一无所知,没有电子邮件捕获,也无法开展入住后的营销活动。我们帮他们迁移到了使用基于 RADIUS 登录的 Purple。配置很简单,但棘手的是他们的上游防火墙阻止了向本地子网之外的任何设备发送端口 1812 的出站 UDP 流量。一旦我们将 Meraki Dashboard IP 范围添加到防火墙允许列表中,认证就立即生效了。部署后,该酒店在第一个月内捕获了大约 68% 的连接访客的电子邮件地址,其营销团队开展的重新互动活动显著提升了直接预订量。 第二个场景是一家拥有 45 家门店的零售连锁店,每家门店都运行着 Meraki MR33 接入点。这里的挑战是规模和一致性。手动配置 45 个具有正确 RADIUS 设置和围墙花园列表的 SSID 既耗时又容易出错。解决方案是使用 Meraki 基于模板的配置。我们构建了一个包含正确 SSID、RADIUS 和围墙花园设置的单一网络模板,然后将所有 45 家门店的网络绑定到该模板。任何更改——例如在围墙花园中添加新的社交登录提供商——只需在模板中修改一次,就会自动传播到所有门店。然后,Purple 的分析功能汇总了所有门店的客流量和停留时间数据,使零售运营团队能够通过单一控制面板查看按门店、地区和时间段划分的访客行为。 让我为您提供三个经验法则,它们将在每次部署 Meraki captive portal 时为您节省时间。 法则一:在配置 RADIUS 之前,务必检查 Meraki Dashboard IP 范围。这些范围偶尔会发生变化,如果您的防火墙阻止了它们,从用户的角度来看,认证将静默失败——他们只会看到门户页面卡住。在上线之前,使用 Dashboard 中 Access Control 下内置的 RADIUS 测试工具来验证连接性。 法则二:对于任何 CDN 托管的内容,在围墙花园中使用域名通配符,而不是 IP 范围。CDN IP 范围很大且变化频繁。通配符域名条目更易于维护且更可靠。 法则三:即使您认为目前还不需要,也请在端口 1813 上启用 RADIUS 计费。会话数据对于排查断开连接问题以及将准确的停留时间指标输入到您的分析平台非常有用。启用它不需要任何成本,而且事后补装非常困难。 现在,回答几个我经常被问到的快速问题。 我可以使用 Meraki 内置的展示页面而不是 Purple 吗?可以,但您会失去数据捕获、分析、营销自动化以及符合 GDPR 的同意管理。内置的展示页面对于基本的一键点击访问还可以,但它不是一个访客智能平台。 此配置是否同样适用于 Meraki MX 防火墙和 MR 接入点?RADIUS 展示页面配置在 MR 接入点上受支持。MX 设备处理客户端 VPN 认证的方式不同。专门针对访客 WiFi,您需要配置的是 MR SSID。 那么 WPA3 呢?Meraki MR 接入点在企业 SSID 上支持 WPA3。对于访客 captive portal 部署,SSID 通常是 Open(开放),因此 WPA3 不直接适用。但是,如果您在部署 captive portal SSID 的同时部署了 Passpoint 或 OpenRoaming SSID(Purple 支持此功能),该 SSID 将使用带有 802.1X 的 WPA3-Enterprise,这就是 WPA3 发挥作用的地方。 总结一下:Cisco Meraki 与 Purple 的集成经过了充分的测试且非常可靠,但需要注意三点:RADIUS 源 IP 路由、围墙花园的完整性以及会话超时配置。做好这三点,部署就会非常顺利。商业案例显而易见——部署了配置妥当且具备数据捕获功能的访客 WiFi 平台的场所,在营销互动和运营洞察方面始终能看到可衡量的回报。 如果您想深入了解,请查看 Purple 关于使用云端 RADIUS 实施 802.1X 认证的指南,以及我们在 Purple 博客上的 Cisco 无线 AP 部署指南。这两者都已在节目简报中提供链接。 感谢您的收听。如果您有希望我们介绍的具体部署场景,请与 Purple 技术团队联系。我们下期节目再见。

📚 核心系列的一部分:多租户 WiFi

header_image.png

执行摘要

本权威参考指南提供了一个全面的、分步的配置框架,用于将 Cisco Meraki 无线网络与 Purple 基于云的 captive portal 进行集成。本文件专为 IT 经理、网络架构师和托管服务提供商 (MSP) 设计,详细介绍了在 Meraki Dashboard 中部署安全、高性能访客 WiFi 解决方案所需的精确配置 [1]。

通过将访客智能层与硬件解耦,企业场所可以利用 Purple 经过认证的 Guest WiFiWiFi 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]。

architecture_overview.png

RADIUS 认证协议 (PAP)

对于登录展示页面认证,Meraki 使用密码认证协议 (PAP) [1]。虽然 PAP 在历史上是未加密的,但 Meraki-Purple 集成通过多层加密降低了安全风险:

  1. 客户端到云端加密:访客客户端直接与 Purple 托管的 captive portal 建立安全的 HTTPS (SSL/TLS) 会话。凭据(例如社交登录令牌、电子邮件表单)在从客户端浏览器传输到 Purple 服务器的过程中被加密 [1]。
  2. 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 IP116.203.120.121(主)和 195.201.123.149(备)
    • Port1812(认证)[1]
    • Secret[您的 Purple 共享密钥]
  • RADIUS Accounting:设置为 RADIUS accounting is enabled 并添加计费服务器:
    • Host IP116.203.120.121(主)和 195.201.123.149(备)
    • Port1813(计费)
    • Secret[您的 Purple 共享密钥]
  • 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]。

  1. Walled Garden 设置为 Walled garden is enabled [1]。
  2. Walled garden ranges 字段中,输入所需的 FQDN 和通配符域名 [1]。

walled_garden_infographic.png

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 (Remote Authentication Dial-In User Service)

一种网络协议,为连接和使用网络服务的用户提供集中的认证、授权和计费 (AAA) 管理。

Meraki AP 查询 Purple 的云端 RADIUS 服务器,以验证访客凭据并授权网络访问。

Walled Garden

在完成 captive portal 登录流程之前,允许未认证的访客客户端访问的一组受限 IP 地址或域名。

对于允许客户端访问托管的展示页面、从 CDN 下载 CSS/JS 资源以及与社交登录 OAuth 端点进行通信至关重要。

Session-Timeout

一个 RFC 2865 RADIUS 属性,指定用户会话在需要重新认证之前可以保持活跃的最大秒数。

由 Purple RADIUS 在 Access-Accept 数据包中返回,用于控制访客保持登录状态的时间(例如,酒店访客为 24 小时)。

Idle-Timeout

一个 RADIUS 属性,定义在终止用户会话之前允许的最大不活跃期间(无数据传输)。

用于在体育场或零售店等高密度环境中断开闲置设备的连接并回收 IP 地址。

PAP (Password Authentication Protocol)

RADIUS 用于验证用户凭据的一种简单的、未加密的身份验证协议。

Cisco Meraki 进行外部展示页面 RADIUS 认证时所需。通过 HTTPS 加密客户端到门户的传输,并使用共享密钥加密 RADIUS 数据包密码字段来维护安全性。

Passpoint (Hotspot 2.0)

由 Wi-Fi 联盟开发的一项行业标准,可实现类似于蜂窝网络的自动漫游和安全连接到 Wi-Fi 网络。

由 Meraki MR 接入点和 Purple 支持,可实现无缝的、基于证书的访客接入,而无需 captive portals。

CMX (Cisco Meraki Location APIs)

一个 API 框架,允许 Meraki 接入点将实时位置和存在数据(探测请求)导出到第三方分析平台。

与 Purple 集成,为实体场所提供详细的客流量、停留时间和回头率分析。

应用实例

一家拥有 350 间客房的豪华酒店运行着 Cisco Meraki MR46 接入点,需要部署一个安全的访客 WiFi 网络。他们希望收集访客电子邮件,限制每位访客的带宽为 5 Mbps,并确保访客每 7 天只需登录一次。网络架构师应该如何配置 Meraki Dashboard 和 RADIUS 设置?

  1. SSID 设置:配置一个名为 'Hotel_Guest' 的开放 SSID,并将展示页面(splash page)设置为 'Sign-on with' 和 'my RADIUS server'。\n2. RADIUS 配置:输入 Purple 的主 RADIUS IP(116.203.120.121)和备用 RADIUS IP(195.201.123.149)。将认证端口设置为 1812,计费端口设置为 1813。配置共享密钥。\n3. 超时参数:在 RADIUS 服务器配置文件或 Purple 控制面板中,将 Session-Timeout 属性设置为 604800 秒(7 天),将 Idle-Timeout 设置为 1800 秒(30 分钟),以回收不活跃的 DHCP 租约。\n4. 流量整形:在 Meraki Dashboard 的 Wireless > Configure > Firewall & traffic shaping 下,选择该 SSID,启用流量整形,并将每个客户端的限制设置为下行 5 Mbps 和上行 2 Mbps。\n5. 围墙花园(Walled Garden:启用围墙花园,并添加 *.purple.ai*.venuewifi.com 以及必要的 CDN 通配符(如 *.cloudfront.net),以允许在认证前渲染展示页面。
考官评语: 该解决方案成功平衡了用户体验与网络性能。使用 7 天的 Session-Timeout 可避免长期住宿的访客频繁登录,而 30 分钟的 Idle-Timeout 则可防止 DHCP 地址池中的 IP 地址耗尽。相比于依赖 RADIUS 属性(如 Maximum-Data-Rate-Downstream),更推荐直接在 Meraki AP 上配置流量整形,因为这样可以减少 AP 的处理开销,并提供更一致的执行机制。

一家拥有 45 家门店的全国性零售连锁店希望使用 Meraki MR33 AP 在所有门店部署访客 WiFi。他们需要确保配置的一致性、阻止对企业网络的访问并收集客流量分析数据。如何进行大规模部署?

  1. 配置模板:在 Meraki Dashboard 中创建一个单一的网络配置模板。使用 Purple 的 RADIUS 设置、围墙花园域名和自定义展示 URL(https://login.venuewifi.com/ip/v2/meraki)配置访客 SSID。将所有 45 家门店的网络绑定到该模板。\n2. VLAN 隔离:在每家门店的本地交换机和防火墙上,配置一个专用的访客 VLAN(例如 VLAN 50)。在 Meraki SSID 设置中,将客户端 IP 分配(Client IP Assignment)设置为 'External DHCP server' 并指定 VLAN 50。确保防火墙阻止从 VLAN 50 到企业网段的所有路由。\n3. 位置分析:在 Meraki Dashboard 的 Network-wide > Configure > General 下启用 Meraki Scanning API (CMX)。输入 Purple Post URL 和密钥验证器。这允许 Meraki AP 将实时探测请求数据流式传输到 Purple 的分析引擎,以生成客流量和停留时间报告。
考官评语: 大规模部署需要自动化和基于模板的管理。通过将所有网络绑定到单个模板,未来任何围墙花园的更新(例如添加新的社交登录提供商)都可以立即推送到所有 45 家门店,从而消除手动配置错误。在启用 RADIUS 计费的同时启用 Meraki Scanning API,可确保零售商同时捕获活跃的访客会话分析和被动的访客客流量指标,从而最大化部署的业务价值。

练习题

Q1. 网络工程师部署了一个带有 Purple captive portal 的新 Meraki 访客 SSID。未认证的客户端成功重定向到登录页面,但当他们尝试使用“使用 Google 登录”时,页面一直旋转并最终因 DNS 或超时错误而失败。其他登录方式(如电子邮件表单)工作正常。此问题最可能的原因是什么,应该如何解决?

提示:考虑在 RADIUS 认证完成之前,客户端浏览器必须访问哪些外部域名才能完成 Google OAuth 握手。

查看标准答案

最可能的原因是 Meraki SSID 的 Walled Garden 配置中缺少 Google OAuth 辅助域名。虽然允许了核心 Purple 域名和 CDN 域名(这就是展示页面可以加载的原因),但 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 团队发现,尽管活跃并发连接从未超过 800 个,但访客 VLAN(具有 2048 个 IP 的 /21 子网)的 DHCP 地址池在活动开始的前 2 小时内就完全耗尽了。已启用 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 展示页面部署中,RADIUS Access-Request 直接源自 Cisco Meraki Dashboard 云端基础设施,而不是本地 AP。要解决此问题,MSP 必须获取 Meraki Dashboard 的出站 IP 范围(可在 Meraki Dashboard 的 Help > Firewall info 下找到),并配置其上游企业防火墙,以允许在这些 Meraki Dashboard IP 范围与 Purple 的云端 RADIUS 服务器之间进行端口 1812(认证)和 1813(计费)的双向 UDP 流量。此外,他们必须确保将 Meraki Dashboard IP 作为有效的 RADIUS 客户端添加到 Purple 门户配置中。