Bidirectional Forwarding Detection(BFD)

BFDとは

BFDは、さまざまなメディアタイプやカプセル化、トポロジ、ルーティングプロトコルに対応し、高速に転送パスの障害を検出するためのプロトコルです。

ネットワーク管理の効率化: BFDを使用することで、ネットワークのプロファイリングと計画が容易になり、コンバージェンス時間を一貫して予測できるようになります。

一貫性のある障害検出: BFDは、ネットワーク管理者に対し、複数のルーティングプロトコルの可変なhelloメカニズムではなく、統一されたレートで障害を検出する手段を提供します。

BFDの動作について

BFDの動作について以下にその主要なポイントを示します。

  • 検出の対象: インターフェイス、データリンク、転送プレーンを含む転送パスの障害を短期間で検出します。
  • 動作モード: シスコでは、BFD非同期モードをサポートしています。このモードでは、2つのルータ間でBFDネイバーセッションを維持するために、BFD制御パケットを定期的に送信します。
  • 設定の必要性: BFDセッションを作成するには、両方のルータでBFDを有効にする必要があります。これにより、BFDタイマーがネゴシエートされ、指定された間隔でBFD制御パケットが交換されます。
  • ルーティングプロトコルのサポート: 適切なルーティングプロトコルに対して、インターフェイスレベルおよびルータレベルでBFDを有効にすると、BFDセッションが自動的に開始されます。

BFDのインターフェイスでの設定

基本構文

インターフェイスで BFD を有効にします。
Router(config)#interface type number
Router(config-if)#bfd interval tx-interval min_rx rx-interval multiplier interval-multiplier

項目意味
tx-interval送信間隔(ミリ秒)
rx-interval受信間隔(ミリ秒)
interval-multiplierBFDセッションがダウンと見なされる前に受信を期待するBFDパケットの数。

設定例

50ミリ秒ごとにBFDパケットを送信し、受信インターバルも50ミリ秒、3回の受信失敗でダウンとみなす設定例です。

BFDの各プロトコルに対する設定

BFDはBGP,EIGRP,OSPF,HSRPで個別に設定することが出来ます。

基本構文(BGP)

BGPに対して、フェールオーバーに対する BFD サポートをイネーブルにします。
Router(config)#router bgp as-tag
Router(config-router)#neighbor ip-address fall-over bfd

設定例(BGP)

ルータは192.168.12.2のBGPネイバーとのセッションに対してBFDを使用して障害検出を行います。BFDセッションがダウンした場合、BGPはすぐにネイバーシップをダウンさせ、迅速なコンバージェンスを可能にします。

基本構文(EIGRP)

EIGRPに対して、インターフェイスを指定してBFDを有効にします。
Router(config)#router eigrp as-number
Router(config-router)#[bfd all-interfaces | bfd interface type number]

項目意味
bfd all-interfacesすべてのインターフェイスで、BFD を有効にします。
bfd interface type number1つ以上のインターフェイスに対して、BFDを有効にします。

設定例(EIGRP)

EIGRPが有効なすべてのインターフェースでBFDを有効にします。

基本構文(OSPF)

すべてのインターフェイスで、BFD を有効にする場合

OSPF ルーティング プロセスに関連付けられたすべてのインターフェイスで、BFD を有効にします。

Router(config)#router ospf process-id
Router(config-router)#bfd all-interfaces

1つ以上のインターフェイスに対して、BFDを有効にする場合

OSPF ルーティング プロセスに関連付けられた 1 つ以上のインターフェイスに対して、インターフェイスごとに BFDを有効にします。
Router(config)#interface type number
Router(config-if)#ip ospf bfd

設定例(OSPF)

OSPFが有効なすべてのインターフェースでBFDを有効にします。

基本構文(HSRP)

すべてのインターフェイスで、BFD を有効にする場合

すべてのインターフェイスで BFD に対する HSRP を有効にします。
Router(config)#standby bfd all-interfaces

1つ以上のインターフェイスに対して、BFDを有効にする場合

インターフェイスで BFD に対する HSRPを有効にします。
Router(config)#interface type number
Router(config-if)#standby bfd

設定例(HSRP)

GigabitEthernet0/2でHSRPをBFDでサポートする設定です。

BFD設定のオプション

BFD 低速タイマーの設定

BFD の slow timer を設定します。
Router(config)#bfd slow-timer milliseconds

BFD エコー モードのディセーブル化

ルータからエコー パケットが送信されず、ルータはネイバー ルータが受信した BFD エコー パケットを転送しません。
Router(config)# [no] bfd echo

エコーパケットとはBFDセッションで使用される制御パケットの一種で、デバイス(ルータなど)が自分自身に対して送信し、対向のデバイスによってそのパケットがリフレクト(反射)されて返ってくることで、転送パスが正常であるかを確認します。

BFD テンプレートの作成と設定

Router(config)#bfd-template single-hop template-name

Router(config-bfd)#interval min-tx tx-interval min-rx rx-interval multiplier interval-multiplier

項目意味
tx-interval送信間隔(ミリ秒)
rx-interval受信間隔(ミリ秒)
interval-multiplierBFDセッションがダウンと見なされる前に受信を期待するBFDパケットの数。

インターフェイス コンフィギュレーション モードを開始します。
Router(config)#interface type number

インターフェイスで BFD テンプレートを有効にします。
Router(config-if)#bfd template template-name

BFDテンプレートの設定例

TEST という名前のBFDテンプレートを作成して、Gi0/2に適応させます。この作成したテンプレートはほかのIFでも使用することが出来ます。

参考文献

双方向フォワーディング検出