Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
zh:docs:guide-user:network:wifi:mesh:80211s [2020/12/30 09:52] – improve the translation shorilezh:docs:guide-user:network:wifi:mesh:80211s [2023/04/06 02:12] – 修复wireless中ifname配置项 shorile
Line 1: Line 1:
-====== 802.11s based wireless mesh network ======+====== 基于802.11的无线mesh网状网络 ======
  
-[[wp>IEEE 802.11s|802.11s]] 是一个无需建立基础设施就可以连接无线设备的开源标准. 它在 [[wp>Data_link_layer|Layer 2]] 上运行,并确保所有节点可以在桥接二层网络上看到彼此(就像他们都插入到交换机上一样). 任何 [[wp>Network_layer|Layer 3]] 基础设施都可以在此之上工作. IP router 和 DHCP clients 都能很好运行. 可以根据用例实现更复杂的基础设施。(例如 Batman, Bird, OLSR 等)+[[wp>IEEE 802.11s|802.11s]] 是一个无需建立基础设施就可以连接无线设备的开源标准. 它在 [[wp>Data_link_layer|Layer 2]] 上运行,并确保所有节点可以在桥接二层网络上看到彼此(就像他们都插入到交换机上一样). 任何 [[wp>Network_layer|Layer 3]] 基础设施都可以在此之上工作. IP router 和 DHCP clients 都能很好运行. 可以根据用例实现更复杂的基础设施。(例如 Batman, Bird, OLSR 等),这些增强的包更多地针对城市级别规模的大型基础设施方案,而不是典型的家庭mesh应用。相比之下,基本的 802.11s 网格适用于家庭mesh的应用场景。
  
 该视频是使用OpenWRT构建简单网状网络的一个很好的入门教程: https://www.youtube.com/watch?v=kMgs2XFClaM 该视频是使用OpenWRT构建简单网状网络的一个很好的入门教程: https://www.youtube.com/watch?v=kMgs2XFClaM
Line 9: Line 9:
 802.11s 在 OpenWrt 19.07 及更高版本稳定工作, 包括身份验证和加密, 假设有硬件/驱动程序支持 并且已经安装了 ''wpad-mesh-openssl'' (或同等的工具wpad-mesh-wolfssl)。 802.11s 在 OpenWrt 19.07 及更高版本稳定工作, 包括身份验证和加密, 假设有硬件/驱动程序支持 并且已经安装了 ''wpad-mesh-openssl'' (或同等的工具wpad-mesh-wolfssl)。
  
-:!: There appears to be an ARP relay bug (confirmed in v19.07.4) that means meshing only works reliably from the Mesh-Points that are in wireless range of the Mesh Portal (MPP). See: [[https://forum.openwrt.org/t/bug-report-802-11s-mesh-v19-07-4/78524/4]]  +:!: 有一个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]]   
 + 
 ===== 配置 ===== ===== 配置 =====
  
-如果默认安装了这些,就需要删除:+如果需要运行加密的mesh网路, 需要安装支持mesh加密的wpad版本. 
 + 
 +在写这篇文档的时候, 需要以下的wpad版本之一: 
 + 
 +  * wpad-mesh-openssl (精简版以节省空间) 
 +  * wpad-openssl (完整大版本) 
 +  * wpad-mesh-wolfssl (精简版以节省空间) 
 +  * wpad-wolfssl (完整大版本) 
 +  * wpad-mesh-mbedtls(精简版本以节省空间) 
 +  * wpad-mbedtls (完整大版本) 
 + 
 +如果默认安装了这些,就需要删除这些加密功能较少的组件:
  
 <code> <code>
 # opkg remove wpad-mini # opkg remove wpad-mini
 # opkg remove wpad-basic # opkg remove wpad-basic
 +# opkg remove wpad-basic-wolfssl
 +# opkg remove wpad-basic-openssl
 +# opkg remove wpad-basic-mbedtls
 </code> </code>
  
  
-安装依赖项 (改为''wpad-mesh-openssl''),才能提供mesh网络的加密:+安装依赖项 (改为''wpad-mesh-openssl''),才能提供mesh网络的加密,wolfssl是性能更好适合嵌入式设备轻量化的加密库,openssl是常见的主流加密库:
  
 +<code>
 +# opkg install wpad-mesh-wolfssl
 +</code>
 +或者
 <code> <code>
 # opkg install wpad-mesh-openssl # opkg install wpad-mesh-openssl
 </code> </code>
 +或者
 +<code>
 +# opkg install wpad-mesh-mbedtls
 +</code>
 +这样安装只是提供mesh网络的加密
 +
 +建议安装wpad-wolfssl
 +<code>
 +# opkg install wpad-wolfssl
 +</code>
 +或者
 +<code>
 +# opkg install wpad-openssl
 +</code>
 +或者
 +<code>
 +# opkg install wpad-mbedtls
 +</code>
 +就可以把加密提供于mesh、ap等所有网络中了
 +
 +**说明:**
 +  - [[https://github.com/openwrt/openwrt/commit/49cc712b44c76e99bfb716c06700817692975e05|从2019年9月开始]], ''wpad-openssl'' 或者 ''wpad-wolfssl'' //**可以**// 进行 802.11s 加密,wpad-mbedtls 后来加入支持.
 +  - ''wpad-basic-*'' 仅支持 **802.11r** 和 **802.11w**。
 +  - ''wpad-mesh-*'' 仅支持 **802.11r/w** and **802.11s**。
 +  - ''wpad-*'' ,例如 ''wpad-wolfssl'' 是 ''wpad''的**完整版** 提供支持 **802.11k/v/r/w** and **802.11s**。
 +  - ''wpad'' 的 **完整版** 意味着没有进行任何修剪以减小其大小。
 +
 +==== 无线网络配置 ====
  
 编辑 ''/etc/config/wireless'' 并确定: 编辑 ''/etc/config/wireless'' 并确定:
-  * ''radio0'' is not disabled+  * ''radio0'' 没有设置为 disabled,或者disabled设置为0
   * ''radio0'' 在每个设备上都配置兼容 (相同的channel等)   * ''radio0'' 在每个设备上都配置兼容 (相同的channel等)
   * 按下面的形式增加 ''iface'' :   * 按下面的形式增加 ''iface'' :
Line 35: Line 83:
         option network 'mesh'         option network 'mesh'
         option device 'radio0'         option device 'radio0'
 +        option disabled '0'
 +        option network 'lan'
 +        option ifname 'mesh0'
         option mode 'mesh'         option mode 'mesh'
         option mesh_id 'your-mesh-name' # 可以任意字符串, 所有同一个mesh_id的节点连接成一个网格(如果有密码还要加上密码)         option mesh_id 'your-mesh-name' # 可以任意字符串, 所有同一个mesh_id的节点连接成一个网格(如果有密码还要加上密码)
-        option encryption 'psk2/aes'or 'none'+        option encryption 'psk2/aes'或 'sae' ,或不想要加密的话设置为 'none'
         option key 'your-secret-password'         option key 'your-secret-password'
 </code> </code>
  
-**注意:** 客户端设备的访问是通过桥接‘ap’和‘mesh’接口来实现的。+**注意:** 客户端设备的访问是通过桥接‘ap’和‘mesh’接口来实现的,这一点很重要,选项option network 'lan' 的作用是把 'mesh' 接口桥接到了 'lan' 
 +您要加入mesh网络的每个设备都必须以相同的方式进行配置,即相同的mesh_id,相同的通道channel,相同的密钥。 
 +这种无线wireless配置可能足以满足组建两三个较近的mesh节点的“mesh”网络。 但是,由大量mesh网状节点组成的有机、自主自我管理的mesh网络需要额外的配置。 
 + 
 +此配置应该足以启动mesh网络,因此您现在可以重新初始化wifi并查看它是否有效: 
 + 
 +重载网络 
 +<code> 
 +# /etc/init.d/network reload 
 +</code> 
 +查看它是否有效 
 +<code> 
 +# wifi 
 +# iw dev mesh0 info 
 +</code> 
 +应该可以看到类似于以下内容的输出: 
 +<code> 
 +Interface mesh0 
 + ifindex 10 
 + wdev 0x3 
 + addr 12:34:56:78:9a:bc 
 + type mesh point 
 + wiphy 0 
 + channel 2 (2417 MHz), width: 20 MHz, center1: 2417 MHz 
 + txpower 28.00 dBm 
 + multicast TXQ: 
 + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets 
 + 0 0 129166 0 0 0 0 9107016 129167 
 +</code> 
 + 
 +如果你想在你的mesh网格上运行一个像OLSR这样的路由协议,就禁用 802.11s的内置路由选项 ''option mesh_fwding '0' ''.
  
 对于网格参数的完整列表,您可以检查以下变量的值 [[https://github.com/openwrt/openwrt/blob/master/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh|mac80211.sh Source]]: 对于网格参数的完整列表,您可以检查以下变量的值 [[https://github.com/openwrt/openwrt/blob/master/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh|mac80211.sh Source]]:
Line 119: Line 200:
 <code>ifconfig mesh0 10.0.0.1</code> <code>ifconfig mesh0 10.0.0.1</code>
  
-默认情况下, mesh points 会使用 channel 1 并自动尝试创建具有相同mesh ID 和 channel的mesh节点的对等连接.+默认情况下, mesh points 会使用 channel 1 并自动尝试创建具有相同mesh ID和channel的mesh节点的对等连接.
  
 ===== 验证 ===== ===== 验证 =====
  • Last modified: 2024/01/23 08:00
  • by shorile