1.BFD簡介
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)是一個通用的、標准化的、介質無關和協議無關的快速故障檢測機制,用於檢測IP 網絡中鏈路的連通狀況,保證設備之間能夠快速檢測到通信故障,
以便能夠及時采取措施,保證業務持續運行。
BFD 可以為各種上層協議(如路由協議等)快速檢測兩台設備間雙向轉發路徑的故障。上層協議通常采用Hello 報文機制檢測故障,所需時間為秒級,而BFD 可以提供毫秒級檢測。實際應用中,BFD 可以用來進行單跳和多跳檢測:
• 單跳檢測:是指對兩個直連設備進行 IP 連通性檢測,這里所說的“單跳”是IP 的一跳。
• 多跳檢測:BFD 可以檢測兩個設備間任意路徑的鏈路情況,這些路徑可能跨越很多跳。
1)BFD會話的建立與拆除
BFD 本身並沒有發現機制,而是靠被服務的上層協議通知來建立會話,具體過程如下:
①上層協議通過自己的Hello 機制發現鄰居並建立連接;
②上層協議在建立新的鄰居關系后,將鄰居的參數及檢測參數(包括目的地址和源地址等)通告給BFD;
③ BFD 根據收到的參數建立BFD 會話。
當網絡出現故障時:
④ BFD 檢測到鏈路故障后,拆除BFD 會話,通知上層協議鄰居不可達;
⑤上層協議中止鄰居關系;
⑥如果網絡中存在備用路徑,設備將選擇備用路徑進行通信。
2)BFD會話的工作方式和檢測模式
BFD 會話通過下面兩種報文來實現:
• echo 報文:封裝在UDP 報文中傳送,其UDP 目的端口號為3785。
• 控制報文:封裝在UDP 報文中傳送,對於單跳檢測其UDP 目的端口號為3784,對於多跳檢測其UDP 目的端口號為4784。
① echo報文方式
本端發送 echo 報文建立BFD 會話,對鏈路進行檢測。對端不建立BFD 會話,只需把收到的echo報文轉發回本端。
當 BFD 會話工作於echo 報文方式時,僅支持單跳檢測,並且不受檢測模式的控制。
② 控制報文方式
鏈路兩端通過周期性發送控制報文建立 BFD 會話,對鏈路進行檢測。
BFD 會話建立前有兩種模式:主動模式和被動模式。
• 主動模式:在建立會話前不管是否收到對端發來的BFD 控制報文,都會主動發送BFD 控制報文;
• 被動模式:在建立會話前不會主動發送 BFD 控制報文,直到收到對端發送來的控制報文。通信雙方至少要有一方運行在主動模式才能成功建立起 BFD 會話。
BFD 會話建立后有兩種模式:異步模式和查詢模式。
• 異步模式:設備周期性發送BFD 控制報文,如果在檢測時間內沒有收到對端發送的BFD 控制報文,則認為會話down。
• 查詢模式:設備周期性發送 BFD 控制報文,但是對端(缺省為異步模式)會停止周期性發送BFD 控制報文。如果通信雙方都是查詢模式,則雙方都停止周期性發送BFD 控制報文。當需要驗證連接性的時候,
設備會以協商的周期連續發送幾個P 比特位置1 的BFD 控制報文。如果在檢測時間內沒有收到返回的報文,就認為會話down;如果收到對方回應的F 比特位置1的報文,就認為連通,停止發送報文,等待下一次觸發查詢。
另外,也可以鏈路兩端通過發送控制報文建立和保持BFD 會話,任意一端通過發送echo 報文檢測鏈路狀態。
2. BFD支持的應用
靜態路由、RIP、OSPF、IS-IS、BGP、Track、以太網鏈路聚合,上述均可與BFD實行聯動。
注:三層聚合接口/子接口和三層以太網子接口不支持與BFD 功能聯動。
3.配置命令
bfd echo-source-ip x.x.x.x:配置echo報文源IP地址,為了避免對端發送大量的ICMP重定向報文造成網絡擁塞,建議不要將echo報文的源IP地址配置為屬於該設備任何一個接口所在網段。
端口下,bfd min-echo-receive-interval xx:配置接收echo報文的最小時間間隔。缺省情況下,接收echo報文的最小時間間隔為400毫秒。
端口下,bfd detect-multiplier xx:配置單跳BFD檢測時間倍數。缺省情況下,單跳BFD檢測時間倍數為5。
display bfd session:顯示BFD會話信息
reset bfd session statistics:清除BFD會話統計信息