BFD技術介紹


BFD

BFD簡介

為了減小設備故障對業務的影響、提高網絡的可用性,設備需要能夠盡快檢測到與相鄰設備間的通信故障,以便能夠及時采取措施,從而保證業務繼續進行。

現有的故障檢測方法主要包括以下幾種:

l              硬件檢測:例如通過SDHSynchronous Digital Hierarchy,同步數字體係)告警檢測鏈路故障。硬件檢測的優點是可以很快發現故障,但並不是所有介質都能提供硬件檢測。

l              Hello機製:通常采用路由協議中的Hello報文機製。這種機製檢測到故障所需時間為秒級。對於高速數據傳輸,例如吉比特速率級,超過1秒的檢測時間將導致大量數據丟失;對於時延敏感的業務,例如語音業務,超過1秒的延遲也是不能接受的。並且,這種機製依賴於路由協議。

l              其他檢測機製:不同的協議有時會提供專用的檢測機製,但在係統間互聯互通時,這樣的專用檢測機製通常難以部署。

BFDBidirectional Forwarding Detection,雙向轉發檢測)就是為了解決上述檢測機製的不足而產生的,它是一套全網統一的檢測機製,用於快速檢測、監控網絡中鏈路或者IP路由的轉發連通狀況,保證鄰居之間能夠快速檢測到通信故障,從而快速建立起備用通道恢複通信。

工作機製

BFD提供了一個通用的、標準化的、介質無關、協議無關的快速故障檢測機製,可以為各上層協議如路由協議、MPLS等統一地快速檢測兩台路由器間雙向轉發路徑的故障。

BFD在兩台路由器或路由交換機上建立會話,用來監測兩台路由器間的雙向轉發路徑,為上層協議服務。BFD本身並沒有發現機製,而是靠被服務的上層協議通知其該與誰建立會話,會話建立後如果在檢測時間內沒有收到對端的BFD控製報文則認為發生故障,通知被服務的上層協議,上層協議進行相應的處理。

1. 工作流程

圖1 BFD會話建立流程圖(以OSPF為例)

 

BFD會話建立過程:

(1)        上層協議通過自己的Hello機製發現鄰居並建立連接;

(2)        上層協議在建立了新的鄰居關係時,將鄰居的參數及檢測參數都(包括目的地址和源地址等)通告給BFD

(3)        BFD根據收到的參數進行計算並建立鄰居。

 

圖2 BFD處理網絡故障流程圖(以OSPF為例)

 

當網絡出現故障時:

(1)        BFD檢測到鏈路/網絡故障;

(2)        拆除BFD鄰居會話;

(3)        BFD通知本地上層協議進程BFD鄰居不可達;

(4)        本地上層協議中止上層協議鄰居關係;

(5)        如果網絡中存在備用路徑,路由器將選擇備用路徑。

2. 檢測方式

l              單跳檢測:BFD單跳檢測是指對兩個直連係統進行IP連通性檢測,這裏所說的“單跳”是IP的一跳。

l              多跳檢測:BFD可以檢測兩個係統間的任意路徑,這些路徑可能跨越很多跳,也可能在某些部分發生重疊。

l              雙向檢測:BFD通過在雙向鏈路兩端同時發送檢測報文,檢測兩個方向上的鏈路狀態,實現毫秒級的鏈路故障檢測。(BFD檢測LSP是一種特殊情況,隻需在一個方向發送BFD控製報文,對端通過其他路徑報告鏈路狀況。)

3. BFD會話工作方式

BFD會話工作方式:

l              控製報文方式:鏈路兩端會話通過控製報文交互監測鏈路狀態。

l              Echo報文方式:鏈路某一端通過發送Echo報文由另一端轉發回來,實現對鏈路的雙向監測。

4. 運行模式

BFD會話建立前模式:主動模式和被動模式。

l              主動模式:在建立對話前不管是否收到對端發來的BFD控製報文,都會主動發送BFD控製報文;

l              被動模式:在建立對話前不會主動發送BFD控製報文,直到收到對端發送來的控製報文;

在會話初始化過程中,通信雙方至少要有一個運行在主動模式才能成功建立起會話。

BFD會話建立後模式:異步模式和查詢模式。

l              異步模式:以異步模式運行的路由器周期性地發送BFD控製報文,如果在檢測時間內沒有收到BFD控製報文則將會話down

l              查詢模式:假定每個係統都有一個獨立的方法,確認自己連接到其他係統。這樣,隻要有一個BFD會話建立,係統停止發送BFD控製報文,除非某個係統需要顯式地驗證連接性。

BFD報文格式

BFD控製報文封裝在UDP報文中傳送,對於單跳檢測其UDP目的端口號為3784,對於多跳檢測其UDP目的端口號為4784(也可配置為3784,具體參見配置任務)。BFD echo報文與BFD控製報文格式類似(區別在於字段Desired Min TX IntervalRequired Min RX Interval為空),其UDP目的端口號為3785。報文格式如3所示。

圖3 BFD報文格式圖

 

l              Vers:協議的版本號,協議版本為1

l              Diag:本地會話最後一次從up狀態轉換到其他狀態的原因。

l              StateSta):BFD會話當前狀態,取值為:0代表AdminDown1代表Down2代表Init3代表Up

l              PollP):設置為1,表示發送方請求進行連接確認,或者發送請求參數改變的確認;設置為0,表示發送方不請求確認。

l              FinalF):設置為1,表示發送方響應一個接收到P比特為1BFD控製報文;設置為0,表示發送方不響應一個接收到P比特為1BFD控製報文。

l              Control Plane IndependentC):設置為1,表示發送方的BFD實現不依賴於它的控製平麵(即,BFD報文在轉發平麵傳輸,即使控製平麵失效,BFD仍然能夠起作用);設置為0,表示BFD報文在控製平麵傳輸。

l              Authentication PresentA):如果設置為1,則表示控製報文包含認證字段,並且會話是被認證的。

l              DemandD):設置為1,表示發送方希望操作在查詢模式;設置為0,表示發送方不區分是否操作在查詢模式,或者表示發送方不能操作在查詢模式。

l              ReservedR):在發送時設置為0,在接收時忽略。

l              Detect Mult:檢測時間倍數。即接收方允許發送方發送報文的最大連續丟包數,用來檢測鏈路是否正常。

l              LengthBFD控製報文的長度,單位字節。

l              My Discriminator:發送方產生的一個唯一的、非0鑒別值,用來區分兩個協議之間的多個BFD會話。

l              Your Discriminator:接收方收到的鑒別值“My Discriminator”,如果沒有收到這個值就返回0

l              Desired Min Tx Interval:發送方發送BFD控製報文時想要采用的最小間隔,單位毫秒。

l              Required Min Rx Interval:發送方能夠支持的接收兩個BFD控製報文之間的間隔,單位毫秒。

l              Required Min Echo Rx Interval:發送方能夠支持的接收兩個BFD回聲報文之間的間隔,單位毫秒。如果這個值設置為0,則發送不支持接收BFD回聲報文。

l              Auth TypeBFD控製報文使用的認證類型。

l              Auth Len:認證字段的長度,包括認證類型與認證長度字段。

BFD支持的應用

l              OSPFBFD聯動

l              OSPFv3BFD聯動

l              IS-ISBFD聯動

l              IPv6 IS-ISBFD聯動

l              RIPBFD聯動

l              靜態路由與BFD聯動

l              BGPBFD聯動

l              IPv6 BGPBFD聯動

l              MPLSBFD聯動

l              TrackBFD聯動

l              IP快速重路由

附件下載

聯係我們