双方向フォワーディング検出
このマニュアルでは、双方向フォワーディング検出(BFD)プロトコルを有効にする方法について説明します。BFD はあらゆるメディア タイプ、カプセル化、トポロジ、およびルーティング プロトコルの高速転送パス障害検出時間を提供するように設計された検出プロトコルです。
BFD は高速転送パス障害検出に加えて、ネットワーク管理者向けの整合性のある障害検出方法を提供します。ネットワーク管理者は BFD を使用して、ルーティングプロコル毎に異なる hello メカニズムの多様な検出時間でなく、一定の検出時間で転送パスの障害を検出できるため、ネットワーク プロファイリングおよびプランニングが容易になります。また、再コンバージェンス時間の整合性が保たれ、予測可能になります。
双方向フォワーディング検出の前提条件
-
Cisco Express Forwarding および IP ルーティングが、関連するすべてのスイッチで有効になっている必要があります。
-
BFD をスイッチに展開する前に、BFD でサポートされている IP ルーティングプロトコルのいずれかを設定する必要があります。使用しているルーティング プロトコルの高速コンバージェンスを実装する必要があります。高速コンバージェンスの設定については、お使いのバージョンの Cisco IOS ソフトウェアの IP ルーティングのマニュアルを参照してください。Cisco IOS ソフトウェアの BFD ルーティングプロトコルのサポートの詳細については、「双方向フォワーディング検出の制約事項」の項を参照してください。
双方向フォワーディング検出の制約事項
-
プラットフォームおよびインターフェイスによっては、BFD サポートを利用できないものがあります。特定のプラットフォームまたはインターフェイスで BFD がサポートされているかどうか確認し、プラットフォームとハードウェアの正確な制約事項を入手するには、お使いのソフトウェアバージョンの Cisco IOS ソフトウェアのリリースノートを参照してください。
-
BFD HA はサポートされていません。
-
BFD エコーセッションスケール:100ms 間隔の最大 28 BFD セッション、デバイスごとに許可されるエコーモード BFD セッション。
-
IOS XE 17.5.1では、BFD の OSPF および OSPFv3 サポートのみがサポートされています。
-
ポートタイプ別のサポートされる時間間隔:
ポート タイプ
最小間隔
ルーテッドポート
100 ミリ秒
SVI
100 ミリ秒
L3 ポート
250ms
双方向フォワーディング検出について
BFD の動作
BFD は、2 つの隣接デバイス間の転送パスで、オーバーヘッドの少ない短期間の障害検出方法を提供します。これらのデバイスには、インターフェイス、データリンク、および転送プレーンが含まれます。
BFD はインターフェイス レベルおよびルーティング プロトコル レベルで有効にする検出プロトコルです。シスコでは、BFD 非同期モードをサポートしています。BFD 非同期モードは、デバイス間の BFD ネイバー セッションをアクティブにして維持するための、2 台のシステム間の BFD 制御パケットの送信に依存します。したがって、BFD セッションを作成するには、両方のシステム(または BFD ピア)で BFD を設定する必要があります。BFD が適切なルーティングプロトコルに対してインターフェイスおよびデバイスレベルで有効になると、BFD セッションが作成されます。BFD タイマーがネゴシエーションされ、BFD ピアはネゴシエーションされた間隔で BFD 制御パケットの相互送信を開始します。
ネイバー関係
BFD は、高速 BFD ピア障害検出時間を個別に提供します。これは、すべてのメディアタイプ、カプセル化、トポロジ、ルーティングプロトコル(BGP、EIGRP、IS-IS、OSPF など)から独立しています。BFD は、ローカルルータのルーティングプロトコルに高速障害検出通知を送信して、ルーティングテーブル再計算プロセスを開始します。これにより BFD は、ネットワーク コンバージェンス時間全体を大幅に短縮できます。下の図に、OSPF と BFD を実行する 2 台のルータがある単純なネットワークを示します。OSPF がネイバー(1)を検出すると、ローカル BFD プロセスに要求を送信します。OSPF ネイバールータとの BFD ネイバーセッションが開始されます(2)。OSPF ネイバー ルータでの BFD ネイバー セッションが確立されます(3)。
以下の図に、ネットワークで障害が発生した場合を示します(1)。OSPF ネイバー ルータでの BFD ネイバー セッションが停止されます(2)。BFD はローカル OSPF プロセスに BFD ネイバーに接続できなくなったことを通知します(3)。ローカル OSPF プロセスは OSPF ネイバー関係を解除します(4)。代替パスが使用可能な場合、ルータはただちにそのパスでコンバージェンスを開始します。
ルーティングプロトコルは、取得したネイバーそれぞれについて、BFD に登録する必要があります。ネイバーが登録されると、セッションがまだ存在していない場合、BFD によって、ネイバーとのセッションが開始されます。
次のとき、OSPF では、BFD を使用して登録が行われます。
-
ネイバーの有限状態マシン(FSM)は、Full ステートに移行します。
-
OSPF BFD と BFD の両方が有効にされます。
ブロードキャスト インターフェイスでは、OSPF によって、指定ルータ(DR)とバックアップ指定ルータ(BDR)とともにのみ、BFD セッションが確立されます。セッションは、DROTHER ステートのすべての 2 台のルータ間では確立されません
BFD の障害検出
BFD セッションが確立され、タイマー否定が完了すると、BFD ピアは BFD 制御パケットを送信します。パケットは、より高速なレートである点を除き、IGP hello プロトコルと同じように動作して活性を検出します。次の点に注意する必要があります。
-
BFD はフォワーディング パスの障害検出プロトコルです。BFD は障害を検出しますが、ルーティングプロトコルが障害が発生したピアをバイパスするように機能する必要があります。
-
Cisco IOS XE Denali 16.3.1 以降、シスコ デバイスは BFD バージョン 0 をサポートしています。実装では、デバイスが複数のクライアントプロトコルに 1 つの BFD セッションを使用します。たとえば、同じピアへの同じリンクを介してネットワークで OSPF および EIGRP を実行している場合、1 つの BFD セッションだけが確立されます。BFD は両方のルーティングプロトコルとセッション情報を共有します。
BFD バージョンの相互運用性
デフォルトでは、すべての BFD セッションがバージョン 1 で実行され、バージョン 0 と相互運用可能です。システムで自動的に FD バージョン検出が実行される場合、ネイバー間の BFD セッションがネイバー間の最も一般的な BFD バージョンで実行されます。たとえば、BFD ネイバーが BFD バージョン 0 を実行し、他の BFD ネイバーがバージョン 1 を実行している場合、セッションで BFD バージョン 0 が実行されます。show bfd neighbors [details ] コマンドの出力で、BFD ネイバーが実行している BFD バージョンを確認できます。
BFD バージョンの検出の例については、エコーモードがデフォルトで有効になった EIGRP ネットワークでの BFD の設定の例を参照してください。
非ブロードキャスト メディア インターフェイスに対する BFD サポート
BFD 機能は、ルーティングされた SVI と L3 ポートチャネルでサポートされます。bfd interval コマンドは、BFD モニタリングを開始するインターフェイスで設定する必要があります。
双方向フォワーディング検出の設定方法
インターフェイスでの BFD セッション パラメータの設定
インターフェイスで BFD を設定するには、BFD セッションの基本パラメータを設定する必要があります。BFD ネイバーに対して BFD セッションを実行するインターフェイスごとに、この手順を繰り返します。
次の手順は、物理インターフェイスの BFD 設定手順を示しています。SVI とイーサチャネルにそれぞれ対応する BFD タイマー値を使用してください。
手順
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
次のいずれかの手順を実行します。
例:
|
|
ステップ 4 |
bfd interval milliseconds min_rx milliseconds multiplier interval-multiplier 例:
|
インターフェイスで BFD を有効にします。 BFD interval 設定は、それを設定したサブインターフェイスが削除されたときに削除されます。 BFD interval 設定は次のような場合には削除されません。
|
ステップ 5 |
end 例:
|
インターフェイス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ダイナミック ルーティング プロトコルに対する BFD サポートの設定
OSPF に対する BFD サポートの設定
ここでは、OSPF が BFD の登録プロトコルとなり、BFD から転送パスの検出障害メッセージを受信するように、OSPF に対する BFD サポートを設定する手順について説明します。すべてのインターフェイスでグローバルに OSPF に対する BFD を設定するか、または 1 つ以上のインターフェイスで選択的に設定することができます。
OSPF に対する BFD サポートを有効にするには、2 つの方法があります。
-
ルータ コンフィギュレーション モードで bfd all-interfaces コマンドを使用して、OSPF がルーティングしているすべてのインターフェイスに対して BFD を有効にできます。インターフェイス コンフィギュレーション モードで ip ospf bfd [disable ] コマンドを使用して、個々のインターフェイスで BFD サポートを無効にできます。
-
インターフェイス コンフィギュレーション モードで ip ospf bfd コマンドを使用すると、OSPF がルーティングしているインターフェイスのサブセットに対して BFD を有効にできます。
OSPF に対する BFD サポートのタスクについては、次の項を参照してください。
すべてのインターフェイスの OSPF に対する BFD サポートの設定
すべての OSPF インターフェイスに BFD を設定するには、この項の手順に従います。
すべての OSPF インターフェイスに対して BFD を設定するのではなく、特定の 1 つ以上のインターフェイスに対して BFD サポートを設定する場合は、「1 つ以上のインターフェイスの OSPF に対する BFD サポートの設定」の項を参照してください。
始める前に
-
OSPF は、関連するすべてのルータで実行する必要があります。
-
BFD セッションを BFD ネイバーに対して実行するインターフェイスで、BFD セッションの基本パラメータを設定する必要があります。詳細については、「インターフェイスでの BFD セッションパラメータの設定」の項を参照してください。
手順
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
||
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 |
router ospf process-id 例:
|
OSPF プロセスを指定し、ルータ コンフィギュレーション モードを開始します。 |
||
ステップ 4 |
bfd all-interfaces 例:
|
OSPF ルーティング プロセスに関連付けられたすべてのインターフェイスで、BFD をグローバルに有効にします。 |
||
ステップ 5 |
exit 例:
|
(任意)デバイスでグローバル コンフィギュレーション モードに戻ります。ステップ 7 を実行して 1 つ以上のインターフェイスに対して BFD を無効にする場合にだけ、このコマンドを入力します。 |
||
ステップ 6 |
interface type number 例:
|
(任意)インターフェイス コンフィギュレーション モードを開始します。ステップ 7 を実行して 1 つ以上のインターフェイスに対して BFD を無効にする場合にだけ、このコマンドを入力します。 |
||
ステップ 7 |
ip ospf bfd [disable ] 例:
|
(任意)OSPF ルーティング プロセスに関連付けられた 1 つ以上のインターフェイスに対して、インターフェイスごとに BFD を無効にします。
|
||
ステップ 8 |
end 例:
|
インターフェイス コンフィギュレーション モードを終了して、特権 EXEC モードに戻ります。 |
||
ステップ 9 |
show bfd neighbors [details ] 例:
|
(任意)BFD ネイバーがアクティブで、BFD が登録したルーティング プロトコルが表示されるかどうかの検証に使用できる情報を表示します。 |
||
ステップ 10 |
show ip ospf 例:
|
(任意)OSPF に対して BFD が有効になっているかどうかを検証するために使用できる情報を表示します。 |
1 つ以上のインターフェイスの BFD over IPv4 に対する OSPF サポートの設定
1 つ以上の OSPF インターフェイスで BFD を設定するには、この項の手順に従います。
手順の概要
- enable
- configure terminal
- interface type number
- ip ospf bfd [disable ]
- end
- show bfd neighbors [details ]
- show ip ospf
手順の詳細
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
||
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 |
interface type number 例:
|
インターフェイス コンフィギュレーション モードを開始します。 |
||
ステップ 4 |
ip ospf bfd [disable ] 例:
|
OSPF ルーティング プロセスに関連付けられた 1 つ以上のインターフェイスに対して、インターフェイスごとに BFD を有効または無効にします。
|
||
ステップ 5 |
end 例:
|
インターフェイス コンフィギュレーション モードを終了して、デバイスが特権 EXEC モードに戻ります。 |
||
ステップ 6 |
show bfd neighbors [details ] 例:
|
(任意)BFD ネイバーがアクティブで、BFD が登録したルーティング プロトコルが表示されるかどうかの検証に使用できる情報を表示します。
|
||
ステップ 7 |
show ip ospf 例:
|
(任意)OSPF に対して BFD サポートが有効になっているかどうかを検証するために使用できる情報を表示します。 |
スタティック ルーティングに対する BFD サポートの設定
スタティック ルーティングのための BFD サポートを設定するには、このタスクを実行します。各 BFD ネイバーに対してこの手順を繰り返します。詳細については、「例:スタティック ルーティングに対する BFD サポートの設定」の項を参照してください。
手順
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
interface type number 例:
|
インターフェイスを設定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 4 |
次のいずれかの手順を実行します。
例:
|
|
ステップ 5 |
bfd interval milliseconds mix_rx milliseconds multiplier interval-multiplier 例:
|
インターフェイスで BFD を有効にします。 bfd interval 設定は、それを設定したサブインターフェイスが削除されたときに削除されます。 bfd interval 設定は次のような場合には削除されません。
|
ステップ 6 |
exit 例:
|
インターフェイス コンフィギュレーション モードを終了し、グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
ip route static bfd interface-type interface-number ip-address [group group-name [passive]] 例:
|
スタティック ルートの BFD ネイバーを指定します。
|
ステップ 8 |
ip route [vrf vrf-name] prefix mask {ip-address | interface-type interface-number [ip-address]} [dhcp] [distance] [name next-hop-name] [permanent | track number] [tag tag] 例:
|
スタティック ルートの BFD ネイバーを指定します。 |
ステップ 9 |
exit 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ステップ 10 |
show ip static route 例:
|
(任意)スタティック ルート データベース情報を表示します。 |
ステップ 11 |
show ip static route bfd 例:
|
(任意)設定された BFD グループおよび nongroup エントリからスタティック BFD の設定に関する情報を表示します。 |
ステップ 12 |
exit 例:
|
特権 EXEC モードを終了し、ユーザ EXEC モードに戻ります。 |
BFD エコー モードの設定
デフォルトでは BFD エコー モードが有効になっていますが、方向ごとに個別に実行できるように、無効にすることもできます。
BFD エコー モードは非同期 BFD で動作します。エコー パケットはフォワーディング エンジンによって送信され、検出を実行するために、同じパスで転送されます。反対側の BFD セッションはエコー パケットの実際のフォワーディングに関与しません。エコー機能およびフォワーディング エンジンが検出プロセスを処理するため、2 つの BFD ネイバー間で送信される BFD 制御パケットの数が減少します。また、フォワーディング エンジンが、リモート システムを介さずにリモート(ネイバー)システムの転送パスをテストするため、パケット間の遅延のばらつきが向上する可能性があり、それによって BFD バージョン 0 を BFD セッションの BFD 制御パケットで使用する場合に、障害検出時間を短縮できます。
エコー モードを両端で実行している(両方の BFD ネイバーがエコー モードを実行している)場合は、非対称性がないと表現されます。
前提条件
-
BFD は、参加しているすべてのデバイスで実行されている必要があります。
-
CPU 使用率の上昇を避けるために、BFD エコーモードを使用する前に、no ip redirects コマンドを入力して、Internet Control Message Protocol(ICMP)リダイレクトメッセージの送信を無効にする必要があります。
-
BFD セッションを BFD ネイバーに対して実行するインターフェイスで、BFD セッションの基本パラメータを設定する必要があります。詳細については、「インターフェイスでの BFD セッション パラメータの設定」の項を参照してください。
非対称性のない BFD エコー モードの無効化
この手順では、非対称性のない BFD エコーモードを無効化にする方法を示します。デバイスからはエコーパケットが送信されず、デバイスはネイバーデバイスから受信する BFD エコーパケットを転送しません。
各 BFD デバイスに対してこの手順を繰り返します。
手順
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
no bfd echo 例:
|
BFD エコー モードを無効にします。
|
ステップ 4 |
end 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
BFD テンプレートの作成と設定
シングルホップ テンプレートは一連の BFD 間隔値を指定するために設定できます。BFD テンプレートの一部として指定される BFD 間隔値は、1 つのインターフェイスに限定されるものではありません。
(注) |
bfd-template を設定すると、エコー モードが無効になります。 |
シングルホップ テンプレートの設定
BFD シングルホップ テンプレートを作成し、BFD インターバル タイマーを設定するには、次の手順を実行します。
手順
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
bfd-template single-hop template-name 例:
|
シングルホップ BFD テンプレートを作成し、BFD コンフィギュレーション モードを開始します。 |
ステップ 4 |
interval min-tx milliseconds min-rx milliseconds multiplier multiplier-value 例:
|
BFD パケット間での送受信間隔を設定し、ピアが使用不能であると BFD が宣言する前に損失される連続的な BFD 制御パケット数を指定します。 |
ステップ 5 |
end 例:
|
BFD コンフィギュレーション モードを終了し、デバイスを特権 EXEC モードに戻します。 |
BFD のモニタリングとトラブルシューティング
ここでは、維持とトラブルシューティングのために BFD 情報を取得する方法について説明します。必要に応じてこれらのタスクのコマンドを、正しい順序で入力します。
ここでは、次の Cisco プラットフォームに対する BFD のモニタリングとトラブルシューティングについて説明します。
BFD のモニタリングとトラブルシューティング
BFD のモニタリングまたはトラブルシューティングを実行するには、この項の 1 つ以上の手順に従います。
手順の概要
- enable
- show bfd neighbors [details ]
- debug bfd [packet | event ]
手順の詳細
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
show bfd neighbors [details ] 例:
|
(任意)BFD 隣接関係データベースを表示します。
|
ステップ 3 |
debug bfd [packet | event ] 例:
|
(任意)BFD パケットのデバッグ情報を表示します。 |
双方向フォワーディング検出の設定例
ここでは、双方向フォワーディング検出の設定例を示します。