При организации домашней WiFi-сети обычно начинают с самого простого оборудования и меняют его на более продвинутое и дорогое только при возникновении каких-либо проблем. В частности это касается бытовых роутеров, самые простые из которых поддерживают работу только в диапазоне 2.4 GHz.
Если в качестве точки доступа используется домашний медиа-сервер то либо в нём есть распаянный прямо на материнской плате WiFi-адаптер, либо в него устанавливается самый дешёвый адаптер с PCI-интерфейсом. Оба этих варианта обычно так же ограничены в работе только диапазоном 2.4GHz.
По мере того как ваши соседи обзаводятся своими WiFi точками доступа (как правило так же работающими в диапазоне 2.4GHz) взаимных помех становится всё больше и качество сигнала в разных точках помещения становится всё хуже.
Посмотреть на соседние точки доступа и оценить их взаимное влияние можно например с помощью приложения Wifi Analyzer для Android или Wifi Analyzer для Windows (несмотря на одинаковое названия это два совершенно разных приложения от разных разработчиков). Скорее всего картина будет выглядеть примерно так (или даже хуже):
Как быть в такой ситуации? Самый очевидный ответ - начать плавно "переползать" на диапазон 5GHz. Однако скорее всего не все имеющиеся гаджеты поддерживают этот диапазон, потому стоит использовать двухдиапазонную точку доступа. Если используется обычный бытовой роутер то чаще всего его просто меняют на новый. В случае же использования домашнего сервера можно либо заменить существующий WiFi-адаптер, либо поставить дополнительный.
Рассмотрим второй случай детальнее: домашний сервер под управлением Ubuntu 16.04, интерфейс br0 которого обслуживает локальную сеть. Интерфейс br0 включает в себя проводной адаптер "eth0", распаянный на материнской плате и беспроводной PCI-адаптер "wlan0" (Модель: TP-Link TL-WN781ND). Для работы в диапазоне 5GHz мы добавим USB-адаптер Netis WF2150, который виден в системе как "wlx048d39274cbb".
По сути задача сводится к запуску двух копий демона hostapd с разными конфигурационными файлами на разных интерфейсах. Единственная сложность: стандартный init-скрипт идущий в пакете hostapd на Debian и Ubuntu не поддерживает запуск более одной копии процесса. Можно конечно создать копию этого скрипта под другим именем, но мы используем более элегантное решение. В качестве бонуса мы получим автоматический запуск/остановку второго процесса при подключении/отключении USB-адаптера.
Первым делом останавливаем демон hostapd и комментируем все строки в файле "/etc/default/hostapd":
service hostapd stop && sed 's/^/#/' -i /etc/default/hostapd
Далее копируем наш старый файл конфигурации hostapd как "/etc/hostapd/hostapd_wlan0.conf" либо создаём новый примерно следующего содержания:
# Имя точки доступа ssid=home-of-moose # Пароль и опции шифрования wpa_passphrase=w1f1p4ssw0rd wpa=2 wpa_pairwise=CCMP # Используемый канал channel=3 # Используемый интерфейс interface=wlan0 # В этот бридж надо включить наш интерфейс bridge=br0 # Поддерживаемые адаптером возможности (см. вывод команды iw list) ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][RX-STBC1][DSSS_CCK-40] # Используемый режим # Данная комбинация описывает 802.11n в 2.4GHz hw_mode=g ieee80211n=1 # Остальные параметры по вкусу. # Уточнить значение того или иного параметра можно в документации. country_code=RU eapol_key_index_workaround=0 eap_server=0 own_ip_addr=127.0.0.1 logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 ctrl_interface=/var/run/hostapd ctrl_interface_group=0 ieee80211d=1 beacon_int=100 dtim_period=2 max_num_sta=255 rts_threshold=2347 fragm_threshold=2346 macaddr_acl=0 auth_algs=3 ignore_broadcast_ssid=0 wmm_enabled=1 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 wmm_ac_bk_aifs=7 wmm_ac_bk_txop_limit=0 wmm_ac_bk_acm=0 wmm_ac_be_aifs=3 wmm_ac_be_cwmin=4 wmm_ac_be_cwmax=10 wmm_ac_be_txop_limit=0 wmm_ac_be_acm=0 wmm_ac_vi_aifs=2 wmm_ac_vi_cwmin=3 wmm_ac_vi_cwmax=4 wmm_ac_vi_txop_limit=94 wmm_ac_vi_acm=0 wmm_ac_vo_aifs=2 wmm_ac_vo_cwmin=2 wmm_ac_vo_cwmax=3 wmm_ac_vo_txop_limit=47 wmm_ac_vo_acm=0
Затем создаём копию этого файла под именем "/etc/hostapd/hostapd_wlx048d39274cbb.conf" и меняем как минимум следующие строки:
# Используемый интерфейс #interface=wlan0 interface=wlx048d39274cbb # Переходим в диапазон 5GHz #hw_mode=g hw_mode=a # Канал должен быть из диапазона 5GHz #channel=3 channel=153 # Поддерживаемые возможности интерфейса (из вывода команды iw list) #ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][RX-STBC1][DSSS_CCK-40] ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40][RX-STBC1] # Если имя и пароль одинаковы то клиенты сами решат в каком диапазоне подключаться # Если же разные то можно явно выбрать диапазон подключения #ssid=home-of-moose ssid=home-of-moose-5ghz
Следующим шагом открываем файл "/etc/network/interfaces" и добавляем в него следующие строки:
# Настройки PCI-интерфейса # Интерфейс будет настраиваться автоматически при запуске сервера auto wlan0 iface wlan0 inet static # Интерфейс требует запуска hostapd с указанным конфигом hostapd /etc/hostapd/hostapd_wlan0.conf # Совсем не указывать адрес мы не можем # Но в реальности адрес не нужен, так как интерфейс будет включен в бридж br0 address 0.0.0.0 # Бридж br0 должен быть поднят до запуска этого интерфейса pre-up ifup br0 # Настройки USB-интерфейса # Он будет настраиваться автоматически при подключении адаптера allow-hotplug wlx048d39274cbb iface wlx048d39274cbb inet static hostapd /etc/hostapd/hostapd_wlx048d39274cbb.conf address 0.0.0.0 pre-up ifup br0
Запускаем интерфейс wlan0:
ifup wlan0
Подключаем USB-адаптер и он должен автоматически сконфигурироваться. Убедиться что всё хорошо очень просто: в списке интерфейсов входящих в br0 должны быть видны оба наших WiFi-интерфейса. Для этого выполняем команду:
brctl show br0
Вывод должен выглядеть примерно вот так:
bridge name bridge id STP enabled interfaces br0 8000.048d39274cbb no eth0 wlan0 wlx048d39274cbb
Далее можно взять любой гаджет с поддержкой WiFi 5GHz, подключиться к новой точке доступа и наслаждаться отсутствием помех:) Если запустить Wifi Analyzer то скорее всего картина будет выглядеть примерно вот так:
Если что-то не работает, или работает не правильно то первым делом надо смотреть вывод команды "journalctl -xe" и отталкиваясь от увиденного решать проблему.
На этом всё. Приятной работы!
Anonymous 2018-02-14 13:07:32 (#)
1. Может стоит упомянуть для читающих, что показания Wifi Analyzer не покажут вам если где-то в этом диапазоне фонит что-то (да хоть микроволновка) помимо вайфай точек.
2. Насколько я понимаю, 5 Ггц это конечно хорошо, однако затухает сигнал быстрее чем у 2.4. Таким образом играет роль расположение этого сервера.
П.С. Откуда такая орава сетей в частном доме то?