BFD(双方向フォワーディング)
以前、ネットワーク設計でこの機能を使いそうになるものの結局は使わずじまいになってしまい、最近まで忘れていたので整理。
BGPとか動いている現場だと、割と使われているっぽいんで備忘も兼ねて・・・
BFDは簡単に言うと、「障害検知に特化したプロトコル」
例えば、以下の構成でルータがOSPFを喋っていると想定。
↑の場合は、OSPFのHello、Deadをいじらなければリンクダウンの場所によっては、経路切り替わりまでに時間が掛かる。
試しに、ルータのOSPFのhelloを5,Deadを20にてした状態でL2SW間を抜線すると、両方のルータ共にしばらくはリンクダウンを検知できないはず。
Router#sho clock
*11:33:46.955 UTC Thu Apr 3 2014
↑が抜線直後で約16秒後にネイバーダウンを検知
*Apr 3 11:34:02.567: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on FastEthernet0 from FULL to DOWN, Neighbor Down: Dead timer expired
そこで今度はHello&Deadインターバルは変えず、両方のルータに以下を投入
Router(config-if)# bfd interval 100 min_rx 500 multiplier 3
Router(config-router)#bfd all-interfaces
投入後のBFD状態は・・・
Router#sho bfd nei
NeighAddr LD/RD RH/RS State Int
192.168.1.1 1/1 Up Up Fa0
→相手を認識してる
この状態で抜線する
Router#sho clo
*12:07:31.683 UTC Thu Apr 3 2014
↑が抜線直後で、今度は数秒以内にネイバーダウン
*Apr 3 12:07:33.155: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on FastEthernet0 from FULL to DOWN, Neighbor Down: BFD node down
BFDの状態は・・・
Router#sho bfd nei
Router#
→表示されない
そんなわけで、BFDを使うとタイマーを変えずに検知が可能。