專(zhuān)利名稱(chēng):一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域的雙向轉(zhuǎn)發(fā)檢測(cè)(Bidirectional Forwarding Detection,簡(jiǎn)稱(chēng)BFD)技術(shù),尤其涉及一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法及設(shè)備。
背景技術(shù):
BFD協(xié)議是一套標(biāo)準(zhǔn)化的全網(wǎng)統(tǒng)一的檢測(cè)機(jī)制,用于快速檢測(cè)、監(jiān)控網(wǎng)絡(luò)中路 徑或者IP路由轉(zhuǎn)發(fā)的連通狀況。它提供的是一種通用的、標(biāo)準(zhǔn)化的、介質(zhì)無(wú)關(guān)、協(xié)議 無(wú)關(guān)的快速故障檢測(cè)機(jī)制,可以為各上層應(yīng)用協(xié)議如路由協(xié)議(OSPF、RIP、BGP等)、 MPLS (Multiprotocol Label Switching,多協(xié)議標(biāo)簽交換)等統(tǒng)一地快速檢測(cè)兩臺(tái)設(shè)備之 間雙向轉(zhuǎn)發(fā)路徑的故障。BFD可以在系統(tǒng)之間任何類(lèi)型的路徑上提供故障檢測(cè),一條BFD會(huì)話(huà)基于使用它 的具體上層應(yīng)用協(xié)議的需要而建立。如果多個(gè)上層應(yīng)用協(xié)議對(duì)應(yīng)相同的路徑,則可以使用 一個(gè)BFD會(huì)話(huà)進(jìn)行檢測(cè)。BFD協(xié)議與上層應(yīng)用協(xié)議的關(guān)系包括上層應(yīng)用協(xié)議(例如路由 協(xié)議)根據(jù)協(xié)議自身的鄰居發(fā)現(xiàn)機(jī)制建立鄰居后,通知BFD協(xié)議建立BFD會(huì)話(huà),BFD協(xié)議查 詢(xún)是否存在對(duì)應(yīng)的會(huì)話(huà),如果沒(méi)有則根據(jù)接收到的鄰居信息建立對(duì)應(yīng)的會(huì)話(huà),然后BFD會(huì) 話(huà)發(fā)送BFD控制報(bào)文控制BFD會(huì)話(huà)狀態(tài)的遷移。系統(tǒng)利用BFD控制報(bào)文通過(guò)三次握手完成 BFD會(huì)話(huà)的建立,歷經(jīng)關(guān)閉(Down)狀態(tài)到初始化(Init)狀態(tài)的遷移,Init狀態(tài)到激活(Up) 狀態(tài)的遷移,會(huì)話(huà)建立的過(guò)程會(huì)進(jìn)行會(huì)話(huà)的參數(shù)協(xié)商,包括報(bào)文發(fā)送周期,檢測(cè)周期等。當(dāng) 會(huì)話(huà)建立完成后,通過(guò)周期性的發(fā)送BFD控制報(bào)文進(jìn)行路徑狀況的檢測(cè),如果在檢測(cè)周期 內(nèi)沒(méi)有接收到對(duì)端設(shè)備對(duì)應(yīng)的BFD控制報(bào)文,BFD協(xié)議就會(huì)認(rèn)為此路徑存在故障,將故障信 息通告給上層應(yīng)用協(xié)議,上層應(yīng)用協(xié)議接收到故障報(bào)告后,根據(jù)自身的特點(diǎn)進(jìn)行相應(yīng)的鄰 居去使能或者刪除處理,并通知BFD協(xié)議刪除會(huì)話(huà)。目前網(wǎng)絡(luò)通信設(shè)備實(shí)現(xiàn)上述過(guò)程有兩種方案。第一種方案為集中式控制方式,僅 有主控卡運(yùn)行BDF協(xié)議,即BFD控制報(bào)文的收發(fā)、BFD會(huì)話(huà)狀態(tài)遷移的控制以及與上層應(yīng)用 協(xié)議的交互全部集中在主控卡上。大致工作過(guò)程為,上層應(yīng)用協(xié)議通知BFD協(xié)議建立BFD 會(huì)話(huà),BFD協(xié)議在主控卡上進(jìn)行BFD會(huì)話(huà)的建立和BFD控制報(bào)文的構(gòu)建,構(gòu)建完畢后發(fā)送給 本端設(shè)備上某一線(xiàn)卡,該線(xiàn)卡從指定的某一端口發(fā)送出去;同時(shí),如果發(fā)送控制報(bào)文的線(xiàn)卡 接收到對(duì)端設(shè)備的BFD控制報(bào)文,則將BFD控制報(bào)文透?jìng)鞯街骺乜ǎ骺乜ń邮盏紹FD控制 報(bào)文后控制BFD會(huì)話(huà)狀態(tài)的遷移,當(dāng)檢測(cè)到路徑出現(xiàn)故障后,BFD協(xié)議發(fā)送通知消息到上層 應(yīng)用協(xié)議。在以上過(guò)程中,本端設(shè)備BFD控制報(bào)文的發(fā)送方向?yàn)閺闹骺乜ǖ骄€(xiàn)卡,接收?qǐng)?bào)文 的方向是從線(xiàn)卡到主控卡,其中報(bào)文的構(gòu)建和BFD狀態(tài)機(jī)的驅(qū)動(dòng)全部在主控卡上完成。由 于這一過(guò)程實(shí)現(xiàn)比較簡(jiǎn)單,被普遍采用,但不難看出,由于BFD控制報(bào)文的收發(fā)頻率很高且 所有控制報(bào)文均需經(jīng)過(guò)卡間通道,這一過(guò)程無(wú)疑會(huì)造成卡間通道的阻塞,影響設(shè)備中其他 子系統(tǒng)的正常運(yùn)行;另一方面,BFD控制報(bào)文的收發(fā)和處理全部集中在主控卡上,無(wú)疑會(huì)加 重主控卡的負(fù)擔(dān),影響設(shè)備的控制平面其他協(xié)議的正常運(yùn)行。另一種實(shí)現(xiàn)方案見(jiàn)中國(guó)專(zhuān)利申請(qǐng)CN101079759A(申請(qǐng)日為2007年7月24日,申
3請(qǐng)?zhí)枮?00710130779. 9,申請(qǐng)名稱(chēng)為分布式雙向轉(zhuǎn)發(fā)檢測(cè)方法及設(shè)備),該方案是一種控 制分離的實(shí)現(xiàn)方式,線(xiàn)卡和主控卡均運(yùn)行BFD協(xié)議,BFD會(huì)話(huà)進(jìn)行分布式維護(hù)。其中,當(dāng)主 控卡建立BFD會(huì)話(huà)完成后,即BFD會(huì)話(huà)遷移到UP狀態(tài)時(shí),主控卡將BFD會(huì)話(huà)的控制權(quán)移交 到設(shè)備上某一線(xiàn)卡,該主控卡終止所述的BFD會(huì)話(huà)的維護(hù)。具有會(huì)話(huà)控制權(quán)的線(xiàn)卡從對(duì)端 設(shè)備接收到BFD控制報(bào)文后,查詢(xún)對(duì)應(yīng)的會(huì)話(huà)是否存在且達(dá)到Up狀態(tài),如果沒(méi)有則將控制 報(bào)文透?jìng)鹘o主控卡,否則,具有會(huì)話(huà)控制權(quán)的線(xiàn)卡接收所述的報(bào)文并維護(hù)該會(huì)話(huà)。當(dāng)具有會(huì) 話(huà)控制權(quán)的線(xiàn)卡檢測(cè)到BFD會(huì)話(huà)狀態(tài)發(fā)生改變時(shí),刪除該BFD會(huì)話(huà),并通知該狀態(tài)改變事 件到主控卡,主控卡進(jìn)行后續(xù)的刪除操作。雖然該實(shí)現(xiàn)方案在BFD會(huì)話(huà)狀態(tài)遷移到Up狀態(tài) 后,主控卡將會(huì)話(huà)的控制權(quán)移交到線(xiàn)卡,這減少了主控卡和線(xiàn)卡之間的報(bào)文透?jìng)鲾?shù)量,一定 程度上保證了系統(tǒng)中其他協(xié)議的正常運(yùn)行,但是該方案有以下兩點(diǎn)明顯不足一、由于主控 卡和線(xiàn)卡均運(yùn)行BFD協(xié)議,浪費(fèi)了系統(tǒng)資源,在會(huì)話(huà)不同的階段進(jìn)行報(bào)文的收發(fā)和狀態(tài)的 維護(hù)遷移,實(shí)現(xiàn)起來(lái)較為麻煩;二、在會(huì)話(huà)的狀態(tài)未遷移到Up狀態(tài)時(shí),主控制和線(xiàn)卡仍需透 傳BFD控制報(bào)文,當(dāng)大量的會(huì)話(huà)震蕩時(shí),震蕩期間主控卡和卡間通道的負(fù)擔(dān)依然很重,嚴(yán)重 時(shí)甚至影響設(shè)備控制平面的穩(wěn)定性。
發(fā)明內(nèi)容
本發(fā)明提供了一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,用以解決現(xiàn)有BFD控制報(bào)文在會(huì) 話(huà)建立期間或建立完成后需要透?jìng)鞔罅康膱?bào)文到主控卡問(wèn)題。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)方法,包括以下步驟主控卡接收到上層應(yīng)用協(xié)議建立會(huì)話(huà)的通知消息后,通知本端某一線(xiàn)卡建立會(huì) 話(huà);所述線(xiàn)卡運(yùn)行BFD協(xié)議,完成BFD會(huì)話(huà)的建立和維護(hù);當(dāng)檢測(cè)到出現(xiàn)故障時(shí),由該 建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。所述該建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà),包括如下步驟a、線(xiàn)卡檢測(cè)到故障后向主控卡發(fā)送故障消息;b、主控卡收到BFD故障消息后,將該消息通知上層應(yīng)用協(xié)議;C、上層應(yīng)用協(xié)議接收到BFD故障消息后,向主控卡發(fā)送會(huì)話(huà)刪除消息;d、主控卡接收會(huì)話(huà)刪除消息后,指定該建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。具體的,所述通知消息包括虛擬路由轉(zhuǎn)發(fā)參數(shù)、本端IP地址、對(duì)端IP地址、接口信 息等參數(shù)信息。主控卡根據(jù)該接口信息獲取線(xiàn)卡信息,根據(jù)該線(xiàn)卡信息唯一確定具有會(huì)話(huà) 控制權(quán)的線(xiàn)卡。具體的,在接口信息未分布的系統(tǒng)中,所述主控卡根據(jù)所述接口信息獲取的線(xiàn)卡 信息為報(bào)文發(fā)送的槽位號(hào)、發(fā)送和接收?qǐng)?bào)文的端口號(hào)。具體的,在接口信息已分布的系統(tǒng)中,所述主控卡根據(jù)所述接口信息獲取的線(xiàn)卡 信息為報(bào)文發(fā)送的槽位號(hào)。本發(fā)明還提供了一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)設(shè)備,包括一個(gè)主控卡和至少一個(gè)線(xiàn) 卡;所述主控卡包括第一通知模塊,用于接收上層應(yīng)用協(xié)議會(huì)話(huà)建立/刪除消息并將 這一消息通告到線(xiàn)卡BFD協(xié)議,還用于接收線(xiàn)卡BFD協(xié)議故障消息并將這一消息通告到上層應(yīng)用協(xié)議;所述線(xiàn)卡包括第二通知模塊和BFD會(huì)話(huà)模塊;所述第二通知模塊,用于接收主控 卡的會(huì)話(huà)建立/刪除消息以及檢測(cè)到故障發(fā)生時(shí)向主控卡發(fā)送故障消息;所述BFD會(huì)話(huà)模 塊用于維護(hù)BFD會(huì)話(huà)。進(jìn)一步的,所述主控卡還包括上層應(yīng)用協(xié)議模塊,與所述第一通知模塊連接,用于 通知所述第一通知模塊建立/刪除BFD會(huì)話(huà)。進(jìn)一步的,所述BFD會(huì)話(huà)模塊包括報(bào)文收發(fā)模塊、定時(shí)器模塊、狀態(tài)控制模塊;所述報(bào)文收發(fā)模塊,用于BFD控制報(bào)文的接收和發(fā)送;所述定時(shí)器模塊,用于路徑定時(shí)檢測(cè)和報(bào)文定時(shí)發(fā)送;所述狀態(tài)控制模塊,用于BFD狀態(tài)的運(yùn)行和維護(hù)。由上述技術(shù)方案可知,本發(fā)明所有的BFD控制報(bào)文均無(wú)需透?jìng)鞯街骺乜?,具有?下有益的效果1)由于所有的BFD控制報(bào)文的生成、收發(fā)均在線(xiàn)卡上進(jìn)行,減少了卡間通信 及主控卡的負(fù)擔(dān),維護(hù)了系統(tǒng)的穩(wěn)定;2)由于BFD狀態(tài)機(jī)的運(yùn)行和維護(hù)只在線(xiàn)卡上進(jìn)行,主 控卡上只有通知模塊,實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單,同時(shí)節(jié)約了系統(tǒng)資源。
圖1是本發(fā)明實(shí)施例1中分布式雙向轉(zhuǎn)發(fā)檢測(cè)方法的流程示意圖。圖2是本發(fā)明實(shí)施例2中分布式雙向轉(zhuǎn)發(fā)檢測(cè)方法的流程示意圖。圖3是本發(fā)明實(shí)施例的分布式雙向轉(zhuǎn)發(fā)檢測(cè)設(shè)備的結(jié)構(gòu)框圖。圖4是本發(fā)明另一較佳實(shí)施例的分布式雙向轉(zhuǎn)發(fā)檢測(cè)設(shè)備的結(jié)構(gòu)框圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和特點(diǎn)更容易被理解和接受,下面結(jié)合附圖和具 體的實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。本發(fā)明實(shí)現(xiàn)一種分布式的雙向轉(zhuǎn)發(fā)檢測(cè)的方法,在提高檢測(cè)效率的同時(shí)減少主控 卡的負(fù)擔(dān),保持系統(tǒng)的穩(wěn)定。在本發(fā)明實(shí)施例中,主控卡接收到上層應(yīng)用協(xié)議的會(huì)話(huà)建立消 息后,將通知某一線(xiàn)卡建立相應(yīng)的會(huì)話(huà);如果多個(gè)不同的上層應(yīng)用協(xié)議需要檢測(cè)同樣的路 徑時(shí),線(xiàn)卡只會(huì)被通知一次,會(huì)話(huà)只會(huì)建立一個(gè)。線(xiàn)卡接收到會(huì)話(huà)建立消息的指令后,建立 相應(yīng)的BFD會(huì)話(huà),并負(fù)責(zé)BFD控制報(bào)文的構(gòu)建和收發(fā),以及BFD會(huì)話(huà)狀態(tài)的控制等。當(dāng)線(xiàn)卡 上BFD會(huì)話(huà)檢測(cè)到路徑出現(xiàn)故障時(shí),線(xiàn)卡將發(fā)送故障消息到主控卡上,主控卡將故障消息 通知到各個(gè)上層應(yīng)用協(xié)議,各個(gè)上層應(yīng)用協(xié)議執(zhí)行后續(xù)刪除會(huì)話(huà)等操作。在本發(fā)明中,根據(jù) 不同的分布式系統(tǒng)可以有多種不同的分布式BFD方法的具體實(shí)施方案,舉例如下實(shí)施例1在接口信息未分布的系統(tǒng)中實(shí)現(xiàn)分布式BFD方法的實(shí)施例,如圖1所示,包括如下 步驟步驟101、上層應(yīng)用協(xié)議向主控卡發(fā)送建立會(huì)話(huà)的通知消息,用于通知BFD協(xié)議建 立BFD會(huì)話(huà),該通知消息中包括VRF(virtual routing forward,虛擬路由轉(zhuǎn)發(fā))參數(shù)、本端 IP地址、對(duì)端IP地址、接口信息等參數(shù)信息。上層應(yīng)用協(xié)議向主控卡發(fā)送建立會(huì)話(huà)的通知消息,可以通過(guò)套接字的形式發(fā)送和
5接收某一具體消息實(shí)現(xiàn),也可以是通過(guò)共享內(nèi)存的方式實(shí)現(xiàn),屬于現(xiàn)有技術(shù)方案。步驟102、主控卡接收到上層應(yīng)用協(xié)議建立會(huì)話(huà)的通知消息,根據(jù)通知消息中的參 數(shù)信息(VRF參數(shù)、本端IP地址、對(duì)端IP地址、接口信息)查找是否存在對(duì)應(yīng)的會(huì)話(huà),如果 存在則結(jié)束,如果不存在,主控卡則執(zhí)行步驟303。步驟103、主控卡根據(jù)建立會(huì)話(huà)的通知消息中的接口信息獲取線(xiàn)卡信息,根據(jù)對(duì)端 IP地址獲取BFD控制報(bào)文的鏈路信息。本步驟中,線(xiàn)卡信息包括報(bào)文發(fā)送的槽位號(hào)、發(fā)送和 接收?qǐng)?bào)文的端口號(hào)等,從該線(xiàn)卡信息中可以唯一確定具有會(huì)話(huà)建立和BFD會(huì)話(huà)控制權(quán)的線(xiàn) 卡。另外,根據(jù)通知消息中的對(duì)端IP地址獲取BFD控制報(bào)文的鏈路信息;例如,在以太網(wǎng)設(shè) 備中需要獲取MAC (Media Access Control,介質(zhì)訪(fǎng)問(wèn)控制)地址,這包括根據(jù)本端IP地址 獲取本端的MAC地址,根據(jù)對(duì)端IP地址獲取對(duì)端的MAC地址等。步驟104、主控卡判斷能否完整獲取BFD會(huì)話(huà)所需的線(xiàn)卡信息以及控制報(bào)文鏈路 信息,如果不能則結(jié)束,如果能則執(zhí)行步驟105。步驟105、主控卡指定線(xiàn)卡信息中報(bào)文發(fā)送的槽位號(hào)對(duì)應(yīng)的線(xiàn)卡為具有會(huì)話(huà)控制 權(quán)的線(xiàn)卡,并將建立會(huì)話(huà)的通知消息和線(xiàn)卡信息發(fā)送到該指定的線(xiàn)卡。步驟106、該指定線(xiàn)卡接收到建立會(huì)話(huà)的通知消息后,建立相應(yīng)的BFD會(huì)話(huà),構(gòu)建 BFD控制報(bào)文,維護(hù)BFD會(huì)話(huà)。所述BFD會(huì)話(huà)是根據(jù)建立會(huì)話(huà)的通知消息中的參數(shù)信息進(jìn)行 建立,BFD控制報(bào)文是根據(jù)建立會(huì)話(huà)的通知消息和線(xiàn)卡信息構(gòu)建,構(gòu)建的BFD控制消息包括 BFD消息體、UDP頭部、IP頭部、鏈路層頭部。具體指定線(xiàn)卡維護(hù)BFD會(huì)話(huà)的實(shí)現(xiàn)方式又進(jìn) 一步包括(1)線(xiàn)卡啟動(dòng)BFD控制報(bào)文的發(fā)送定時(shí)器,此時(shí)由于會(huì)話(huà)處于Down狀態(tài),發(fā)送周期 為秒級(jí),發(fā)送狀態(tài)字段是Down狀態(tài)的BFD控制報(bào)文。(2)如果線(xiàn)卡接收到對(duì)端設(shè)備發(fā)送的狀態(tài)字段是Down的BFD控制報(bào)文,則控制 BFD會(huì)話(huà)狀態(tài)遷移進(jìn)入Init狀態(tài),如果接收到狀態(tài)字段是Init的BFD控制報(bào)文則控制BFD 會(huì)話(huà)狀態(tài)遷移進(jìn)入U(xiǎn)p狀態(tài),本步驟需要啟動(dòng)檢測(cè)定時(shí)器。需要說(shuō)明的是,如果接收到BFD 控制報(bào)文時(shí)BFD會(huì)話(huà)尚未建立,則直接丟棄該報(bào)文。步驟107、線(xiàn)卡控制BFD會(huì)話(huà)狀態(tài)進(jìn)入U(xiǎn)p狀態(tài)后,設(shè)定定時(shí)器檢測(cè)BFD會(huì)話(huà)狀態(tài)。步驟108、如果檢測(cè)定時(shí)器超時(shí)或BFD會(huì)話(huà)狀態(tài)遷移到Down狀態(tài),線(xiàn)卡BFD協(xié)議則 向主控卡發(fā)送故障消息。超時(shí)可能是由于檢測(cè)周期內(nèi)未收到對(duì)端設(shè)備發(fā)送的BFD控制報(bào)文 或收到錯(cuò)誤的BFD控制報(bào)文丟棄導(dǎo)致。在上述過(guò)程中,所有的BFD控制報(bào)文均無(wú)需透?jìng)鞯?主控卡,直接在線(xiàn)卡上處理完畢。步驟109、主控卡接收到BFD故障消息后,將該消息通知上層應(yīng)用協(xié)議。步驟110、上層應(yīng)用協(xié)議接收到BFD故障消息后,向主控卡發(fā)送會(huì)話(huà)刪除消息,同 時(shí)上層應(yīng)用協(xié)議也會(huì)根據(jù)自身的需要,做路徑出現(xiàn)故障時(shí)的后續(xù)操作。步驟111、主控卡接收會(huì)話(huà)刪除消息后,指令建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。步驟112、建立會(huì)話(huà)的線(xiàn)卡接收到該消息后刪除該會(huì)話(huà)。實(shí)施例2接口信息已分布的系統(tǒng)中實(shí)現(xiàn)分布式BFD方法的實(shí)施例子,如圖2所示。本實(shí)施 例適合接口信息已分布的系統(tǒng),由于接口信息已分布在各個(gè)不同的線(xiàn)卡上,故只需主控卡 根據(jù)上層應(yīng)用協(xié)議的接口信息將通知消息透?jìng)鹘o某一指定線(xiàn)卡,線(xiàn)卡完成具體的BFD會(huì)話(huà)
6的建立即可,具體包括如下的步驟步驟201、上層應(yīng)用協(xié)議向主控卡發(fā)送建立會(huì)話(huà)的通知消息,用于通知BFD協(xié)議建 立BFD會(huì)話(huà),該通知消息中包括VRF(virtual routing forward,虛擬路由轉(zhuǎn)發(fā))參數(shù)、本端 IP地址、對(duì)端IP地址、接口信息等參數(shù)信息。上層應(yīng)用協(xié)議向主控卡發(fā)送建立會(huì)話(huà)的通知消息,可以通過(guò)套接字的形式發(fā)送和 接收某一具體消息實(shí)現(xiàn),也可以是通過(guò)共享內(nèi)存的方式實(shí)現(xiàn),此步驟的實(shí)現(xiàn)是現(xiàn)有技術(shù)方案。步驟202、主控卡接收到建立會(huì)話(huà)的通知消息后,根據(jù)通知消息中的參數(shù)信息查詢(xún) 是否存在相應(yīng)的會(huì)話(huà)。如果存在對(duì)應(yīng)的會(huì)話(huà),則結(jié)束;否則,執(zhí)行步驟203。本步驟中的參 數(shù)信息同步驟102,包括VRF參數(shù)、本端IP地址、對(duì)端IP地址、接口信息等。步驟203、主控卡根據(jù)建立會(huì)話(huà)的通知消息中的接口信息獲取線(xiàn)卡信息,對(duì)于本實(shí) 施例而言,只需獲取報(bào)文發(fā)送的槽位號(hào)即可,不需要獲取線(xiàn)卡其他方面的信息;主控卡根據(jù) 報(bào)文發(fā)送的的槽位號(hào),指定和該報(bào)文發(fā)送的槽位號(hào)對(duì)應(yīng)的線(xiàn)卡為具有BFD會(huì)話(huà)控制權(quán)的線(xiàn) 卡,并發(fā)送建立會(huì)話(huà)的通知消息到該線(xiàn)卡。步驟204、線(xiàn)卡塊接收到會(huì)話(huà)建立消息后,完成相應(yīng)的會(huì)話(huà)建立。該線(xiàn)卡完成BFD 控制報(bào)文的構(gòu)建和收發(fā),以及路徑的檢測(cè),其中BFD控制報(bào)文構(gòu)建所需要的信息直接從本 線(xiàn)卡上獲取即可。此時(shí)構(gòu)建的BFD控制報(bào)文包括BFD控制消息體、UDP頭部、IP頭部。線(xiàn) 卡將BFD控制報(bào)文從指定的接口發(fā)送出去,所述指定的接口信息是從主控卡通知的會(huì)話(huà)建 立消息中獲取,通常,這一接口信息可以是主控卡通知到線(xiàn)卡的接口索引或接口名稱(chēng),也可 以是線(xiàn)卡直接根據(jù)BFD會(huì)話(huà)建立消息中的IP地址獲取。步驟205、線(xiàn)卡接收BFD控制報(bào)文,控制BFD會(huì)話(huà)狀態(tài)的遷移。線(xiàn)卡設(shè)定定時(shí)器檢 測(cè)BFD會(huì)話(huà)狀態(tài)。步驟206、如果線(xiàn)卡在檢測(cè)周期內(nèi)未接收到上述會(huì)話(huà)的BFD控制報(bào)文,定時(shí)器模塊 檢測(cè)超時(shí)或BFD會(huì)話(huà)狀態(tài)遷移到Down狀態(tài),則執(zhí)行步驟207。步驟207、線(xiàn)卡發(fā)送BFD故障消息到主控卡。步驟208、主控卡接收到故障消息后,透?jìng)魉龉收舷⒌缴蠈討?yīng)用協(xié)議。步驟209、層應(yīng)用協(xié)議接收到BFD故障消息后,向主控卡發(fā)送會(huì)話(huà)刪除消息,同時(shí) 上層應(yīng)用協(xié)議也會(huì)根據(jù)自身的需要,做路徑出現(xiàn)故障時(shí)的后續(xù)操作。后續(xù)過(guò)程與實(shí)施例1 同樣的刪除操作,本實(shí)施例不再贅述。顯然,在本發(fā)明中的所有BFD控制報(bào)文的收發(fā)只在線(xiàn)卡上進(jìn)行,因而可以快速 高效的檢測(cè),不會(huì)影響主控卡上控制平面的穩(wěn)定。在雙主控的設(shè)備中如果設(shè)備由于人為 原因或故障原因發(fā)生主從切換事件時(shí),其數(shù)據(jù)業(yè)務(wù)保持不中斷,目前提出了了優(yōu)雅重啟 (graceful restart,GR)的實(shí)現(xiàn)方案。由于檢測(cè)只在線(xiàn)卡上進(jìn)行,不會(huì)影響B(tài)FD控制報(bào)文 的收發(fā),不會(huì)引起線(xiàn)卡上BFD狀態(tài)的切換,因而也可以保障GR過(guò)程的成功。本發(fā)明還提出了一種分布式設(shè)備,如圖3所示,為一實(shí)施例的系統(tǒng)框圖,包括一主 控卡1和多個(gè)線(xiàn)卡2,主控卡1屬于設(shè)備中的控制部分,線(xiàn)卡2主要運(yùn)行設(shè)備中轉(zhuǎn)發(fā)部分, 主控卡1和線(xiàn)卡2之間建立了卡間通道,用于主控卡1和線(xiàn)卡2之間消息的傳輸。所述主 控卡1包括第一通知模塊11,接口板2包括與第一通知模塊連接的第二通知模塊21和BFD 會(huì)話(huà)模塊22。
所述第一通知模塊11用于接收會(huì)話(huà)建立/刪除消息,并通知某一線(xiàn)卡建立相應(yīng)的 會(huì)話(huà);同時(shí),負(fù)責(zé)將線(xiàn)卡的故障消息通知給各個(gè)上層應(yīng)用協(xié)議。第一通知模塊11接收到的 BFD事件消息由第二通知模塊21發(fā)送;同理,第二通知模塊21接收到的消息也是第一通知 模塊11發(fā)送。所述第二通知模塊21,用于接收第一通知模塊11的會(huì)話(huà)建立/刪除消息以及在檢 測(cè)到故障發(fā)生時(shí)向主控卡發(fā)送故障消息。第二通知模塊21負(fù)責(zé)所在線(xiàn)卡上BFD的狀態(tài)的 通告,通告的事件主要有Down狀態(tài)到Up狀態(tài)的切換以及Up狀態(tài)到Down狀態(tài)的切換,通告 的對(duì)象是主控卡的第一通知模塊11。所述BFD會(huì)話(huà)模塊22用于維護(hù)BFD會(huì)話(huà),負(fù)責(zé)BFD控制報(bào)文的構(gòu)建和收發(fā),即控 制BFD會(huì)話(huà)狀態(tài)的遷移以及檢測(cè)路徑故障,以及BFD會(huì)話(huà)的建立/刪除。當(dāng)線(xiàn)卡上BFD會(huì)話(huà)模塊22檢測(cè)到路徑出現(xiàn)故障時(shí),通過(guò)第一通知模塊21發(fā)送故 障消息到主控卡上的第一通知模塊11,主控卡第一通知模塊11將故障消息通知到各個(gè)上 層應(yīng)用協(xié)議,各個(gè)上層應(yīng)用協(xié)議執(zhí)行后續(xù)刪除會(huì)話(huà)等操作。由于所有的BFD控制報(bào)文的生成、收發(fā)均在線(xiàn)卡上進(jìn)行,減少了主控卡和卡間通 信及主控卡的負(fù)擔(dān),維護(hù)了設(shè)備的穩(wěn)定;且主控卡上1只有第一通知模塊11,實(shí)現(xiàn)起來(lái)較為 簡(jiǎn)單,同時(shí)節(jié)約了系統(tǒng)資源。如圖4所示,為一較佳實(shí)施例的設(shè)備框圖,以包括一個(gè)主控卡1和一個(gè)線(xiàn)卡2為 例所述主控卡1除了包括第一通知模塊11以外,還包括和第一通知模塊連接的上層 應(yīng)用協(xié)議模塊12,上層應(yīng)用協(xié)議模塊12負(fù)責(zé)發(fā)送BFD會(huì)話(huà)建立/刪除消息以及響應(yīng)第一通 知模塊11的故障消息。所述線(xiàn)卡2中的BFD會(huì)話(huà)模塊22,進(jìn)一步可以分為報(bào)文收發(fā)模塊221、定時(shí)器模 塊222、狀態(tài)控制模塊223,其中報(bào)文收發(fā)模塊221,負(fù)責(zé)BFD控制報(bào)文的收發(fā),其中發(fā)送的BFD控制報(bào)文是由該模 塊構(gòu)建,構(gòu)建的報(bào)文包括BFD消息體、UDP頭部、IP頭部甚至鏈路頭部,構(gòu)建完控制報(bào)文后發(fā) 送到對(duì)端設(shè)備。接收?qǐng)?bào)文的過(guò)程,當(dāng)接收到BFD控制報(bào)文后,需查找是否有對(duì)應(yīng)的會(huì)話(huà),如 果沒(méi)有,則丟棄,如果存在則需要重置檢測(cè)定時(shí)器。定時(shí)器模塊222,主要有發(fā)送定時(shí)器和檢測(cè)定時(shí)器,分別負(fù)責(zé)BFD控制報(bào)文定時(shí)發(fā) 送和報(bào)文超時(shí)檢測(cè)。一般來(lái)說(shuō),在BFD狀態(tài)是Down狀態(tài)時(shí),報(bào)文發(fā)送周期在1秒以上,當(dāng)接 收到對(duì)端發(fā)送過(guò)來(lái)的報(bào)文后,根據(jù)協(xié)商后的時(shí)間周期定時(shí)報(bào)文發(fā)送,同時(shí)啟動(dòng)檢測(cè)定時(shí)器, 檢測(cè)定時(shí)器的檢測(cè)時(shí)間也是由兩端協(xié)商的參數(shù)確定。關(guān)于定時(shí)器的時(shí)間參數(shù)確定方式,是 現(xiàn)有的技術(shù)方案。狀態(tài)控制模塊223,負(fù)責(zé)響應(yīng)外部事件并進(jìn)行BFD會(huì)話(huà)狀態(tài)的遷移,外部事件主要 有接收到對(duì)端會(huì)話(huà)發(fā)送的BFD控制報(bào)文、檢測(cè)定時(shí)器檢測(cè)超時(shí)、手動(dòng)關(guān)閉會(huì)話(huà)等。BFD會(huì)話(huà) 狀態(tài)的切換主要有=Down狀態(tài)到Init狀態(tài),Init狀態(tài)到Up狀態(tài)以及Up狀態(tài)到Down狀態(tài)。 關(guān)于狀態(tài)機(jī)的驅(qū)動(dòng)實(shí)現(xiàn)方式,是現(xiàn)有的技術(shù)標(biāo)準(zhǔn),不再贅述。需要說(shuō)明的是,以上實(shí)施例只是本發(fā)明的特定實(shí)施例。顯然,可以對(duì)本實(shí)施例進(jìn)行 修改、等同替換等其他的一些變化,例如線(xiàn)卡上BFD控制報(bào)文的收發(fā)可以通過(guò)其他的一些 方式實(shí)現(xiàn)。因此,此特定實(shí)施例的描述不作為限定本發(fā)明的保護(hù)范圍。
8
權(quán)利要求
一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,包括以下步驟主控卡接收到上層應(yīng)用協(xié)議建立會(huì)話(huà)的通知消息后,通知本端一線(xiàn)卡建立會(huì)話(huà);所述線(xiàn)卡運(yùn)行BFD協(xié)議,完成BFD會(huì)話(huà)的建立和維護(hù);當(dāng)檢測(cè)到出現(xiàn)故障時(shí),由該建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。
2.如權(quán)利要求1所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,所述該建立會(huì)話(huà)的線(xiàn) 卡刪除會(huì)話(huà),包括如下步驟a、線(xiàn)卡檢測(cè)到故障后向主控卡發(fā)送故障消息;b、主控卡收到BFD故障消息后,將該消息通知上層應(yīng)用協(xié)議;c、上層應(yīng)用協(xié)議接收到BFD故障消息后,向主控卡發(fā)送會(huì)話(huà)刪除消息;d、主控卡接收會(huì)話(huà)刪除消息后,指定該建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。
3.如權(quán)利要求1或2所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,所述通知消息包括 虛擬路由轉(zhuǎn)發(fā)參數(shù)、本端IP地址、對(duì)端IP地址、接口信息等參數(shù)信息。
4.如權(quán)利要求3所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,主控卡根據(jù)該接口信 息獲取線(xiàn)卡信息,根據(jù)該線(xiàn)卡信息唯一確定具有會(huì)話(huà)控制權(quán)的線(xiàn)卡。
5.如權(quán)利要求4所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,在接口信息未分布的 系統(tǒng)中,所述主控卡根據(jù)所述接口信息獲取的線(xiàn)卡信息為報(bào)文發(fā)送的槽位號(hào)、發(fā)送和接收 報(bào)文的端口號(hào)。
6.如權(quán)利要求4所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的方法,其特征在于,在接口信息已分布的 系統(tǒng)中,所述主控卡根據(jù)所述接口信息獲取的線(xiàn)卡信息為報(bào)文發(fā)送的槽位號(hào)。
7.分布式雙向轉(zhuǎn)發(fā)檢測(cè)的設(shè)備,包括一個(gè)主控卡和至少一個(gè)線(xiàn)卡,其特征在于,所述主控卡包括第一通知模塊,用于接收上層應(yīng)用協(xié)議會(huì)話(huà)建立/刪除消息并將這一 消息通告到線(xiàn)卡BFD協(xié)議,還用于接收線(xiàn)卡BFD協(xié)議故障消息并將這一消息通告到上層應(yīng) 用協(xié)議;所述線(xiàn)卡包括第二通知模塊和BFD會(huì)話(huà)模塊;所述第二通知模塊,用于接收主控卡的 會(huì)話(huà)建立/刪除消息以及檢測(cè)到故障發(fā)生時(shí)向主控卡發(fā)送故障消息;所述BFD會(huì)話(huà)模塊用 于維護(hù)BFD會(huì)話(huà)。
8.如權(quán)利要求7所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的設(shè)備,其特征在于,所述主控卡還包括上 層應(yīng)用協(xié)議模塊,與所述第一通知模塊連接,用于通知所述第一通知模塊建立/刪除BFD會(huì) 話(huà)。
9.如權(quán)利要求7或8所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的設(shè)備,其特征在于,所述BFD會(huì)話(huà)模塊 包括報(bào)文收發(fā)模塊、定時(shí)器模塊、狀態(tài)控制模塊;所述報(bào)文收發(fā)模塊,用于BFD控制報(bào)文的接收和發(fā)送;所述定時(shí)器模塊,用于路徑定時(shí)檢測(cè)和報(bào)文定時(shí)發(fā)送;所述狀態(tài)控制模塊,用于BFD狀態(tài)的運(yùn)行和維護(hù)。
10.如權(quán)利要求9所述分布式雙向轉(zhuǎn)發(fā)檢測(cè)的設(shè)備,其特征在于,所述報(bào)文收發(fā)模塊還 用于當(dāng)接收到BFD控制報(bào)文后,需查找是否有對(duì)應(yīng)的會(huì)話(huà),如果沒(méi)有則丟棄,否則需要重置 檢測(cè)定時(shí)器。
全文摘要
本發(fā)明公開(kāi)了一種分布式雙向轉(zhuǎn)發(fā)檢測(cè)方法,包括以下步驟主控卡接收到上層應(yīng)用協(xié)議建立會(huì)話(huà)的通知消息后,通知本端某一線(xiàn)卡建立會(huì)話(huà);所述線(xiàn)卡運(yùn)行BFD協(xié)議,完成BFD會(huì)話(huà)的建立和維護(hù);當(dāng)檢測(cè)到出現(xiàn)故障時(shí),由該建立會(huì)話(huà)的線(xiàn)卡刪除會(huì)話(huà)。本發(fā)明中所有的BFD控制報(bào)文的生成、收發(fā)均在線(xiàn)卡上進(jìn)行,減少了卡間通信及主控卡的負(fù)擔(dān),維護(hù)了系統(tǒng)的穩(wěn)定;而且由于BFD狀態(tài)機(jī)的運(yùn)行和維護(hù)只在線(xiàn)卡上進(jìn)行,主控卡上只有通知模塊,實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單,同時(shí)節(jié)約了系統(tǒng)資源。
文檔編號(hào)H04L12/56GK101895437SQ20101020705
公開(kāi)日2010年11月24日 申請(qǐng)日期2010年6月23日 優(yōu)先權(quán)日2010年6月23日
發(fā)明者徐海兵, 李永合 申請(qǐng)人:邁普通信技術(shù)股份有限公司