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

로컬 트렐로 스타일 프로젝트 관리자, 마크다운 파일을 사용하는 OpenClaw 에이전트용
한 개발자가 OpenClaw 에이전트와 함께 작동하도록 특별히 설계된 Trello 스타일 프로젝트 관리 시스템을 만들었습니다. 이 도구는 모든 것을 로컬로 유지하여 보안을 유지하면서도, Node.js + Express를 API에, React + react-trello를 UI에, YAML 프론트매터가 포함된 마크다운 파일을 데이터 계층으로 사용합니다. 시스템은 OpenClaw 머신에서 실행되며 로컬에서 접근 가능하며, 에이전트는 파일 시스템에서 카드 파일을 직접 읽고 씁니다.

클로드 코드, 엔비디아 NIM 게이트웨이를 통해 네모트론-3 120B 등 240개 이상 모델 지원
Claude Code는 /model 명령어로 세션 중간에 240개 이상의 NVIDIA NIM 모델로 전환할 수 있습니다. Nemotron-3 Super 120B 생각 모드 변형은 다중 파일 리팩토링 및 에이전트 작업에서 강력한 결과를 보여줍니다.

OpenClaw Optimizer v1.18.0이 OpenClaw v2026.3.7과 호환되도록 업데이트되어 출시되었습니다.
OpenClaw Optimizer 스킬 v1.18.0이 OpenClaw v2026.3.7과 정렬되었으며, Google Gemini 3.1 Flash-Lite 및 OpenAI gpt-5.4와 같은 새로운 AI 제공자를 지원하고, /session idle 및 /usage cost와 같은 새로운 CLI 명령어를 추가했습니다.

클랭커랭크: 클로드 하이쿠를 활용한 AI 지원 코딩 기술 벤치마크
한 개발자가 Claude의 Haiku 4.5 모델을 활용해 AI 지원 코딩 숙련도를 측정하는 ClankerRank를 구축했습니다. 이 플랫폼은 사용자에게 동일한 버그를 제시하고, 숨겨진 테스트 스위트로 출력물을 채점하며, 수백 명의 참가자들 사이에서 명확한 기술 격차를 드러냈습니다.