「OSPFやBGPのタイマーを短縮しても思ったほど速くならない」 「フェイルオーバーを1秒未満にしたい」 「回線断を即検知したい」
このような要件が出てきたときに候補に挙がるのが BFD(Bidirectional Forwarding Detection) です。
しかし、BFDは入れれば速くなる万能機能ではありません。 設計を誤ると、
- 誤検知によるフラップ地獄
- CPU高騰
- 経路暴走
- FWクラスタ崩壊
といった重大事故を引き起こします。
本記事では、
- BFDを導入すべき具体的ケース
- 導入すべきでないケース
- 現場で実際に多い失敗パターン
- 安全な設計・チューニング手順
まで網羅します。 この記事だけで、判断と設計ができる内容にしています。
■ そもそもBFDとは何か?
BFDは、ルーティングプロトコルとは独立した「高速経路監視プロトコル」です。
通常のOSPF/BGPは秒単位〜十秒単位の検知ですが、 BFDはミリ秒単位でリンク障害を検知できます。
例)
送信間隔:300ms
検知倍率:3
→ 約900msで障害検知
■ BFDを導入すべきケース
① フェイルオーバーを1秒未満にしたい場合
FHRPだけでは片系断しか検知できません。 回線や上位装置断を即検知するにはBFDが有効です。
特に:
- データセンター間接続
- WAN冗長回線
- 金融系・リアルタイム系
では導入価値が高いです。
② BGPを高速化したい場合
BGPはデフォルトで最大180秒かかります。 タイマー短縮だけでは限界があります。
BFDを併用すれば、
- BGPタイマーは安全値のまま
- 障害検知だけ高速化
が可能です。
③ L2延伸構成でブラックホールを防ぎたい場合
物理的にはリンクがUpだが、 実際は対向が応答しないケース。
このような「論理断」に強いのがBFDです。
④ FWを跨ぐ経路で即時収束が必要な場合
FWクラスタでセッション同期していても、 上位ルータが障害を遅延検知すれば意味がありません。
BFDで即座に経路引き下げすることで、 ブラックホール時間を最小化できます。
■ 導入すべきでないケース
① CPUに余裕がない装置
BFDは制御プレーン処理です。 セッション数が増えるとCPU負荷が急上昇します。
特に:
- 小型ルータ
- 仮想ルータ
- FW上でのBFD
は要注意です。
② 不安定な回線
回線品質が悪いと、
- 誤検知
- 頻繁なルートフラップ
が発生します。
まずは回線品質改善が優先です。
③ ECMPが絡む複雑構成
経路が揺れる環境では、 BFD検知が経路変動を増幅させる場合があります。
■ 現場で多い失敗パターン
失敗①:タイマーを極端に短くする
interval 50ms
multiplier 3
→ 150ms検知
一見速いですが、 CPU負荷と誤検知リスクが爆増します。
現実的目安:
- 300ms〜500ms
- 検知倍率3〜5
失敗②:全セッションにBFD適用
BGPピア数が多い環境で全適用すると、 CPUが飽和します。
原則:
- 重要経路のみ適用
- コア間のみ適用
失敗③:FWでBFDを使って非対称化
BFDで経路が即切替 → セッションが別経路へ流れる → FWでセッション不一致 → 通信断
必ず:
- セッション同期確認
- 経路対称性確認
失敗④:BFDとOSPFタイマーを両方極小化
二重に検知が走るとフラップの原因になります。
基本原則:
- 検知はBFDに任せる
- OSPF/BGPは標準値寄りでOK
■ 安全な導入ステップ
Step1:対象経路を限定
- コア間
- WAN冗長回線
- DC間接続
Step2:保守的なタイマーで開始
interval 300ms
multiplier 3
Step3:CPU監視
- show process cpu
- 制御プレーン利用率
Step4:フェイルオーバーテスト実施
- 物理断テスト
- 対向装置停止テスト
- アプリ影響確認
■ BFD導入による期待効果
| 導入前 | 導入後 |
|---|---|
| OSPF Dead 40秒 | 約1秒未満 |
| BGP Hold 180秒 | 約1秒未満 |
| ブラックホール時間発生 | ほぼゼロ化 |
■ まとめ
BFDは「高速化の切り札」ですが、
- 万能ではない
- CPU負荷を伴う
- 設計とセットで考えるべき
という前提を忘れてはいけません。
導入すべきケース:
- 1秒未満収束が必要
- BGP高速化
- DC間やWAN冗長
注意すべきポイント:
- タイマー極小化しすぎない
- 全適用しない
- FWとの相性確認
BFDは「速さのための道具」です。 安定性を犠牲にしない設計こそが、真の高速フェイルオーバーです。



