{ “status”: “draft”, “protocol”: “YANG-Push-Message-Broker”, “rfc_draft”: “draft-ietf-netconf-notification-messages-14”, “category”: “Network-Automation / Telemetry”, “author_role”: “Senior Network Engineer” }
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
draft-ietf-netconf-notification-messages: YANG通知のメッセージブローカー統合と標準化
【背景と設計目標】
NETCONF/RESTCONFの1対1接続による負荷限界を解消し、KafkaやMQTT等のブローカーを介した大規模かつ疎結合なテレメトリ配信基盤を標準化する。
【通信シーケンスと動作】
本規格では、パブリッシャー(ネットワーク機器)がメッセージブローカーに対し、標準化されたカプセル化形式でYANG Push通知を送信します。コレクター(購読者)はブローカーからデータを取得します。
sequenceDiagram
participant "P as Publisher (Network Device)"
participant "B as Message Broker (Kafka/MQTT)"
participant "C as Subscriber (Collector/Controller)"
Note over P, C: 配信設定の確立 (Static/Dynamic Subscription)
C ->> P: (Optional)
P -->> C: OK
Note over P, B: 標準化されたメッセージ形式での配信
P ->> B: Publish: Notification Message (Header + Payload)
B ->> C: Forward: Notification Message
Note over C: JSON/CBOR/Protobuf等のデコード
【データ構造 / パケットフォーマット】
draft-ietf-netconf-notification-messages で定義されている共通ヘッダー構造です。メッセージブローカー上でメタデータを効率的に識別できるよう設計されています。
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Length (if required by transport) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vers | Flags | Reserved | Message Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Observation Time | | (Seconds since Epoch / PTP Timestamp) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subscription ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Format (JSON/CBOR/XML)| Header Extensions | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Data | | ... |
【技術的な特徴と比較】
従来のNETCONF通知と、メッセージブローカー(YANG-Push over Message Broker)を比較します。
| 機能特性 | 従来のNETCONF (RFC 5277) | YANG-Push over Broker |
|---|---|---|
| トランスポート | SSH / TCP | Kafka, MQTT, HTTPS, UDP-notif |
| トポロジ | 1:1 (P2P) | 多対多 (Pub/Sub) |
| 多重化 | セッション単位 | メッセージID/Subscription ID単位 |
| 効率性 | XMLヘッダーのオーバーヘッド大 | バイナリエンコード(CBOR/Protobuf)対応 |
| HOL Blocking | TCPによるブロッキング発生 | UDP-notif利用で回避可能 |
| スケーラビリティ | デバイスのCPU/メモリ負荷が高い | ブローカーによるオフロードが可能 |
【セキュリティ考慮事項】
エンドツーエンドの機密性: メッセージブローカーが信頼できないネットワーク上にある場合、トランスポート層(TLS)だけでなく、ペイロードレベルの暗号化(JOSE等)の検討が必要です。
認可の委譲: デバイス側で購読権限を管理するのではなく、ブローカー側でトピックベースのアクセス制御(ACL)を厳格に定義する必要があります。
リプレイ攻撃耐性: ヘッダーに含まれる
Observation TimeとMessage IDを用いた重複排除および鮮度確認の実装が推奨されます。
【まとめと実装への影響】
ネットワークエンジニアおよび開発者が注目すべき点は以下の3点です。
疎結合なアーキテクチャへの移行: デバイスとコレクターが直接通信する必要がなくなり、ネットワーク機器のOSアップグレードやコレクターの増設が互いに影響を与えにくくなります。
エンコーディングの多様化: これまでのXML一辺倒から、CBORやProtobufといったバイナリ形式の採用が進み、広帯域・高頻度なテレメトリ(Streaming Telemetry)が現実的になります。
UDP-notif (draft-ietf-netconf-udp-notif) の併用: 信頼性よりも低遅延・低負荷を優先するプロトコルスタックの選択が可能になり、実装フェーズではトランスポートの選定が設計の鍵となります。

