WPA_ACTION(8)

НАЗВАНИЕ
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
	/var/run/network/ifstate
	/etc/network/interfaces

IFACE
Сетевой интерфейс для выполнения действия, например 'eth1' или 'wlan0'.

ACTION
ДЕЙСТВИЕ, выполняемое над интерфейсом 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, Владимир Ступин <wheel69@yandex.ru>