UniFi 정보 프로토콜을 멀티테넌트 라우팅을 위해 역분석하기

UniFi inform 프로토콜 구조
모든 UniFi 장치(액세스 포인트, 스위치, 게이트웨이)는 10초마다 포트 8080으로 HTTP POST를 통해 컨트롤러에 연결합니다. 이는 장치 통계, 구성 동기화, 펌웨어 버전 및 클라이언트 수를 처리합니다. 페이로드는 AES-128-CBC로 암호화되어 있지만, 헤더에는 평문 장치 식별 정보가 포함됩니다.
패킷 헤더 세부 정보
모든 inform 패킷의 처음 40바이트는 암호화되지 않습니다:
오프셋 크기 필드 ────── ───── ────────────────────────── 0 4B 매직: "TNBU" (0x544E4255) 4 4B 패킷 버전 (현재 0) 8 6B 장치 MAC 주소 14 2B 플래그 (암호화, 압축 등) 16 2B AES IV 길이 18 16B AES IV 34 4B 데이터 버전 38 4B 페이로드 길이 42+ var 암호화된 페이로드 (AES-128-CBC)
바이트 오프셋 8의 MAC 주소는 완전히 암호화되지 않습니다. "TNBU"는 "UBNT"를 거꾸로 한 것입니다(Ubiquiti의 티커 심볼 및 기본 SSH 자격 증명).
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("inform 패킷이 아님")
}
mac := fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x",
header[8], header[9], header[10],
header[11], header[12], header[13])MAC 주소를 확보하면 라우팅이 간단해집니다: MAC 주소를 테넌트에 매핑하는 테이블을 유지한 다음, 전체 패킷(헤더와 암호화된 페이로드는 그대로)을 올바른 백엔드로 전달합니다. 프록시는 메모리 내 MAC-테넌트 조회 테이블을 사용하여 약 200줄의 Go 코드로 구현할 수 있습니다.
컨트롤러 포트 개요
다른 컨트롤러 포트에는 다음이 포함됩니다:
- 8443 TCP/HTTPS: 웹 UI 및 API
- 3478 UDP: STUN
- 6789 TCP: 속도 테스트 (내부용)
- 27117 TCP: MongoDB (내부용)
- 10001 UDP: L2 디스커버리 (로컬 전용)
MAC 기반 라우팅은 주로 아직 재구성되지 않은 장치나 공장 초기화 후 재등록되는 장치와 같은 엣지 케이스를 위한 대비책 역할을 합니다. 일단 등록되면, 표준 Host 헤더 라우팅을 사용하여 장치를 테넌트별 서브도메인으로 지정할 수 있습니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

x402 API 게이트웨이 for OpenClaw 봇: 하나의 엔드포인트로 18개의 API 키를 대체합니다
x402 API 게이트웨이는 스마트 LLM 라우팅, 웹 검색, 지도, 여행, 음식, AI, 금융 데이터 등 18가지 서비스에 대한 접근을 USDC 지갑 크레딧으로 인증된 단일 엔드포인트를 통해 제공함으로써 OpenClaw 봇에서 여러 API 키의 필요성을 제거합니다.

Intuno: AI 에이전트 발견 및 통신을 위한 오픈 소스 네트워크
Intuno는 AI 에이전트가 기능을 등록하고, 의미론적 검색을 통해 서로를 발견하며, 3줄의 Python 코드로 함수를 호출할 수 있는 오픈소스 네트워크입니다. Claude Desktop 또는 Cursor에서 사용할 수 있는 MCP 통합을 포함하고 있습니다.

마인드 프로토콜: 오픈소스 시스템으로 클로드에 지속적 메모리와 실시간 생체 인식 통합 제공
Mind Protocol은 Claude가 자율적인 동반자로 지속적으로 실행되는 오픈소스 시스템입니다. 이 시스템은 모든 세션에 걸쳐 지속적인 메모리를 제공하며, 패턴, 선호도, 기록에 대한 수개월간 누적된 컨텍스트를 Claude에 제공합니다. 또한 모든 대화에 실시간 Garmin 워치 데이터(심박수, HRV, 스트레스, 수면 지표, 체력 배터리 수치 등)를 주입합니다.
연구원, 클로드 코드에 사실 확인 기능 구축, 자체 문서서 환각 발견
한 연구자가 /veracity-tweaked-555라는 Claude Code 스킬을 개발했는데, 이 스킬은 문서를 원자적 주장으로 분해하고 웹 검색을 통해 각각을 검증합니다. 4개의 웨이브에 걸쳐 16개의 병렬 에이전트를 사용합니다. 자체 감사 시, 이 스킬은 자체 문서에 허위 통계와 과장된 주장이 포함되어 있어 100점 만점에 62점을 받았습니다.