本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種鏈路故障檢測方法及裝置。
背景技術(shù):
邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,簡稱為BGP)監(jiān)測協(xié)議(BGP Monitoring Protocol,簡稱為BMP)draft-ietf-grow-bmp-07定義了BMP鄰居建鏈的方法,但對于因某種原因,鏈路出現(xiàn)異常,如何使BMP快速感知到這種異常,BGP Monitoring Protocol draft-ietf-grow-bmp-07及其相關(guān)協(xié)議標(biāo)準(zhǔn)沒有說明。
針對相關(guān)技術(shù)中在BMP鏈路出現(xiàn)異常時無法使BMP快速感知該異常的問題,目前尚無解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種鏈路故障檢測方法及裝置,以解決相關(guān)技術(shù)中在BMP鏈路出現(xiàn)異常時無法使BMP快速感知該異常的問題。
根據(jù)本發(fā)明的一個方面,提供了一種鏈路故障檢測方法,包括:基于邊界網(wǎng)關(guān)協(xié)議BGP監(jiān)測協(xié)議BMP建立兩個節(jié)點之間的鏈路;基于雙向收發(fā)檢測(Bidirectional Forwarding Detection,簡稱為BFD)檢測到所述兩個節(jié)點之間的鏈路的鏈路故障;基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理。
可選地,在基于所述BMP建立所述兩個節(jié)點之間的所述鏈路之后,還包括:依據(jù)建立的所述鏈路觸發(fā)基于所述BFD檢測所述兩個節(jié)點之間的鏈路的鏈路故障。
可選地,在基于所述BFD檢測到所述兩個節(jié)點之間的所述鏈路的所述鏈路故障之后,還包括:依據(jù)檢測到的所述鏈路故障,觸發(fā)基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理。
可選地,基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理包括:判斷所述兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN;在判斷結(jié)果為是的情況下,基于所述BMP重新建立所述兩個節(jié)點之間的鏈路。
可選地,在判斷所述鏈路故障是否為所述兩個節(jié)點之間的所述通路故障之后,還包括:在判斷結(jié)果為否的情況下,將所述兩個節(jié)點的BMP會話狀態(tài)均更新為關(guān)閉DOWN。
根據(jù)本發(fā)明的另一個方面,還提供了一種鏈路故障檢測裝置,包括:建立模塊,用 于基于邊界網(wǎng)關(guān)協(xié)議BGP監(jiān)測協(xié)議BMP建立兩個節(jié)點之間的鏈路;檢測模塊,用于基于雙向收發(fā)檢測BFD檢測到所述兩個節(jié)點之間的鏈路的鏈路故障;處理模塊,用于基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理。
可選地,上述裝置還包括:第一觸發(fā)模塊,用于在基于所述BMP建立所述兩個節(jié)點之間的所述鏈路之后,依據(jù)建立的所述鏈路觸發(fā)基于所述BFD檢測所述兩個節(jié)點之間的鏈路的鏈路故障。
可選地,上述裝置還包括:第二觸發(fā)模塊,用于在基于所述BFD檢測到所述兩個節(jié)點之間的所述鏈路的所述鏈路故障之后,依據(jù)檢測到的所述鏈路故障,觸發(fā)基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理。
可選地,所述處理模塊包括:判斷單元,用于判斷所述兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN;重建單元,用于在判斷結(jié)果為是的情況下,基于所述BMP重新建立所述兩個節(jié)點之間的鏈路。
可選地,上述裝置還包括:更新單元,用于在判斷所述兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN之后,并在判斷結(jié)果為否的情況下,將所述兩個節(jié)點的狀態(tài)均更新為關(guān)閉DOWN。
通過本發(fā)明,采用基于BMP建立兩個節(jié)點之間的鏈路,基于BFD檢測到所述兩個節(jié)點之間的鏈路的鏈路故障,基于所述BMP,對基于所述BFD檢測到的所述鏈路故障進行處理的方法,通過BFD可以快速感知BMP鏈路上存在的故障并通知給BMP,解決了相關(guān)技術(shù)中在BMP鏈路出現(xiàn)異常時無法使BMP快速感知該異常的問題,進而達到了使BMP快速感知異常的效果。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的結(jié)構(gòu)框圖;
圖3是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的優(yōu)選結(jié)構(gòu)框圖一;
圖4是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的優(yōu)選結(jié)構(gòu)框圖二;
圖5是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置中處理模塊26的結(jié)構(gòu)框圖一;
圖6是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置中處理模塊26的結(jié)構(gòu)框圖二;
圖7是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路及BFD會話的正常工作 時的示意圖;
圖8是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路發(fā)生故障時的處理流程圖;
圖9是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路發(fā)生故障時的示意圖;
圖10是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路故障處理流程示意圖;
圖11是根據(jù)本發(fā)明實施例的BMP建立鏈路的示意圖。
具體實施方式
下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。
在本實施例中提供了一種鏈路故障檢測方法,圖1是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,基于BMP建立兩個節(jié)點之間的鏈路;
步驟S104,基于BFD檢測到這兩個節(jié)點之間的鏈路的鏈路故障;
步驟S106,基于BMP,對基于BFD檢測到的鏈路故障進行處理。
其中,BFD是一個用于檢測兩個轉(zhuǎn)發(fā)點之間故障的網(wǎng)絡(luò)協(xié)議,在RFC 5880有詳細的描述。
BFD在兩臺設(shè)備上建立會話,用來監(jiān)測兩臺設(shè)備間的雙向轉(zhuǎn)發(fā)路徑,為上層協(xié)議服務(wù),如多協(xié)議標(biāo)簽交換(Muti-Protocol Label Switching,簡稱為MPLS)、開放式最短路徑優(yōu)先(Open Shortest Path First,簡稱為OSPF)、中間系統(tǒng)到中間系統(tǒng)(Intermediate System-to-Intermediate System,簡稱為IS-IS)。BFD本身并沒有發(fā)現(xiàn)機制,而是靠被服務(wù)的上層協(xié)議通知其該與誰建立會話,會話建立后如果在檢測時間內(nèi)沒有收到對端的BFD控制報文則認為發(fā)生故障,通知被服務(wù)的上層協(xié)議,上層協(xié)議進行相應(yīng)的處理。
而在本實施中,通過上述步驟,設(shè)置BMP作為BFD的上層協(xié)議,在BMP鏈路上部署B(yǎng)FD,通過BFD可以快速檢測到BMP鏈路存在的故障,并將該故障通知給BMP,解決了相關(guān)技術(shù)中在BMP鏈路出現(xiàn)異常時無法使BMP快速感知該異常的問題,進而達到了使BMP快速感知異常的效果。
在一個可選實施例中,在步驟S102之后,該方法還可以包括:依據(jù)建立的鏈路觸發(fā)基于BFD檢測這兩個節(jié)點之間的鏈路的鏈路故障。例如,在建立BMP鏈路后,可以 通過由BMP向BFD發(fā)送消息,也可以通過將BMP會話的狀態(tài)設(shè)置為UP,從而觸發(fā)BFD對這兩個節(jié)點之間的BMP鏈路的鏈路故障進行檢測。
在一個可選的實施例中,在步驟S104之后,該方法還可以包括:依據(jù)檢測到的鏈路故障,觸發(fā)基于BMP,對基于BFD檢測到的鏈路故障進行處理。例如,在檢測到存在鏈路故障后,可以通過由BFD向BMP發(fā)送消息,也可以通過將這兩個節(jié)點的節(jié)點狀態(tài)更改為DOWN,或者還可以通過將BFD會話的會話狀態(tài)設(shè)置為DOWN,從而觸發(fā)基于BMP對基于BFD檢測到的鏈路故障進行處理。
在一個可選的實施例中,步驟S106可以通過下述方式實現(xiàn):判斷這兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN;在判斷結(jié)果為是的情況下,基于BMP重新建立這兩個節(jié)點之間的鏈路。在相關(guān)技術(shù)中,如果發(fā)生了節(jié)點故障,且只有一個節(jié)點發(fā)生了故障,即其中一個節(jié)點的節(jié)點狀態(tài)為UP,另一個節(jié)點的節(jié)點狀態(tài)為DOWN時,BMP協(xié)議自己沒有辦法解除這種異常,必須依靠人工干預(yù),讓這兩個節(jié)點的節(jié)點狀態(tài)都為DOWN。在本實施例中,首先判斷發(fā)生鏈路故障的兩個節(jié)點的BMP會話狀態(tài)是否為關(guān)閉DOWN,然后在判斷結(jié)果為是的情況下,對發(fā)生的BMP鏈路的通路故障進行處理,高效快速且節(jié)省了人力。
可選地,在另一個可選的實施例中,如果確定這兩個節(jié)點的BMP會話狀態(tài)不是均處在關(guān)閉DOWN的狀態(tài)后,步驟S106還包括:在判斷結(jié)果為否的情況下,將這兩個節(jié)點的BMP會話狀態(tài)均更新為關(guān)閉DOWN。從而實現(xiàn)在本可選實施例中,可以在不需要人工干預(yù)的情況下,將這兩個節(jié)點的節(jié)點狀態(tài)均更新為DOWN,實現(xiàn)了基于BMP對于節(jié)點故障時的自動處理。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
在本實施例中還提供了一種鏈路故障檢測裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
圖2是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的結(jié)構(gòu)框圖,如圖2所示,該裝置包括建立模塊22、檢測模塊24和處理模塊26,下面對該裝置進行說明。
建立模塊22,用于基于BMP建立兩個節(jié)點之間的鏈路;檢測模塊24,連接至建立模塊22,用于基于BFD檢測到這兩個節(jié)點之間的鏈路的鏈路故障;處理模塊26,連接 至檢測模塊24,用于基于BMP,對基于BFD檢測到的鏈路故障進行處理。
圖3是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的優(yōu)選結(jié)構(gòu)框圖一,如圖3所示,該裝置除包括圖2所示的所有模塊外,還包括第一觸發(fā)模塊32,下面對該裝置進行說明。
第一觸發(fā)模塊32,連接至建立模塊22和檢測模塊24,用于在基于BMP建立這兩個節(jié)點之間的鏈路之后,依據(jù)建立的鏈路觸發(fā)基于BFD檢測這兩個節(jié)點之間的鏈路的鏈路故障。
圖4是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置的優(yōu)選結(jié)構(gòu)框圖二,如圖4所示,該裝置除包括圖2所示的所有模塊外,還包括第二觸發(fā)模塊42,下面對該裝置進行說明。
第二觸發(fā)模塊42,連接至檢測模塊24和處理模塊26,用于在基于BFD檢測到這兩個節(jié)點之間的鏈路的鏈路故障之后,依據(jù)檢測到的鏈路故障,觸發(fā)基于BMP,對基于BFD檢測到的鏈路故障進行處理。
圖5是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置中處理模塊26的結(jié)構(gòu)框圖一,如圖5所示,處理模塊26包括判斷單元52和重建單元54,下面對該處理模塊26進行說明。
判斷單元52,用于判斷判斷這兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN;重建單元54,連接至判斷單元52,用于在判斷單元52的判斷結(jié)果為是的情況下,基于BMP重新建立這兩個節(jié)點之間的鏈路。
圖5只是一種示例性說明,其也可以在如圖3、圖4或者其結(jié)合所示的裝置中進行處理模塊26的實例。
圖6是根據(jù)本發(fā)明實施例的鏈路故障檢測裝置中處理模塊26的結(jié)構(gòu)框圖二,如圖6所示,處理模塊26除包含圖5所示的所有單元外,還包括更新單元62,下面對該處理模塊26進行說明。
更新單元62,連接至判斷單元52,用于在判斷這兩個節(jié)點的BMP會話狀態(tài)是否均為關(guān)閉DOWN之后,并在判斷結(jié)果為否的情況下,將這兩個節(jié)點的狀態(tài)均更新為關(guān)閉DOWN。
下面進一步對于本發(fā)明進行舉例說明:
在需要BMP建鏈的一條鏈路上先建立一個雙向快速檢測收發(fā)報文的機制BFD協(xié)議,這里簡稱為“快速檢測機制”,除了BFD,還可以為其它檢測機制。和上層協(xié)議BMP關(guān)聯(lián),當(dāng)BMP會話UP時,會將BMP會話鄰居信息告訴“快速檢測機制”,“快速檢測機制”再根據(jù)這個信息建立鄰居關(guān)系并進行快速檢測機制會話。如果BMP會話的兩個端點之間存在多條鏈路,則可以為每條鏈路建立一個“快速檢測機制”會話。
“快速檢測機制”在建立兩個會話(即BMP會話和快速檢測機制會話)的網(wǎng)絡(luò)節(jié)點之間進行檢測;如果發(fā)現(xiàn)鏈路故障就拆除“快速檢測機制”鄰居,并立即通知上層協(xié) 議BMP,則上層協(xié)議BMP會立刻進行相應(yīng)的切換,即把狀態(tài)轉(zhuǎn)換為DOWN;然后再次重新發(fā)起建鏈。
針對本發(fā)明要解決的技術(shù)問題,在本發(fā)明實施例中提供了一種能夠快速的讓需要建鏈的BMP會話感知鏈路異常的方法,采用該方法不需要人工干預(yù),操作方便,能夠短時間內(nèi)快速恢復(fù)建鏈,保證BMP報文及時發(fā)送給服務(wù)器。
圖7是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路及BFD會話的正常工作時的示意圖,如圖7所示,在BMP鏈路及BFD會話的正常工作時,包括如下步驟:
步驟S702,基于BMP,按照正常流程,在兩個節(jié)點發(fā)起連接,在這兩個節(jié)點之間建立鏈路及鄰居關(guān)系。
步驟S704,基于BMP建立鄰居關(guān)系,即BMP會話狀態(tài)為UP時,將這兩個節(jié)點的鄰居關(guān)系的相關(guān)信息通知給BFD。
步驟S706,BFD根據(jù)收到的這兩個節(jié)點的鄰居關(guān)系的相關(guān)信息建立BFD鄰居關(guān)系,并在建立BFD鄰居關(guān)系及會話的這兩個節(jié)點之間的鏈路上進行鏈路檢測。
圖8是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路發(fā)生故障時的處理流程圖,如圖8所示,BMP鏈路發(fā)生故障時,包括如下步驟:
步驟S802,這兩個節(jié)點的鏈路出現(xiàn)故障;
步驟S804,基于BFD檢測出這兩個節(jié)點之間存在鏈路故障,拆除BFD鄰居關(guān)系;
步驟S806,BFD通知本地BMP鏈路存在故障,該故障導(dǎo)致BFD鄰居不可達;
步驟S808,BMP根據(jù)從BFD收到的相關(guān)的故障信息,更改BMP會話狀態(tài)為DOWN,并進行相應(yīng)的處理。
這樣就保證了BMP會話能夠快速感知鏈路異常,做出相應(yīng)的處理。
圖9是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路發(fā)生故障時的示意圖,如圖9所示,按照BGP Monitoring Protocol draft-ietf-grow-bmp-07及其相關(guān)協(xié)議標(biāo)準(zhǔn)的規(guī)定,BMP沒有自己的?;顖笪模丛阪溌饭收系臅r候,如果恰巧這時候BMP會話由UP轉(zhuǎn)為DOWN,則相應(yīng)的信息可能因鏈路故障被丟棄,會導(dǎo)致BMP會話的狀態(tài)異常,即一端狀態(tài)為UP,另一端狀態(tài)為DOWN,這時,保持節(jié)點狀態(tài)為UP的一端不再接收BMP建鏈請求。這時候BMP協(xié)議自己沒有辦法解除這種異常,需要人工干預(yù),讓BMP會話兩端的狀態(tài)都為DOWN。
需要指出的是,發(fā)生鏈路故障的兩端可以如圖9所示一端為節(jié)點,另一端為服務(wù)器,也可以兩端都為節(jié)點。
圖10是根據(jù)本發(fā)明實施例的鏈路故障檢測方法的BMP鏈路故障處理流程示意圖, 如圖10所示,在BMP會話的兩個網(wǎng)絡(luò)節(jié)點上部署B(yǎng)FD,關(guān)聯(lián)BMP,BFD檢測到鏈路故障后就會通知BMP,使?fàn)顟B(tài)為UP的BMP會話狀態(tài)轉(zhuǎn)換為DOWN;然后再按照正常流程發(fā)起B(yǎng)MP建鏈的流程,如圖11所示。
在鏈路異常情況下,使用本發(fā)明的鏈路故障的檢測方法,BMP會話能夠快速感知鏈路異常,及時正確的處理、快速的建立BMP連接,提高了效率,減少了人工的干預(yù)。
需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。
本發(fā)明的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:
S1,基于BMP建立兩個節(jié)點之間的鏈路;
S2,基于BFD檢測到這兩個節(jié)點之間的鏈路的鏈路故障;
S3,基于BMP,對基于BFD檢測到的鏈路故障進行處理。
可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(Read-Only Memory,簡稱為ROM)、隨機存取存儲器(Random Access Memory,簡稱為RAM)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
可選地,在本實施例中,處理器根據(jù)存儲介質(zhì)中已存儲的程序代碼執(zhí)行上述的步驟S1-S3。
可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。