本文通过AI翻译,可能不准确
Wi-Fi漫游
在较大的网络部署中(例如大型家庭网络或商业部署),通常会配置多个不同的接入点(AP),它们都广播相同的SSID(Wi-Fi网络名称)并使用相同的认证方法和凭证。
目的是让Wi-Fi客户端选择“最佳”的接入点(或者说“BSSID”)进行连接。如果网络条件发生变化,或者客户端被物理移动到不同的位置,那么“最佳”的BSSID可能会改变。
即使只有一个接入点存在,客户端也可能倾向于从一个无线电频率带断开连接,并在另一个频率带上重新连接(例如从5GHz切换)。也就是说,单个物理接入点可能有两个或三个不同的BSSID,每个它支持的频率带上都有一个,而“漫游”在它们之间看起来就像是在不同接入点之间发生的过渡。
Wi-Fi标准将从多个接入点提供相同SSID的配置称为扩展服务集(ESS)。
随着时间的推移,Wi-Fi标准中添加了一些可选功能,以尝试提高ESS内的漫游性能。这些包括:
- 802.11r(“快速过渡”)减少了客户端在漫游到不同BSSID时建立安全连接所需的时间。
- 802.11k(“无线电资源测量”)允许单个BSSID向Wi-Fi客户端提供ESS中包含的其他BSSID和频率列表。这减少了每个客户端需要花费的时间来寻找替代的“更好”SSID,因为它不再需要扫描所有频率。
- 802.11v(“无线网络管理”)这个标准包括“网络辅助漫游”,BSSID可以推荐客户端可以漫游到的替代BSSID。
802.11r 快速过渡
当加入(“与”)启用了安全功能的无线网络时,无线客户端和BSS(通常是接入点上的一个典型无线电)之间会发生“4次握手”。在“企业”EAP / 802.1X类型认证的情况下(即每个用户都有自己的认证凭证),这个过程可能特别耗时,因为认证步骤可能涉及一个远程认证服务器。
没有802.11r的情况下,漫游(过渡到不同的BSS)会重复相同的认证过程。在此期间,网络流量会被中断。802.11r旨在通过在过渡到新的BSS期间进行更短的数据包交换(例如总共4个数据包对比8个)来加速漫游(注:新的BSS也可能在同一物理接入点上,如果客户端在2.4GHz和5GHz无线电之间切换)。
当使用“企业”EAP / 802.1X类型认证时,802.11r特别有益,因为不需要额外的(可能高延迟的)往返到认证服务器。有关一些现实世界的例子和时间,请参见“附加资源”部分中链接的WLPC演讲视频。
配置
OpenWrt支持的与802.11r相关的全部选项可以在 here in the documentation中找到。
要使用Luci Web界面进行配置,请转到“网络→无线”,并在每个“SSID”上点击“编辑”,滚动到“接口配置”选项卡,选择“WLAN漫游”,勾选“802.11r快速过渡”框,并输入一个4位数的“移动域”,该域与您其他启用802.11r的路由器/AP上的相同SSID匹配。
- 如果您没有看到“WLAN漫游”选项卡,您需要更新您的OpenWrt或加载一个包含802.11r功能的“wpad”版本。所有当前版本的OpenWrt都包含在基本的“wpad”驱动程序中的802.11r支持。
不支持或有限支持802.11r的Wi-Fi客户端
不支持802.11r的客户端应该能够连接到启用了802.11r的网络,但是一些有缺陷的客户端已知会拒绝连接到启用了802.11r的网络,或者有其他问题行为。解决这个问题的方法是为这些设备创建一个单独的“传统”SSID,该SSID禁用了802.11r,仅供这些设备连接。在某些情况下,升级客户端固件、驱动程序或操作系统可能会解决问题。
- 在Intel CPU上的MacOS不支持802.11r。一些较旧的Intel Mac会拒绝连接到启用了802.11r的网络。对于iOS设备的最低版本,请参见 Apple includes a table on this page
- Windows 10和Windows 11(直到包括2024H2版本)仅在网络使用802.1X认证时支持802.11r(即不支持801.11r与PSK - 即在网络中使用单个密码作为由OpenWrt中的`option key`设置的Windows不支持)。
- 一些驱动程序版本为23.60.*的Intel Windows Wi-Fi 6客户端卡在启用了PSK的802.11r时,会无法重新连接到OpenWrt 23.x接入点。升级到Intel驱动程序版本23.90.*解决了这个问题。
验证客户端802.11r支持
要检查802.11r是否正常工作,将log_level设置为1(参见 Common Options) ,并在漫游后在系统日志中查找“FT authentication already completed - do not start 4-way handshake”消息。
还可以通过检查客户端发送的“关联请求”帧来验证客户端是否使用802.11r。验证“认证密钥管理类型”是否包括“FT”(快速过渡)。
在下面的数据包捕获截图中,Wireshark使用了过滤器wlan.fc.type_subtype == 0
。可以看到客户端请求使用802.11r - “认证密钥管理类型”设置为“FT using SAE”(即802.11r快速过渡,使用WPA3 SAE预共享密钥)。
当使用802.11r时,这可以在每个关联请求帧中找到,在IEEE 802.11 Wireless Management
→ Tagged parameters
→ RSN Information
→ Auth Key Management (AKM) List
下。
802.11k 和 802.11v
“hostap”管理软件是OpenWrt的一个关键部分,它负责广告Wi-Fi网络和认证Wi-Fi客户端。hostapd包括对802.11k和802.11v的支持,但依赖外部软件来做出漫游建议并提供替代BSSID列表等。OpenWrt包含可以执行这些功能的软件包,旨在同时管理802.11k和802.11v。一次只能激活一个:
仅实现802.11k的替代软件包包括: