我正在尝试在 PC 和 Rasberry Pi 4b 上/之间设置 WiFi 网状网络(不使用机载 wifi)。但似乎在PC节点方面遇到了障碍。
出于某种原因,似乎只有 Rasberry Pi 能够看到 PC 节点,但 PC 似乎看不到 RasberryPi 节点。当我iw dev mesh0 station dump
在两者上运行时,只有 Pi 给我任何输出。(见下文)
一些说明:
两台电脑都运行网络管理器。但我已将使用的 WIFI 设备设置为不受网络管理器管理通过其永久 MAC 地址(使用 确认
ethtool --show-permaddr <interface>
),接口设备名称。(包括mesh0
按名称创建的设备)最初遵循的指南是mjuenema.github.io/80211s_wireless_mesh/ (存档快照)
值得注意的摘录示例:
$ sudo iw dev wlan1 interface add mesh0 type mp mesh_id MYMESHID $ sudo iw dev mesh0 set channel 4 $ sudo ifconfig wlan1 down $ sudo ifconfig mesh0 up $ sudo ip addr add 10.1.100.10/24 dev mesh0
我已经确认杀戮双方互不干涉。
PC USB wifi 适配器 LED 闪烁,好像实际上可能有一些(空转)活动正在进行中..至少表明它是活跃的..
物理距离仅为约 4-5 米,因此我相信可以排除信号强度问题。
使用的操作系统是: (信息来自uname -r
)
- PC 正在运行 Arch(内核5.7.12-禅1-1-禅)
- Pi 运行的是 ARM Arch(内核5.4.51-1-拱门)
使用的网络设备有: (信息来自lsusb
)
- 在电脑上(一些 Jensen USB 加密狗):Ralink Technology, Corp. 802.11 n WLAN
- 视觉上看起来是:http://www.jensenofscandinavia.com/en/downloads/alnano/
- 它似乎正在使用
rt2800usb
司机v2.3.0 (编号 148f:8070 / RT8070) - 目前无法在线找到更详细的规格/文档。
- 在 Pi 上(一些外部 USB wifi):Ralink Technology, Corp. RT2870/RT3070 无线适配器
- 似乎也在使用
rt2800usb
司机v2.3.0 (编号 148f:3070 / RT3070) - (目前不确定品牌和型号)
- 似乎也在使用
跑步iw dev mesh0 station dump
,正如导游随后,在电脑上产生根本没有输出,甚至没有任何错误消息,并且退出退出代码 0..我发现这有点出乎意料而且奇怪..
但是在 Pi 上,我会得到类似以下内容的输出:
Station 34:21:09:07:36:e2 (on mesh0) # WHICH IS AFAIK THE PCs EXPECTED 'mesh0' MAC (as shown further down below)
inactive time: 710 ms
rx bytes: 293888
rx packets: 7168
tx bytes: 846996
tx packets: 13234
tx retries: 42352
tx failed: 13234
rx drop misc: 337
signal: -53 dBm
signal avg: -53 dBm
Toffset: 18446744073676093275 us
tx bitrate: 1.0 MBit/s
tx duration: 0 us
rx duration: 0 us
mesh llid: 19732
mesh plid: 0
mesh plink: OPN_SNT
mesh local PS mode: UNKNOWN
mesh peer PS mode: UNKNOWN
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
connected time: 3935 seconds
associated at [boottime]: 3549.455s
associated at: 18446725625934785637 ms
current time: 18446744072675308235 ms
我很困惑为什么 PC 不生产任何输出。
(尽管据我所知,就我所知,这甚至可能是正常行为;两个节点中只有一个会报告看到另一个节点。因为当我之前尝试 batman-adv mesh 时也发生过非常类似的事情。Pi 会报告看到 PC 槽batctl
,但 PC 上没有列出任何内容。)
在两台计算机上运行iw mesh0 info
、ifconfig mesh0
和得到的iwconfig
结果为:iw phy phy<X> info
在 PI 上:
Interface mesh0
ifindex 5
wdev 0x100000002
addr 00:0f:02:2d:cc:45
type mesh point
wiphy 1
channel 4 (2427 MHz), width: 20 MHz (no HT), center1: 2427 MHz
txpower 20.00 dBm
。
mesh0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.20.0.2 netmask 255.252.0.0 broadcast 10.23.255.255
inet6 fe80::20f:2ff:fe2d:cc45 prefixlen 64 scopeid 0x20<link>
ether 00:0f:02:2d:cc:45 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 188 bytes 28372 (27.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
。
mesh0 IEEE 802.11 Mode:Auto Tx-Power=20 dBm
Retry short long limit:2 RTS thr:off Fragment thr:off
Power Management:off
wlp1s0u1u2 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short long limit:2 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
。
(全iw phy phy1 info
输出https://pastebin.com/raw/sJR1eDsc)
在PC上:
Interface mesh0
ifindex 7
wdev 0x2
addr 34:21:09:07:36:e2
type mesh point
wiphy 0
channel 4 (2427 MHz), width: 20 MHz (no HT), center1: 2427 MHz
txpower 20.00 dBm
。
mesh0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.20.0.1 netmask 255.252.0.0 broadcast 10.23.255.255
inet6 fe80::3621:9ff:fe07:36e2 prefixlen 64 scopeid 0x20<link>
ether 34:21:09:07:36:e2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 8 overruns 0 frame 0
TX packets 701 bytes 150487 (146.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
。
wlp3s0f0u3 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short long limit:2 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
mesh0 IEEE 802.11 Mode:Auto Tx-Power=20 dBm
Retry short long limit:2 RTS thr:off Fragment thr:off
Power Management:off
。
(全iw phy phy0 info
输出https://pastebin.com/raw/9hD1G6YZ)
我不确定如何进一步排除故障...或者甚至不知道这是否真的完全正常。(不过我想先排除它是潜在问题的可能性,然后再进一步使事情复杂化)
可能是因为比较旧的詹森USB 适配器?即使它报告支持“网格点”模式?
我很感激任何种类。注意:我对网状网络(或一般的高级网络)还很陌生
如果还有任何其他可能有用的信息需要提供,请通过评论告知我。
以下是一些可能有价值的“自我提醒”链接:
答案1
经过多次挫折后,我认为可以肯定地说,我的问题可能是由以下因素造成的:Jensen USB 加密狗、rt2800usb固件驱动程序(使用该特定加密狗),也许是关于特定内核版本的一些信息...也许是 PC 本身,我真的不知道。
当我最终测试了一个(rtl8192cu)同一台 PC 上的 Netgear 加密狗、PC 和 Pi 之间的网状网络立即开始工作。
并且由于某些奇怪的原因,当我后来在另一台 PC 上尝试时,Jensen USB 加密狗上的网格也开始工作。(运行 Arch,内核 5.7.12-arch1-1)
一旦发现它们全部正常工作,设置每个节点就变得轻而易举了。
作为参考,下面是我打算用作 dhcpd 等的节点的设置方式:
iw phy phy0 interface add mesh0 type mesh mesh_id OpenMesh
ifconfig mesh0 down
iw dev mesh0 set channel 7 # switch to ch.7, from the default ch.1
ifconfig mesh0 up
ifconfig mesh0 10.8.0.1 netmask 255.252.0.0 broadcast 10.11.255.255
几秒钟后,该节点就可以被其他节点看到,反之亦然。(我在每个节点上运行watch iw dev mesh0 mpath dump
,因此不必一直手动更新它). 导致三个节点上分别弹出类似这样的内容:
DEST ADDR NEXT HOP IFACE SN METRIC QLEN EXPTIME DTIM DRET FLAGS
00:0f:02:2d:cc:45 00:0f:02:2d:cc:45 mesh0 246 598 0 0 100 0 0x14
10:0d:7f:b8:61:68 10:0d:7f:b8:61:68 mesh0 3523 2581 0 0 0 0 0x14