UniFiインフォームプロトコルのリバースエンジニアリングによるマルチテナントルーティング

✍️ OpenClawRadar📅 公開日: March 9, 2026🔗 Source
UniFiインフォームプロトコルのリバースエンジニアリングによるマルチテナントルーティング
Ad

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認証情報)。

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("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

Ad

👀 See Also

RunAnywhere RCLI:Apple Silicon向けオンデバイス音声AIパイプライン
Tools

RunAnywhere RCLI:Apple Silicon向けオンデバイス音声AIパイプライン

RunAnywhereは、Apple Siliconデバイス上でSTT、LLM、TTSを完全に実行するmacOS用オープンソース音声AIパイプライン「RCLI」をリリースしました。このツールは独自のMetalRT推論エンジンを使用し、既存のソリューションに比べて大幅な性能向上を実現していると主張しています。

OpenClawRadar
SwiftUIとCSM-1Bを使用したApple Silicon向けローカル音声AIアシスタントの構築
Tools

SwiftUIとCSM-1Bを使用したApple Silicon向けローカル音声AIアシスタントの構築

開発者がmobiGlasを構築。これはSwiftUIアプリで、OpenClawと連携してAirPodsでハンズフリー会話を可能にし、ローカル音声クローニング(M2 Ultra上のCSM-1B)を使用し、クラウドAPIは不要。

OpenClawRadar
スキルビル:AIコーディングスキルのためのマークダウンベースのガバナンスフレームワーク
Tools

スキルビル:AIコーディングスキルのためのマークダウンベースのガバナンスフレームワーク

開発者は、Kotlin、Android/KMP、PHP、Go向けに44のMarkdownベースのAIスキルからなるフレームワーク「Skill Bill」を構築しました。これは、命名のずれや重複ロジックなどのプロンプト管理の問題に対処します。また、10〜12のスキル呼び出しを連鎖させる「feature-implement」などのオーケストレータースキルを含み、Claude Code、Copilot、GLM、Codexと同期します。

OpenClawRadar
0Latency: MCPを介したAIエージェントのための永続メモリレイヤー
Tools

0Latency: MCPを介したAIエージェントのための永続メモリレイヤー

0Latencyは、Claudeや他のAIエージェントに永続的なメモリを追加するMCPサーバーで、セッション間でメモリを保存し、コンテキストの喪失を防ぎます。Claude Desktop、Claude Code、claude.ai、GPT、Gemini、Cursor、およびあらゆるMCP互換エージェントでネイティブに動作します。

OpenClawRadar