Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gentoo_x86_Handbook.doc
Скачиваний:
38
Добавлен:
19.09.2019
Размер:
924.16 Кб
Скачать

5.B. Хуки функций Wireless Tools

Заметка: Это не будет работать с WPA Supplicant, однако переменные ${ESSID} и ${ESSIDVAR} существуют в функции postup()

В /etc/conf.d/net могут быть определены две функции, которые будут вызваны перед и после функции соединения. Эти функции вызываются с именем интерфейса, так что одна функция может контролировать несколько адаптеров.

Возвращаемое значение для функции preassociate() должно быть 0 (удача), чтобы показать, что конфигурация или деконфигурация интерфейса может продолжиться. Если preassociate() вернет ненулевое значение, то конфигурация интерфейса будет отменена.

Возвращаемое значение для функции postassociate() будет проигнорировано, так как если произойдет ошибка, делать уже нечего.

${ESSID} устанавливается равной ESSID точки доступа, к которой вы подсоединяетесь. ${ESSIDVAR} это ${ESSID} сконвертированная к имени переменной, которое понимает bash.

Код 2.1: Функции pre/post association в /etc/conf.d/net

preassociate() {

# Нижеследующее добавляет две конфигурационные переменные leap_user_ESSID

# и leap_pass_ESSID. Когда они обе сконфигурированы для того ESSID,

# к которому мы подсоединяемся, тогда мы запустим скрипт CISCO LEAP

local user pass

eval user=\"\$\{leap_user_${ESSIDVAR}\}\"

eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"

if [[ -n ${user} && -n ${pass} ]]; then

if [[ ! -x /opt/cisco/bin/leapscript ]]; then

eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"

return 1

fi

einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""

if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then

ewarn "Login Failed for ${user}"

return 1

fi

fi

return 0

}

postassociate() {

# Эта функция здесь больше для комплектности. Я не думаю, что

# что-то полезное можно сделать с помощью нее пока ;-)

return 0

}

Заметка: ${ESSID} и ${ESSIDVAR} не существуют в функциях predown() и postdown().

Заметка: Для более подробной информации о написании своих собственных функций, прочитайте /usr/share/doc/openrc-*/net.example.bz2.

6. Обслуживание сети

6.A. Обслуживание сети

Если вы и ваш компьютер всегда передвигаетесь, у вас не всегда может быть под рукой сетевой кабель или точка доступа. Также, вы можете захотеть, чтобы сеть автоматически начинала работать, когда сетевой кабель втыкается в ваш компьютер, или находится точка доступа.

Здесь вы найдете некоторые инструменты, которые помогут вам это сделать.

Заметка: Этот документ рассказывает только про ifplugd, но существуют альтернативы, например netplug. netplug это более легковесная альтернатива ifplugd, но она работает на основе правильно работающих сетевых драйверов ядра, а многие драйвера не работают правильно.

6.b. ifplugd

ifplugd это демон, который включает и выключает интерфейсы, когда сетевой кабель втыкается или вытыкается. Он также отвечает за детектирование и соединения с точками доступа, если попадается новая.

Код 2.1: Устанавливаем ifplugd

# emerge sys-apps/ifplugd

Кофигурация для ifplugd достаточно проста. Конфигурационный файл находится в /etc/conf.d/net. Запустите man ifplugd для более детальной информации о существующих переменных. Также просмотрите файл /usr/share/doc/openrc-*/net.example.bz2 для большего числа примеров.

Код 2.2: Примерная конфигурация ifplugd

(Замените eth0 на интерфейс, за которым нужно следить)

ifplugd_eth0="..."

(Чтобы следить за беспроводным интерфейсом)

ifplugd_eth0="--api-mode=wlan"

В дополнение к обслуживанию нескольких сетевых соединений, вы можете захотеть программу, которая позволяет работать с несколькими DNS-серверами и конфигурациями. Это очень полезно, если вы получаете свой IP адрес по DHCP. Просто установите openresolv.

Код 2.3: Устанавливаем openresolv

# emerge openresolv

Просмотрите man-страницу openresolv, чтобы узнать больше о его возможностях.

Содержимое данного документа, если другое явно не указано, лицензируется по лицензии CC-BY-SA-2.5 (http://creativecommons.org/licenses/by-sa/2.5). Также применяется документ по импользованию имени и логотипа Gentoo (http://www.gentoo.org/main/en/name-logo.xml?style=printable)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]