BFD を使用した OSPF 障害検出の設定
OSPF の BFD について
Bidirectional Forwarding Detection(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 コマンドはヒットレスであり、コマンドがルーティングデバイスのトラフィックフローに影響を及ぼすことはありません。
Junos OSまたはJunos OS Evolvedを実行しているEX4600およびQFX5000シリーズスイッチは、集中型および分散型モードで1秒未満の最小間隔値をサポートしていません。
BFD は、Junos OS リリース 9.3 以降の OSPFv3 でサポートされています。
支社/拠点向けSRXシリーズファイアウォールの場合、BFDパケットの最小キープアライブ時間間隔として1000ミリ秒を推奨します。
vSRX 3.0では、BFDパケットの最小キープアライブ時間間隔として300ミリ秒を推奨します。
以下の 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のデフォルトはインラインモードです。
-
Junos 21.2より前のBFDは配信されていません(OSPFv3の場合、BFDはルーティングエンジンをベースにしているため)。
シングル QFX5100 スイッチで QFX-EM-4Q 拡張モジュールを追加するときに、最小間隔を 1000 ミリ秒より大きく指定します。
minimum-receive-interval- 障害検出の最小受信間隔。この設定では、ルーティング デバイスが BFD セッションを確立したネイバーから Hello パケットを受信することを期待する最小受信間隔をミリ秒単位で構成します。また、minimum-intervalステートメントを使用して最小受信間隔を指定することもできます。multiplier—Helloパケットの乗数。この設定では、ネイバーが受信しない hello パケットの数を設定します。これにより、発信元インターフェイスがダウンと宣言されます。デフォルトでは、hello パケットが 3 つ失敗すると、発信元インターフェイスがダウンと宣言されます。no-adaptation- BFD 適応を無効にします。この設定により、BFD セッションが変化するネットワーク状況に適応できなくなります。この設定は、Junos OS リリース 9.0 以降で使用できます。手記:ネットワークにBFD適応がないことが望ましくない限り、BFD適応を無効にしないことを推奨します。
transmit-interval minimum-interval- 障害検出の最小送信間隔。この設定では、ローカル ルーティング デバイスが BFD セッションを確立したネイバーに hello パケットを送信する最小送信間隔をミリ秒単位で構成します。また、minimum-intervalステートメントを使用して、最小送信間隔を指定することもできます。transmit-interval threshold—BFD セッションの送信間隔を適応させるしきい値。送信間隔がしきい値よりも大きい値に適応すると、1つのトラップと1つのシステムログメッセージが送信されます。しきい値は、最小送信間隔より大きくなければなりません。最小送信間隔より小さいしきい値で設定をコミットしようとすると、ルーティングデバイスはエラーを表示し、設定を受け入れません。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 セッションを構成します。
full-neighbors-only—Junos OS リリース 9.5 以降では、完全なネイバー隣接関係を持つ OSPF ネイバーに対してのみ BFD セッションを確立するように BFD プロトコルを設定します。デフォルトの動作では、すべての OSPF ネイバーに対して BFD セッションが確立されます。
minimum-interval—ローカル ルーティング デバイスが Hello パケットを送信する最小間隔と、ルーティング デバイスが BFD セッションを確立したネイバーからの応答を受信することを期待する最小間隔をミリ秒単位で設定します。1〜255,000ミリ秒の範囲の数値を設定できます。また、 transmit-interval、minimum-interval 、および
minimum-receive-intervalステートメントを使用して、最小の送信間隔と受信間隔を個別に指定することもできます。手記:BFDは、システムリソースを消費する集中的なプロトコルです。BFDの最小間隔を、ルーティングエンジンベースのセッションでは100ミリ秒未満、分散BFDセッションでは10ミリ秒未満に指定すると、望ましくないBFDフラッピングが発生する可能性があります。
ネットワーク環境によっては、次の追加の推奨事項が適用される場合があります。
多数のBFDセッションを伴う大規模なネットワーク展開では、500ミリ秒以上の最小間隔を指定します。不安定な問題を回避するために、1000 ミリ秒の間隔をお勧めします。
手記:-
bfdd プロセスの場合、設定された検出時間間隔は 300 ミリ秒未満です。システム上で ppmd などの優先順位の高いプロセスが動作している場合、CPU は bfdd プロセスではなく ppmd プロセスに時間を費やすことがあります。
-
支社/拠点向けSRXシリーズファイアウォールの場合、BFDパケットの最小キープアライブ時間間隔として1000ミリ秒を推奨します。
-
vSRX 3.0では、BFDパケットの最小キープアライブ時間間隔として300ミリ秒を推奨します。
-
多数のBFDセッションを伴う非常に大規模なネットワーク導入の場合、詳細についてジュニパーネットワークスのカスタマーサポートにお問い合わせください。
ノンストップアクティブルーティング(NSR)が設定されている場合、ルーティングエンジンスイッチオーバーイベント中にBFDセッションが稼働したままになるようにするには、ルーティングエンジンベースのセッションに2500ミリ秒の最小間隔を指定します。NSR が設定された分散 BFD セッションの場合、最小間隔の推奨値は変更されず、ネットワーク展開にのみ依存します。
multiplier—発信元インターフェイスがダウンと宣言される原因となる、ネイバーによって受信されない hello パケットの数を設定します。デフォルトでは、hello パケットが 3 つ失敗すると、発信元インターフェイスがダウンと宣言されます。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] と表示されます。
[送信間隔(Transmit Interval)] フィールドには、BFD パケットを送信するために設定した時間間隔が表示されます。
[Multiplier] フィールドには、設定した乗数が表示されます。
OSPF の BFD 認証について
Bidirectional Forwarding Detection(BFD)により、隣接するシステム間の通信障害を迅速に検出できます。デフォルトでは、BFD セッションの認証は無効になっています。ただし、ネットワーク層プロトコル上で BFD を実行すると、サービス攻撃のリスクが大きくなる可能性があります。複数のホップまたは安全でないトンネルを介してBFDを実行する場合は、認証を使用することを強くお勧めします。Junos OS リリース 9.6 以降、Junos OS は OSPFv2 上で実行される BFD セッションの認証をサポートしています。BFD 認証は、MPLS OAM セッションではサポートされていません。BFD認証は、Junos OSイメージのカナダおよび米国バージョンでのみサポートされており、エクスポートバージョンでは使用できません。
BFD セッションを認証するには、認証アルゴリズムとキーチェーンを指定し、キーチェーン名を使用してその設定情報をセキュリティ認証キーチェーンに関連付けます。
次のセクションでは、サポートされている認証アルゴリズム、セキュリティ キーチェーン、および構成可能な認証レベルについて説明します。
BFD認証アルゴリズム
Junos OSは、BFD認証のために以下のアルゴリズムをサポートしています。
simple-password:プレーンテキスト パスワード。BFDセッションの認証には、1〜16バイトのプレーンテキストが使用されます。1 つ以上のパスワードを設定できます。この方法は最も安全性が低いため、BFD セッションがパケット傍受の対象とならない場合にのみ使用してください。
keyed-md5—送受信間隔が 100 ミリ秒を超えるセッション向けのキー付きメッセージ ダイジェスト 5 ハッシュ アルゴリズム。BFD セッションを認証するために、鍵付き MD5 は 1 つ以上の秘密鍵(アルゴリズムによって生成)と定期的に更新されるシーケンス番号を使用します。この方法では、キーの 1 つが一致し、シーケンス番号が最後に受信したシーケンス番号以上である場合、セッションの受信側でパケットが受け入れられます。この方法は単純なパスワードよりも安全ですが、リプレイ攻撃に対して脆弱です。シーケンス番号の更新頻度を上げると、このリスクを軽減できます。
meticulous-keyed-md5—細心の注意を払った鍵付きメッセージダイジェスト 5 ハッシュアルゴリズム。この方法は、キー付き MD5 と同じように機能しますが、シーケンス番号はパケットごとに更新されます。この方法は、鍵付き MD5 や単純なパスワードよりも安全ですが、セッションの認証にさらに時間がかかる場合があります。
keyed-sha-1—送受信間隔が 100 ミリ秒を超えるセッション用の鍵付きセキュア ハッシュ アルゴリズム I。BFD セッションを認証するために、鍵付き SHA は 1 つ以上の秘密鍵(アルゴリズムによって生成)と定期的に更新されるシーケンス番号を使用します。鍵はパケット内では伝送されません。この方法では、キーの 1 つが一致し、シーケンス番号が最後に受信したシーケンス番号よりも大きい場合、セッションの受信側でパケットが受け入れられます。
細心の注意を払った鍵付きsha-1—細心の注意を払った鍵付きセキュアハッシュアルゴリズムI。この方法は、鍵付き SHA と同じように機能しますが、シーケンス番号はパケットごとに更新されます。この方法は、鍵付き SHA や単純なパスワードよりも安全ですが、セッションの認証にさらに時間がかかる場合があります。
ノンストップ アクティブ ルーティング (NSR)は、細心の注意を払った鍵付き md5 および 細心の注意を払った鍵付き SHA-1 認証アルゴリズムではサポートされていません。これらのアルゴリズムを使用するBFDセッションは、スイッチオーバー後にダウンする可能性があります。
QFX5000 シリーズ スイッチと EX4600 スイッチでは、1 秒未満の最小間隔値はサポートされていません。
セキュリティ認証キーチェーン
セキュリティ認証キーチェーンは、認証キーの更新に使用される認証属性を定義します。セキュリティ認証キーチェーンが設定され、キーチェーン名によってプロトコルに関連付けられている場合、ルーティングプロトコルとシグナリングプロトコルを中断することなく、認証キーの更新を行うことができます。
認証キーチェーンには、1 つ以上のキーチェーンが含まれています。各キーチェーンには 1 つ以上のキーが含まれています。各キーには、シークレット データと、キーが有効になる時刻が保持されます。アルゴリズムとキーチェーンは、BFD セッションの両端で設定する必要があり、それらは一致する必要があります。設定が一致しないと、BFD セッションを作成できません。
BFD では、セッションごとに複数のクライアントが許可され、各クライアントには独自のキーチェーンとアルゴリズムを指定できます。混乱を避けるため、セキュリティ認証キーチェーンは 1 つだけ指定することをお勧めします。
ストリクト認証とルーズ認証
デフォルトでは、厳密な認証が有効になっており、各BFDセッションの両端で認証がチェックされます。オプションとして、非認証セッションから認証済みセッションへの移行をスムーズにするために、 ルーズチェックを設定できます。ルーズチェックが設定されている場合、パケットはセッションの両端で認証チェックされずに受け入れられます。この機能は、移行期間のみを対象としています。
OSPFのBFD認証の設定
Junos OS リリース 9.6 以降、OSPFv2 上で実行される BFD セッションの認証を設定できます。ルーティングインスタンスもサポートされています。
次のセクションでは、OSPF での BFD 認証の設定と表示の手順について説明します。
BFD 認証パラメータの設定
BFDセッションで認証を設定するために必要なステップは3つだけです。
OSPFv2プロトコルのBFD認証アルゴリズムを指定します。
認証キーチェーンを OSPFv2 プロトコルに関連付けます。
関連するセキュリティ認証キーチェーンを設定します。
BFD認証を設定するには:
BFD認証は、Junos OSイメージのカナダおよび米国バージョンでのみサポートされており、エクスポートバージョンでは使用できません。
BFD セッションの認証情報の表示
show bfd session detailおよびshow bfd session extensiveコマンドを使用して、既存のBFD認証設定を表示できます。
以下の例は、 if2-ospf BGPグループに設定されたBFD認証を示しています。鍵付き SHA-1 認証アルゴリズムと鍵チェーン名 bfd-ospf を指定します。認証キーチェーンは 2 つのキーで設定されます。キー 1 には、シークレット データ "$ABC 123$ABC123" と、開始時刻が 2009 年 6 月 1 日午前 9 時 46 分 2 秒 (PST) に含まれています。キー 2 には、シークレット データ "$ABC 123$ABC123" と、開始時刻が 2009 年 6 月 1 日午後 3 時 29 分 20 秒 PST に含まれています。
[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認証が設定されていることを示す ためにAuthenticate が表示されます。
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