OpenWrt之有线中继无缝漫游mesh组网详解

文章目录

    • 前言
    • 什么是Mesh
    • Mesh的优点
    • 检查OpenWrt的设置选项
    • 设置WIFI
    • 设置KVR
      • NAS ID
        • 设置教程
      • 移动域 / Mobility Domain
        • 设置教程
      • 重关联截止时间 / Reassociation Deadline
        • 设置教程
      • FT协议 / Fast Transition / FT protocol
        • 设置教程
      • 本地生成 PMK / Generate PMK locally
        • 设置教程
      • R0 密钥生存期 / R0 Key Lifetime
        • 设置教程
      • R1 密钥持有者 / R1 Key Holder
        • 设置要求
        • 设置教程
      • PMK R1 推送
        • 设置教程
      • 外部 R0KH 列表 / External R0KH List
        • 设置教程
      • 外部 R1KH 列表
        • 设置教程
      • 注意事项
    • 设置AP
    • 后话


前言

开始之前, 得看一下路由器是否支持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的设置改改就可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456286.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

页面单跳转换率统计案例分析

需求说明 页面单跳转化率 计算页面单跳转化率,什么是页面单跳转换率,比如一个用户在一次 Session 过程中访问的页面路径 3,5,7,9,10,21,那么页面 3 跳到页面 5 叫一次单跳,7-9 也叫一次单跳, 那么单跳转化率就是要统计…

【Kubernetes】kubectl top pod 异常?

目录 前言一、表象二、解决方法1、导入镜像包2、编辑yaml文件3、解决问题 三、优化改造1.修改配置文件2.检查api-server服务是否正常3.测试验证 总结 前言 各位老铁大家好,好久不见,卑微涛目前从事kubernetes相关容器工作,感兴趣的小伙伴相互…

Redis渗透SSRF的利用

Redis是什么? Redis是NoSQL数据库之一,它使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。默认端口是:6379 工具安装 下载地址: http://download.redis.io/redis-stable.tar.gz然…

【数据结构排序算法篇】----选择排序【实战演练】

作为一名对技术充满热情的学习者,我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代,我远非专家,而是一位不断追求进步的旅行者。通过这篇博客,我想分享我在某个领域的学习经验,与大家共同探讨、共…

Java Collection 出现并发修改异常并对其进行处理

Java Collection 使用迭代器遍历集合时 又同时在删除集合中的数据 程序就会出现并发修改异常的错误 Exception in thread “main” java.util.ConcurrentModificationException (并发修改异常) at java.base/java.util.ArrayList.forEach(ArrayList.java:1513) at com.zhong.co…

私募证券基金动态-24年1月报

成交量:1月日均7,280.98亿元 2024年1月A股两市日均成交7,280.98亿元,环比下降5.40%、同比下降7.85%。1月整体22个交易日,无单日交易日成交金额过万亿,单日交易日最低成交金额为6,120.22亿元(1月15日)&…

2020年通信工程师初级 综合能力 真题

文章目录 第1章 通信职业道德,1-4第2章 法律法规,5-16第3章 计算机应用基础,第5章 现代通信网,38英语题,91 第1章 通信职业道德,1-4 1、职业道德在形式上具有()特点。 A.一致性 B.统一性 C.多样性 D.一般性…

Leetcode—33. 搜索旋转排序数组【中等】

2024每日刷题&#xff08;110&#xff09; Leetcode—33. 搜索旋转排序数组 实现代码 class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int l 0, r n - 1;while(l < r) {int m l (r - l) / 2;if(nums[m] target) …

工业笔记本丨行业三防笔记本丨亿道加固笔记本定制丨极端温度优势

工业笔记本是专为在恶劣环境条件下工作而设计的高度耐用的计算机设备。与传统消费者级笔记本电脑相比&#xff0c;工业笔记本在极端温度下展现出了许多优势。本文将探讨工业笔记本在极端温度环境中的表现&#xff0c;并介绍其优势。 耐高温性能: 工业笔记本具有更高的耐高温性…

AI助力农作物自动采摘,基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统

去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物&#xff0c;专家设计出来了很多用于采摘不同农作物的大型机械&#xff0c;看着非常震撼&#xff0c;但是我们国内农业的发展还是相对比较滞后的&#xff0…

Docker关于conda环境的导出和导入

Docker关于conda环境的导出和导入 1、常用命令&#xff1a;2、环境导出&#xff1a;3、两个服务器之间的文件传输命令&#xff1a;4、环境导入&#xff1a;5、快速进入容器6、其他问题解决记录&#xff1a; 1、常用命令&#xff1a; docker pull -- 从远程仓库将镜像下载至本地…

SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例

场景 关于线程池的使用&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)&#xff1a; Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice executors.newfix-CSDN博客 Java中创建线程的方式…