【摘要】 目前三大運營商的城域網路由部署策略都普遍采用BGP+IS-IS的模式,即城域網的核心出口路由器和骨干層路由器之間運行BGP協議來交互路由信息,而在城域網內部,則通過IS-IS協議來承載擴散從核心層到接入層的內部路由。本文主要解析了在BGP+IS-IS組網環境下出現路由環路的一個案例及其解決方案。
【關鍵詞】 IS-IS BGP 路由環路 缺省路由
IS-IS(Intermediate System-to-Intermediate System intra-domain routing information exchange protocol,中間系統到中間系統的路由選擇協議)和OSPF都是基于鏈路狀態算法的一種路由協議,采用SPF(Shortest Path First,最短路徑優先)算法來生成相關路由表項,兩者都屬于內部網關協議(IGP),廣泛應用于自治域(AS)系統內部。IS-IS相比OSPF,沒有OSPF那么多的LSA(Link State Packet,鏈路狀態分組),區域類型也很簡單,在現網應用中,啟用IS-IS協議,大多數時候只劃分一到兩個區域。因此,在算法的具體實現上,IS-IS收斂速度更快,更適合大規模路由器組網的環境當中。
BGP (Border Gateway Protocol,邊界網關協議)主要處理各自治域之間的路由傳遞。作為一種外部網關協議(EGP),與內部網關協議不同,其著眼點不在于發現和計算路由,而在于控制路由的傳播和選擇最佳路由。
目前,典型的城域網路由部署策略如下:
①城域網從匯聚層、接入層到寬帶用戶全部使用缺省路由來引導出城域網的上行流量。
②在城域網核心出口路由器上集中使用BGP進行城域網路由的匯總和發布,引導從骨干網進入城域網的下行流量。
路由環路(Routing Loops)指到達某個目標網絡的數據分組在多個路由器之間循環傳送,是網絡中經常出現的一個故障,路由環路的問題通常比喻為網絡中產生了一個黑洞。一旦IP報頭中的生存期(TTL)減到0就會丟棄分組。而在城域網的BGP+IS-IS的組網中,路由環路也時有發生。
一、導致路由環路產生的網絡環境
如圖1所示,路由器 RouterA、RouterB、RouterC、RouterD屬于同一自治域系統(AS100),彼此之間通過IS-IS協議達到IP 網絡互連的目的,RouterE屬于另一自治域(AS200)。
IS-IS在路由域內通常采用兩級的分層結構。一個大的路由域可被分成一個或多個區域(Areas)。區域內的路由通過Level-1(簡稱L1) 路由器管理,區域間的路由通過Level-2(簡稱L2) 路由器管理。L1 路由器只能與相同區域里的路由器形成鄰居關系,即L1路由器只與L1 或Level-1-2(簡稱L1-2)路由器形成鄰居關系。而L2 路由器可與跨區域的路由器形成鄰居關系,即 L2 路由器與L1、L1-2 路由器 和L2 路由器均可形成鄰居關系。
在該網絡環境中,RouterA、RouterB 、RouterC、RouterD的區域號為10,RouterC和RouterD為L1 路由器,RouterA和RouterB為L1-2 路由器。RouterA作為AS100的出口路由器,與AS200的路由器RouterE之間運行EBGP協議,同時, RouterA、RouterB分別對RouterC、RouterD下發了IS-IS缺省路由,因而導致路由環路的出現。
二、故障分析流程
第一步:在RouterA設備上執行命令display bgp routing-table,檢查RouterA的BGP路由表信息內容,有一條到RouterE(192.168.0.2)的BGP缺省路由,如圖2所示,說明RouterE下發至RouterA的BGP缺省路由成功。
圖2 RouterA上BGP路由表內容
第二步:分別在RouterC和RouterD上執行命令display ip routing-table,檢查兩臺路由器上的IP路由表,如圖3、圖4所示,RouterC的缺省路由指向了RouterA(10.10.2.1),RouterD的缺省路由指向了RouterB(10.10.3.1),說明RouterA、RouterB下發至RouterC、RouterD的IS-IS缺省路由成功。
圖3 RouterC的路由表信息
圖4 RouterD的路由表信息
第三步:分別在RouterA 和RouterB上執行命令display ip routing-table,檢查RouterA 和RouterB的IP路由表信息,如圖5、圖6所示,發現RouterA的缺省路由指向了RouterB(10.10.10.2),RouterB的缺省路由指向了RouterA(10.10.10.1),形成了路由環路。
圖5 RouterA的路由表信息
圖6 RouterB的路由表信息
RouterE通過EBGP對RouterA下發了BGP缺省路由,圖2中已經顯示下發成功,但由于IS-IS協議的優先級比BGP協議的優先級高(IS-IS的優先級是10,BGP默認為255),因此,RouterA將缺省路由的下一跳指向了RouterB,這樣就形成了路由環路。
三、解決方案
首先在RouterB去掉下發的缺省路由,命令為:undo default-route-advertise;然后在RouterA查詢路由表信息,如圖7所示,可以看到RouterA的缺省路由的下一跳地址已經從圖5所示的10.10.10.2變為192.168.0.2,成功指向了RouterE,該路由環路故障排除。
圖7 RouterA的路由表信息
四、故障分析總結
在大的組網環境中,往往不同層次之間會采用不同的路由協議,而不同的路由協議,其優先級是有區別的。因此在BGP+IS-IS的路由環境中,配置缺省路由時要注意避免出現因路由協議優先級不同而造成的路由環路。
作者簡介:殷文珊 (1975-),女,湖南岳陽人,湖南郵電職業技術學院教師,工程師,研究方向:寬帶通信技術
基金項目:湖南郵電職業技術學院科研項目“三網融合趨勢下通信企業運維人員崗位及技能標準的研究” 課題編號:2012AZ02
參 考 文 獻
[1]潘登;基于原因分析的BGP路由振蕩抑制技術[D];電子科技大學;2010年
[2]李俊杰;ISIS路由協議中路由計算研究[J];現代電子技術;2011年19期
[3]王娜;ISIS在聯通IP承載網中的設計與應用[D];西安電子科技大學;2010年