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