设备:
树莓派3b+
wifi:TL-WN722N V1
参考资料:
Mesh网络拓扑
如下图所示,mesh网络由MPP、MP、MAP三种设备组成:
-
MPP(mesh portal point):连接无线mesh网络和其他类型的网络,并与mesh网络内部MP/MAP节点进行通信。这个节点具有Portal功能,通过这个节点,mesh内部的节点可以和外部网络通信。
-
MP(mesh point):在mesh网络中,使用IEEE 802.11sMAC和PHY协议进行无线通信,并且支持mesh功能的节点。该节点支持自动拓扑、路由的自动发现、数据包的转发等功能。
-
MAP(mesh access point):任何支持AP功能的mesh point,可以为Station提供接入功能。
这三种设备配置也不一样,他们之间是通过mesh链路连接在一起的,但是需要保证mesh节点工作的信道号和mesh id号必须相同!
image.png
首先要能ssh连上树莓派,由于树莓派本身的wifi模块不支持mesh网络,所以挑选了TL-WN722N V1
给wifi设备安装驱动
查看https://www.jianshu.com/p/6407472e2550
设置开放式网状网络
在此示例中,我们将配置一个mesh节点以使用mesh网络,该节点将自动与使用相同配置(mesh和信道)的任何其他对等节点连接。
每个mesh节点都需要配置如下:
-
使用编译iw的内核并正确安装引导多个节点。
-
选择一个mesh id。mesh id是一个将在mesh节点信标中使用的字符串。只有具有相同mesh id的网格点才能相互通信。mesh id的最大长度为32个字节。在本文档中,我们将网格ID称为$MESH_ID。
-
在每个节点上为wlanN设备添加一个新的Mesh接口。您可以选择网格接口的名称。“mesh”是一种流行的选择。在本文中,我们将mesh 接口称为$MESH_IFACE,我起名为mesh0。
我的想使用第二张网卡也就是wlan1来做mesh组网,过程如下:
如果遇到了这个错误command failed: Device or resource busy (-16)
,就先把网卡关掉在启用
ip link set wlan1 down
添加mesh
iw dev wlan1 interface add mesh0 type mp
查看是否创建成功
ifconfig -a | grep mesh0
输出:mesh0: flags=4098<BROADCAST,MULTICAST> mtu 1500
注意:默认情况下,所有mesh接口都从通道1开始。
iw dev mesh0 set channel 1
关闭mesh0并设置mesh id
ip link set mesh0 down
iw dev mesh0 set meshid mymesh
启用mesh0
ifconfig mesh0 up
分配ip,mesh组网要在同一个网段下
ifconfig mesh0 192.168.8.191
这样一台设备就配置好了。配置其他设备的时候只需要分陪不同的IP即可。在默认配置中,mesh节点将自动尝试创建所有其他具有相同mesh id的网格节点的对等链接。
或者使用另一种方式:
使用phy接口,使用iw list
,查看网卡对应的phy,我的wlan1对应的phy1
先关掉wlan1
ip link set wlan1 down
iw phy phy1 interface add mesh0 type mp mesh_id mymesh
验证是否创建成功
ifconfig -a | grep mesh0
启用mesh0
ifconfig mesh0 up
设置ip,假设为10.0.0.1
ifconfig mesh0 10.0.0.1
验证
使用iw dev mesh0 station dump
和iw dev mesh0 mpath dump
命令检查已建立的对等链接:
root@raspberrypi:/home/pi# iw dev mesh0 station dump
Station 00:11:7f:1b:a7:6b (on mesh0)
inactive time: 760 ms
rx bytes: 70526
rx packets: 915
tx bytes: 170
tx packets: 3
tx retries: 0
tx failed: 0
rx drop misc: 0
signal: -4 [-4] dBm
signal avg: -27 [-27] dBm
Toffset: 18446744073126120807 us
tx bitrate: 24.0 MBit/s
rx bitrate: 24.0 MBit/s
mesh llid: 6895
mesh plid: 26132
mesh plink: ESTAB
mesh local PS mode: ACTIVE
mesh peer PS mode: ACTIVE
mesh non-peer PS mode: ACTIVE
authorized: yes
authenticated: yes
associated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 2
beacon interval:1000
short slot time:yes
connected time: 340 seconds
iw dev mesh0 mpath dump
DEST ADDR NEXT HOP IFACE SN METRIC QLEN EXPTIME DTIM DRET FLAGS
00:11:7f:1b:a7:63 00:11:7f:1b:a7:63 mesh0 11 456 0 0 100 0 0x4
一些解释:
Destination MAC Address:目地mac地址。此mesh路径的目的地。直接路径的目的地和下一跳具有相同的MAC地址。
Next-hop MAC address:下一跳地址。直接路径的目的地和下一跳具有相同的MAC地址。
IFACE :专属网的名称
SN:此路径的目标序列号。 DSN用于确定节点路径信息的“新鲜度”。例如,假设节点接收到其路径表中已经存在的目的地的路径响应。如果路径响应的DSN较高,则它将替换现有路径,因为它将被认为是较新的。
Air Time Link Metric:路径的度量(或“成本”)。较低的度量标准是首选,并且在选择了多个路径的情况下,协议栈将选择成本最低的协议(即:空中链路度量最低的协议)。该值是使用预期的吞吐量得出的(metric = 1 + 8192 / Expected_throughput_mbps)预期吞吐量(Expected_throughput_mbps)取决于驱动程序(例如,某些包含重传)。
Frame Queue Length:此网格路径的排队帧数。
Expiration Time:此mesh路径过期的时间(以jiffies为单位)
Discovery Timeout:路径发现的剩余时间(如果正在发现此路径)。
Discovery Retries:重试发现的次数(如果正在发现此路径)。
Flags:它是一个位掩码,由该路径的以下状态标志组成:
MESH_PATH_ACTIVE = BIT(0),
MESH_PATH_RESOLVING = BIT(1),
MESH_PATH_DSN_VALID = BIT(2),
MESH_PATH_FIXED = BIT(3),
MESH_PATH_RESOLVED = BIT(4),
网友评论