
为何不合并 SSID
关于漫游,常见建议是“在所有地方使用同一个 SSID”,在办公室、公共场所或一般无旧设备的环境中,该建议往往正确。但因 2.4GHz 频段需兼容较旧且性能一般的 IoT 设备,要支持 WPA2 并采用保守设置,所以未这样做。5GHz 频段是较新设备主场,虽少数设备会失去 5GHz 接入能力,但乐意将其升级到 WPA3。网络设置如下:2.4GHz 为兼容传统设备的类 WPA2 网络,适用于 IoT 设备和旧客户端;5GHz 采用 WPA3/SAE 的现代客户端网络;通过四个“哑”接入点实现 2.5GbE 回程;完全不使用云管理或特定厂商的软件。
用户反馈
收到反馈称,屋内移动时 iPhone、iPad 和 MacBook 不会自动切换到其他接入点。因公寓环绕电梯井,有些地方如厨房存在射频干扰,且苹果设备对特定基站“执着”,这种情况常发生。最初四个接入点都启用 802.11r/k/v 相关选项,快速切换功能正常运行,接入点日志有 `auth_alg=ft` 条目表明快速切换正在发生。还安装 `wpad-mbedtls` 支持“网状”网络,但漫游效果仍有提升空间。且网络设置决定漫游优化要在每个频段/SSID 内进行,而非跨频段,跨频段漫游是客户端任务,但很多客户端表现不佳。
添加 `usteer`
有两个突出问题:一是未安装引导守护程序,客户端自行决定漫游,常连接到信号微弱的接入点;二是每个无线电的 `rrm_nr_list` 为空,虽启用 802.11k,但 `hostapd` 未向客户端提供邻居报告,无法有效引导客户端切换。于是在四个接入点上安装 `usteer` 及其 LuCI 配套包,并启用该服务,初始配置采用默认设置。默认配置启用局域网信息交换和系统日志,禁用守护程序的 IPv6,设置适度调试级别,使接入点能相互识别并交换客户端数据。然而 802.11k 邻居列表仍未填充,查阅 OpenWRT 论坛发现缺少 `static-neighbor-reports` 包。每个接入点可通过命令生成自己的 802.11k 邻居报告元素,为每个频段生成列表并在每个接入点上安装。这些报告按频段区分,不进行跨频段混合。之后,每个接入点的每个无线电都有三个邻居,`usteer` 掌握接入点和客户端状态,`hostapd` 有明确的 802.11k 邻居数据可提供给客户端。
有何改变
第一次对比虽平淡但有用。展示了更改前后 2.4GHz 信噪比情况,2.4GHz 频段拥挤、嘈杂,受多种干扰,采样期间有两个接入点情况改善或不变,另外两个变差。5GHz 频段情况更鼓舞,查看有效比特率需结合靠近接入点情况分析,至少在两个接入点之间使用情况有明显变化。最能验证效果的是粘性客户端视图,信号较弱的客户端数量未完全消失,但信号非常弱的客户端消失,表明客户端不再执着于之前的接入点,能够正常漫游。
注意事项
单一样本不能代表科学结论,Wi-Fi 受多种因素影响。部署后看到一条新的快速切换日志,在最新检查中只出现一次,虽不足以说明设置有问题,但值得关注。
未来计划
接下来几周会持续关注网络情况,让大语言模型帮进行 Graphite 查询和图表脚本编写,相关指标会保留,稳定配置已保存在本地 Gitea 实例中,几个月后检查也不难。很喜欢 Cudy 接入点,没有云控制器等,只有 OpenWRT、`collectd`/Graphite 以及偶尔通过 `ssh` 会话检查配置,喜欢该网络设置是因为出现问题时能深入排查。


被折叠的 条评论
为什么被折叠?



