Обратная разработка протокола UniFi inform для маршрутизации в мультитенантной среде

✍️ OpenClawRadar📅 Опубликовано: 9 марта 2026 г.🔗 Source
Обратная разработка протокола UniFi inform для маршрутизации в мультитенантной среде
Ad

Структура протокола UniFi inform

Каждое устройство UniFi (точки доступа, коммутаторы, шлюзы) связывается со своим контроллером через HTTP POST на порт 8080 каждые 10 секунд. Это передаёт статистику устройств, синхронизацию конфигураций, версии прошивок и количество клиентов. Хотя полезная нагрузка зашифрована с помощью AES-128-CBC, заголовок содержит идентификацию устройства в открытом виде.

Детали заголовка пакета

Первые 40 байт каждого пакета inform не зашифрованы:

Смещение Размер Поле
────── ───── ──────────────────────────
0      4Б    Магия: "TNBU" (0x544E4255)
4      4Б    Версия пакета (в настоящее время 0)
8      6Б    MAC-адрес устройства
14     2Б    Флаги (зашифровано, сжато и т.д.)
16     2Б    Длина AES IV
18     16Б   AES IV
34     4Б    Версия данных
38     4Б    Длина полезной нагрузки
42+    var   Зашифрованная полезная нагрузка (AES-128-CBC)

MAC-адрес по смещению 8 байт полностью не зашифрован. "TNBU" — это "UBNT" наоборот (биржевой символ Ubiquiti и учетные данные SSH по умолчанию).

Ad

Извлечение MAC и маршрутизация

Извлечение MAC требует минимального кода:

header := make([]byte, 40)
if _, err := io.ReadFull(conn, header); err != nil {
    return err
}
if string(header[0:4]) != "TNBU" {
    return fmt.Errorf("not an inform packet")
}
mac := fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x", 
    header[8], header[9], header[10], 
    header[11], header[12], header[13])

Получив MAC-адрес, маршрутизация становится простой: поддерживайте таблицу, сопоставляющую MAC-адреса с арендаторами, а затем пересылайте весь пакет (заголовок и зашифрованную полезную нагрузку без изменений) на нужный бэкенд. Прокси можно реализовать примерно в 200 строках Go с таблицей поиска MAC-адресов в памяти.

Обзор портов контроллера

Другие порты контроллера включают:

  • 8443 TCP/HTTPS: Веб-интерфейс и API
  • 3478 UDP: STUN
  • 6789 TCP: Тест скорости (внутренний)
  • 27117 TCP: MongoDB (внутренний)
  • 10001 UDP: Обнаружение L2 (только локально)

Маршрутизация на основе MAC-адресов в основном служит запасным вариантом для крайних случаев, таких как устройства, которые ещё не были перенастроены, или сброшенные до заводских настроек устройства, которые снова подключаются. После подключения устройства можно направить на субдомены конкретных арендаторов с использованием стандартной маршрутизации по заголовку Host.

📖 Read the full source: HN AI Agents

Ad

👀 Смотрите также

Представляем Swarmhook: бесплатные и с открытым исходным кодом вебхуки для вашего бота.
Инструменты

Представляем Swarmhook: бесплатные и с открытым исходным кодом вебхуки для вашего бота.

Swarmhook.com предлагает бесплатные и открытые вебхуки для эффективного управления событиями ваших ботов, упрощая автоматизацию и реакцию.

OpenClawRadar
Инструмент Squeez сжимает вывод bash на 90%+, расширяя контекстное окно кода Claude.
Инструменты

Инструмент Squeez сжимает вывод bash на 90%+, расширяя контекстное окно кода Claude.

Squeez — это хук, который автоматически сжимает необработанный вывод bash, такой как ps aux, docker logs и git log, до того, как он достигнет Claude Code. Он сокращает использование токенов в среднем на 92,8% для 19 распространённых команд, помогая сессиям длиться дольше.

OpenClawRadar
Плагин Claude Code анализирует любой плагин и создаёт интерактивные вики-отчёты.
Инструменты

Плагин Claude Code анализирует любой плагин и создаёт интерактивные вики-отчёты.

Новый плагин Claude Code под названием vision-powers анализирует любой путь плагина или URL GitHub и генерирует интерактивный HTML-вики-отчет с архитектурными диаграммами, аудитами безопасности и разбивкой навыков. Установка осуществляется через claude plugin add vision-powers@claude-code-zero.

OpenClawRadar
Эксперимент по сравнительному анализу кода с использованием трех ИИ-инструментов на одной кодовой базе
Инструменты

Эксперимент по сравнительному анализу кода с использованием трех ИИ-инструментов на одной кодовой базе

Видеоэксперимент тестирует Codex, Claude Code и Claude Code с Sextant на одинаковых задачах по ревью кода, где Codex проверяет результаты и оценивает, какой отчёт более полезен. Основное внимание уделяется тому, как рабочий процесс и структура влияют на то, что замечает ИИ и что он приоритезирует.

OpenClawRadar