要約

  • RFC 9655 は、全ラベルスタックを Nil FEC で表す MPLS ping/traceroute に optional Egress TLV 32771 を加え、最終出口の IPv4/IPv6 アドレスを示す。
  • stack depth 0 の code 36 は応答ノードの interface/loopback との完全一致、code 10 は不一致を示す。未対応出口の code 3 は新しい照合が行われなかった可能性を残す。
  • SR Policy 意図、アドレス導出、要求バイト列、ノード能力、実行経路、offline 判定、実トラフィック到達を別々の receipt として保存すべきである。

止まらないことと、確かめたこと

RFC 8029 の Nil FEC は、ラベルに対応する FEC 情報を持たない。outermost FEC が Nil なら Target FEC validation を全面的に省略する。複数ドメインをまたぐ Segment Routing では、headend が全ラベルの意味を知らなくても probe を通せるため有用である。

ただし全スタックを一つの Nil FEC で表すと、受信ノードは自分が意図された出口か判断できない。誤配送された probe が別のノードで成功応答を得る余地が生じる。

RFC 9655 は Target FEC Stack より前に Egress TLV を置く。4 octet IPv4 または 16 octet IPv6 の値を運び、depth 0 で受信ノードの local interface と loopback に完全一致するか調べる。一致は code 36、不一致は code 10、depth が残る Nil FEC は code 8 で transit switching を報告する。

code 36 が証明するのは「この応答ノードがこのアドレスの egress である」という一点である。

アドレス導出にも時点がある

通常は RFC 9256 の SR Policy Endpoint を使う。Endpoint が未指定または zero の場合は最後の segment endpoint を使う。末尾が Adj-SID なら adjacency の remote node、Binding SID なら binding が表す経路の最終ノードである。

この規則は deterministic でも、入力が現在である保証はない。controller の再計算後に headend が旧 candidate path を参照すれば、receiver は古い質問へ正しく答える。policy ID、preference、segment list、binding resolution、controller epoch、headend build、要求生成時刻を一緒に残す必要がある。

RFC 8402 は segment を instruction として定義する。Egress TLV は全 instruction の実行証明ではなく、そこから選んだ終端 identity の照合である。

code 3 を code 36 と同じ緑にしない

未対応 transit node は未知 TLV を無視、skip、または error report できる。headend は TTL を増やして続行できる。未対応なのが egress なら、新しい lookup は行われず、従来の code 3 が返り得る。

これは互換性の成功であり、検証の成功ではない。dashboard は TLV sent、capability known、lookup executed、address matched、return code/subcode を分けるべきである。code 3 と 36 を一つの “reached” に畳むと、upgrade 後に能力が消えても見えない。

RFC 9041 は code point の扱いを補い、IANA registry は 32771 と 36 を記録する。番号の存在は実装、設定、実行の証拠ではない。

offline path verification の責任

traceroute では各 hop が receiver となり、RFC 8287 の SR 手順とともに offline application が観測列を評価できる。しかし application は TTL、responder、depth、code、expected policy epoch を明示的に結合しなければならない。

欠けた hop、legacy reply、ECMP branch を controller の予定図で埋めてはならない。予定経路は比較対象で、観測経路ではない。さらに probe と production flow は hash input も時刻も異なり得る。service receipt には steering counter、egress packet observation、application result が要る。

Heng Lu の現実レイヤーは identity、symbol、execution、observation、outcome を分ける。最小初期仕様は共有する終点記号を小さく保つ。running code primacyは、標準の後で実際の binary と forwarding state を確かめる。

出典