Контроллеры и агенты
Статус, heartbeat, версия и действия — внутри проекта.
Сервисный доступ · вырос из NetBird
Сервисный доступ к системам объекта — с понятными границами для команды.
Выросли из NetBird
В основу взят подход NetBird к защищённой связности. SHD применяет его к обслуживанию объектов: проектные ACL, точный host:port, P2P с relay fallback, terminal и аудит.
Что решает агент
Агент стоит на постоянно работающей машине объекта и держит исходящее соединение. Локальная сеть наружу не открывается.
Пользователь не получает маршрут к подсети и не может подменить цель.
После регистрации LAN закрыт. Сначала политика порта, затем ACL и роль.
Статус, heartbeat, версия и действия — внутри проекта.
Рабочий список разрешённых IP:порт. Не обход ACL.
Стабильный name.access.xyz.su переживает смену внешнего IP.
Кто ходил, что открыто, почему отказ.
Три роли одного runtime
Один бинарь shd-agent. Режим зависит от того, где он стоит.
В сети объекта. Исходящий TLS, heartbeat, только сохранённые TCP-цели.
На компьютере инженера. Одна QUIC-сессия, параллельные HTTP, SSH и TCP.
На сервере. Gateway, Exit-node и speed test по route policy.
Маршрут запроса
Сервер авторизует. Данные идут P2P, если прямой путь недоступен — relay.
Overlay, публичный endpoint или туннель.
Пользователь, проект, сервис, роль, ревизия агента.
Сначала прямой QUIC. Если нет — бинарный relay.
Локальный TCP только к точному host:port.
HTTP, SSH, Loxone — своей обычной авторизацией.
Трафик напрямую между агентами. Relay данные не видит.
Если NAT или firewall мешают P2P, кадры идут через relay.
Одна QUIC-сессия на агент · отдельный stream на каждое TCP-соединение.
Безопасность
Право на проект сеть не открывает. Нужны роль, порт и ACL.
Модель доступа
Проект задаёт контекст, политика — сервис, ACL — кто проходит. Отзыв закрывает путь сразу.
Чтение агентов не равно праву менять настройки.
192.168.1.3:443 не открывает :80 и соседей.
Пользователь или группа, точный сервис, allow/deny.
Сессии закрываются сразу. Всё пишется в журнал.
Рабочий контур
От установки агента до терминала, маршрутов и разбора сбоев.
Web-интерфейсы и API сохранённых сервисов.
Браузерный SSH без локального агента. SFTP — отдельная роль.
name.access.xyz.su. ACL и логин приложения на месте.
Native L3 100.126.0.0/16. Обычный интернет-маршрут не ломается.
Выпуск трафика с IP серверного агента по route policy.
Push-first: sync, update, reboot. HTTP — запасной канал.
Ввод в эксплуатацию
Сначала runtime, потом точный сервис, доступ и проверка транспорта.
Постоянная машина, shd-agent, enrollment token.
Исходящий TLS, heartbeat, список сервисов.
Только нужные цели: 443, 875, 8123, 22.
Роли и ACL. По умолчанию LAN закрыт.
Overlay или endpoint, первый ответ, журнал.
Перед подключением
Короткие ответы о ролях runtime, маршруте данных, границах доступа, терминале и диагностике.
Это один Go-runtime с разными ролями. Controller-agent работает в сети объекта, user-agent — на рабочем устройстве инженера, server-agent — на сервере со специальными модулями.
Нет. Controller-agent сам устанавливает исходящее защищённое соединение. Пользователь получает доступ только к сохранённым сервисам, а не ко всей локальной сети.
После неудачи прямого QUIC-соединения user-agent активирует relay fallback. Первый запрос сохраняется, а данные идут бинарными кадрами через relay и controller-agent.
Нет, это не модель модуля. Разрешается точный service/host/port; broadcast, multicast, metadata, адреса backend и relay блокируются, а hostname проверяется по всем IP.
Любые явно добавленные TCP-сервисы, к которым агент имеет локальный доступ: HTTP/HTTPS, WebSocket, SSH, Loxone, Home Assistant и другие конкретные порты.
Да, browser SSH terminal не требует локального user-agent на телефоне или компьютере. Нужны роль terminal, сохранённые SSH username и credential; для SFTP дополнительно нужна роль sftp.
Это маршрут через server-agent: Routing gateway принимает трафик route group, relay связывает его с Exit-node, а Exit-node выпускает разрешённый трафик к целевому адресу со своего IP.
Удалите правило, порт или endpoint либо измените роль. Backend закрывает активные сессии, обновляет allowlist агента и фиксирует действие в журнале — старую сессию ждать не нужно.
Проверьте controller-agent online, user-agent, route policy, target из сети агента, shd99 и маршрут 100.126.0.0/16. Для транспорта смотрите p2p_first_byte, last_path, p2p_sent и relay_sent.
Да. Сначала проверяются сеть, контроллеры, target-порты, способы обслуживания и требуемые роли. Затем добавляется минимальный набор сервисов без автоматического доступа к остальной LAN.
Подключение объекта
Расскажите, какие контроллеры, устройства и операции нужно обслуживать удалённо. Мы разберём сеть объекта, роли runtime, точные порты, вариант транспорта и план запуска.
До первой встречи можно подготовить схему сети, список контроллеров, host:port сервисов, требования к terminal/SFTP и организационную модель доступа.