只有一个 WIFI 网状网络节点可以看到另一个节点(?)。我该如何排除故障?

只有一个 WIFI 网状网络节点可以看到另一个节点(?)。我该如何排除故障?

我正在尝试在 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
  • 在 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 infoifconfig 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

相关内容