0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BFD(Bidirectional Forwarding Detection)の基本

0
Posted at

BFD(Bidirectional Forwarding Detection)を確認

下記参考URLによると、BFDはネットワーク障害を検出するために利用されるらしい。通常は、OSPFやBGPのような動的ルーティングプロトコルと組み合わせて使用されるが、本稿では、BFD単独動作を確認する。

参考URL

手法

GNS3 IOS(失敗)

GNS3上で2台のルーターを接続して、BFDパケットを確認するのが最も早いと考えたが、小生環境では、BFD関連コマンドは存在するものの、BFDパケットが送出されず、断念。

1台のLinuxでNetwork Namespace利用(失敗)

オープンソースのルーティングプロトコルであり、BFDをサポートしている、FRRouting(以降「frr」と略すことあり)を利用して、1台のLinuxにて、2つのNetwork Namespaceに擬似ルーターを設けて実現しようとした。が、2つのNetwork Namespaceにて、環境ファイルが適切に制御できず、こちらも断念。

2台のLinuxにてFRRouting利用(当然成功)

結局のところ、2台のLinuxにて、擬似ルーターを設けて、FRRoutingを利用するという無難な方法を選択することとした。ここでは、WiresharkでのパケットCaptureがしやすいGNS3上の2つのVM(debian)を利用。

ネットワーク環境

環境は下記、擬似ルーターR1とR2(いずれもdebian)を接続する単純なもの。

topology.png

なお、debianは、GNS3 Applianceにあるものを利用。初期状態では、FRRoutingはインストールされていないため、上図にあるNAT1(インターネットへの接続あり)を一時的にR1やR2に接続して、「sudo apt install frr」などを実施してインストール。

設定

R1およびR2におけるfrrの設定である。

BFD

まずは、R1の設定。

root@debian:/etc/frr# cat /etc/frr/frr.conf
frr version 8.4.4
frr defaults traditional
hostname debian
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
bfd
 peer 172.16.1.2
  receive-interval 3000
  echo transmit-interval 3000
  echo receive-interval 3000
 exit
 !
exit
!

R2の設定。

root@debian:/etc/frr# cat frr.conf
frr version 8.4.4
frr defaults traditional
hostname debian
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
bfd
 peer 172.16.1.1
  receive-interval 3000
  echo transmit-interval 3000
  echo receive-interval 3000
 exit
 !
exit
!

frrデーモン

R1とR2とに共通。

root@debian:/etc/frr# cat /etc/frr/daemons
# This file tells the frr package which daemons to start.

(略)

bfdd=yes
bfdd_options="   -A 127.0.0.1"

(略)

検証

Wiresharkで取得したデータやコマンドによるステータスを紹介。

正常系

定期的にBFDパケット(UDP、ポート3784)が送出されている。

正常のコピー.png

パケット詳細を確認すると、「Session State: Up」が見える。

正常詳細のコピー.png

BFDステータスをコマンドで確認。

$ sudo vtysh

Hello, this is FRRouting (version 8.4.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

...

debian# show bfd peers
BFD Peers:
	peer 172.16.1.2 vrf default
		ID: 2299493673
		Remote ID: 2299493673
		Active mode
		Status: up
		Uptime: 13 minute(s), 49 second(s)
		Diagnostics: ok
		Remote diagnostics: ok
		Peer Type: configured
		RTT min/avg/max: 0/0/0 usec
		Local timers:
			Detect-multiplier: 3
			Receive interval: 3000ms
			Transmission interval: 300ms
			Echo receive interval: 3000ms
			Echo transmission interval: disabled
		Remote timers:
			Detect-multiplier: 3
			Receive interval: 3000ms
			Transmission interval: 300ms
			Echo receive interval: 3000ms

debian# show bfd peers counters 
BFD Peers:
	peer 172.16.1.2 vrf default
		Control packet input: 344 packets
		Control packet output: 344 packets
		Echo packet input: 0 packets
		Echo packet output: 0 packets
		Session up events: 1
		Session down events: 0
		Zebra notifications: 1            

「Status: up」が見える。

異常系

片方のネットワークI/Fをダウンさせる。

$ sudo ip link set dev ens4 down

パケット詳細を確認すると、「Session State: Down」が見える。

異常.png

異常詳細のコピー.png

こちらでも、BFDステータスをコマンドで確認する。

debian# show bfd peers
BFD Peers:
	peer 172.16.1.2 vrf default
		ID: 2299493673
		Remote ID: 0
		Active mode
		Status: down
		Downtime: 14 second(s)
		Diagnostics: control detection time expired
		Remote diagnostics: ok
		Peer Type: configured
		RTT min/avg/max: 0/0/0 usec
		Local timers:
			Detect-multiplier: 3
			Receive interval: 3000ms
			Transmission interval: 300ms
			Echo receive interval: 3000ms
			Echo transmission interval: disabled
		Remote timers:
			Detect-multiplier: 3
			Receive interval: 3000ms
			Transmission interval: 300ms
			Echo receive interval: 3000ms

debian# 
debian# show bfd peers counters 
BFD Peers:
	peer 172.16.1.2 vrf default
		Control packet input: 420 packets
		Control packet output: 445 packets
		Echo packet input: 0 packets
		Echo packet output: 0 packets
		Session up events: 1
		Session down events: 1
		Zebra notifications: 2

「Status: down」、「Session down events: 1」が確認できる。

EOF

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?