要約

  • Graceful Restart は peer に route の一時保持を許すが、対象 AFI/SAFI の forwarding が生きているという条件付きだ。
  • stale route、復帰した session、End-of-RIB は next hop、FIB、label、line card、packet delivery を証明しない。
  • 継続性には capability、flag、timer、保持 route、forwarding readback、実測 traffic を結ぶ期限付き receipt が要る。

静かな control plane と消える packet

仮想的な control-plane restart を考える。helper は route を stale として保持し、大量 withdraw を避ける。session は Restart Time 内に戻り End-of-RIB も届いた。表だけなら正常に見える。ところが、route が前提にした forwarding entry が保存されず、probe は失敗する。

これは GR の欠陥ではなく、保証範囲の誤りだ。保持情報は helper が一時的に信じてよい内容を示すが、再起動 node の line card、adjacency、label、packet path を観測しない。

capability は条件付きで family ごと

RFC 4724 は capability、Restart Time、AFI/SAFI ごとの flag を定める。speaker は family の forwarding 保存を示せる一方、tuple なしで End-of-RIB や helper 対応だけを示すこともできる。「GR 対応」は一律の転送保証ではない。

再起動側は可能なら forwarding state を保持し stale とする。Forwarding State は実態を表す必要がある。受信側は route を期限付きで保持し、Restart Time 超過や再接続後の保存表示欠如で削除する。timer は信頼期間を制限するだけで、End-of-RIB も初期 update 完了を示すだけだ。

RFC 8538 は N bit を交換した特定 NOTIFICATION に限って GR を拡張し、stale timer を必須にする。reset 原因と negotiation は receipt に残す。

restart と forwarding maintenance は別物

RFC 6198 が示す通り、GR は control plane が再起動しても forwarding が保たれる場合の仕組みだ。link、line card、forwarding resource を止める作業には graceful shutdown が適する。停止予定資源への reachability を保持すれば、loss を長引かせ得る。

情報源