OpenBFDD是一款開源的BFD(雙向轉發檢測)實現,基本上實現了BFD協議裏面的功能,可以很方便的拿來參考或者測試。
首先介紹一下BFD,
BFD是BidirectionalForwardingDetection的縮寫,它是一個用於檢測兩個轉發點之間故障的網絡協議,在RFC5880有詳細的描述。BFD是一種雙向轉發檢測機制,可以提供毫秒級的檢測,可以實現鏈路的快速檢測,BFD通過與上層路由協議聯動,可以實現路由的快速收斂,確保業務的永續性。這裏可以下載RFC5800官方文檔。
協議的具體理論部分就不介紹了。網上這方面資料比較多,OpenBFDD是RFC5800的一個實現,雖然有些功能並沒有完全實現,但是如果是拿來測試或者參考的話,還是很有價值。下面介紹在ubuntu12.04版本安裝OpenBFDD運行的方法和一些使用方面的基本命令。
下載源代碼
# git clone [email protected]:FuYuanDe/OpenBFDD.git
安裝命令
# cd OpenBFDD
# aclocal
# autoconf
# autoheader
# automake --add-missing
# ./configure
# make
# sudo make install
如果執行./configure 中出現如下錯誤:
checking whether the C++ compiler works... no
configure: error: in `/home/sk/samba/github/OpenBFDD':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
可以執行下面這條命令來解決:
sudo apt-get install gcc
sudo apt-get install g++
安裝完成後,就可以配置BFD會話運行了
OpenBFDD由兩部分組成,bfdd-beacon, bfdd-control,就像字面意思一樣,一個用來控制BFD進程,一個用來控制BFD會話,兩者之間通過套接字連接通信。
基本命令如下:
//先啓動bfdd-beacon服務,地址用於和bfdd-control通信
bfdd-beacon --control=192.168.199.213:6666
//設置發送時長爲1s
bfdd-control --control=192.168.199.213:6666 session new set mintx 1 s
//設置接收時長爲1s
bfdd-control --control=192.168.199.213:6666 session new set minrx 1 s
//設置檢測次數
bfdd-control --control=192.168.199.213:6666 session new set multi 3
//創建會話
bfdd-control --control=192.168.199.213:6666 connect local 192.168.199.213 remote 192.168.199.123
上面命令執行完成後,就會發起BFD初始會話:
更多控制命令可以參照下面這個鏈接。如有問題,歡迎討論。
http://dyninc.github.io/OpenBFDD/bfdd-control.8.html