Handbook:PPC/Networking/Wireless

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:PPC/Networking/Wireless and the translation is 100% complete.
PPC Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка файла stage
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети OpenRC
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Введение в беспроводную сеть

Настроить беспроводные сети в Linux довольно легко. Есть три способа настроить wifi: графический клиент, текстовые интерфейсы и интерфейсы командной строки.

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

Заметка
В дополнение к основным графическим режимам NetworkManager предлагают также интерфейс в текстовом режиме. Установите пакет net-misc/networkmanager с включенным USE-флагом tools. Утилита nmtui будет особенно полезна тем, кто не использует рабочую среду на основе X или Wayland, но все же хочет использовать простую в использовании утилиту, которая не требует редактирования файлов конфигурации вручную.

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

Здесь перечислены три утилиты, с помощью которых можно настроить беспроводную сеть в командной строке: net-wireless/iw, net-wireless/wireless-tools и net-wireless/wpa_supplicant. Из трех наиболее предпочитаем net-wireless/wpa_supplicant. Важно помнить, что беспроводные сети настраиваются на глобальной основе, а не на основе интерфейса.

net-wireless/iw, приемник программы net-wireless/wireless-tools, поддерживает почти все карты и драйверы, но не может подключаться к точкам доступа WPA. Если в сети используется только WEP-шифрование или они полностью открыты, то net-wireless/iw превосходит другие пакеты благодаря своей простоте.

Некоторые беспроводные сетевые карты отключены по умолчанию. Чтобы включить их, сверьтесь с документацией для используемого аппаратного обеспечения. Некоторые из таких карт могут быть разблокированы с помощью приложения rfkill. В этом случае используйте rfkill list, чтобы увидеть доступные карты, и rfkill unblock INDEX для активации. В противном случае беспроводная карта может быть разблокирована с помощью кнопки, переключателя или специальной комбинации клавиш на ноутбуке.

WPA supplicant

Проект WPA supplicant предоставляет пакет, который позволяет пользователям подключится к точкам доступа с WPA.

root #emerge --ask net-wireless/wpa_supplicant
Важно
Для того чтобы wpa_supplicant смог работать, необходимо, чтобы в ядре было включено CONFIG_PACKET. Чтобы проверить это, выполните:
root #zgrep CONFIG_PACKET /proc/config.gz
root #grep CONFIG_PACKET /usr/src/linux/.config
Заметка
В зависимости от USE-флагов, wpa_supplicant может установить графический интерфейс, написанный на Qt5, который прекрасно сочетается с KDE. Чтобы получить это, включите для пакета net-wireless/wpa_supplicant USE="qt5" .

Далее, настройте /etc/conf.d/net так, чтобы модуль wpa_supplicant был предпочтительнее модуля wireless-tools (если оба установлены, то по умолчанию используется wireless-tools).

ФАЙЛ /etc/conf.d/netПринудительное использование wpa_supplicant
# Выбирать wpa_supplicant вместо wireless-tools
modules="wpa_supplicant"
Заметка
В случае использования драйвера host-ap необходимо перевести карту в managed mode (управляемый режим), чтобы она работала корректно вместе с wpa_supplicant. Этого можно достигнуть с помощью настройки iwconfig_eth0="mode managed" в /etc/conf.d/net.

Следующее настроит сам wpa_supplicant (что немного сложнее, в зависимости от того, насколько безопасны точки доступа). Пример ниже взят и упрощен из /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz, который поставляется вместе с wpa_supplicant.

ФАЙЛ /etc/wpa_supplicant/wpa_supplicant.confВ какой-то степени упрощённый пример
# Строку ниже не следует изменять, иначе wpa_supplicant откажется работать
ctrl_interface=/var/run/wpa_supplicant
  
# Убедимся, что только root может читать конфигурацию WPA
ctrl_interface_group=0
  
# Пусть wpa_supplicant заботится о сканировании и выборе точек доступа
ap_scan=1
  
# Простой случай: WPA-PSK, PSK как ASCII пароль (passphrase), разрешены все действующие методы шифрования
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
  # Ключи в кавычках — ASCII ключи
  wep_key0="abcde"
  # Ключи указанные без кавычек — HEX-ключ (шестнадцатеричный ключ)
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}
  
# Соединение с помощью общего WEP-ключа (no WPA, no 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

Первоначальная настройка и управляемый режим

Проект wireless tools предоставляет общий способ настроить базовые беспроводные интерфейсы до уровня безопасности WEP. Хотя WEP слабый метод безопасности, он все еще распространен в мире.

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

root #emerge --ask net-wireless/wireless-tools
Заметка
Хотя на данный момент используется утилита net-wireless/iw для беспроводных сетей, net-misc/netifrc до версии 0.6.0 не мог работать с новыми командами. Для работы с netifrc более ранних версий должен использоваться net-wireless/wireless-tools. Для более подробной информации смотрите документацию о именах переменных.
ФАЙЛ /etc/conf.d/netПример настройки iwconfig
# Использовать iwconfig вместо wpa_supplicant
modules="iwconfig"
  
# Настроим WEP-ключи для точки доступа с названием ESSID1 и ESSID2
# Вы можете настроить до 4 WEP-ключей, но только 1 может быть применен
# в какое то время so we supply a default index of [1] to set key [1] and then
# again afterwards to change the active key to [1]
# We do this incase you define other ESSID's to use WEP keys other than 1
#
# Использование в начале ключа s: означает что ключ в ASCII-ключ, иначе HEX-ключ
#
# enc open указывает использовать open security (более безопасно)
# enc restricted указывает использовать restricted security (менее безопасно)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
  
# Строка ниже работает только во время сканирования (поиска) новых точек доступа
  
# Иногда доступно более одной точки доступа,
# поэтому нужно определить предпочитаемый порядок подключения
preferred_aps="'ESSID1' 'ESSID2'"

Тонкая настройка выбора точек доступа

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

Один из способов настроить систему так, чтобы она подключалась только к предпочитаемым точкам доступа. По умолчанию, если не удалось подключится ко всем настроенным точкам доступа, то wireless-tools будет подключаться к не зашифрованной точке доступа. Такое поведение можно контролировать с помощью переменной associate_order. Ниже таблица значений и на что они влияют.

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

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

ФАЙЛ /etc/conf.d/netПример blacklist_aps и unique_ap
# Иногда нужно заблокировать подключение к некоторым точкам доступа
blacklist_aps="'ESSID3' 'ESSID4'"
  
# Если у вас есть более одной беспроводной карты, вы можете указать
# хотите ли вы чтобы другая карта подключалась к той же точке доступа или нет
# Значение может быть "yes" или "no"
# По умолчанию используется "yes"
unique_ap="yes"

Режимы ad-hoc и master

Чтобы настроить систему как ad-hoc ноду, если она не может подключится к любой точке доступа в управляемом режиме, используйте это как резервный режим:

ФАЙЛ /etc/conf.d/netРезервное возвращение в режим ad-hoc
adhoc_essid_eth0="This Adhoc Node"

Также можно подключится к ad-hoc сетям или настроить систему так, чтобы она работала в master режиме и стала сама точкой доступа.

ФАЙЛ /etc/conf.d/netОбразец настройки ad-hoc/master
# Устанавливает режим - может быть managed (по умолчанию), ad-hoc или master
# Не все драйверы поддерживают все режимы
mode_eth0="ad-hoc"
  
# Устанавливает ESSID интерфейса
# В режиме managed это заставляет интерфейс попытаться подключиться к определенной 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.

Устранение неполадок с wireless tools

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

Имя переменной Значение по умолчанию Описание
iwconfig_eth0 Более подробную информацию о том, что можно отправить iwconfig смотрите в man-странице iwconfig.
iwpriv_eth0 Более подробную информацию о том, что можно отправить iwpriv смотрите в man-странице iwpriv.
sleep_scan_eth0 0 Число секунд ожидания перед попыткой сканирования. Это необходимо, если драйверу или прошивке (firmware) необходимо больше времени для активации оборудования, чтобы им можно было пользоваться.
sleep_associate_eth0 5 Число секунд ожидания пока интерфейс ассоциируется с точкой доступа, по истечение которых, переходит к следующей.
associate_test_eth0 MAC Некоторые драйверы не сбрасывают MAC-адрес ассоциируемый с недоступной точкой доступа, когда потеряли связь с ней или после попытки подсоединения. Некоторые драйверы не сбрасывают уровень качества связи, после потери связи или после попытки подсоединения. Допустимые значения MAC, quality и all.
scan_mode_eth0 Некоторые драйверы должны сканировать в режиме ad-hoc. Поэтому если сканирование не удается, то установите ad-hoc здесь.
iwpriv_scan_pre_eth0 Применяет к интерфейсу некоторые iwpriv до сканирования. За более подробной информацией обратитесь к man-странице iwpriv.
iwpriv_scan_post_eth0 Применяет к интерфейсу некоторые iwpriv после сканирования. За более подробной информацией обратитесь к man-странице iwpriv.

Определение сетевой конфигурации для отдельных ESSID

В этом разделе мы покажем как настроить сетевые настройки на основе ESSID. Например, с беспроводной сетью и ESSID ESSID1 использовать статический IP-адрес, а с ESSID ESSID2 использовать DHCP.

Заметка
Это работает как с wpa_supplicant, так и с wireless-tools
Важно
Пожалуйста, ознакомьтесь с документацией о именах переменных, о которых упоминалось ранее.
ФАЙЛ /etc/conf.d/netПереопределение сетевых настроек для конкретных ESSID (точек доступа)
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"
  
# We can define nameservers and other things too
# NOTE: DHCP will override these unless it's told not to
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"
  
# You override by the MAC address of the Access Point
# This handy if you goto different locations that have the same ESSID
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"