李竇杰 陳德媛 李銳
【摘要】 在大型的互聯(lián)網(wǎng)絡(luò)中,會同時運行多個路由協(xié)議,為了在同一個互聯(lián)網(wǎng)絡(luò)中高效地支持多種路由選擇協(xié)議,必須在這些不同的路由選擇協(xié)議之間共享路由信息[1],即進(jìn)行路由的重分布。在重分布的過程中,會造成次優(yōu)路徑問題。利用圖形化網(wǎng)絡(luò)環(huán)境模擬器GNS3搭建網(wǎng)絡(luò)拓?fù)洌ㄟ^對雙向雙點重分布實驗的研究,來分析管理距離值對于路由選擇的影響。本文設(shè)計了4種方案來解決這個問題。
【關(guān)鍵詞】 重分布 雙向雙點 管理距離 次優(yōu)路徑 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
根據(jù)中國電信集團(tuán)公司的統(tǒng)一規(guī)劃,中國電信湖北分公司需要完成HSTP同點碼替換割接工程。在HSTP割接的同時,為確保骨干DXC設(shè)備的退網(wǎng),按照省公司的要求,同步進(jìn)行了骨干DXC省內(nèi)電路退網(wǎng)工程。為了確保骨干信令業(yè)務(wù)在割接期間的安全性,我們在工程實施過程中提出并采用了“兩次過江方案”,以解決骨干DXC省內(nèi)電路退網(wǎng)過程中帶來的安全隱患。
一、兩次過江方案提出的背景
1.1 HSTP割接中與骨干DXC省內(nèi)電路退網(wǎng)相關(guān)的基本原則
由于本次HSTP替換割接是采用“同信令點編碼”方式進(jìn)行割接,在考慮到安全性方面的相關(guān)因素后,HSTP替換割接工程中與骨干DXC省內(nèi)電路退網(wǎng)有關(guān)的基本原則如下:(1)在割接準(zhǔn)備及實施階段的網(wǎng)絡(luò)調(diào)整,必須保證骨干七號信令網(wǎng)的安全性;(2)在割接過程中,原則上不在進(jìn)行數(shù)據(jù)異動,主要以傳輸電路割接為主,且割接點原則上應(yīng)集中在一個長途傳輸機(jī)房內(nèi);(3)骨干DXC上的省內(nèi)電路退網(wǎng)后,HSTP至省內(nèi)任意一個局點間至少應(yīng)開放2個不同傳輸路由的電路用于承載信令鏈路。
1.2 割接前省內(nèi)信令網(wǎng)網(wǎng)絡(luò)現(xiàn)狀
如圖1所示,在HSTP割接前,HSTPA/B到省內(nèi)各本地網(wǎng)共開放電路4個2M,且在LSTP側(cè)的一條電路中同時存在到HSTPA和HSTPB的鏈路。因此針對本次HSTP割接替換工程,省內(nèi)信令網(wǎng)存在以下兩個問題:(1)HSTPA/B至省內(nèi)LSTP1/2只開放了4個2M,不滿足兩個局點間至少應(yīng)開放2個不同傳輸路由的電路用于承載信令鏈路的要求;(2)省內(nèi)LSTP側(cè)同一條電路中存在開往2個不同HSTP的電路,導(dǎo)致HSTPA割接時,省內(nèi)LSTP到HSTPB的信令鏈路也同時中斷。
二、網(wǎng)絡(luò)優(yōu)化基本思路與兩次過江方案的提出
針對省內(nèi)信令網(wǎng)網(wǎng)絡(luò)結(jié)構(gòu)中存在的兩個不同問題,我們提出了以下網(wǎng)絡(luò)優(yōu)化基本思路:(1)在HSTPA/B所在機(jī)樓的長途傳輸機(jī)房各新增2個2M以滿足兩個局點間至少應(yīng)開放2個不同傳輸路由的電路用于承載信令鏈路的要求;(2)通過調(diào)整骨干DXC數(shù)據(jù),使每一條電路上僅開放1個方向的信令鏈路;(3)在HSTP替換割接前,HSTPA/B至LSTP1/2必須各有一半鏈路分別經(jīng)過DXC1/2進(jìn)行交叉。(4)原已開放的電路由同一機(jī)樓的HSTP使用,分別與省內(nèi)LSTP1、LSTP2對開信令鏈路。(5)對于分布在2個長途傳輸機(jī)房新增的4個2M如何使用,可采用以下兩種方式中的一種:方法一:4個2M分別由另一個機(jī)樓的HSTP使用;方法二:4個2M分別由所在一個機(jī)樓的HSTP使用。
目前唯一存在問題的就是新增電路的使用方法。經(jīng)過對兩個方法的分析,對比如下:
(1)方法一:對原有網(wǎng)絡(luò)結(jié)構(gòu)異動較小,容易實現(xiàn)HSTPA/B至LSTP1/2各有一半鏈路分別經(jīng)過DXC1/2進(jìn)行交叉;由于HSTP與長途傳輸電路不在一個機(jī)樓,因此在HSTP替換割接時,割接點會大量分散到兩個長途傳輸機(jī)房內(nèi),增加HSTP割接難度;該方法會長期大量占用過江中繼資源。
(2)方法二:HSTP與長途傳輸電路在一個機(jī)樓,割接點可集中在一個長途傳輸機(jī)房;不占用任何過江中繼資源。需要提出專門的方案以實現(xiàn)HSTPA/B至LSTP1/2各有一半鏈路分別經(jīng)過DXC1/2進(jìn)行交叉。
經(jīng)過統(tǒng)籌分析,并結(jié)合HSTP替換割接基本原則,建議采用方法二的思路進(jìn)行網(wǎng)絡(luò)優(yōu)化。
為此,我們第一次提出了以下解決方案(以HSTPA 鏈路C為例):如圖2所示,當(dāng)鏈路C從交換機(jī)出來后,通過第一條過江電路達(dá)到另一機(jī)樓的DXC2設(shè)備,經(jīng)過DXC2交叉后,通過第二條過江電路5回到HSTPA所在機(jī)樓的長途傳輸機(jī)房,接入到省內(nèi)長途傳輸電路中。在割接完畢后,原鏈路使用的2條過江電路均可釋放。
在整個方案中,鏈路C分別經(jīng)歷了兩次過江中繼,因此該方案也就是本文的重點——“兩次過江方案”。
三、結(jié)束語
按照二次過江方案,完成對HSTPA/B至全省14個本地網(wǎng)(含武漢)進(jìn)行了網(wǎng)絡(luò)優(yōu)化。總計節(jié)約過江中繼資源52個2M,也為湖北省HSTP替換割接工程和骨干DXC省內(nèi)電路退網(wǎng)工作奠定了良好的基礎(chǔ)。同時,兩次過江方案在對于后期的骨干DXC省際電路的退網(wǎng)也有著一定的借鑒作用。
在整個IP互聯(lián)網(wǎng)絡(luò)中如果從配置管理和故障管理角度看,我們通常更愿意運行一種路由選擇協(xié)議,而不是多種路由選擇協(xié)議。然而,現(xiàn)代網(wǎng)絡(luò)又常常迫使我們接受多協(xié)議IP路由選擇這一事實。在某些情況下(如公司的合并,多個網(wǎng)絡(luò)管理員管理的多個部門,使用多個廠商設(shè)備的網(wǎng)絡(luò)環(huán)境等)必須使用多個路由協(xié)議。運行多個路由協(xié)議的網(wǎng)絡(luò)環(huán)境必須使用路由重分布技術(shù)[2]。當(dāng)多種路由協(xié)議“被拼湊”在一起時,使用重分布是很有必要的,而且重分布也是嚴(yán)謹(jǐn)網(wǎng)絡(luò)設(shè)計的一部分[3]。
當(dāng)只使用一臺路由器來重分發(fā)路由時,如果這臺路由器出現(xiàn)故障,不同路由域中的主機(jī)就無法互相通信,為避免這種單點故障,大多數(shù)重分發(fā)設(shè)計都要求至少有兩臺路由器執(zhí)行重分發(fā)。兩個領(lǐng)域之間有多個重分發(fā)點時,也會帶來一些問題[4]。比如說會產(chǎn)生次優(yōu)路徑問題。我們通常所說的路由技術(shù)其實是由兩項最基本的活動組成,即確定最優(yōu)路徑和傳輸信息單元[5]。最佳路徑依賴于不同的衡量標(biāo)準(zhǔn),在確定最佳路徑的路由算法中,路由表(Routing Tables)是一個重要的數(shù)據(jù)結(jié)構(gòu), 其中包含了網(wǎng)絡(luò)的路由信息[6]。
本文借鑒了路由重分發(fā)中次優(yōu)路徑的解決方案[7]一文中的思路,并加以改進(jìn),利用PBR(policy based routing)和distance命令語句設(shè)計了4種方案來解決這個問題。
一、次優(yōu)路徑的產(chǎn)生
1.1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
圖1為雙點雙向重分布的網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D,本文利用圖形化網(wǎng)絡(luò)環(huán)境模擬器GNS3搭建網(wǎng)絡(luò)拓?fù)?,在GNS3中使用Cisco C7200(即圖中的R1-R5)路由器作為實驗的路由器。圖中R1的s1/1串行接口,R2,R4的s1/0串行接口運行RIP協(xié)議,R1的s1/0串行接口,R3,R4的s1/1串行接口以及R4的f0/0以太接口運行OSPF(Open Shortest Path First)協(xié)議(是一種在內(nèi)部網(wǎng)絡(luò)中廣泛使用的路由協(xié)議[8]),R1,R4同時運行了RIP和OSPF協(xié)議,會在上面進(jìn)行雙向雙點的重分布[9]。同時,R2,R3上分別起一個環(huán)回口。R5上輸入命令:no ip routing ip default-gateway 45.1.1.4用來模擬一臺主機(jī)。
1.2 次優(yōu)路徑的定義
多路由協(xié)議的使用會產(chǎn)生兩個或多個到達(dá)目的的不用路徑,而如何確定目的地的最佳路徑,必須基于管理距離(administrative distance)和度量值(Metric)。不同的協(xié)議,其度量值不同;RIP的度量是跳數(shù),OSPF的度量是帶寬,EIGRP的度量是帶寬和延時等[10]。網(wǎng)絡(luò)中路由器會首先比較管理距離,如果管理距離相同,則比較度量值。管理距離值被看做一個可信度,管理距離值越小,協(xié)議可信度越高。下面列出一些協(xié)議的管理距離值:
EIGRP(內(nèi)部管理距離) 90
IGRP 100
OSPF 110
ISIS 115
RIP 120
EIGRP(外部管理距離)170
在這個實驗中,R1,R4上同時運行了OSPF和RIP兩個協(xié)議,并做了雙向重分布。因此,路由器就要通過比較管理距離值從中進(jìn)行比較選擇。因此,R4選擇了管理距離為110的OSPF路由而沒有選擇管理距離為120的RIP路由,從而造成了次優(yōu)路徑。 路由協(xié)議之間特性相差非常大,在重分發(fā)時若忽略了對度量值和管理距離差異的考慮,將導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)某些或者全部路由交換失敗,甚至造成路由環(huán)路或者網(wǎng)絡(luò)黑洞[1]。
1.3 次優(yōu)路徑現(xiàn)象
當(dāng)R5和R2之間要進(jìn)行通信時,理論上R4直接從s1/0走去R2是最優(yōu)的路徑,但是實際情況同過命令show ip route可以看到如圖2:
通過圖2可以得知,R4去R2并沒有選擇直接從s1/0走,而是走34網(wǎng)段,即經(jīng)過R3,R1最后再到R2,這說明此時路由并未選擇最佳路徑,產(chǎn)生了次優(yōu)路徑。
在R4上通過抓包軟件Wireshark抓包,可以看到在R4上只收到了來自R3的OSPF路由更新,如圖3所示。
二、對次優(yōu)路徑的分析
2.1 理想的路由傳輸路徑
路由器通過評估度量值來決定最佳路徑。要確定路由器的最佳路徑,就需要對指向相同目的網(wǎng)絡(luò)的多條路徑進(jìn)行評估,從中選出到達(dá)該網(wǎng)絡(luò)的最佳或最短路徑[11]。路由路徑的選擇也取決于網(wǎng)絡(luò)中的路由協(xié)議[12]。當(dāng)R5和R2通信時,數(shù)據(jù)包經(jīng)過R4,R4上做了雙向重分布,因為OSPF的管理距離110小于RIP的管理距離120,所以選擇下一跳為R3,再經(jīng)過R1,R1上也做了雙向重分布,最后到達(dá)R2。但這不是最理想的路徑,數(shù)據(jù)包應(yīng)該直接從R4去往R2完成數(shù)據(jù)的傳輸,這個路徑才是最優(yōu)的。
2.2 次優(yōu)路徑產(chǎn)生的原因
R2上的路由信息到達(dá)R1,R1上做RIP到OSPF的重分布,R1和R3都跑了OSPF并已經(jīng)建立起了OSPF鄰居,R1傳遞給了R3。一個OSPF區(qū)域內(nèi)的數(shù)據(jù)庫要同步,所以R3可以傳遞給R4。R4收到一條管理距離為110的OSPF路由,與此同時,R2發(fā)給R4的一條管理距離為120的RIP路由也到達(dá)R4(為路由協(xié)議邊界),不同協(xié)議學(xué)到同一條路由,優(yōu)先選擇管理距離小的。因為OSPF的管理距離小,所以沒有安裝R(RIP)路由。在R4上做了RIP到OSPF的重分布。但是根據(jù)重分布原則,需要復(fù)制路由表,但是路由表中沒有R(RIP)路由,所以這個重分布其實是失敗的。如果重分布失敗,那么在R4的數(shù)據(jù)庫中就不會有自己產(chǎn)生的一條2.2.2.2的五類LSA(Link-State Advertisement),所以R4并沒有選擇直接去R2,而是通過R4—R3—R1—R2,在R3上也只能看到一個下一跳,沒有負(fù)載均衡。
三、解決方法
既然造成次優(yōu)路徑的原因是因為管理距離的問題,那么首先我們會想到通過修改管理距離來解決次優(yōu)路徑。本文提供4種解決的方案。
第一種解決方案:
在R4上,希望把重分布過來的路由的管理距離改為121(只要大于RIP的管理距離120即可),而OSPF內(nèi)部的路由(即R3傳遞的路由)管理距離值不變。那么利用distance命令來實現(xiàn)這一需求,如圖4所示。
第二種解決方案:
第二種方案是寫一個訪問控制列表精確匹配,只針對1.1.1.1通告的2.2.2.0路由將AD改為121,對1.1.1.1通告的其它路由AD不變。這是對第一種方案的再優(yōu)化,如圖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設(shè)置外部路由的管理距離來解決,只要將外部路由的管理距離增大到超過重分布進(jìn)來的協(xié)議的AD就可以。
■
修改之后在R4上通過命令show ip route同樣可以看到,去往2.2.2.0的下一跳變?yōu)?4.1.1.2,如圖6所示。
這個方案相比第二種方案的優(yōu)勢在于,將來有新的路由加進(jìn)來,我們不需要再修改列表。這在較大型的網(wǎng)絡(luò)中比較適合使用,可以省去沒添加一條新的路由就要重新編寫訪問控制列表的麻煩,同時也減少了設(shè)備的內(nèi)存占用。但是,這個方案的缺點是不能對路由進(jìn)行精確的操控。在路由條目數(shù)不多的情況下,推薦第二種方案。
第四種方案:
計算機(jī)網(wǎng)絡(luò)中,傳統(tǒng)的路由過程往往是依據(jù)一個路由表,根據(jù)IP包的目的地址進(jìn)行路由選擇, 在實際的使用中,有時我們希望不僅僅根據(jù)IP包的目的地址進(jìn)行路由,而且希望根據(jù)IP包的源地址或其它信息進(jìn)行路由選擇,通常稱這種路由為基于策略的路由,策略路由提供了一種更復(fù)雜的包轉(zhuǎn)發(fā)機(jī)制[13]。
PBR就是使用route-map這一工具對某個接口進(jìn)來的數(shù)據(jù)流做一些策略,符合條件的按相應(yīng)的策略進(jìn)行路由,不符合條件的按正常情況進(jìn)行轉(zhuǎn)發(fā)[14]。PBR優(yōu)于路由表——如果路由器上設(shè)置了PBR,當(dāng)數(shù)據(jù)包到達(dá)路由器時,是先匹配PBR,如果匹配上了,直接按PBR進(jìn)行轉(zhuǎn)發(fā),如果沒匹配上,再去找路由表進(jìn)行轉(zhuǎn)發(fā),所以說PBR覆蓋了正常的路由選擇進(jìn)程。PBR中不匹配的數(shù)據(jù)包不會DENY(丟棄),而是normal forwarding(正常轉(zhuǎn)發(fā))。
通過PBR(policy based routing)來對源是45.1.1.5的數(shù)據(jù)流量設(shè)置下一跳,手動讓其選擇最優(yōu)路徑。在未做更改前,在R5上通過命令traceroute 2.2.2.2 來觀察[15],如圖7所示:
發(fā)現(xiàn)去往R2并沒有選擇走24網(wǎng)段,而是通過R4—R3—R1—R2。
在R4上建立一個標(biāo)準(zhǔn)訪問控制列表匹配來自R5的流量
■
再寫一個route-map,如圖8所示。
最后調(diào)用。PBR的調(diào)用是要在數(shù)據(jù)包傳遞的入向接口,即R4的f0/0,如圖9所示。
此時在R5上traceroute可看到如圖10所示。
四、總結(jié)
重分布是大型網(wǎng)絡(luò)拓?fù)渲斜夭豢缮俚囊粋€步驟,不同的協(xié)議的協(xié)議有不同的管理距離值,這將有可能引發(fā)次優(yōu)路徑問題。本文通過GNS3圖形化網(wǎng)絡(luò)環(huán)境模擬器搭建了模擬實驗環(huán)境,分析并給出了解決次優(yōu)路徑的四種方案。對大型網(wǎng)絡(luò)合理有效的運行起到了積極的作用。