Назначение
Узел распределённой mesh-сети. Один процесс совмещает в себе роль точки входа клиентов и роль выходного узла; что именно активно и через какой соседний узел направлять трафик — задаётся политикой. Политика правится через административный интерфейс или непосредственно в конфиге.
Что закрывает
- Выбор региона исходящего трафика. Маршрутизация по доменам, диапазонам адресов или правилу по умолчанию. Каждое правило в политике указывает, через какие выходные узлы обслуживается соответствующий класс трафика.
- Унифицированный транспорт с HTTPS. Релейный канал использует тот же транспортный профиль (TLS 1.3 поверх 443/tcp) и слушает тот же порт, что и веб-сервер. Канал и обычный HTTPS-трафик одного и того же узла унифицированы по сетевым атрибутам; различие — в содержимом TLS.
- Самодостаточность. Узлы синхронизируют политику между собой. При недоступности мастер-узла сеть не останавливается: каждый выходной узел продолжает работать на закешированной политике. Возможен и standalone-запуск — с локально заданной политикой, без мастера вообще; для тестовых стендов и одиночных инсталляций.
Что это даёт в инфраструктуре
- Управление маршрутами трафика в одной точке. Политика лежит на мастер-узле, оттуда раскатывается на остальные. Не нужно вмешиваться в настройки клиентских устройств, веб-серверов или приложений по отдельности.
- Покрытие всего, что идёт через шлюз. Настройка на главном шлюзе организации сразу применяется ко всему, что через шлюз проходит: подключения сотрудников через VPN, гостевой Wi-Fi, серверы с их исходящими интеграциями со сторонними API. Не надо ставить агенты на каждое устройство и не надо переучивать пользователей.
- Контроль человеческого фактора. Пользователь не может «забыть включить нужный VPN». Маршрут зашит в политике на шлюзе и применяется всегда, без действий со стороны клиента.
- Предсказуемое поведение при сбоях. Недоступный выходной узел
даёт явную ошибку соединения (
connection refused/host unreachable), а не скрытый обход. Отвал мастера не останавливает уже работающие узлы — они доживают на закешированной политике до восстановления. - Постепенное расширение. Стартовать можно с двух узлов: шлюз и один выход в нужном регионе. Расширение — добавление одной виртуальной машины и одной строки в политике; никаких миграций, никаких изменений на стороне пользователя.
Архитектурно
- Транспорт между узлами: gRPC с включённым TLS — внешне обычный HTTP/2 с неизвестным содержимым.
- Аутентификация соседних узлов: HMAC-токены с ограничением частоты попыток и автоматическими бан-листами.
- Маршрутизация: по доменам (с подстрочными совпадениями), таблице диапазонов адресов и правилу по умолчанию.
- Локальный обход: трафик в локальные сети (RFC 1918) и
.local/.lanуходит напрямую, без захода в mesh.
Что не делает
- Не готовый потребительский VPN-сервис «скачал приложение — получил доступ». Мобильный и десктоп-клиент есть, но они подключаются к вашей mesh, которую вы сами развернули, а не к чужим серверам. Сам relay-узел — это инфраструктура; пользовательский доступ к ней может обеспечивать и то, что стоит перед ним: корпоративный VPN, WireGuard-mesh, домашний роутер.
- Не сетевой межсетевой экран. Политика relay’я — про маршрутизацию, не про фильтрацию по правилам ACL.
- Не CDN и не ускоритель — выходной узел отдаёт чужой трафик как есть, без кеширования контента.