Engenharia reversa do protocolo inform da UniFi para roteamento multi-inquilino

✍️ OpenClawRadar📅 Publicado: March 9, 2026🔗 Source
Engenharia reversa do protocolo inform da UniFi para roteamento multi-inquilino
Ad

Estrutura do protocolo inform UniFi

Cada dispositivo UniFi (pontos de acesso, switches, gateways) se comunica com seu controlador via HTTP POST na porta 8080 a cada 10 segundos. Isso lida com estatísticas do dispositivo, sincronização de configuração, versões de firmware e contagens de clientes. Embora a carga útil seja criptografada com AES-128-CBC, o cabeçalho contém a identificação do dispositivo em texto simples.

Detalhes do cabeçalho do pacote

Os primeiros 40 bytes de cada pacote inform não são criptografados:

Deslocamento Tamanho Campo
────── ───── ──────────────────────────
0      4B    Mágico: "TNBU" (0x544E4255)
4      4B    Versão do pacote (atualmente 0)
8      6B    Endereço MAC do dispositivo
14     2B    Flags (criptografado, compactado, etc.)
16     2B    Comprimento do IV AES
18     16B   IV AES
34     4B    Versão dos dados
38     4B    Comprimento da carga útil
42+    var   Carga útil criptografada (AES-128-CBC)

O endereço MAC no deslocamento de byte 8 está completamente não criptografado. "TNBU" é "UBNT" ao contrário (símbolo de ticker da Ubiquiti e credenciais SSH padrão).

Ad

Extração de MAC e roteamento

A extração do MAC requer código mínimo:

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

Com o MAC em mãos, o roteamento se torna simples: mantenha uma tabela mapeando endereços MAC para inquilinos e, em seguida, encaminhe todo o pacote (cabeçalho e carga útil criptografada inalterados) para o backend correto. O proxy pode ser implementado em cerca de 200 linhas de Go com uma tabela de pesquisa MAC-para-inquilino na memória.

Visão geral das portas do controlador

Outras portas do controlador incluem:

  • 8443 TCP/HTTPS: Interface web e API
  • 3478 UDP: STUN
  • 6789 TCP: Teste de velocidade (interno)
  • 27117 TCP: MongoDB (interno)
  • 10001 UDP: Descoberta L2 (apenas local)

O roteamento baseado em MAC serve principalmente como um fallback para casos extremos, como dispositivos que ainda não foram reconfigurados ou dispositivos com reset de fábrica sendo readotados. Uma vez adotados, os dispositivos podem ser direcionados para subdomínios específicos do inquilino usando roteamento de cabeçalho Host padrão.

📖 Leia a fonte completa: HN AI Agents

Ad

👀 See Also

GoModel: Um Gateway de IA Leve e de Código Aberto Escrito em Go
Tools

GoModel: Um Gateway de IA Leve e de Código Aberto Escrito em Go

GoModel é um gateway de IA de código aberto que fornece uma API unificada compatível com OpenAI para vários provedores, incluindo OpenAI, Anthropic, Gemini, Groq, xAI e Ollama. Ele apresenta uma imagem Docker de 17MB, 44x menor que a LiteLLM, com configuração priorizando variáveis de ambiente e observabilidade integrada.

OpenClawRadar
Seis ferramentas de código aberto que abordam os problemas de segurança, custo e complexidade do OpenClaw
Tools

Seis ferramentas de código aberto que abordam os problemas de segurança, custo e complexidade do OpenClaw

Um desenvolvedor testou seis ferramentas da comunidade para resolver as lacunas de segurança do OpenClaw sinalizadas pela Cisco, custos crescentes e configuração complexa. ClawSec fornece varredura de segurança e verificação de integridade, Antfarm permite fluxos de trabalho multiagente determinísticos e LanceDB Pro melhora a recuperação de memória com busca vetorial híbrida.

OpenClawRadar
A extensão OpenClaw roteia solicitações através do Claude Code CLI em vez da API
Tools

A extensão OpenClaw roteia solicitações através do Claude Code CLI em vez da API

Uma extensão do OpenClaw inicia o binário CLI do Claude como um subprocesso, roteando solicitações através do Claude Code CLI em vez da API da Anthropic. Isso oferece a experiência completa do Claude Code pela taxa fixa de um plano máximo.

OpenClawRadar
Black LLAB: Arquitetura de Código Aberto para Roteamento Dinâmico de Modelos e Agentes de IA em Sandbox Docker
Tools

Black LLAB: Arquitetura de Código Aberto para Roteamento Dinâmico de Modelos e Agentes de IA em Sandbox Docker

Um desenvolvedor disponibilizou em código aberto o Black LLAB, um sistema que utiliza o Mistral 3B para direcionar prompts entre modelos locais e na nuvem e executa agentes de IA em contêineres Docker isolados com integração OpenClaw.

OpenClawRadar