BGPのグレースフルリスタートについて
存続期間の長い BGP グレースフル リスタート機能の理解
Junos OSは、障害が発生したBGPピアからBGPグレースフルリスタート機能を使用してそのようなルーティング情報を維持する期間よりも長い期間、BGPルーティング詳細を保持するメカニズムをサポートしています。
歴史的に、ルーティングプロトコルと特にBGPは、正確性に重点を置いて設計されており、「正確性」の重要な側面は、各ネットワーク要素の転送状態がネットワークの現在の状態にできるだけ早く収束することです。このため、プロトコルは、(BGPの観点から)ダウンしたルーターによってアドバタイズされた状態をできるだけ早く削除するように設計されています。RFC 4724で定義されたBGPグレースフルリスタートを使用した高速コンバージェンス機能は、ネットワークから「古い」状態を迅速に削除する試みでした。
ある期間にわたって、2つの要因により、古い状態を迅速に除去するこの方法が変更され、強化されてきました。1つ目は、MPLSなどのトンネリングフォワーディングインフラストラクチャの普及です。このようなインフラストラクチャは、ホップバイホップ転送で発生する可能性のある一部のタイプの転送ループのリスクを排除し、それによって転送要素間の強力な一貫性を求める動機の1つを軽減します。2つ目は、データのトランスポートとしてBGPの使用が増加しており、パケット転送との関連性が当初よりも低くなっていることです。例としては、自動検出(VPLS [RFC4761])やフィルタープログラミング(FLOWSPEC [RFC5575])にBGPを使用することが挙げられます。このような場合、BGPデータは、従来のルーティングと一致しない特性を想定しています。
BGPコントロールプレーンが何らかの理由で故障した場合に、BGPデータを長期間保持することを選択できる機能をネットワーク事業者に提供することが重要でした。BGP グレースフル リスタートのプロパティは、BGP 情報を長期間保持するというこの望ましい要件に近いものですが、いくつかのギャップがあります。特に「古い」情報を保持できる最大時間には、グレースフル リスタートによって 4,095 秒の上限制限が課されます。Junos OSは、長寿命グレースフルリスタート機能と呼ばれるBGP機能をサポートしており、古い情報をセッションリセット後も長期間保持することができます。また、このような情報をマークするための新しいBGPコミュニティ「LLGR_STALE」もサポートしています。このような古い情報は最も優先度の低いものとして扱われるべきであり、そのアドバタイズは新しい機能をサポートするBGPスピーカーに限定されます。
BGP長寿命グレースフルリスタート(LLGR)により、ネットワークオペレーターは、障害が発生したBGPピアからの古いルーティング情報を、既存のBGPグレースフルリスタート機能よりもはるかに長く維持することを選択できます。BGP ルートを長期間維持するこの機能は、IETF ドラフトの Long-Lived BGP Graceful Restart—draft-uttaro-idr-bgp-persistence-03 に準拠しています。この草案によると、長寿命グレースフルリスタート(LLGR)はNLRIごとに明示的に設定する必要があり、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 が各セカンダリソケットペアに対してマージ呼び出しを発行して 1 つのソケットにマージするときに行われるため、遅延が発生する可能性があります。この遅延を回避するために、カーネル内の automerge モジュールは、セカンダリソケットマージを 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グレースフルリスタート機能を使用してそのようなルーティング情報が維持される期間よりも長い期間保持するメカニズムをサポートしています。
サポートされる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]
階層レベルで特定の BGP グループの LLGR を設定する場合は有効期間の長い受信者 enable ステートメントを含めたり、特定の BGP ネイバーの LLGR を設定するには [edit protocols bgp group group-name neighbor neighbor-address graceful-restart]
階層レベルで含めることもできます。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 機能(レシーバー モードとリスタート モードの両方)が無効になります。このプロパティは、グローバル設定からグループに継承され、グループ設定からネイバーに継承されます。
関連項目
BGP の監視と管理 長時間のグレースフル リスタート
このトピックでは、BGPの長寿命グレースフルリスタートに関連するパラメータを分析および表示できるようにするための、運用コマンドとその重要性について説明します。トラフィック損失に関連する統計カウンタとメトリックを分析し、適切な是正措置を講じることができます。show コマンドの出力に表示されるフィールドは、ネットワーク パフォーマンスおよびトラフィック処理効率の問題の診断とデバッグに役立ちます。
この clear bgp neighbor neighbor-address stale-routes
により、グレースフルリスタート(GR)または長寿命グレースフルリスタート(LLGR)レシーバーモードの動作が原因で、指定されたネイバーに対して現在保留されている古いルートが発生します。clear bgp neighbor neighbor-address gracefully
コマンドは clear bgp neighbor hard
(clear bgp neighbor
のデフォルト) と同じですが、送信される Notify および Stop メッセージでは新しいハード リセット サブコードは使用されません。これにより、ネイバーがネゴシエートされた場合、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>
ゼロの先頭要素は省略され、例えば、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-stale とマークされたことを示します。LongLivedStaleImport
フラグは、ルートがピアから受信されたとき、またはインポートポリシーによって、LLGR-stale とマークされたことを示します。これらのフラグの一方または両方がルートに対して表示される場合があります。これらのフラグはいずれも、古い (通常の GR 古い) フラグと同時には表示されません。ルートが長期間古いために優先度が低くなると、show route detail コマンドの出力の [非アクティブな理由(Inactive reason)] フィールドに 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
ジュニパー技術支援センター(JTAC)によると、BGPの長寿命グレースフルリスタートに関連する問題のトラブルシューティングに役立つコマンドの1つは、 show route table bgp.l2vpn.0 detail hidden
コマンドです。コマンドの出力は、BGPセッションが終了した後もBGPルートが存在するかどうかを検出するのに役立ちます。hidden
オプションを使用すると、インシデント中およびインシデント後のルートを表示し、ルートが非表示になっている理由を説明する情報を検出できます。このシナリオのトラブルシューティングに役立つその他の手がかりには、古いBGPログエントリ( bgp_mark_route_stale
など)の出現や、 show bgp summary
コマンドの出力に表示される非表示ルートがあります。
関連項目
BGPによる、起動の遅いピア間でのBGPルートの保存期間の延長 - 長寿命のグレースフルリスタート
Junos OSは、障害が発生したBGPピアからBGPグレースフルリスタート機能を使用してそのようなルーティング情報を維持する期間よりも長い期間、BGPルーティング詳細を保持するメカニズムをサポートしています。
通常のグレースフルリスタートレシーバーモードが無効になっていない限り、長寿命グレースフルリスタートレシーバーモードはデフォルトで有効になっています。BGP の長寿命グレースフル リスタート(LLGR)機能を有効にするには、[edit protocols bgp graceful-restart]
階層レベルで long-lived receiver enable
ステートメントを含めます。BGP LLGR をグローバル レベルまたはシステム全体レベルで有効にする以外に、 [edit protocols bgp group group-name graceful-restart]
階層レベルで特定の BGP グループの LLGR を設定する場合は有効期間の長い受信者 enable ステートメントを含めたり、特定の BGP ネイバーの LLGR を設定するには [edit protocols bgp group group-name neighbor neighbor-address graceful-restart]
階層レベルで含めることもできます。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 機能(レシーバー モードとリスタート モードの両方)が無効になります。このプロパティは、グローバル設定からグループに継承され、グループ設定からネイバーに継承されます。
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ルーターと推定)にアドバタイズされたルートにno-exportBGPコミュニティーが自動的に追加されないようにするには、[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
オプションを追加または削除すると、セッションはリセットされます。このセッションの残りの部分で、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ルーティング詳細を保持するメカニズムをサポートしています。
2 つの新しい有名なコミュニティが導入されます。これらの新しいBGPコミュニティは、静的ルート定義のコミュニティ属性やポリシーオプションのコミュニティ定義で、他のシンボリックな既知のコミュニティ(アドバタイズ禁止、輸出禁止、輸出禁止など)として、どの設定階層レベルでも使用することができます。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 ラベル付きユニキャスト、inet フロー、およびルートターゲットでのみ表示されます。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 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 ラベル付きユニキャスト、inet フロー、およびルートターゲットでのみ表示されます。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
属性を使用して、継承された無効化属性を上書きできます。ネイバー レベルでグレースフル リスタートの存続期間の長いリスタータを設定すると(包含グループ レベルまたはグローバルに設定されていない場合)、内部グループが分割されます。ファミリーに対して LLGR リスタータを有効または無効にするか、失効時間が変更されると、セッションがリセットされ、新しい機能をネイバーに送信できるようになります。
失効時間の値の範囲は、1 から 16777215 (2^24 – 1) 秒です。値はデフォルトで秒数を示す単純な整数ですが、次の表記を使用して指定することもできます。
[<週間>W][<日>d][<時間>h][< 分 > 分][<秒>秒]例えば、27 日を 27d、648h、38880m、または 2332800s と指定できます。90 分は、1h30m、90m、または 5400s として設定できます。指定された日数に86400を掛け、時間数に3600を掛け、分数に60を掛けます。これらは秒に加算されて合計を取得します。指定された合計が最大失効時間を超えない限り、1d36h などの異なる期間単位での日と時間の組み合わせ形式が許可されます。
さらに、時刻は次の表記を使用して構成することもできます。<時間>:<分>:<秒> たとえば、12:00:00 は 12 時間を指定します。時間と分はオプションです。
たとえば、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長寿命グレースフルリスタートの設定
[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 セッションがダウンした後、セッションが再確立されるまで、古いルートは最大 2 つの連続した期間保持される可能性があり、これはそれぞれリスタート時間と長寿命の古い時間のパラメーターで制御されます。最初の期間中は、ルーティングの変更は防止されますが、トラフィックのヌルルートフィルタリングが発生する可能性があります。2 番目の期間では、トラフィックのヌルルート フィルタリングの可能性は減少しますが、ルーティングの変更はネットワーク全体で明らかになります。ネットワーク環境では、特定のアプリケーションに関連するパラメータを設定する際に、トレードオフ、ネットワークダイナミクス、および潜在的な障害シナリオを考慮する必要があります。必要に応じて、ローカル構成によって、またはグレースフル・リスタート機能のリスタート時間をゼロに設定し、その機能内のアドレス・ファミリー・インディケーター (AFI) および後続のアドレス・ファミリー ID (SAFI) をリストしないことによって、最初のピリオドをバイパスすることができます。
F ビット(および付随する GR 機能の「転送状態」ビット)の設定は、展開に関する考慮事項に一部依存します。F ビットは、ヘルパー ルーターが関連するルートをフラッシュする必要があることを示していると解釈できます(ビットがクリアのままの場合)。LLGR が使用される重要なシナリオは、従来のルーティング(トンネルベースのルーティングではなくホップバイホップ転送)よりも設定に類似したルートの場合です。このようなルートでは、他の考慮事項に関係なく、常に F ビットを設定すると便利な場合があります。同様に、専用ルート リフレクタなど、転送プレーンに関与しないコントロール プレーンのみのエンティティについても、常に F ビットを設定することをお勧めします。全体として、採用すべきガイドラインは、再起動ルーターの状態喪失が転送ループまたはヌルルートを引き起こすことが合理的に予想される場合、状態が保持されているかどうかに応じて、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 の状態に従って設定されます。ネイバーがルート リフレクタ クライアントの場合、関連付けられた 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); } } } } }
転送状態ビットのグローバル設定に加えて、個々のファミリに対して転送状態ビットの動作を指定できます。転送状態ビット設定を変更しても、既存のセッションには影響しません。特定のアドレスファミリーの転送ステートビットを指定するには、論理システムとルーティングインスタンスの[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ピアのルート詳細の保持
Junos OSは、障害が発生したBGPピアからBGPグレースフルリスタート機能を使用してそのようなルーティング情報を維持する期間よりも長い期間、BGPルーティング詳細を保持するメカニズムをサポートしています。
歴史的に、ルーティングプロトコルと特にBGPは、正確性に重点を置いて設計されており、「正確性」の重要な側面は、各ネットワーク要素の転送状態がネットワークの現在の状態にできるだけ早く収束することです。このため、プロトコルは、(BGPの観点から)ダウンしたルーターによってアドバタイズされた状態をできるだけ早く削除するように設計されています。RFC 4724で定義されたBGPグレースフルリスタートを使用した高速コンバージェンス機能は、ネットワークから「古い」状態を迅速に削除する試みでした。
BGP長寿命グレースフルリスタート(LLGR)により、ネットワークオペレーターは、障害が発生したBGPピアからの古いルーティング情報を、既存のBGPグレースフルリスタート機能よりもはるかに長く維持することを選択できます。BGP ルートを長期間維持するこの機能は、IETF ドラフトの Long-Lived BGP Graceful Restart—draft-uttaro-idr-bgp-persistence-03 に準拠しています。この草案によると、長寿命グレースフルリスタート(LLGR)はNLRIごとに明示的に設定する必要があり、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]
階層レベルで特定の BGP グループの LLGR を設定する場合は有効期間の長い受信者 enable ステートメントを含めたり、特定の BGP ネイバーの LLGR を設定するには [edit protocols bgp group group-name neighbor neighbor-address graceful-restart]
階層レベルで含めることもできます。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 ラベル付きユニキャスト、inet フロー、およびルートターゲットでのみ表示されます。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長寿命グレースフルリスタート機能を確認する
アクション
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ネイバーに関する情報を示しています。