Mesh на OpenWrt решает знакомую проблему: телефон «держится» за дальний роутер и тормозит, хотя рядом есть вторая точка. Настройка mesh-сети на OpenWrt даёт единый Wi-Fi с бесшовным переходом между точками по всей квартире. Разберём три способа объединить роутеры, полную конфигурацию и настройку роуминга.
Mesh ≠ репитер ≠ роуминг: разбираемся в терминах
- Репитер — тупо повторяет сигнал, теряя половину скорости и часто создавая отдельную сеть.
- Роуминг — переключение клиента между точками с одинаковым SSID (сам по себе бывает «рваным»).
- Mesh — точки объединены в единую сеть с общим управлением; при грамотной настройке добавляется бесшовное переключение (802.11r).
Что понадобится: 2+ роутера на OpenWrt (желательно одинаковых), кабель для первой настройки, одинаковая версия OpenWrt на всех устройствах.
Три способа объединить роутеры (выбираем свой)
- Вариант 1: Кабель (Ethernet backhaul) + одинаковый SSID + 802.11r — самый быстрый и стабильный. Если можно протянуть провод — делайте так. Точки соединяются кабелем, Wi-Fi отдаётся клиентам, 802.11r обеспечивает бесшовность.
- Вариант 2: 802.11s Mesh — беспроводной backhaul, встроен в OpenWrt. Провод не нужен, но скорость ниже.
- Вариант 3: 802.11s + batman-adv — для сложных топологий (3+ узлов, полноценный L2-mesh).
- Вариант 4: WDS (Bridge) — простая альтернатива, когда драйвер не поддерживает 802.11s.
| Способ | Скорость | Сложность | Кому подойдёт |
|---|---|---|---|
| Кабель + 802.11r | максимальная | низкая | есть возможность протянуть провод |
| 802.11s | средняя | средняя | 2 точки без провода |
| 802.11s + batman-adv | средняя | высокая | 3+ узлов, сложная топология |
| WDS | средняя | низкая | нет поддержки 802.11s |
Проверьте, поддерживает ли чипсет 802.11s:
iw list | grep -A10 "Supported interface modes"
В списке должно быть * mesh point.
Ключевые понятия за 2 минуты
- SSID — имя сети; BSSID — MAC конкретной точки. При одинаковом SSID телефон всё равно тормозит, если сам не хочет переключаться на более сильный BSSID.
- 802.11r (Fast Transition) — быстрое переключение между точками без переавторизации. Главный элемент бесшовности.
- 802.11k / 802.11v — «подсказки» клиенту, к какой точке лучше перейти.
- DAWN / usteer — «мозг», который активно перекидывает клиента на лучшую точку.
- Backhaul — канал между точками; Fronthaul — канал для клиентов.
Планирование: рисуем схему до настройки
- Главный роутер (gateway):
192.168.1.1, раздаёт DHCP, держит WAN. - Точки (dumb AP):
192.168.1.2,192.168.1.3— статические IP, DHCP выключен. - Все точки на одном канале (обязательно для 802.11s).
| Узел | Роль | LAN IP | DHCP |
|---|---|---|---|
| Роутер 1 | Gateway | 192.168.1.1 | включён |
| Роутер 2 | AP + Mesh | 192.168.1.2 | выключен |
| Роутер 3 | AP + Mesh | 192.168.1.3 | выключен |
Шаг 1. Подготовка всех роутеров
Одинаковая версия OpenWrt на всех устройствах (см. обновление OpenWrt). Для mesh нужен wpad с поддержкой mesh — базовый wpad-basic её не имеет:
# OpenWrt 24.10 (opkg)
opkg update
opkg remove wpad-basic-mbedtls
opkg install wpad-mesh-mbedtls
На OpenWrt 25.12+ (apk):
# OpenWrt 25.12 (apk)
apk update
apk del wpad-basic-mbedtls
apk add wpad-mesh-mbedtls
opkg install wpad-mesh-mbedtls --force-overwrite (на 25.12 — apk add --force-overwrite wpad-mesh-mbedtls).
Для batman-adv дополнительно: kmod-batman-adv, batctl. Для роуминга: dawn (проще) или usteer.
Шаг 2. Настраиваем главный роутер (Gateway)
WAN, LAN и DHCP настраиваются как обычно. Создаём клиентскую сеть (fronthaul) и mesh-интерфейс.
Пример /etc/config/wireless главного роутера с 802.11r и mesh на 5 ГГц:
config wifi-iface 'fronthaul'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'MyMeshWiFi'
option encryption 'sae-mixed'
option key 'МойНадёжныйПароль123'
option ieee80211r '1'
option mobility_domain '4f57'
option ft_over_ds '0'
option ft_psk_generate_local '1'
config wifi-iface 'mesh'
option device 'radio1'
option network 'mesh'
option mode 'mesh'
option mesh_id 'MyMeshBackhaul'
option encryption 'sae'
option key 'МешПароль456'
Оба интерфейса на radio1 (5 ГГц) с одним каналом — задайте канал явно в секции radio1:
uci set wireless.radio1.channel='36'
uci set wireless.radio1.country='RU'
uci commit wireless
Добавляем mesh-интерфейс в LAN-мост, чтобы точки были в одной подсети. В /etc/config/network:
config interface 'mesh'
option proto 'batadv'
option mesh 'bat0'
interface 'mesh' не нужна — достаточно указать option network 'lan' в секции wifi-iface 'mesh', и интерфейс сам попадёт в мост br-lan. Беспроводные интерфейсы никогда не прописываются в list ports секции device: там перечисляются только проводные порты. Вариант с proto 'batadv' выше относится к схеме с batman-adv из шага 4 — выберите одну схему и придерживайтесь её. Учтите и то, что мост из 802.11s напрямую в br-lan на нескольких узлах способен собрать петлю; для сетей больше двух-трёх точек документация OpenWrt советует mesh11sd.
Применяем:
uci commit
wifi reload
service network restart
Шаг 3. Настраиваем вторую точку (Dumb AP + Mesh)
На второй точке:
- Меняем LAN IP на
192.168.1.2:
uci set network.lan.ipaddr='192.168.1.2'
- Отключаем DHCP-сервер:
uci set dhcp.lan.ignore='1'
- Указываем шлюз и DNS главного роутера. В
/etc/config/network:
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.2'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
list dns '192.168.1.1'
- Отключаем firewall (точка работает мостом, не маршрутизатором):
service firewall disable
service firewall stop
- Создаём точно такой же fronthaul SSID + тот же пароль + тот же
mobility_domain(это критично для 802.11r) и mesh-интерфейс с тем жеmesh_id, паролем и каналом, что на главном роутере. Конфиг/etc/config/wireless— как в шаге 2, но с тем же mesh-ключом.
uci commit
wifi reload
service network restart
Для третьей и последующих точек повторяем, меняя только IP (192.168.1.3 и т.д.).
Шаг 4. Вариант с batman-adv (для 3+ узлов)
batman-adv стоит включать, когда узлов много и топология сложная (mesh поверх mesh, разные среды). Установка:
opkg install kmod-batman-adv batctl # OpenWrt 24.10
# на OpenWrt 25.12: apk add kmod-batman-adv batctl
В /etc/config/network создаём интерфейс bat0 и добавляем в него mesh, а сам bat0 — в LAN-мост:
config interface 'bat0'
option proto 'batadv'
option routing_algo 'BATMAN_IV'
config interface 'mesh'
option proto 'batadv_hardif'
option master 'bat0'
option mtu '1536'
Затем добавьте bat0 в список портов моста br-lan. Проверка:
batctl n # соседи (neighbors)
batctl o # originators (все узлы mesh)
Шаг 5. Настраиваем бесшовный роуминг (DAWN)
802.11r ускоряет переключение, но решение о переходе принимает клиент — и часто «прилипает» к дальней точке. DAWN активно перекидывает клиентов на лучшую точку. Установите на всех точках:
opkg install dawn luci-app-dawn # OpenWrt 24.10
# на OpenWrt 25.12: apk add dawn luci-app-dawn
Пример /etc/config/dawn с порогами:
config metric 'global'
option kicking '1'
option min_probe_count '2'
config network
option broadcast_ip '10.0.0.255'
option broadcast_port '1025'
«Kicking» — это принудительное отключение клиента от слабой точки, чтобы он переподключился к сильной. Порог выставляйте так, чтобы клиента не выкидывало слишком рано (иначе постоянные разрывы). Карта клиентов видна в LuCI: Network → DAWN.
Альтернатива — usteer (от разработчиков OpenWrt): гибче в настройке, но сложнее. Для дома DAWN обычно достаточно.
Шаг 6. Проверка работоспособности
# видны ли соседи по mesh
iw dev mesh0 station dump
# сигнал backhaul между точками (ниже -70 dBm — плохо)
iw dev mesh0 station dump | grep signal
# для batman:
batctl n
Скорость между узлами:
opkg install iperf3 # OpenWrt 24.10 (на 25.12: apk add iperf3)
# на одной точке: iperf3 -s
# на другой: iperf3 -c 192.168.1.2
Главный практический тест роуминга: идите с телефоном по квартире с приложением WiFiman или WiFi Analyzer и смотрите, меняется ли BSSID при переходе между комнатами. Контрольный тест — видеозвонок не должен прерываться при переходе.
Чек-лист «mesh работает правильно»:
- точки видят друг друга (
iw station dump/batctl n); - сигнал backhaul выше −70 dBm;
- телефон переключается на ближнюю точку (BSSID меняется);
- видеозвонок не рвётся при переходе;
- один DHCP на всю сеть.
Оптимизация и типичные грабли
- Половинная скорость при беспроводном backhaul: если backhaul и клиенты на одном радио, точка делит эфир пополам. Решение — выделенное радио 5 ГГц под backhaul, 2.4 ГГц для клиентов.
- Клиент «прилипает» к дальней точке: настройте пороги DAWN (kicking).
- 802.11r не работает: разные
mobility_domain, разные пароли или разное шифрование на точках. Всё должно совпадать. - Старые IoT-устройства отваливаются от WPA3: используйте
sae-mixed(WPA2/WPA3). - Два DHCP в сети: выключите DHCP на всех точках, кроме главной.
- Размещение точек: не в углу, не за холодильником, не вплотную друг к другу.
- Mesh + VPN: podkop ставится только на главный роутер — он маршрутизирует весь трафик сети.
Часто задаваемые вопросы (FAQ)
Нужны ли одинаковые роутеры? Желательно, но не обязательно. Разные модели работают, если поддерживают 802.11s и одинаковую версию OpenWrt. Одинаковые проще настраивать (идентичные конфиги).
Mesh или вторая точка по кабелю — что лучше? Кабель почти всегда лучше: полная скорость и стабильность. Mesh (802.11s) — когда провод не протянуть.
Сколько точек можно объединить? Для 802.11s практичный предел — 3–4 точки. Больше — уже с batman-adv и продуманной топологией.
Насколько падает скорость при беспроводном backhaul? Примерно вдвое, если backhaul и клиенты на одном радио. С выделенным радио под backhaul потери минимальны.
Работает ли mesh на Cudy M3000 / Netis NX62 под OpenWrt? Да, стандартными средствами OpenWrt (802.11s/WDS), а не фирменным mesh вендора. См. инструкции по прошивке Cudy и Netis.
Почему телефон не переключается на ближнюю точку? Решение о роуминге принимает сам клиент. Помогает DAWN с настроенным kicking, который принудительно перекидывает клиента.
Можно ли смешать OpenWrt-роутер и стоковый роутер в mesh? В одном 802.11s mesh — нет (нужна совместимость реализаций). Но стоковый роутер можно подключить кабелем как обычную точку доступа с тем же SSID.
Обязателен ли batman-adv? Нет. Для 2–3 точек хватает чистого 802.11s. batman нужен для сложных многоузловых топологий.
Слетит ли mesh после обновления OpenWrt?
Пакеты (wpad-mesh, dawn, batctl) слетят, а конфиги при сохранении настроек останутся. После обновления переустановите пакеты.
Заключение
Бесшовный Wi-Fi на OpenWrt строится по схеме: одинаковый wpad-mesh на всех точках → главный роутер с DHCP → точки со статическими IP и выключенным DHCP → одинаковый SSID с 802.11r → DAWN для роуминга. Если можно протянуть кабель — используйте Ethernet backhaul, это надёжнее беспроводного. Перед настройкой убедитесь, что на всех роутерах одинаковая версия OpenWrt, а VPN через podkop ставьте только на главный узел.
Настройка mesh на несколько узлов — самая кропотливая часть: развести адреса, синхронизировать SSID и не оставить лишний DHCP. Если разбираться некогда, эту работу мы берём на себя — настройка под ключ.
Комментарии
💬 Пока нет комментариев. Будьте первым!
Оставить комментарий