BGPのグレースフルリスタートについて
長時間のBGPグレースフルリスタート機能を理解する
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
歴史的に、ルーティングプロトコル、特にBGPは、正確性に重点を置いて設計されており、「正確性」の重要な側面は、各ネットワーク要素の転送状態ができるだけ早くネットワークの現在の状態に収束することです。このため、このプロトコルは、(BGPの観点から)ダウンしたルーターによってアドバタイズされた状態をできるだけ迅速に削除するように設計されています。RFC 4724で定義されたBGPグレースフルリスタートを使用した高速コンバージェンス機能は、ネットワークから「古い」状態を迅速に削除する試みでした。
一定期間にわたって、2つの要因により、古い状態を迅速に除去するこの方法が修正および強化されました。1つ目は、MPLSなどのトンネル化された転送インフラストラクチャの普及です。このようなインフラストラクチャは、ホップバイホップ転送で発生する可能性のあるある種の転送ループのリスクを排除し、それによって転送要素間の強力な一貫性を求める動機の1つを減少させます。2つ目は、データのトランスポートとしてBGPの使用が増えていることです。当初ほどパケット転送との関連性が薄れています。例としては、自動検出(VPLS [RFC4761])やフィルター プログラミング(FLOWSPEC [RFC5575])に BGP が使用されています。このような場合、BGPデータは従来のルーティングと一致しない特性を想定しています。
何らかの理由でBGPコントロールプレーンに障害が発生した場合に、ネットワーク事業者がBGPデータを長期間保持する機能を提供することが重要でした。BGPグレースフルリスタートの特性は、BGP情報を長期間保存するためのこの望ましい要件に近いですが、いくつかのギャップが存在します。特に「古い」情報を保持できる最大時間(グレースフルリスタートでは、4095秒の上限制限が課されます)。Junos OS は、長時間のグレースフル リスタート機能と呼ばれる BGP 機能をサポートしているため、セッションのリセット期間中、古い情報を長期間保持できます。また、そのような情報をマークするための新しいBGPコミュニティ「LLGR_STALE」もサポートしています。このような古い情報は、最小優先情報として扱われ、そのアドバタイズメントは、新機能をサポートするBGPスピーカーに限定されます。
BGPのLLGR(長寿命グレースフルリスタート)により、ネットワーク運用担当者は、障害が発生したBGPピアからの古いルーティング情報を既存のBGPグレースフルリスタート機能よりもはるかに長く維持することを選択できます。BGPルートを長期間維持するためのこの機能は、IETFドラフトの 長寿命BGPグレースフルリスタートのサポート—draft-uttaro-idr-bgp-persistence-03に準拠しています。この草案では、NLRIごとにLLGR(Long-Lived Graceful Restart)を明示的に設定する必要があり、LLGRを認識・検証しない他のピアに古い情報が拡散することを防ぐための規定が含まれています。LLGRによって、次のようなメリットと操作がもたらされます。
障害が発生したノードからのルートは、設定された期間(日数順)保持されます。
適切なshowコマンドを使用して、NLRIごとのLLGRネゴシエーション状態を調べることができます。
LLGRがピアに対して現在有効かどうか、有効であれば有効期限が切れる期間を表示できます。
LLGRによって保持されている古いルートは、
show bgp neighborコマンドの出力で明示的にマークされます。他のネイバーから学習した古いルートは、(明確に定義されたコミュニティを使用して)
show bgp neighborコマンドの出力で明示的にマークされます。
LLGR手法はさまざまなシナリオに適用できますが、この機能の主な目的は1つの特定のシナリオです。ルートリフレクタとクライアント間の接続が失われるシナリオ(断続的な接続など)が発生し、RIB全体を送信する前に接続がリセットされることがありますが、このような障害は再起動につながりません。また、このような現象は、クライアントとルートリフレクタによってアドバタイズされるネクストホップとの間に何らかの接続上の問題が存在することを意味するものではありません。典型的な長時間再起動時間は約12時間になると予想されます。
LLGR の IETF ドラ フト draft-uttaro-idr-bgp-persistence-03 に記載されているすべての動作ガイドラインと運用ポイントがサポートされています。また、リリース15.1以前のリリースの既存のJunos OS機能、特にグレースフルリスタートとノンストップルーティング(NSR)との下位互換性もサポートされています。LLGRが設定されている場合、インターネットドラフトで明示的に説明されていない限り、グレースフルリスタートは既存の方法で動作します。また、LLGRとNSRの両方を同時に設定して、完全なLLGR機能を実現することもできます。LLGRの前提条件として、IETFドラフトのサポートである BGPグレースフルリスタートの通知メッセージサポート—draft-ietf- idr-bgp-gr-notification-01が実装されています。このドラフトは、通常のGRの動作を拡張して、通信の中断やプロトコルエラーから保護できるようにします。
関連項目
スイッチオーバー後のカーネルタイマーによるBGPキープアライブの自動生成のための最大期間設定の理解
Junos OSでは、ノンストップアクティブルーティング(NSR)は、グレースフルルーティングエンジンスイッチオーバー(GRES)と同じインフラストラクチャを使用して、インターフェイスとカーネル情報を保持します。ただし、NSRは、バックアップのルーティングエンジンでルーティングプロトコルプロセス(rpd)を実行することで、ルーティングルーティングエンジンの情報も保存します。この追加情報を保存することで、NSRは自己完結型となり、ルーティングプロトコル情報を復元するルーティングプラットフォームを支援するヘルパールーター(またはスイッチ)に依存しません。NSR は、ネイバー ルーター(またはスイッチ)がグレースフル リスタート プロトコル拡張をサポートしていないネットワークに有利です。この拡張機能の結果、NSR はグレースフル リスタートの自然な代替品となります。
ノンストップ アクティブ ルーティング自動マージは、ソケット レプリケーションのカーネル コンポーネントの 1 つです。スイッチオーバー時に、このコンポーネントはバックアップからプライマリルーティングエンジンにソケットペアを自動的にマージします。バックアップからプライマリへのNSRスイッチオーバーは、rpdが各セカンダリソケットペアに対してマージコールを発行して、それらを単一のソケットにマージした場合に発生します。これにより、遅延が発生する可能性があります。この遅延を回避するために、カーネル内の自動マージモジュールはセカンダリソケットマージをrpdから切り離し、スイッチオーバー時にセカンダリソケットを自動的にマージします。これにより、rpd優先度の高いスレッドがこれを利用して、より高速なキープアライブを生成して、スイッチオーバー時にTCP接続を維持できます。
デフォルトでは、バックアップからプライマリへのスイッチオーバーイベントの直後に、BGPはカーネルが提供する自動キープアライブ生成サービスに登録しません。そのためには、[edit routing-options]階層レベルでnonstop-routing-optionsステートメントを有効にし、BGPで高精度タイマーを設定する必要があります。BGPで高精度タイマーを設定することで、BGPはカーネルが提供する自動キープアライブ生成サービスにすべてのセッションを登録できます。登録されると、カーネルは、バックアップからプライマリへのスイッチオーバーイベントの直後に、制御セッションのために、BGPに代わってタイマーを使用してキープアライブを自動的に生成します。これにより、スイッチオーバーイベント中に非常に小さなタイマーで、制御セッション用のより信頼性の高いキープアライブを生成できます。
関連項目
BGP長寿命グレースフルリスタートによる機能の相互運用
このトピックでは、BGPの長寿命グレースフルリスタート時のさまざまな機能の動作動作と、さまざまなシステム条件について説明します。
Junos OSリリース15.1以降、Junos OSは、BGPグレースフルリスタート機能を使用して、障害が発生したBGPピアから、そのようなルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
サポートされているNLRIの制限
LLGRの設定と機能のネゴシエーションは、以下のBGPネットワーク層到達可能性情報(NLRI)ファミリーでサポートされています。
L2VPN
inet ラベル付きユニキャスト
INET フロー
ルートターゲット
inet-vpn ユニキャスト
inet-vpnフロー
inet6-vpn ユニキャスト
LLGRの設定と機能のネゴシエーションは、次のファミリでは禁止されています。
inet-mvpn
INET6-MVPN
inet-mdt
LLGR機能が禁止されているNLRIファミリについては、これらのファミリのLLGR設定を含む設定をコミットしようとすると拒否され、そのような設定は保存されないことが示されます。これらのファミリに関連付けられたNLRIは、LLGR機能アドバタイズメントには含まれず、受信したLLGR機能アドバタイズメントでは無視されます。
LLGRの設定と機能のネゴシエーションは許可されますが、他のファミリでは非表示になります。
NSR での LLGR リスターター モード
NSRとLLGRが一緒に設定されている場合、ルーターは、ピアでLLGRレシーバーモードをトリガーするための長時間の古い時間を含め、通常かつ定期的な方法でLLGR機能をネゴシエートします。ただし、完全なLLGRリスターター機能(すべてのピアからEoRが受信されるまでRIB終了マーカーの送信を遅らせる)は、NSRでは機能しません。システム(両方のルーティングエンジン)がフル再起動する際、ルーティングプロトコルデーモン(rpd)は、他のピアからのEoRを待たずに、自身のEoRを送信します。現在のRIBコンテンツを送信するとすぐにEoRを送信します。この状態は、ネットワークの再コンバージェンス時に一時的な停止を引き起こす可能性があります。NSRは、すべてのシングルルーティングエンジン再起動シナリオを処理するのに十分であると考えられています。リスターターモードの制限は、両方のルーティングエンジン(またはrpdの両方のコピー)が同時に再起動するシナリオにのみ有効です。NSRでは、通常の再起動モード設定は有効になっていません。
通常のグレースフルリスタート リスターター モード設定は、引き続き NSR でサポートされません。
グローバル、BGPグループ、およびBGPネイバーレベルでのLLGR機能
通常のグレースフル リスタート レシーバー モードが無効になっていない限り、長時間のグレースフル リスタート レシーバー モードはデフォルトで有効になっています。BGPのLLGR(長寿命グレースフルリスタート)機能を有効にするには、[edit protocols bgp graceful-restart]階層レベルでlong-lived receiver enableステートメントを含めます。グローバルまたはシステム全体レベルでBGP LLGRを有効にするだけでなく、[edit protocols bgp group group-name graceful- restart]階層レベルで有効期間の長いreceiver enableステートメントを含めて、特定のBGPグループに対してLLGRを設定し、[edit protocols bgp group group-name neighbor neighbor-address graceful-restart]階層レベルで、特定のBGPネイバーに対してLLGRを設定することもできます。BGP LLGRメカニズムを無効にするには、[edit protocols bgp graceful-restart]、[edit protocols bgp group group-name graceful-restart]、または[edit protocols bgp group-group-name neighbor-address graceful-restart]階層レベルにlong-lived receiver disableオプションを含めます。LLGR を無効にすると、すべての NLRI ファミリーのすべての LLGR 機能(レシーバー モードとリスターター モードの両方)が無効になります。このプロパティは、グローバル設定からグループに、またグループ設定からネイバーに継承されます。
関連項目
BGP Long-Lived Graceful Restartの監視と管理
このトピックでは、BGPの長寿命グレースフルリスタートに関連するパラメーターを分析および表示するための操作コマンドとその重要性について説明します。トラフィック損失に関連する統計カウンターとメトリックを分析し、適切な是正措置を講じることができます。showコマンドの出力に表示されるフィールドは、ネットワークパフォーマンスとトラフィック処理効率の問題の診断とデバッグに役立ちます。
この clear bgp neighbor neighbor-address stale-routes により、グレースフル リスタート(GR)または長時間グレースフル リスタート(LLGR)レシーバー モードの動作が原因で、指定されたネイバーに対して現在保持されている古いルートが発生します。 clear bgp neighbor neighbor-address gracefully コマンドは clear bgp neighbor hard ( clear bgp neighborのデフォルト)と同じですが、送信される通知メッセージと停止メッセージで新しいハードリセットサブコードを使用しません。これにより、ネゴシエートされた場合、ネイバーはGRまたはLLGRヘルパーモードに入ることができます。このルーターではセッションはまだクリアされており、このルーターはGRまたはLLGRヘルパーモードに入りません。
デバッグ目的で、BGP長寿命のグレースフルリスタート機能に追加された隠し clear コマンドが利用可能です。
clear bgp neighbor neighbor-address socket.
このコマンドは、確立されたピアリング セッションの TCP 接続を切断します。これがコマンドの唯一の直接的な意味であり、他のすべての意味は接続が切断されることによる副作用です。その結果、(GR 通知拡張機能が無効になっていない限り)ネゴシエートされた場合、接続の両側が GR または LLGR ヘルパー モードに入り、TCP 接続が再確立されます。
show bgp neighborコマンドの出力は、以下の追加情報を表示するように拡張されています。
長寿命のグレースフルリスタートオプション
ピアがネゴシエートしたLLGRパラメーター
リスタートルーターがネゴシエートしたLLGRパラメーター
時間は、ルーティングプロトコルデーモン(rpd)%#0T 形式で表示されます。
<weeks>w<days>d <hours>:<minutes>:<seconds>先頭要素が 0 個は省略されます。たとえば、1 週間未満の値には週が含まれません。
ネイバーに対して長時間のグレースフル リスタートが完全に無効になっている場合、次のように表示されます。
user@router> show bgp neighbor
Peer: 10.6.128.225+45824 AS 100 Local: 10.255.255.14+44542 AS 100
Type: Internal State: Established Flags: <Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Options: <Preference LocalAddress AddressFamily Rib-group Refresh>
Options: <LLGRHelperDisabled> {The LLGRHelperDisabled value for the Options field denotes that long-lived BGP graceful restart is completely disabled for a neighbor}
ネイバーがLLGRを完全にサポートしていない場合、以下が表示されます。
user@router> show bgp neighbor
...
Peer does not support LLGR Restarter or Receiver functionality {BGP neighor or peer does not support long-lived BGP graceful restart restarter or receiver
functionality}
LLGRレシーバーモードがアクティブである間(LLGRをネゴシエートしたピアが切断され、まだ再接続されていない)、 show bgp neighbor コマンドの出力には、LLGRが期限切れになるまでの残り時間、GR古くなったタイマーの残り時間、およびRIBの詳細が表示されます。
user@router> show bgp neighbor
Peer: 10.4.12.11 AS 100 Local: 10.6.128.225 AS 100
Type: Internal State: Active Flags: <>
Last State: Idle Last Event: Start
Last Error: None
Export: [ foo ]
Options: <Preference LocalAddress Refresh GracefulRestart>
Options: <LLGR>
Local Address: 10.6.128.225 Holdtime: 90 Preference: 170
Number of flaps: 3
Last flap event: Restart
Error: 'Cease' Sent: 0 Recv: 1
Time until long-lived stale routes deleted: inet-vpn-unicast 10:00:22 route-target 10:00:22
Table bgp.l3vpn.0
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: not advertising
Active prefixes: 0
Received prefixes: 7
Accepted prefixes: 7
Suppressed due to damping: 0
Table foo.inet.0 Bit: 30000
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: not in sync
Active prefixes: 0
Received prefixes: 7
Accepted prefixes: 7
Suppressed due to damping: 0
ネイバー BGPグレースフルリスタートレシーバーモードがアクティブな場合、 show bgp neighbor コマンドの出力に追加情報が表示されます。これらの詳細には、古いルートが保持されている NLRI のリスト(NLRI フィールドに古いルートを保持しています)、再起動タイマーの残り時間(古いルートが削除されるまでの時間、または長寿命の古いフィールドになるまでの時間)、古いタイマーの残り時間(古いルートでは rib の終わりまでの時間が想定される)、RIB の詳細が含まれます。時刻は協定世界時(UTC)形式(YYYY-MM-DD-HH:MM:SS)で表示されます。セッションがアクティブな場合にも古いタイマー表示(「rib の末尾が想定されるまでの時間」)が表示されるが、ネイバーがまだすべての rib の終わりの表示を送信していない場合にも表示されます。
グレースフル リスタートまたは LLGR ヘルパー モードがアクティブな場合、 show bgp summary コマンドで RIB 情報が表示されます。BGPセッションがメインルーティングデバイスで確立されている場合、フィールドには、ネイバーから受信されたアクティブ、受信、受け入れ、および減衰ルートの数が表示され、inet.0(メイン)およびinet.2(マルチキャスト)ルーティングテーブルに表示されます。例えば、8/10/10/2 および 2/4/4/0 は次のことを示します。
BGPピアからの8つのアクティブルート、10つの受信ルート、10つの受け入れルート、および2つの減衰ルートがinet.0ルーティングテーブルに表示されます。
BGPピアからの2つのアクティブルート、4つの受信ルート、4つの受け入れルートがinet.2ルーティングテーブルに表示されます。減衰ルートは表示されません。
show route detailコマンド(receive-protocol bgpオプションの有無にかかわらず)が拡張され、長寿命の古い状態で保持されているルートを識別できるようになりました。LongLivedStaleフラグは、LLGR受信モードの動作の一部として、このルーターによってルートがLLGR失効とマークされたことを示します。LongLivedStaleImport フラグは、ルートがピアから受信されたとき、またはインポートポリシーによって LLGR-stale とマークされたことを示します。これらのフラグの一方または両方がルートに表示される場合があります。これらのフラグはどちらも、Stale (通常の GR stale) フラグと同時に表示されません。ルートが長期にわたって古くなったために優先順位が解除された場合、show route detailコマンドの出力にある非アクティブな理由フィールドにLLGRが古くなったと表示されます。新しいLLGRの古い非アクティブな理由は、優先度とローカル度設定の間のルート選択階層に収まります。
user@router> show route receive-protocol bgp 10.4.12.11 detail
bgp.l2vpn.0: 38 destinations, 39 routes (37 active, 0 holddown, 1 hidden)
* 1.1.1.4:100:1.1.1.4/96 AD (1 entry, 1 announced)
Accepted LongLivedStale LongLivedStaleImport
Nexthop: 10.4.12.11
Localpref: 100
AS path: I
ジュニパー Technical Assistance Center(JTAC)によると、長寿命のグレースフルリスタートに関連する問題のトラブルシューティングに役立つコマンドの1つBGP show route table bgp.l2vpn.0 detail hidden コマンドです。コマンドの出力は、BGPセッションの終了後もBGPルートが存在するかどうかを検出するのに役立ちます。 hidden オプションを使用すると、インシデント中およびインシデント後のルートを確認し、ルートが非表示になっている理由を説明する情報を検出できます。このシナリオのトラブルシューティングに役立つその他の手がかりには、古いBGPログエントリ( bgp_mark_route_staleなど)の出現や、 show bgp summary コマンドの出力に表示される非表示ルートが含まれます。
関連項目
BGP長寿命グレースフルリスタートによる、ゆっくり再起動するピア間でBGPルートを保持するBGPの期間を増やす
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
通常のグレースフル リスタート レシーバー モードが無効になっていない限り、長時間のグレースフル リスタート レシーバー モードはデフォルトで有効になっています。BGPのLLGR(長寿命グレースフルリスタート)機能を有効にするには、[edit protocols bgp graceful-restart]階層レベルでlong-lived receiver enableステートメントを含めます。グローバルまたはシステム全体レベルでBGP LLGRを有効にするだけでなく、[edit protocols bgp group group-name graceful-restart]階層レベルで有効期間の長いreceiver enableステートメントを含めて、特定のBGPグループに対してLLGRを設定し、[edit protocols bgp group group-name neighbor neighbor-address graceful-restart]階層レベルで、特定のBGPネイバーに対してLLGRを設定することもできます。BGP LLGRメカニズムを無効にするには、[edit protocols bgp graceful-restart]、[edit protocols bgp group group-name graceful-restart]、または[edit protocols bgp group-group-name neighbor-address graceful-restart]階層レベルにlong-lived receiver disableオプションを含めます。LLGR を無効にすると、すべての NLRI ファミリーのすべての LLGR 機能(レシーバー モードとリスターター モードの両方)が無効になります。このプロパティは、グローバル設定からグループに、またグループ設定からネイバーに継承されます。
BGPネイバーは、以下の階層レベルで設定できます。
[edit protocols bgp group group-name]—デフォルトの論理システムとデフォルトのルーティングインスタンス。[edit routing-instances instance-name protocols bgp group group-name]—指定されたルーティングインスタンスを持つデフォルトの論理システム。[edit logical-systems logical-system-name protocols bgp group group-name]—設定された論理システムとデフォルトのルーティングインスタンス。[edit logical-systems logical-system-name routing-instances instance-name protocols bgp group group-name]—指定されたルーティングインスタンスを持つ設定された論理システム。
long-lived receiver enableは、設定の上位レベルから継承された無効オプションを上書きします。すべてのファミリーで長寿命のグレースフル リスタート リスターター モードを有効にするわけではなく、各ファミリーに対してリスターター モードを明示的に設定する必要があります。
LLGR機能をアドバタイズしないネイバーにLLGR古いルートをアドバタイズできるようにするには、[edit protocols bgp graceful-restart long-lived]、[edit protocols bgp group group-name graceful-restart long-lived]、または[edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived]階層レベルでadvertise-to-non-llgr-neighborステートメントを含めます。この設定は、このルーターによってLLGR古いとマークされたルートと、ネイバーから受信したLLGR古いルートの両方に適用されます。理想は、自律システム内のすべてのルーターが、有効化される前のIETFドラフト仕様をサポートすることです。ただし、増分導入を促進するために、以下の条件下で、長期グレースフル リスタート機能をアドバタイズしていないネイバーに古いルートをアドバタイズする必要がある場合があります。 ネイバーは、内部(IBGPまたはコンフェデレーション)ネイバーである必要があります。NO_EXPORTコミュニティは、古いルートに接続する必要があります。古いルートでは、LOCAL_PREF属性をゼロに設定する必要があります。この手法を部分的な導入に使用する場合は、自律システム全体のすべてのLLGRルートに対してLOCAL_PREFをゼロに設定する必要があります。この構成は、この仕様をサポートするルーターとサポートしないルーター間の一貫性のために、柔軟性をわずかに低下させる(競合するLLGRルート間で順序が保持されない可能性がある)と引き換えにします。ルート選択の一貫性は転送ループを防ぐために重要であるため、この仕様をサポートしないルーターについては後者の検討事項が先行します。
外部BGPネイバー(CEルーターと推定)にアドバタイズされるルートに、輸出禁止BGPコミュニティが自動的に追加されないようにするには、[edit protocols bgp graceful-restart long-lived]、[edit protocols bgp group group-name graceful-restart long-lived]、または[edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived]階層レベルでomit- no-exportステートメントを含めます。例えば、VPNの導入では、BGPがPE-CEプロトコルとしてよく使用されます。このような仕様をサポートするように簡単にアップグレードできないCEとの相互運用性に対応することは、このような導入環境で現実的に必要となる場合があります。この要件は、「古い」ルーティング情報が、1つ以上のIBGPルーターがアップグレードされていない場合に、これらの手順をサポートするルーターの境界を越えて漏洩しないようにしながら、問題を引き起こします。VPN PE-CEの場合、使用中のプロトコルはEBGPで、IBGP専用パス属性であるLOCAL_PREFが使用されます。「古い」ルーティング情報の伝播を制限する主な動機は、一旦BGPコンフェデレーション境界を出ると、その情報が無制限に拡散しないようにする理由にあります。VPNの導入には通常、トポロジー的に制約があるため、この懸念はなくなります。このため、明示的に設定されている場合、実装は PE-CE セッション上で古いルートをアドバタイズする可能性があります。このようなシナリオでは、古くなったルートが無制限に拡散することに対する追加の保護として、実装はデフォルトでNO_EXPORTコミュニティを問題のルートに接続する必要があります。NO_EXPORTコミュニティの添付は、例外的なケースに対応するために明示的に無効にすることができます。一部のVPN導入では、CEがこの仕様をサポートしていない場合でも、古いルートをCEにアドバタイズする必要がある場合があります。その場合、そのようなルートをアドバタイズするようにPEルーターを設定する場合、ルートを受信しているCEを運用担当者に通知する必要があり、CEはルートを優先しないように設定する必要があります。典型的なBGP実装では、LLGR_STALEコミュニティでマッチングし、マッチングルートのLOCAL_PREFをゼロに設定することで、この操作を実行します。
LLGRレシーバーモードが有効または無効になっている場合、セッションはリセットされます。この動作により、新しい機能値をネイバーに送信できます。 advertise-to-non-llgr-neighbor オプションを有効または無効にすると、エクスポートポリシーが再評価され、LLGRの古いルートがアドバタイズまたは取り消される可能性があります。 omit-no-export オプションが追加または削除されると、セッションはリセットされます。このセッションの残りの時間では、(エクスポートポリシーの外部に追加される)エクスポート禁止コミュニティーの有無にかかわらず、LLGRの古いルートを再アドバタイズすることができます。
システムまたはグローバルレベルでBGPの長寿命グレースフルリスタート機能を有効にし、そのプロパティを設定するには:
[edit]
protocols {
bgp {
graceful-restart {
long-lived {
receiver {
enable:
disable;
}
advertise-to-non-llgr-neighbor {
omit-no-export;
}
}
}
}
}
BGPグループレベルでBGPの長寿命グレースフルリスタート機能を有効にし、そのプロパティを設定するには:
[edit]
protocols {
bgp {
group group-name {
graceful-restart {
long-lived {
receiver {
enable:
disable;
}
advertise-to-non-llgr-neighbor {
omit-no-export;
}
}
}
}
}
}
ネイバーまたはピアグループレベルでBGPの長寿命グレースフルリスタート機能を有効にし、そのプロパティを設定するには:
[edit]
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
long-lived {
receiver {
enable:
disable;
}
advertise-to-non-llgr-neighbor {
omit-no-export;
}
}
}
}
}
}
}
関連項目
ルーティングポリシーでのBGP長寿命グレースフルリスタートコミュニティの設定
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
2 つの新しい有名なコミュニティが導入されます。これらの新しいBGPコミュニティは、静的ルート定義のコミュニティ属性またはポリシーオプションコミュニティ定義で、他のシンボリック既知のコミュニティ(no-advertise、no-export、no-export-subconfedなど)として、どの設定階層レベルでも使用できます。2つの新しいコミュニティは以下の通りです。
llgr-stale—再アドバタイズされたときに、長寿命の古いルートにコミュニティを追加します。no-llgr—BGPスピーカーがLLGRに保持したくないルートをマークします。通知メッセージ機能には、関連する設定パラメーターがありません。
community name membersステートメントにllgr-staleおよびno-llgrオプションを含めることで、以下の階層レベルで、BGPコミュニティ情報を静的、集約、または生成されたルートに関連付けることができます。
[edit dynamic policy-options], [edit logical-systems logical-system-name policy-options], [edit policy-options]
BGPの長寿命グレースフルリスタートコミュニティをルーティングポリシー一致条件で使用するように設定するには:
[edit policy-options]
community name {
members [ llgr-stale | nollgr];
}
LLGRを設定する場合、BGPグレースフルリスタートを設定する必要はありません。llgr-stale と no-llgr の周知コミュニティの値は、それぞれ 0xFFFF0006 と 0xFFFF0007 です。権限はプロトコルbgpの場合と同じです。long-lived-graceful-restartセクションは、ファミリーl2vpn、inet labeled-ユニキャスト、inet flow、route-targetにのみ表示されます。inet-mvpn、inet6-mvpn、inet-mdtでは禁止されています。他の家族には隠されています。
Junos OS は、BGP の長寿命グレースフル リスタートのルートの状態に一致する BGP エクスポート ポリシーの設定もサポートしています。以下のように、以前に定義したコミュニティとルーティングポリシー内のアドレスプレフィックスのリストを関連付けて、指定されたプレフィックスに対する長時間のグレースフルリスタートのルートを選択的に受け入れるか拒否することができます。
policy-options {
prefix-list name;
community name members [ llgr-stale | nollgr];
policy-statement name{
from {
prefix-list name;
community name;
}
then {
(accept | reject)
}
}
}
グローバル、グループレベル、およびネイバーグループレベルの設定用に、 [edit protocols bgp graceful-restart]階層レベルの下に2つの非表示の設定ステートメントが追加されます。
[edit protocols bgp graceful-restart]、[edit protocols bgp group group-name graceful-restart]、または[edit protocols bgp group group-name neighbor neighbor-address graceful-restart]階層レベルのdisable-notification-flagステートメントは、グレースフルリスタート機能ネゴシエーションにおけるNフラグの送信を無効にします。[edit protocols bgp graceful-restart]、[edit protocols bgp group group-name graceful-restart]、または[edit protocols bgp group group-name neighbor neighbor-address graceful-restart]階層レベルのdisable-notification-extensionsステートメントも、グレースフルリスタート機能ネゴシエーションにおけるNフラグの送信を無効にしますが、それに加えて、IETF bgp-gr-notificationドラフトで指定されているグレースフルリスタートレシーバーモードを呼び出すための新しいルールを無効にし、ハードリセットサブコードの送信を無効にします。ハード リセット サブコードは、通知メッセージまたは停止メッセージで受信しても、引き続き監視されます。
N フラグの送信を無効にし、グローバルまたはシステム全体のレベルでグレースフル リスタートをトリガーするルールを無効にするには:
[edit]
protocols {
bgp {
graceful-restart {
disable-notification-flag;
disable-notification-extensions;
}
}
}
N フラグの送信を無効にし、グループレベルでグレースフルリスタートをトリガーするルールを無効にするには:
[edit]
protocols {
bgp {
group group-name {
graceful-restart {
disable-notification-flag;
disable-notification-extensions;
}
}
}
}
N フラグの送信を無効にし、ネイバーまたはピアレベルでグレースフルリスタートをトリガーするルールを無効にするには:
[edit]
protocols {
bgp {
group group-name {
graceful-restart {
disable-notification-flag;
disable-notification-extensions;
}
}
}
}
関連項目
論理システムおよびルーティングインスタンス内の特定のアドレスファミリーに対する長寿命グレースフルリスターターモードネゴシエーションの設定
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
また、システム、論理システム、またはルーティングインスタンス内のすべてのアドレスファミリーに対してこの機能を設定する代わりに、特定のアドレスファミリーに対してBGPの長寿命グレースフルリスターターモードネゴシエーションメカニズムを設定することもできます。特定のアドレスファミリーに対してBGP LLGRを有効にするには、以下の階層レベルのいずれかに graceful-restart long-lived restarter stale-time interval ステートメントを含めます。
各ルーティングテーブルは、プロトコルファミリーまたはアドレスファミリーインジケーター(AFI)と、それに続くアドレスファミリー識別子(SAFI)によって識別されます。AFIパラメータは、 (l2vpn | inet | route-target) プロトコルの1つにすることができ、SAFIパラメータは、inetファミリーの (flow | labeled-unicast) プロトコルのいずれかと、L2VPNファミリーの (auto-discovery-mspw | auto-discovery-only | signaling) プロトコルのいずれかにすることができます。
LLGRを設定する場合、BGPグレースフルリスタートを設定する必要はありません。long-lived-graceful-restartセクションは、ファミリーl2vpn、inet labeled-ユニキャスト、inet flow、route-targetにのみ表示されます。inet-mvpn、inet6-mvpn、inet-mdtでは禁止されています。他の家族には隠されています。
[edit logical-systems logical-system-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)] [edit routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)],
ファミリーごとのグレースフルリスタート長寿命リスターター設定セクションのスタンザは、BGPグローバル、またはグループまたはネイバーのLLGRリスターターモードネゴシエーションを有効にします。値は、グローバル設定からグループに、またグループ設定からネイバーに継承されます。disable属性は、上位レベルから継承された設定を上書きするために使用されます。LLGRレシーバーモードは無効になりません。必要に応じて、すべてのファミリーでLLGRレシーバーモードを明示的に無効にする必要があります。非表示の enable 属性を使用して、継承されたdisable属性を上書きできます。グレースフルリスタート長寿命リスターターをネイバーレベルで設定(含むグループレベルまたはグローバルに設定されていない場合)を設定すると、内部グループが分割されます。ファミリーでLLGRリスターターが有効または無効になっている場合、または失効時間が変更された場合、セッションはリセットされ、新しい機能をネイバーに送信できるようになります。
stale-timeの値の範囲は、1秒から16777215(2^24 – 1)秒です。この値は、デフォルトで秒数を示す単純な整数ですが、次の表記を使用して指定することもできます。
[<週間>w][<日>日][<時間>時間][<分>分][<秒>秒]例えば、27日を27日、648時間、38880m、または2332800sとして指定できます。90分は1時間30分、90m、または5400sとして設定できます。指定された日数に 86400 を、時間数に 3600、分数に 60 を掛けます。これらは秒に加算され、合計が取得されます。指定された合計が最大失効時間を超えない限り、1d36hなどの異なる期間単位での日と時間の組み合わせ形式が許可されます。
さらに、時間は次の表記を使用して設定することもできます:<時>:<分>:<秒>例えば、12:00:00は12時間を指定します。時間と分はオプションです。
2つの表記は組み合わせることができます。例えば、2w1d 12:00:02は2週間1日12時間2秒(1339202秒)を指定します。(CLIでは、このような値にスペースを含む二重引用符で囲む必要があります。この表記で表すと、最大古くなった時間は27w5d 04:20:15(27週間5日4時間20分15秒)です。show configurationコマンドには実際に設定された値が表示されますが、関連するタイマーが show bgp neighborなどの実行時のshowコマンドに表示されると、1d36hが2d 12:00:00になるなど、値が正規化されます。正規化されたLLGR時間を表示するための完全なルールは、 clear bgp neighbor neighbor-address gracefully コマンドの設定によって異なります。
論理システムまたはルーティングインスタンスのグローバルレベルで、BGPの長寿命グレースフルリスタート特性、アドレスファミリーごと、および後続アドレスファミリーごとを設定するには、以下を行います。
アドレスファミリーごとのBGP長寿命グレースフルリスタートの設定論理システムのグローバルレベルで
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
アドレスファミリーごとのBGP長寿命グレースフルリスタートの設定 ルーティングインスタンスのグローバルレベルで
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
論理システムまたはルーティングインスタンスのBGPグループレベルで、BGP長寿命グレースフルリスタート特性、アドレスファミリーごと、および後続アドレスファミリーごとを設定するには:
論理システムの BGP グループレベルでのアドレスファミリーごとの BGP 長寿命グレースフルリスタートの設定
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
}
アドレスファミリーごとのBGP長寿命グレースフルリスタートの設定ルーティングインスタンスのBGPグループレベルで
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
}
論理システムまたはルーティングインスタンスの BGP ネイバーグループレベルで、BGP 長寿命グレースフルリスタート特性、アドレスファミリーごと、後続アドレスファミリーごとのBGPを設定するには:
アドレスファミリーごとのBGP長寿命グレースフルリスタートの設定論理システムの BGP ネイバーグループレベルでの設定
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
}
}
アドレスファミリーごとのBGP長寿命グレースフルリスタートの設定 ルーティングインスタンスの BGP ネイバーグループレベルでの設定
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
long-lived {
restarter {
disable;
stale-time interval;
}
}
}
}
}
}
}
関連項目
すべてのアドレスファミリーと特定のアドレスファミリーに対して転送状態ビットを設定することにより、BGPヘルパールーターまたはピアにルート保持について通知する
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
BGPセッションがダウンした後、セッションが再確立される前に、古いルートは、それぞれ再起動時間と長寿命の古い時間パラメーターによって制御され、最大2つの連続期間保持される場合があります。最初の期間中は、ルーティングの変更は防止されますが、トラフィックの空値ルートフィルタリングが発生する可能性があります。2 番目の期間中は、トラフィックの空値ルート フィルタリングの可能性は減少する可能性がありますが、ルーティングの変更はネットワーク全体でわかります。お使いのネットワーク環境では、特定のアプリケーションに関連するパラメーターを設定する際には、トレードオフ、ネットワークダイナミクス、潜在的な障害シナリオを考慮する必要があります。必要に応じて、ローカル設定で、またはグレースフル リスタート機能の再起動時間をゼロに設定し、その機能にアドレス ファミリー インジケーター(AFI)や後続のアドレス ファミリー識別子(SAFI)をリストしないことで、最初の期間をバイパスできます。
Fビット(および付随するGR機能の「転送状態」ビット)の設定は、導入時の考慮事項に一部依存します。Fビットは、ヘルパールーターが関連するルートをフラッシュする必要があることを示すものと解釈できます(ビットがクリアのままの場合)。LLGRが使用される重要なシナリオは、従来のルーティングよりも設定に類似したルート(トンネルベースのルーティングではなくホップバイホップ転送)です。このようなルートでは、他の考慮事項に関係なく、常に F ビットを設定することが有用な場合があります。同様に、専用ルートリフレクタなど、転送プレーンに参加しないコントロールプレーン専用エンティティの場合は、Fビットを常に設定することが望ましいです。全体として採用すべきガイドラインは、再起動するルーターの状態の損失が転送ループまたは NULL ルートを引き起こすことが合理的に予想される場合、状態が保持されているかどうかに応じて、F ビットを慎重に設定する必要があるということです。Fビットを設定する必要があるかどうかは、導入のニーズと構成された設定に基づいて決定できます。一部のVPN導入では、CEがこの仕様をサポートしていない場合でも、古いルートをCEにアドバタイズする必要がある場合があります。このようなシナリオでは、そのようなルートをアドバタイズするようにPEを設定するネットワーク運用担当者は、ルートを受信しているCEを運用担当者に通知する必要があり、CEはルートを優先しないように設定する必要があります。通常、BGP実装は、LLGR_STALEコミュニティでマッチングし、マッチングルートのLOCAL_PREFをゼロに設定することで、この動作を実行します。
転送状態ビットを指定することができます。これは、任意の論理システムまたはルーティングインスタンスに対して、グローバル、グループ、およびネイバーレベルで定義できるBGP設定オプションです。グローバル、BGPグループ、またはBGPネイバーレベルで転送状態ビットを指定するには、[edit protocols bgp graceful-restart]、[edit protocols bgp group-group-name graceful-restart]、または[edit protocols bgp group-group-name neighbor neighbor-address graceful-restart]階層レベルでforwarding-state-bit (as-rr-client | from-fib)ステートメントを含めます。forwarding-state-bit属性は、グレースフルリスタートと長時間グレースフルリスタート機能アドバタイズの両方で転送状態ビットを設定する方法を制御します。デフォルトでは、値はネイバーがルートリフレクタクライアントであるかどうかに依存します。ネイバーがルートリフレクタクライアントでない場合、値はRFC 4724に準拠し、関連するFIBの状態に応じて設定されます。ネイバーがルートリフレクタクライアントの場合、関連するユニキャストの状態を使用するinetユニキャストとinet6ユニキャストを除くすべてのファミリーに対して値が1に設定されます。as-rr-clientオプションは、すべてのアドレスファミリーの動作をルートリフレクタクライアントの機能と同じに設定します。from-fibオプションは、すべてのアドレスファミリーの動作を、ルートリフレクタ以外のクライアントの場合と同様のものにすることを強制します。
グローバルレベルで転送状態フラグネゴシエーションを設定するには:
[edit]
protocols {
bgp {
graceful-restart {
forwarding-state-bit (as-rr-client | from-fib);
}
}
}
グループレベルで転送状態フラグネゴシエーションを設定するには:
[edit]
protocols {
bgp {
group group-name {
graceful-restart {
forwarding-state-bit (as-rr-client | from-fib);
}
}
}
}
ネイバーまたはピアグループレベルで転送状態フラグネゴシエーションを設定するには:
[edit]
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
forwarding-state-bit (as-rr-client | from-fib);
}
}
}
}
}
転送状態ビットのグローバル設定に加えて、個々のファミリーに対して転送状態ビットの動作を指定できます。forwarding-state-bit設定を変更しても、既存のセッションには影響しません。特定のアドレスファミリーの転送状態ビットを指定するには、論理システムとルーティングインスタンスの[edit protocols bgp graceful-restart family address-family subsequent-address-family]、[edit protocols bgp group-group-name graceful-restart family address-family subsequent-address-family]、または[edit protocols bgp group-group-name neighbor neighbor-address graceful-restart family address-family subsequent-address-family]階層レベルでforwarding-state-bit (set | from-fib)ステートメントを含めます。グレースフル リスタートおよび長時間グレースフル リスタート機能アドバタイズメントの転送状態ビットを制御するために、ファミリーごとの BGP 設定オプションが追加されました。これらは、デフォルトの論理システムまたは特定の論理システム、プライマリルーティングインスタンスまたは特定のルーティングインスタンスに指定できます。per-family forwarding-state-bit属性は、デフォルトルールまたは転送状態ビットを設定するためのグローバル設定を上書きします。set オプションは、転送状態ビットを強制的に1に設定します。from-fibオプションを選択すると、関連するFIBの状態に応じて値が設定されます。ファミリーごとの転送状態ビット設定を変更しても、既存のセッションには影響しません。
アドレスファミリーごとの転送状態ビットを設定するための forwarding-state-bit (set | from-fib) ステートメントを含めることができる完全な設定階層レベルを以下に示します。
[edit logical-systems logical-system-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)] [edit routing-instances routing-instance-name protocols bgp family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name family inet (labeled-unicast | unicast | multicast)], [edit routing-instances routing-instance-name protocols bgp group group-name neighbor address family inet (labeled-unicast | unicast | multicast)],
論理システムまたはルーティングインスタンスのグローバルレベルで、BGPの長寿命グレースフルリスタート、アドレスごとのファミリー、および後続のアドレスファミリーごとの転送状態ビットを設定するには:
論理システムのグローバルレベルでの転送状態ビットファミリーの設定
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
ルーティング インスタンスのグローバル レベルでの転送状態ビット ファミリーごとの設定
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
論理システムまたはルーティングインスタンスの BGP グループレベルで、BGP 長寿命グレースフルリスタート、アドレスごとのファミリー、および後続のアドレスファミリーごとの転送状態ビットを設定するには:
論理システムの BGP グループレベルでのアドレスファミリーごとの転送状態ビットを設定する
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
}
アドレスファミリーごとの転送状態ビットを設定する ルーティングインスタンスの BGP グループレベルで
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
}
論理システムまたはルーティングインスタンスの BGPネイバーグループレベルで、BGP長寿命グレースフルリスタート、アドレスごとのファミリー、および後続のアドレスファミリーごとの転送状態ビットを設定するには:
論理システムの BGP ネイバー グループ レベルでの転送状態ビット ファミリーの設定
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
}
}
アドレスファミリーごとの転送状態ビットを設定する ルーティングインスタンスの BGP ネイバーグループレベルで
[edit routing-instances routing-instance-name protocols bgp family address-family subsequent-address-family
protocols {
bgp {
group group-name {
neighbor neighbor-address {
graceful-restart {
forwarding-state-bit (set | from-fib);
}
}
}
}
}
関連項目
例:BGPロングライブグレースフルリスタートの使用による、遅速で潜在的なBGPピアのルート詳細の保持 BGP
Junos OSは、障害が発生したBGPピアから、BGPグレースフルリスタート機能を使用してルーティング情報が維持される期間よりも長い期間、BGPルーティングの詳細を保持するメカニズムBGPをサポートしています。
歴史的に、ルーティングプロトコル、特にBGPは、正確性に重点を置いて設計されており、「正確性」の重要な側面は、各ネットワーク要素の転送状態ができるだけ早くネットワークの現在の状態に収束することです。このため、このプロトコルは、(BGPの観点から)ダウンしたルーターによってアドバタイズされた状態をできるだけ迅速に削除するように設計されています。RFC 4724で定義されたBGPグレースフルリスタートを使用した高速コンバージェンス機能は、ネットワークから「古い」状態を迅速に削除する試みでした。
BGPのLLGR(長寿命グレースフルリスタート)により、ネットワーク運用担当者は、障害が発生したBGPピアからの古いルーティング情報を既存のBGPグレースフルリスタート機能よりもはるかに長く維持することを選択できます。BGPルートを長期間維持するためのこの機能は、IETFドラフトの 長寿命BGPグレースフルリスタートのサポート—draft-uttaro-idr-bgp-persistence-03に準拠しています。この草案では、NLRIごとにLLGR(Long-Lived Graceful Restart)を明示的に設定する必要があり、LLGRを認識・検証しない他のピアに古い情報が拡散することを防ぐための規定が含まれています。
この例では、MXシリーズルーターでBGPの長寿命グレースフルリスタート機能を設定する方法を説明し、以下のセクションで構成されています。
要件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
MPCを搭載したMXシリーズルーター1台。
MXシリーズルーターのJunos OSリリース15.1R1以降
BGPの長寿命グレースフルリスタートを設定する前に、以下を確認してください。
デバイスインターフェイスを設定します。
BGPを設定します。
概要
グレースフル リスタートにより、再起動中のルーティング デバイスは、隣接するネイバーやピアにその状態を通知できます。グレースフル リスタート中、再起動するデバイスとそのネイバーは、ネットワーク パフォーマンスを中断することなくパケットの転送を続行します。隣接するデバイスが再起動を支援するため(これらの隣接デバイスを ヘルパールーターと呼びます)、再起動するデバイスは、アルゴリズムを再計算することなく、完全な動作を迅速に再開できます。
通常のグレースフル リスタート レシーバー モードが無効になっていない限り、長時間のグレースフル リスタート レシーバー モードはデフォルトで有効になっています。BGP長寿命のLLGR(グレースフルリスタート)機能を有効にするには、[edit protocols bgp graceful-restart]階層レベルにlong-lived receiver enableステートメントを含めます。グローバルまたはシステム全体レベルでBGP LLGRを有効にするだけでなく、[edit protocols bgp group group-name graceful-restart]階層レベルで有効期間の長いreceiver enableステートメントを含めて、特定のBGPグループに対してLLGRを設定し、[edit protocols bgp group group-name neighbor neighbor-address graceful-restart]階層レベルで特定のBGPネイバーに対してLLGRを設定することもできます。BGP LLGRメカニズムを無効にするには、[edit protocols bgp graceful-restart]、[edit protocols bgp group group-name graceful-restart]、または[edit protocols bgp group-group-name neighbor neighbor-address graceful-restart]階層レベルにlong-lived receiver disableオプションを含めます。LLGR を無効にすると、すべての NLRI ファミリーのすべての LLGR 機能(レシーバー モードとリスターター モードの両方)が無効になります。このプロパティは、グローバル設定からグループに、またグループ設定からネイバーに継承されます。
トポロジー
アドレスが 1.2.3.4 の BGPピアまたはネイバーに対して、古いルートが維持される期間を増やすシナリオ例を考えてみましょう。古いセッションでルートを保持しなければならない期間とピアのグレースフルリスタートが発生するタイミングを指定するだけでなく、特定のアドレスプレフィックスからのBGPルーターを、長時間のグレースフルリスタートメカニズムを定義する際に無視するように設定することもできます。ルーティングポリシーステートメントで使用するIPv4またはIPv6アドレスプレフィックスのリストと、ルーティングポリシーに含めるBGPコミュニティを定義できます。特定のプレフィックスからのルートを拒否するようにアクション修飾子を設定した場合、そのような BGP ルートは増加した期間維持されません。
また、システム、論理システム、またはルーティングインスタンス内のすべてのアドレスファミリーに対してこの機能を設定する代わりに、特定のアドレスファミリーに対してBGPの長寿命グレースフルリスターターモードネゴシエーションメカニズムを設定することもできます。特定のアドレスファミリーに対してBGP LLGRを有効にするには、以下の階層レベルのいずれかに graceful-restart long-lived restarter stale-time interval ステートメントを含めます。
各ルーティングテーブルは、プロトコルファミリーまたはアドレスファミリーインジケーター(AFI)と、それに続くアドレスファミリー識別子(SAFI)によって識別されます。AFIパラメータは (l2vpn | inet | route-target) プロトコルの1つにでき、SAFIパラメータは、inetファミリーの (flow | labeled-unicast) プロトコルとL2VPNファミリーの (auto-discovery-mspw | auto-discovery-only | signaling) プロトコルのいずれかにすることができます。
LLGRを設定する場合、BGPグレースフルリスタートを設定する必要はありません。long-lived-graceful-restartセクションは、ファミリーl2vpn、inet labeled-ユニキャスト、inet flow、route-targetにのみ表示されます。inet-mvpn、inet6-mvpn、inet-mdtでは禁止されています。他の家族には隠されています。
設定
CLIクイックコンフィグレーション
この例をすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピー アンド ペーストして、設定モードから commit を入力します。
アドレスプレフィックスリスト、BGPコミュニティ、およびBGPルーティングポリシーの設定
set policy-options prefix-list special 44.44.44.44/32 set policy-options community llgr-community llgr-stale set policy-options policy-statement llgr-import from prefix-list special set policy-options policy-statement llgr-import from community llgr-community set policy-options policy-statement llgr-import then reject
BGPグループ、NLRI、および長時間のグレースフルリスタートの設定
set protocols bgp group ibgp-group type internal set protocols bgp group ibgp-group import llgr-import set protocols bgp group ibgp-group family inet unicast set protocols bgp group ibgp-group family inet unicast graceful-restart long-lived restarter stale-time 12h
BGPネイバーグループの設定
set protocols bgp group ibgp-group neighbor 1.2.3.4
リスターター モードの長寿命グレースフル リスタートの設定
ステップバイステップの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、『CLIユーザーガイド』の「設定モードでのCLIエディターの使用」を参照してください。
アドレスプレフィックスリスト、BGPコミュニティ、およびBGPルーティングポリシーの一致条件とアクション修飾子を設定します。
[edit] user@ host# set policy-options prefix-list special 44.44.44.44/32 user@ host# set policy-options community llgr-community llgr-stale user@ host# set policy-options policy-statement llgr-import from prefix-list special user@ host# set policy-options policy-statement llgr-import from community llgr-community user@ host# set policy-options policy-statement llgr-import then reject
フローの古い時間で再起動モードのBGPグループ、アドレスファミリー、および長寿命のグレースフルリスタート機能を設定します。
[edit] user@ host# set protocols bgp group ibgp-group type internal user@ host# set protocols bgp group ibgp-group import llgr-import user@ host# set protocols bgp group ibgp-group family inet unicast user@ host# set protocols bgp group ibgp-group family inet unicast graceful-restart long-lived restarter stale-time 12h
BGPネイバーグループを設定します。
[edit] user@ host# set protocols bgp group ibgp-group neighbor 1.2.3.4
結果
設定モードから、 show policy-options および show protocols コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[edit]
user@host# show policy-options
policy-options {
prefix-list special 44.44.44.44/32;
community llgr-community llgr-stale;
policy-statement llgr-import {
from {
prefix-list special;
community llgr-community;
}
then {
reject;
}
}
}
user@host# show protocols
protocols {
bgp {
group ibgp-group {
type internal;
import llgr-import;
family inet unicast {
graceful-restart {
long-lived {
restarter {
stale-time 12h;
}
}
}
}
neighbor 1.2.3.4;
}
}
}
検証
設定が正常に機能していることを確認します。
長時間のグレースフル リスタート機能が有効になっていることの検証
目的
BGPネイバーレベルに設定されたBGP長寿命のBGPグレースフルリスタート機能を確認します
アクション
LLGR レシーバー モードがアクティブである間(LLGR をネゴシエートしたピアが切断され、まだ再接続されていない)、 show bgp neighbor コマンドの出力には、LLGR の有効期限切れまでの残り時間、GR 古くなったタイマーの残り時間、および RIB の詳細が表示されます。
user@router> show bgp neighbor
Peer: 10.4.12.11 AS 100 Local: 10.6.128.225 AS 100
Type: Internal State: Active Flags: <>
Last State: Idle Last Event: Start
Last Error: None
Export: [ foo ]
Options: <Preference LocalAddress Refresh GracefulRestart>
Options: <LLGR>
Local Address: 10.6.128.225 Holdtime: 90 Preference: 170
Number of flaps: 3
Last flap event: Restart
Error: 'Cease' Sent: 0 Recv: 1
Time until long-lived stale routes deleted: inet-vpn-unicast 10:00:22 route-target 10:00:22
Table bgp.l3vpn.0
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: not advertising
Active prefixes: 0
Received prefixes: 7
Accepted prefixes: 7
Suppressed due to damping: 0
Table foo.inet.0 Bit: 30000
RIB State: BGP restart is complete
RIB State: VPN restart is complete
Send state: not in sync
Active prefixes: 0
Received prefixes: 7
Accepted prefixes: 7
Suppressed due to damping: 0
意味
出力は、BGPネイバーに関する情報を示しています。