Назначение

Узел распределённой 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 и не ускоритель — выходной узел отдаёт чужой трафик как есть, без кеширования контента.