Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roamd — бесшовный роуминг Wi-Fi для OpenWrt

Пакет .ipk для OpenWrt, который делает переход клиентов между собственными сетями роутера 2,4 ГГц и 5 ГГц простым: включаете один переключатель — остальное настраивается само.

  • roamd — демон на C: band steering, 802.11v BSS Transition Management, синхронизация 802.11k Neighbor Report, автонастройка 802.11r в конфигурации Wi-Fi.
  • luci-app-roamd — страница настройки в LuCI (Сеть → Wi-Fi Roaming) с русским переводом.

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

Что делает

Механизм Назначение
Band steering Не отвечает на Probe/Auth в непредпочитаемом диапазоне, пока предпочитаемый доступен
802.11v BTM Просит уже подключённого клиента перейти в другой диапазон
802.11k Точки обмениваются Neighbor Report, клиент находит второй диапазон без полного сканирования
802.11k Beacon Request Демон просит клиента измерить второй диапазон — решение принимается по реальному RSSI
802.11r Быстрый переход без повторной аутентификации (общий mobility domain на обоих диапазонах)
Мастер настройки Создаёт готовую сеть с роумингом по имени, шифрованию и паролю; сначала проверяет, что устройство это умеет
Проверка пары Сверяет параметры точек разных диапазонов и показывает в таблице, где роуминг действительно работает, а где нет
Правила устройств Привязка конкретного устройства к одному диапазону — «только 2,4 ГГц» или «только 5 ГГц»
Автонастройка Опции 802.11k/v/r прописываются в /etc/config/wireless автоматически

Быстрый старт

Требуется OpenWrt 21.02+ и два радиоинтерфейса разных диапазонов. Нужный hostapd/wpad opkg подтянет сам, если его ещё нет.

Скопируйте на роутер каталог своей архитектуры и поставьте всё одной командой — opkg сам разберётся с порядком и зависимостями:

scp dist/x86_64/*.ipk root@192.168.1.1:/tmp/
ssh root@192.168.1.1 "opkg install /tmp/*roamd*.ipk"

Больше ничего делать не нужно: недостающий hostapd/wpad opkg поставит сам, служба добавится в автозагрузку и запустится, а параметры 802.11k/v/r пропишутся в конфигурацию Wi-Fi автоматически. Если у вас уже есть сеть с одинаковым именем на обоих диапазонах, роуминг заработает сразу после установки.

Дальше — Сеть → Wi-Fi Roaming, кнопка Создать сеть с роумингом… под таблицей радиоинтерфейсов. Мастер спросит имя сети, шифрование и пароль и сделает всё остальное сам. Если устройство однодиапазонное или чего-то не хватает, он сообщит об этом и ничего не изменит.

Если Wi-Fi уже настроен (одинаковые SSID, шифрование и пароль на обоих диапазонах), мастер не нужен — достаточно запустить службу.

Страница разделена на закладки: «Состояние роуминга», «Основные настройки», «Параметры переключения» и «Правила устройств».

Готовые пакеты лежат в dist/ по каталогам архитектур. Собрать остальные: ./build.sh (все) или ./build.sh --list (список).

Подробно, со сценариями настройки и разбором проблем — docs/USER_GUIDE.md.

Пороги по умолчанию

Параметр Значение Смысл
Хороший сигнал −55 дБм Выше — уводим в предпочитаемый диапазон
Слабый сигнал −75 дБм Ниже — предпочитаемый диапазон не предлагаем
Разница между диапазонами 30 дБ Гистерезис против метаний туда-сюда
Время удержания 30 с Пауза между попытками перевести устройство
Время хранения записи 90 с Сколько помнить отключившееся устройство
Окно наблюдения 5 / 2,4 ГГц 4 / 8 с Срок годности измерения сигнала

Логика решения: выше −55 дБм в предпочитаемом диапазоне — уводим туда; между −75 и −55 — не вмешиваемся; ниже −75 — оставляем клиента там, где он есть.

Документация

Документ О чём
docs/USER_GUIDE.md Установка, настройка, сценарии, решение проблем
docs/HOW_IT_WORKS.md Принцип работы: почему роуминг ломается и чем чинится
docs/PITFALLS.md Сложности разработки: что ломалось и почему
docs/ARCHITECTURE.md Устройство демона: модули, вызовы ubus
docs/BUILD.md Сборка под свою архитектуру

Структура репозитория

package/roamd/            исходники демона (C) и пакет OpenWrt
package/luci-app-roamd/   веб-интерфейс LuCI и русский перевод
dist/                     собранные .ipk по каталогам архитектур
docs/                     документация
build.sh                  сборка пакетов через OpenWrt SDK

Ограничения

  • Управляет диапазонами одного роутера. Для нескольких точек доступа нужен usteer или dawn.
  • Решение о переходе всегда остаётся за клиентом: 802.11v — это просьба, и некоторые устройства отказываются.
  • Точки 6 ГГц относятся к «верхнему» диапазону вместе с 5 ГГц; отдельное предпочтение между ними не поддерживается.

About

Динамическое управление 2.4/5 ГГц. Оценивает текущие условия и переключает клиентов на сеть с лучшим балансом скорости и стабильности.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages