一種自治系統環路組網中發送更新報文的方法和裝置製造方法
2023-06-10 20:57:46
一種自治系統環路組網中發送更新報文的方法和裝置製造方法
【專利摘要】本發明實施方式提出一種自治系統(AS)環路組網中發送更新報文的方法和裝置。AS環路組網包括第一路由器和第二路由器,第二路由器位於第一AS。該方法包括:第一路由器接收第二路由器發送的第二路由器的環回能力值;第一路由器確定向第二路由器待發送的邊界網關協議(BGP)更新報文攜帶的AS路徑屬性所包含的第一AS的序列號的個數;當第一路由器確定AS路徑屬性所包含的第一AS的序列號的個數不大於第二路由器的環回能力值時,向第二路由器發送BGP更新報文。本發明實施方式根據接收端發送來的環回能力值決定是否向接收端發送更新報文,可以有效減少更新報文的收發工作量,提高路由器的CPU與鏈路帶寬的利用率。
【專利說明】一種自治系統環路組網中發送更新報文的方法和裝置
【技術領域】
[0001] 本發明實施方式屬於網絡通信【技術領域】,特別是一種自治系統(Autonomous System,AS)環路組網中發送更新報文的方法和裝置。
【背景技術】
[0002] 邊界網關協議(Border Gateway Protocol,BGP)是一種既可以用於不同AS之間, 還可以用於同一 AS內部的動態路由協議。AS是擁有同一選路策略,屬於同一技術管理部門 的一組路由器。當BGP運行於同一 AS內部時,稱為內部BGP(IBGP,Internal BGP);當BGP 運行於不同AS之間時,稱為外部BGP(EBGP,External BGP)。BGP定義了用於在對等體之間 交換路由信息的更新(Update)報文。一條更新報文可以發布具有相同路徑屬性的多條可 達路由,也可以同時撤銷多條不可達路由。
[0003] 目前在AS環路組網下,發送端向接收端發送更新報文,而並不關注接收端是否丟 棄更新報文。當接收端接收到更新報文之後,自行判斷是否丟棄更新報文。
[0004] 因此,發送端可能會向接收端發送被接收端丟棄的更新報文,這就浪費了鏈路帶 寬、CPU使用率等系統資源,而且降低了系統性能。
【發明內容】
[0005] 本發明實施方式提出一種AS環路組網中發送更新報文的方法和裝置,以節約系 統資源。
[0006] 本發明實施方式的技術方案如下:
[0007] 本發明實施方式的一方面,提供了一種AS環路組網中發送更新報文的方法。AS環 路組網包括第一路由器和第二路由器,第二路由器位於第一 AS,該方法包括:
[0008] 第一路由器接收第二路由器發送的所述第二路由器的環回能力值;
[0009] 第一路由器確定向第二路由器待發送的BGP更新報文攜帶的路由信息的AS路徑 屬性所包含的第一 AS的序列號的個數;
[0010] 當第一路由器確定所述AS路徑屬性所包含的第一 AS的序列號的個數不大於所述 第二路由器的環回能力值時,向所述第二路由器發送所述BGP更新報文。
[0011] 本發明實施方式的一方面,提供了一種AS環路組網中發送更新報文的裝置。所述 AS環路組網包括第一路由器和第二路由器,第二路由器位於第一 AS,所述裝置應用於第一 路由器,包括:
[0012] 環回能力值接收模塊,用於接收第二路由器發送的所述第二路由器的環回能力 值;
[0013] 個數確定模塊,用於確定向第二路由器待發送的邊界網關協議BGP更新報文攜帶 的路由信息的AS路徑屬性所包含的第一 AS的序列號的個數;
[0014] 更新報文發送模塊,用於當確定所述AS路徑屬性所包含的第一 AS的序列號的個 數不大於所述第二路由器的環回能力值時,向所述第二路由器發送所述BGP更新報文。
[0015] 由此可見,本發明實施方式根據接收端發送來的環回能力值決定是否向接收端發 送更新報文,可以有效減少更新報文的收發工作量,提高路由器的CPU和鏈路帶寬的利用 率。在大鄰居大路由的情形下,本發明實施方式的優點尤為明顯。
【專利附圖】
【附圖說明】
[0016] 圖1為AS環路組網中BGP鄰居關係的不範性不意圖;
[0017] 圖2為根據本發明一實施方式的AS環路組網中發送更新報文的方法流程圖。
[0018] 圖3為圖1所示AS環路組網中發送更新報文的方法示範性流程圖。
[0019] 圖4為根據本發明一實施方式的AS環路組網中發送更新報文的裝置結構圖。
【具體實施方式】
[0020] 為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步 的詳細描述。
[0021] 圖1為AS環路組網中BGP鄰居關係的不範性不意圖。
[0022] 在圖1中,第一路由器、第二路由器和第三路由器之間建立有BGP鄰居關係。第二 路由器和第三路由器都屬於AS 100,第一路由器屬於AS 200。第一路由器、第二路由器和 第三路由器構成環路組網。
[0023] 在現有技術中,第一路由器自行構建更新報文或從第三路由器接收到更新報文之 後,直接向第二路由器發送更新報文,而並不關注第二路由器是否會丟棄更新報文。第二路 由器自行判斷是否丟棄更新報文。比如:當在第三路由器上引入一條路由信息時,第三路由 器向第一路由器發布攜帶AS路徑(AS-path)屬性的更新報文,此時,AS路徑屬性包含第三 路由器所屬的AS的序列號AS100。第一路由器向第二路由器轉發該更新報文,此時,更新報 文攜帶的AS路徑屬性包含第三路由器所屬的AS的序列號AS 100和第一路由器所屬的AS 的序列號AS 200。如果在第二路由器上未配置AS環回能力,由於第二路由器所屬的AS的 序列號為AS 100,即第二路由器接收到的更新報文攜帶的AS路徑屬性包含與第二路由器 所屬的AS的序列號相同的AS的序列號,則第二路由器丟棄該更新報文。
[0024] 由此可見,第一路由器會向第二路由器發送被第二路由器丟棄的更新報文,這就 浪費了鏈路帶寬和CPU使用率,降低了系統性能。
[0025] 在本發明實施方式中,根據更新報文接收端發送過來的環回能力值決定是否向接 收端發送更新報文,從而有效減少更新報文的傳輸,節約鏈路帶寬和CPU使用率。
[0026] 圖2為根據本發明一實施方式的AS環路組網中發送更新報文的方法流程圖。該 AS環路組網包括第一路由器和第二路由器,第二路由器位於第一 AS。
[0027] 如圖2所示,該方法包括:
[0028] 步驟201 :第一路由器接收第二路由器發送的第二路由器的環回能力值。
[0029] 環回能力是指本端路由器處理對端路由器發送的攜帶AS路徑屬性的更新報文的 能力。環回能力值是對本端路由器環回能力的數值量化,當本端路由器接收到的更新報文 攜帶的AS路徑屬性所包含的本端路由器所屬的AS的序列號的數量大於環回能力值時,本 端路由器不處理該更新報文,丟棄該更新報文。
[0030] 在一個實施方式中,第二路由器可以在打開(Open)報文中增加格式為類型-長 度-值(TLV)三元組的可選參數,以在Open報文中攜帶第二路由器的環回能力值。該TLV三 元組包括參數類型(Parm. Type)、參數長度(Parm. Length)和參數值(Parameter Value)。
[0031] 示範性地,該TLV三元組的欄位格式如下:
[0032] ..
[0033] Parm. Type|Parm. Length|Parameter Value(variable)
[0034] +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
[0035] 其中:
[0036] Parm. Type :用於標明可選參數的類型;值為10,佔1個字節;
[0037] Parm. Length :用於標明 Parameter Value 的長度,佔 1 個字節;
[0038] Parameter Value :用於標明環回能力值,取值範圍為0到10,長度是可變的。
[0039] 以上詳細描述了 TLV三元組的欄位格式,本領域技術人員可以意識到,這種描述 僅是示範性的,並不能對本發明實施方式的保護範圍進行限定。
[0040] 第一路由器從第二路由器接收到Open報文之後,如果可以從Open報文中解析出 該TLV三元組,表示第二路由器支持通知環回能力值,否則表示第二路由器不支持通知環 回能力值。第一路由器可以進一步從該TLV三元組中獲取Parameter Value,即第二路由器 的環回能力值。
[0041] 步驟202 :第一路由器確定向第二路由器待發送的BGP更新報文攜帶的AS路徑屬 性所包含的第一 AS的序列號的個數。
[0042] 第一路由器向第二路由器待發送的BGP更新報文既可以是第一路由器自行組裝 的BGP更新報文,也可以是第一路由器從其他路由器接收的BGP更新報文。而且,第一路由 器既可以位於第一 AS,也可以位於不同於第一 AS的其他AS。
[0043] 步驟203 :當第一路由器確定AS路徑屬性所包含的第一 AS的序列號的個數不大 於第二路由器的環回能力值時,向第二路由器發送BGP更新報文。
[0044] 當待發送的BGP更新報文攜帶的AS路徑屬性所包含的第一 AS的序列號的個數不 大於第二路由器的環回能力值時,第一路由器判定向第二路由器發送包含該AS路徑屬性 的BGP更新報文。
[0045] 當第一路由器位於不同於第一 AS的其他AS時,第一路由器在向第二路由器發送 待發送的BGP更新報文時,在待發送的BGP更新報文攜帶的AS路徑屬性中添加一個第一路 由器所屬的AS的序列號。比如,假定第二路由器所處的第一 AS具體為AS 100,第一路由器 位於AS 200,則第一路由器在向第二路由器待發送的BGP更新報文攜帶的AS路徑屬性中, 增加一個AS 200。
[0046] 當第一路由器位於第一 AS(即第一路由器和第二路由器位於相同的AS)時,第一 路由器在向第二路由器發送待發送的BGP更新報文時,在待發送的BGP更新報文攜帶的AS 路徑屬性中不添加第一 AS的序列號。比如,假定第二路由器所處的第一 AS具體為AS 100, 第一路由器同樣位於AS 100,則第一路由器在向第二路由器待發送的BGP更新報文攜帶的 AS路徑屬性中,不增加 AS 100。
[0047] 如,假設步驟201中第一路由器從第二路由器接收到的第二路由器的環回能力 值為3 ;步驟202中第一路由器從其他路由器接收BGP更新報文,將該BGP更新報文作為待 發送的BGP更新報文並確定該待發送的BGP更新報文攜帶的AS路徑屬性所包含的第一 AS 的序列號的個數為2 ;在步驟203中第一路由器判定向第二路由器發送該待發送的BGP更 新報文,其中當第一路由器位於第一 AS時,第一路由器在待發送的BGP更新報文攜帶的AS 路徑屬性中不添加第一 AS的序列號,當第一路由器位於不同於第一 AS的其他AS時,第一 路由器在待發送的BGP更新報文攜帶的AS路徑屬性中添加一個第一路由器所屬的AS的序 列號。
[0048] 再比如,假設步驟201中第一路由器從第二路由器接收到的第二路由器的環回能 力值為3,步驟202中第一路由器自行組裝待發送的BGP更新報文,而且確定待發送的BGP 更新報文攜帶的AS路徑屬性所包含的第一 AS的序列號的個數為2 ;在步驟203中第一路 由器判定向第二路由器發送該待發送的BGP更新報文,其中當第一路由器位於第一 AS時, 第一路由器在待發送的BGP更新報文攜帶的AS路徑屬性中不添加第一 AS的序列號,當第 一路由器位於不同於第一 AS的其他AS時,第一路由器在待發送的BGP更新報文攜帶的AS 路徑屬性中添加一個第一路由器所屬的AS的序列號。
[0049] 在一個實施方式中,當AS路徑屬性所包含的第一 AS的序列號的個數大於第二路 由器的環回能力值時,第一路由器判定不向第二路由器發送攜帶該AS路徑屬性的BGP更新 報文。
[0050] 如,假設步驟201中第一路由器從第二路由器接收到的第二路由器的環回能力 值為2,步驟202中第一路由器從其他路由器接收到BGP更新報文,將該BGP更新報文作為 待發送的BGP報文並確定待發送的BGP更新報文攜帶的AS路徑屬性所包含的第一 AS的序 列號的個數為3 ;因此步驟203中第一路由器判定不向第二路由器發送該待發送的BGP更 新報文。
[0051] 再比如,假設步驟201中第一路由器從第二路由器接收到的第二路由器的環回能 力值為2,步驟202中第一路由器自行組裝待發送的BGP更新報文,而且確定待發送的BGP 更新報文攜帶的AS路徑屬性所包含的第一 AS的序列號的個數為3 ;因此步驟203中第一 路由器判定不向第二路由器發送包含該AS路徑屬性的BGP更新報文。
[0052] 在一個實施方式中,該方法進一步包括:
[0053] 當第二路由器的環回能力值發生更新時,第一路由器從第二路由器接收第二路由 器的更新後的環回能力值,而且第一路由器利用第二路由器的更新後的環回能力值更新本 地保存的第二路由器的環回能力值。
[0054] 在一個實施方式中,當第二路由器的環回能力值發生更新時,斷開第一路由器與 第二路由器之間的BGP鄰居,而且第二路由器利用BGP鄰居重新建立過程中的Open報文將 第二路由器的更新後的環回能力值發送到第一路由器。然而,這種處理方式需要斷開並重 建鄰居,對系統性能有不利影響。
[0055] 優選地,當第二路由器的環回能力值發生更新時,第一路由器從第二路由器接收 攜帶有第二路由器的更新後的環回能力值的路由更新(Route-refresh)報文。進一步地, 該第二路由器的更新後的環回能力值攜帶在Route-refresh報文的保留域中。第一路由 器從Route-refresh報文的保留域中提取出第二路由器的更新後的環回能力值,並利用第 二路由器的更新後的環回能力值更新本地保存的第二路由器的環回能力值。因此,通過 Route-refresh報文,既可以將第二路由器的更新後的環回能力值發送到第一路由器,還無 需斷開並重建鄰居。
[0056] Route-refresh報文通常用於要求對等體重新發送指定地址族的路由信息。 Route-refresh報文的欄位格式如下:
[0057]
[0058] 其中:
【權利要求】
1. 一種自治系統AS環路組網中發送更新報文的方法,其特徵在於,所述AS環路組網包 括第一路由器和第二路由器,第二路由器位於第一 AS,該方法包括: 第一路由器接收第二路由器發送的所述第二路由器的環回能力值; 第一路由器確定向第二路由器待發送的邊界網關協議BGP更新報文攜帶的AS路徑屬 性所包含的第一 AS的序列號的個數; 當第一路由器確定所述AS路徑屬性所包含的第一 AS的序列號的個數不大於所述第二 路由器的環回能力值時,向所述第二路由器發送所述BGP更新報文。
2. 根據權利要求1所述的方法,其特徵在於,還包括: 當第二路由器的環回能力值發生更新時,第一路由器接收第二路由器發送的第二路由 器的更新後的環回能力值; 第一路由器利用所述第二路由器的更新後的環回能力值更新本地的第二路由器的環 回能力值。
3. 根據權利要求2所述的方法,其特徵在於,還包括: 當第二路由器的更新後的環回能力值大於第二路由器的更新前的環回能力值時,第一 路由器通過查詢BGP路由表確定未向第二路由器發送的AS路徑屬性; 針對每一條未向第二路由器發送的AS路徑屬性,第一路由器確定該未向第二路由器 發送的AS路徑屬性所包含的第一 AS的序列號的個數; 當第一路由器確定該未向第二路由器發送的AS路徑屬性所包含的第一 AS的序列號的 個數不大於所述第二路由器的更新後的環回能力值時,向所述第二路由器發送攜帶該未向 第二路由器發送的AS路徑屬性的BGP更新報文。
4. 根據權利要求2所述的方法,其特徵在於,還包括: 當第二路由器的更新後的環回能力值小於第二路由器的更新前的環回能力值時,第一 路由器通過查詢BGP路由表確定已向第二路由器發送的AS路徑屬性; 針對每一條已向第二路由器發送的AS路徑屬性,第一路由器確定該已向第二路由器 發送的AS路徑屬性所包含的第一 AS的序列號的個數; 當第一路由器確定該已向第二路由器發送的AS路徑屬性所包含的第一 AS的序列號的 個數大於所述第二路由器的更新後的環回能力值時,向第二路由器發送撤銷報文,所述撤 銷報文攜帶該已向第二路由器發送的AS路徑屬性所對應的路由的路由前綴,以使第二路 由器基於所述路由前綴刪除所述已向第二路由器發送的AS路徑屬性所對應的路由。
5. 根據權利要求1所述的方法,其特徵在於,所述第一路由器接收第二路由器發送的 所述第二路由器的環回能力值包括:第一路由器接收第二路由器發送的攜帶所述第二路由 器環回能力值的打開Open報文。
6. 根據權利要求2所述的方法,其特徵在於,所述第一路由器接收第二路由器發送的 第二路由器的更新後的環回能力值包括:第一路由器接收第二路由器發送的攜帶所述第二 路由器的更新後的環回能力值的路由更新Route-refresh報文。
7. -種自治系統AS環路組網中發送更新報文的裝置,其特徵在於,所述AS環路組網包 括第一路由器和第二路由器,第二路由器位於第一 AS,所述裝置應用於第一路由器,包括: 環回能力值接收模塊,用於接收第二路由器發送的所述第二路由器的環回能力值; 個數確定模塊,用於確定向第二路由器待發送的邊界網關協議BGP更新報文攜帶的AS 路徑屬性所包含的第一 AS的序列號的個數; 更新報文發送模塊,用於當確定所述AS路徑屬性所包含的第一 AS的序列號的個數不 大於所述第二路由器的環回能力值時,向所述第二路由器發送所述BGP更新報文。
8. 根據權利要求7所述的裝置,其特徵在於,還包括: 更新環回能力值接收模塊,用於當第二路由器的環回能力值發生更新時,接收第二路 由器發送的第二路由器的更新後的環回能力值; 更新模塊,用於利用所述第二路由器的更新後的環回能力值更新本地的第二路由器的 環回能力值。
9. 根據權利要求8所述的裝置,其特徵在於,還包括: 未發送路徑屬性確定模塊,用於當第二路由器的更新後的環回能力值大於第二路由器 的更新前的環回能力值時,通過查詢BGP路由表確定未向第二路由器發送的AS路徑屬性; 而且 個數確定模塊,還用於針對每一條未向第二路由器發送的AS路徑屬性,確定該未向第 二路由器發送的AS路徑屬性所包含的第一 AS的序列號的個數; 更新報文發送模塊,還用於當確定所述未向第二路由器發送的AS路徑屬性所包含的 第一 AS的序列號的個數不大於所述第二路由器的更新後的環回能力值時,向所述第二路 由器發送攜帶該未向第二路由器發送的AS路徑屬性的BGP更新報文。
10. 根據權利要求8所述的裝置,其特徵在於,還包括: 已發送路徑屬性確定模塊,用於當第二路由器的更新後的環回能力值小於第二路由器 的更新前的環回能力值時,通過查詢BGP路由表確定已向第二路由器發送的AS路徑屬性; 而且 個數確定模塊,還用於針對每一條已向第二路由器發送的AS路徑屬性,確定該已向第 二路由器發送的AS路徑屬性所包含的第一 AS的序列號的個數; 更新報文發送模塊,還用於當確定該已向第二路由器發送的AS路徑屬性所包含的第 一 AS的序列號的個數大於所述第二路由器的更新後的環回能力值時,向第二路由器發送 撤銷報文,所述撤銷報文攜帶該已向第二路由器發送的AS路徑屬性所對應的路由的路由 前綴,以使第二路由器基於所述路由前綴刪除所述已向第二路由器發送的AS路徑屬性所 對應的路由。
【文檔編號】H04L12/701GK104243303SQ201410497736
【公開日】2014年12月24日 申請日期:2014年9月25日 優先權日:2014年9月25日
【發明者】劉永奎 申請人:杭州華三通信技術有限公司