要約
- RFC 9884 は、出口が PSID ラベルと SR Policy、Candidate Path、Segment List のいずれかとの対応を検証するための LSP Ping 拡張を定めた。
- 一つの PSID が複数の Segment List の一部を表す場合、リストごとに別の Ping が必要になる。一つのメッセージに複数の新しい sub-TLV を入れても、処理されるのは最初だけだ。
- PSID を処理しない通過ノードはこの検証の証人にならないため、LSP Traceroute は対象外である。ECMP では PSID が示すのは SID リストであり、実際の転送経路ではない。
この仕組みを理解するには、出口で何が失われているかを見るとよい。SR-MPLS の headend は順序付きの命令をラベルスタックに書き込む。転送中にラベルは交換され、取り除かれる。出口に着くころには元のスタックが残らず、受信パケットだけからどの SR 経路だったかを区別できない場合がある。
RFC 9545 の PSID は、その出口にだけ意味を持つローカルラベルである。入口は最後の経路ラベルの直後に置き、出口が pop する。計数や時刻の照合、双方向経路の関連付け、保護処理に使えるが、その前提はラベルが正しい管理対象に結び付いていることだ。
検証範囲を先に選ぶ
RFC 9884 は、その結び付きを Target FEC Stack で問い合わせる。送信者は headend またはトポロジを把握する監視システムで、応答者は SR 経路の endpoint でなければならない。
問い合わせには三つの粒度がある。SR Policy なら Headend、Color、Endpoint を照合する。Candidate Path なら Protocol-Origin、Originator、Discriminator も加わる。個別の Segment List なら Segment-List-ID まで入る。IPv4 と IPv6 にそれぞれ形式があるため、新しい sub-TLV は合計六つになる。
粒度は単なる表示の違いではない。RFC 9256 では Policy、Candidate Path、Segment List は階層の別々の要素である。Policy の一致から、ある本番フローが選んだリストを推定してはならない。Candidate Path の一致を、その配下にある全リストの成功として扱うこともできない。
特に、PSID が複数リストのうち一部をまとめる場合、RFC 9884 は各リストに一通ずつ LSP Ping を要求する。複数の PSID sub-TLV を一つに詰めても、先頭しか評価されない。未送信のリストは不明であり、成功ではない。
応答コードの主語を失わない
不正な形式にはコード 1、提示した FEC とラベルの対応がなければコード 10、すべての対応検査を通ればコード 3 が返る。コード 3 の意味は、応答ルータが指定深度の FEC に対する出口だというものだ。
これは強い運用情報である。コントローラと出口の設定ずれを見つけ、単なる IP 到達性より具体的な対応関係を検査できる。しかし、サービス配送、認可、SLA、全メンバーの状態までを採点するコードではない。
途中を見なかった試験
RFC 9884 は PSID 用の LSP Traceroute を定めない。通過ノードが PSID 処理に関与しないからである。出口まで届いたことと、途中の各ノードが明らかになったことは別だ。
RFC 9545 は ECMP についてさらに慎重である。同じ SID リストでもパケットは複数の実経路へ分かれ得る。そのとき PSID はリストを識別できても、個々のパケットが通った線を識別できない。PSID の追加自体がハッシュ結果を変え、既存フローとは別の分岐へ探査を送る可能性もある。
したがって、意図した Policy、選択中の Candidate Path、リスト、PSID の対応、探査の通過経路、本番通信の通過経路と結果を分離して保存すべきである。RFC 8403 のようなトポロジ連携や RFC 8029 の traceroute は証拠を補えるが、出口応答の内側に含まれてはいない。
返信を受け入れる側も判断する
PSID sub-TLV は Reverse-Path Target FEC Stack や Reply Path にも載せられる。endpoint が echo reply で返し、headend が同じ妥当性検査を行う。失敗すれば返信を捨て、記録または報告すべきだが、endpoint の return code は書き換えない。
応答なし、形式不正、出口側不一致、headend 側拒否は異なる事象である。すべてをタイムアウト欄に落とすと、障害の位置だけでなく誰がどの判断をしたかも消える。
出典
- https://www.rfc-editor.org/rfc/rfc9884.html
- https://www.rfc-editor.org/rfc/rfc9545.html
- https://www.rfc-editor.org/rfc/rfc9256.html
- https://www.rfc-editor.org/rfc/rfc8287.html
- https://www.rfc-editor.org/rfc/rfc8029.html
- https://www.rfc-editor.org/rfc/rfc8403.html
- https://www.iana.org/assignments/mpls-lsp-ping-parameters/mpls-lsp-ping-parameters.xhtml
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

