Привет, Хабр! Меня зовут Алексей, и я занимаюсь беспроводными технологиями. Недавно я написал две статьи, посвящённые настройке /etc/config/wireless в OpenWrt. В одной я разобрал настройки секции wifi-device, а в другой wifi-iface. Но этого оказалось мало, и в комментариях меня спрашивали о тонкостях настройки mesh-сети. Что ж, спешу выполнить эту просьбу и представляю на ваш суд наиболее полный гайд, посвящённый сборке и настройке Wi-Fi mesh-сетей на базе OpenWrt.
Но прежде чем перейти к повествованию, хочу сделать важные оговорки.
Первое. Из комментариев я заметил, что, говоря о mesh-сети, пользователи имеют в виду несколько разных вещей. Поэтому эта статья будет написана от простого к сложному от самых азов к тонкостям настройки. В начале я немного по‑теоретизирую, расскажу о mesh-сетях и топологии, о том, как их лучше спроектировать и расположить роутеры, и уже дальше перейду к тонкой настройке конфигурационных файлов. Поэтому если вы считаете себя опытным пользователем, смело пропускайте начало статьи и сразу переходите ко второй её половине.
Второе. Статья получилась достаточно большая и может вас утомить. Я долго сомневался, стоит ли делать большую статью или всё же разделить на разные темы. Например, вынести отдельно часть про роуминг и отдельно про настройку конфигов. Но в итоге решил, что полезнее будет иметь полное руководство в одном месте. В конце концов, главная цель этой статьи показать, что при должном уровне настройки беспроводные mesh-сети ничуть не уступают кабелю. Мне по роду занятий часто приходится слышать замечания коллег, которые говорят: «Да всё беспроводное и mesh это фигня, нет ничего лучше кабеля. Вот я купил домой mesh-систему всего из трёх узлов, а она не работает как нужно». Забегая вперёд, хочу сказать, что если всё сделать как надо, можно добиться небывалой производительности. Не без гордости могу заявить, что в моём арсенале есть mesh-сети, состоящие из более чем 50 узлов, построенные исключительно на OpenWrt и без использования внешних контроллеров.
Топология сети
Топология сети это геометрическая схема или физическое расположение компьютеров, кабелей и других компонентов, определяющее способ соединения устройств в единую сеть. Простыми словами, это «карта» или архитектура связей между узлами.
Её принято делить на два уровня:
Физическая топология это как реально проложены провода и где стоят устройства.
Логическая топология это как данные перемещаются по этой сети (маршруты сигналов).
Выделяют несколько типовых схем топологии сети.
Шина - это, наверное, самый первый способ организации сети, который появился в компьютерных сетях. Все компьютеры соединялись последовательно или, другими словами, подключались к одной магистрали. Плюсом такой топологии было, пожалуй, то, что требовалось меньше кабеля на коммутацию всех устройств. Минусами же было то, что данные по шине передавались сразу для всех устройств. Что с одной стороны было небезопасно, а с другой неэффективно использовало полосу пропускания. Но главный минус был связан с тем, что если в шине где‑то происходил разрыв, связь между двумя частями терялась.
Кольцо - эта топология стала логичным продолжением шины. По сути, кольцо это та же шина, у которой начало приходится на конец. Это позволило бороться с самым главным минусом. В случае одного разрыва в любом месте связь со всеми устройствами сохраняется.
Оба этих способа организации сети были популярны ещё в коаксиальных сетях, но потом их распространение значительно уменьшилось, хотя для организации магистральных сетей часто обе эти топологии используются.

Звезда - на текущий момент самый распространённый способ организации сетей. Он подразумевает, что каждый клиент соединён напрямую с каким‑то центром. В зависимости от контекста это может быть как коммутатор или концентратор, так и маршрутизатор. В качестве плюсов можно выделить то, что каждый клиент соединяется своим кабелем, и значит, разрыв кабеля повлечёт отключение только одного клиента, и данные по этому кабелю (если конечно речь не идёт о концентраторе) направляются только ему. Минус, пожалуй, только один нужно много кабеля. Хотя, собирая древовидную структуру сети, по сути комбинацию из нескольких звёзд, и располагая центр как можно ближе к клиентам, расход кабеля можно оптимизировать.
Mesh - да, по сути это ещё один вид топологии или сетевой архитектуры, в которой рабочие станции (узлы) соединяются друг с другом напрямую, образуя множество связей. В отличие от обычной сети, где всё завязано на одном роутере, в mesh-сети каждое устройство может передавать данные за себя и «за соседа».
Как это работает. Представьте группу людей в комнате. В обычной сети («звезда») все говорят только через одного посредника в центре. В mesh-сети каждый может говорить с каждым напрямую или передать сообщение через стоящего рядом.
Существует два основных вида:
Полносвязная (Full Mesh): абсолютно каждый узел соединён со всеми остальными. Это даёт максимальную надёжность, но требует огромного количества кабелей (если сеть проводная).
Частичносвязная (Partial Mesh): некоторые узлы соединены со всеми, а другие только с теми, с кем они обмениваются данными чаще всего. Это самый популярный вариант.
Ну и, конечно, эта топология имеет ряд как плюсов, так и минусов. Начнём с плюсов. Главный связан с тем, что каждый соединён с каждым. За счёт этого реализуется:
Самовосстановление и устойчивость к разрушению. Если один узел упал или кабель перебит, данные просто пойдут по другому маршруту. Сеть не перестанет работать.
Устойчивость к нагрузкам. У нас потенциально несколько маршрутов через разные узлы, и если какая‑то часть перегружена, то можно направить данные по другому маршруту, балансируя нагрузку.
Минус связан с тем, что это всё хорошо в теории. На практике построить сеть, где каждый связан с каждым или хотя бы со многими (имею в виду именно кабельную сеть), это задача достаточно накладная. Так было достаточно долгое время, пока не появился и не достиг достаточного уровня развития Wi-Fi. В беспроводных сетях устройства могут видеть друг друга, и это делает принцип «каждый соединён с каждым» более достижимым.
И если говорить в лоб, то примером такой сети может быть сеть на базе смартфонов без какого‑бы то ни было активного сетевого оборудования. Каждый смартфон выступает и клиентом, и узлом, передающим трафик. Не очень эффективно, но тем не менее даже в таком виде есть реализации одного из мессенджеров.
Эффективным же решением стало объединение в mesh-сеть Wi-Fi роутеров для создания магистральной линии обмена данными между роутерами - так называемый беспроводной бэкхол. В этих сетях есть элементы сразу двух топологий. С одной стороны, на уровне L2 роутеры и точки доступа объединяются в mesh-сеть и передают между собой трафик. Клиенты же используют традиционное звёздное подключение в том смысле, что централизованно получают IP-адрес и маршрутизируются через единый центр. Такой компромисс стал самым популярным, и когда сегодня говорят о mesh-сетях, то чаще всего имеют в виду именно такое решение.
Всё-таки нужно сделать ещё одну оговорку. Существует ещё один пласт решений, называемых также mesh-сетями, причём в нём не реализуется ни беспроводная передача данных, ни кабельное подключение «каждый с каждым». Речь идёт о mesh-сетях, работающих поверх традиционной IPv4 или IPv6 архитектуры. Используя туннельные подключения, по сути VPN, эти сети добиваются видимости «каждый с каждым».
Что же такое Wi-Fi Mesh и почему это не просто «несколько точек»
Теперь, когда мы разобрались с терминологией и видами топологии, мы можем перейти к тому, что чаще всего интересует пользователя - беспроводной mesh-сети, в которой можно перемещаться без переключений.
Речь о Mesh (802.11s), и это не просто набор точек доступа с одинаковым SSID. Это самоорганизующаяся и самовосстанавливающаяся сеть, где каждый узел может общаться с любым другим узлом напрямую или через промежуточные узлы.
Топология и расположение узлов: геометрия важнее мощности
Прежде чем лезть в конфиги, нужно правильно разместить узлы. И здесь есть несколько «подводных камней». Выше я писал, что в mesh-сети каждый узел видит каждый. Но если мы добьёмся такой ситуации, когда каждый Wi-Fi роутер видит своего соседа, работать в такой сети мы не сможем из‑за интерференции.
Всё дело в принципе: «Пока один говорит, остальные молчат». Вспомните, как работает рация. Нажал на кнопку, сказал фразу, в конце сказал «приём», отпустил кнопку. Почему это так работает? Потому что одна частота. Конечно, в современных роутерах всё немного сложнее, там частота уже не одна, и есть MU-MIMO и несколько антенн. Но тем не менее этот базовый принцип требует выполнения. Если все роутеры будут видеть друг друга, они прежде чем начать передавать данные должны будут дождаться своей очереди. Если поставить 5 узлов в одну комнату, они начнут конкурировать за эфир, создавая так называемый «ад перегрузки» (Mesh of Death). Каждый узел пытается общаться с каждым, растёт количество служебных пакетов, и реальная скорость падает практически до нуля.
В итоге чем больше роутеров будут видеть друг друга, тем меньше будет скорость. Поэтому мы подошли к дилемме. С одной стороны, чем больше роутеров-соседей видит роутер, тем более устойчивой к разрушениям будет сеть, с другой стороны, скорость в такой сети будет уменьшаться. Кстати, в этом месте зарыто важное отличие mesh-сети от сети на репитерах. Если в сети используются репитеры, то даже если отдельные узлы не видят друг друга, всё равно репитер будет передавать данные по всем узлам. В mesh-сети данные пойдут только по маршруту в сторону клиента и не будут нагружать узлы, которые находятся в стороне от маршрута.
Итак, теперь мы можем перейти к практическим рекомендациям.
Первое. Для максимально эффективного использования эфира руководствуйтесь правилом: каждый роутер видит только двух соседей. Мы не случайно так подробно говорили о топологиях. И теперь вы можете сказать, что в таком случае наша mesh-сеть будет реализована по схеме «шина». Эфир используется максимально эффективно, но если один из узлов откажет, сегмент сети после него отвалится. Поэтому по возможности используйте вторую рекомендацию.
Второе. Если есть возможность, используйте логичное эволюционное развитие шины и попытайтесь замкнуть её в кольцо. Тогда в случае отказа одного из узлов отказа сети не произойдёт. И как бонус в таком виде уже начнёт работать балансировка - запросы от первого узла будут уходить как налево, так и направо.

Третье. Если для вашей сети важна отказоустойчивость, добавляйте в ключевых местах узел, который будет являться третьим соседом. Прежде чем начать расставлять роутеры, попробуйте просто нарисовать схему на бумаге, стараясь оптимально разместить роутеры.
Для вашего удобства разберу несколько примеров.
Если роутеров два то без разницы, как вы их поставите.
Если роутеров три то оптимально роутер, к которому приходит WAN-кабель, поставить в середину.
Если роутеров четыре - начинайте смотреть от вашего помещения. Если оно длинное и вытянутое, то стартовый роутер ставьте вторым или третьим, а роутеры располагайте в шину. Если нет, то желательно, чтобы первый видел второго и третьего, а он, в свою очередь, видели четвёртого.
Если роутеров пять и больше, выстраивайте кольцом или в виде дерева. Но избегайте ситуации, когда первый видит сразу все четыре. Пусть лучше пятый он видит через промежуточный узел.
Иногда может возникнуть ситуация, когда вы нарисовали нужную схему на бумаге, и она красива, но поставить роутер в нужном месте не получается. Приходится поставить чуть ближе, и он начинает видеть тех соседей, которых видеть не должен. Это достаточно частая ситуация, и она имеет простое решение - просто снизьте мощность передатчика на этом узле так, чтобы он видел только нужных соседей.
Выбор диапазона mesh-сети
Скорее всего, вы будете использовать двухдиапазонный роутер, и для mesh-сети нужно выбрать диапазон, на котором она будет вести вещание. Но прежде позвольте мне обратить ваше внимание вот на какую штуку. Говоря о mesh-сети, мы имеем в виду именно соединение роутеров между собой. То есть для того, чтобы клиенты могли пользоваться Wi-Fi, у вас на каждом роутере должно быть как минимум две сети: первая - это mesh-сеть, она будет скрыта от обычных пользователей, вторая — это пользовательская Wi-Fi-сеть с публичным SSID. Таким образом, нам нужно будет выбрать диапазон как для связи между узлами, так и для клиентов.
Как я уже сказал, большинство роутеров поддерживает два диапазона: 2.4 ГГц и 5 ГГц. Чем они отличаются? 2.4 ГГц имеет больший радиус покрытия, но меньшую скорость. 5 ГГц, наоборот, скорость больше, но при этом зона покрытия меньше. Ну и помним, что 2.4 ГГц практически везде, особенно в многоквартирных домах, перегружен.
Поэтому я настоятельно рекомендую использовать для mesh-бэкхола (связи между узлами) диапазон 5 ГГц. Почему? 5 ГГц предлагает больше непересекающихся каналов и меньшую загруженность в многоквартирных домах. Да, для охвата всей территории вам, возможно, потребуется поставить больше роутеров, но всё же вы выиграете в производительности. Хотя у каждого правила есть исключения. Если вы находитесь на даче и понимаете, что у вас нет соседей с роутерами, ваш радиоэфир достаточно чистый и у вас будет всего пара клиентов, то оправдано для mesh использовать 2.4 ГГц. Так вы сможете условно добросить сигнал от дома до бани. Но если вы живёте в многоквартирном доме или если вы не знаете, какой диапазон выбрать, используйте 5 ГГц.
Но выбор диапазона mesh-сети - это только полдела. Теперь нам нужно выбрать диапазон для клиентских устройств. Тут есть три варианта: выбрать 2.4 ГГц, 5 ГГц или гибрид (2.4 и 5).
Если mesh-сеть у нас на 5 ГГц, то выбирать для клиентской сети 5 ГГц точно не стоит, так как роутеры будут в этом случае конкурировать за эфир с клиентами, что приведёт к быстрой деградации сети.
Хорошим вариантом будет выбор отдельного диапазона для клиентской сети - 2.4 ГГц. В этом случае клиентские устройства не будут мешать служебной сети, но будут конкурировать между собой в итак узкой полосе скорости. Опять же всё зависит от условий. Если диапазон 2.4 ГГц не перегружен клиентами, можно использовать такое решение.
Но оптимальным вариантом будет создание гибридной сети - один клиентский SSID для диапазонов 2.4 и 5 ГГц. Часть устройств уйдёт в один диапазон, а часть в другой. Да, в ряде случаев будет конкуренция в диапазоне 5 ГГц между клиентами и роутерами, но потенциально этот диапазон имеет большую ёмкость, чем 2.4 ГГц.
Важный лайфхак. На каждом роутере вы можете создавать свою клиентскую сеть, в том числе и с разными SSID и для разных диапазонов. Например, вы можете сделать в каком‑то сегменте сети (только на паре роутеров) гостевую сеть в диапазоне 2.4 ГГц, а свою сеть — в гибридном диапазоне. Так вы сможете слегка снизить нагрузку. Также на важных узлах вы можете сделать клиентскую сеть только на 2.4 ГГц. Да, это ухудшит качество связи клиентов, но зато защитит от деградации mesh-диапазона.
Следующий важный момент какие каналы выбрать для mesh-сети и для клиентской. Тут всё просто: выбираем наименее загруженные каналы. Но есть один нюанс. Все роутеры в mesh-сети должны вещать на одном канале. Если каналы будут разные, mesh-сеть развалится. Поэтому для mesh-сети лучше всего выбрать наименее занятый канал и прописать его руками. А вот для второго диапазона (в нашем случае это 2.4 ГГц) для каждого роутера можно выбирать наименее загруженные каналы или даже поставить выбор канала в авто.
Роуминг
Теперь пару слов о роуминге. В комментариях к предыдущим статьям выяснилось, что суть роуминга разные пользователи понимают по-разному. Причина, скорее всего, кроется в том, что существует несколько видов роуминга. Давайте, чтобы навести порядок, немного по‑теоретизируем на эту тему.
Роуминг в Wi-Fi-сетях — это процесс автоматического переключения клиентского устройства (смартфона, ноутбука) от одной точки доступа к другой при перемещении пользователя в пределах одной сети (одного SSID). Главная цель роуминга — сохранить активное сетевое соединение (не разорвать звонок в Telegram, не прервать загрузку видео), когда сигнал от текущего роутера становится слабым, а от соседнего — более сильным.
Как это работает (три этапа):
Сканирование (Scanning): Клиент понимает, что сигнал слабеет, и ищет другие точки с тем же именем сети (SSID).
Выбор (Selection): Клиент решает, к какой из найденных точек лучше подключиться (обычно по уровню сигнала RSSI).
Переаутентификация (Re-association): Устройство отключается от старой точки и авторизуется на новой.
Выделяют несколько видов роуминга. Первые два можно реализовать в сетях SOHO-сегмента без использования корпоративных средств. Но для продвинутого решения уже потребуется Wi-Fi-контроллер.
Обычный роуминг. Решение принимает исключительно клиент. Происходит кратковременный разрыв связи (от 500 мс до нескольких секунд), так как устройству нужно заново «представиться» новой точке. Для этого вида роуминга не нужно никаких хитрых решений. Только сеть с одинаковыми SSID, и если в сети у вас будет один общий DHCP, то вы вполне сможете уложиться в 500 мс при переподключении. И большинство приложений на своём уровне даже не заметят данное переподключение, так как кэшируют некоторую часть потока для плавного преодоления перебоев.
Бесшовный роуминг (Fast Transition, 802.11r). Точки доступа заранее обмениваются ключами шифрования. Переключение происходит за 50–100 мс, что незаметно для человеческого уха или видеосвязи, даже если ваше приложение ничего не успело закэшировать.
Управляемый роуминг (802.11k/v). Сеть «подсказывает» клиенту, на какую точку лучше перейти и когда это сделать, предотвращая ситуацию, когда телефон «цепляется» за слабый сигнал до последнего. Бонусом является возможность балансировки клиентов: не просто передать клиента на точку с мощным сигналом, а ещё выбрать точку менее загруженную.
В OpenWrt роуминг реализуется через стандарт 802.11r (Fast Transition) — быстрый переход. Он также настраивается в /etc/config/wireless, и, на мой взгляд, это подойдёт для всех офисных и домашних сетей, да и для сетей уровня предприятия тоже.
Что нужно для корректного роуминга 802.11r:
Базово это одинаковый SSID и пароль на всех точках (и на mesh-интерфейсе, и на клиентских AP); один DHCP-сервер, выдающий адреса каждому клиенту; включенный и настроенный 802.11r роуминг. Давайте перейдём к разбору этих параметров конфигурационного файла /etc/config/wireless, отвечающих за роуминг.
ieee80211r
802.11r должен быть включён на всех клиентских AP. Тут всё просто: параметр ieee80211r в значении 1 в секции wifi-iface.
mobility_domain
Один и тот же Mobility Domain (например, 2323) для всех узлов. Mobility Domain (домен мобильности) это логическая группа точек доступа (AP), внутри которой клиентское устройство может быстро переключаться (роуминг) без повторного прохождения полной процедуры авторизации. Это ключевое понятие стандарта 802.11r (Fast BSS Transition). Указывается в секции wifi-iface:
option mobility_domain 'abcd'
nasid
NAS Identifier (NAS-ID) — это уникальное текстовое имя (идентификатор) сетевого устройства, которое выступает в роли сервера доступа к сети (Network Access Server). В контексте настройки роутеров и Wi-Fi (особенно в OpenWrt) этот параметр используется в двух основных сценариях: для RADIUS-сервера (в этой статье рассматривать не будем) и для бесшовного роуминга (802.11r). В сетях с быстрым переключением между точками доступа NAS-ID служит уникальным «именем» конкретного радиоинтерфейса или роутера. Зачем это нужно? Когда ваш смартфон переходит от одного роутера к другому, новая точка доступа должна однозначно идентифицировать себя, чтобы правильно обменяться ключами шифрования с предыдущей точкой.
Как настраивать: в OpenWrt рекомендуется задавать уникальный NAS-ID для каждой точки доступа (например, AP_LivingRoom, AP_Kitchen или просто MAC-адрес без двоеточий). Важно: если оставить поле пустым, OpenWrt часто подставляет часть MAC-адреса автоматически, но в некоторых версиях прошивки отсутствие явного NAS-ID может привести к ошибкам запуска Wi-Fi. Многие ошибочно считают, что его можно не указывать. На практике, если не заполнить NAS-ID уникальным значением (например, MAC-адресом без двоеточий), точка доступа может не поднять интерфейс или клиенты не смогут подключиться. Этот параметр должен быть уникальным для каждого узла.
ft_over_ds (FT Protocol)
В стандарте 802.11r существует два метода быстрого перехода (Fast Transition, FT):
FT over-the-Air (ft_over_ds=0): Клиент отправляет запрос на аутентификацию новой точке доступа напрямую «по воздуху». Плюсы: это наиболее универсальный метод, который поддерживается практически всеми современными устройствами (включая iPhone и Android). Минусы: требует, чтобы клиент находился в зоне прямой видимости (радиопокрытия) новой точки доступа в момент начала процесса.
FT over-the-DS (ft_over_ds=1): Клиент общается с новой точкой доступа через текущую. Плюсы: теоретически может быть надёжнее, если радиоэфир сильно зашумлён. Минусы: многие клиентские устройства плохо поддерживают этот режим или не поддерживают вовсе, что часто приводит к обрывам связи при роуминге в OpenWrt.
Рекомендация для OpenWrt. Для большинства домашних и офисных сетей на базе OpenWrt рекомендуется устанавливать ft_over_ds в значение 0 (выключено). Это обеспечивает наилучшую совместимость с мобильными гаджетами и более стабильный «бесшовный» переход без прерывания звонков (VoIP) или видеосвязи.
Безопасность
Ну что ж, с роумингом разобрались, теперь можем начать настраивать сам mesh и разобрать параметры, которые отвечают за его конфигурацию. Но прежде небольшое отступление о безопасности. Из предыдущих статей вы понимаете, что не стоит создавать открытых сетей без шифрования. Это замечание актуально и для mesh. Но важный момент: стандартный пакет wpad-basic-mbedtls не поддерживает mesh. Вам нужен wpad-mesh-mbedtls или wpad-mesh-openssl.
Проверить это можно через LuCI или в консоли:
opkg update opkg install wpad-mesh-mbedtls
Если у вас уже установлен другой wpad-пакет, его нужно сначала удалить, а потом установить mesh-версию. Без этого mesh-интерфейс просто не поднимется.
Параметры настройки mesh
mesh_rssi_threshold
Этот параметр определяет минимальный уровень сигнала (порог), при котором два роутера в mesh-сети соглашаются «общаться» друг с другом. В OpenWrt он настраивается в файле /etc/config/wireless внутри секции config wifi-iface для режима mesh.
Зачем он нужен? В беспроводной ячеистой сети (802.11s) узлы постоянно ищут соседей. Если этот порог не задан:
Роутер может увидеть очень далёкий узел со слабым сигналом (например, –88 dBm).
Он попытается построить через него маршрут.
Из‑за плохого сигнала пакеты будут теряться, возникнут задержки, и скорость всей сети упадет.
Рекомендации по значениям:
–80...–90 (по умолчанию): слишком слабый порог. Сеть будет пытаться держать связь «до последнего вздоха», что сделает её медленной и нестабильной.
–70...–75: оптимально для большинства домашних сетей. Гарантирует, что узлы соединяются только при уверенном приёме.
–60...–65: для высокоскоростных сетей, где узлы стоят очень близко друг к другу.
Важный момент: этот параметр отвечает именно за прокладку маршрута через точки со слабым сигналом, но не отвечает за чистоту эфира. Поэтому главное, с чего нужно начать, — добиться по возможности того, чтобы каждая точка не видела ненужных соседей. Для этого понижаем мощность передатчика до оптимальных значений, чтобы очистить эфир, и затем отсекаем слабые маршруты, которые могут остаться, через mesh_rssi_threshold.
mesh_fwding
Это параметр в настройках интерфейса 802.11s (mesh) в OpenWrt, который определяет, будет ли конкретный роутер работать как ретранслятор для других узлов сети. Простыми словами: разрешаете ли вы этому устройству пересылать «чужие» пакеты дальше по цепочке.
Как это работает:
option mesh_fwding '1'(включено по умолчанию): узел полноценно участвует в жизни mesh-сети. Если соседнему роутеру нужно передать данные через него, он их примет и переправит дальше. Это основа ячеистой топологии.option mesh_fwding '0'(выключено): узел становится «эгоистом». Он отправляет и получает только свои данные. Он не будет помогать другим узлам связываться друг с другом, даже если он — единственный мостик между ними.
Многие не понимают, зачем нужен этот параметр, ведь если мы убираем его в 0, мы по сути делаем из mesh-сети обычную сеть «точка‑точка» и теряем все преимущества. На самом же деле этот параметр крайне полезен для пограничных узлов, расположенных на краю сети. То есть мы понимаем, что задача такого узла — добросить данные до удалённых клиентов, и ретранслировать ему ничего особо не нужно. Выключаем форвардинг и за счёт этого повышаем эффективность всей mesh-сети. Изначально неэффективные маршруты через этот узел строиться не будут.
mesh_ttl
Установка параметра mesh_ttl '1' в OpenWrt означает, что пакеты данных в вашей mesh-сети смогут совершить только один «прыжок» (hop). Это фактически убивает суть mesh-сети как многоузловой структуры.
Что произойдёт на практике:
Связь только с прямыми соседями. Каждый роутер сможет «общаться» только с теми узлами, которые он видит напрямую по радиоканалу.
Запрет ретрансляции. Если узел А видит узел Б, а узел Б видит узел В (но А не видит В), то при
mesh_ttl '1'данные от А никогда не дойдут до В через посредника Б. Пакет будет уничтожен узлом Б, так как его «время жизни» (TTL) истекло.Топология «звезда». Ваша сеть превратится из ячеистой в обычную структуру, где все дополнительные модули должны находиться в радиусе прямой видимости главного роутера.
Обычно не применяется. Значение по умолчанию составляет 31 хоп, что вполне достаточно. Иногда выставляют 1 для диагностики, чтобы отследить маршрут пошагово. Иногда понижают в слишком зашумлённых сетях, чтобы сократить излишние пересылки и заставить искать эффективный маршрут. Настраивается также в файле /etc/config/wireless в секции mesh-интерфейса.
Рекомендация: если вы строите полноценную mesh-систему для покрытия большого дома, не ставьте значение 1. Оставьте стандартное 31 или хотя бы 5–10, чтобы узлы могли передавать данные друг через друга.
mcast_rate
Multicast Rate это параметр в настройках Wi-Fi (включая OpenWrt), который устанавливает фиксированную скорость передачи многоадресного (multicast) и широковещательного (broadcast) трафика. Настраивается также в секции wifi-iface.
По умолчанию в Wi-Fi-сетях такой трафик передаётся на самой низкой базовой скорости (обычно 1 или 6 Мбит/с), чтобы его точно «услышали» даже самые далёкие и слабые клиенты.
Зачем менять этот параметр?
Потоковое видео и IPTV. Если вы смотрите ТВ через Wi-Fi, стандартной низкой скорости может не хватить для плавного изображения. Повышение
mcast_rateпозволяет передавать видео в высоком качестве.Оптимизация эфира. Медленная передача мультикаста (например, служебных пакетов сети) занимает много «экранного времени» роутера. Увеличив скорость, вы освобождаете эфир для обычного трафика (unicast).
Стабильность mesh. В mesh-сетях (802.11s) через мультикаст передаётся много служебной информации о маршрутах. Слишком низкая скорость может замедлять реакцию сети.
Но если вы слишком сильно увеличите mcast_rate, есть шанс, что роутеры со слабым сигналом могут вообще отвалиться от сети и не смогут получить адрес по DHCP. Чтобы определить оптимальное значение для вашей сети, нужно только экспериментировать. Базовые рекомендации зависят от диапазона:
Для 2.4 ГГц обычно ставят 6000 или 12000 (Кбит/с).
Для 5 ГГц можно пробовать 12000 или 24000.
Итоговой конфиг для примера
# ============================================ # Файл: /etc/config/wireless # Пример конфигурации для Mesh-сети на OpenWrt # ============================================ # ---------- Физическое радио 1 (5 ГГц) ---------- # Используется для mesh-бэкхола (связь между узлами) # Все узлы должны работать на одном канале! config wifi-device 'radio5' option type 'mac80211' option band '5GHz' option channel '36' # Одинаковый канал для всех узлов option country 'RU' option htmode 'VHT80' # Ширина канала 80 МГц option txpower '18' # Умеренная мощность, чтобы не мешать дальним соседям # Mesh-интерфейс на 5 ГГц (служебная сеть) config wifi-iface 'mesh_backhaul' option device 'radio5' option ifname 'mesh0' option mode 'mesh' option mesh_id 'MyHomeMesh' # Идентификатор mesh-сети (одинаковый на всех узлах) option encryption 'sae' # WPA3-SAE для защиты mesh-бэкхола option key 'strongmeshkey2026' option mesh_fwding '1' # Ретрансляция включена (кроме пограничных узлов) option mesh_ttl '31' # Количество хопов (по умолчанию 31) option mesh_rssi_threshold '-75' # Отсекаем сигналы слабее -75 dBm option mcast_rate '24000' # Скорость мультикаста для 5 ГГц option network 'lan' # Привязка к LAN (единая L2-сеть) # ---------- Физическое радио 2 (2.4 ГГц) ---------- # Используется для клиентского доступа config wifi-device 'radio24' option type 'mac80211' option band '2.4GHz' option channel 'auto' # Можно оставить авто, если эфир не перегружен option country 'RU' option htmode 'HT40+' # Ширина канала 40 МГц option txpower '20' option disabled '0' # Клиентская точка доступа с бесшовным роумингом (802.11r) config wifi-iface 'default_ap' option device 'radio24' option mode 'ap' option ssid 'MyHomeWiFi' # Одинаковый SSID на всех узлах option encryption 'psk2' # WPA2-Personal option key 'mysecretpassword' option network 'lan' # Клиенты в той же сети, что и mesh option isolate '0' # Изоляция клиентов отключена option wmm '1' # QoS включено option maxassoc '30' # Максимум клиентов # Параметры бесшовного роуминга 802.11r option ieee80211r '1' option mobility_domain 'abcd' # Одинаковый домен для всех узлов option nasid 'AABBCCDDEEFF' # Уникальный NAS-ID для каждого узла option ft_over_ds '0' # FT over the Air option ft_psk_generate_local '1' # Для WPA2-PSK
Вместо заключения
По традиции я заканчиваю статьи этого цикла советом «крутить не более одной ручки за раз», имея в виду изменение параметров по одному и оценку того, что получилось. Но, пожалуй, в этой статье нужно ещё определить порядок, в каком какие ручки конкретно крутить. Начните с проектировки на бумаге. Затем расставьте точки, как запланировали. Добейтесь приемлемой мощности сигнала на точках так, чтобы они не мешали дальним соседям. Выберите оптимальные каналы и ширину канала сначала только для mesh-сети. Добейтесь стабильного соединения узлов. После этого переходите к настройке клиентских сетей, также выбирая для них диапазон, канал и его ширину. Для сети из нескольких устройств это можно сделать руками. Для больших же сетей хочу посоветовать замечательный пакет mesh11sd.
mesh11sd (Mesh 802.11s Daemon) - это специализированная утилита для OpenWrt, предназначенная для автоматизации настройки и управления беспроводными ячеистыми сетями стандарта 802.11s. Если стандартный OpenWrt требует ручного прописывания интерфейсов, ключей и параметров в /etc/config/wireless, то mesh11sd берёт на себя роль «автопилота».
Основные задачи mesh11sd:
Автоматическая конфигурация. Демон сам создаёт и настраивает mesh-интерфейсы на радиомодулях роутера. Вам не нужно вручную прописывать
mode 'mesh'илиmesh_id.Управление безопасностью (SAE). Он упрощает настройку защищённых соединений между узлами (WPA3-SAE), что часто вызывает сложности при ручной правке конфигов.
Динамический выбор параметров. Утилита может подстраивать параметры mesh-сети в реальном времени, основываясь на состоянии эфира.
Поддержка JSON-RPC. Это позволяет внешним приложениям или скриптам легко получать данные о состоянии сети и менять настройки без перезагрузки всего Wi-Fi-модуля.
Пакет доступен в официальных репозиториях OpenWrt. Но для работы ему обязательно нужен установленный пакет wpad-mesh (например, wpad-mesh-wolfssl или wpad-mesh-mbedtls). Обычно настройки хранятся в /etc/config/mesh11sd. Если интересно, напишите в комментариях, и я разберу работу этого пакета в отдельной статье.
P.S. Поделитесь в комментариях своим опытом настройки mesh в OpenWrt, и я добавлю ваши рецепты и рекомендации к тексту статьи, чтобы данное руководство стало максимально полным.
