BFD を使用した OSPF 障害検出の設定
OSPF 向け BFD について
双方向フォワーディング検出(BFD)プロトコルは、ネットワーク内の障害を検出する単純なhelloメカニズムです。BFDは、さまざまなネットワーク環境とトポロジーで動作します。一対のルーティング・デバイスがBFDパケットを交換します。Helloパケットは、指定された、定期的な間隔で送信されます。ネイバー障害は、ルーティングデバイスが指定した時間経過後に応答の受信を停止すると検出されます。BFD の障害検出タイマーは、OSPF の障害検出メカニズムよりも制限時間が短いため、より高速に検出できます。
BFDの障害検出タイマーは適応型であり、速くまたは遅くするように調整できます。BFD障害検出タイマーの値が低いほど、障害検出が速くなり、その逆も同様です。たとえば、隣接関係に障害が発生した場合(つまり、タイマーが障害の検出に速度を落とした場合)、タイマーはより高い値に適応できます。または、ネイバーは、設定された値よりも高い値のタイマーをネゴシエートできます。BFDセッションのフラップが15秒間に3回以上発生すると、タイマーはより高い値に適応します。バックオフアルゴリズムは、ローカルBFDインスタンスがセッションフラップの原因である場合に、受信(Rx)の間隔を2つ増加させます。リモートBFDインスタンスがセッションフラップの原因である場合は、送信(Tx)の間隔が2つ増加します。 clear bfd adaptation
コマンドを使用して、BFD 間隔タイマーを設定した値に戻すことができます。 clear bfd adaptation
コマンドはヒットレスであり、コマンドがルーティングデバイスのトラフィックフローに影響を及ぼすことはありません。
EX4600 スイッチは、1 秒未満の最小間隔値をサポートしていません。
BFD は、Junos OS Release 9.3 以降の OSPFv3 でサポートされています。
支社SRXシリーズのファイアウォールでは、BFDパケットの最小キープアライブ時間間隔として1000ミリ秒を推奨します。
次の BFD プロトコル設定を構成できます。
detection-time threshold
- 検出時間の適応の閾値。BFD セッションの検出時間が、設定されたしきい値以上の値に適応すると、1 つのトラップと 1 つのシステム ログ メッセージが送信されます。full-neighbors-only
- 完全なネイバー隣接関係を持つ OSPF ネイバーに対してのみ BFD セッションを確立できる機能。デフォルトの動作では、すべての OSPF ネイバーに対して BFD セッションを確立します。この設定は、Junos OS リリース 9.5 以降で使用できます。minimum-interval
- 障害検出の最小送信および受信間隔。この設定では、ローカル ルーティング デバイスが hello パケットを送信する最小間隔と、ルーティング デバイスが BFD セッションを確立したネイバーからの応答を受信する最小間隔の両方を設定します。どちらの間隔もミリ秒単位です。また、transmit-interval minimum-interval
ステートメントとminimum-receive-interval
ステートメントを使用して、最小の送信間隔と受信間隔を別々に指定することもできます。手記:BFDは、システムリソースを消費する集中的なプロトコルです。BFD の最小間隔を、ルーティングエンジンベースのセッションでは 100 ミリ秒未満、分散 BFD セッションでは 10 ミリ秒未満に指定すると、望ましくない BFD フラッピングが発生する可能性があります。
ネットワーク環境によっては、次の条件が適用される場合があります。
BFDセッションの数が多い大規模なネットワーク展開の場合は、最小間隔を500ミリ秒以上に指定します。不安定性の問題を回避するために、1000ミリ秒の間隔をお勧めします。
ノンストップアクティブルーティング(NSR)が設定されている場合、ルーティングエンジンスイッチオーバーイベント中にBFDセッションの稼働状態を維持するには、ルーティングエンジンベースのセッションの最小間隔を2500ミリ秒に指定します。NSR を使用しない場合、ルーティングエンジンベースのセッションの最小間隔は 100 ミリ秒になります。
-
NSR が設定された分散 BFD セッションの場合、推奨される最小間隔は変更されず、ネットワークの導入状況にのみ依存します。
-
Junos OS 21.2R1以降は、MPC 1〜9を実行するMXシリーズルーター上で、IPv6リンクローカルアドレスを使用した分散OSPFv3およびISIS BFDセッションをサポートします(MPC 10またはMPC 11ではサポートされていません)。IPv6リンクローカルBFDのデフォルトはインラインモードです。
-
BFD は Junos 21.2 より前のバージョンでは配信されません(OSPFv3 の場合、BFD はルーティング エンジンに基づいているため)。
シングル QFX5100 スイッチでは、QFX-EM-4Q 拡張モジュールを追加する場合、1000 ミリ秒を超える最小間隔を指定します。
minimum-receive-interval
- 障害検出の最小受信間隔。この設定では、ルーティング デバイスが BFD セッションを確立したネイバーから hello パケットを受信するまでの最短受信間隔をミリ秒単位で設定します。また、minimum-interval
ステートメントを使用して最小受信間隔を指定することもできます。multiplier
- hello パケットの乗数。この設定は、ネイバーが受信しない hello パケットの数を設定します。これにより、発信元インターフェイスがダウンを宣言されます。デフォルトでは、3 つの hello パケットが欠落すると、発信元インターフェイスがダウンを宣言します。no-adaptation
- BFD アダプテーションを無効にします。この設定は、BFD セッションが変化するネットワーク状況に適応することを無効にします。この設定は、Junos OS リリース 9.0 以降で使用できます。手記:ネットワークにBFDアダプテーションを導入しないことが望ましくない限り、BFDアダプテーションを無効にしないことを推奨します。
transmit-interval minimum-interval
- 障害検出の最小送信間隔。この設定では、ローカルルーティングデバイスがBFDセッションを確立したネイバーにhelloパケットを送信する最小の送信間隔をミリ秒単位で設定します。また、minimum-interval
ステートメントを使用して最小送信間隔を指定することもできます。transmit-interval threshold
- BFD セッションの送信間隔を適応させるためのしきい値。送信間隔がしきい値よりも大きい値に適応すると、単一のトラップと単一のシステムログメッセージが送信されます。しきい値は、最小送信間隔より大きくなければなりません。最小送信間隔未満のしきい値で設定をコミットしようとすると、ルーティング デバイスはエラーを表示し、設定を受け入れません。version
- BFD バージョン。この設定では、検出に使用する BFD バージョンを構成します。BFDバージョン1を明示的に設定することも、ルーティング・デバイスがBFDバージョンを自動的に検出することもできます。デフォルトでは、ルーティング デバイスは BFD バージョン(0 または 1)を自動的に自動的に検出します。
トラブルシューティングのためにBFD動作をトレースすることもできます。
例:OSPF の BFD の設定
この例では、OSPFの双方向フォワーディング検出(BFD)プロトコルを設定する方法を示しています。
必要条件
始める前に:
デバイスインターフェイスを設定します。 ルーティングデバイス用 Junos OS ネットワークインターフェイスライブラリを参照してください。
OSPFネットワーク内のデバイスのルーター識別子を設定します。 例:OSPFルーター識別子の設定を参照してください。
OSPFの指定ルーター選出を制御します。 例:OSPF指定ルーター選出の制御を参照してください。
単一エリアOSPFネットワークを設定します。 例:単一エリアOSPFネットワークの設定を参照してください。
マルチエリアOSPFネットワークを設定します。 「 例:マルチエリア OSPF ネットワークの設定」を参照してください。
マルチエリアOSPFネットワークを設定します。 「 例:マルチエリア OSPF ネットワークの設定」を参照してください。
概要
ルート コンバージェンスを高めるために OSPF Hello 間隔と dead 間隔の設定を調整する代わりに、BFD を設定する方法があります。BFDプロトコルは、ネットワーク内の障害を検出するための単純なhelloメカニズムです。BFD障害検出タイマーは、OSPF障害検出メカニズムよりもタイマー制限が短いため、より高速に検出できます。
BFDは、イーサネットインターフェイスなど、障害を迅速に検出できないインターフェイスで役立ちます。SONET インターフェイスなどの他のインターフェイスには、すでに障害検出機能が組み込まれています。これらのインターフェイスで BFD を設定する必要はありません。
隣接する OSPF インターフェイスのペアで BFD を設定します。OSPF Hello 間隔や dead 間隔の設定とは異なり、OSPF エリアのすべてのインターフェイスで BFD を有効にする必要はありません。
この例では、エリア0.0.0.0のネイバーOSPFインターフェイスfe-0/1/0にbfd-liveness-detection
ステートメントを含めて障害検出を有効にし、BFDパケット交換間隔を300ミリ秒に設定し、発信元インターフェイスがダウンしたと宣言される原因となる欠落したhelloパケットの数として4を設定し、以下の設定を含めることで、完全なネイバー隣接関係を持つOSPFネイバーに対してのみBFDセッションを設定します。
フルネイバーのみ—Junos OS リリース 9.5 以降では、フルネイバー隣接関係を持つ OSPF ネイバーに対してのみ BFD セッションを確立するように BFD プロトコルを設定します。デフォルトの動作では、すべての OSPF ネイバーに対して BFD セッションを確立します。
minimum-interval—ローカルルーティングデバイスがhelloパケットを送信する最小間隔(ミリ秒単位)と、ルーティングデバイスがBFDセッションを確立したネイバーからの応答を受信すると予想される最小間隔を設定します。1〜255,000ミリ秒の範囲で数値を設定できます。 また、送信間隔、最小間隔 、最小間隔、および
minimum-receive-interval
ステートメントを使用して、最小送信間隔と受信間隔を別々に指定することもできます。手記:BFDは、システムリソースを消費する集中的なプロトコルです。BFD の最小間隔を、ルーティングエンジンベースのセッションでは 100 ミリ秒未満、分散 BFD セッションでは 10 ミリ秒未満に指定すると、望ましくない BFD フラッピングが発生する可能性があります。
ネットワーク環境によっては、次の追加の推奨事項が適用される場合があります。
BFDセッションの数が多い大規模なネットワーク展開の場合は、最小間隔を500ミリ秒以上に指定します。不安定性の問題を回避するために、1000ミリ秒の間隔をお勧めします。
手記:bfdd プロセスの場合、設定された検出時間間隔は 300 ミリ秒未満です。システムで ppmd などの優先度の高いプロセスが実行されている場合、CPU は bfdd プロセスではなく ppmd プロセスに時間を費やす可能性があります。
支社SRXシリーズのファイアウォールでは、BFDパケットの最小キープアライブ時間間隔として1000ミリ秒を推奨します。
多数のBFDセッションを伴う大規模なネットワーク導入の場合は、ジュニパーネットワークスのカスタマーサポートにお問い合わせください。
ノンストップアクティブルーティング(NSR)が設定されている場合、ルーティングエンジンスイッチオーバーイベント中にBFDセッションの稼働状態を維持するには、ルーティングエンジンベースのセッションの最小間隔を2500ミリ秒に指定します。NSR が設定された分散 BFD セッションの場合、推奨される最小間隔は変更されず、ネットワークの導入状況にのみ依存します。
乗数—発信元インターフェイスがダウンを宣言する原因となる、ネイバーが受信しなかったhelloパケットの数を設定します。デフォルトでは、3 つの hello パケットが欠落すると、発信元インターフェイスがダウンを宣言します。1〜255の範囲で値を設定できます。
位相幾何学
構成
プロシージャ
CLIクイック構成
OSPFのBFDプロトコルを素早く設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストし、設定モードから commit
を入力してください。
[edit] set protocols ospf area 0.0.0.0 interface fe-0/0/1 bfd-liveness-detection minimum-interval 300 set protocols ospf area 0.0.0.0 interface fe-0/0/1 bfd-liveness-detection multiplier 4 set protocols ospf area 0.0.0.0 interface fe-0/0/1 bfd-liveness-detection full-neighbors-only
手順
隣接する 1 つのインターフェイスで OSPF の BFD プロトコルを設定するには、次の手順に従います。
OSPFエリアを作成します。
手記:OSPFv3を指定するには、
[edit protocols]
階層レベルにospf3
ステートメントを含めます。[edit] user@host# edit protocols ospf area 0.0.0.0
インターフェイスを指定します。
[edit protocols ospf area 0.0.0.0] user@host# set interface fe-0/0/1
最小の送信間隔と受信間隔を指定します。
[edit protocols ospf area 0.0.0.0 ] user@host# set interface fe-0/0/1 bfd-liveness-detection minimum-interval 300
発信元インターフェイスがダウンを宣言する原因となる、欠落したhelloパケットの数を設定します。
[edit protocols ospf area 0.0.0.0 ] user@host# set interface fe-0/0/1 bfd-liveness-detection multiplier 4
BFD セッションは、完全ネイバー隣接関係を持つ OSPF ネイバーに対してのみ設定します。
[edit protocols ospf area 0.0.0.0 ] user@host# set interface fe-0/0/1 bfd-liveness-detection full-neighbors-only
デバイスの設定が完了したら、設定をコミットします。
[edit protocols ospf area 0.0.0.0 ] user@host# commit
手記:この設定全体を他の隣接インターフェイスでも繰り返します。
業績
show protocols ospf
コマンドを入力して、設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show protocols ospf area 0.0.0.0 { interface fe-0/0/1.0 { bfd-liveness-detection { minimum-interval 300; multiplier 4; full-neighbors-only; } } }
OSPFv3の設定を確認するために、 show protocols ospf3
コマンドを入力します。
検証
設定が正常に機能していることを確認します。
BFD セッションの検証
目的
OSPF インターフェイスにアクティブな BFD セッションがあり、セッション コンポーネントが正しく設定されていることを確認します。
アクション
動作モードから、 show bfd session detail
コマンドを入力します。
意味
出力には、BFDセッションに関する情報が表示されます。
アドレスフィールドには、ネイバーのIPアドレスが表示されます。
インターフェイスフィールドには、BFD用に設定したインターフェイスが表示されます。
[状態(State)] フィールドにはネイバーの状態が表示され、設定した完全なネイバー隣接関係を反映するために [フル(Full)] と表示されます。
送信間隔フィールドには、BFDパケットを送信するために設定した時間間隔が表示されます。
乗数フィールドには、設定した乗数が表示されます。
OSPF の BFD 認証について
双方向フォワーディング検出(BFD)により、隣接システム間の通信障害を迅速に検出できます。デフォルトでは、BFD セッションの認証は無効になっています。ただし、ネットワーク層プロトコル上で BFD を実行すると、サービス攻撃のリスクが大きくなる可能性があります。複数のホップまたは安全でないトンネルを介してBFDを実行している場合は、認証を使用することを強くお勧めします。Junos OS リリース 9.6 以降、Junos OS は OSPFv2 上で実行される BFD セッションの認証をサポートしています。BFD 認証は、MPLS OAM セッションではサポートされていません。BFD 認証は、カナダおよび米国バージョンの Junos OS イメージでのみサポートされており、エクスポート バージョンでは使用できません。
BFD セッションを認証するには、認証アルゴリズムとキーチェーンを指定し、そのキーチェーン名を使用して、その設定情報をセキュリティ認証キーチェーンに関連付けます。
次のセクションでは、サポートされている認証アルゴリズム、セキュリティ キーチェーン、および設定可能な認証レベルについて説明します。
BFD認証アルゴリズム
Junos OSは、BFD認証について以下のアルゴリズムをサポートしています。
シンプルパスワード - プレーンテキストのパスワード。1〜16バイトのプレーンテキストがBFDセッションの認証に使用されます。1 つ以上のパスワードを設定できます。この方法は最も安全性が低く、BFD セッションがパケット傍受の影響を受けない場合にのみ使用してください。
keyed-md5—送信および受信間隔が 100 ミリ秒を超えるセッション用のキー付きメッセージ ダイジェスト 5 ハッシュ アルゴリズム。BFD セッションを認証するために、keyed MD5 は 1 つ以上の秘密鍵(アルゴリズムによって生成)と定期的に更新されるシーケンス番号を使用します。この方法では、キーの 1 つが一致し、シーケンス番号が最後に受信したシーケンス番号以上の場合、セッションの受信側でパケットが受け入れられます。この方法は単純なパスワードよりも安全ですが、リプレイ攻撃に対して脆弱です。シーケンス番号の更新頻度を上げると、このリスクを軽減できます。
meticulous-keyed-md5:綿密なキー付きメッセージダイジェスト5ハッシュアルゴリズム。この方法は、キー付き MD5 と同じように機能しますが、シーケンス番号はパケットごとに更新されます。この方法は、キーによる MD5 や単純なパスワードよりも安全ですが、セッションの認証にさらに時間がかかる場合があります。
keyed-sha-1—送信および受信間隔が 100 ミリ秒を超えるセッション用のキー付きセキュア ハッシュ アルゴリズム I。BFD セッションを認証するために、keyed SHA は 1 つ以上の秘密鍵(アルゴリズムによって生成)と定期的に更新されるシーケンス番号を使用します。キーはパケット内では伝送されません。この方法では、キーの1つが一致し、シーケンス番号が最後に受信したシーケンス番号より大きい場合、セッションの受信側でパケットが受け入れられます。
meticulous-keyed-sha-1—綿密なキー付きセキュアハッシュアルゴリズムI.このメソッドはキー付き SHA と同じように機能しますが、シーケンス番号はパケットごとに更新されます。この方法では、キー付き SHA や単純なパスワードよりも安全ですが、セッションの認証にさらに時間がかかる場合があります。
ノンストップ アクティブ ルーティング (NSR)は、meticulous-keyed-md5 認証アルゴリズムおよび meticulous-keyed-sha-1 認証アルゴリズムではサポートされていません。これらのアルゴリズムを使用する BFD セッションは、スイッチオーバー後にダウンする可能性があります。
QFX5000 シリーズ スイッチと EX4600 スイッチは、1 秒未満の最小間隔値をサポートしていません。
セキュリティ認証キーチェーン
セキュリティ認証キーチェーンは、認証キーの更新に使用される認証属性を定義します。セキュリティ認証キーチェーンが設定され、キーチェーン名を介してプロトコルに関連付けられている場合、ルーティングおよびシグナリングプロトコルを中断することなく認証キーの更新を行うことができます。
認証キーチェーンには、1 つ以上のキーチェーンが含まれています。各キーチェーンには、1 つ以上のキーが含まれています。各キーには、シークレット データと、キーが有効になる時刻が保持されます。アルゴリズムとキーチェーンは、BFD セッションの両端で設定する必要があり、一致する必要があります。設定の不一致があると、BFDセッションは作成されません。
BFD ではセッションごとに複数のクライアントを許可し、各クライアントに独自のキーチェーンとアルゴリズムを定義できます。混乱を避けるため、セキュリティ認証キーチェーンを 1 つだけ指定することをお勧めします。
ストリクト認証とルーズ認証
デフォルトでは、厳密な認証が有効になっており、各 BFD セッションの両端で認証がチェックされます。オプションで、非認証セッションから認証済みセッションへのスムーズな移行のために、 ルーズチェックを設定できます。ルーズ チェックが設定されている場合、パケットはセッションの両端で認証がチェックされずに受け入れられます。この機能は、移行期間のみを対象としています。
OSPF の BFD 認証の設定
Junos OS Release 9.6 以降、OSPFv2 上で実行される BFD セッションの認証を設定できます。ルーティングインスタンスもサポートされています。
以下のセクションでは、OSPF での BFD 認証の設定と表示の手順について説明します。
BFD 認証パラメータの設定
BFD セッションでの認証を構成するために必要な手順は 3 つだけです。
OSPFv2 プロトコルの BFD 認証アルゴリズムを指定します。
認証キーチェーンを OSPFv2 プロトコルに関連付けます。
関連するセキュリティ認証キーチェーンを設定します。
BFD 認証を設定するには:
BFD 認証は、カナダおよび米国バージョンの Junos OS イメージでのみサポートされており、エクスポート バージョンでは使用できません。
BFD セッションの認証情報の表示
既存の BFD 認証設定は、 show bfd session detail
および show bfd session extensive
コマンドを使用して表示できます。
以下の例は、 if2-ospf BGP グループに設定された BFD 認証を示しています。これは、キーによる SHA-1 認証アルゴリズムと bfd-ospf のキーチェーン名を指定します。認証キーチェーンは、2 つのキーで構成されます。キー 1 には、シークレット データ "$ABC 123$ABC123" と、2009 年 6 月 1 日午前 9 時 46 分 02 秒の開始時刻が含まれています。キー 2 には、シークレット データ "$ABC 123$ABC123" と、2009 年 6 月 1 日午後 3 時 29 分 20 秒の開始時刻が含まれています。
[edit protocols ospf] area 0.0.0.1 { interface if2-ospf { bfd-liveness-detection { authentication { algorithm keyed-sha-1; key-chain bfd-ospf; } } } } [edit security] authentication key-chains { key-chain bfd-ospf { key 1 { secret “$ABC123$ABC123”; ## SECRET-DATA start-time “2009-6-1.09:46:02 -0700”; } key 2 { secret “$ABC123$ABC123”; start-time “2009-6-1.15:29:20 -0700”; ## SECRET-DATA } } }
これらの更新を設定にコミットすると、次のような出力が表示されます。 show bfd session detail
コマンドの出力 では、認証 が表示され、BFD 認証が設定されていることを示します。
BFDセッションの詳細を表示
user@host# show bfd session detail Detect Transmit Address State Interface Time Interval Multiplier 10.9.1.33 Up so-7/1/0.0 0.600 0.200 3 Client OSPF, TX interval 0.200, RX interval 0.200, multiplier 3, Authenticate Session up time 3d 00:34 Local diagnostic None, remote diagnostic None Remote state Up, version 1 Replicated 1 sessions, 1 clients Cumulative transmit rate 10.0 pps, cumulative receive rate 10.0 pps
設定の詳細については、 show bfd session extensive
コマンドを使用してください。このコマンドの出力には、キーチェーン名、セッション内の各クライアントの認証アルゴリズムとモード、BFD 認証の全体的な設定ステータス、キーチェーン名、認証アルゴリズムとモードが表示されます。
BFDセッション拡張を表示
user@host# show bfd session extensive Detect Transmit Address State Interface Time Interval Multiplier 10.9.1.33 Up so-7/1/0.0 0.600 0.200 3 Client OSPF, TX interval 0.200, RX interval 0.200, multiplier 3, Authenticate keychain bfd-ospf, algo keyed-md5, mode loose Session up time 3d 00:34 Local diagnostic None, remote diagnostic None Remote state Up, version 1 Replicated Min async interval 0.200, min slow interval 1.000 Adaptive async tx interval 0.200, rx interval 0.200 Local min tx interval 0.200, min rx interval 0.200, multiplier 3 Remote min tx interval 0.100, min rx interval 0.100, multiplier 3 Threshold transmission interval 0.000, Threshold for detection time 0.000 Local discriminator 11, remote discriminator 80 Echo mode disabled/inactive Authentication enabled/active, keychain bfd-ospf, algo keyed-sha-1, mode strict 1 sessions, 1 clients Cumulative transmit rate 10.0 pps, cumulative receive rate 10.0 pps