具有wpa_supplicant / WPA2配置的Raspberry Pi 3 Ad-Hoc无线网络


1

我需要帮助以使用wpa_supplicant保护Ad-Hoc网络。

我一直在尝试使用板载WiFi适配器在Raspberry PI 3之间设置Ad-Hoc无线网络。

pi@raspberrypi3bare:~ $ iw list
Wiphy phy0
    max # scan SSIDs: 10
    max scan IEs length: 2048 bytes
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Device supports T-DLS.
    Supported Ciphers:
        * WEP40 (00-0f-ac:1)
        * WEP104 (00-0f-ac:5)
        * TKIP (00-0f-ac:2)
        * CCMP (00-0f-ac:4)
        * CMAC (00-0f-ac:6)
    Available Antennas: TX 0 RX 0
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * P2P-client
         * P2P-GO
         * P2P-device
    Band 1:
        Capabilities: 0x1020
            HT20
            Static SM Power Save
            RX HT20 SGI
            No RX STBC
            Max AMSDU length: 3839 bytes
            DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 16 usec (0x07)
        HT TX/RX MCS rate indexes supported: 0-7
        Bitrates (non-HT):
            * 1.0 Mbps
            * 2.0 Mbps (short preamble supported)
            * 5.5 Mbps (short preamble supported)
            * 11.0 Mbps (short preamble supported)
...
            * 54.0 Mbps
        Frequencies:
            * 2412 MHz [1] (20.0 dBm)
...
            * 2472 MHz [13] (20.0 dBm)
            * 2484 MHz [14] (disabled)
    Supported commands:
         * new_interface
         * set_interface
         * new_key
         * start_ap
         * join_ibss
         * set_pmksa
         * del_pmksa
         * flush_pmksa
         * remain_on_channel
         * frame
         * set_channel
         * tdls_oper
         * start_sched_scan
         * start_p2p_device
         * crit_protocol_start
         * crit_protocol_stop
         * connect
         * disconnect
    Supported TX frame types:
         * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
    Supported RX frame types:
         * managed: 0x40 0xd0
         * P2P-client: 0x40 0xd0
         * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * P2P-device: 0x40 0xd0
    software interface modes (can always be added):
    valid interface combinations:
         * #{ managed } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1,
           total <= 3, #channels <= 2
         * #{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1,
           total <= 4, #channels <= 1

根据以上所述,支持P2P(Ad-Hoc)。

我的网络接口配置如下所示:

auto wlan0
iface wlan0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        wireless-channel 11
        wireless-essid FooBar2
        wireless-mode ad-hoc
#       wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

如果没有启用wpa_supplicant,我可以在两个不同的Pi(两个不同的IP地址)上启动wlan0,它可以正常工作。我可以ping另一个Pi(反之亦然)。

当我尝试在它上面运行wpa_supplicant时(在两个Pi'es上),我无法让它们工作。

wpa_supplicant配置文件如下所示:

pi@raspberrypi3bare:~ $ sudo cat /etc/wpa_supplicant/wpa_supp.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=2
network={
        ssid="FooBar2"
        key_mgmt=WPA-PSK
        psk=102ea4041e1612cc5905c4b9008f5e9aaebe91d20792ca16ab7754fd137865a8
        mode=1
        proto=RSN
        group=CCMP
        pairwise=CCMP
        frequency=2462
}

启动命令的输出:

pi@raspberrypi3bare:~ $ sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supp.conf -D nl80211 -i wlan0
Successfully initialized wpa_supplicant
Note: nl80211 driver interface is not designed to be used with ap_scan=2; this can result in connection failures
wlan0: Trying to associate with SSID 'FooBar2'
wlan0: Associated with 7e:6c:29:3d:49:eb
wlan0: CTRL-EVENT-CONNECTED - Connection to 7e:6c:29:3d:49:eb completed [id=0 id_str=]
WMM AC: Missing IEs
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0


pi@raspberrypi3bare:~ $ ping 192.168.0.30
PING 192.168.0.30 (192.168.0.30) 56(84) bytes of data.
From 192.168.0.10 icmp_seq=1 Destination Host Unreachable

其他细节:

pi@raspberrypi3bare:~ $ wpa_supplicant -v
wpa_supplicant v2.6
Copyright (c) 2003-2016, Jouni Malinen <j@w1.fi> and contributors
pi@raspberrypi3bare:~ $ uname -a
Linux raspberrypi3bare 4.4.21-v7+ #911 SMP Thu Sep 15 14:22:38 BST 2016 armv7l GNU/Linux

知道我可以改变什么来让wpa_supplicant工作吗?


您为什么要设置ad hoc网络?您可以实现使用hostpad实现的任何功能,包括WP2-PSK身份验证,没有任何问题。
MariusMatutiae 2016年

Answers:


1

顺便说一下:P2P是Wi-Fi Direct,这与Ad Hoc完全不同。Ad Hoc仅指IBSS。本答案的其余部分假设您的意思是IBSS,而不是P2P。

可以通过IBSS进行WPA2-PSK认证(IEEE 802.11标准定义了如何实现),但实现起来有点复杂,所以我不确定它有多广泛支持。如果wpa_supplicant不支持它,我不会感到惊讶,因为它要求请求者切换角色并在某些情况下成为身份验证者,并且在其他情况下仍然充当请求者,具体取决于哪个设备具有更高的MAC地址。通常,WPA2-PSK身份验证器的角色由AP模式下的设备上的hostapd播放。我不确定wpa_supplicant中是否存在任何验证器代码。

尝试使用40位WEP进行Ad Hoc(IBSS)。一旦你有了这个工作,研究wpa_supplicant是否支持WPA上的WPA2-PSK,以及如何设置它。


你是正确的假设IBSS。今晚我将首先尝试与WEP合作。查看wpa_supplication配置文件中的docs,我觉得应该支持IBSS w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf(包含示例的文件底部)的WPA2-PSK 。谢谢你回复Spiff,非常感谢!
greggigon 2016年

@greggigon我同意看起来wpa_supplicant在IBSS上支持WPA2-PSK(之前我在移动设备上或者我已经验证了自己)。所以现在我要说,也许你会看到关于如何使用ap_scan=2该驱动程序导致连接失败的警告。您链接的示例.conf文件包含有关它的更多信息。如果ap_scan=1适合您,请将其作为您自己的答案发布并接受您自己的答案。
Spiff 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.