wpa_action - сценарий действий wpa_cli
Action
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 /var/run/network/ifstate /etc/network/interfaces
Сетевой интерфейс для выполнения действия, например ’eth1’ или ’wlan0’.
ДЕЙСТВИЕ, выполняемое над интерфейсом IFACE.
CONNECTED wpa_supplicant завершил аутентификацию. Была запущена команда ifup IFACE=WPA_ID_STR, а само действие записано в журнал /var/log/wpa_action.IFACE.log. Применены сетевые настройки логического (LOGICAL) интерфейса WPA_ID_STR. DISCONNECTED wpa_supplicant обнаружил отключение. Была запущена команда ifdown IFACE=WPA_ID_STR, а само действие записано в журнал /var/log/wpa_action.log. Сетевые настройки логического (LOGICAL) интерфейса WPA_ID_STR отменены. stop Пользователь вручную запросил действие (ACTION) ’stop’ для остановки демона wpa_cli, будет запущена команда ifdown IFACE (если интерфейс IFACE присутствует в файле ifstate) и завершён демон wpa_supplicant. Действие записывается в журнал /var/log/wpa_action.log. ’down’ - синоним ’stop’ и может использоваться вместо него. 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, Владимир Ступин <wheelof@gmail.com>
WPA_ACTION (8) | 26 мая 2006 |