1.2 2005-08-02
Введение

В настоящее время поддерживается подключение к беспроводной сети с помощью wireless-tools или wpa_supplicant. Важно помнить, что подключение к беспроводным сетям настраивается глобально, а не для определённого интерфейса.

wpa_suppliant — лучший выбор, но он поддерживает не все драйверы. Список поддерживаемых драйверов находится на сайте wpa_suppliant. Кроме того, сейчас wpa_supplicant может подключаться только к тем сетям, на SSID которых настроен.

wireless-tools поддерживает практически все платы и драйверы, но не способен подключаться к точкам доступа, работающим исключительно с WPA.

Драйвер linux-wlan-ng в данный момент не поддерживается в baselayout. Это из-за того, что в linux-wlan-ng своя собственная программа установки и настройки, которая ни на что не похожа. Разработчики linux-wlan-ng, по слухам, собираются перейти на установку как в wireless-tools; когда это произойдет, вы сможете использовать linux-wlan-ng с baselayout.
Запросчик WPA

Запросчик WPA (WPA Supplicant) — пакет, позволяющий подсоединяться к точкам доступа с протоколом WPA. Его настройка проходит достаточно гладко, и пакет работает достаточно стабильно, хотя находится на стадии бета-тестирования.

# emerge net-wireless/wpa_supplicant
Для работы wpa_supplicant в ядре необходимо включить CONFIG_PACKET.

Теперь нам необходимо настроить /etc/conf.d/net для работы с wpa_supplicant. Если обе программы установлены, по умолчанию работает wireless-tools.

# Выбор wpa_supplicant
modules=( "wpa_supplicant" )

# Очень важно указать wpa_supplicant какой драйвер нужно
#использовать,так как, программа не может подобрать его самостоятельно.

wpa_supplicant_eth0="-Dmadwifi"
Если Вы используете драйвер host-ap, вам понадобится сначала установить карту в режим Managed,прежде чем она сможет работать правильно с wpa_supplicant. Для этого вы можете использовать iwconfig_eth0="mode managed" в /etc/conf.d/net.

Это довольно просто, не так ли? Однако, необходимо настроить саму программу wpa_supplicant, что является более сложной задачей. Сложность задачи зависит от степени защиты точки доступа, к которой вы хотите подключиться. Нижеприведённый упрощённый пример взят из /etc/wpa_supplicant.conf.example.

#Следующую строку нельзя изменять, иначе прграмма не сможет
#работать
ctrl_interface=/var/run/wpa_supplicant

#Убедитесь, что только root имеет досткп к настройкам WPA.

ctrl_interface_group=0

#Пусть wpa_supplicant заботится о сканировании и выборе точки
#доступа. 
ap_scan=1

#Простой случай: WPA-PSK, PSK также как ASCII парольная фраза,
#допускает все правильные коды.
network={
  ssid="simple"
  psk="very secret passphrase"
  #Выбираем высокий приоритет. 
  priority=5
}

# Также как и в предыдущем примере, но с запросом сканирования
#SSID (для точек доступа которые отклоняют широковешательный SSID)
network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}

#Используется только WPA-PSK. Принимется любая действующая комбинация
#кодов. 

network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# Подключение с использованием открытого текста (не WPA, не IEEE
#802.1X)

network={
  ssid="plaintext-test"
  key_mgmt=NONE
}

#Подключение с использованием общего WEP ключа (не WPA, не IEEE
#802.1X)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# Подключение с использованием общего WEP ключа (не WPA, не IEEE
#802.1X) использование общего ключа IEEE 802.11 для идентификации
network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# IBSS/ad-hoc сеть с  WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}
Wireless tools Начальная установка и режим Managed

Wireless Tools предоставляет общий путь для настройки базовых беспроводных интерфейсов до уровня безопасности WEP. Хотя WEP является слабым методом защиты, он более предпочтителен.

Для настройки Wireless Tools можно использовать несколько основных вариантов. Файл типовых настроек, приведённый ниже, содержит все, что вам необходимо. Нужно помнить, что отсутствие конфигурации означает подключение к не шифрованной точке доступа. Программа попытается подключить вас к чему-нибудь.

# emerge net-wireless/wireless-tools
Хотя вы можете хранить ваши параметры настройки беспроводной сети в /etc/conf.d/wireless, это руководство рекомендует хранить ваши настройки в /etc/conf.d/net Для консультации смотрите имя переменной.
# iwconfig предпочтительнее, чем wpa_supplicant
modules=( "iwconfig" )

# Конфигурация ключей WEP для точек доступа именуется ESSID1
#и ESSID2
# Вы можете конфигурировать до 4 WEP ключей, но только 1 может
#работать в любое время, таким образом мы присваиваем ключу установки  [1]
#индекс по умолчанию  [1], а затем снова меняем активный ключ на  [1] . Это
#делается в случае, если вы определяете другой ключ ESSID для пользования WEP
#ключей, отличающихся от  [1]. Если перед ключом стоит s, это значит, что это
#ключ ASCII, иначе HEX ключ
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# Нижеприведенное работает только при поиске доступной точки
#доступа.

# Иногда видны несколько точек доступа, то есть мы должны
#задать предпочтительный порядок соединения.
preferred_aps=( "ESSID1" "ESSID2" )
Точная настройка выбора точки доступа

Вы можете добавить несколько дополнительных параметров для более точной настройки выбора точки доступа, но обычно этого не требуется.

Вам решать, подключаться к выбранным точкам доступа или нет. Если ваши настройки не действуют, но есть возможность подключиться к не шифрованной точке доступа, то такое соединение произойдёт. Оно будет управляться переменной associate_order. Ниже приводится таблица значений и описание действий.

anyПоведение по умолчаниюpreferredonlyСоединяться только с точками доступа из спискаforcepreferred Мы принудительно подключимся к точкам доступа в заданной последовательности, если они не будут обнаружены при сканировании. forcepreferredonly Не производит сканирование точек доступа, а пробует соединиться по списку forceanyТо же самое что forcepreferred + подключается к любой доступной точке доступа AP
Значения Описание

В итоге, у нас есть выбор между blacklist_aps и unique_ap. Blacklist_aps работает тем же способом, что и preferred_aps. Если второй беспроводной интерфейс пытается подключиться к той же точке доступа, к которой уже подключён первый интерфейс, unique_ap выдаст yes или no value.

# Иногда вам будет нужно полностью исключить возможность подключения
#к определенным точкам доступа
blacklist_aps=( "ESSID3" "ESSID4" )

#Если у вас больше одной беспроводной карты, вы можете соотнести
#каждую карту с определенной точкой доступа, а можете и не делать этого.
#Значения "yes" или "no"
#По умолчанию "yes"
unique_ap="yes"
Ad-Hoc и режимы Master

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

adhoc_essid_eth0="This Adhoc Node"

Что касается подключения к сетям Ad-Hoc или запуска в режиме Master чтобы стать точкой доступа, здесь есть конфигурация и для такой работы. Вы можете определить WEP ключи, как это сделано выше.

# Установка режима может быть управляемая (по умолчанию) ad-hoc
#или master. Не все драйверы могут поддерживать эти режимы
mode_eth0="ad-hoc"

# Установка ESSID интерфейса
#В управляемом режиме заставит интерфейс проверить и подсоединиться к
#определенной ESSID и больше ничего
essid_eth0="This Adhoc Node"

# Мы используем канал 3, если не задано иное.
channel_eth0="9"
Нижеприведённый текст взят дословно из документации BSD wavelan найденной в Документация NetBSD. Возможны 14 каналов. Мы говорим, что каналы с 1 по 11 используются на законном основании в Северной Америке, каналы с 1 по 13 для большинства стран Европы, каналы с 10 по 13 для Франции и только канал 14 для Японии. Если у вас есть сомнения, обращайтесь к документации вашей карты или точки доступа. Убедитесь, что канал, который вы выбрали подключён к вашей точке доступа (или другой карте сети ad-hoc). По умолчанию, для карт, продаваемых в Северной Америке и большинстве стран Европы, настроен канал 3, по умолчанию для карт, продаваемых во Франции, настроен канал 11, по умолчанию для карт, продаваемых в Японии, настроен канал 14.
Инструменты для устранения неполадок

Существуют несколько переменных, которые вы можете использовать для исправления неполадок, возникших из-за драйвера или проблем с сетевым окружением, и запуска вашего беспроводного оборудования. Ниже приведена таблица прочих функций, которые Вы можете использовать.

iwconfig_eth0 Для более детальной информации смотрите страницы справки iwconfig iwpriv_eth0 Для более детальной информации смотрите страницы справки iwpriv sleep_scan_eth00 Время задержки перед сканированием. Необходимо драйверу/firmware перед началом работы. sleep_associate_eth05 Время ожидания интерфейса для связи с точкой доступа перед переходом на другой associate_test_eth0MAC Некоторые драйверы не сбрасывают связанный с ними MAC адрес на недействующий при потере связи или попытке связи. Некоторые драйверы не пере устанавливают качественный уровень при потере или попытке соединения. Действующие установки это: MAC, качество и прочее. scan_mode_eth0 Некоторым драйверам необходимо сканировать в режиме ad-hoc. Если сканирование не удаётся попробуйте установки ad-hoc приведённые здесь. iwpriv_scan_pre_eth0 Посылает некоторые iwpriv команды интерфейсу перед сканированием. Для дополнительной информации смотрите страницы справки. iwpriv_scan_post_eth0 Посылает некоторые iwpriv команды интерфейсу после сканирования. За более подробной информацией обращайтесь к страницам справки
Переменная Значение по умолчанию Описание
Определение настроек сети для ESSID

Иногда при соединении с ESSID1 необходим статический IP а, при соединении с ESSID2 необходим DHCP. На самом деле большинство вариантов модулей можно изменить с помощью ESSID. Это делается так

Это будет работать если Вы используете WPA Supplicant или Wireless Tools. Вам нужно будет свериться с документацией имя переменной.
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )

config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )

# Мы сможем определить имена серверов и прочее.
# ПРЕДУПРЕЖДЕНИЕ: DHCP отменит установки если не сказанно
#иное
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# Вы можете аннулировать МАС адрес точки доступа.
#Это поможет при подключениям к точкам доступа имеющим такой
#же ESSID.
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )