在使用 ad-hoc 网络时,如何强制节点使用相同的单元 ID(bssid)?

在使用 ad-hoc 网络时,如何强制节点使用相同的单元 ID(bssid)?

我有 Debian/Ubuntu 主机,我通过临时网络连接,设置如下:

board:~# cat /etc/network/interfaces
auto wlan0
iface wlan0 inet static
        address 10.0.0.2
        netmask 255.255.255.0
        wpa-driver nl80211
        wpa-conf /etc/wpa_supplicant.conf

board:~# cat /etc/wpa_supplicant.conf
# IBSS/ad-hoc network with WPA-None/TKIP.
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
        ssid="adhoc_test"
        mode=1
        frequency=2412
        proto=WPA
        key_mgmt=WPA-NONE
        pairwise=NONE
        group=TKIP
        psk="abcdefgh"
        bssid=F8:D1:11:52:0C:4E
}

这些配置会创建一个临时 WLAN;但是,节点通常会获得不同的单元 ID,因此它们无法相互通信。为了防止这种情况,我添加了一行bssid=F8:D1:11:52:0C:4E;但是,节点在获取单元 ID 时不会获取预定义的单元 ID。

我的问题是如何防止节点获得不同的单元 ID?为什么线路bssid在 ad-hoc 模式下不起作用?

PS 我在内核为 3.2 和 3.4 的 Ubuntu 和 Debian 发行版上尝试了这些设置。我使用的 Wpa_supplicant 版本为 0.7、1.0 和 2.0。均无效。对于芯片组,我使用 Atheros AR9271 芯片组作为 Wi-Fi 模块。

答案1

命令和设置正确。但是,之前wpa_supplicant 2.0不允许您预定义BSSID。因此,您需要将 wpa_supplicant 更新为版本2.0,那么问题就解决了。

顺便说一句,如果您没有BSSID提前定义,每个节点将获得 BSSID 作为其自己的 MAC 地址。然后,当 WLAN 检测到广播时,它们应该合并。如果它们没有合并,则检查它们是否在同一个频道上,或者 SSID 拼写错误。

答案2

我正在尝试通过 ad-hoc 网状网络连接一些 Raspberry Pi。遇到了同样的问题,不同的单元,或称为“单元分裂”。

经过几天的搜索,我发现了这篇很棒的帖子:

http://tiebing.blogspot.com/2009/12/ad-hoc-cell-splitting-re-post-original.html

所以我解决了这个问题,这是我的脚本:

    $IFC "$IFACE" down
    $IWC "$IFACE" mode managed
    $IWC "$IFACE" power off
    $IWC "$IFACE" mode ad-hoc channel 10 rts 250 frag 256
    $IWC "$IFACE" essid whateveryouwant
    $IWC "$IFACE" key off
    $IWC "$IFACE" ap 11:22:33:44:55:66
    $IFC "$IFACE" up
    $IFC "$IFACE" 10.10.10.10/24 up

命令“sudo iwconfig ath0 ap 11:22:33:44:55:66”强制我的 ralink5370 进入指定的 cell-id。

希望这可以帮助。

答案3

使用 ap_scan=2 并从配置中删除 bssid= 行。

相关内容