要約

  • LDPの再接続時間と回復時間は、保持された転送状態が再確認を待てる期間を定める。能力広告や長い期限だけでは、両端が状態を保持したことも通信継続も証明できない。
  • 期限内には古いラベル/FEC対応と新しい割当てが競合し得る。保持、処理、インストール、パケット観測を別々に記録しなければ、滑らかな回復が誤配送を隠す。

秒数は証明書ではない

制御プロセスが戻ると、保持されたMPLSエントリは stale として再確認を待つ。短すぎる期限なら、大きなラベル情報ベースを再同期する前に有用な状態が消える。長すぎる期限なら、不要または誤った状態が転送を続ける。設定値は可用性と危険の両方を延長する。

RFC 3478の FT Reconnect Timeout は、LDP通信が失われた後に隣接ノードが既存転送状態を保持する希望時間を伝える。Recovery Time は、再起動したノードが保存状態を使える残り時間を示す。ゼロは、保存されなかった、または既に利用できないという意味を持つ。

RFC 3612は2003年9月にIETFのInformational RFCとして公開された。RFC 3478のgraceful restartとRFC 3479のfault toleranceを比較する適用指針であり、それ自体がInternet Standardでも、特定実装の運用報告でもない。当時参照したLDP仕様RFC 3036は後にRFC 5036で置き換えられた。

通常のLDPではTCPセッション喪失が関連LSPの破棄とラベル解放につながった。再起動拡張は、その即時破棄を緩め、制御関係が戻るまで一部状態を生かす。つまり期限は、失われたセッションの権威を一時的に延長する契約である。

制御の故障とデータの故障

RFC 3612はsession failureとnode failureを分ける。前者では両端のLSRが動作したままLDPセッションだけが失われる。文書は、帯域内制御であってもセッション障害がデータチャネル障害を意味しないと明記する。後者ではノード全体またはLDP機能が再起動し、ローカル制御は初期化から始まる。

どちらの場合も、転送ハードウェアが何を保持したかは別の事実である。制御は落ちてもデータが通ることがあり、制御が戻ってもデータは壊れたままかもしれない。保護経路や高速切替もRFC 3612の範囲外で、再起動と保護は同じ成果ではない。

トラフィックを無影響に保つには、セッション両端が少なくとも転送状態を保持しなければならない。一方だけが保持した場合、RFC 3478は後の復旧を助けても、障害中の連続性を保証しない。「対応機能あり」「今回保持した」「パケットが継続した」は三つの証拠である。

期限を決める負荷

必要な時間はLSP数、制御リンクの帯域、処理能力、状態変化率で変わる。静かなtargeted sessionと、IGP変化に追随するdiscovery sessionでは、同じ秒数でも未解決の仕事量が異なる。短い値を設定できることと、その中で同期が終わることは別である。

RFC 5919は後にEnd-of-LIB通知を定義し、初期ラベル広告の終了を伝えられるようにした。しかし関連能力の広告だけで送受信は保証されず、通知が来ないときはタイマー満了を同等に扱える。これは広告フェーズの境界であり、遠隔ハードウェアへの実装や全経路の正しさを示さない。

運用記録には設定値だけでなく、実測した開始・終了、stale件数、再確認件数、期限削除件数が必要である。期限満了による「完了」と、明示通知による完了も区別する。

ACKは処理完了より先に出せる

RFC 3479は保護対象の操作に番号を付け、ACK、checkpoint、計画停止前のquiesce、再接続後の再送を使う。両方のピアが手順を実装し、再構築した制御状態を転送状態と監査できることが前提になる。

重要なのは、メッセージを安全に記録した時点で、完全処理を待たずACKできる点だ。保存済みLabel Requestは、Label Mapping生成の証明ではない。受信済みMappingは、ハードウェア実装の証明ではない。実装済みエントリも、宛先到達の証明ではない。

頻繁なACKは未確認の末尾を小さくする一方、通常時の負荷を増やす。間隔の長いcheckpointは実装を簡素化するが、障害直前の差分を広げる。計画停止のcork手順は境界を整えるが、誤った状態を正しくはしない。

保存に成功した誤り

RFC 3612は、誤った状態が保存されれば誤ったまま残り、極端にはその状態自体が障害原因かもしれないと警告する。保存成功率を回復品質と同一視できない理由である。

全マッピングの再送は、確認されない旧状態を掃除できる。しかし同じ入力と処理なら同じ誤りを再生する可能性がある。別経路からの再構築も、拡張固有の保存状態にある誤りを引き継ぎ得る。必要なのは永続化の検査と意味の再検証を分離することだ。

再同期中には、上流が古いラベルで一つのFECを送り続ける間に、下流が同じラベルを別FECへ割り当てる競合も起こり得る。静的設定、別LDPインスタンス、RSVP-TEなどが同じ空間を使えば範囲はさらに広がる。共通割当て機構または分離空間が、障害時にも権威を維持した証拠が要る。

期限を越えて元セッションのラベルを使えば、データが別の宛先へ送られ得る。RFC 3479は早すぎる再利用が未承認サービスやサービス拒否につながる可能性も述べる。これは実事件の主張ではなく、期限管理が安全境界である理由である。

回復世代ごとの受領証

受領証はピア、セッション世代、障害分類、能力、二つの期限を記録する。各エントリには割当て主体、ラベル空間、FEC、次ホップ、stale状態と最終結果—更新、置換、撤回、期限削除—を残す。

次に、受信、耐障害保存、処理、インストール、観測を別フィールドで保持する。checkpoint境界、再送操作、End-of-LIBの実着またはタイムアウト代替、新規割当てとの衝突も含める。

最後に双方向プローブ、両端カウンタ、代表FECのサンプルを結び付ける。データ面の観測がなければ結果は「未観測」である。タイマーが期限を閉じても、パケットの事実まで閉じたことにはならない。

情報源