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