要約

  • RFC 1256 の既定の広告寿命は1,800秒。更新が届かなければ、動的に学習したルーターをホストが忘れるまでの最大時間を示すもので、30分以内の切り替えを約束する値ではない。
  • RFC は既定の広告間隔(約7分30秒〜10分)では、トランスポートのセッションがタイムアウトする前に最初のホップのブラックホールを検出できないと明記した。デッドゲートウェイ検出は RFC 1122 が別のホスト機能として扱っている。

ゲートウェイ障害で厄介なのは、故障が起きた瞬間だけではない。転送できなくなったルーターを、ホストがまだ有効な出口だと信じている時間も問題になる。

1991年9月の RFC 1256 は、手作業のアドレス一覧や特定のルーティングプロトコルに頼らず、ホストが隣接ルーターを知る方法を定めた。ルーターは ICMP Router Advertisement を送り、インターフェース起動時にはホストから少数の Router Solicitation を送れる。仕組みは「誰が隣にいると名乗ったか」を明らかにする。設計の肝は、その名乗りをどれだけ長く信頼するかだった。

既定値は意図的に控えめだ。広告の最大間隔は600秒、既定の最小間隔はその75%、つまり450秒。次の間隔は範囲内で無作為に選ばれるため、広告はおおむね7分30秒から10分ごとに届き、複数ルーターの送信が揃いにくい。広告の有効寿命は最大間隔の3倍、1,800秒(30分)に設定される。

この寿命はローカル状態に対するリースと考えるとよい。隣接ルーターから有効な広告を受け取ると、ホストはそのアドレスをデフォルトルーター一覧に加え、広告の寿命でタイマーを始める。次の広告が届けばタイマーは更新され、期限が来れば動的に学習した項目が削除される。静的に設定された項目は別で、設定しただけでこのタイマーが付くわけではない。

「30分」を切り替え時間だと読むのは自然だが、RFC はその解釈を退けている。既定の広告頻度と寿命は、多数のルーターがいるリンクでも通信量とホスト負荷を小さく保つために選ばれた。一方、それではトランスポートセッションが切れる前に最初のホップのブラックホールを検出できない、と同じ文書が述べる。管理者は値を短くできるが、標準はそれが一般的な運用だとは主張していない。

存在の発見と現在の到達可能性は違う。広告が伝えるのは「このアドレスは隣接ルーターとして提示され、更新がなければこの期限まで有効とみなせる」ということだ。特定の宛先へ次のパケットを転送できるという検査結果ではない。RFC 1256 はルーティングプロトコルではなく、宛先ごとの最適経路を選ばない。ICMP Redirect は、すでに送られた通信に対してよりよい最初のホップを知らせる別の機能だ。

RFC 1122 は別の役割を明確にする。IP 層は次ホップゲートウェイの故障を検出し、代替を選ばなければならない。1989年の文書は、完全に満足できる汎用アルゴリズムはまだないとも認めた。連続的な ping は高コストで拡張しにくいため禁止され、代わりに上位層と下位層からの助言が推奨された。TCP の ACK は正常性の肯定材料になり、再送の連続やリンク層の通知は否定材料になり得る。RFC 1256 のタイマーは、その判断の代替ではない。

起動時の Solicitation は初期発見を早めるが、常時の生存確認ではない。ホストは最大3回、3秒間隔で送信でき、有効な広告が届けばそこでやめる。その後は定期広告で一覧を更新する。沈黙は最終的に項目を消すものの、経路がいつ利用不能になったかまでは示さない。

この歴史の要点は30分の停止ではなく、証拠の役割分担にある。Router Discovery は設定負担を減らし、広告された相手の期限付き記憶を保つ。デッドゲートウェイ検出は今の転送、実際の通信、他層からの信号を判断しなければならない。失効タイマーを復旧時間の保証に読み替えれば、異なる機能を混同し、RFC が明示的に与えていない約束を作ってしまう。

根拠は RFC 1256 とホスト要件 RFC 1122 第3.3.1.4節。ここで分かるのは既定値と設計境界であり、特定のOS、ネットワーク、利用者が実障害から復旧するまでの時間ではない。