◆ BFD(双方向フォワーディング検出)とは
BFD(Bidirectional Forwarding Detection)は、2台の隣接するルータ間の転送パスの生存状況を調べて
高速に障害を検知してルーティングプロトコルに通知する機能です。BFD機能は、隣接するルータとの間に
L2スイッチなどが存在し、リンクステータスが伝わらない障害が発生した場合に効果的な機能と言えます。
BFDを有効にしたルータは定期的にBFDパケットを送受信し、対向ルータから一定時間内にBFDパケットを
受信できなかった場合、対向ルータとの経路に障害が発生したと判断します。収束の流れは以下の通りです。
Step1 : スイッチ間のリンクで障害が発生( ルータのポートはリンクダウンしない )
Step2 : BFDを有効にしたルータ間でやりとりされるBFDパケットを一定時間内に受信できなくなる。
Step3 : BFDはローカルルータのルーティングプロトコルに高速障害検出の通知を送信する。
Step4 : 高速障害検出通知を受けたルーティングプロトコルはルーティングテーブル再計算プロセスを開始。
◆ BFD - 動作モード
CiscoデバイスではBFDの動作モードで「非同期モード」をサポートしています。このBFD非同期モードでは
2台の隣接するルータ間で一定間隔でBFD制御パケットが送信されて、ルータ間のBFDネイバーセッションが
アクティベートされて維持されます。非同期モードでは、対向ルータからのBFDパケットが規定どおりに受信
できなかった場合には、接続常態に障害が発生したと見なします。
BFDパケットを送受信する両方のルータのインターフェイスとルーティングプロトコルでBFDが有効化すると
BFDセッションを作成して、BFDセッションパラメータをネゴシエートし、BFD制御パケットをネゴシエート
された間隔でBFDネイバーに送信し始めます。BFDセッション(制御)パラメータには次の項目が含まれます。
BFD制御パラメータ |
説明 |
指定 最小転送間隔 |
デバイスがBFDパケットを送信する際の最小の間隔(Helloメッセージの送信間隔) |
必要 最小受信間隔 |
デバイスが許容するBFDパケットの最小受信の間隔 |
障害検出乗数 |
障害検出乗数で指定された回数のBFDパケットを連続で受信しなかった場合に障害発生を検出 |
※ BFDパケットの送信間隔は「自身の最小転送間隔」と「対向の最小受信間隔」と比較して値の大きい方が適用されます。
◆ BFD - Ciscoコンフィグ設定:インターフェースへの設定
BFDネイバーに対してBFDセッションを実行するインターフェースごとに以下の設定をします。
◆ インターフェース上でのBFDセッション パラメータの設定
(config)# interface type number
(config-if)# bfd interval milliseconds min_rx milliseconds multiplier interval-multiplier
BFD制御パラメータ |
説明 |
interval milliseconds |
デバイスがBFDパケットを送信する際の最小の間隔(Helloメッセージの送信間隔) |
min_rx milliseconds |
デバイスが許容するBFDパケットの最小受信の間隔 |
multiplier interval-multiplier |
障害検出乗数で指定された回数のBFDパケットを連続で受信しなかった場合に障害発生を検出 |
◆ BFD - Ciscoコンフィグ設定:ルーティングプロトコルへの設定(例:BGP)
BGPがBFDの登録プロトコルとなり、BFDから転送パスの検出障害メッセージを受信するための設定です。
(config)# router bgp as-number
(config-router)# neighbor ip-address fall-over bfd
◆ 設定例
R1(config) # interface GigabitEthernet0/1
R1(config-if) # ip address 10.1.1.1 255.255.255.0
R1(config-if) # bfd interval 100 min_rx 100 multiplier 5
R1(config) # router bgp 65001
R1(config-router) # neighbor 10.1.1.2 remote-as 65002
R1(config-router) # neighbor 10.1.1.2 fall-over bfd
|
R2(config) # interface GigabitEthernet0/1
R2(config-if) # ip address 10.1.1.2 255.255.255.0
R2(config-if) # bfd interval 100 min_rx 100 multiplier 5
R2(config) # router bgp 65002
R2(config-router) # neighbor 10.1.1.1 remote-as 65001
R2(config-router) # neighbor 10.1.1.1 fall-over bfd
|
※ show bfd neighbors [ details ] で、BFDネイバーがアクティブで、BFDが登録したルーティングプロトコルを確認できます。
|