Причиной для написания этой заметки стала очередная итерация обсуждения с потенциальными заказчиками функционала ПО.
Когда в очередной раз я услышал, что Wive не умеет MESH, то сразу же задал встречный вопрос в формате «а что вы под MESH подразумеваете и какую задачу хотите им решить?».
Чем привёл оппонента в замешательство, “ну ведь все же знают”, казалось думал он, но боялся сказать в слух…
И тут я почувствовал, что очередного ликбеза не избежать, т.к. из-за терминологического ада вокруг MESH чаще всего вопрошающий имеет в виду совсем иное и спрашивает о наличии функционала к MESH не имеющего ровным счётом никакого отношения…
Так вот, что бы не повторяться ещё миллион и один раз придётся написать заметку в 3х частях.
1. Терминология, реализация, маркетинг
2. Настройка сети с бесшовным роумингом (то что чаще всего, хотя и не верно, сейчас подразумевают произнося аббревиатуру MESH в слух) между узлами не зависимо от организации опорной сети (DS, хоть провод, хоть воздух). Т.е. целую статью о 3х (хорошо 5ти) галочках в Web интерфейса Wive необходимых для этого.
3. HandOff → расширенный инструментарий для того что бы заставить мигрировать (пусть и не всегда бесшовно) старые (не умеющих handover) или особенно кривые (безродные китайцы с али как пример) клиентские устройства.
Открываем Wiki и сразу же попадаем на самую верную формулировку:
«Ячеистая топология(mesh-сеть) – сетевая топология компьютерной сети, построенная на принципе ячеек, в которой рабочие станции сети соединяются друг с другом и способны принимать на себя роль коммутатора для остальных участников. Данная организация сети является достаточно сложной в настройке.
Однако при такой топологии реализуется высокая отказоустойчивость. Как правило, узлы соединяются по принципу «каждый с каждым».
Таким образом, большое количество связей обеспечивает широкий выбор маршрута трафика внутри сети — следовательно, обрыв одного соединения не нарушит функционирования сети в целом.»
Важные отличия от просто плоской сети выделены жирным.
Замечу, нет в определении никаких роумингов, нет и вообще упоминания провод или беспровод. Нет упоминания никаких mesh систем и прочих красивых и так ласкающих уши пользователя слов.
Зато определение говорит чётко, о связности каждый с каждым и динамическими маршрутами проходящими в зависимости от состояния сети (например умерших нод).
Так же из определения следует что есть некоторый алгоритм выбора оптимального маршрута… Т.е. это по сути крайне хитрое резервирование в контексте организации опорной сети…
И всё это делается с целью оптимизации доставки трафика произвольному узлу и обеспечения максимальной отказоустойчивости за счёт резервирования связности сети даже при выходе из строя того или иного узла сети.
Для wifi принят как стандарт только один такой протокол 802.11s.
Правда уже мало похоже на то, что вы понимаете под MESH?
А всё потому, что смешивание мух с котлетами излюбленный муркетологами ход и ничего более….
Как муркетолухам удалось связать несвязуемое и впихнуть невпихуемое даже не спрашивайте. Но по факту аббревиатура MESH (из уст заказчиков и пользователей) стала означать по сути банальную MultiAP сеть. Почему-то обязательно с поддержкой роуминга (802.11k/r/v) и возможно ещё какими-то плюшками (часто с около нулевой полезностью)… Но об этом чуть ниже.
Вы наверное уже догадались, что большинство устройств с заявленной поддержкой MESH не подпадает под это определение данное в Wikipedia и не поддерживают 802.11s. Уже просто потому что не умеет ни выбора маршрутов сложнее чем просто переключиться провод/беспровод (используя STP или иные костыли, а часто и этого не умеет), а клиентские устройства не могут и близко быть полноценными участниками MESH сети и брать на себя какие-то доп функции.
В общем подробнее о True MESH можно почитать тут https://en.wikipedia.org/wiki/IEEE_802.11s , а мы будем разбираться с реалиями.
Что же имел в виду пользователь/заказчик?
Да всё просто. Он хочет перемещаясь по квартире/офису/загородному дому иметь единое бесшовное покрытие и максимально возможные скорости в любой точке пространства. Ина этом всё…
В 99% случаев (из моей личной практики и практики коллег в т.ч. интеграторов) все приходящие клиенты начинающие разговор с “мне нужен MESH” имели в виду MultiAP сеть с бесшовным роумингом.
И MESH тут как бы сбоку. Т.е. абсолютно. ;)
И ему (пользователю) абсолютно не нужно ни одно из свойств MESH описанных выше. Как и DS по воздуху, т.к. это сразу ограничивает скорость, вносит доп задержки и вообще катастрофически сказывается на ёмкости сети. Особенно когда для DS нет отдельного, выделенного только для этих целей радиомодуля, работающего в отдельно выделенном для DS диапазоне частот.
По сути всё что ему нужно это плоская L2 сеть, где к какому бы узлу сети не подключился то, попал бы в одно и то же адресное пространство, получил тот же IP адрес, пошёл бы через тот же шлюз и вообще бы для клиента ничего не изменилось.
Если есть WiFi, то обычно добавляется требование что бы SSID на всех точках доступа был одинаковый, как и настройки авторизации/аутентификации/шифрования, что бы клиент при определённых условиях, используя handover смог переключиться на соседнюю AP и для него так же бы ничего бы не изменилось.
Кстати для этого желательно, что бы AP и клиенты поддерживали 802.11r, и особенно важно что бы AP анонсировали в этом ключе Mobile Domain который кроме того что является наравне с SSID фактором для выбора кандидата для миграции (MDIE как и SSID должны быть одинаковы на всех узлах ибо это в первую очередь признак что AP принадлежат одной сети) подсказывает клиентам что такие точки доступа не просто отдельные устройства, а единая сеть.
Ускорение аутентификации за счёт 802.11r в данном случае вторично и в PSK сетях (а дома у вас именно они) в общем-то почти ничего не даёт.
Так же не лишней была бы и поддержка 802.11k и 802.11v. Но это уже тема из других статей (см раздел роуминг).
Отмечу, выше не зря ни сказано ни слова о том как организована опорная сеть (DS). Ибо это не важно абсолютно.
Варианты могут быть как проводом (обычная эзернет сеть между всеми ТД собранная в один коммутатор, рекомендуемый вариант), так и беспроводом (APCLI/WDS/etc), смешанной, где часть узлов объеденные проводом, часть по воздуху.
Или же вообще каждая ТД может иметь свой канал в мир (например через LTE модемы, причём даже разных сотовых операторов), а что бы получить единое L2 связное пространство может быть использован один из вариантов L2 туннелирования (L2TPv3 как пример) со сборкой сети на выделенном сервере (можно даже на VPS в зимбабве).
Единственное что нужно помнить при организации DS (кроме уже сказанного выше), так это то, что АП общаются между собой по средствам iaap (802.11f) и задержки тут критичны.
А значит если бесшовный роуминг с минимальным временем переключения в приоритете, то DS должна быть строго по проводу, т. к. любое радио это доп задержки просто по определению (буферизация, агрегация и прочие прелести с длинными очередями это всегда увеличение задержки).
И это не говоря уже о крайне неэффективном использовании эфирного времени (как минимум двойная утилизация на каждом хопе), что резко снижает ёмкость сети в целом и т.д. и т.п.
Так что же по факту требуеТся с точки зрения организации и настройки:
1) маршрутизатор на входе который собсно будет предоставлять нам выход в мир, рулить по DHCP адресами и т.д.
2) коммутатор куда воткнуты все ТД (можно использовать коммутатор встроенный в маршрутизатор если портов хватает)
3) нужное количество ТД куда будут подключаться клиенты
4) на всех устройствах ТД и роутере должны быть заданы одинаковые параметры аутентификации, SSID. По возможности должна быть включена поддержка 802.11k/r/v (настройки на всех узлах для этих протоколов включая Mobile Domain) должны совпадать
5) там где нельзя (крайне редко, чаще просто лень) проложить кабель используем любую схему организации DS по воздуху (APCLI/WDS/etc), но лучше избегать DS по воздуху вообще.
Всё остальное уже нюансы зависящие от того что именно хотим получить. Будь то выбор каналов, выбор типа авторизации (например использование WPA Enterprise для сквозной аутентификации в сети предприятия).
Умеет ли всё это Wive-NG? Ну вообще-то да. Более того умеет как минимум 8 лет как (а может и больше). И именно мы предоставили поддержку 802.11k/r на младших чипах от МТК в сверх бюджетных маршрутизаторах из коробки первыми как минимум в РФ. ;)
Даже больше скажу. Wive-NG умеет много больше и некоторые вещи скрыты от глаз и вообще не требуют настройки, однако существенно повышают шансы на бесшовную миграцию между узлами под управлением Wive. ;)
Вся настройка сводится к переключению нужного числа устройств в режим АП и простым действиям описанным выше…
А уж хитрый HandOff позволяющий даже самых упёртых и кривых клиентов вынудить мигрировать при этом по возможности не мешая нормальным клиентам.
В следующей части, наглядно рассмотрим настройку сети с бесшовной миграцией между узлами и DS по проводу.
P.S. В Wive такие сети традиционно носят название Multi AP Networks. ;) И не требуют для обеспечения бесшовного роуминга никаких контроллеров, или “меш систем” с “проводными репитерами” и прочими маркетинговыми названиями для простых вещей типа точек доступа. Терминологический ад разводимый маркетологами к сожалению уже вышел за грани разумного. Будем по возможности избегать оного.
P.S2. После публикации коллеги подкинули мне ещё мнение. Типа MESH обязательно подразумевает что DS поднята по радио. Ну вообще-то DS по радио называется WDS ;) Во вторых MESH это топология сети, и в ней вообще может не быть радио. ;)
Грубо говоря MESH это сеть в которой обеспечивается резервирование за счёт связности каждый с каждым и изменения маршрутов прохождения трафика на лету для обхода мёртвых узлов или оптимизации доставки.
Кстати Самоорганизующиеся сети типа Yggdrasil тоже вполне себе MESH и они в разы ближе к MESH чем всё то, что представлено на рынке SOHO/SMB wifi. Но статья не о том, а о подмене понятий. А именно, что MESH, с подачи маркетологов, с точки зрения потребителя, обозначает всё что угодно, только не то что должно. ;)
Увы, но с этим придётся жить…
А уж резервирование провода по воздуху без планирования Wireless сегмента, да тем же радио модулем куда приземляем клиентские устройства это из области: “что бы сразу не заметить граблю, а потом матерясь искать таки причину чего же сеть работает то как…”. Да да, растягиваем “удовольствие” вместо решения проблемы с линком. =)
Существуют кейзы где MESH (в т.ч. гибридный провод, беспровод и ещё какой в кучу) применим и полезен. Но это не SOHO и не SMB. Ну и понимание того какую проблему решаем и почему именно так решаем, какие вылезут грабли (и т.д. и т.п.) быть обязано.
Так же есть проблема (как уже говорил выше), что большинство реализаций MESH (или того, что им называю вендоры) не имеет никакого отношения к единственному стандартизированному протоколу оный описывающий. Привет несовместимость решений и прочие “радости”.
P.S3 Немного линков:
1) Стандарт https://en.wikipedia.org/wiki/IEEE_802.11s
2) Эволюция Mobile Mesh Networks https://www.researchgate.net/publication
3) SMS MESH сеть https://hackaday.io/project/176138-mesh-gateway Внезапно?;)
4) LAN MESH сеть https://techhub.hpe.com/eginfolib/networking/docs/switches/K-KA-KB/15-18/atmg/content/ch06s07.html
5) BT MESH https://en.wikipedia.org/wiki/Bluetooth_mesh_networking
6) Optical MESH https://en.wikipedia.org/wiki/Optical_mesh_network