要約
- RFC 9815のルートリフレクター/コントローラーモデルでは、BGPセッションは多数のLink NLRIを運ぶが、そのセッション自体が個々のファブリックリンクを通過し、健全性を試すとは限らない。
- SPFが使える辺になるまでには、範囲の明確な生存検知、正当な起点、最新性と状態、必要に応じたEoR、逆方向広告との一致、ローカル計算、RIB/FIB反映、データプレーン観測が必要である。
- 認証済みセッションは運び手を、シーケンス番号は版の順序を証明する。どちらも、物理リンクという事実そのものを証明しない。
一本の線に三つの意味を描かない
運用画面には、スイッチAとBの間に一本の線が表示される。線が緑なら、見る側は接続、制御、転送のすべてが正常だと感じやすい。しかし疎なBGP-LS-SPFでは、その一本に少なくとも三つの意味が重なる。AとBの物理的・論理的な転送辺、Link NLRIが表現する方向付きの主張、そしてその主張をリフレクターまで運んだBGPセッションである。
障害時に後者が生きていても、前者は死に得る。リフレクターとのTCPセッションがEstablishedで、相手が認証され、最新シーケンスのNLRIが届き、SPFが終了していても、AからBへの一方向がパケットを通さないことは矛盾ではない。各表示は、自分の範囲では正しい。
RFC 9815は2025年7月にStandards Trackとして発行され、BGP-LS AFI 16388の下にSAFI 80を定義した。BGPの状態機械、メッセージ、TCP利用、基本的なエラー処理を保ちつつ、対象の決定処理をNode、Link、Prefix NLRIからなるSPF計算へ置き換える。RFC 9816は、32-way、64-wayといったECMPを持つClosファブリックで、広告用セッションを物理メッシュより疎にできる理由を示す。
簡素化が消すのはセッションであって、事実確認の仕事ではない。
同じになる場合、ならない場合
各ポイント・ツー・ポイント接続でsingle-hop EBGPを張る最も単純なモデルでは、セッション経路と対象リンクがほぼ一致する。セッションが成立してBGP-LS-SPF能力を交換すると、その接続に対応するリンクをプロトコル上利用可能とみなし得る。セッションが落ちれば対応するLink NLRIもwithdrawされる。
loopback間のピアリングでは、複数の直結リンクを一本のセッションが代表できる。ルートリフレクターやコントローラーだけにピアするモデルでは、広告の経路はファブリック辺とさらに離れる。RFC 9816は、ファブリックノードが二つ以上のコントローラーへmultihopセッションを張る構成にも触れる。このとき、BGPに依存せずコントローラーへの経路を得る方法は別に必要であり、文書の範囲外である。
RFC 9815は、後二つのモデルで直結リンクの発見とliveness判定をBGP外へ置き、BFDを推奨する。RFC 5880のBFDは転送エンジン間の経路障害を短時間で検知するための仕組みで、ルーティングプロセスの生死だけを見るものではない。それでもBFD Upが万能の証明になるわけではない。どのインターフェース、LAGメンバー、トンネル、アドレスファミリー、戻り経路を測ったのかを固定しなければ、別の辺に状態を流用できてしまう。
運用台帳には、物理ファブリックのグラフと広告配布のグラフを別々に持ち、その間を結ぶ表が必要だ。辺ID、検知セッション、検知範囲、起点ノード、伝播ピア、消費ルーターを一行に結べなければ、「トポロジーを知っている」という表現は強すぎる。
起点が作るのは方向付きの証言
BGP-LS-SPFのLink NLRIはLocal Node DescriptorとRemote Node Descriptorを含む。NodeとLinkではProtocol-IDがdirect protocolでなければならず、リンクメトリックは各ルーターの出力側インターフェースに属する。AからBの広告とBからAの広告は、同じ物を中央が一回定義するのではなく、二つの方向付き記録である。
各NLRIには必須の64ビットSequence Number TLVがあり、自起点の版ごとに厳密に増加させる。コールドリスタートを含む装置の稼働期間を通じて単調性を守る仕組みが求められる。受信側は原則として最大値を選び、直接接続ピアからの自起点情報を優先する規則で、起点がシーケンス状態を失った場合の古い情報も置き換えられる。
ここで「新しい」と「正しい」を分ける必要がある。誤ったポートに結び付いた検知器は、もっとも新しい誤報を作れる。権限を持つが侵害されたピアは、正しい形式と増加する番号で改変トポロジーを出せる。番号は版管理であり、観測監査ではない。
同じNLRIを複数のBGP speakerが起点として名乗る状態は、設定誤りまたはmasqueradingの兆候になり得る。コピーが多いことを独立証拠の数と数えてはならない。リフレクターは同じ証言を何度でも配れるからである。
EoRは初期学習の区切り
End-of-RIBはリンクのヘルスチェックではない。RFC 9815では、あるpeerに対応するLink NLRIを広告する前に、そのpeerからBGP-LS-SPFのEoRを受けることを要求できる。実装が設定を提供するならドメイン全体で整合させ、要求時の既定値は無期限待機とする。最大待機時間を設定する選択肢は持てる。
守る対象は転送準備である。セッション復旧直後のノードが初期経路を十分学ぶ前に隣接を広告すると、他ノードはその機器へトラフィックを送り始めるが、機器は先を正しく選べないかもしれない。EoR要件が不揃いだと一時的なmicro-loopやdropが生じ得るとRFCは警告する。
コントローラーの例では、双方からEoRを受け、さらに双方からそのリンクのNLRIを受けるまで広告を遅らせられる。これは「両者が初期情報を学び、両者が方向付き記録を出した」というゲートである。光信号や転送ASICをコントローラーが直接観測した証拠ではない。
画面上のReadyは最低でも、session、AFI/SAFI、EoR、local detector、local NLRI、remote NLRI、reciprocal match、SPF、FIB、probeに分解すべきだ。一つに畳むほど障害時の裁量が増える。
SPFに入る辺は往復で閉じる
計算ルーターはCurrent-Linkを見つけると、Remote-NodeのLink NLRI群からCurrent-Nodeへ戻るRemote-Linkを探す。番号付きリンクなら、Current側のinterface addressとRemote側のneighbor address、そしてその逆が一致しなければならない。片方向広告だけでDijkstraの辺にはしない。
unnumbered linkではLink Local/Remote IdentifiersとAddress Family Link Descriptorを使う。アドレスファミリー記述子がなければ、そのリンクはIPv4にもIPv6にも使われない。両方で使うなら別々の記述子を広告できる。Remote Identifierが分からない場合は0を広告し、0はwildcardとして働く。平行unnumbered linkでは、どのリンクが生きているか両者の認識が一時的にずれる可能性があるため、正確なRemote Identifierの発見または設定が推奨される。
Verified Erratum 8835は、この往復条件の二本目を訂正した。公開RFCはCurrent Remote=Remote Localを二度書いていた。訂正は、Current Remote=Remote Localに加え、Current Local=Remote Remoteを要求する。片端を二回確認するのではなく、二端を相互に閉じる条件である。
これは実装事故の報告ではない。どの製品が元の重複文を使ったかも資料にはない。むしろ受入試験で、Local/Remote入れ替え、平行リンク、0 wildcardを必ず扱う理由になる。EID 8836は別種で、RFC 8405に合わせてTIME_TO_LEARNをTIME_TO_LEARN_INTERVALに直した用語訂正である。二件を同じ重大度で数えるべきではない。
古いUpを消す前に新しいDownを勝たせる
疎な配布では、同じリンクの古いコピーが複数経路に残る。通常withdrawだけに頼ると、最後のコピーが消えるまでリンクが計算対象に残り得る。RFC 9815は、起点がシーケンスを増やし、SPF Statusをlink unreachableにした新版を先に広告し、一定時間後にwithdrawすることを推奨する。LinkStatusDownAdvertiseの推奨既定値は2秒である。
リンクがその間に戻れば、Downを外したさらに新しい版を出す。この方法は明示的な否定を古い肯定より優先させる。2秒でサービスが復旧するという測定値ではない。検知、生成、伝播、SPFスケジューリング、計算、RIB/FIB更新、パケット経路変更は別々の時計である。
RFC 8405のback-offは、単一障害への速い反応と、連続イベント時の計算・FIB churn抑制を両立させようとする。異なるルーターが違うLSDB版から計算する時間が伸びれば、micro-loopの可能性も上がる。RFC 9815がSPF trigger、schedule、start、end、back-off stateのログを勧めるのは、この時間差を説明可能にするためである。
届いたNLRIが計算可能とは限らない
エラー処理では、BGP-LS AttributeがAttribute Discardで失われたNLRIを保存・伝播する場合がある。しかし、そのNLRIをSPFに使ってはならない。状態TLVやアドレスファミリーTLVがmalformedならtreat-as-withdrawになる。Adj-RIB-In件数をそのまま「完全なトポロジー」と表示する製品は、受信と資格を混同する。
二つのLSDBが同期を失ったときは、別の再同期方法がない限りセッションをresetし、Loss of LSDB Synchronization通知を送る必要がある。ただし、同期喪失をどう検知するかは範囲外だ。操作は標準化されていても、それを起動する証拠は実装と運用に残る。
RFC 9815はTCP-AOを推奨する一方、侵害された正規peerが改変NLRIを出し、misroutingや過剰SPFを起こし得ると明記する。peer認証、内容の起点、物理リンク状態は別の信頼面である。
疎にする前の受入試験
テスト環境では、セッショングラフをファブリックグラフと意図的に違わせ、平行unnumbered linkと複数リフレクターを用意する。正常時に、両方向検知、二本のNLRI、sequence、EoR、LSDB fingerprint、SPF結果、FIB、全ECMPメンバーのprobeを凍結する。
次にリフレクターセッションを保ったまま片方向だけ切る。正しい検知器が変化し、正当な起点だけがDownの新版を出し、古いコピーより先に全消費者へ届き、逆方向matchが外れ、next hopがハードウェアから消えるまでを時刻付きで確認する。復旧は古い広告の再利用ではなく、より大きいsequenceで行う。
AF descriptor欠落、Local/Remoteの誤対応、0 wildcard、metric不一致、EoR遅延、attribute discard、重複起点、cold restart、LSDB不一致、一台のreflector障害、部分的policy filterも個別に試す。RFC 9816は、ノードごとに異なるNLRI集合を与えるpolicyが異なるローカルRIBを作り、到達不能やloopにつながり得ると注意する。
証拠行には、edge ID、detector scope、event time、origin、NLRI fingerprint、sequence/status、伝播peer、EoR、採用/除外理由、LSDB generation、SPF時刻、RIB/FIB差分、各入口のprobe、alarm、判断、rollbackを残す。他社実装へ移しても同じ障害を再現できる形が望ましい。
これはHeng LuのRunning-Code Primacyを、ラベルではなく検証手順として使うことだ。動いたという宣言ではなく、標準から設定、実行状態、パケットまでを再追跡できることが優先される。
分からないことを残す
資料は、特定事業者の導入、ベンダー対応表、収束時間の測定、障害、攻撃、顧客影響を示していない。RFC 9816の効率・収束上の利点は設計上の主張であり、普遍的な実測値ではない。BFDが唯一の検知法、二台のコントローラーで常に十分、SPF成功が転送成功、とも言えない。
疎さの程度、冗長性、検知器、controller placement、metric、policy、timerはローカル判断として残る。これはMinimum Initial Specificationの長所である。共通層は相互運用に必要な記録と振る舞いを定め、採用者は将来の設計を選べる。だからこそ、その選択の証明を標準文書へ押し返すことはできない。
情報源
- RFC 9815 Datatracker
- RFC 9815の履歴
- RFC 9815
- RFC 9815 Errata
- Verified Errataを反映した参考表示
- RFC 9816
- RFC 9552:BGP-LS
- RFC 4271:BGP-4
- RFC 5880:BFD
- RFC 4724:EoR
- RFC 8405:SPF Back-Off
- RFC 7606:BGP UPDATEのエラー処理
- RFC 5925:TCP-AO
- Heng Lu:Running-Code Primacy
- Heng Lu:Minimum Initial Specification
- Heng Lu:On Reality Layers
- RFC 9815の正式な参照関係
- RFC 9815を参照する文書
- RFC 9815情報ページ
- RFC 9816情報ページ
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
