在 OpenWrt/ImmortalWrt 环境下,当路由器之间具备网线连接时,最标准的组网方式并非无线 802.11s Mesh,而是基于 802.11k/v/r 协议的 Dumb AP 模式(有线回程)。这种方案能提供最低的切换延迟(<50ms)和最高的网络吞吐量。本文仅探讨主副路由通过网线直连环境下的Mesh组网方法。
一、 环境准备
1. 软件环境:更换全功能版 wpad
OpenWrt 默认自带的 wpad-basic 删减了漫游协议。要实现 Mesh 漫游,必须安装全功能版本。
注意: 此操作会重启无线,请务必通过有线网线连接路由器。
使用 apk 包管理器 (新版OpenWrt系统):
apk update apk del wpad-basic-mbedtls wpad-basic-wolfssl apk add wpad-openssl使用 opkg 包管理器 (传统OpenWrt系统):
opkg update opkg remove wpad-basic-mbedtls wpad-basic-wolfssl --force-depends opkg install wpad-openssl
2. 硬件连接:Dumb AP 模式设置
若副路由已经配置为AP模式,则直接将副路由的WAN 口接入主路由的LAN 口;
若副路由为路由器模式,则参考下方修改配置:
- 物理连接:主路由 LAN 口 -> 副路由 LAN 口。
副路由核心设置:
- 修改 IP:在
网络 -> 接口 -> LAN中,设为与主路由同网段地址(如192.168.1.2)。 - 关闭 DHCP:在 LAN 接口设置下方,勾选 “忽略此接口”。
- 设置网关:将副路由的 IPv4 网关和 DNS 指向主路由 IP(
192.168.1.1)。 - 禁用 IPv6 通告:将副路由 LAN 的“路由通告服务”和“DHCPv6 服务”设为“已禁用”。
- 修改 IP:在
二、 无线配置核心参数(所有节点同步)
为了实现无缝切换,主路由与副路由的所有频段(2.4G/5G)必须严格统一参数。
1. 基础一致性
- SSID (名称):全屋统一,不区分 2.4G/5G(如
Purvar WiFi),若区分2.4G/5G则注意Mobility Domain (移动域)需使用不同的值。 - 加密方式:建议统一使用
WPA2-PSK(CCMP)或WPA3-SAE。 - 密码:全屋必须一致。
2. 漫游协议参数 (802.11k/v/r)
进入 网络 -> 无线 -> 接口配置 -> 无线安全,勾选以下选项:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| 802.11r Fast Transition | 开启 | 核心协议:允许秒级切换不掉线 |
| Mobility Domain (移动域) | 8080 | 关键:所有路由器、所有频段必须填入相同的 4 位十六进制数 |
| FT over DS | 开启 | 针对有线回程优化,提高协议传输速度 |
| Generate PMK locally | 开启 | 本地生成成对主密钥,简化握手过程 |
| 802.11k (RRM) | 开启 | 向手机提供邻居列表,缩短扫描耗时 |
| 802.11v (BSS Transition) | 开启 | 允许路由器建议手机切换到更好的节点 |
若Luci页面上部分参数项不可见,可通过修改/etc/config/wireless 文件方式进行配置,找到对应 SSID 的 config wifi-iface 部分,按 i 进入编辑模式,手动添加以下三行:
option ieee80211k '1'
option ieee80211v '1'
option bss_transition '1'至此你已经完成了Mesh组网配置,可以重启路由器后使用手机移动到各个不同的房间进行WiFi漫游测试并投入使用。
三、 进阶调优:解决“死粘”信号问题
如果发现手机切换不灵敏,通常是因为信号覆盖过强导致手机不愿重连。
1. 调整发射功率
建议将所有节点的 Transmit Power(发射功率)降低至 15dBm - 18dBm。
2. 弱信号剔除 (命令行方式)
若 LuCI 界面无此选项,可编辑 /etc/config/wireless,在 wifi-iface 部分添加:
option disassoc_low_ack '1'
option rssi_threshold '-70'3. 安装调度程序 (usteer)
usteer 是官方推荐的本地调度策略工具。它不需要复杂的图形界面,能在后台自动实现“频谱引导(Band Steering)”,将支持 5G 的设备引导至更高速的 5G 频段,并辅助漫游决策。
apk add usteer
/etc/init.d/usteer enable
/etc/init.d/usteer start四、 验证漫游状态
配置完成后,建议在副路由终端验证协议是否真正运行,确保配置已生效而非“心理作用”:
检查协议加载:
# 注意:路径通常为 /var/run/hostapd/,使用 -i 指定你的无线接口名(如 wlan0 或 wlan1) hostapd_cli -p /var/run/hostapd/ -i wlan0 status在输出信息中确认包含以下关键字段:
ft_supported=1(802.11r)rrm=1(802.11k)bss_transition=1(802.11v)
查看邻居报告:
# 查看当前节点是否已识别到局域网内的其他漫游节点 hostapd_cli -p /var/run/hostapd/ -i wlan0 rrm_neighbor_report_conf如果输出了另一台路由器的 BSSID(MAC 地址),说明全屋漫游拓扑已成功建立。
结语
通过以上步骤,你已经在 OpenWrt 上构建了一个标准的、基于 IEEE 协议的有线回程 Mesh 系统。这套方案最大的优势在于其协议透明性:它不绑定特定品牌,只要设备支持 802.11k/v/r 协议,就能在全屋移动时获得近乎零感知的网络接力体验,真正做到游戏不掉线、视频不卡顿。