MPLSの双方向転送検出(BFD)
MPLS の双方向転送検出の設定(CLI 手順)
EX8200スタンドアロンスイッチとEX8200バーチャルシャーシで双方向フォワーディング検出(BFD)プロトコルを設定して、MPLS LSP(ラベルスイッチパス)の障害を検出できます。BFDプロトコルは、ネットワークの障害を検出するシンプルなhelloメカニズムです。Hello パケットは、指定された一定の間隔で送信されます。ルーティング・デバイスが、指定した時間経過後にネイバーからの応答を受信しなくなった場合、ネイバー障害が検出されます。BFDは、さまざまなネットワーク環境やトポロジーで動作します。BFDの障害検出タイマーは、静的ルートの障害検出メカニズムよりも時間制限が短く、したがって迅速な検出を提供します。これらのタイマーも適応型です。例えば、隣接関係に障害が発生した場合にタイマーを高い値に適応させたり、ネイバーが設定した値よりも高い値をネゴシエートしたりすることができます。
このトピックでは、LDP ベースの LSP と RSVP ベースの LSP をサポートするプロバイダ エッジ(PE)スイッチとプロバイダー スイッチの設定について説明します。
このトピックには以下が含まれます。
LDP ベース LSP のプロバイダ エッジとプロバイダ スイッチでの BFD の設定
特定の転送等価クラス(FEC)に関連付けられたLDPベースLSPまたはRSVPベースLSPに対してBFDを有効にすることができます。または、運用管理および保守(OAM)イングレスポリシーを設定して、FECアドレスの範囲でBFDを有効にすることもできます。
LDP ベースの LSP に BFD を設定する前に、MPLS ネットワークの基本コンポーネントを設定する必要があります。
2つのPEスイッチを設定します。IP-over-MPLS を使用したプロバイダ エッジ スイッチでの MPLS の設定を参照してください。
1 つ以上のプロバイダ スイッチを設定します。EX8200およびEX4500プロバイダースイッチでのMPLSの設定を参照してください。
PEおよびプロバイダースイッチでBFDを設定するには:
RSVP ベース LSP のプロバイダ エッジとプロバイダ スイッチでの BFD の設定
BFDがイングレススイッチ上のRSVPベースLSPに設定されている場合、プライマリパスと、そのLSPのすべてのスタンバイセカンダリパスで有効になります。スイッチ上のすべてのLSPまたは特定のLSPに対してBFDを有効にすることができます。特定のLSPにBFDを設定した場合、BFDにグローバルに設定された値は、そのLSPで上書きされます。BFDセッションは、イングレススイッチのみを起点とし、エグレススイッチで終了します。
RSVP ベース LSP に BFD を設定する前に、MPLS ネットワークの基本コンポーネントを設定する必要があります。
2つのPEスイッチを設定します。IP-over-MPLS を使用したプロバイダ エッジ スイッチでの MPLS の設定を参照してください。
1 つ以上のプロバイダ スイッチを設定します。EX8200およびEX4500プロバイダースイッチでのMPLSの設定を参照してください。
PEおよびプロバイダースイッチでBFDを設定するには:
BFDトリガーによるローカル修復による迅速なコンバージェンス
BFDトリガーによるローカル保護の理解
リンクやノードの障害の後にネットワークが収束するまでの時間は、ネットワークサイズ、使用されるプロトコル、ネットワーク設計など、さまざまな要因によって大幅に変化する可能性があります。ただし、特定のコンバージェンス イベントはそれぞれ異なりますが、コンバージェンスのプロセスは本質的に一貫しています。障害が検出され、ネットワークで障害が報告(フラッド)され、トラフィックに代替パスが見つかり、転送プレーンが更新されて新しいパス上のトラフィックが渡されます。
この概要では、BFD(Bidirectional Forwarding Detection)によってトリガーされたローカル修復が、MPLS ネットワークにおける迅速なコンバージェンスのための迅速な復旧時間にどのように貢献するかについて説明します。
BFDトリガーによるローカル・リペアの目的
Junos OS では、RSVP シグナルの LSP(ラベルスイッチ パス)障害に対する一般的な MPLS トラフィック保護は、いくつかの補完的メカニズムによって提供されます。これらの保護メカニズムには、ローカル保護(高速再ルート、リンク保護、ノードリンク保護)とパス保護(プライマリパスとセカンダリパス)が含まれます。ローカル保護とパス保護を組み合わせることで、LSP のパケットロスを最小限に抑え、障害発生後の LSP の再ルーティング方法を制御できます。従来、どちらのタイプの保護も、物理レベルでの接続障害の迅速な検出に依存していました。ただし、物理レベルの高速検出を必要としない伝送メディアの場合、Junos OS は BFD および MPLS ping をサポートし、障害を迅速に検出します。
ルーター間のリンクでは、ルートがダウンすると、ルーティング プロトコル プロセスが次に最適なパスを再計算します。MPLS高速再ルート(FRR)が有効になっている場合、iflメッセージはすべてのFPC(フレキシブルPICコンセントレータ)にフラッディングされます。エッジ FPC は、バイパス MPLS LSP トンネルを有効にします。最後に、すべてのルートが修復され、バイパス MPLS LSP トンネルを介して送信されます。すべてのルートの修復に要する時間は、ルート数に比例します。
この修復シナリオは、スイッチが 2 つのリンク間にある場合、より困難になります。を参照してください 図 1。

リンクがリモートエンドでダウンすると、内部ゲートウェイプロトコル(IGP)がダウンするまで、ローカルエンドで障害は検出されません。ルーティング プロトコル プロセスが次の最適なパスの再計算を待つには、時間がかかりすぎます。
BFDトリガーによるローカル修復が有効になっている場合、パケット転送エンジンは、バイパスMPLS LSPトンネル(事前に設定およびインストールされている)を使用して、最初に修復を完了し、次にルーティングプロトコルプロセスに通知して新しいルートの再計算を行います。これを行うことで、プライマリ MPLS LSP トンネルがダウンすると、FPC は断続的に、そしてすぐにバイパス MPLS LSP トンネルを使用して FPC にトラフィックを迂回できます。
この方法でローカル修復を使用すると、50 ミリ秒未満の高速復元時間が実現します。
BFDトリガーによるローカル・リペアの設定
BFDトリガーによるローカル・リペアは設定できませんが、デフォルト設定の一部です。
BFDトリガーによるローカル修復は、従来のJunos OSで機能し、MPLS-FRR、IGP用BFD、およびループフリーの代替ルート(LFA)を備えています。
BFDトリガーによるローカル修復の無効化
デフォルトでは、BFDトリガーによるローカル・リペアはすべてのルーティング・インタフェースで有効になっています。必要に応じて、[]階層レベルでBFDトリガーによるローカル修復をedit routing-options無効にすることができます。
BFDトリガーによるローカル・リペアを明示的に無効にするには:
[routing-options の
no-bfd-triggered-local-repair
編集] 階層レベルに ステートメントを含めます。user@host# set no-bfd-triggered-local-repair
(オプション)コマンドを使用してコミットする前に、構成設定を
show routing-options
確認します。user@host# run show routing-options
コマンドを発行して、設定を show routing-options 確認します。
user@host# show routing-options ... no-bfd-triggered-local-repair; }
この機能を無効にする場合、IGPの ステートメントを graceful-restart 含めることでルーティングを再起動する必要があります。例えば、OSPFの場合、これは 階層レベルで [edit protocols ospf]
ステートメントをgraceful-restart含めることで実現されます。
MPLS IPv4 LSP向けBFDの設定
インターネットドラフトdraft-ietf-bfd-mpls-02.txt(MPLS LSP向けBFD)で説明されているように、MPLS IPv4 LSPで双方向転送検出(BFD)プロトコルを設定できます。BFDは、LSPデータプレーン障害を検出するためのLSPの定期的なOAM(運用、管理、保守)機能として使用されます。シグナリングプロトコルとしてLDPまたはRSVPのいずれかを使用するLSPに対してBFDを設定できます。
MPLS IPv4 LSP 向け BFD はルーティング エンジンに基づくものであり、配信されません。その結果、サポートされる最小BFDタイマー間隔は、1つのLSPセッションごとに(100ms * 3)、拡張されたLSPセッションの場合、サポートされる最小BFDタイマー間隔は(300ms * 3)となります。BFD との LSP セッションの数を増やすと、ネットワークをサポートするために間隔タイマーを増やす(スケールする)必要もあります。
ノンストップ アクティブ ルーティング(NSR)をサポートするルーティング エンジン スイッチオーバー インスタンスの場合、サポートされる BFD タイマーの最小間隔は(2.5 秒 * 3)です。
また、LSP コマンドを使用して LSP ping
データ プレーンの障害を検出することもできます。しかし、BFDにはいくつかのメリットがあります。LSP ping
コマンドよりも少ないコンピューター処理が必要で、多数の LSP の障害を迅速に検出できます(LSP コマンドは各 LSP ping
に個別に発行する必要があります)。一方、BFDは、LSP ping
エコー要求がFEC(転送等価クラス)に関連付けられている場合に可能であるエグレスLSRのデータプレーンに対してコントロールプレーンを検証するために使用できません。
BFD障害検出タイマーは適応型であり、より多かれ少なかれアグレッシブに調整できます。例えば、隣接関係に障害が発生した場合にタイマーを高い値に適応させたり、ネイバーが設定した値よりも高い値のタイマーをネゴシエートしたりすることができます。BFDセッションフラップが15秒のスパンで3回以上発生すると、タイマーはより高い値に適応します。バックオフ アルゴリズムは、ローカル BFD インスタンスがセッション フラップの原因である場合、受信(Rx)の間隔を 2 つ増やします。リモートBFDインスタンスがセッションフラップの原因である場合、送信(Tx)の間隔が2つ増加します。コマンドを clear bfd adaptation
使用して、BFD間隔タイマーを設定された値に戻すことができます。コマンドは clear bfd adaptation
ヒットレスであるため、コマンドがルーティング デバイス上のトラフィック フローに影響を与えることはありません。
Junos OS リリース 13.2R4、13.3R2、14.1 以降、LSP ping メッセージと LSP ping 応答数の間隔をそれぞれ設定し、その後、BFD(Bidirectional Forwarding Detection)セッションを停止させることができます。これを行うには、 階層レベルで ステートメントと lsp-ping-multiplier
ステートメントを[edit protocols mpls oam]
設定lsp-ping-interval
します。
LDP シグナル化 LSP の設定手順については、 LDP LSP 向け BFD の設定を参照してください。RSVP信号化されたLSPの設定手順については、以下のセクションを参照してください。
RSVPシグナル化LSPに対するBFDの設定
RSVP向けBFDは、ユニキャストIPv4 LSPをサポートしています。BFDがイングレスルーター上のRSVP LSPに設定されている場合、プライマリパスと、そのLSPのすべてのスタンバイセカンダリパスで有効になります。MPLS BFDセッションのエグレス側からの発信BFDパケットの送信元IPアドレスは、発信インターフェイスIPアドレスに基づいています。ルーター上のすべてのLSPまたは特定のLSPに対してBFDを有効にすることができます。特定のLSPにBFDを設定すると、BFDにグローバルに設定された値は上書きされます。BFDセッションは、イングレスルーターのみを起点とし、エグレスルーターで終了します。
パスのBFDセッションが失敗するたびにエラーが記録されます。以下の例は、RSVP LSP ログ メッセージに対する BFD の表示方法を示しています。
RPD_MPLS_PATH_BFD_UP: MPLS BFD session for path path1 up on LSP R0_to_R3 RPD_MPLS_PATH_BFD_DOWN: MPLS BFD session for path path1 down on LSP R0_to_R3
ルーター上のすべてのRSVP LSP、特定のLSP、または特定のLSPのプライマリパスに対してBFDを設定できます。RSVP LSPにBFDを設定するには、 および bfd-liveness-detection
ステートメントをoam
含めます。
oam { bfd-liveness-detection { failure-action { make-before-break teardown-timeout seconds; teardown; } failure-action teardown; minimum-interval milliseconds; minimum-receive-interval milliseconds; minimum-transmit-interval milliseconds; multiplier detection-time-multiplier; } lsp-ping-interval time-interval; lsp-ping-multiplier multiplier; }
このステートメントは、以下の階層レベルで設定できます。
[edit protocols mpls]
[edit protocols mpls label-switched-path lsp-name]
[edit protocols mpls label-switched-path lsp-name primary path-name]
ステートメントには bfd-liveness-detection
、以下のオプションが含まれています。
minimum-interval
—最小の送受信間隔を指定します。minimum-receive-interval
— 最小受信間隔を指定します。範囲は1~255,000ミリ秒です。minimum-transmit-interval
—最小送信間隔を指定します。範囲は1~255,000ミリ秒です。lsp-ping-multiplier
—検出時間の倍率を指定します。範囲は1~255です。注:偽マイナスをトリガーしないように、高速再ルート時間よりも長いBFD障害検出時間を設定します。
また、 オプションを lsp-ping-interval
設定して、LSP ping間の時間間隔を調整することもできます。RSVP シグナル化 LSP の LSP ping コマンドは です ping mpls rsvp
。コマンドの ping mpls rsvp
詳細については、 CLIエクスプローラーを参照してください。
RSVP LSP 上の BFD セッションの障害アクションの設定
RSVP LSP の BFD セッションがダウンすると、LSP は破棄され、再シグナリングされます。トラフィックをスタンバイ LSP に切り替えたり、LSP パスを分解分解したりすることもできます。実行されたアクションはすべて記録されます。
RSVP LSPパスのBFDセッションがダウンした場合、Junos OSがLSPパスを再シグナルするか、単にLSPパスを無効にするように設定することができます。プライマリ LSP パスが利用できない間、スタンバイ LSP パスがトラフィックを処理するように設定できます。ルーターは、BFDによって検出可能なLSP障害から自動的に回復できます。デフォルトでは、BFDセッションに障害が発生した場合、イベントは単にログに記録されます。
BFDイベントが発生した場合にJunos OSがRSVP LSPパスを破棄できるようにするには、 ステートメントを failure-action
含めます。
failure-action { make-before-break teardown-timeout seconds; teardown; }
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要セクションを参照してください。
または make-before-break
オプションのいずれかをteardown
設定できます。
teardown
-LSPパスがダウンし、直ちに再シグナルされます。make-before-break
—Junos OS は、古い LSP パスを破棄する前に、新しい LSP パスのシグナリングを試みます。また、 オプションはteardown-timeout
、LSPの再シグナリングの試みが間隔内で失敗した場合に指定された期間の後に、LSPをteardown-timeout
自動的に破棄するように設定することもできます。間隔に 0teardown-timeout
を指定した場合、LSP はダウンして直ちに再シグナリングされます(オプションを設定teardown
した場合と同じ動作)。
すべてのRSVP LSPに障害アクションを設定するには、 階層レベルに ステートメントを[edit protocols mpls oam bfd-liveness-detection]
含failure-action
めます。特定の RSVP LSP に障害アクションを設定するには、 階層レベルで ステートメントを[edit protocols mpls label-switched-path lsp-name oam bfd-liveness-detection]
含failure-action
めます。
特定のプライマリパスに障害アクションを設定するには、 階層レベルで ステートメントを[edit protocols mpls label-switched path lsp-name primary path-name oam bfd-liveness-detection]
含failure-action
めます。特定のセカンダリLSPパスに障害アクションを設定するには、 階層レベルに ステートメントを[edit protocols mpls label-switched-path lsp-name secondary path-name oam bfd-liveness-detection]
含failure-action
めます。