Full mesh без ручной возни
WireGuard-mesh связывает каждый узел с каждым туннелями «точка-точка». Это работает, но в одиночку вам придётся вручную управлять узлами, ключами, адресами и обходом NAT, и работы становится больше с каждым новым узлом. Vexaro Mesh, который сейчас в разработке, должен давать тот же full mesh как управляемый продукт, который берёт пиринг, ключи и обход NAT на себя.
Что такое WireGuard mesh
WireGuard, быстрый современный VPN-протокол, соединяет два узла простым туннелем, прошедшим аудит. «WireGuard mesh» значит, что с его помощью соединяют много узлов так, чтобы каждый мог напрямую связаться с любым другим. Это и есть full mesh, в отличие от маршрутизации через один сервер.
Туннели «точка-точка» между всеми узлами
В full mesh каждый узел держит прямой туннель к каждому другому, поэтому трафик между любыми двумя узлами идёт кратчайшим путём без центрального ретранслятора. Именно поэтому mesh-сеть работает быстро.
Загвоздка: всё вручную
Сам WireGuard не управляет узлами, не распределяет ключи, не выделяет адреса и не пробивает NAT. В самодельной mesh каждый новый узел означает обновление списка узлов и ключей на остальных, и работа растёт пропорционально квадрату числа узлов.
Обход NAT не встроен
WireGuard должен заранее знать, как связаться с каждым узлом. За NAT поверх него нужен механизм обнаружения и hole punching, а также запасной вариант на случай, когда прямое соединение не устанавливается. Базовый протокол ничего из этого не даёт.
Как Vexaro планирует взять это на себя
Что Vexaro Mesh должен взять на себя, чтобы вам не пришлось самим обслуживать все эти механизмы.
Автоматическое подключение
Шлюзы должны сами находить друг друга и поднимать full mesh, поэтому при добавлении или удалении узла не придётся править списки узлов на каждой машине.
Управляемые ключи
Ключевой материал планируется выдавать и обслуживать за вас, так что не придётся вручную генерировать, раздавать и менять ключи в растущей сети, где легко ошибиться.
Обход NAT, заложенный в проект
Узлы за NAT должны соединяться напрямую везде, где позволяет сеть, а в остальных случаях через ретранслятор. Пробрасывать порты и заводить публичные адреса не нужно.
Централизованные политики
Правила доступа планируется задавать централизованно из одной консоли. Базовая настройка WireGuard оставляет этот слой вам.
Самодельная WireGuard mesh против управляемой
Эксплуатационное сравнение самодельной WireGuard mesh и управляемого full mesh. Речь о том, кто делает работу, а не о качестве протокола.
| Vexaro (управляемая mesh, в планах) | Самодельная WireGuard mesh | |
|---|---|---|
| Подключение | Автоматическое обнаружение | Списки узлов вручную на каждом узле |
| Управление ключами | Выдача и обслуживание за вас | Генерация / распределение вручную |
| Обход NAT | Встроен: напрямую, ретранслятор про запас | Свой STUN и ретранслятор |
| Политики | Централизованно | Конфиг / скрипты на каждом узле |
Честное примечание о протоколах
WireGuard является хорошим современным протоколом, и мы его не критикуем: эта страница о практической стороне эксплуатации full mesh. Такие инструменты, как Tailscale и NetBird, строят управляемые mesh-сети на WireGuard. Vexaro Mesh в разработке, и на этом сайте мы не называем протокол туннеля, который он будет использовать; трафик планируется защищать современной криптографией. Здесь сравнивается самостоятельная эксплуатация с управляемой, а не один протокол с другим.
Где уместна управляемая mesh
Вы хотите скорость и прямоту full-mesh, но не хотите вручную управлять узлами, ключами и адресами по мере роста числа узлов.
Ваши узлы находятся за NAT, и вы не хотите сами строить и обслуживать STUN, hole punching и запасной ретранслятор.
Вам нужны эксплуатационные функции, например централизованные политики и аудит, которые при базовой конфигурации WireGuard придётся собирать самим.
Вы предпочитаете подключать целые площадки через шлюзы, а не поддерживать настройки туннелей на каждом устройстве парка.