一種基于路由校驗的邊界網關協議的路由更新方法
【專利摘要】本發明涉及一種基于路由校驗的邊界網關協議的路由更新方法,屬于互聯網技術領域;該方法包括:當第一與第二BGP路由器首次建立鄰居關系后,第一BGP路由器向第二BGP路由器發送所有路由信息;當兩者鄰居關系中斷后,第一BGP路由器接收到來自其他BGP路由器的要刪除的路由信息和要新添的路由信息,第二BGP路由器將存儲的路由信息設為臨時失效標志;當再次建立鄰居關系后,第一BGP路由器接收到第二路由器的接收校驗碼確定要刪除路由信息對應的校驗碼或要新添的路由信息,第二BGP路由器確定刪除該路由信息及對應的接收校驗碼或新添路由信息;并將路由信息表中的全部路由信息對應的臨時失效標志設置為未失效。本發明可減少發送的數據量,節省更新所需時間和帶寬。
【專利說明】
一種基于路由校驗的邊界網關協議的路由更新方法
技術領域
[0001]本發明屬于互聯網技術領域,尤其涉及基于路由校驗的邊界網關協議的路由更新方法。
【背景技術】
[0002]邊界網關協議BGP(Border Gateway Protocol)是一種域間路由協議,它在自治系統(Autonomous System,AS)間動態地學習路由信息,被互聯網服務提供商所廣泛使用,基于邊界網關協議的路由器稱為BGP路由器。BGP路由器之間通過更新(UPDATE)消息交換路由信息,從而相互學習路由信息。當BGP路由器之間建立鄰居關系后,需要通過路由更新將彼此的路由信息發送給對方。在鄰居關系保持期間,只有發生了改變的路由信息會被通告。如果鄰居關系中斷并重新建立,無論之前是否建立過鄰居關系,BGP路由器將重新發送所有路由信息。
[0003]隨著互聯網規模的迅速擴大,BGP路由條目的數量越來越多,通告所有路由信息的過程會持續較長的時間,導致BGP收斂時間增加,影響網絡路由的可達性。此外,發送所有路由信息還會占據較多的計算和帶寬資源。并且,在某些場景下,BGP路由器之間的鄰居關系的確會發生中斷并重新建立的情況,例如鏈路發生短時間故障后恢復,路由器重新啟動,移動網絡中BGP路由器發生運動,或者天地一體化網絡中衛星上搭載的BGP路由器由于衛星的周期運動而發生運動,BGP路由器必需重新發送所有路由信息。
[0004]目前,BGP路由器重新建立鄰居關系后重新發送所有路由信息的問題,已有解決方案主要是BGP優雅重啟(BGP Graceful Restart,BGP GR)技術。BGP優雅重啟的主要方法是使即將重啟的BGP路由器提前通知鄰居BGP路由器,使鄰居BGP路由器暫時保留原有接收到的路由信息,這樣當BGP路由器完成了重啟并重新建立鄰居關系后,便可以避免向鄰居BGP路由器發送所有路由。該技術已建立了相應的國際標準RFC4724。然而,BGP優雅重啟僅僅針對BGP路由器重新啟動導致重新發送所有路由的情況,而且一方面,BGP路由器重啟事件是可以被事先預見的,另一方面,BGP路由器重啟的過程持續時間較短,使得BGP路由器之間的鄰居關系中斷持續時間較短。因此,對于那些難以事先預見的情況,例如鏈路故障、網絡隨機移動等,以及BGP路由器之間的鄰居關系中斷時間較長的情況,例如天地一體化網絡中低軌衛星的周期運動,BGP優雅重啟均不能適用。此外,天地一體化網絡中BGP路由器向鄰居BGP路由器發送全部路由信息會比傳統互聯網中帶來更大的開銷,因為空間鏈路帶寬和空間路由器處理能力較低。
【發明內容】
[0005]本發明的目的是解決BGP路由器重新建立鄰居關系時發送全部路由信息的問題,提供一種基于路由校驗的BGP的路由更新方法,以減少路由信息發送的數據量,節省路由更新所需時間和帶寬。
[0006]為實現上述目的,本發明是通過下述技術方案實現的。
[0007]一種基于路由校驗的域間路由協議的路由更新方法,其特征在于,應用在第一 BGP路由器與第二 BGP路由器之間的路由更新;該方法包括以下步驟:
[0008]I)當第一 BGP路由器與第二 BGP路由器首次建立鄰居關系后,第一 BGP路由器通過UPDATE報文向第二 BGP路由器發送所有路由信息;
[0009]2)當第一 BGP路由器與第二 BGP路由器之間的鄰居關系中斷后,第一 BGP路由器對接收到來自其他BGP路由器的要刪除的路由信息和要新添的路由信息,第二BGP路由器將存儲的路由信息設為臨時失效標志;
[0010]3)當第一 BGP路由器與第二 BGP路由器再次建立鄰居關系后,第二 BGP路由器將其路由信息表中的全部臨時失效標志為I的路由信息對應的接收校驗碼發送給第一 BGP路由器;當第一BGP路由器接收到所述接收校驗碼后,根據接收到的接收校驗碼確定要刪除路由信息對應的校驗碼或要新添的路由信息,并發送給第二 BGP路由器要刪除路由信息對應的校驗碼,以及通過UPDATE報文發送要新添的路由信息;第二 BGP路由器確定刪除該路由信息及對應的接收校驗碼或新添路由信息;
[0011]4)當第一 BGP路由器發送完所有的要刪除的路由信息對應的發送校驗碼和要新添的路由信息后,發送一個通知給第二 BGP路由器讓第二 BGP路由器將全部路由信息對應的臨時失效標志設置為0,表示路由信息未失效;
[0012]當所述第二BGP路由器接收到所述通知后,將第二 BGP路由器的路由信息表中的全部路由信息對應的臨時失效標志設置為0,表示路由信息未失效。
[0013]本發明的所提出的基于路由校驗的BGP路由更新方法具有實現簡單、計算開銷小的特點,能夠在運行BGP協議的路由器上快速地良好地運行,并且能適應地面靜態網絡、移動網絡、空間網絡等多種網絡環境。本發明能夠快速地準確地確定需要發送的路由信息,且僅需要通告需要刪除的路由信息對應的校驗碼和需要新添的路由信息,避免了通告全部路由信息,有效地減少了BGP路由更新的所需的通信數據量和通信時間,推動了域間路由協議在高動態網絡中的應用發展,有效提高了異構網絡一體化互聯互通的能力。本發明的實施例所提出的基于路由校驗的BGP路由更新方法可以運用在目前存在的各種路由器中,也可應用于未來天地一體化網絡建設。
[0014]盡管已經示出和描述了本發明的實施例,對于本領域的普通技術人員而言,可以理解在不脫離本發明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發明的范圍由所附權利要求及其等同限定。
【附圖說明】
[0015]圖1是根據本發明的基于路由校驗的BGP路由更新方法流程圖;
[0016]圖2是根據本發明的基于路由校驗的BGP路由更新方法中,第一BGP路由器路由信息表和第二BGP路由器路由信息表內容的實施例示意圖;
[0017]圖3是根據本發明的基于路由校驗的BGP路由更新方法的實施例,在BGP鄰居關系首次建立后,第一 BGP路由器的路由信息表和第二 BGP路由器的路由信息表內容及其變化示意圖;
[0018]圖4是根據本發明的基于路由校驗的BGP路由更新的實施例,在BGP鄰居關系中斷后,第一BGP路由器的路由信息表和第二BGP路由器的路由信息表內容及其變化示意圖;
[0019]圖5是根據本發明的基于路由校驗的BGP路由更新的實施例,在BGP鄰居關系重新建立后,第一BGP路由器的路由信息表和第二BGP路由器的路由信息表內容及其變化示意圖。
【具體實施方式】
[0020]為實現上述目的,本發明通過附圖及實施例進一步說明如下:
[0021 ]本發明的基于路由校驗的BGP路由更新方法,應用在第一 BGP路由器與第二 BGP路由器之間的路由更新,這兩臺路由器可以分別屬于兩個不同的自治系統,相互之間運行外部邊界網關協議EBGP(External Border Gateway Protocol,EBGP);也可以屬于同一個自治系統,相互之間運行內部邊界網關協議IBGP(Internal Border Gateway Protocol,I BGP) ο
[0022]本發明的方法流程如圖1所示,該方法包括以下步驟:
[0023]I)當第一 BGP路由器與第二 BGP路由器首次建立鄰居關系后,第一 BGP路由器通過UPDATE報文向第二 BGP路由器發送所有路由信息;具體實施步驟如下:
[0024]1-1)設當在BGP鄰居關系首次建立前,第一 BGP路由器將路由信息表中存儲了多條路由信息,其中一條路由信息的內容如圖2所示,而第二BGP路由器的路由信息表為空表。本實施例中,初始時第一BGP路由器的路由信息表中存儲了4條路由信息Rl、R2、R3、R4,而第二BGP路由器的路由信息表為空表,如圖3所示。
[0025]1-2)第一BGP路由器與第二BGP路由器首次建立鄰居關系后,第一BGP路由器將其存儲的全部路由信息發送給第二 BGP路由器,并分別為每條發送的路由信息計算一個對應的發送校驗碼;在圖3所示的實施例中發送的路由信息為Rl、R2、R3、R4; Rl對應的發送校驗碼為C1,R2對應的發送校驗碼為C2,R3對應的發送校驗碼為C3,R4對應的發送校驗碼為C4。第一 BGP路由器將發送的路由信息與所述對應的發送校驗碼一起存儲在第一 BGP路由器的路由信息表中。
[0026]1-3)第二BGP路由器接收到每條路由信息,為該路由信息計算一個對應的接收校驗碼,在圖3所示的實施例中第二 BGP路由器接收的路由信息為Rl、R2、R3、R4; Rl對應的接收校驗碼為Cl,R2對應的接收校驗碼為C2,R3對應的接收校驗碼為C3,R4對應的接收校驗碼為C4。第二 BGP路由器將接收到的路由信息與對應的接收校驗碼一起存儲在第二 BGP路由器中的路由信息表中,并將該接收到的路由信息所對應的臨時失效標志設置為0,表示該條路由?目息未失效(可用)。
[0027]所述計算發送校驗碼和計算所述接收校驗碼的方法可以采用任意一種公開的校驗碼算法,并且第一BGP路由器與第二BGP路由器采用的算法相同。具體的可以采用的校驗碼算法包括但不限于CRC32、MD5、SHAl、SHA256等等。例如,圖2所示路由信息中,該路由信息所對應的CRC32校驗碼為9a608cb0。
[0028]2)當第一 BGP路由器與第二 BGP路由器之間的鄰居關系中斷后,第一 BGP路由器接收到來自其他BGP路由器的要刪除的路由信息和要新添的路由信息(因為第一 BGP路由器和其他BGP路由器之間的鄰居關系沒有中斷,這里第一 BGP路由器從其他BGP路由器收到的是正常的要刪除的路由信息和要添加的路由信息,不涉及校驗碼),第二 BGP路由器將存儲的路由信息設為臨時失效標志;具體步驟如下:
[0029]2-1)當第一BGP路由器接收到來自其他BGP路由器的要刪除的路由信息后,在路由信息表中刪除對應的路由信息和對應的發送校驗碼。在圖4所示的實施例中,第一BGP路由器接收到了其他BGP路由器發送來的要刪除的路由信息Rl,將其路由信息表中的路由信息Rl和對應的發送校驗碼Cl刪除。
[0030]當第一BGP路由器接收到來自其他BGP路由器的要新添的路由信息后,為該新添的路由信息計算一個對應的發送校驗碼,將該新添的路由信息與對應的發送校驗碼一起存儲在第一BGP路由器中的路由信息表中。在圖4所示的實施例中,第一BGP路由器接收到了其他BGP路由器發送來的要新添的路由信息R5,為R5計算一個對應的發送校驗碼C5,并將該新添的路由信息R5與對應的發送校驗碼C5—起存儲在第一BGP路由器的路由信息表中。
[0031]2-2)第二 BGP路由器將存儲在路由信息表中的每條路由信息對應的臨時失效標志設置為I,表示該路由信息臨時失效(不可用)。在圖4所示的實施例中,第二BGP路由器將其路由信息表中的4條路由信息Rl、R2、R3、R4對應的臨時失效標志設置為I。
[0032]第一 BGP路由器與第二 BGP路由器之間的鄰居關系中斷發生的原因包括但不限于:連接第一 BGP路由器與第二 BGP路由器之間的鏈路發生故障,第一 BGP路由器或第二 BGP路由器中用于建立鄰居關系的傳輸協議發生軟件故障,第一BGP路由器或第二BGP路由器發生重啟,第一BGP路由器或第二BGP路由器被人為配置強制中斷鄰居關系,第一BGP路由器或第二BGP路由器發生位置移動離開可以相互通信的范圍,等等。
[0033]3)當第一 BGP路由器與第二 BGP路由器再次建立鄰居關系后,第二 BGP路由器將其路由信息表中的全部臨時失效標志為I的路由信息對應的接收校驗碼發送給第一 BGP路由器;當第一BGP路由器接收到所述接收校驗碼后,根據接收到的接收校驗碼確定要刪除路由信息對應的校驗碼或要新添的路由信息,并發送給第二 BGP路由器要刪除路由信息對應的校驗碼,以及通過UPDATE報文發送要新添的路由信息;第二 BGP路由器確定刪除該路由信息及對應的接收校驗碼或新添路由信息;
[0034]具體步驟如下:
[0035]3-1)第二 BGP路由器將其路由信息表中的全部臨時失效標志為I的路由信息對應的所述接收校驗碼發送給第一BGP路由器。在圖5所示的實施例中,第二BGP路由器將全部臨時失效標志為I的路由信息對應的接收校驗碼Cl、C2、C3、C4發送給第一 BGP路由器。
[0036]3-2)當第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定刪除的路由信息對應的校驗碼。在圖5所示的實施例中,第一BGP路由器根據接收到的接收校驗碼Cl、C2、C3、C4和第一BGP路由器的路由信息表確定要刪除的路由信息對應的校驗碼為Cl。如果需要刪除的路由信息對應的校驗碼存在,則第一 BGP路由器將要刪除的路由信息對應的校驗碼發送給第二 BGP路由器。在圖5所示的實施例中,第一BGP路由器將Cl發送給第二BGP路由器。
[0037]步驟3-2)中第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定刪除的路由信息對應的校驗碼,具體為:
[0038]第一BGP路由器將接收到的每一個接收校驗碼與第一 BGP路由器的路由信息表中存儲的每一個發送校驗碼相比較,如果不存在任何一個發送校驗碼與所述接收校驗碼比較結果相同,則該接收校驗碼確定為一條需要刪除的路由信息對應的校驗碼。在圖5所示的實施例中,第一BGP器將接收到的接收校驗碼Cl、C2、C3、C4與其路由信息表中存儲的發送校驗碼C2、C3、C4、C5依次比較,比較結果不存在任何一個發送校驗碼與接收校驗碼Cl相同,所以Cl是一條確定要刪除的路由信息對應的校驗碼。
[0039]3-3)當第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定要新添的路由信息。將所述新添的路由信息發送給第二BGP路由器。在圖5所示的實施例中,第一 BGP路由器根據接收到的接收校驗碼C1、C2、C3、C4和第一 BGP路由器的路由信息表確定要新添的路由信息為R5。如果要新添的路由信息存在,則第一 BGP路由器將要新添的路由信息通過UPDATE報文發送給第二 BGP路由器。在圖5所示的實施例中,第一BGP路由器將R5發送給第二BGP路由器。
[0040]步驟3-3)當第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定要新添的路由信息具體為:第一 BGP路由器的路由信息表中存儲的每一個發送校驗碼與接收到的每一個接收校驗碼進行比較,如果不存在任何一個接收校驗碼與發送校驗碼比較結果相同,則該發送校驗碼對應的路由信息是一條確定要新添的對應路由信息。在圖5所示的實施例中,第一BGP器將其路由信息表中存儲的發送校驗碼02工3、04工5與接收到的接收校驗碼(:1工2、03工4依次比較,比較結果不存在任何一個接收校驗碼與發送校驗碼C5相同,所以C5對應的路由信息R5是一條要新添的路由信息。
[0041]3-4)第二 BGP路由器接收到第一 BGP路由器所發信息后確定在其路由表中刪除該路由信息及對應的接收校驗碼或新添路由信息;具體為:當第二BGP路由器接收到所述需要新添的路由信息后,為每條所述要新添的路由信息計算一個對應的接收校驗碼,并將所述接收校驗碼以及對應的接收到的要新添的路由信息一起存儲在第二 BGP路由器的路由信息表中。當第二 BGP路由器接收到確定要刪除的路由信息對應的校驗碼后,將該刪除的路由信息對應的校驗碼與第二 BGP路由器的路由信息表中的每條路由信息所對應的接收校驗碼相比較,如果比較結果相同,則從第二BGP路由器的路由信息表中刪除該路由信息及對應的接收校驗碼。如圖5所示的實施例中,第二BGP路由器將接收到的需要刪除的路由信息對應的校驗碼Cl與其路由信息表中的每條路由信息所對應的接收校驗碼相比較,找到相同的接收校驗碼Cl以及對應的路由信息Rl,從第二BGP路由器的路由信息表中刪除路由信息Rl及其對應的接收校驗碼Cl。
[0042]在圖5所示的實施例中,第二BGP路由器接收到需要新添的路由信息R5,計算出對應的接收校驗碼為C5,將路由信息R5與對應的接收校驗碼C5—起存諸在第二 BGP路由器的路由信息表中。
[0043]4)當第一 BGP路由器發送完所有的要刪除的路由信息對應的發送校驗碼和要新添的路由信息后,發送一個通知給第二 BGP路由器讓第二 BGP路由器將全部路由信息對應的臨時失效標志設置為0,表示路由信息未失效(可用)。
[0044]當所述第二BGP路由器接收到所述通知后,將第二 BGP路由器的路由信息表中的全部路由信息對應的臨時失效標志設置為0,表示路由信息未失效(可用)。
【主權項】
1.一種基于路由校驗的域間路由協議的路由更新方法,其特征在于,應用在第一 BGP路由器與第二 BGP路由器之間的路由更新;該方法包括以下步驟: 1)當第一BGP路由器與第二 BGP路由器首次建立鄰居關系后,第一 BGP路由器通過UPDATE報文向第二 BGP路由器發送所有路由信息; 2)當第一BGP路由器與第二 BGP路由器之間的鄰居關系中斷后,第一 BGP路由器接收到來自其他BGP路由器的要刪除的路由信息和要新添的路由信息,第二 BGP路由器將存儲的路由信息設為臨時失效標志; 3)當第一BGP路由器與第二 BGP路由器再次建立鄰居關系后,第二 BGP路由器將其路由信息表中的全部臨時失效標志為I的路由信息對應的接收校驗碼發送給第一BGP路由器;當第一BGP路由器接收到所述接收校驗碼后,根據接收到的接收校驗碼確定要刪除路由信息對應的校驗碼或要新添的路由信息,并發送給第二BGP路由器要刪除路由信息對應的校驗碼,以及通過UPDATE報文發送要新添的路由信息;第二 BGP路由器確定刪除該路由信息及對應的接收校驗碼或新添路由信息;4)當第一 BGP路由器發送完所有的要刪除的路由信息對應的發送校驗碼和要新添的路由信息后,發送一個通知給第二 BGP路由器讓第二 BGP路由器將全部路由信息對應的臨時失效標志設置為O,表示路由信息未失效; 當所述第二 BGP路由器接收到所述通知后,將第二 BGP路由器的路由信息表中的全部路由信息對應的臨時失效標志設置為O,表示路由信息未失效。2.如權利要求1所述方法,其特征在于,所述步驟I)具體包括以下步驟: 1-1)設當在BGP鄰居關系首次建立前,第一 BGP路由器將路由信息表中存儲了多條路由信息,而第二 BGP路由器的路由信息表為空表; 1-2)第一BGP路由器與第二BGP路由器首次建立鄰居關系后,第一BGP路由器將其存儲的全部路由信息發送給第二 BGP路由器,并分別為每條發送的路由信息計算一個對應的發送校驗碼;第一 BGP路由器將發送的路由信息與所述對應的發送校驗碼一起存儲在第一 BGP路由器的路由信息表中; 1-3)第二BGP路由器接收到每條路由信息,為該路由信息計算一個對應的接收校驗碼;第二 BGP路由器將接收到的路由信息與對應的接收校驗碼一起存儲在第二 BGP路由器中的路由信息表中,并將該接收到的路由信息所對應的臨時失效標志設置為O,表示該條路由信息未失效。3.如權利要求1所述方法,其特征在于,所述步驟2)具體包括以下步驟: 2-1)當第一BGP路由器接收到來自其他BGP路由器的要刪除的路由信息后,在路由信息表中刪除對應的路由信息和對應的發送校驗碼; 當第一 BGP路由器接收到來自其他BGP路由器的要新添的路由信息后,為該新添的路由信息計算一個對應的發送校驗碼,將該新添的路由信息與對應的發送校驗碼一起存儲在第一BGP路由器中的路由信息表中; 2-2)第二BGP路由器將存儲在路由信息表中的每條路由信息對應的臨時失效標志設置為I,表示該路由信息臨時失效。4.如權利要求1所述方法,其特征在于,所述步驟3)具體包括以下步驟: 3-1)第二BGP路由器將其路由信息表中的全部臨時失效標志為I的路由信息對應的所述接收校驗碼發送給第一 BGP路由器; 3-2)當第一 BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一BGP路由器的路由信息表確定刪除的路由信息對應的校驗碼;如果需要刪除的路由信息對應的校驗碼存在,則第一 BGP路由器將要刪除的路由信息對應的校驗碼發送給第二 BGP路由器; 步驟3-2)中第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定刪除的路由信息對應的校驗碼,具體為: 第一 BGP路由器將接收到的每一個接收校驗碼與第一 BGP路由器的路由信息表中存儲的每一個發送校驗碼相比較,如果不存在任何一個發送校驗碼與所述接收校驗碼比較結果相同,則該接收校驗碼確定為一條需要刪除的路由信息對應的校驗碼; 3-3)當第一 BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一BGP路由器的路由信息表確定要新添的路由信息;將所述新添的路由信息發送給第二 BGP路由器; 步驟3-3)當第一BGP路由器接收到所述接收校驗碼后,根據所述接收到的接收校驗碼和第一 BGP路由器的路由信息表確定要新添的路由信息具體為:第一 BGP路由器的路由信息表中存儲的每一個發送校驗碼與接收到的每一個接收校驗碼進行比較,如果不存在任何一個接收校驗碼與發送校驗碼比較結果相同,則該發送校驗碼對應的路由信息是一條確定要新添的對應路由信息; 3-4)第二 BGP路由器接收到第一 BGP路由器所發信息后確定在其路由表中刪除該路由信息及對應的接收校驗碼或新添路由信息;具體為:當第二BGP路由器接收到所述需要新添的路由信息后,為每條所述要新添的路由信息計算一個對應的接收校驗碼,并將所述接收校驗碼以及對應的接收到的要新添的路由信息一起存儲在第二 BGP路由器的路由信息表中;當第二BGP路由器接收到確定要刪除的路由信息對應的校驗碼后,將該刪除的路由信息對應的校驗碼與第二 BGP路由器的路由信息表中的每條路由信息所對應的接收校驗碼相比較,如果比較結果相同,則從第二BGP路由器的路由信息表中刪除該路由信息及對應的接收校驗碼。
【文檔編號】H04L12/751GK105915457SQ201610284551
【公開日】2016年8月31日
【申請日】2016年4月29日
【發明人】徐明偉, 楊芫, 林恒
【申請人】清華大學