前言

开始之前, 得看一下路由器是否支持KVR协议, 不支持可以关闭页面了.

如何看是否支持?

  • 一般支持mesh组网的路由器都支持kvr协议

  • 注意: 本次是有线APClient的方式, 想学习无线的方法请看另外一篇博文


什么是Mesh

在开始教程之前, 有必要了解一下什么是Mesh.

Mesh是一种网络拓扑结构,其中多个节点通过直接的连接相互关联,形成一个网状结构。这与其他拓扑结构(如星型、总线型或环状结构)不同,因为在网状结构中,大多数节点都直接相互连接,而不是通过一个中心节点或线路。


Mesh的优点

  1. 自动组网
    • 有线回程
    • 无线回程 (使用802.11s协议)
    • 组成mesh节点, 管理整个mesh网络拓扑结构
  2. 无缝漫游
    • 802.11k协议 (筛选节点)
    • 802.11v协议 (节点之间 负载均衡)
    • 802.11r协议 (节点之间 快速切换) (打王者/ 微信电话的过程中切换wifi不会断开连接)


综上, 所谓的mesh组网就是这两点, 不同品牌之间为什么不可以组mesh?

各家品牌把这些协议魔改私有化, 只能自家用, 别人没办法参与进来

  • 注意: 下面的设置是通过AP+802.11(kv)r协议实现组网目的, 别的品牌mesh组网是自动帮你设置, 虽然OpenWrt也有类似的mesh插件, 但这里我是手动设置, 这里我是跟mesh组网是有点偷换概念了

检查OpenWrt的设置选项

打开OpenWrt管理页面, 转到 网络 --> 无线编辑一下2.4G或者5G的wifi, 看一下有没有kvr的相关选项, 想无缝漫游至少得有802.11r协议


802.11s


如果路由器至少支持802.11r协议, 就可以继续往下走

  • 注意: 如果你知道去软件包安装 wpad-openssl 或 wpad-wolfssl 或 wpad-mesh-openssl 或 wpad–mesh-wolfssl 或许会有相关选项

设置WIFI

需要跟主路由的ESSID保持一致, 密码也要一致, 信道的话是否一致都是可以的


设置KVR

需要开启AC和AP开启kvr选项

  • 注意: 下面会以2.4GWIFI设置作为教程, 5GWIFI按照同样的教程设置即可.

NAS ID

在802.11s协议中,NAS ID是一个标识符,用于区分不同的接入点(AP)或接入控制器(AC)。在802.11r Fast BSS Transition(FT)过程中,NAS ID是在RADIUS帧中用于标识网络访问服务器的一个字段。

设置教程

这里采用MAC地址作为AC与AP之间的唯一标识符, 在网络 -> 无线页面找到2.4G的BSSID

BSSIDNAS ID
6A:DB:5A:22:F7:EF6ADB5A22F7EF

NAS ID就是把MAC地址的:删除就得到该值

  • 注意: 下面会以2.4GWIFI设置作为教程, 5GWIFI按照同样的教程设置即可

移动域 / Mobility Domain

移动域的概念是为了提供更平滑的移动体验,特别是在需要切换访问点时,以确保无缝连接。

设置教程

这里保持默认即可, 是全部组网的路由都要相同, 一般OpenWrt仅默认4f57


重关联截止时间 / Reassociation Deadline

指的是客户端设备完成重关联的时间限制。重关联是指在一个移动域中从一个AP切换到另一个AP,而无需执行完整的重新关联过程。

当一个客户端设备决定切换到另一个AP时,它会发送重关联请求给目标访问点。目标访问点在接收到请求后,可能需要执行一些操作,例如验证客户端的身份,生成新的加密密钥等。重关联截止时间就是规定了这一过程的最大时间限制。

如果目标访问点在重关联截止时间内无法完成相关操作,客户端设备可能会放弃重关联,选择执行完整的重新关联过程,或者保持当前连接。这有助于确保无线移动过程中的快速漫游,避免在切换访问点时出现过长的连接中断。

重关联截止时间的设定是为了平衡快速漫游和网络安全性之间的需求。
短的重关联截止时间可以提供更快的漫游体验,但可能增加目标访问点的处理压力
而较长的截止时间则可以给目标访问点更多的时间来完成必要的操作,但可能导致漫游时间的延长

设置教程

参照H3C的设置, 他家的产品设置为20/50秒

这里修改为20000即20秒.


FT协议 / Fast Transition / FT protocol

802.11r的核心功能是FT(Fast BSS Transition,快速BSS切换), 移动域使用FT协议来支持快速漫游。FT协议分为两种工作模式,即FT over the Air(FT/OTA)FT over the DS(FT/DS),这两者都旨在加速漫游过程。

  • FT over the Air (FT/OTA)
    • 优点: 通过在无线链路上执行密钥协商,无需AP之间的介质,可以更快地完成漫游。适用于支持802.11r的无线网络,无需DS(Distribution System)的支持。
    • 缺点: 可能受到无线链路条件的限制,如信号弱或干扰较多的情况下可能影响性能。



客户端直接与目标AP通信,进行漫游前的认证,适用于对漫游兼容性要求高的场景。建议采用本方式配置FT功能。

  • FT over the DS (FT/DS)
    • 优点: 通过Distribution System(DS)(通常是以太网)来传输关键信息,不受无线链路条件的限制。适用于对FT/OTA的支持有限或在需要在DS上执行其他操作时,如集中式身份验证等。
    • 缺点: 可能引入一些额外的延迟,因为数据必须通过DS传输。需要DS的支持。


客户端通过当前AP与目标AP通信,进行漫游前的认证,适用于对漫游性能要求高的场景。

设置教程

国内设备包括苹果大多只支持FT/OTA, 所以选择FT over the Air (FT/OTA)


本地生成 PMK / Generate PMK locally

PMK是用于安全通信的一种密钥,它通常与预共享密钥(PSK)相关联。PSK是在网络和客户端之间预先共享的密钥,而PMK是由PSK生成的。

  • PSK查看

设置教程

保持勾选即可


R0 密钥生存期 / R0 Key Lifetime

设置教程

保持默认10000分钟即可


R1 密钥持有者 / R1 Key Holder

R1密钥持有者是指在进行快速漫游过程中,负责存储和管理R1密钥的设备。R1密钥是在FT协议的上下文中生成的,用于在移动设备在不同访问点之间进行漫游时保持连接的密钥。

设置要求

十六进制表示的 6 字节标识符,无冒号分隔.(R1密钥的长度通常是256比特[32字节])

设置教程

这里与NAS ID保持一致就行


PMK R1 推送

PMK-R1推送功能,它是为了加速移动设备在不同访问点之间的快速漫游而设计的。

设置教程

保持勾选即可


外部 R0KH 列表 / External R0KH List

同一移动域中的 R0KH 列表。
格式:MAC 地址,NAS 标识符,128 位密钥(十六进制字符串)。
在从初始移动域关联期间使用的 R0KH 中请求 PMK-R1 密钥时,该列表用于将 R0KH-ID(NAS 标识符)映射到目标 MAC 地址。

设置教程
BSSIDNAS ID128 位密钥(十六进制字符串)
6A:DB:5A:22:F7:EF6ADB5A22F7EF9331A0F671018466BC4814910FC8028C
  • 注意: 这个128 位密钥与R1 密钥持有者保持一致

格式如下(英文符号):

6A:DB:5A:22:F7:EF,6ADB5A22F7EF,9331A0F671018466BC4814910FC8028C
  • key计算方法

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

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

在linux系统中, 执行命令

xxd -l 16 -p /dev/random


外部 R1KH 列表

设置教程

外部 R0KH 列表数据保持一致


注意事项

假设我有4个路由器, 1个AC, 3个AP.

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


设置AP

除了AC不用设置, 需要修改全部AP的lan口地址和关闭LAN口的DHCP服务

  • 设置LAN口地址

我AC的IP是192.168.3.1
AC就得设置成192.168.3.x (不同AC不要设置相同的IP)
子网掩码225.255.255.0
网关填写AC的IP
广播地址留空

  • 设置DNS地址

设置为AC的IP即可

  • 关闭IPV6, 这三个设置为禁用

  • 关闭LAN口的DHCP服务, 保持忽略此接口勾选


后话

mesh最重要一点是802.11r协议的无缝漫游而已, 让你打王者切换wifi的时候不会460, 打微信电话不会卡顿, 本身设置不算复杂, 就是重复工作比较多, 设置一遍之后都能掌握.

其实上面的kvr甚至不需要设置什么, 只需要把kvr选项开启即可, 剩下的选项默认即可, 把AP的设置改改就可以

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐