双方向転送検出(BFD)の動作原理とネットワーク統合設定

導入:高速ネットワークにおける障害検知の課題

現代のネットワーク環境では、アプリケーションがギガビット毎秒を超えるデータを送受信することが一般的です。物理層やデータリンク層で直接検知できない故障が発生した場合、従来のルーティングプロトコル(OSPF や RIP など)に依存した Hello パケットによる監視では、検知遅延が数秒単位になることがあります。このような遅延は、大容量データ転送中のパケット損失やサービス中断を招くリスクがあります。

静的なルートにはそもそも自動フェイルオーバー機能が存在しません。そこで、メディアやプロトコルに依存しない汎用的なメカニズムとして、BFD(Bidirectional Forwarding Detection)が採用されます。これは隣接する転送エンジン間のチャネルに対し、軽量かつ高速な障害検出を提供し、ミリ秒単位でコンバージェンスを実現することを目的としています。

BFD の基本原理

パケット構造と識別子

BFD セッションは二つのシステム間で制御メッセージの交換によって確立されます。BFD コントロールパケットは必須フィールドとオプションの認証フィールドで構成されています。重要なフィールドとしては以下のものがあります。

  • Detect Multi: タイムアウト計算に使用される倍率値。
  • My Discriminator / Your Discriminator: それぞれローカルおよびリモートのセッション識別子。一意な非ゼロ値を持ち、同じシステムの複数のセッションを区別します。
  • Intervals: 最小送信間隔、最小受信間隔、およびエコー受信間隔を設定するパラメータ。

セッション確立と状態遷移

BFD セッションの設定には静的設定と動的ネゴシエーションの2通りがあります。どちらの場合も、Local Discriminator と Remote Discriminator の整合性が取れている必要があります。

セッションの状態遷移は「Down」、「Init」、「Up」、「AdminDown」の 4 つの状態で管理され、対端からのメッセージを受信した際にステートマシンに従って更新されます。これらは三段握手プロセスにより、両端の状態変化を確実に認識する仕組みとなっています。

検出モードと時間設定

BFD は主に「非同期モード」と「問い合わせモード」をサポートしています。検出時間は、実際の送信間隔(TX)、受信間隔(RX)、そして検出倍率(Detect Multiplier)によって決定されます。

計算式(非同期モードの場合):
検出タイムアウト = 実質的な受信間隔 × 相手側の検出倍率

実際に送信・受信する間隔は、ローカル側とリモート側の設定値のうち大きな方(Max)を採用してネゴシエーションされます。

シングルアームエコー機能

片方のデバイスが BFD をサポートしていない場合でも、「シングルアームエコー」機能を利用することで高速検知が可能です。BFD サポート端末からエコーリクエストを送信し、もう一方のデバイスがそれをそのまま環回(Loopback)させることで、転送経路の死活監視を実現します。

主要な連携シナリオ

スタティックルートを介したトラッキング

静的ルート自体には障害検知能力がないため、BFD と組み合わせることで冗長パス構成を構築できます。メインのリンクが切断された際、BFD が即座に感知し、バックアップパスを持つ静的ルートに優先権を切り替えることで業務停止を防ぎます。

OSPF との連動

OSPF 単体での隣接関係監視は秒オーダーですが、BFD とバインドさせることで、リンクダウンを検知してからルーティングテーブルを更新するまでの時間を大幅に短縮できます。OSPF が Neighber 関係を確立した後、その情報を BFD に渡してセッションを起動させ、リンクの可用性を常時監視します。

実装設定例(Huawei VRP)

以下では、異なる IP アドレス範囲と識別子値を使用して設定例を示します。

BFD セッションの基本作成コマンド

IPv4 および IPv6 に対応するセッションを作成する際の基本的な構文です。

# 標準的な BFD セッション作成(ピアアドレス指定)
[Huawei] bfd [session-name] bind peer-ip [ip-address] interface [interface-type interface-number]
# 自動ネゴシエーションを使用する場合
[Huawei] bfd [session-name] bind peer-ip [ip-address] interface [interface-type interface-number] auto
# シングルアームエコーモード
[Huawei] bfd [session-name] bind peer-ip [ip-address] interface [interface-type interface-number] one-arm-echo

セッション内では、ローカルディスクリミネーターと遠端ディスクリミネーターを設定する必要があります。これらの値は通信先の設定と一致させる必要があります。

スタティックルートの BFD 連携設定

ネットワーク構成:R1 から R4 へのアクセスにおいて、デフォルトパスを R2、予備パスを R3 とします。R1 と R2 間に BFD を設定し、R1 の静的ルートとバインドします。

R1 と R2 の設定:

[R1] bfd
[R1] bfd link-r2 bind peer-ip 192.168.10.2 interface GigabitEthernet 1/0/1
[R1-bfd-session-link-r2] discriminator local 1001
[R1-bfd-session-link-r2] discriminator remote 2001
[R1-bfd-session-link-r2] commit

[R2] bfd
[R2] bfd link-r1 bind peer-ip 192.168.10.1 interface GigabitEthernet 1/0/1
[R2-bfd-session-link-r1] discriminator local 2001
[R2-bfd-session-link-r1] discriminator remote 1001
[R2-bfd-session-link-r1] commit

R1 上でトラッキングを行う静的ルートを設定:

[R1] ip route-static 8.8.8.8 32 192.168.10.2 track bfd-session link-r2
# プリファレンスを高くして予備パスとする
[R1] ip route-static 8.8.8.8 32 192.168.10.3 preference 120

OSPF との BFD 統合設定

すべての OSPF インターフェイスで BFD を有効化し、タイマーを 50ms に設定します。

[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.10.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] bfd all-interfaces enable
[R1-ospf-1] bfd all-interfaces min-tx-interval 50 min-rx-interval 50 detect-multiplier 3

R2 および R3 についても同様の手順で設定を行います。

設定確認

セッション状態の確認は以下のコマンドで行います。

[R1] display bfd session all verbose
Session Mince : 256 (One Hop) State : Up Name : dyn_1024
Local Discriminator : 1024 Remote Discriminator : 2048
Session Detect Mode : Asynchronous Mode Without Echo Function
 Min Tx Interval (ms) : 50 Min Rx Interval (ms) : 50
 Actual Tx Interval (ms): 50 Actual Rx Interval (ms): 50
 Local Detect Multi : 3 Detect Interval (ms) : 150
 Echo Passive : Disable

OSPF プロセスとの連動状況確認:

[R1] display ospf 1 bfd session all
OSPF Process 1 with Router ID 1.1.1.1
 Area 0.0.0.0 interface 192.168.10.1(GigabitEthernet1/0/1)'s BFD Sessions
NeighborId:192.168.10.2
AreaId:0.0.0.0
Interface:GigabitEthernet1/0/1
BFDState:up rx :50 tx :50
Multiplier:3
Diagnostic Info:No diagnostic information

タグ: BFD OSPF Static Routing Huawei Network Reliability

7月1日 17:15 投稿