專利名稱::互聯網路由中的穩定路由選擇方法
技術領域:
:本發明涉及互聯網
技術領域:
,尤其是涉及互聯網路由中的穩定路由選擇方法,解決邊界網關協議(BorderGatewayProtocol,BGP)的收斂性和穩定性問題。
背景技術:
:在互聯網中,網絡故障頻繁,而現有的域間路由協議(BorderGatewayProtocol,BGP)并不能很好地適應網絡故障的解決方案。在現有技術中,域間路由協議將經歷一個較長的無效路由搜索過程,這導致了在互聯網中發生大量的數據包丟包現象。為了緩解或者解決BGP路由慢收斂問題,現有技術還提出了很多改進的BGP方案。但這些方案由于本身設計的缺點并不能有效地提高BGP的性能。例如,RCN和EPIC通過在BGP通告消息中增加路由變化的根源信息加快路由的收斂,但它們的改進性能很大程度上依賴于網絡的拓樸結構,而且這些方案并不支持增量部署;CA方案通過檢測路由通告中的無效路由加快路由收斂,但這個方案給路由器增加了很大的計算負載;GhostFlushing方案通過在通告新路由前撤銷舊路由加快路由收斂,但無法避免路由的無效搜索過程,此外,GhostFlushing還增加了很多BGP通告消息,而且這個方案會惡化failover時的收斂性能。此外,隨著互聯網技術的發展,新的互聯網應用以及互聯網用戶數量的增長均對互聯網網絡的收斂速度和通信負荷能力提出了更高的要求,這進一步增加了現有的BGP的負荷問題。
發明內容本發明的目的是解決上述缺陷之一,特別是解決BGP的路徑搜索時間長、路由的傳播時間長以及路由策略導致的路由不收斂問題,從而有效提高BGP的性能。為解決上述問題,本發明一方面提出一種互聯網路由中的穩定路由選擇方法,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當前路由,則啟動啟發式域間路由協議sBGP重新選擇路由;根據所述sBGP選擇可選的最穩定路由作為當前路由。作為本發明的一個實施例,根據所述sBGP選擇可選的最穩定路由作為當前路由包括判斷當前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS;如果包含有路由更新中的故障信息AS,則在輸入路由信息庫RIB-IN中選擇存在時間最長的路由;判斷所述存在時間最長的路由的存在時間是否大于閾值;如果所述存在時間最長的路由的存在時間是否大于閾值,則進一步判斷所述存在時間最長的路由是否包含故障鏈路;如果不包含故障鏈路,則將所述存在時間最長的路由作為當前路由。作為本發明的一個實施例,還包括如果所述存在時間最長的路由的存在時間小于閾值,則從所述RIB-IN中選擇最近通告的路由作為當前路由。作為本發明的一個實施例,還包括如果所述存在時間最長的路由包含故障鏈5^,則在所述RIB-IN中刪除所述存在時間最長的路由,并重新選才奪最穩定^各由。作為本發明的一個實施例,所述路由通告中包含有標識路由變化事件源的屬性。作為本發明的一個實施例,在所述RIB-IN中標識每條路由學習到的時間。作為本發明的一個實施例,還包括判斷穩定路由選擇計時器超時時5間內路由是否發生變化;如果穩定路由選擇計時器超時時間內路由沒有發生變化,則選擇傳統的路由選擇算法選擇路由。作為本發明的一個實施例,還包括如果穩定路由選擇計時器超時時間內路由發生了變化,則重啟所述穩定路由選擇計時器。本發明提出了一個穩定的域間路由選擇算法sBGP(StableBGP),在本發明的sBGP中,當路由器收到由故障觸發的^^由通告后,則采用啟發式的路由選擇算法選擇目前可選的最穩定路由作為最佳路由。通過穩定路由選擇,路由器可以選擇有效的穩定路由,以避免無效的路由搜索以及路由不斷更新引入的路由器處理開銷。通過分析和模擬實驗表明sBGP不僅能夠有效提高BGP的收斂的性能,而且可以減少收斂過程中的通訊開銷。本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。本發明的上述和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中圖1為本發明實施例的互聯網路由中的穩定路由選擇的決策過程示意圖2為本發明實施例的sBGP路由選擇算法;圖3為本發明實施例的互聯網路由中的穩定路由選擇方法流程圖。具體實施例方式下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能解釋為對本發明的限制。本發明提出的啟發式BGP路由選擇算法(StableBGP(sBGP))目標是本地化處理路由選擇,盡量使路由變化在小范圍內發生,通過選擇穩定路由,極大地減少了路由變化次數,提供了路由的穩定性。且sBGP選擇穩定的路由確保消除了路由收斂過程中無效的路由搜索過程,解決了路由計算時間長的問題。另外,由于路由重計算僅在所選路由受故障影響的路由器中進行,所以路由故障信息將在有限結點中傳播,解決了路由傳播時間過程的問題,同時由于在Adj-RIB-IN中不存在兩個具有相同穩定性的路由,所以sBGP還解決了路由故障以后的不收斂問題。本發明為了實現穩定路由選擇,sBGP在標準BGP路由通告中增加了一個屬性以標識路由變化的事件源,并在BGP的Adj-RIB-IN(輸入路由信息庫)中標識每條路由學習到的時間。當路由器收到一個路由通告消息中帶有故障信息,則路由器將啟用sBGP的穩定路由選擇算法。本發明還在sBGP決策過程中增加了額外的兩個路由選擇,即選擇目前可用路由和選擇運行時間最長的路由。首先路由器選擇穩定路由的第一個步驟是優先選擇目前可用的路由以避免了不必要的路由重計算過程。如果當前所選路由受故障鏈路影響,則sBGP將在Adj-RIB-IN中選擇運行時間最長的路由最為自己的最佳路由并通告給鄰居,^v而完成穩定5^由選^奪過程。如圖l所示,為本發明實施例的互聯網路由中的穩定路由選擇的決策過程示意圖。首先,本發明優先選擇目前可用的路由作為當前路由(步驟1),在本發明實施例中,sBGP可通過識別路由變化的故障源,避免了路由器收到撤銷消息后搜索無效的路由,所以避免了漫長的路由搜索時間。并且,sBGP路由器只有在當前路由無效的時候才會進行路由的重新決策,因此sBGP路由器每次聲明出來的路由總是當前路由中最穩定,有效避免了路由的反復聲明而引起的路由抑制。類似地,由于sBGP路由器只有在當前路由不可用時進行路由重新決策,而決策過程中僅選擇自己可選的最題。另外,在sBGP路由決策步驟2中,如果最少運行的路由小于t,則采用新申明的路由。本發明通過t來進行穩定路由選擇的判斷。具體算法如圖3所示,本發明首先選擇路由運行時間最長的路由,而且該路由的有效時間超過了t。如果目前所有路由的有效時間都沒有超過t,則選擇收到的新聲明的路由,這時候所選擇的路由也是穩定的路由。因為sBGP有以下的定理:在sBGP中,由于新申明的路由是鄰居路由器采用的最長時間的可用路由,所以當本地無可用穩定路由時選擇新申明路由也是一種穩定路由的選擇策略;這個原則也是BGP的穩定路由的選擇策略。其中,圖1中的步驟1和步驟2分別是實現sBGP穩定路由選擇的核心,解決了目前BGP路由的問題,在此圖1中的其他步驟不再——描述。具體來說,通過路由決策過程中的這兩個步驟通過識別路由變化的故障源以及所有不穩定的路由進行路由選擇的決策。如圖3所示,為本發明實施例的互聯網路由中的穩定路由選擇方法流程圖,包括以下步驟步驟S301,接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當前路由。如果判斷通告的路由是由于故障引起的,且需要撤銷或更改當前路由r*,則啟動sBGP重新選擇路由。例如,如果收到一個帶有故障標識的路由更新,則BGP啟用穩定路由選擇算法重新選擇路由。步驟S302,判斷當前路由產是否包含故障鏈路,即在本發明的一個實施例中判斷當前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS。如果當前路由1**不包含故障鏈路,則無需重新選擇路由。步驟S303,如果當前路由盧包含故障鏈路,即如果當前所選的最佳路由的AS路徑包含有路由更新中的故障信息AS,則在RIB-IN(輸入路由信息庫)中選擇存在時間最長的路由r。步驟S304,判斷存在時間最長的路由r的存在時間是否大于闊值t。步驟S305,如果存在時間最長的路由r的存在時間是否大于閾值t,則進一步判斷存在時間最長的路由r是否包含故障鏈路。步驟S306,如果存在時間最長的路由r不包含故障鏈路,則將存在時間最長的路由r作為當前路由。步驟S307,如果存在時間最長的路由r的存在時間小于閾值t,則從RIB-IN中選擇最近通告的路由作為當前路由。步驟S308,如果存在時間最長的路由r包含故障鏈路,則在RIB-IN中刪除存在時間最長的路由r,并重新選擇最穩定路由。由于本發明所提出的sBGP所選擇的是穩定路由,因此sBGP極大的減少了路由變化次數提供了路由的穩定性。并且sBGP選銅t、定的路由確保消除了路由收斂過程中無效的路由搜索過程,解決了路由計算時間過長的問題;由于路由重計算僅在所選路由受故障影響的路由器中進行,所以路由故障信息將在有限結點中傳播,解決了路由傳播時間過程的問題;由于在Adj-RIB-IN中不存在兩個具有相同穩定性的路由,所以sBGP解決了路由故障以后的不收斂問題。另夕卜,sBGP可能會選擇一些ISP(InternetServiceProvider,互聯網服務提供商)中設置低優先級的路由。從保證全局路由穩定的情況的角度來看,損失ISP的一部分利益是個4艮好的折衷,特別當故障發生后出現路由不收斂。在sBGP中,本發明也實現了恢復正常路由選擇。在sBGP中,本發明實現了穩定路由選擇計時器,即當每個路由一旦啟用了穩定路由選擇,sBGP中將啟用一個計時器。只有當路由在計時器超時時間內路由不發生變化,則當計時器超時后,路由器將重新啟用傳統的路由選擇算法。但是,在計時器超時過程中路由發生了變化,則計時器將重新計時。由于計時器超時后的路由選擇不會有漫長的路由收斂過程,而sBGP的路由重選擇僅發生在小范圍內,所以路由的收斂時間非常短。本發明所提出的路由穩定選擇方案(sBGP)改善BGP路由收斂。首先檢測算法路由的有效性.只有當目前所選路由受故障影響,sBGP才會重新選擇路由。不同于現有的BGP,sBGP選擇可選的最穩定路由最為最佳選路由更新消息數量。由此可見,本發明能夠達到預期的目的。任何提及"一個實施例"、"實施例"、"示意性實施例"等意指結合該實施例描述的具體構件、結構或者特點包含于本發明的至少一個實施例中。在本說明書各處的該示意性表述不一定指的是相同的實施例。而且,當結合任何實施例描述具體構件、結構或者特點時,所主張的是,結合其他的9實施例實現這樣的構件、結構或者特點均落在本領域技術人員的范圍之內。盡管參照本發明的多個示意性實施例對本發明的具體實施方式進行了詳細的描述,但是必須理解,本領域技術人員可以設計出多種其他的改進和實施例,這些改進和實施例將落在本發明原理的精神和范圍之內。具體而言,在前述公開、附圖以及權利要求的范圍之內,可以在零部件和/或者從屬組合布局的布置方面作出合理的變型和改進,而不會脫離本發明的精神。除了零部件和/或布局方面的變型和改進,其范圍由所附權利要求及其等同物限定。權利要求1、一種互聯網路由中的穩定路由選擇方法,其特征在于,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當前路由,則啟動啟發式域間路由協議sBGP重新選擇路由;根據所述sBGP選擇可選的最穩定路由作為當前路由。2、如權利要求1所述的互聯網路由中的穩定路由選擇方法,其特征在于,根據所述sBGP選擇可選的最穩定路由作為當前路由包括判斷當前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS;如果包含有路由更新中的故障信息AS,則在輸入路由信息庫RIB-IN中選擇存在時間最長的路由;判斷所述存在時間最長的路由的存在時間是否大于閾值;如果所述存在時間最長的路由的存在時間是否大于閾值,則進一步判斷所述存在時間最長的路由是否包含故障鏈路;如果不包含故障鏈路,則將所述存在時間最長的路由作為當前路由。3、如權利要求2所述的互聯網路由中的穩定路由選擇方法,其特征在于,還包括如果所述存在時間最長的路由的存在時間小于閾值,則從所述RIB-IN中選擇最近通告的路由作為當前路由。4、如權利要求2所述的互聯網路由中的穩定路由選擇方法,其特征在于,還包括如果所述存在時間最長的路由包含故障鏈路,則在所述RIB-IN中刪除所述存在時間最長的路由,并重新選擇最穩定路由。5、如權利要求1所述的互聯網路由中的穩定路由選擇方法,其特征在于,所述路由通告中包含有標識路由變化事件源的屬性。6、如權利要求1所述的互聯網路由中的穩定路由選擇方法,其特征在于,在所述RIB-IN中標識每條^各由學習到的時間。7、如權利要求1所述的互聯網路由中的穩定路由選擇方法,其特征在于,還包括判斷穩定路由選擇計時器超時時間內路由是否發生變化;如果穩定路由選擇計時器超時時間內路由沒有發生變化,則選擇傳統的路由選擇算法選擇路由。8、如權利要求7所述的互聯網路由中的穩定路由選擇方法,其特征在于,還包括如果穩定路由選擇計時器超時時間內路由發生了變化,則重啟所述穩定路由選擇計時器。全文摘要本發明提供了一種互聯網路由中的穩定路由選擇方法,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當前路由,則啟動啟發式域間路由協議sBGP重新選擇路由;根據所述sBGP選擇可選的最穩定路由作為當前路由。在本發明中,當路由器收到由故障觸發的路由通告后,采用啟發式的路由選擇算法選擇目前可選的最穩定路由作為最佳路由,通過穩定路由選擇,路由器可以選擇有效的穩定路由,以避免無效的路由搜索以及路由不斷更新引入的路由器處理開銷。文檔編號H04L12/56GK101651617SQ200910093209公開日2010年2月17日申請日期2009年9月15日優先權日2009年9月15日發明者徐明偉,琦李,杜德慧,江學智申請人:清華大學