openwrt_树莓派_mesh自组织网络
openwrt
- 需求:主要是为了进行无缝漫游,可以控制的路由器,同时尝试mesh自组织网络,并进行测试。
- oepnwrt基于Linux系统,可以在做路由器的同时当作一个服务器来使用,扩展性非常强。
OpenWrt官方介绍:
OpenWrt项目是针对嵌入式设备的Linux操作系统。OpenWrt不是一个单一且不可更改的固件,而是提供了一个完全可写的文件系统及软件包管理。这使您可以不使用供应商提供的应用程序选择和配置,而是通过使用软件包来定制设备以适应任何应用程序。对于开发人员来说,OpenWrt是一个构建应用程序的框架,无需在其周围构建完整的固件; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。
OpenWrt/LEDE是一个为嵌入式设备(通常是无线路由器)开发的高扩展度的GNU/Linux发行版。与许多其他路由器的发行版不同,OpenWrt/LEDE是一个完全为嵌入式设备构建的功能全面、易于修改的由现代Linux内核驱动的操作系统。在实践中,这意味着您可以得到您需要的所有功能,却仍能避免臃肿。
安装openwrt
openwrt的设备支持列表如OpenWrt 支持的设备列表所示,各版本的树莓派都可以安装最新版本的OpenWrt,截止到2021年2月1日
- OpenWrt 支持的树莓派版本
设备表 | 型号 | 更新日期 | 版本 |
---|---|---|---|
Raspberry Pi 2B 1.0/1.1 | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 2 B 1.2 | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 3 B | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 3 B+ | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi A | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi B | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi B+ | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 4 B | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 4 400 | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 3 Compute Module 3 | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi 4 Compute Module 4 | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi Zero | 21.02.1 | raspberry_pi | View/Edit data |
Raspberry Pi Zero W | 21.02.1 | raspberry_pi | View/Edit data |
下载 OpenWrt 镜像
在设备上面的表格中选择自己的树莓派型号,点击 View/Edit data ,然后进入 详情页面,选择“ Firmware OpenWrt Install URL ”,这个就是要下载的镜像,我们把它保存到本地。
树莓派4B下载地址:https://openwrt.org/toh/hwdata/raspberry_pi_foundation/raspberry_pi_foundation_raspberry_pi_4_b
将 OpenWrt 镜像烧录到树莓派中,windows下可以使用 Etcher 软件烧录。同样OpenWrt 镜像支持树莓派从U盘启动:
但我尝试,此过程无法成功脸上wifi。
Openwrt固件
换个地址下载openwrt.cc
树莓派上的 OpenWrt 配置
以下是我的树莓派无线路由器配置过程。
- 登陆 OpenWrt
用网线将树莓派和电脑相连接,然后在浏览器中输入192.168.1.1,即可打开登陆页面。选择openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img 并下载
- 烧录镜像
在电脑上用balenaEtcher(或其他可烧录镜像的软件)读取sd卡,烧录进刚刚下好的完整镜像
- 进入配置界面
将SD卡塞进树莓派,连接电源(注意:这时候树莓派不要连接网线到路由器)
电脑或者手机通过wifi连接openwrt,浏览器输入192.168.1.1进入openwrt的管理界面
默认用户root 密码password
OpenWrt 登陆页面
自己设置一个密码,点击login登陆
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号必须相同!
设置开放性环状网络
在此示例中,我们将配置一个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组网,过程如下:
- 关闭wlan1
ip link set wlan1 down
- 添加mesh
iw dev wlan1 interface add mesh0 type mp
- 查看是否创建成功
ifconfig -a | grep mesh0
输出 mesh0 Link encap:Ethernet HWaddr E8:4E:06:96:A6:51
- 注意:默认情况下,所有mesh接口都从信道1开始。
iw dev mesh0 set channel 1
- 关闭mesh0并设置mesh id
1 | ip link set mesh0 down |
- 启动mesh0
ifconfig mesh0 up
- 分配ip,mesh组网要在同一个网段下
ifconfig mesh0 192.168.1.171
这样一台设备就配置好了。配置其他设备的时候只需要分陪不同的IP即可。在默认配置中,mesh节点将自动尝试创建所有其他具有相同mesh id的网格节点的对等链接。
或者使用另一种方式:
- 使用phy接口,使用iw list,查看网卡对应的phy,我的wlan1对应的phy1,先关掉wlan1
1 | ip link set wlan1 down |
- 验证是否创建成功
ifconfig -a | grep mesh0
- 启用mesh0
ifconfig mesh0 up
- 设置ip,假设为192.168.1.171
ifconfig mesh0 192.168.1.171
方法三:
树莓派启动后,默认有有线网卡 eth0、无线网卡wlan0;为了支持 Mesh,还需加载 USB 的无线 wlan 驱动,驱动加载完成后,系统会显示 wlan1接口。
- 先通过 Openwrt 设置 wlan0 为 ap 模式,为移动终端等提供无线 WiFi接入;
- 再设置 wlan1 网卡为 Mesh 模式,同时所有不同的树莓派 wlan1网卡的 Mesh 信道都必须设置一致,由于无线信道带宽重叠原因,一般信道 1,6,11 为互不干扰信道,在此将 Mesh网络信道设置为 1信道;
- 接着设置 wlan1 网卡的 MAC 地址及 IP 地址,由于在 Mesh 网络中,识别不同设备是通过 MAC 来识别的,因此必须设置不同的 MAC 地址;同时设置 IP 地址为同一掩码范围内的 IP地址,如 192.168.2.0/24;
- 连接测试 Mesh 网络状态,各终端使用 ping 命令测试网络通断、丢包率等;
- 为了使无线骨干网与移动网络等网系联通,这只 桥 接 网 卡 用 于 连 接 eth0,wlan0,wlan1,同 时 配 置iptables 出入站规则;将 MPP 网关节点的 eth0 网卡接口通过有线连接至 4G 无线网关 CPE 上;为 eth0 配置 4G 固定 IP地址,测试 MPP,MP等节点与 4G 网络通畅状态。
1 | iw dev wlan1 del |
验证使用iw dev mesh0 station dump和iw dev mesh0 mpath dump命令检查已建立的对等链接:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Station e8:4e:06:96:a2:44 (on mesh0)
inactive time: 950 ms
rx bytes: 3530
rx packets: 89
tx bytes: 170
tx packets: 3
tx retries: 0
tx failed: 0
rx drop misc: 9
signal: -30 dBm
signal avg: -30 dBm
Toffset: 1395514681956 us
tx bitrate: 54.0 MBit/s
tx duration: 0 us
rx bitrate: 54.0 MBit/s
rx duration: 0 us
mesh llid: 39650
mesh plid: 29147
mesh plink: ESTAB
mesh airtime link metric: 1906
mesh connected to gate: no
mesh connected to auth server: no
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: 61 seconds
associated at [boottime]: 274.466s
associated at: 1636042217164 ms
current time: 1636042278531 ms1
2
DEST ADDR NEXT HOP IFACE SN METRIC QLEN EXPTIMEDTIM DRET FLAGS HOP_COUNT PATH_CHANGE
一些解释:
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),
无线网桥
即一个路由器做中心路由器,开启dhcp,其他的路由器,自动分配ip地址,关闭dhcp,连接上其他路由器即可。其若非中心路由器脱离网络,其他路由器依旧可以维持通信正常。
管理界面的设置
注意事项:
mesh自组织网络,相较于无线网桥,其所有路由器均开启dhcp,若断开任意一个路由器,均可维持通信正常。
以下是管理界面配置mesh自组织网络,拥有长距离通信,扩充室内通信距离,其鲁棒性更高。
需要注意的是mesh共用同一个信道且ip需要相同。
其每个路由器的lan口需要不同,且开启dhcp,其中一个网卡开ap,一个mesh。
参考:
- 简书
- [1]李贤烈,郭超平,王盛青,靳俊程.基于树莓派的无线Mesh网络组织与实现[J].现代电子技术,2018,41(23):87-92+97.
- 本文链接:http://www.codekp.cn/2021/11/06/openwrt-%E6%A0%91%E8%8E%93%E6%B4%BE/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
您可以点击下方按钮切换对应评论系统。
GitHub Issues