OpenWRT 路由器快速漫游(802.11r)配置笔记

OpenWRT 路由器快速漫游(802.11r)配置笔记

原版op固件为了节省空间,自带的wpad库是残血的。因为我们需要用到满血wpad的一些功能,需要先安装满血库。如果你的op像我用的原版ImmortalWrt 23.05.2一样自带了满血的wpad-openssl 或者 wpad-wolfssl(国人自己编译的很多都是),那可以跳过这步,为了保险起见可以删除一下再重新安装。

记住无线接口里的BSSID数值

注意事项:

勾选802.11r 快速切换

勾选无线电测量邻居报告

勾选无线电测量信标报告

“2.4G”、“5G”每台设备根据自身MAC地址NAS id 填入“去掉冒号的BSSID”

“2.4G”、“5G”设备的移动域分别填入的“四位数字”保持一致,即2.4G和2.4G一致,5G和5G一致(2.4g和5g设置不一样的移动域)。

R1 密钥持有者 填入“去掉冒号的BSSID”

勾选R1 推送 PMK

外部 R0KH 列表 填入 ”BSSID,去掉冒号的BSSID,自定一个128位的密钥“

外部 R1KH 列表 同上

假设我有4个路由器(1个AC, 3个AP)。

外部 R0KH 列表 与 外部 R1KH 列表就需要把4个路由器都填上 (多少个组网无缝漫游就得填多少个)

外部 R0KH 列表和外部 R1KH 列表不能留空,否则日志会报错:hostapd: nl80211: kernel reports: key addition failed

128位key的计算方法

在windows系统中, 可以打开Powershell, 执行命令

(Get-Random -Count 16 -InputObject (0..255) | ForEach-Object { $_.ToString(“X2″) }) -join ”

在linux系统中, 执行命令

xxd -l 16 -p /dev/random

验证需要以下几个工具:

  • 支持快速漫游的手机(iPhone是肯定可以,安卓你很难知道它支不支持)
  • 手机安装监测Wi-Fi漫游的软件。第一推荐WiFiman,是个ubiquiti的配套软件,很好用,信息显示也很全。其次可以用tplink的网络百宝箱,也还算好用。安卓端还推荐一个wifi analyzer软件,可以用来分析信号
  • 电脑ssh连接路由器。很多人喜欢用putty,不过我喜欢直接命令行ssh。这里涉及命令行,要用到专业知识,不过都是复制粘贴,难度不大。可能比较劝退,我就不解释了,如果有不懂的请百度

准备好以后我们就可以开始了。可以先快速在wifi analyzer里看一看协议里有没有 +FT。如果没有的话可能路由器设置有问题,或者你的手机不支持。苹果用户没有,或者安卓用户没找到这个软件也没关系,不影响我们之后的步骤。

首先我们需要ssh连接路由器更改几个设置。输入以下几条命令

root@OpenWrt:~# uci set wireless.radio0.log_level=1

root@OpenWrt:~# uci commit wireless

root@OpenWrt:~# wifi up

root@OpenWrt:~# grep _level /var/run/hostapd-phy0.conf     # 保证你的输出和下面对的上就行

logger_syslog_level=1

logger_stdout_level=1

这里我们做的是让 openwrt 的 log 打印更多东西。原本关于快速漫游的信息在log里是不显示的。

准备工作已经做好,现在你需拿出手机,打开监测漫游的软件,在房间里走来走去让手机漫游个几次。

在手机漫游的过程中,设备漫游的相关信息也会在路由器的log里被记录下来。这时候只要我们查看log数据就可以知道手机是否使用了快速漫游。

回到ssh窗口,输入logread命令并按下回车。这时你的命令行会打印一大堆log。如果你发现log结尾有这样的内容

daemon.debug hostapd: wlan0: STA e0:…:30 WPA: FT authentication already completed – do not start 4-way handshake

那么你的快速漫游已经成功了。但是如果你发现你的log有这样的内容

Wed Nov  3 21:45:48 2021 daemon.debug hostapd: wlan0: STA 70:8a:09:df:f1:bc WPA: sending 1/4 msg of 4-Way Handshake

Wed Nov  3 21:45:48 2021 daemon.debug hostapd: wlan0: STA 70:8a:09:df:f1:bc WPA: received EAPOL-Key frame (2/4 Pairwise)

Wed Nov  3 21:45:48 2021 daemon.debug hostapd: wlan0: STA 70:8a:09:df:f1:bc WPA: sending 3/4 msg of 4-Way Handshake

Wed Nov  3 21:45:48 2021 daemon.debug hostapd: wlan0: STA 70:8a:09:df:f1:bc WPA: received EAPOL-Key frame (4/4 Pairwise)

那说明你的手机没有使用快速漫游,而是用了传统的龟速切换方式。要么你的手机不支持802.11r,要么你的配置和你的手机不兼容。如果有别的报错的话,可以通过报错信息查看问题出在哪里。

发表评论

邮箱地址不会被公开。 必填项已用*标注