树莓派搭建mesh网络

作者: 东京的雨不会淋湿首尔 | 来源:发表于2019-10-31 19:35 被阅读0次

    设备:

    树莓派3b+
    wifi:TL-WN722N V1

    参考资料:

    OpenWRT 搭建802.11s Mesh网络
    HOWTO
    open-mesh

    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 dumpiw 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),

    相关文章

      网友评论

        本文标题:树莓派搭建mesh网络

        本文链接:https://www.haomeiwen.com/subject/ukanmctx.html