В чем разница между `wpa-roam` и` wpa-conf` в файле / etc / network / interfaces?

46

Я разместил вопрос ранее о том , как настроить IP - адрес статический на RPI и в конце концов понял, , наряду с некоторыми другими , что ответ на изменение wpa-roamк wpa-confпри наведении на /etc/wpa_supplicant/wpa_supplicant.conf, но почему это работает?

т.е. когда у меня есть это в моем /etc/network/interfacesфайле:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    gateway 192.168.0.1
    broadcast 192.168.0.255
    network 192.168.0.0
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

Предполагая, что /etc/wpa_supplicant/wpa_supplicant.confон был правильно настроен, этот метод не работает.

Это соответствующий вывод iwconfig:

wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.437 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

А также из ifconfig:

wlan0     Link encap:Ethernet  HWaddr ec:1a:59:64:3a:36  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:847 errors:0 dropped:1029 overruns:0 frame:0
          TX packets:759 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:677394 (661.5 KiB)  TX bytes:133345 (130.2 KiB)

Но все волшебно начинает работать после изменения wpa-roamв wpa-confи запустить sudo /etc/init.d/networking restart. Когда бы вы использовали wpa-roam, и когда вы бы использовали wpa-conf?

3cheesewheel
источник

Ответы:

30

wpa-roaming это метод, с помощью которого вы можете просматривать и подключаться к беспроводным сетям.

Результатом следующей настройки является то, что, если кабель Ethernet не подключен, wlan0 имеет преимущество и подключает вас к желаемой беспроводной сети или к доступной открытой беспроводной сети или предварительно определенной беспроводной сети. Если вы подключите кабель Ethernet, кабельное сетевое соединение немедленно отключит доступ WiFi, а eth0 подключит вас к кабельной сети. Отключив сетевой кабель, беспроводное соединение снова станет доступным.

Источник: http://manual.aptosid.com/en/inet-setup-en.htm

Я предполагаю, что wpa-confэто статическая конфигурация, которая не нужна для роуминга через сетевые интерфейсы. Я не мог найти соответствующий и подробный документ для этого.

Кстати у меня такая же проблема с моей конфигурацией WiFi. Мой WiFi не работает, когда проводной Ethernet отключен. Поэтому я изменил wpa-roam на wpa-conf, как и вы, это сработало.

gurcanozturk
источник
1
Я подозреваю, что если вы хотите использовать wpa-roam, вам нужно установить wlan0 на manual, а не на dhcp или static. Это просто теория, хотя.
Лоуренс
5
Да это верно. Роуминг означает, что вы разрешаете беспроводному интерфейсу пытаться подключаться к другим точкам доступа, находящимся в «роуминге», но если у вас есть только 1 набор, это означает, что он попытается «подключиться» к нему, если что-то пойдет не так. С wpa-conf он не будет переподключаться по капле.
Петр Кула
@ Лавренс, действительно. Хотя это больше, чем теория: сообщается, когда вы бежитеsudo /etc/init.d/networking restart
Йохем Шуленклоппер
@jschulenklopper Ах. даже не осознавал этого. Я вообще не пользуюсь, /etc/init.d/networking restartха-ха.
Лоуренс
3
Еще одно отличие, которое следует отметить, заключается в том, что для wpa-roam ifplugdразъединений, wlan0когда eth0он подключен. Это настраиваемое поведение и может быть специфичным для RaspberryPI.
Домен
4

Также можно найти полное объяснение двух режимов работы (управляемый и роуминг) для wpa_supplicant в его локально установленном файле документации - который можно просмотреть (онлайн-версия [более старой?] Здесь ):

zless /usr/share/doc/wpa_supplicant/README.modes.gz

В нем поясняется, что хотя управляемый режим позволяет просто подключаться к одной настроенной сети WiFi, режим роуминга позволяет подключаться к нескольким сетям WiFi с потенциально различными сетевыми конфигурациями, которыми можно управлять, добавив специальную опцию, id_strкоторая затем сопоставляется с соответствующими записями в файл конфигурации сети - указанный в /etc/network/interfacesфайле. например:

allow-hotplug eth1
iface eth1 inet manual
    wpa-driver wext
    wpa-roam /etc/wpa_supplicant/wpa_roam.conf

# id_str="uni"
iface uni inet dhcp

# id_str="home_static"
iface home_static inet static
        address 192.168.0.20
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

Где соответствующие Wi-Fi сети указаны в wpa-roamфайле. например /etc/wpa_supplicant/wpa_roam.conf:

network={
        ssid="foo"
        key_mgmt=NONE
        # this id_str will notify /sbin/wpa_action to 'ifup uni'
        id_str="uni"
}

network={
        ssid="bar"
        psk=123456789...
        # this id_str will notify /sbin/wpa_action to 'ifup home_static'
        id_str="home_static"
}

Таким образом, сеть "uni" будет использовать DHCP, а сеть "home_static" будет использовать статический IP-адрес 192.168.0.20. Хотя не нужно использовать эту id_strопцию, и устройство будет просто использовать значения по умолчанию (см. Файл документации).

Пирз
источник