07-BFD配置
本章節下載: 07-BFD配置 (174.11 KB)
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)是一個通用的、標準化的、介質無關和協議無關的快速故障檢測機製,用於檢測IP網絡中鏈路的連通狀況,保證設備之間能夠快速檢測到通信故障,以便能夠及時采取措施,保證業務持續運行。
BFD可以為各種上層協議(如路由協議)快速檢測兩台設備間雙向轉發路徑的故障。上層協議通常采用Hello報文機製檢測故障,所需時間為秒級,而BFD可以提供毫秒級檢測。
實際應用中,BFD可以用來進行單跳和多跳檢測:
· 單跳檢測:是指對兩個直連設備進行IP連通性檢測,這裏所說的“單跳”是IP的一跳。
· 多跳檢測:BFD可以檢測兩個設備間任意路徑的鏈路情況,這些路徑可能跨越很多跳。
BFD本身並沒有發現機製,而是靠被服務的上層協議通知來建立會話,具體過程如下:
(1) 上層協議通過自己的Hello機製發現鄰居並建立連接;
(2) 上層協議在建立新的鄰居關係後,將鄰居的參數及檢測參數(包括目的地址和源地址等)通告給BFD;
(3) BFD根據收到的參數建立BFD會話。
當網絡出現故障時:
(4) BFD檢測到鏈路故障後,拆除BFD會話,通知上層協議鄰居不可達;
(5) 上層協議中止鄰居關係;
(6) 如果網絡中存在備用路徑,設備將選擇備用路徑進行通信。
BFD會話通過下麵兩種報文來實現:
· echo報文:封裝在UDP報文中傳送,其UDP目的端口號為3785。
· 控製報文:封裝在UDP報文中傳送,對於單跳檢測其UDP目的端口號為3784,對於多跳檢測其UDP目的端口號為4784。
本端發送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報文檢測鏈路狀態。
· 靜態路由與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“靜態路由”。
· IPv6靜態路由與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6靜態路由”。
· RIP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“RIP”。
· OSPF與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“OSPF”。
· OSPFv3與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
· IS-IS與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IS-IS”。
· IPv6 IS-IS與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6 IS-IS”。
· BGP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“BGP”。
· IPv6 BGP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
· PIM與BFD聯動:詳細情況請參見“IP組播配置指導”中的“PIM”。
· Track與BFD聯動:詳細情況請參見“可靠性配置指導”中的“Track”。
· IP快速重路由:目前支持快速重路由的有BGP、OSPF、RIP、IS-IS和靜態路由。詳細情況請參見“三層技術-IP路由配置指導”中的“BGP”、“OSPF”、“IS-IS”、“RIP”和“靜態路由”。
· 鏈路聚合與BFD聯動:詳細情況請參見“二層技術-以太網交換配置指導”中的“以太網鏈路聚合”。
與BFD相關的協議規範有:
· RFC 5880:Bidirectional Forwarding Detection (BFD)
· RFC 5881:Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)
· RFC 5882:Generic Application of Bidirectional Forwarding Detection (BFD)
· RFC 5883:Bidirectional Forwarding Detection (BFD) for Multihop Paths
· RFC 7130:Bidirectional Forwarding Detection (BFD) on Link Aggregation Group (LAG) Interfaces
在配置BFD之前,需配置接口的網絡層地址,使相鄰節點之間網絡層可達。
BFD會話建立後,可以動態協商BFD的相關參數(例如最小發送間隔、最小接收間隔、初始模式、報文認證等),兩端協議通過發送相應的協商報文後采用新的參數,不影響會話的當前狀態。
· 對於建立在跨板聚合接口上的BFD會話,當負責收發BFD報文的單板被拔出或異常重啟時,備用單板接替收發BFD報文的工作需要一定的時間,如果BFD會話檢測時間較短或者會話數量較多,可能會出現BFD會話震蕩的情況。
· 缺省BFD運行版本1,同時兼容版本0。不能通過命令行配置修改為版本0,當對端設備運行版本0會話時,本端自動會切換到版本0。
在已配置uRPF功能的設備上不要配置echo報文方式的BFD,否則可能導致echo報文被丟棄。關於uRPF功能的詳細介紹請參見“安全配置指導”中的“uRPF”。
表1-1 echo報文方式配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置echo報文源IP地址 |
bfd echo-source-ip ip-address |
二者選其一 缺省情況下,未配置echo報文的源IP地址 為了避免對端發送大量的ICMP重定向報文造成網絡擁塞,建議不要將echo報文的源IP地址配置為屬於該設備任何一個接口所在網段 本端通過echo報文方式的BFD對鏈路進行檢測時,請不要在對端開啟設備的ICMP重定向報文的發送功能,否則可能導致echo報文被丟棄 echo報文源IPv6地址僅支持全球單播地址 |
bfd echo-source-ipv6 ipv6-address |
||
進入接口視圖 |
interface interface-type interface-number |
- |
(可選)配置接收echo報文的最小時間間隔 |
bfd min-echo-receive-interval interval |
缺省情況下,接收echo報文的最小時間間隔為400毫秒 |
(可選)配置單跳BFD檢測時間倍數 |
bfd detect-multiplier interval |
缺省情況下,單跳BFD檢測時間倍數為5 |
表1-2 控製報文方式配置(單跳檢測)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置BFD會話建立前的運行模式 |
bfd session init-mode { active | passive } |
缺省情況下,BFD會話建立前的運行模式為主動模式 BFD版本0不支持本命令,配置不生效 |
進入接口視圖 |
interface interface-type interface-number |
- |
配置單跳BFD控製報文進行認證的方式 |
bfd authentication-mode { m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string } |
缺省情況下,單跳BFD控製報文不進行認證 BFD版本0不支持本命令,配置不生效 |
配置BFD會話為查詢模式 |
bfd demand enable |
缺省情況下,BFD會話為異步模式 BFD版本0不支持本命令,配置不生效 |
使能echo功能 |
bfd echo [ receive | send ] enable |
缺省情況下,echo功能處於關閉狀態 BFD版本0不支持本命令,配置不生效 本功能在發送控製報文的BFD會話時使用。使能echo功能並且會話up後,設備周期性發送echo報文檢測鏈路連通性,同時降低控製報文的接收速率 |
配置發送單跳BFD控製報文的最小時間間隔 |
bfd min-transmit-interval interval |
缺省情況下,發送單跳BFD控製報文的最小時間間隔為400毫秒 |
配置接收單跳BFD控製報文的最小時間間隔 |
bfd min-receive-interval interval |
缺省情況下,接收單跳BFD控製報文的最小時間間隔為400毫秒 |
配置單跳BFD檢測時間倍數 |
bfd detect-multiplier interval |
缺省情況下,單跳BFD檢測時間倍數為5 |
創建一個檢測本接口狀態的BFD會話 |
bfd detect-interface source-ip ip-address |
缺省情況下,不存在檢測本接口狀態的BFD會話 |
表1-3 控製報文方式配置(多跳檢測)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置BFD會話建立前的運行模式 |
bfd session init-mode { active | passive } |
缺省情況下,BFD會話建立前的運行模式為主動模式 BFD版本0不支持本命令,配置不生效 |
配置多跳BFD控製報文進行認證的方式 |
bfd multi-hop authentication-mode { m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string } |
缺省情況下,多跳BFD控製報文不進行認證 BFD版本0不支持本命令,配置不生效 |
配置多跳BFD控製報文的目的端口號 |
bfd multi-hop destination-port port-number |
缺省情況下,多跳BFD控製報文的目的端口號為4784 |
配置多跳BFD檢測時間倍數 |
bfd multi-hop detect-multiplier value |
缺省情況下,多跳BFD檢測時間倍數為5 |
配置接收多跳BFD控製報文的最小時間間隔 |
bfd multi-hop min-receive-interval interval |
缺省情況下,收多跳BFD控製報文的最小時間間隔為400毫秒 |
配置發送多跳BFD控製報文的最小時間間隔 |
bfd multi-hop min-transmit-interval interval |
缺省情況下,收多跳BFD控製報文的最小時間間隔為400毫秒 |
開啟BFD模塊的告警功能後,該模塊會生成告警信息,用於報告該模塊的重要事件。生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。(有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。)
表1-4 開啟告警功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟BFD的告警功能 |
snmp-agent trap enable bfd |
缺省情況下,BFD的告警功能處於開啟狀態 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BFD的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除BFD會話的統計信息。
表1-5 BFD顯示和維護
操作 |
命令 |
顯示BFD會話信息 |
display bfd session [ discriminator value | verbose ] |
清除BFD會話統計信息 |
reset bfd session statistics |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!