要約

  • A、B、C、D、E の DEX カードが全部あっても、E が C の次か D の次かは通常のカードだけでは決まらない。
  • RFC 9630 は8オクテットの Multicast Branch ID、または分岐直前の区間 trace 書き出しで、共通経路の重複を抑えながら接続情報を残す。
  • 運用では、選択、設定時代、カード生成、輸送、保管、木の復元、受信、アプリケーション成果を別々の受領証として扱う必要がある。

全員の出席簿に、座席表は含まれていなかった

パケットは A から B に入り、B で二つに複製される。一方は C を経て E へ進み、他方は D へ進む。五台すべてがカードを送れば、収集器には完全なノード一覧ができる。しかし E の親が C か D かを示す情報はない。

これは表示上の小さな問題ではない。E を誤った親の下に描けば、遅延や損失は別のリンクに帰属される。その結果を使う自動化は、正常な経路から容量を外したり、関係のない機器を障害源と判断したりする。

頂点が正しくても辺がなければグラフではない。制御プレーンの木で穴を埋めることはできるが、その場合は別の情報源と時代を使った推定である。直接観測との区別を消してはならない。

パケット内 trace は順序と引き換えに重複した

IOAM Trace はノードの順序を保持する。マルチキャストの分岐では、それまでの trace 全体が各複製へコピーされる。葉では共通の長い前半が何度も現れ、最後の区間だけが異なる。木が広がるほど同じ証拠がヘッダ、帯域、収集器の処理を占める。

DEX は各ノードのデータをカードとして外へ出すため、この重複を消せる。その一方で、独立カードに分解した瞬間に親子関係も失われる。RFC 9630 が保存するのは、全経路ではなく、カード同士を接続するための最小情報である。

目標は「少ないテレメトリ」ではない。共通部分を一度だけ運び、分岐が生んだ差分を再構成できるテレメトリである。

Branch ID の寿命は次の分岐まで

DEX 方式では、3オクテットの Branching Node ID と2オクテットの Interface Index を組み合わせる。残る3オクテットはゼロでなければならない。分岐ノードは木の各出力に異なる組を割り当て、その値は次の分岐まで変わらない。

下流ノードは受け取った Branch ID をカードに含める。Flow ID と Sequence Number が同じフロー・同じパケットの観測を集め、Branch ID が同じ区間を結ぶ。C と E が B の一方の識別子を共有し、D が他方を示せば、収集器は辺を推測せずに木を組める。

ただし Interface Index は永久名ではない。収束後に再利用され得る。IOAM namespace、木のインスタンス、フロー、シーケンス、時刻、設定エポックを捨てたアーカイブは、別々の枝を一つの継続関係に見せる。

N と I は半分だけでは意味を持たない

RFC 9326 の拡張フラグ一つは4オクテットを示す。8オクテットの Branch ID には二つ必要で、N が分岐ノード、I がインタフェースを示す。両方が1か、両方が0でなければならない。片方だけなら malformed であり、パケットは破棄される。

未使用オクテットがゼロでない場合も同じである。寛容なパーサが不完全なタプルから辺を作ることを防ぐ。しかし誤ったテレメトリ符号化がデータパケット破棄につながる点は、独立して監視すべきである。

「オプションなし」「malformed による破棄」「転送後のカード損失」を同じ欠測にしてはいけない。三つは原因も修復主体も異なる。

区間カード方式は分岐点で trace を切る

もう一つの方式は Trace の形式を変えない。分岐ノードは複製前に累積 trace をカードとして書き出す。その後 node-data list を消去し、RemainingLen を初期値へ戻し、各子区間を分岐ノードの情報から始める。葉は最後の区間を出力する。

共通前半は一度だけ送られ、分岐ノードが区間の縫い目になる。新形式は不要だが、該当する分岐と葉が正しい順序で動作する設定が必要になる。

複製前に共通値として出せるのは、本当に全コピーに共通する情報だけである。入力インタフェースと入力時刻は共通でも、出力インタフェース、出力時刻、コピーごとの遅延は異なる。早すぎる集約は分岐の違いそのものを消す。

増幅を抑えると観測の分母も小さくなる

マルチキャストはデータを複製し、DEX はエクスポートも増やし得る。RFC 9630 は、選択したパケットだけを対象にする、出力率を制限する、分岐ノードなど一部だけを有効にする、といった厳しい保護を求める。具体的な選択政策と収集器の過負荷防止は対象外である。

したがって復元された木は、選ばれたパケットと有効化された観測者が示す木である。カードの欠落は、サンプリング除外、レート制限、輸送損失、未設定ノード、収集器拒否、あるいは枝の不存在を意味し得る。

選択規則、期待ノード集合、上限、各段階の破棄数、有効期間を木と一緒に保存すべきである。分母のない完全図は、不確実性を隠す。

Mtrace2 は同じ証拠を別形式で返すものではない

Mtrace2 は受信側から送信源へ、木を構築するメッセージの経路をたどり、診断ブロックを追加する。管理システムが関係するルータを知る助けになるが、RFC 9630 は IOAM と直接統合されないことを明記する。

制御プレーンは意図された木を示し、IOAM は選択されたデータパケットの観測を示す。一致は補強、不一致は調査対象である。Mtrace2 でカードの穴を埋めるなら、その辺を推定として表示する必要がある。

PIM、PIM-SSM、MVPN、mLDP、P2MP RSVP-TE、Ingress Replication、PIM MDT では、VPN とトンネルの文脈も残す。同じノード列が別の木や収束後の別経路を意味し得るからだ。

木の復元は映像の復元ではない

RFC 9630 は木の可視化、経路別遅延・ジッタ、損失地点の特定を目指す。Branch ID はその入力を接続可能にするが、受信アプリケーションに受領証を作らない。

最終ルータで観測した後にアクセス回線で失われることがある。端末に届いてもキーフレームを復号できない場合がある。健康なサンプルは未選択バーストを代表しない。収集器の正しい木と利用者の成功は別の事実である。

証拠段階を、IOAM 域への進入、処理、ラベル作成、カード生成、輸送、保管、相関、独立検証、受信、アプリ成果に分ける。RFC 9630 が改善するのは相関の段階である。

不完全な木を不完全なまま保存する

再構成記録には Branch ID の生バイトと解釈、namespace、Flow ID、Sequence Number、送信元とグループ、木、トンネル、時間窓、設定エポックが必要である。カードごとに送信者、ノードデータ、送信・到着時刻、重複、拒否理由、保管ハッシュを持たせる。

グラフ処理は親のない頂点、衝突、欠番、重複、外部情報から推定した辺を返すべきだ。レイアウトの都合で辺を作ってはならない。理由が見える空白こそ、後の判断を守る。

情報源