本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),具體的說,涉及一種實現(xiàn)多跳BFD單臂回聲功能的方法。
技術(shù)背景
Bi-directional Forwarding Detection (BFD) ,即雙向轉(zhuǎn)發(fā)檢測,試圖為各種上層控制協(xié)議提供一種通用的低開銷快速故障檢測服務(wù),上層控制協(xié)議可以利用BFD提供的服務(wù)來決定自己采取相應(yīng)操作,比如重新選路。之所以稱為雙向,是因為BFD協(xié)議通過三次握手機制,能提供鏈路來回兩個方向的連通性檢測。BFD可以快速檢測到轉(zhuǎn)發(fā)路徑上的接口和鏈路故障、節(jié)點的轉(zhuǎn)發(fā)引擎故障等,并把故障通知上層協(xié)議,使上層協(xié)議能夠快速收斂。
至于工作原理,可以認(rèn)為BFD是一個簡單的Hello協(xié)議,和我們熟悉的路由協(xié)議的Hello機制類似,只不過更簡潔更通用。建立BFD會話的兩個系統(tǒng)之間周期性的互發(fā)報文,如果在一個商定的時間段內(nèi)沒有收到對端報文,就認(rèn)為和對端的通信通道出現(xiàn)故障,BFD會話Down,并通知上層協(xié)議重新選路。為了減少設(shè)備負(fù)荷,BFD還設(shè)計了一些特殊的應(yīng)用方式,在這些方式下,可以減少BFD報文發(fā)送,或者不必周期性的發(fā)送BFD報文,只在需要的時候才發(fā)送。
BFD提供了兩種工作模式,一種是異步模式(Asynchronous mode),這是BFD的基本工作模式。在這種模式下,建立了BFD會話的兩個系統(tǒng)之間必須周期性的互發(fā)BFD報文,如果某個系統(tǒng)在商定的時間段內(nèi)一直沒有收到對端發(fā)來的報文,就認(rèn)為對端Down。
另一種模式稱為查詢模式(Demand mode)。這種模式假定建立了BFD會話的兩個系統(tǒng)之間有其他獨立的能暗示連通性的方法,只是在需要的時候才觸發(fā)BFD進(jìn)行顯式的故障檢測。
在兩種工作模式之外,BFD還提供一項輔助功能,稱為回聲功能(Echo Function)?;芈暪δ茉趦煞N工作模式下都可以使用。如果某個系統(tǒng)的回聲功能是激活的,那么它發(fā)送回聲報文,對端把回聲報文沿轉(zhuǎn)發(fā)路徑環(huán)回回來,如果發(fā)送端在一段時間內(nèi)沒有收到回聲報文,就認(rèn)為對端Down。因為回聲報文事實上可起到檢測連通性的作用,所以在異步模式下可以減少BFD控制報文的發(fā)送,在查詢模式下甚至可以完全不用發(fā)送BFD控制報文,直接使用回聲報文檢測連通性。
回聲報文的優(yōu)點是只檢測轉(zhuǎn)發(fā)平面,和控制平面無關(guān),這可以減少報文往返的延遲,能提供更短的故障檢測時間?;芈晥笪牡男问胶蛻?yīng)用相關(guān),不過因為它純粹只檢測連通性,報文可以比普通BFD報文更簡單,處理開銷更小。回聲功能可以只在一個方向上激活,我們稱某個系統(tǒng)的回聲功能是激活的,是指本端能發(fā)送回聲報文,且對端能環(huán)回回聲報文。
但回聲功能目前的實現(xiàn)也存在一些問題,由于源地址等于目的地址,天然限制了BFD回聲功能的應(yīng)用場景,只能進(jìn)行單跳檢測。當(dāng)需要實現(xiàn)BFD的多跳檢測,而鏈路的遠(yuǎn)端節(jié)點又不支持BFD或是由于性能或某種需要不能開啟BFD功能時,就無法實現(xiàn)BFD的鏈路檢測。因此亟需一種技術(shù)能夠?qū)崿F(xiàn)多跳場景且遠(yuǎn)端設(shè)備不支持BFD的情況下實現(xiàn)鏈路檢測,而由于非發(fā)起端需要原生支持這種應(yīng)用場景,所以必須采用一種普遍支持的已知技術(shù),以減少了設(shè)備廠商的開發(fā)成本。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種多跳BFD單臂回聲的方法解決上述問題。為了達(dá)到上述目的,本發(fā)明的技術(shù)方案為:一種實現(xiàn)多跳BFD單臂回聲功能的方法,包含以下步驟:
步驟1 :使能多跳BFD回聲功能,配置包括本地地址和遠(yuǎn)端檢測地址,BFD會話鑒別參數(shù),發(fā)送間隔和檢測倍數(shù);
步驟2:控制面向轉(zhuǎn)發(fā)面下發(fā)配置信息;
步驟3:轉(zhuǎn)發(fā)面按照配置信息構(gòu)造帶松散源路由選項的BFD 回聲報文按照發(fā)送間隔進(jìn)行定時發(fā)送;
步驟4:檢測報文按照路由逐跳發(fā)送至遠(yuǎn)端設(shè)備;
步驟5:遠(yuǎn)端設(shè)備解析IP選項頭,將松散源路由選項指針處的地址替換報文目的地址查路由環(huán)回;
步驟6:報文查路由逐跳到達(dá)起始設(shè)備;
步驟7:起始設(shè)備轉(zhuǎn)發(fā)面收到目的為本地的報文,根據(jù)UDP端口號識別為BFD回聲報文,根據(jù)鑒別參數(shù)匹配對應(yīng)BFD會話;
步驟8:起始設(shè)備進(jìn)行相應(yīng)的檢測流程處理。
本發(fā)明中,源路由選項是IP數(shù)據(jù)報選項的其中之一,源路由可以分為兩類,一類是嚴(yán)格源路由選項(Strict Source Route),一類是松散源路由選項(Loose Source Route)。由于IP選項頭的源路由選項可以控制報文路徑,使用源路由選項承載BFD回聲報文可以實現(xiàn)在BFD報文在遠(yuǎn)端檢測點進(jìn)行環(huán)回。嚴(yán)格源路由選項控制報文的每一跳路徑,由于每一跳轉(zhuǎn)發(fā)設(shè)備都要處理,并且需要在IP選項頭中預(yù)置轉(zhuǎn)發(fā)路徑,而隨著拓?fù)浠蚴菢I(yè)務(wù)的變動,這種路徑往往是不可控的,同時選項頭的長度也限制了檢測跳數(shù)。松散源路由選項雖然也會帶來一定的開銷造成時延,但是由于松散源路由只會在松散點,即遠(yuǎn)端檢測點進(jìn)行處理,這樣就在開銷和功能實現(xiàn)上做了一個完美的平衡,同時也避免了檢測跳數(shù)的限制。
附圖說明:
圖1是本發(fā)明中的BFD回聲功能和聯(lián)動的具體流程;
圖2是本發(fā)明中BFD 回聲報文轉(zhuǎn)發(fā)的具體流程。
具體實施方式:
下面結(jié)合附圖對本發(fā)明進(jìn)行清晰、完整地描述。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的前提下所獲得其他的實施例,都屬于本發(fā)明保護(hù)的范圍。
下面結(jié)合附圖對本發(fā)明一種實現(xiàn)多跳BFD單臂回聲功能的方法進(jìn)行說明。
如圖1所示,本發(fā)明的BFD回聲功能和聯(lián)動的具體流程如下:
通過命令行下發(fā)多跳BFD單臂回聲功能,下發(fā)參數(shù)包括使能多跳,本地源地址和遠(yuǎn)端檢測地址,My Discriminator標(biāo)識,發(fā)送間隔和檢測倍數(shù)
命令行處理模塊解析參數(shù)配置控制面的BFD模塊,BFD模塊向轉(zhuǎn)發(fā)面下發(fā)相應(yīng)的BFD會話表項
轉(zhuǎn)發(fā)面初始化定時器參數(shù)并按照發(fā)送間隔進(jìn)行BFD回聲報文的構(gòu)造和發(fā)送。構(gòu)造的回聲報文內(nèi)容如下:IP頭中的源地址和目的地址均為配置參數(shù),IP選項頭加入松散源路由選項,地址列表只有一個,且指針指向該地址,地址值為回聲報文的源地址。UDP端口號為ECHO端口號3785,BFD頭的My Discriminator和Your Discriminator相同均為配置參數(shù)
如圖2所示BFD回聲報文發(fā)出后在中間設(shè)備均做普通路由轉(zhuǎn)發(fā),當(dāng)報文達(dá)到遠(yuǎn)端檢測點后,設(shè)備發(fā)現(xiàn)目的地址為本地,且包含源路由選項,進(jìn)行源路由選項處理,將指針位置的地址替換到報文的目的地址中,并將查詢目的路由的出接口地址回填到選項頭的地址列表中,指針偏移到NULL?;芈晥笪慕?jīng)過逐跳路由轉(zhuǎn)發(fā)至起始檢測端
起始檢測端轉(zhuǎn)發(fā)面收到目的地址為本地的報文后進(jìn)行識別,識別出是BFD回聲報文后根據(jù)Discriminator標(biāo)識匹配對應(yīng)的BFD會話,復(fù)位定時器。當(dāng)定時器在 發(fā)送間隔*檢測倍數(shù) 的時間內(nèi)沒有收到BFD回聲報文時,定時器回調(diào)轉(zhuǎn)發(fā)面的BFD處理模塊通知BFD超時,轉(zhuǎn)發(fā)面向控制面的BFD模塊上報BFD DOWN,由BFD模塊通知注冊的相應(yīng)被服務(wù)進(jìn)程進(jìn)行動作。