李竇杰 陳德媛 李銳
【摘要】 在大型的互聯網絡中,會同時運行多個路由協議,為了在同一個互聯網絡中高效地支持多種路由選擇協議,必須在這些不同的路由選擇協議之間共享路由信息[1],即進行路由的重分布。在重分布的過程中,會造成次優路徑問題。利用圖形化網絡環境模擬器GNS3搭建網絡拓撲,通過對雙向雙點重分布實驗的研究,來分析管理距離值對于路由選擇的影響。本文設計了4種方案來解決這個問題。
【關鍵詞】 重分布 雙向雙點 管理距離 次優路徑 PBR
The solution of sub-optimal path in two-way route redistribution
LI Doujie,College of Overseas Education, New York Institute of Technology, Nanjing Campus(NYIT-NUPT) and Nanjing University of Posts and Telecommunications
CHEN Deyuan,School of Electronic Science and Engineering Nanjing University of Posts and Telecommunications
LI Rui,School of Photonic and Electronic Engineering Nanjing University of Posts and Telecommunications
Abstract:Large networks will running multiple protocols, so the routes have to redistribute. Redistribution insure the validity of the networks. In the process of the redistribution, it may generate the trouble of sub-optimal path. In order to solve this problem, we use GNS3(Graphical Network Simulator) to build simulation network environment. By researching the two-way redistribution, we can analyze the effect of the administrative distance in routing selection. In this paper, we designed four solutions to correct sub-optimal.
keywords:Redistribution,Two-way,Administrative distance,Optimal-path,PBR
根據中國電信集團公司的統一規劃,中國電信湖北分公司需要完成HSTP同點碼替換割接工程。在HSTP割接的同時,為確保骨干DXC設備的退網,按照省公司的要求,同步進行了骨干DXC省內電路退網工程。為了確保骨干信令業務在割接期間的安全性,我們在工程實施過程中提出并采用了“兩次過江方案”,以解決骨干DXC省內電路退網過程中帶來的安全隱患。
一、兩次過江方案提出的背景
1.1 HSTP割接中與骨干DXC省內電路退網相關的基本原則
由于本次HSTP替換割接是采用“同信令點編碼”方式進行割接,在考慮到安全性方面的相關因素后,HSTP替換割接工程中與骨干DXC省內電路退網有關的基本原則如下:(1)在割接準備及實施階段的網絡調整,必須保證骨干七號信令網的安全性;(2)在割接過程中,原則上不在進行數據異動,主要以傳輸電路割接為主,且割接點原則上應集中在一個長途傳輸機房內;(3)骨干DXC上的省內電路退網后,HSTP至省內任意一個局點間至少應開放2個不同傳輸路由的電路用于承載信令鏈路。
1.2 割接前省內信令網網絡現狀
如圖1所示,在HSTP割接前,HSTPA/B到省內各本地網共開放電路4個2M,且在LSTP側的一條電路中同時存在到HSTPA和HSTPB的鏈路。因此針對本次HSTP割接替換工程,省內信令網存在以下兩個問題:(1)HSTPA/B至省內LSTP1/2只開放了4個2M,不滿足兩個局點間至少應開放2個不同傳輸路由的電路用于承載信令鏈路的要求;(2)省內LSTP側同一條電路中存在開往2個不同HSTP的電路,導致HSTPA割接時,省內LSTP到HSTPB的信令鏈路也同時中斷。
二、網絡優化基本思路與兩次過江方案的提出
針對省內信令網網絡結構中存在的兩個不同問題,我們提出了以下網絡優化基本思路:(1)在HSTPA/B所在機樓的長途傳輸機房各新增2個2M以滿足兩個局點間至少應開放2個不同傳輸路由的電路用于承載信令鏈路的要求;(2)通過調整骨干DXC數據,使每一條電路上僅開放1個方向的信令鏈路;(3)在HSTP替換割接前,HSTPA/B至LSTP1/2必須各有一半鏈路分別經過DXC1/2進行交叉。(4)原已開放的電路由同一機樓的HSTP使用,分別與省內LSTP1、LSTP2對開信令鏈路。(5)對于分布在2個長途傳輸機房新增的4個2M如何使用,可采用以下兩種方式中的一種:方法一:4個2M分別由另一個機樓的HSTP使用;方法二:4個2M分別由所在一個機樓的HSTP使用。
目前唯一存在問題的就是新增電路的使用方法。經過對兩個方法的分析,對比如下:
(1)方法一:對原有網絡結構異動較小,容易實現HSTPA/B至LSTP1/2各有一半鏈路分別經過DXC1/2進行交叉;由于HSTP與長途傳輸電路不在一個機樓,因此在HSTP替換割接時,割接點會大量分散到兩個長途傳輸機房內,增加HSTP割接難度;該方法會長期大量占用過江中繼資源。
(2)方法二:HSTP與長途傳輸電路在一個機樓,割接點可集中在一個長途傳輸機房;不占用任何過江中繼資源。需要提出專門的方案以實現HSTPA/B至LSTP1/2各有一半鏈路分別經過DXC1/2進行交叉。
經過統籌分析,并結合HSTP替換割接基本原則,建議采用方法二的思路進行網絡優化。
為此,我們第一次提出了以下解決方案(以HSTPA 鏈路C為例):如圖2所示,當鏈路C從交換機出來后,通過第一條過江電路達到另一機樓的DXC2設備,經過DXC2交叉后,通過第二條過江電路5回到HSTPA所在機樓的長途傳輸機房,接入到省內長途傳輸電路中。在割接完畢后,原鏈路使用的2條過江電路均可釋放。
在整個方案中,鏈路C分別經歷了兩次過江中繼,因此該方案也就是本文的重點——“兩次過江方案”。
三、結束語
按照二次過江方案,完成對HSTPA/B至全省14個本地網(含武漢)進行了網絡優化。總計節約過江中繼資源52個2M,也為湖北省HSTP替換割接工程和骨干DXC省內電路退網工作奠定了良好的基礎。同時,兩次過江方案在對于后期的骨干DXC省際電路的退網也有著一定的借鑒作用。
在整個IP互聯網絡中如果從配置管理和故障管理角度看,我們通常更愿意運行一種路由選擇協議,而不是多種路由選擇協議。然而,現代網絡又常常迫使我們接受多協議IP路由選擇這一事實。在某些情況下(如公司的合并,多個網絡管理員管理的多個部門,使用多個廠商設備的網絡環境等)必須使用多個路由協議。運行多個路由協議的網絡環境必須使用路由重分布技術[2]。當多種路由協議“被拼湊”在一起時,使用重分布是很有必要的,而且重分布也是嚴謹網絡設計的一部分[3]。
當只使用一臺路由器來重分發路由時,如果這臺路由器出現故障,不同路由域中的主機就無法互相通信,為避免這種單點故障,大多數重分發設計都要求至少有兩臺路由器執行重分發。兩個領域之間有多個重分發點時,也會帶來一些問題[4]。比如說會產生次優路徑問題。我們通常所說的路由技術其實是由兩項最基本的活動組成,即確定最優路徑和傳輸信息單元[5]。最佳路徑依賴于不同的衡量標準,在確定最佳路徑的路由算法中,路由表(Routing Tables)是一個重要的數據結構, 其中包含了網絡的路由信息[6]。
本文借鑒了路由重分發中次優路徑的解決方案[7]一文中的思路,并加以改進,利用PBR(policy based routing)和distance命令語句設計了4種方案來解決這個問題。
一、次優路徑的產生
1.1 網絡拓撲結構圖
圖1為雙點雙向重分布的網絡結構拓撲圖,本文利用圖形化網絡環境模擬器GNS3搭建網絡拓撲,在GNS3中使用Cisco C7200(即圖中的R1-R5)路由器作為實驗的路由器。圖中R1的s1/1串行接口,R2,R4的s1/0串行接口運行RIP協議,R1的s1/0串行接口,R3,R4的s1/1串行接口以及R4的f0/0以太接口運行OSPF(Open Shortest Path First)協議(是一種在內部網絡中廣泛使用的路由協議[8]),R1,R4同時運行了RIP和OSPF協議,會在上面進行雙向雙點的重分布[9]。同時,R2,R3上分別起一個環回口。R5上輸入命令:no ip routing ip default-gateway 45.1.1.4用來模擬一臺主機。
1.2 次優路徑的定義
多路由協議的使用會產生兩個或多個到達目的的不用路徑,而如何確定目的地的最佳路徑,必須基于管理距離(administrative distance)和度量值(Metric)。不同的協議,其度量值不同;RIP的度量是跳數,OSPF的度量是帶寬,EIGRP的度量是帶寬和延時等[10]。網絡中路由器會首先比較管理距離,如果管理距離相同,則比較度量值。管理距離值被看做一個可信度,管理距離值越小,協議可信度越高。下面列出一些協議的管理距離值:
EIGRP(內部管理距離) 90
IGRP 100
OSPF 110
ISIS 115
RIP 120
EIGRP(外部管理距離)170
在這個實驗中,R1,R4上同時運行了OSPF和RIP兩個協議,并做了雙向重分布。因此,路由器就要通過比較管理距離值從中進行比較選擇。因此,R4選擇了管理距離為110的OSPF路由而沒有選擇管理距離為120的RIP路由,從而造成了次優路徑。 路由協議之間特性相差非常大,在重分發時若忽略了對度量值和管理距離差異的考慮,將導致網絡中出現某些或者全部路由交換失敗,甚至造成路由環路或者網絡黑洞[1]。
1.3 次優路徑現象
當R5和R2之間要進行通信時,理論上R4直接從s1/0走去R2是最優的路徑,但是實際情況同過命令show ip route可以看到如圖2:
通過圖2可以得知,R4去R2并沒有選擇直接從s1/0走,而是走34網段,即經過R3,R1最后再到R2,這說明此時路由并未選擇最佳路徑,產生了次優路徑。
在R4上通過抓包軟件Wireshark抓包,可以看到在R4上只收到了來自R3的OSPF路由更新,如圖3所示。
二、對次優路徑的分析
2.1 理想的路由傳輸路徑
路由器通過評估度量值來決定最佳路徑。要確定路由器的最佳路徑,就需要對指向相同目的網絡的多條路徑進行評估,從中選出到達該網絡的最佳或最短路徑[11]。路由路徑的選擇也取決于網絡中的路由協議[12]。當R5和R2通信時,數據包經過R4,R4上做了雙向重分布,因為OSPF的管理距離110小于RIP的管理距離120,所以選擇下一跳為R3,再經過R1,R1上也做了雙向重分布,最后到達R2。但這不是最理想的路徑,數據包應該直接從R4去往R2完成數據的傳輸,這個路徑才是最優的。
2.2 次優路徑產生的原因
R2上的路由信息到達R1,R1上做RIP到OSPF的重分布,R1和R3都跑了OSPF并已經建立起了OSPF鄰居,R1傳遞給了R3。一個OSPF區域內的數據庫要同步,所以R3可以傳遞給R4。R4收到一條管理距離為110的OSPF路由,與此同時,R2發給R4的一條管理距離為120的RIP路由也到達R4(為路由協議邊界),不同協議學到同一條路由,優先選擇管理距離小的。因為OSPF的管理距離小,所以沒有安裝R(RIP)路由。在R4上做了RIP到OSPF的重分布。但是根據重分布原則,需要復制路由表,但是路由表中沒有R(RIP)路由,所以這個重分布其實是失敗的。如果重分布失敗,那么在R4的數據庫中就不會有自己產生的一條2.2.2.2的五類LSA(Link-State Advertisement),所以R4并沒有選擇直接去R2,而是通過R4—R3—R1—R2,在R3上也只能看到一個下一跳,沒有負載均衡。
三、解決方法
既然造成次優路徑的原因是因為管理距離的問題,那么首先我們會想到通過修改管理距離來解決次優路徑。本文提供4種解決的方案。
第一種解決方案:
在R4上,希望把重分布過來的路由的管理距離改為121(只要大于RIP的管理距離120即可),而OSPF內部的路由(即R3傳遞的路由)管理距離值不變。那么利用distance命令來實現這一需求,如圖4所示。
第二種解決方案:
第二種方案是寫一個訪問控制列表精確匹配,只針對1.1.1.1通告的2.2.2.0路由將AD改為121,對1.1.1.1通告的其它路由AD不變。這是對第一種方案的再優化,如圖5所示。
這里是對distance命令的一種用法:distance [distance] [IP Source address] [Wildcard bits] [IP Standard access list number] 。distance是想要修改的管理距離值;IP Source address是通告路由器的router-id;Wildcard bits是反掩碼,用來確定IP Source address的地址范圍;IP Standard access list number是要掛的訪問控制列表號。
第三種方案:
還可以通過為OSPF設置外部路由的管理距離來解決,只要將外部路由的管理距離增大到超過重分布進來的協議的AD就可以。
■
修改之后在R4上通過命令show ip route同樣可以看到,去往2.2.2.0的下一跳變為24.1.1.2,如圖6所示。
這個方案相比第二種方案的優勢在于,將來有新的路由加進來,我們不需要再修改列表。這在較大型的網絡中比較適合使用,可以省去沒添加一條新的路由就要重新編寫訪問控制列表的麻煩,同時也減少了設備的內存占用。但是,這個方案的缺點是不能對路由進行精確的操控。在路由條目數不多的情況下,推薦第二種方案。
第四種方案:
計算機網絡中,傳統的路由過程往往是依據一個路由表,根據IP包的目的地址進行路由選擇, 在實際的使用中,有時我們希望不僅僅根據IP包的目的地址進行路由,而且希望根據IP包的源地址或其它信息進行路由選擇,通常稱這種路由為基于策略的路由,策略路由提供了一種更復雜的包轉發機制[13]。
PBR就是使用route-map這一工具對某個接口進來的數據流做一些策略,符合條件的按相應的策略進行路由,不符合條件的按正常情況進行轉發[14]。PBR優于路由表——如果路由器上設置了PBR,當數據包到達路由器時,是先匹配PBR,如果匹配上了,直接按PBR進行轉發,如果沒匹配上,再去找路由表進行轉發,所以說PBR覆蓋了正常的路由選擇進程。PBR中不匹配的數據包不會DENY(丟棄),而是normal forwarding(正常轉發)。
通過PBR(policy based routing)來對源是45.1.1.5的數據流量設置下一跳,手動讓其選擇最優路徑。在未做更改前,在R5上通過命令traceroute 2.2.2.2 來觀察[15],如圖7所示:
發現去往R2并沒有選擇走24網段,而是通過R4—R3—R1—R2。
在R4上建立一個標準訪問控制列表匹配來自R5的流量
■
再寫一個route-map,如圖8所示。
最后調用。PBR的調用是要在數據包傳遞的入向接口,即R4的f0/0,如圖9所示。
此時在R5上traceroute可看到如圖10所示。
四、總結
重分布是大型網絡拓撲中必不可少的一個步驟,不同的協議的協議有不同的管理距離值,這將有可能引發次優路徑問題。本文通過GNS3圖形化網絡環境模擬器搭建了模擬實驗環境,分析并給出了解決次優路徑的四種方案。對大型網絡合理有效的運行起到了積極的作用。