ROS多机通信(四)——Ubuntu 网卡 Mesh 模式配置指南

引言

使用Ad-hoc加路由协议和直接Mesh模式配置网卡实现的网络结构是一样的,主要是看应用选择,

  • Ad-Hoc模式 + B.A.T.M.A.N. / OLSR
    优点:灵活性高,适合移动性强或需要优化的复杂网络。
    缺点:配置复杂,需手动管理路由协议。
  • Mesh模式(802.11s)
    优点:配置简单,内置路由功能,易于部署。
    缺点:路由协议标准化,灵活性较低。
    在实现机器人之间的通信的时候,和为了适应大部分的场景我还是建议使用Ad-Hoc模式 + B.A.T.M.A.N. / OLSR
    这里是另外一篇文章的链接:
    Ubuntu Ad-Hoc 组网通信配置指南

基本概念

Mesh网络是去中心化的,功能更强大。节点不仅可以直接通信,还可以通过其他节点中继数据。每个节点都能充当路由器,自动发现和维护与其他节点的连接路径。这种中继机制使Mesh网络的覆盖范围更大,即使某些节点失效,网络仍能通过其他路径继续运行。

简介

本指南将帮助您在 Ubuntu 系统上将无线网卡配置为 Mesh 模式(基于 IEEE 802.11s 标准),以加入或创建一个 Mesh 网络。

前提条件

  • 硬件:无线网卡需支持 Mesh 模式(可通过 iw list 检查是否支持 mesh point)。
  • 软件:Ubuntu 系统(建议 20.04 LTS 或更高版本),并安装 iw 工具。
  • 权限:需要管理员权限(使用 sudo)。

配置步骤

1. 确认网卡支持 Mesh 模式

运行以下命令,检查无线网卡是否支持 Mesh 模式:

bash 复制代码
iw list

在输出中查找 Supported interface modes,确认是否有 mesh point。若支持,继续后续步骤;若不支持,则需更换网卡。

2. 安装 iw 工具

若系统中未安装 iw,执行以下命令安装:

bash 复制代码
sudo apt-get update
sudo apt-get install iw

3. 查看无线网卡名称

运行以下命令,确认无线网卡的接口名称(通常为 wlan0wlp2s0):

bash 复制代码
ip link

记下您的网卡名称,后续步骤将以 wlan0 为例。

4. 关闭无线网卡

在配置前,先关闭网卡:

bash 复制代码
sudo ip link set wlan0 down

5. 设置为 Mesh 模式

将网卡设置为 Mesh Point 模式:

bash 复制代码
sudo iw dev wlan0 set type mp

6. 配置 Mesh ID 和频道

为 Mesh 网络设置标识符(Mesh ID)和频道:

bash 复制代码
sudo iw dev wlan0 set meshid MyMeshNetwork
sudo iw dev wlan0 set channel 6
  • MyMeshNetwork:自定义 Mesh ID,同一网络中的设备需保持一致。
  • 6:频道号(范围 1-11),需与其他设备一致。

7. 开启无线网卡

重新启用网卡:

bash 复制代码
sudo ip link set wlan0 up

8. 分配 IP 地址

为 Mesh 接口分配静态 IP 地址(例如 192.168.1.1):

bash 复制代码
sudo ip addr add 192.168.1.1/24 dev wlan0

同一网络中的其他设备可设置为 192.168.1.2 等,确保在同一网段(192.168.1.0/24)。

9. 验证配置

检查网卡是否成功配置为 Mesh 模式:

bash 复制代码
iw dev wlan0 info

确认 type 显示为 mesh point

完整命令示例

以下是以 wlan0 为例的完整配置流程:

bash 复制代码
# 确认网卡支持 Mesh 模式
iw list

# 关闭网卡
sudo ip link set wlan0 down

# 设置为 Mesh 模式
sudo iw dev wlan0 set type mp

# 设置 Mesh ID 和频道
sudo iw dev wlan0 set meshid MyMeshNetwork
sudo iw dev wlan0 set channel 6

# 开启网卡
sudo ip link set wlan0 up

# 分配 IP 地址
sudo ip addr add 192.168.1.1/24 dev wlan0

# 验证配置
iw dev wlan0 info

注意事项

  • Mesh ID 和频道:所有设备的 Mesh ID 和频道必须一致。
  • IP 地址:确保设备 IP 在同一网段且不冲突。
  • 安全性:默认配置无加密,生产环境建议使用 wpa_supplicant 配置加密。
  • 驱动支持:部分网卡可能需要特定驱动,配置前请查阅硬件文档。

故障排除

  • 无法连接:

    • 检查 Mesh ID 和频道是否一致。
    • 确认 IP 地址是否在同一网段。
  • 查看配置:

    bash 复制代码
    iw dev wlan0 info    # 查看 Mesh 配置
    ip addr show wlan0   # 查看 IP 配置

总结

通过以上步骤,您可以在 Ubuntu 上快速配置无线网卡为 Mesh 模式并加入 Mesh 网络。Mesh 网络提供去中心化的通信方式,适用于多种场景。希望本指南对您有所帮助!

相关推荐
大聪明-PLUS24 分钟前
优雅的操作系统开发:用现代 C++ 编写操作系统内核(不使用宏)。第一部分——HAL 为王。
linux·嵌入式·arm·smarc
qq_4557608542 分钟前
Docker - 镜像
linux·运维·docker
共享家952744 分钟前
从 Redis 到分布式架构
redis·分布式·架构
m0_534875051 小时前
Ditto局域网同步功能实现宿主机和VMware虚拟机之间的复制粘贴共享
linux·运维·服务器
RisunJan1 小时前
Linux命令-hdparm命令(获取和设置硬盘参数)
linux·运维·服务器
骄傲的心别枯萎1 小时前
RV1126 NO.58:ROCKX+RV1126人脸识别推流项目之读取人脸数据库并保存到map
linux·数据库·计算机视觉·音视频·rv1126
维度攻城狮1 小时前
宿主机休眠后再启动,vmware虚拟机中Ubuntu系统无法联网问题解决办法
运维·服务器·ubuntu·vmware
羑悻的小杀马特1 小时前
【Linux篇章】再续传输层协议TCP:用技术隐喻重构网络世界的底层逻辑,用算法演绎‘网络因果律’的终极推演(通俗理解TCP协议,这一篇就够了)!
linux·网络·后端·tcp/ip·tcp协议
博语小屋1 小时前
Socket 编程TCP:多线程远程命令执行
linux·网络·c++·网络协议·tcp/ip
2501_940198691 小时前
【前瞻创想】Kurator云原生实战:打造企业级分布式云原生基础设施的完整指南与深度实践
分布式·云原生