專利名稱::邊界網(wǎng)關(guān)協(xié)議路由決策方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信網(wǎng)絡(luò)中的路由技術(shù),尤其涉及一種邊界網(wǎng)關(guān)協(xié)議(BGP,BorderGatewayProtocol)^各由決策方法及裝置。
背景技術(shù):
:BGP是一種用于自治系統(tǒng)間的動態(tài)路由協(xié)議,其主要作用是在自治系統(tǒng)之間交換網(wǎng)絡(luò)可達(dá)性信息。目前,常用的BGP報文主要包括以下5種初始化(Open)報文、更新(Update)報文、通知(Notification)報文、保持激活(KeepAlive)報文和路由刷新(RouteRefresh)報文。其中,BGPUpdate報文用于在建立BGP連接的兩個相鄰實體(也稱為BGP對等體或鄰居)之間傳遞路由信息,它不僅可以發(fā)布可達(dá)路由信息,也可以撤銷不可達(dá)路由信息。當(dāng)需要發(fā)送的路由數(shù)目較多,一個BGPUpdate報文裝不下時,可以通過多個BGPUpdate凈艮文來發(fā)送。在現(xiàn)有的BGP協(xié)議中,運行BGP協(xié)議的設(shè)備在收到任何一個鄰居發(fā)來的BGPUpdate報文后,都會觸發(fā)路由管理模塊(RM,RouteManagement)進(jìn)行BGP路由決策(RouteDecision)。比如,參見圖l所示的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)備A和設(shè)備X、Y、Z建立BGP連接之后,X、Y、Z都會向A發(fā)送一個攜帶路由N的BGPUpdate報文,A在每收到一個BGPUpdate報文后,都會執(zhí)行BGP路由決策?,F(xiàn)有的這種以收到BGPUpdate報文作為路由決策觸發(fā)條件的做法,存在以下缺點在BGP鄰居較多或者網(wǎng)絡(luò)拓樸不穩(wěn)定或者路由數(shù)目很多需要分多個BGPUpdate報文發(fā)送的情況下,設(shè)備會收到很多BGPUpdate報文,此時如果以收到BGPUpdate報文作為路由決策的觸發(fā)條件,則顯然會導(dǎo)致設(shè)備頻繁地進(jìn)行BGP路由決策,從而占用設(shè)備大量的內(nèi)存和CPU資源,影響設(shè)備的轉(zhuǎn)發(fā)性能和穩(wěn)定性。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提供一種BGP路由決策方法及裝置,減少BGP路由決策的資源占用。為達(dá)到上述目的,本發(fā)明提供的技術(shù)方案如下一種邊界網(wǎng)關(guān)協(xié)議BGP路由決策方法,該方法包括-沒置一種在BGP路由更新完畢后向鄰居發(fā)送的BGP決策才艮文,并^:置在BGP鄰居建立后啟動的決策等待定時器Tl,設(shè)備根據(jù)鄰居發(fā)送的BGP決策報文和設(shè)置的定時器T1進(jìn)行BGP路由決策。所述設(shè)備根據(jù)鄰居發(fā)送的BGP決策報文和設(shè)置的定時器Tl進(jìn)行BGP路由決策包括a、在定時器Tl超時之前,判斷是否收到所有鄰居發(fā)送的BGP決策報文,如果收到所有,則立即執(zhí)行BGP路由決策;如果只收到部分,則等待定時器Tl超時后再執(zhí)行BGP路由決策;如果未收到任何BGP決策報文,則將定時器T1清零并重啟,返回執(zhí)行步驟a。所述執(zhí)行BGP路由決策后進(jìn)一步包括將定時器T1清零并重啟,然后返回執(zhí)行步驟a。進(jìn)一步設(shè)置決策間隔定時器T2,所述執(zhí)行BGP路由決策后進(jìn)一步包括將定時器T1清零,并啟動定時器T2。所述啟動定時器T2后進(jìn)一步包括b、判斷在定時器T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則等待定時器T2超時后再執(zhí)行BGP路由決策,然后將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行步驟a;如果沒有收到任何BGP決策報文,則將定時器T2清零停止,并重新啟動定時器T1,返回執(zhí)行步驟3。所述BGP決策報文包括報文頭和報文兩部分,其中,才艮文頭包括標(biāo)記符Marker、長度Length和類型Type,報文部分包括地址族標(biāo)識符AFI、保留區(qū)域Res.和后繼地址族標(biāo)識符SAFL一種BGP路由決策裝置,該裝置包括報文接收單元、路由決策單元以及在BGP鄰居建立后啟動的決策等待定時器T1,其中,才艮文接收單元,用于接收BGP鄰居在BGP路由更新完畢后發(fā)送的BGP決策報文,并將收到的BGP決策報文發(fā)送給路由決策單元;路由決策單元,用于根據(jù)收到的BGP決策報文和定時器Tl進(jìn)行BGP路由決策。所述路由決策單元判斷在定時器Tl超時前是否收到所有鄰居發(fā)送的BGP決策報文,如果收到所有,則立即執(zhí)行BGP路由決策;如果只收到部分,則等待定時器Tl超時后再執(zhí)行BGP路由決策;如果未收到任何BGP決策報文,則將定時器T1清零并重啟,返回執(zhí)行所述判斷操作。所述路由決策單元在執(zhí)行BGP路由決策后,進(jìn)一步將定時器Tl清零重啟,并返回執(zhí)行所述判斷操作。該裝置進(jìn)一步包括決策間隔定時器T2;所述路由決策單元進(jìn)一步用于,在執(zhí)行BGP路由決策后將定時器Tl清零,并啟動定時器T2,然后判斷在定時器T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則等待定時器T2超時后再執(zhí)行BGP路由決策,然后將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作;如果沒有收到任何BGP決策報文,則將定時器T2清零停止,并重新啟動定時器T1,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作。由此可見,在本發(fā)明所提供的技術(shù)方案中,BGP路由決策并不是以收到BGPUpdate報文作為觸發(fā)條件的,而是根據(jù)新增的BGP決策報文和設(shè)置的決策等待定時器進(jìn)行的,這樣可以避免設(shè)備因不斷收到BGPUpdate報文而頻繁地進(jìn)行BGP路由決策,從而減少了BGP路由決策對設(shè)備內(nèi)存和CPU資源的占用,保證了設(shè)備的轉(zhuǎn)發(fā)性能和穩(wěn)定性。圖1為現(xiàn)有技術(shù)中的網(wǎng)絡(luò)結(jié)構(gòu)示意圖2為本發(fā)明實施例中的BGP路由決策流程圖3為本發(fā)明實施例中的BGP路由決策裝置結(jié)構(gòu)示意圖。具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面參照附圖并舉實施例,對本發(fā)明作進(jìn)一步詳細(xì)說明。為了克服現(xiàn)有技術(shù)中的問題,本發(fā)明需要在現(xiàn)有的5種BGP報文基礎(chǔ)上增加一種新的BGP報文BGP決策報文。任何一個運行BGP協(xié)議的設(shè)備在BGP路由更新完畢后即向鄰居發(fā)送完所有BGPUpdate報文后,都要向鄰居發(fā)送BGP決策報文,以表示自身路由更新完畢。需要說明的是,在鄰居剛建立時,即使沒有路由更新,也要向鄰居發(fā)送一次BGP決策報文;后續(xù)過程中,只在每次完成路由更新后發(fā)送BGP決策報文,如果沒有路由更新,則不發(fā)送BGP決策報文。BGP決策報文包括報文頭和報文兩部分。BGP報文頭格式如表1所示,包括標(biāo)記符(Marker)、長度(Length)和類型(Type),其中,Marker共16個字節(jié),一般為全F;Length表示BGP報文長度,2個字節(jié),大d、一般位于19和4096之間;Type表示BGP報文類型,1個字節(jié),現(xiàn)有的5種BGP才艮文Open、Update、Notification、KeepAlive和RouteRefresh的Type值分別為1、2、3、4、5,為與現(xiàn)有的BGP報文區(qū)分,新增BGP決策報文的Type只要不同于已被使用的Type值即可,比如,令BGP決策報文的Type為6。表2示出了BGP決策報文除去BGP報文頭后的報文格式,包括地址族標(biāo)識符(AFI)、保留區(qū)域(Res.)和后繼地址族標(biāo)識符(SAFI),其中,AFI和SAFI的長度分別為16位和8位,它們的意義和編碼方式與RFC2858中定義的相同,可以擴展支持各個協(xié)議,如因特網(wǎng)協(xié)議4(IPv4)、因特網(wǎng)協(xié)議6(IPv6)、多協(xié)議擴展BGP(MBGP)等;Res.長度為8位,發(fā)送方將它置為0,接收方忽略該域的信息。<table>tableseeoriginaldocumentpage8</column></row><table>表lBGP報文頭格式<image>imageseeoriginaldocumentpage8</image>表2BGP決策報文的報文格式除了新增BGP決策報文之外,本發(fā)明還需要設(shè)置兩個定時器決策等待定時器T1和決策間隔定時器T2,T2的定時時長通常大于Tl,在具體實現(xiàn)時,可以將T2的定時時長設(shè)置在分鐘級,如2分鐘;將Tl的定時時長i殳置在秒級,如10秒,定時器Tl在BGP鄰居建立后啟動。在本發(fā)明中,BGP路由決策并不是在收到BGPUpdate報文便立即執(zhí)行,而是根據(jù)BGP決策報文和定時器T1、T2進(jìn)行。圖2示出了本發(fā)明實施例中利用BGP決策報文及定時器Tl、T2進(jìn)行BGP路由決策的流程圖,包括以下步驟步驟201:BGP鄰居建立后,i殳備立即啟動定時器Tl。對于有多個鄰居的情況,設(shè)備只在第一個BGP鄰居建立后才啟動定時器Tl,而不是在每個BGP鄰居建立后都啟動定時器T1。步驟202:在定時器Tl超時之前,設(shè)備判斷是否收到所有鄰居發(fā)送的BGP決策報文,如果收齊所有鄰居發(fā)送的BGP決策報文,則執(zhí)行步驟203;如果在定時器Tl超時之前,設(shè)備只收到部分鄰居發(fā)送的BGP決策報文(這種情況可能會在以下場景出現(xiàn)比如,某些鄰居一直沒有進(jìn)行路由更新而不發(fā)送BGP決策報文,或者鄰居發(fā)送了BGP決策報文但因網(wǎng)絡(luò)堵塞導(dǎo)致設(shè)備接收不到),則執(zhí)行步驟204;如果在定時器Tl超時之前,設(shè)備沒有收到任何鄰居發(fā)送的BGP決策報文,則執(zhí)行步驟205。步驟203:設(shè)備在收集齊所有鄰居發(fā)送的BGP決策報文后,立即執(zhí)行BGP路由決策,并將定時器T1清零停止,同時啟動定時器T2,然后執(zhí)行步驟206。步驟204:設(shè)備等待定時器Tl超時后,才執(zhí)行BGP路由決策,并將定時器Tl清零停止,同時啟動定時器T2,然后執(zhí)行步驟206。步驟205:設(shè)備將定時器Tl清零并重新開始計時,返回執(zhí)行步驟202。步驟206:定時器T2啟動后,設(shè)備判斷在T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則執(zhí)行步驟207;如果沒有收到任何鄰居發(fā)送的BGP決策報文,則執(zhí)行步驟208。步驟207:設(shè)備在T2超時之前收到鄰居發(fā)送的BGP決策報文后,不立即進(jìn)行BGP路由決策,而是將報文保留在本地,等T2超時之后才執(zhí)行BGP路由決策,同時將T2清零停止,并重新啟動定時器T1,返回執(zhí)行步驟202。步驟208:設(shè)備將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行步驟202。需要說明的是,本發(fā)明中也可以只設(shè)置一個決策等待定時器Tl,在步驟203和204中執(zhí)行BGP路由決策之后,直接將定時器T1清零并重啟,然后返回執(zhí)行步驟202。在圖2所示路由決策過程中,如果設(shè)備有新的BGP連接建立,即又有新的BGP鄰居向設(shè)備發(fā)送BGP決策報文,則設(shè)備按照圖2所示的流程處理收到的BGP決策報文。對于BGP軟重啟的情況即通過BGPRefresh報文主動請求鄰居更新路由的情況,也是按照圖2所示流程進(jìn)行處理。另外需要說明的是,本發(fā)明所提供的BGP路由決策方案不僅適用于BGP協(xié)議本身,還適用于各種擴展BGP協(xié)議,如MBGP、BGP4+等。相應(yīng)地,本發(fā)明還提供了一種BGP路由決策裝置,該裝置可位于運行BGP協(xié)議的設(shè)備中。圖3示出了該裝置的示例性結(jié)構(gòu),包括報文接收單元、路由決策單元以及在BGP鄰居建立后啟動的決策等待定時器Tl,其中,報文接收單元,用于接收BGP鄰居在BGP路由更新完畢后發(fā)送的BGP決策報文,并將收到的BGP決策報文發(fā)送給路由決策單元;路由決策單元,用于根據(jù)收到的BGP決策報文和定時器Tl進(jìn)行BGP路由決策。較佳地,所述路由決策單元判斷在定時器Tl超時前是否收到所有鄰居發(fā)送的BGP決策報文,如果收到所有,則立即執(zhí)行BGP路由決策;如果只收到部分,則等待定時器T1超時后再執(zhí)行BGP路由決策;如果未收到任何BGP決策報文,則將定時器T1清零并重啟,返回執(zhí)行所述判斷操作。較佳地,所述路由決策單元在執(zhí)行BGP路由決策后,進(jìn)一步將定時器Tl清零重啟,并返回執(zhí)行所述判斷操作?;蛘撸贐GP路由決策裝置進(jìn)一步設(shè)置決策間隔定時器T2;所述路由決策單元進(jìn)一步用于,在執(zhí)行BGP路由決策后將定時器T1清零,并啟動定時器T2,然后判斷在定時器T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則等待定時器T2超時后再執(zhí)行BGP路由決策,然后將定時器T2清零停止,并重新啟動定時器T1,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作;如果沒有收到任何BGP決策報文,則將定時器T2清零停止,并重新啟動定時器T1,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作。以上所述對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步的詳細(xì)說明,所應(yīng)理解的是,以上所述并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種邊界網(wǎng)關(guān)協(xié)議BGP路由決策方法,其特征在于,該方法包括設(shè)置一種在BGP路由更新完畢后向鄰居發(fā)送的BGP決策報文,并設(shè)置在BGP鄰居建立后啟動的決策等待定時器T1,設(shè)備根據(jù)鄰居發(fā)送的BGP決策報文和設(shè)置的定時器T1進(jìn)行BGP路由決策。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)備根據(jù)鄰居發(fā)送的BGP決策報文和設(shè)置的定時器Tl進(jìn)行BGP路由決策包括a、在定時器T1超時之前,判斷是否收到所有鄰居發(fā)送的BGP決策報文,如果收到所有,則立即執(zhí)行BGP路由決策;如果只收到部分,則等待定時器Tl超時后再執(zhí)行BGP路由決策;如果未收到任何BGP決策寺艮文,則將定時器Tl清零并重啟,返回執(zhí)行步驟a。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,所述執(zhí)行BGP路由決策后進(jìn)一步包括將定時器T1清零并重啟,然后返回執(zhí)行步驟a。4、根據(jù)權(quán)利要求2所述的方法,其特征在于,進(jìn)一步設(shè)置決策間隔定時器T2,所述執(zhí)行BGP路由決策后進(jìn)一步包括將定時器T1清零,并啟動定時器T2。5、根據(jù)權(quán)利要求4所述的方法,其特征在于,所述啟動定時器T2后進(jìn)一步包括b、判斷在定時器T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則等待定時器T2超時后再執(zhí)行BGP路由決策,然后將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行步驟a;如果沒有收到任何BGP決策報文,則將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行步驟a。6、根據(jù)權(quán)利1至5任一項所述的方法,其特征在于,所述BGP決策報文包括報文頭和報文兩部分,其中,報文頭包括標(biāo)記符Marker、長度Length和類型Type,報文部分包括地址族標(biāo)識符AFI、保留區(qū)域Res.和后繼地址族標(biāo)識符SAFI。7、一種BGP路由決策裝置,其特征在于,該裝置包括報文接收單元、路由決策單元以及在BGP鄰居建立后啟動的決策等待定時器Tl,其中,報文接收單元,用于接收BGP鄰居在BGP路由更新完畢后發(fā)送的BGP決策報文,并將收到的BGP決策報文發(fā)送給路由決策單元;路由決策單元,用于根據(jù)收到的BGP決策報文和定時器Tl進(jìn)行BGP路由決策。8、根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述路由決策單元判斷在定時器Tl超時前是否收到所有鄰居發(fā)送的BGP決策報文,如果收到所有,則立即執(zhí)行BGP路由決策;如果只收到部分,則等待定時器T1超時后再執(zhí)行BGP路由決策;如果未收到任何BGP決策報文,則將定時器T1清零并重啟,返回執(zhí)行所述判斷操作。9、根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述路由決策單元在執(zhí)行BGP路由決策后,進(jìn)一步將定時器T1清零重啟,并返回執(zhí)行所述判斷操作。10、才艮據(jù)權(quán)利要求8所述的裝置,其特征在于,該裝置進(jìn)一步包括決策間隔定時器T2;所述路由決策單元進(jìn)一步用于,在執(zhí)行BGP路由決策后將定時器Tl清零,并啟動定時器T2,然后判斷在定時器T2超時之前是否收到鄰居發(fā)送的BGP決策報文,如果收到,則等待定時器T2超時后再執(zhí)行BGP路由決策,然后將定時器T2清零停止,并重新啟動定時器Tl,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作;如果沒有收到任何BGP決策報文,.則將定時器T2清零停止,并重新啟動定時器T1,返回執(zhí)行所述判斷是否收到所有鄰居發(fā)送的BGP決策報文的操作。全文摘要本發(fā)明提供了一種邊界網(wǎng)關(guān)協(xié)議BGP路由決策方法,該方法包括設(shè)置一種在BGP路由更新完畢后向鄰居發(fā)送的BGP決策報文,并設(shè)置在BGP鄰居建立后啟動的決策等待定時器T1,設(shè)備根據(jù)鄰居發(fā)送的BGP決策報文和設(shè)置的定時器T1進(jìn)行BGP路由決策。另外,本發(fā)明還提供了一種BGP路由決策裝置。利用本發(fā)明所提供的技術(shù)方案,能夠減少BGP路由決策的資源占用。文檔編號H04L12/56GK101304379SQ200810115928公開日2008年11月12日申請日期2008年6月30日優(yōu)先權(quán)日2008年6月30日發(fā)明者程鋒章申請人:杭州華三通信技術(shù)有限公司