12.4.11 グレースフル・リスタート
(1) 概要
グレースフル・リスタートは,装置が系切替したり,運用コマンドなどによってルーティングプログラムが再起動したりしたときに,ネットワークから経路が消えることによる通信停止時間を短縮する機能です。
BGP4では,グレースフル・リスタートによってBGP4の再起動をする装置のことをリスタートルータといいます。また,グレースフル・リスタートを補助する隣接装置をレシーブルータといいます。
本装置は,レシーブルータ機能をサポートしています。
本装置でのグレースフル・リスタートの例を次の図に示します。
AS200の本装置とAS100のルータAは,インタフェースのアドレスをピアアドレスとする外部ピアのBGPコネクションを確立しているとします。また,ルータAとルータB間では内部ピアのBGPコネクション,ルータBとルータC間では外部ピアのBGPコネクションが確立しているとします。それぞれのBGPコネクションでは,グレースフル・リスタート機能のネゴシエーションが成立しているとします。ルータAがグレースフル・リスタートしたとき,当該装置とのBGPコネクションを持っている本装置,およびルータBはレシーブルータとして動作し,ルータAを経由するパケット・フォワーディングを停止しないで継続します。これによって,ルータAを経由するエンド・エンドの通信を維持できます。
BGP4のグレースフル・リスタートが正しく動作するための条件を次に示します。次の条件を満たさない場合,通常のリスタート動作となって通信が停止します。
-
本装置をレシーブルータとして動作させるときは,コンフィグレーションコマンドbgp graceful-restart modeが設定されていること。
-
グレースフル・リスタートを実施する装置と,レシーブルータの役割を実行する装置とのBGPコネクションで,グレースフル・リスタート機能のネゴシエーションが成立していること。
(2) グレースフル・リスタートの動作手順
BGP4によるグレースフル・リスタートの動作シーケンスを次の図に示します。
-
グレースフル・リスタートするルータとその隣接ルータの間で,BGPコネクションを確立するときにグレースフル・リスタート機能のネゴシエーションを行い,グレースフル・リスタートを実施する準備をします。
-
ルータがグレースフル・リスタートを実施すると,リスタートルータの動作を開始します。
-
隣接ルータは,BGPのコネクションが切断したとき,レシーブルータの動作を開始して,リスタートルータから学習している経路情報を保持し,パケットのフォワーディングを継続します。
-
BGPコネクションが再確立すると,最初にレシーブルータからリスタートルータへ経路情報を配布します。
-
リスタートルータで,グレースフル・リスタートを実行しているすべてのプロトコルの学習が完了すると,リスタートルータからレシーブルータへ経路情報を配布します。
-
5.と同じ。
-
最後にレシーブルータは,リスタートルータから学習している経路情報のうちで,BGPコネクションの再確立後に受信しなかった,古い経路情報を破棄します。
(3) レシーブルータの機能
(a) 動作契機
本装置でBGP4のレシーブルータの機能が動作する契機を次に示します。
-
BGPコネクションが確立しているピアから,NOTIFICATIONメッセージを受信しないで,該当するコネクションが使用しているTCPセッションの切断を検出したとき。
-
BGPコネクションが確立しているピアから,新規のTCPセッションが接続され,OPENメッセージを受信したとき。
(b) レシーブルータの機能
グレースフル・リスタートの開始後に,BGPコネクションが再確立するまでの待ち時間の上限を,コンフィグレーションコマンドbgp graceful-restart restart-timeの指定に従って監視します(「図12‒29 グレースフル・リスタートのシーケンス」の(a))。この時間内にBGPコネクションが再確立しない場合,レシーブルータは,リスタートルータから学習している経路情報を破棄して,リスタートルータを経由するパケット・フォワーディングを停止します。
restart-timeの値は,グレースフル・リスタート機能のネゴシエーションをするときに,ピアへ通知されます。本装置では,ピアから通知されたrestart-timeの値が,自装置の設定値より小さいとき,通知されたrestart-timeの値を使用して監視します。
レシーブルータがリスタートルータの再起動前に学習した経路情報を保持しておく時間の上限はコンフィグレーションコマンドbgp graceful-restart stalepath-timeで指定します(「図12‒29 グレースフル・リスタートのシーケンス」の(b))。
各パラメータを設定する場合は,通常は次のようにしてください。
-
stalepath-timeはリスタートルータの全プロトコルの学習完了時間より大きい値を設定する。
全プロトコルの学習完了時間は,リスタートルータが経路配布を開始する時間の上限となるので,経路配布が最も遅い場合は,全プロトコルの学習完了時間の経過後にレシーブルータへ経路配布を開始します。レシーブルータで,経路学習およびフォワーディングテーブルの更新後に,古い経路情報が削除されるようにするため,stalepath-timeの指定は,リスタートルータの全プロトコルの学習完了時間より120秒程度長い時間を設定してください。なお,設定値の目安は,経路数およびリスタートルータの隣接ピア数に依存します。
(c) レシーブルータ機能が失敗するケース
BGP4のグレースフル・リスタートが失敗するケースを次に示します。
-
グレースフル・リスタートを開始してから,restart-timeの時間が経過してもBGPコネクションが再確立しなかった場合,リスタートルータを経由する通信が停止します。
-
レシーブルータ機能を実行中に,自装置がリスタートした場合,リスタートルータを経由する通信が停止します。
-
グレースフル・リスタートしているピア装置が,グレースフル・リスタートの開始前に学習していた経路情報を保持できなかった場合,リスタートルータを経由する通信が停止します。
-
グレースフル・リスタートの開始後に,再確立したBGPコネクション上で,リスタートルータからの経路情報の配布が完了する前に,再び切断した場合,リスタートルータを経由する通信が停止します。
-
グレースフル・リスタートの開始後に,リスタートルータから学習した経路数がBGP4学習経路数制限による上限値を超え,BGPコネクションが再切断した場合,リスタートルータを経由する通信が停止します。
(4) グレースフル・リスタート使用時の注意事項
-
TCP MD5の併用について
グレースフル・リスタートをサポートするBGPコネクションが確立している場合,ピアから新しいコネクションの要求を受けたとき,プロトコルの規定によって,確立中のBGPコネクションを破棄し,新しいBGPコネクションを使用します。この動作によるセキュリティ上の問題を防ぐためにTCP MD5認証を併用してください。
-
IGPへ依存する環境でのグレースフル・リスタートについて
直接接続されていない内部ピア接続でピアアドレス宛ての経路情報をIGPによって交換している場合や,ルート・リフレクションを使用する構成などで,BGP経路情報のNEXT_HOP属性をIGP経路によって解決する場合は,当該IGPについてもグレースフル・リスタートの機能を設定してください。