树莓派配置双网卡分别为AD HOC和AP模式

发布于:2024-05-09 ⋅ 阅读:(25) ⋅ 点赞:(0)

树莓派配置双网卡分别为AD HOC和AP模式

  1. 需求说明:为了实现分级网络管理,将多个无人机分簇,簇间使用AD HOC进行无中心自组织的网络,簇内使用AP-AC模式进行中心化网络。因此,需要配置一台设备,同时完成AD HOC+AP模式的网络配置。
  2. 配置说明:树莓派3B+,安装了64位官方操作系统,插上了一个USB网卡RTL8811CU。
  3. 预期效果
    a. AD HOC可以ping通对方
    b. AP模式可以连接

一、树莓派更新源

  1. 更新源
    a. 首先使用 uname -a 查看系统,结果如下
    在这里插入图片描述
    b. 依照该教程进行源的替换:树莓派官方32位和64位系统换源

  2. 更新和安装库
    a. 更新

sudo apt-get update
sudo apt-get upgrade

b. 安装 dnsmasq

sudo apt update
sudo apt install dnsmasq
  1. 安装USB 网卡驱动
    参考我的另外一个博客,进行安装。

  2. 查看网卡和支持类型

ifconfig
iwconfig
iw list

二、配置wlan0为AD HOC模式

  1. 在配置文件中进行调整:
sudo nano /etc/network/interfaces

使用如下内容来替换文件中的 wlan0 配置部分:

auto wlan0
iface wlan0 inet static
    address 192.168.100.2
    netmask 255.255.255.0
	network 192.168.100.0
    broadcast 192.168.100.255
    wireless-channel 1
    wireless-essid CPS-IBSS
    wireless-mode ad-hoc
  1. 修改无线配置文件:编辑 /etc/wpa_supplicant/wpa_supplicant.conf,确保不包含任何与AP相关的配置。
  2. 使用以下命令重启无线服务:
sudo ifdown wlan0
sudo ifup wlan0

三、配置wlan1为AP模式

  1. 创建或编辑hostapd的配置文件 /etc/hostapd/hostapd.conf,使用以下内容:
interface=wlan1
driver=nl80211
ssid=CPS-AP-A
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=CPS123456
wpa_pairwise=TKIP
rsn_pairwise=CCMP
  1. 编辑 /etc/default/hostapd 文件,指定配置文件位置:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
  1. 编辑 /etc/dnsmasq.conf,添加以下内容:
interface=wlan1
dhcp-range=192.168.101.10,192.168.101.100,255.255.255.0,24h
  1. 设置静态 IP 地址。编辑 /etc/dhcpcd.conf 文件,添加以下配置:
interface wlan1
static ip_address=192.168.101.1/24
nohook wpa_supplicant
  1. 启动和启用服务
    a. 重启 dhcpcd
sudo service dhcpcd restart

b. 启动 hostapd 和 dnsmasq

sudo systemctl start hostapd
sudo systemctl enable hostapd
sudo systemctl restart dnsmasq
  1. 配置防火墙(如果需要)
    如果树莓派连接到互联网,并且您希望分享互联网连接,可能需要设置NAT规则:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

编辑 /etc/rc.local 文件,在“exit 0”之前添加以下行以恢复IPTABLES规则:

iptables-restore < /etc/iptables.ipv4.nat

四、测试结果

  1. 重启之后,有一定几率出现wlan0没有变为AD HOC模式,而是managed模式。
  2. 如果一切正常,则是AD HOC模式+AP模式。HOC之间可以互相ping通,AP模式也可以被其他设备连接并互相ping通。
    问题
    之前使用了三台设备组成AD HOC网络,可以正常ping通,但是有如下问题:
  3. 必须3台设备同时在线,一台设备关闭ad hoc或者关机,另外两台就无法ping通。
  4. 尝试更换essid名字、ip,无法解决。
  5. 尝试使用动态ad hoc网络协议,不成功。
  6. 尝试清除路由缓存,不成功。
  7. 总之就是问题不知道出现在哪里,按理说AD HOC自组织网络,怎么断掉一个就不行了呢?
    计划尝试解决
  8. 难道是至少三台设备?后续用4台设备,然后断开一台设备进行测试。

五、最终测试结果

  1. 对上述的猜测进行测试,果然是最少需要三台设备才能组成AD HOC网络。测试过程为,准备4台设备正常ping,去除任意一台也可以正常ping,但是同时去除2台就无法ping成功。

网站公告

今日签到

点亮在社区的每一天
去签到