要約

  • RFC 9800は、送信元がSID構造を検証し、元の順序付きセグメントリストを保つことを条件に、複数の圧縮SIDを少数の128ビットコンテナへ格納できるようにした。
  • Clarence Filsfilsは5人の著者の一人である。削られた共通ビットの代わりに、長さ、flavor、制御プレーン広告、境界プロパティの正確さが重要になる。

長い経路が繰り返していたもの

SRv6の厳密な経路は、複数のトポロジー命令やサービス命令を順番に並べることがある。各SIDを完全なIPv6アドレスで持てば、同じLocator-Blockが何度も現れ、下位にはゼロ埋めも入る。表現は明快だが、長いリストほどパケットごとの負担が増える。

2025年6月に公開されたRFC 9800は、共通部分を省くためにCSIDを定義する。CSIDは元のSIDのLocator-NodeとFunctionを含む。128ビットのCSIDコンテナには一つ以上のCSIDを収められ、必要なら最後のCSIDのArgumentも保持する。

ただし、これは一般的なデータ圧縮ではない。パケットは圧縮されたまま実行される。各地点では有効なIPv6 Destination Addressがローカルbehaviorを指し、次の命令が決められた順序で現れなければならない。

そこでRFCは、圧縮後のリストが元のSIDリストと同じセグメント列を表すことを送信元に義務づける。短くなってもadjacencyやlookup先、サービスが変われば、別のルーティングプログラムである。

NEXT-CSIDは送る、REPLACE-CSIDは取り替える

NEXT-CSIDでは、先頭のCSIDを含む値が完全なSIDとしてDestination Addressに置かれ、後続CSIDはArgument領域に並ぶ。エンドポイントは次のCSIDをアクティブ位置へコピーし、不要な下位ビットをゼロにしてHop Limitを減らし、IPv6 FIBへ再投入する。一つのアドレス大の器から複数の命令が順に取り出される。

REPLACE-CSIDでは、シーケンスの最初だけが完全なSIDである。その後のCSIDはSRH Segment Listの128ビットpacked container内に固定幅で格納される。Argument内のindexが現在位置を示し、同じ容器内を進むか、Segments Leftを減らして次の容器へ移る。その都度、次に使う有効なDestination Addressを組み立てる。

両者は既存behaviorのflavorであり、新しいサービス意味を作らない。RFCのセキュリティ節が述べるように、変わるのは次のSIDの符号化と復号で、セグメント自体の意味ではない。

同じSRドメインや一つのリストで共存させることはできる。しかしRFCは、同じルーティングドメインまたはLocator-Block内で異なるflavorを混在させることを通常は避けるよう勧める。対応可能であることと、障害時に理解しやすいことは別だからだ。

圧縮できないと判断するための規則

元のリストは設定、ローカル計算、コントローラのいずれから来てもよい。送信元は由来にかかわらずSID構造を検証する。LBLはゼロであってはならず、Locator-NodeとFunctionを合わせたLNFLもゼロにはできない。ALは128-LBL-LNL-FLと一致しなければならない。

条件を満たさない構造はunknownとして扱われ、圧縮しない。重要なのは、ポリシー全体まで拒否する必要がない点である。圧縮リストはCSIDシーケンスと非圧縮SIDを混在できる。証明できない一項だけを完全表現に戻すのが、局所的で可逆なフォールバックになる。

RFC 9800は元の経路をどう選ぶかも決めない。メトリック、除外リンク、サービス条件、fast rerouteは前段の判断である。圧縮はその判断を保存する役割に限定される。共通仕様がポリシー権限まで奪わないための境界だ。

制御プレーン広告は構造の領収書

RFC 9800のSIDではSRv6 SID Structureのsignalingが必須である。広告元はローカルに実装した形式と同じ長さを示し、Argument値をゼロにして広告する。IS-IS、OSPFv3、BGP、BGP-LS、PCEPを使う制御系がその情報を運べる。

広告は圧縮判断の根拠になるが、転送成功の証明ではない。ソフトウェア更新後も古い能力が残る、コントローラが古い構造を保持する、FIBが広告どおりにprogramされない、といったずれは起こり得る。

監査すべき対象は、エンドポイントの実体、制御プレーン広告、コントローラの在庫、送信元が実際に採用した構造の四つである。ルートの有無だけでなく、behavior、flavor、LBL、LNL、FL、ALが一致して初めて、決定論的な検証が現実の状態を反映する。

ドメイン境界で先頭部分を替える

一つのCSIDシーケンスは通常、共通のLocator-Blockを持つ。別のブロックを使うルーティングドメインへ進むとき、End.LBSとEnd.XLBSが境界を明示する。End.LBSは境界ノード上でブロックを交換し、End.XLBSは指定されたL3 adjacencyへのcross-connectも行う。

交換先のブロックは、そのSIDに結び付いたローカルプロパティである。送信元がどう学ぶかはRFCの範囲外で、設定またはコントローラによる通知が例示される。この空白を推測で埋めてはいけない。境界の運用者が値、版、テスト、withdrawalを所有する必要がある。

共通仕様は交換手順を決めるが、各ドメインのアドレス計画や隣接関係を支配しない。グローバルな承認者がいなくても相互運用でき、同時にローカルな権限と責任を残す設計である。

圧縮率と番号空間は同じ選択の表裏

短いCSIDは一つの容器に多く入るが、利用できる識別子は少ない。長いCSIDは割り当て余地を増やし、圧縮効率を下げる。RFCは万能な長さを決めず、ドメイン内でLocator-Block長とCSID長を揃えることを勧める。

GIBは同じLocator-Block配下のノードで共有する。LIBはノードごとに固有である。推奨は、ノードを示すようなグローバルセグメントにGIBを優先し、サービス、adjacency、cross-connectにはLIBを使うことだ。

現在の数バイトだけを最適化すると、将来の番号不足や移行負担が見えなくなる。ヘッダーの効率は、アドレス計画の寿命と一緒に評価しなければならない。

Filsfilsを共同成果の中に置く

RFC Editorの記録は、Weiqiang Cheng、Clarence Filsfils、Zhenbin Li、Bruno Decraene、Francois Cladを著者としている。文書はIETF SPRINGワーキンググループの成果で、RFC 8754を更新し、IANAのbehavior registryにも反映された。

Ciscoの公式著者ページはFilsfilsをCisco Fellowとし、Segment Routingに関する長い活動を紹介する。これは日付のある職歴情報であり、RFCや実装、運用成果を一人の発明として扱う根拠ではない。

それでも、彼の公開記録には明確な連続性がある。Segment Routingの構想、SRH、SRv6 behavior、そして共通部分を安全に省くRFC 9800へと続く。ここで圧縮を可能にしたのは、曖昧さではなく、構造と拒否条件と境界をより細かく記録したことだった。

出典