- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
一、概述
M-BFD是在最新的RFC8562(Bidirectional Forwarding Detection (BFD) for Multipoint Networks,2019年4月Release)中定義,針對多點或組播網絡中的一種特殊應用,它和傳統BFD的雙向檢測是有“沖突”的,因為多點傳輸本質上是單向的,僅僅是為了驗證單向連接的連通性,在RFC8562中定義了兩種角色:Head和Tail,對于BFD報文,Head端上的MEP只發不收,而Tail端的MEP只收不發,協議的本質是只為了檢測Head–>Tail的單向的連通性,如下圖所示,BFD的報文只會從Head發向Tail,只在Tail檢測Head到Tail的連通性,Head不需要知道Tail是否丟失。
Head端MEP不運行狀態機,它的狀態依靠管理員配置維護,只有Up一種狀態,用戶可通過BFD報文通告遠端Tail本地狀Up,Down,AdminDown;而Tail狀態機相對RFC5880也較為簡單,沒有INIT狀態,只有Down、UP兩種狀態,其狀態機如下:
在時間協商方面,其原理和RFC5880定義的基本是一樣的,在Head端由于只發不收故本地RequiredMinRxInterval = 0,DesiredMinTxInterval !=0為期望發送報文間隔,而Tail只收不發故本RequiredMinRxInterval != 0為期望接收間隔,DesiredMinTxInterval ==0;當Head期望發送的時間間隔發生變化,也會發P請求修改,Tail端不需要回F,直接修改ActualRxInterval= DesiredMinTxInterval
(報文),而在故障檢測方面,Tail端的故障檢測時間DetecTime = ActualRxInterval * DetectMult(報文),每當收到BFD控制報文時,就會重置檢測時間DetecTime ,并保持會話UP狀態。如果在檢測時間內沒有收到BFD控制報文,即DetecTime減為0時,BFD會話會遷移到DOWN狀態,并產生dLoc,通知該會話所服務的上層應用發生故障,由上層應用采取相應的保護措施。
二、RFC8563
RFC8563(Bidirectional Forwarding Detection (BFD) Multipoint Active Tails,2019年4月Release)是對RFC8562的一個補充,在某些特定的應用中,Head可能需要獲取各個Tail的連接情況而引入的標準,總共有三種方法:
Tail當檢測到fail時,主動發送單播BFD給Client告知;
Head 偶爾發送Poll(仍為組播)查詢所有Tail,Tail回復單播Final告知;
Client主動發送Poll到Tail(單播)查詢指定Tail狀態,Tail回復單播Final告知。
在RFC8563中對Head定義了兩個角色MultipointClient和MultipointHead,MultipointHead承擔head公共的一個角色,它承擔向Tail發送定時發送BFD Hello報文,同時也可以按需發送Multipoint Poll sequence的報文,對接收到的BFD根據YourDisc查到得到LMEP,其LMEP配置的角色是MultipointHead,然后根據BFD中攜帶的MYDisc查找得到RMEP,其RMEP配置的角色為MultipointClient。為了查詢遠端Tail的狀態,在RFC8563中可通過MultipointHead發送P輪詢(組播)遠端Tail的狀態,遠端Tail收到P之后會將P清為0 ,F置為1,并通過反向路徑進行回復;如果Client需要單獨查詢遠端某個Tail信息時,可發送單播BFD 置P為1查詢對應的遠端Tail,遠端Tail收到P之后會將P清為0 ,F置為1,并通過反向路徑進行回復。
1.狀態機
Head或Client同樣沒有狀態機的概念,Tail的狀態機同RFC8562。
2. 時間協商
Tail端的故障檢測和RFC5862是一樣的;而Head或Client端只是為了查詢狀態,也不需要時間協
商。
3. 故障檢測
a.Tail故障檢測
Tail端的故障檢測和RFC8562是一樣的。
b.Client故障檢測
當Client發送P包是目的是對某個Tail查詢狀態,其DetectTime = bfd.detectMult * actualTxInterval;而當Head統一向所有Tail發送P時,Client上DetectTime 大于或等bfd.RequiredMinRxInteral時間,或者遠大于這個時間,以保證報文能走一圈的時間;但是如果detecTime超時后沒有收到回復,只表示本次查詢失敗,不代表Tail沒有收到Head的報文。所以對于Client端MEP而言,不存在故障檢測一說,它只是作為Client會記錄或查詢遠端Tail的狀態信息。
三、應用
如下是華為NE40交換機中部署BFD for組播VPLS可以對組播VPLS鏈路進行檢測的一種典型應用,當鏈路或中間節點故障時,葉子節點上BFD能夠快速感知,并觸發保護組切換到備份組播隧道上接收流量,從而滿足用戶對于組播業務的可靠性需求。
如上圖所示,當鏈路1(AC鏈路)發生故障時,根節點上BFD感知到接口Down,立即停止發送BFD報文,所有葉子節點收不到BFD報文上報Down,觸發保護組切換到備份組播隧道上接收流量;當節點2、鏈路3、節點4、鏈路5故障時,葉子節點收不到BFD報文上報Down,觸發保護組切換到備份組播隧道上接收流量。故障恢復后,BFD重新建立,葉子節點感知故障恢復后,回切到主路徑接收組播數據。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP