wpa_action − сценарий действий wpa_cli
wpa_action IFACE ACTION
wpa_action − это сценарий оболочки, спроектированный для управления набором инструментов ifupdown в соответствии с событиями ACTION от wpa_supplicant. wpa_cli принимает события CONNECTED и DISCONNECTED от wpa_supplicant через сокет управления интерфейсом и передаёт событие ACTION в сценарий wpa_action в качестве аргумента, вместе с именем интерфейса IFACE, для выполнения действия.
wpa_action также принимает переменную окружения от wpa_cli, WPA_ID_STR, содержащую буквенно−цифровую строку идентификации для ТЕКУЩЕГО блока network. WPA_ID_STR предоставляется опцией ’id_str’ блока network wpa_supplicant.conf, и позволяет отобразить событие ACTION на интерфейс LOGICAL, настроенный в файле interfaces.
Если файл interfaces или ifstate пакета ifupdown не найден, wpa_action завершит работу без предупреждений (со статусом 0). wpa_action проверяет существование файлов в следующих местах:
/etc/network/run/ifstate |
||
/run/network/ifstate |
||
/etc/network/interfaces |
Сетевой интерфейс для выполнения действия, например ’eth1’ или ’wlan0’.
ДЕЙСТВИЕ, выполняемое над интерфейсом IFACE.
CONNECTED
wpa_supplicant завершил аутентификацию. Была запущена команда ifup IFACE=WPA_ID_STR, а само действие записано в системный журнал syslog. Применены сетевые настройки логического (LOGICAL) интерфейса WPA_ID_STR.
DISCONNECTED
wpa_supplicant обнаружил отключение. Была запущена команда ifdown IFACE=WPA_ID_STR, а само действие записано в системный журнал syslog. Сетевые настройки логического (LOGICAL) интерфейса WPA_ID_STR отменены.
stop |
Пользователь вручную запросил действие (ACTION) ’stop’ для остановки демона wpa_cli, будет запущена команда ifdown IFACE (если интерфейс IFACE присутствует в файле ifstate) и завершён демон wpa_supplicant. |
||
reload |
Действие (ACTION) ’reload’ может использоваться для перезагрузки файла конфигурации wpa_supplicant, указанного wpa−roam. ’restart’ − синоним ’reload’ и может использоваться вместо него. Действие записывается в журнал /var/log/wpa_action.log. |
В качестве переменной окружения WPA_ID_STR в wpa_action экспортируется буквенно−цифровая строка идентификации, предоставляемая опцией ’id_str’ блока network wpa_supplicant.conf. Если ’id_str’ не указана в ТЕКУЩЕМ блоке network, то в переменную окружения WPA_ID_STR подставляется ’default’.
В wpa_action экспортируется также уникальный идентификатор сети WPA_ID. Это число, назначенное ТЕКУЩЕМУ блоку network wpa_supplicant (network_id).
Единственные причины, по которым пользователю может понадобиться запустить wpa_action − это остановка wpa_cli из управляющего пакета ifupdown и перезагрузка файла wpa_supplicant.conf после редактирования.
wpa_action eth1 stop
С другой стороны, wpa_action указывается как аргумент демона wpa_cli.
wpa_cli −i eth1 −a /sbin/wpa_action −B
Это можно сделать с помощью опции wpa−roam в файле interfaces. wpa−roam принимает один аргумент − файл wpa_supplicant.conf, указанный пользователем.
Методом (METHOD) inet для этого интерфейса должен быть ’manual’, который должен быть соответствующим образом настроен на обработку событий wpa_cli. В качестве запасного варианта поддерживается экземпляр интерфейсов ’default’, который использует метод (METHOD) dhcp inet для сетей без опции ’id_str’, который попытается получить IP−адрес по DHCP. Если одна или более сетей требуют дополнительной настройки, укажите уникальный идентификатор ’id_str’ для каждой из сетей, тогда экземпляры интерфейсов будут использовать значение ’id_str’ в качестве логического (LOGICAL) имени интерфейса. Следующий файл interfaces настроен на использование DHCP для любой сети без ’id_str’, статического IP−адреса для сети с ’id_str’ равным ’home_static’ и DHCP вместе с дополнительной командой post−up для сетей с ’id_str’ равным ’uni’.
Пример файла wpa_supplicant.conf, настроенного на перемещение между 3 различными сетями:
network={
ssid="foo" |
|
id_str="uni" |
|
key_mgmt=NONE |
}
network={
ssid="bar" |
|
id_str="home_static" |
|
psk=123456789... |
}
network={
ssid="" |
|
key_mgmt=NONE |
}
Соответствующий файл interfaces должен содержать логические (LOGICAL) интерфейсы, которые соответствуют каждому уникальному ’id_str’, указанному в файле конфигурации:
iface eth1 inet manual
wpa−driver wext |
|
wpa−roam /etc/wpa_supplicant/wpa_supplicant.conf |
iface default inet dhcp
iface uni inet dhcp
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
wpa_cli(8), wpa_supplicant(8), wpa_supplicant.conf(5), ifup(8), interfaces(5)
Эта страница руководства была написана Келом Моддерманом (Kel Modderman) <kel@otaku42.de> для системы Debian GNU (но может использоваться другими).
Перевод выполнен на сайте коллективных переводов http://translated.by. Авторы перевода Олег Безначев aka saturn721, Владимир Ступин <vladimir@stupin.su>.