10-BFD配置
本章節下載: 10-BFD配置 (206.64 KB)
· 本文所指的路由器代表運行了路由協議的三層設備。
· 僅S5500-EI係列交換機支持BFD功能。
· BFD功能中所指的“接口”為三層口,包括VLAN接口、三層以太網端口等。三層以太網端口是指被配置為三層模式的以太網端口,有關以太網端口模式切換的操作,請參見“二層技術-以太網交換配置指導”中的“以太網端口配置”。
為了減小設備故障對業務的影響、提高網絡的可用性,設備需要能夠盡快檢測到與相鄰設備間的通信故障,以便能夠及時采取措施,從而保證業務繼續進行。
現有的故障檢測方法主要包括以下幾種:
· 硬件檢測:例如通過SDH(Synchronous Digital Hierarchy,同步數字係列)告警檢測鏈路故障。硬件檢測的優點是可以很快發現故障,但並不是所有介質都能提供硬件檢測。
· 慢Hello機製:通常采用路由協議中的Hello報文機製。這種機製檢測到故障所需時間為秒級。對於高速數據傳輸,例如吉比特速率級,超過1秒的檢測時間將導致大量數據丟失;對於時延敏感的業務,例如語音業務,超過1秒的延遲也是不能接受的。並且,這種機製依賴於路由協議。
· 其他檢測機製:不同的協議有時會提供專用的檢測機製,但在係統間互聯互通時,這樣的專用檢測機製通常難以部署。
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)就是為了解決上述檢測機製的不足而產生的,它是一套全網統一的檢測機製,用於快速檢測、監控網絡中鏈路或者IP路由的轉發連通狀況,保證鄰居之間能夠快速檢測到通信故障,從而快速建立起備用通道恢複通信。
BFD提供了一個通用的、標準化的、介質無關、協議無關的快速故障檢測機製,可以為各上層協議如路由協議等統一地快速檢測兩台路由器間雙向轉發路徑的故障。
BFD在兩台路由器上建立會話,用來監測兩台路由器間的雙向轉發路徑,為上層協議服務。BFD本身並沒有發現機製,而是靠被服務的上層協議通知其與誰建立會話,會話建立後如果在檢測時間內沒有收到對端的BFD控製報文則認為發生故障,通知被服務的上層協議,上層協議進行相應的處理。
圖1-1 BFD會話建立流程圖(以OSPF為例)
BFD會話建立過程:
(1) 上層協議通過自己的Hello機製發現鄰居並建立連接;
(2) 上層協議在建立了新的鄰居關係時,將鄰居的參數及檢測參數都(包括目的地址和源地址等)通告給BFD;
(3) BFD根據收到的參數進行計算並建立鄰居。
圖1-2 BFD處理網絡故障流程圖(以OSPF為例)
當網絡出現故障時:
(1) BFD檢測到鏈路/網絡故障;
(2) 拆除BFD鄰居會話;
(3) BFD通知本地上層協議進程BFD鄰居不可達;
(4) 本地上層協議中止上層協議鄰居關係;
(5) 如果網絡中存在備用路徑,路由器將選擇備用路徑。
BFD草案中沒有規定檢測的時間精度,目前支持BFD的設備大多數提供的是毫秒級檢測。
· 單跳檢測:BFD單跳檢測是指對兩個直連係統進行IP連通性檢測,這裏所說的“單跳”是IP的一跳。
· 多跳檢測:BFD可以檢測兩個係統間的任意路徑,這些路徑可能跨越很多跳,也可能在某些部分發生重疊。
· 雙向檢測:BFD通過在雙向鏈路兩端同時發送檢測報文,檢測兩個方向上的鏈路狀態,實現毫秒級的鏈路故障檢測。(BFD檢測LSP是一種特殊情況,隻需在一個方向發送BFD控製報文,對端通過其他路徑報告鏈路狀況。)
· 控製報文方式:鏈路兩端會話通過控製報文交互監測鏈路狀態。
· Echo報文方式:鏈路某一端通過發送Echo報文由另一端轉發回來,實現對鏈路的雙向監測。
BFD會話建立前有兩種模式:主動模式和被動模式。
· 主動模式:在建立會話前不管是否收到對端發來的BFD控製報文,都會主動發送BFD控製報文;
· 被動模式:在建立會話前不會主動發送BFD控製報文,直到收到對端發送來的控製報文。
在會話初始化過程中,通信雙方至少要有一個運行在主動模式才能成功建立起會話。
BFD會話建立後通信雙方均運行在異步模式:以異步模式運行的設備周期性地發送BFD控製報文,如果在檢測時間內對端沒有收到BFD控製報文,則認為會話down。
當BFD會話工作於echo報文方式時,不受運行模式控製。
會話建立後,可以動態協商BFD的相關參數(例如最小發送間隔、最小接收間隔、初始模式、報文認證等),兩端協議通過發送相應的協商報文後采用新的參數,不影響會話的當前狀態。
BFD提供了三種認證方式,分別是:
· Simple:簡單認證
· MD5:MD5認證
· SHA1:SHA1認證
BFD控製報文封裝在UDP報文中傳送,對於單跳檢測其UDP目的端口號為3784,對於多跳檢測其UDP目的端口號為4784(也可配置為3784,具體參見配置任務)。BFD echo報文與BFD控製報文格式類似(區別在於字段Desired Min TX Interval和Required Min RX Interval為空),其UDP目的端口號為3785。報文格式如圖1-3所示。
圖1-3 BFD報文格式圖
· Vers:協議的版本號,協議版本為1。
· Diag:本地會話最後一次從up狀態轉換到其他狀態的原因如表1-1:
表1-1 Diag原因描述
Diag |
描述 |
0 |
無診斷信息(No Diagnostic) |
1 |
控製檢測超時(Control Detection Time Expired) |
2 |
回聲功能失效(Echo Function Failed) |
3 |
鄰居通知會話down(Neighbor Signaled Session Down) |
4 |
轉發平麵重啟(Forwarding Plane Reset) |
5 |
通道失效(Path Down) |
6 |
連接通道失效(Concatenated Path Down) |
7 |
管理down(Administratively Down) |
8 |
反向鏈路down(Reverse Concatenated Path Down) |
9~31 |
保留位(Reserved for future use) |
· State(Sta):BFD會話當前狀態,取值為:0代表AdminDown,1代表Down,2代表Init,3代表Up。
· Poll(P):設置為1,表示發送方請求進行連接確認,或者發送請求參數改變的確認;設置為0,表示發送方不請求確認。
· Final(F):設置為1,表示發送方響應一個接收到P比特為1的BFD控製報文;設置為0,表示發送方不響應一個接收到P比特為1的BFD控製報文。
· Control Plane Independent(C):設置為1,表示發送方的BFD實現不依賴於它的控製平麵(即,BFD報文在轉發平麵傳輸,即使控製平麵失效,BFD仍然能夠起作用);設置為0,表示BFD報文在控製平麵傳輸。
· Authentication Present(A):如果設置為1,則表示控製報文包含認證字段,並且會話是被認證的。
· Demand(D):設置為1,表示發送方希望操作在查詢模式;設置為0,表示發送方不區分是否操作在查詢模式,或者表示發送方不能操作在查詢模式。
· Reserved(R):在發送時設置為0,在接收時忽略。
· Detect Mult:檢測時間倍數。即接收方允許發送方發送報文的最大連續丟包數,用來檢測鏈路是否正常。
· Length:BFD控製報文的長度,單位字節。
· My Discriminator:發送方產生的一個唯一的、非0鑒別值,用來區分兩個協議之間的多個BFD會話。
· Your Discriminator:接收方收到的鑒別值“My Discriminator”,如果沒有收到這個值就返回0。
· Desired Min Tx Interval:發送方發送BFD控製報文時想要采用的最小間隔,單位毫秒。
· Required Min Rx Interval:發送方能夠支持的接收兩個BFD控製報文之間的間隔,單位毫秒。
· Required Min Echo Rx Interval:發送方能夠支持的接收兩個BFD回聲報文之間的間隔,單位毫秒。如果這個值設置為0,則發送不支持接收BFD回聲報文。
· Auth Type:BFD控製報文使用的認證類型。
· Auth Len:認證字段的長度,包括認證類型與認證長度字段。
· OSPF與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“OSPF”。
· OSPFv3與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
· IS-IS與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IS-IS”。
· IPv6 IS-IS與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6 IS-IS”。
· RIP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“RIP”。
· 靜態路由與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“靜態路由”。
· BGP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“BGP”。
· IPv6 BGP與BFD聯動:詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
· PIM與BFD聯動:詳細情況請參見“IP組播配置指導”中的“PIM”。
· IPv6 PIM與BFD聯動:詳細情況請參見“IP組播配置指導”中的“IPv6 PIM”。
· Track與BFD聯動:詳細情況請參見“可靠性配置指導”中的“Track”。
· IP快速重路由:目前支持快速重路由的有OSPF、RIP、IS-IS和靜態路由。詳細情況請參見“三層技術-IP路由配置指導”中的“OSPF”、“IS-IS”、“RIP”和“靜態路由”。
與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
BFD基本功能配置,是配置其他協議和BFD聯動應用的基礎。
在配置BFD基本功能之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點之間網絡層可達
· 配置可支持BFD的路由協議
表1-2 配置BFD基本功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置BFD會話建立前的會話模式 |
bfd session init-mode { active | passive } |
可選 缺省情況下,BFD會話建立前的會話模式為active |
配置多跳BFD控製報文的目的端口號 |
bfd multi-hop destination-port port-number |
可選 缺省情況下,多跳BFD控製報文的目的端口號為4784 |
配置echo報文源IP地址 |
bfd echo-source-ip ip-address |
可選 需要注意的是,為了避免對端發送大量的ICMP重定向報文造成網絡擁塞,建議不要將BFD echo報文的源IP地址配置為屬於該設備任何一個接口所在網段 |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接收echo報文的最小時間間隔 |
bfd min-echo-receive-interval value |
可選 請參見1.1.2 BFD報文格式中的參數Required Min Echo Rx Interval 缺省情況下,接收echo報文的最小時間間隔為400毫秒 |
配置發送BFD控製報文的最小時間間隔 |
bfd min-transmit-interval value |
可選 請參見1.1.2 BFD報文格式中的參數Desired Min Tx Interval 缺省情況下,發送BFD控製報文的最小時間間隔為400毫秒 |
配置接收BFD控製報文的最小時間間隔 |
bfd min-receive-interval value |
可選 請參見1.1.2 BFD報文格式中的參數Required Min Rx Interval 缺省情況下,接收BFD控製報文的最小時間間隔為400毫秒 |
配置檢測時間倍數 |
bfd detect-multiplier value |
可選 請參見1.1.2 BFD報文格式中的參數Detect Mult 缺省情況下,檢測時間倍數為5 |
配置接口的認證方式 |
bfd authentication-mode { md5 key-id [ cipher ] key | sha1 key-id [ cipher ] key | simple key-id [ cipher ] password } |
可選 缺省情況下,接口為不認證方式 |
如圖1-1所示,假如Router A的Desired Min Tx Interval為100毫秒,Required Min Rx Interval為300毫秒,Detect Mult為5;Router B的Desired Min Tx Interval為150毫秒,Required Min Rx Interval為400毫秒,Detect Mult為10。那麼會有以下結果:
· Router A的實際發送時間為Router A發送控製報文的最小時間間隔和Router B接收控製報文的最小時間間隔之間的較大值=Max(100,400)=400毫秒。
· Router B的實際發送時間為Router B發送控製報文的最小時間間隔和Router A接收控製報文的最小時間間隔之間的較大值=Max(150,300)=300毫秒。
· Router A的實際檢測時間為Router B的檢測時間倍數和Router B的實際發送時間的乘積=10×300=3000毫秒。
· Router B的實際檢測時間為Router A的檢測時間倍數和Router A的實際發送時間的乘積=5×400=2000毫秒。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BFD的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除BFD會話的統計信息。
表1-3 BFD顯示和維護
操作 |
命令 |
顯示使能的BFD接口信息 |
display bfd interface [ verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示使能的BFD調試信息開關 |
display bfd debugging-switches [ | { begin | exclude | include } regular-expression ] |
顯示BFD會話信息 |
display bfd session [ slot slot-number [ all | verbose ] | verbose ] [ | { begin | exclude | include } regular-expression ] |
清除BFD會話統計信息 |
reset bfd session statistics [ slot slot-number ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!