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: Web UIおよびAPI
- 3478 UDP: STUN
- 6789 TCP: スピードテスト(内部用)
- 27117 TCP: MongoDB(内部用)
- 10001 UDP: L2ディスカバリー(ローカルのみ)
MACアドレスベースのルーティングは主に、まだ再設定されていないデバイスや、工場出荷状態にリセットされて再採用されるデバイスなどのエッジケースのフォールバックとして機能します。採用後は、標準のHostヘッダールーティングを使用して、デバイスをテナント固有のサブドメインにポイントできます。
📖 完全なソースを読む: HN AI Agents
👀 See Also

オープンソースのマルチエージェントフレームワーク、Claude Code流出から抽出
開発者がClaude Codeの流出したソースコードからマルチエージェントオーケストレーションシステムを抽出し、モデルに依存しないMITライセンスのオープンソースフレームワークとして再構築しました。この8,000行のTypeScriptフレームワークには、タスクスケジューリング、エージェント間メッセージング、組み込みツールが含まれています。

AIエージェントにおけるリアルタイム検索データのための4つのClawHubスキル
ClawHubの4つのスキルは、AIエージェントに構造化された検索機能を提供します:Google(ウェブ、ニュース、画像、マップ)、Amazon(12のマーケットプレイスにわたる商品検索)、Walmart(配送フィルター付き商品検索)、YouTube(トランスクリプト付き動画検索)。1つのAPIキーでclawhub installコマンドからインストールできます。

MCPサーバー:ローカルとクラウドのLLMをディベート機能で比較
MCPサーバーは、開発者がOllamaを介してローカルモデルと様々なクラウドLLMをクエリできるようにし、並列比較や構造化された議論機能などの特徴を提供します。

Claude-First Analytics MCPサーバー:ウェブ解析コンテキストへのAIエージェントの直接アクセスを実現
ある開発者が自身のWeb分析ツールをMCPサーバーとして再構築し、シンプルなWeb分析、追跡可能なリンク、プロダクトインサイトツールをClaudeに直接公開。AIエージェントがコードやデータベースのコンテキストとともにサイトデータを活用できるようにした。