当前位置: 首页 > news >正文

基于802.11的无线mesh网状网络

  • 基于802.11的无线mesh网状网络
    • 现状
    • 什么是网状网络?
    • 提示 您确定需要网状网络吗?
    • 802.11s Mesh
    • 配置
      • 无线网络配置
    • 无线硬件支持
    • 使用命令行方式
    • 验证
    • 封锁处于mesh网格中单个节点
    • 更多资料

基于802.11的无线mesh网状网络

802.11s 是一个无需建立基础设施就可以连接无线设备的开源标准. 它在 Layer 2 上运行,并确保所有节点可以在桥接二层网络上看到彼此(就像他们都插入到交换机上一样). 任何 Layer 3 基础设施都可以在此之上工作. IP router 和 DHCP clients 都能很好运行. 可以根据用例实现更复杂的基础设施。(例如 Batman, Bird, OLSR 等),这些增强的包更多地针对城市级别规模的大型基础设施方案,而不是典型的家庭mesh应用。相比之下,基本的 802.11s 网格适用于家庭mesh的应用场景。

该视频是使用OpenWRT构建简单网状网络的一个很好的入门教程: https://www.youtube.com/watch?v=kMgs2XFClaM

现状

802.11s 在 OpenWrt 19.07 及更高版本稳定工作, 包括身份验证和加密, 假设有硬件/驱动程序支持 并且已经安装了 wpad-mesh-openssl (或同等的工具wpad-mesh-wolfssl)。

 有一个ARP中继错误 (在v19.07.4确认),这意味着处于mesh网格中只有在Mesh Portal (MPP)的无线范围内的Mesh-Points才正常工作. 参见: https://forum.openwrt.org/t/bug-report-802-11s-mesh-v19-07-4/78524/4

什么是网状网络?

网状网络是多点对多点的第二层宏路由回程,用于实现网状对等设备之间的互联。网状对等设备通常是非用户设备,如路由器、接入点、CPE 等。

一般来说,手机、平板电脑、笔记本电脑等用户设备无法连接到网状网络,而是通过网状网关(一种特殊类型的网状对等设备)实现连接。

提示 您确定需要网状网络吗?

如果您正在寻找一种解决方案,使您的用户设备能够 从一个接入点无缝漫游到另一个接入点 ,您要找的不是网状网络

一些制造商出于营销目的,使用 “Mesh “一词来描述其非标准、闭源、专有的 “漫游 “功能,这给许多人在进入网络基础设施的国际标准和开源固件世界时造成了极大的困惑。

  1. 网状网络的公认标准是 ieee802.11s。

  2. 用户设备快速漫游的公认标准是 ieee802.11r。

这是两个完全不相关的标准。

有关配置快速漫游的详细信息,请参阅:dawn

802.11s Mesh

802.11s 可在 OpenWrt 19.07 及更高版本中可靠运行,包括身份验证和加密,前提是有硬件/驱动程序支持、已安装 “wpad-mesh-openssl”(或同等软件)和 “mesh11sd “软件包。 另请参见:The Mesh11sd Project

802.11s 接口需要设置许多操作参数,然后 接口才会启动并成为网状网络的一部分。

mesh11sd 软件包可监控并动态设置和重置这些必要的网格参数。

一直以来,在无线配置中无法设置所需的网状网参数(因为接口尚未建立)被一些人解释为 “ARP 中继错误”,因为所有网状网节点之间的第 2 层(mac 路由)网络永远不会同时处于活动状态。

配置

如果需要运行加密的mesh网络, 需要安装支持mesh加密的wpad版本.

在写这篇文档的时候, 需要以下的wpad版本之一:

  • wpad-mesh-openssl (精简版以节省空间)

  • wpad-openssl (完整大版本)

  • wpad-mesh-wolfssl (精简版以节省空间)

  • wpad-wolfssl (完整大版本)

  • wpad-mesh-mbedtls(精简版本以节省空间)

  • wpad-mbedtls (完整大版本)

如果默认安装了这些,就需要删除这些加密功能较少的组件:

# opkg remove wpad-mini
# opkg remove wpad-basic
# opkg remove wpad-basic-wolfssl
# opkg remove wpad-basic-openssl
# opkg remove wpad-basic-mbedtls

安装依赖项 (改为wpad-mesh-openssl),才能提供mesh网络的加密,wolfssl是性能更好适合嵌入式设备轻量化的加密库,openssl是常见的主流加密库:

# opkg install wpad-mesh-wolfssl

或者

# opkg install wpad-mesh-openssl

或者

# opkg install wpad-mesh-mbedtls

这样安装只是提供mesh网络的加密

建议安装wpad-wolfssl

# opkg install wpad-wolfssl

或者

# opkg install wpad-openssl

或者

# opkg install wpad-mbedtls

就可以把加密提供于mesh、ap等所有网络中了

说明:

  1. 从2019年9月开始, wpad-openssl 或者 wpad-wolfssl 可以 进行 802.11s 加密,wpad-mbedtls 后来加入支持.

  2. wpad-basic-* 仅支持 802.11r 和 802.11w

  3. wpad-mesh-* 仅支持 802.11r/w and 802.11s

  4. wpad-* ,例如 wpad-wolfssl 是 wpad完整版 提供支持 802.11k/v/r/w and 802.11s

  5. wpad 的 完整版 意味着没有进行任何修剪以减小其大小。

无线网络配置

编辑 /etc/config/wireless 并确定:

  • radio0 没有设置为 disabled,或者disabled设置为0

  • radio0 在每个设备上都配置兼容 (相同的channel等)

  • 按下面的形式增加 iface :

config wifi-iface 'mesh'option device 'radio0' #设置无线网卡设备option disabled '0'option network 'lan'option ifname 'mesh0'option mode 'mesh' #mesh模式option mesh_id 'your-mesh-name' # 可以任意字符串, 所有同一个mesh_id的节点连接成一个网格(如果有密码还要加上密码)option encryption 'sae' # 如果无需加密就设置为 'none'option key 'your-secret-password'

注意: 客户端设备的访问是通过桥接‘ap’和‘mesh’接口来实现的,这一点很重要,选项option network 'lan' 的作用是把 'mesh' 接口桥接到了 'lan'。 您要加入mesh网络的每个设备都必须以相同的方式进行配置,即相同的mesh_id,相同的通道channel,相同的密钥。 这种无线wireless配置可能足以满足组建两三个较近的mesh节点的“mesh”网络。 但是,由大量mesh网状节点组成的有机、自主自我管理的mesh网络需要额外的配置。

此配置应该足以启动mesh网络,因此您现在可以重新初始化wifi并查看它是否有效:

重载网络

# /etc/init.d/network reload

查看它是否有效

# wifi
# iw dev mesh0 info

应该可以看到类似于以下内容的输出:

Interface mesh0ifindex 10wdev 0x3addr 12:34:56:78:9a:bctype mesh pointwiphy 0channel 2 (2417 MHz), width: 20 MHz, center1: 2417 MHztxpower 28.00 dBmmulticast TXQ:qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets0	0	129166	0	0	0	0	9107016		129167

如果你想在你的mesh网格上运行一个像OLSR这样的路由协议,就禁用 802.11s的内置路由选项 option mesh_fwding '0' .

对于网格参数的完整列表,您可以检查以下变量的值 mac80211.sh Source:

  • MP_CONFIG_INT

  • MP_CONFIG_BOOL

  • MP_CONFIG_STRING

或者也可以用以下命令

# iw dev <devname> get mesh_param 

来获取可用mesh网格参数表, 不过没文档.

然后重启无线网络看它的工作情况:

# wifi
# logread -l 20 -f
# iw dev wlan0 station dump

无线硬件支持

 支持 802.11s (type mesh) 取决于无线驱动程序. 大多数最新的开源驱动程序都是可以的.

使用以下方法来确定你的硬件是否支持 802.11s mesh.

iw list | grep "Supported interface modes" -A 9...Supported interface modes:* IBSS* managed* AP* AP/VLAN* WDS* monitor* mesh point* P2P-client* P2P-GO
...

例如: ath9k的路由器

iw list
...
valid interface combinations:* #{ managed, WDS } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,total <= 2048, #channels <= 1, STA/AP BI must match* #{ IBSS, AP, mesh point } <= 1,total <= 1, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz }
...

例如: ath9k_htc的USB外设

iw list
...
valid interface combinations:* #{ managed, P2P-client } <= 2, #{ AP, mesh point, P2P-GO } <= 2,total <= 2, #channels <= 1
...

使用命令行方式

iw 是一种新的基于 nl80211 的wireless devices命令行实用配置工具.more...

创建新的 interface “mesh0”

iw phy phy0 interface add mesh0 type mp mesh_id mymesh

确认新 interface 存在

ifconfig -a | grep mesh0mesh0      Link encap:Ethernet  HWaddr 00:18:39:14:48:B5

打开你的 mesh0 interface

ifconfig mesh0 up

为接口配置IP地址。 如: 10.0.0.x

ifconfig mesh0 10.0.0.1

默认情况下, mesh points 会使用 channel 1 并自动尝试创建具有相同mesh ID和channel的mesh节点的对等连接.

验证

使用iw命令显示对等链路或mesh网格中可达节点的表

iw dev $MESH_IFACE station dump
iw dev $MESH_IFACE mpath dump

例如:

iw dev $MESH_IFACE station dumpStation 00:15:6d:84:14:10 (on mesh)inactive time:  1320 msrx bytes:   352rx packets: 4tx bytes:   174tx packets: 2signal:     -61 dBmtx bitrate: 1.0 MBit/smesh llid:  32577mesh plid:  15969mesh plink: ESTABStation 00:15:6d:84:14:09 (on mesh)inactive time:  3370 msrx bytes:   1064rx packets: 12tx bytes:   545tx packets: 7signal:     -53 dBmtx bitrate: 1.0 MBit/smesh llid:  41036mesh plid:  24435mesh plink: ESTAB

封锁处于mesh网格中单个节点

需要 iw-full 包!

通过MAC地址封锁处于mesh网格中的节点

iw dev $MESH_IFACE station set $MAC_TO_BLOCK plink_action block

验证以上是否生效 (iw dev $MESH_IFACE station dump)

	mesh plink:	BLOCKED

解除:

iw dev $MESH_IFACE station set $MAC_TO_UNBLOCK plink_action open

根据 this source plink_action 不会在mesh网格链接的重连中持久化。

更多资料

  • good background article from CWNP

  • https://wireless.wiki.kernel.org/en/developers/Documentation/ieee80211/802.11s

  • Open80211s Mailing List

http://www.dtcms.com/a/603450.html

相关文章:

  • 公司官网网站建设wordpress 上传权限设置
  • 宿州高端网站建设公司哪家好wordpress启动命令
  • 水果套餐网站牡丹江seo
  • 微网站制作速成法网站建设哪家有实力
  • 建设官网站外国手机网站设计
  • 做交流网站网站qq访客记录原理
  • 网站设计赚钱吗帮别人做网站的合作协议
  • 柬埔寨做网站山东烟台城乡建设学校官方网站
  • 如何在供应商报价超出预算后重新谈判
  • 邙山郑州网站建设黑马培训
  • 网站代运营价格网店运营推广高级实训教程
  • 上海网站建设联系电话wordpress 数据库删除
  • 5.4、Python-数据的拼接
  • 简述网站开发建设的基本流程品牌设计的意义
  • 网站搜索栏怎么做织梦网站后台模版更换
  • 免费建设手机网站电子商务网站购物车怎么做
  • RC阻尼与RCD吸收电路
  • 网站免费空间网易企业邮箱和网易邮箱的区别
  • Linux下的花式「隔空」文件传输魔法
  • 建设广州公司网站甘肃建设体网站
  • 公司建设网站带来什么小程序官网平台入口
  • 相机与动画 - 3:
  • 网站后台登陆模板如何做推广引流赚钱
  • 汇编语言编译器的作用 | 提高程序执行效率与底层控制能力
  • 余姚做百度网站建设摹客 2023年设计师必备设计工具
  • 基于STM32F103驱动AD7124-8 24Bit 多通道ADC数据采集模块采集信号
  • wordpress模板做seo排名好的网站
  • 分库分表3-非分片键查询问题与规避方案
  • 网站设计 三把火科技seo上海培训
  • 零基础学JAVA--Day30(Math类、Arrays类、日期类)