劉向東, 寇清華, 張曉蕊, 王德高
(大連民族學(xué)院 a.非線性信息技術(shù)研究所; b.圖書館,遼寧 大連 116600)
?
RIP協(xié)議分析及其實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)
劉向東a, 寇清華b, 張曉蕊a, 王德高a
(大連民族學(xué)院 a.非線性信息技術(shù)研究所; b.圖書館,遼寧 大連 116600)
介紹了RIP協(xié)議的原理以及工作過程,通過設(shè)計(jì)具體的實(shí)驗(yàn)方案,結(jié)合協(xié)議分析軟件捕獲RIP報文,具體地驗(yàn)證了RIP協(xié)議的工作原理與工作過程,展示了RIP的慢收斂問題,并通過配置水平分割或毒化路由等特性,演示了其對RIP慢收斂起到的關(guān)鍵作用,以加深學(xué)生對RIP協(xié)議與路由技術(shù)的理解.
RIP協(xié)議;協(xié)議分析;水平分割;慢收斂
路由技術(shù)是因特網(wǎng)體系結(jié)構(gòu)的基礎(chǔ),而動態(tài)路由協(xié)議又是網(wǎng)絡(luò)互聯(lián)的一項(xiàng)重要的關(guān)鍵技術(shù)。動態(tài)路由協(xié)議在實(shí)際組網(wǎng)中應(yīng)用十分廣泛。也正因?yàn)槿绱?,使得路由協(xié)議成為網(wǎng)絡(luò)工程專業(yè)學(xué)生必需深入理解并掌握的一個重要內(nèi)容。
在眾多的路由協(xié)議當(dāng)中,路由信息協(xié)議(Routing Information Protocol,RIP)是一種簡單的、采用距離-矢量(Distance-Vector,DV)算法的域內(nèi)動態(tài)路由協(xié)議[1-3],非常適合作為實(shí)驗(yàn)內(nèi)容,以加深學(xué)生對路由協(xié)議的理解。RIP協(xié)議是XEROX的Palo Alto研究中心(PARC)在XEROX的早期PDU和XNC路由選擇協(xié)議的基礎(chǔ)上開發(fā)的,但RIP協(xié)議的廣泛應(yīng)用卻主要得益于加利福尼亞大學(xué)伯克利分校的routed程序?qū)崿F(xiàn),并將其和4BSD UNIX系統(tǒng)一起分發(fā)[2]。RIP主要應(yīng)用于使用同種技術(shù)的中小型網(wǎng)絡(luò)。對于更復(fù)雜的網(wǎng)絡(luò)環(huán)境,RIP受到無限計(jì)算問題的困擾,往往收斂得很慢,一般使用不多。
在計(jì)算機(jī)網(wǎng)絡(luò)原理課程中,關(guān)于動態(tài)路由協(xié)議的內(nèi)容普遍不多[4-7],很多技術(shù)細(xì)節(jié)都鮮有介紹。在組網(wǎng)技術(shù)、網(wǎng)絡(luò)管理等課程中有關(guān)RIP的實(shí)驗(yàn)主要是配置RIP[8-11],對加深學(xué)生理解RIP與路由協(xié)議工作原理的作用不大。本文設(shè)計(jì)的RIP原理實(shí)驗(yàn)基于協(xié)議分析的方法,通過觀察RIP報文的傳遞與V-D報文的具體內(nèi)容,直觀展現(xiàn)RIP的工作原理與工作過程,使學(xué)生可以深入理解RIP與路由協(xié)議的工作原理,更好地體會其存在的無窮計(jì)算問題,領(lǐng)悟水平分割與毒化路由的設(shè)計(jì)想法,并通過實(shí)驗(yàn)提高其分析問題和解決問題的能力。
1.1 矢量-距離算法
RIP基于D-V基本思想是:路由器剛啟動時僅知道自己直連的網(wǎng)段。每個路由器周期性地向外廣播自己的V-D報文,主要內(nèi)容是由若干(V,D)序偶組成的序偶表;序偶中的“向量”V標(biāo)識路由器可到達(dá)的信宿,“距離”D指出該路由器去往信宿V的距離,按需轉(zhuǎn)發(fā)的路由器的個數(shù)計(jì)。其他路由器收到某路由器的(V,D)報文后,據(jù)此按照最短路徑原則對各自的路由表進(jìn)行刷新。
路由表更新的原則如下:
(1) 如果(V,D)報文通告的是一個新的信宿,即原來自己的路由表中沒有到信宿V的路由,路由器須增加相應(yīng)新的到信宿V的表目到自己的路由表,其“距離”為D + 1,下一跳為發(fā)送該(V,D)報文的路由器;
(2) 如果(V,D)報文通告的不是一個新的信宿,但其去往該信宿的距離較自己現(xiàn)在的好,即比自己去往該信宿的距離減1還小,路由器須更新該信宿表目,其“距離”為D+1,下一跳為發(fā)送該(V,D)報文的路由器;
(3) 如果(V,D)報文通告的既不是一個新的信宿,其去往該信宿的距離也不比自己現(xiàn)在的好,但卻是自己原來對應(yīng)表項(xiàng)中的下一跳路由器,即自己去往該信宿的路由是從該路由器學(xué)習(xí)來的,路由器也須更新該信宿表目,其“距離”為D + 1,下一跳仍為發(fā)送該(V,D)報文的路由器;
(4) 其他情形不進(jìn)行路由表更新。
1.2 RIP報文的格式
RIP報文封裝在UDP報文中,使用UDP的520號周知端口[12]. 受UDP報文的長度的限制,RIP報文不能超過512B。RIP有2個版本,RIP v1和RIP v2的報文格式稍有不同。不包含認(rèn)證項(xiàng)的RIP v2報文格式如圖1所示[13-14]。而RIP v1的報文格式與RIP v2很類似,只是圖中黃色字段必須為全0。
圖1 RIP v2報文格式
在RIP報文中,命令字段的正式值有1和2,分別標(biāo)識一個請求報文和一個響應(yīng)報文。版本字段的值的范圍是從1到2,分別標(biāo)識RIP v1和RIP v2。路由選擇域指明與該報文相關(guān)的路由選擇守護(hù)進(jìn)程的標(biāo)識符. 在UNIX系統(tǒng)中,該字段是一個進(jìn)程的標(biāo)識符。一臺機(jī)器通過使用路由選擇域,可以同時運(yùn)行多個RIP。但現(xiàn)在的標(biāo)準(zhǔn)建議不用,所以總是為全0。后面是1~25個可變數(shù)目的20B的V-D信息. 每個V-D信息包含:
地址族標(biāo)識字段,對于IP地址,該字段的值為2。
路由標(biāo)記(Routing tag)為外部路由標(biāo)記,是為了支持外部網(wǎng)關(guān)協(xié)議而設(shè)計(jì)的。它攜帶著一個自治系統(tǒng)號,是表示路由是保留還是重播的屬性. 它提供一種從外部路由中分離內(nèi)部路由的方法,用于傳播從外部路由器協(xié)議獲得的路由信息。
網(wǎng)絡(luò)地址和子網(wǎng)掩碼字段,標(biāo)識目的網(wǎng)絡(luò)的IP地址與掩碼。
下一跳地址,如果該字段為0,則表明分組應(yīng)當(dāng)發(fā)送到正在發(fā)送該RIP報文的路由器,否則,該字段包含一個IP地址,指明應(yīng)將分組發(fā)往何處。
距離字段,標(biāo)識到達(dá)目的網(wǎng)絡(luò)的跳數(shù)。
從報文中我們可以看出,RIP v1是有類路由協(xié)議,不支持無類域間路由CIDR和變長子網(wǎng)掩碼VLSM,因?yàn)樗腣-D信息沒有包含所必須的子網(wǎng)信息-子網(wǎng)掩碼。RIP v2是無類路由協(xié)議,支持無類域間路由和變長子網(wǎng)掩碼,這也是RIP v2對RIP v1有意義的改進(jìn)。
1.3 RIP協(xié)議存在的問題和解決的方法
RIP使用D-V算法. D-V算法的優(yōu)點(diǎn)是簡單、易于實(shí)現(xiàn),但是存在一個問題:當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時,要經(jīng)過比較長的時間才能將此信息傳送到所有的路由器[13,14]。因?yàn)槟陈酚善鞯穆窂阶兓癫▌右粯訌南噜徛酚善鱾鞑コ鋈ィ溥^程非常緩慢。且D-V算法路徑刷新過程中,可能出現(xiàn)路徑不一致和尋徑回路等問題,即所謂的“慢收斂”(Slow convergence)與“計(jì)數(shù)到無窮”(Count to infinity)問題。所以,RIP不適應(yīng)路徑劇烈變化的或大型的網(wǎng)間網(wǎng)環(huán)境。
為防止尋徑回路的長期存在,RIP規(guī)定,長度為16的路徑為無限長路徑,即不存在路徑。同時,引入水平分割(Split horizon)、毒性逆轉(zhuǎn)(Poison Reverse)和觸發(fā)更新(Triggered update)等技術(shù)減少出現(xiàn)尋徑回路的可能性。水平分割的原理是:當(dāng)路由器從某個接口發(fā)送RIP報文時,其中不能包含從該接口獲得的路徑信息,這樣就能消除相鄰路由器間的環(huán)路。毒性逆轉(zhuǎn)法是水平分割的加強(qiáng)版,它在路由器從某個接口發(fā)送RIP報文時,將從該接口獲得的路徑信息的距離置為16,即不可達(dá)。為了加強(qiáng)水平分割與毒性逆轉(zhuǎn)的效果,可以同時使用觸發(fā)更新技術(shù):一旦檢測到路徑崩潰,立即廣播RIP路徑刷新報文,而不必等待下一個廣播周期,以使新的路由信息盡快傳送到所有路由器上。
2.1 實(shí)驗(yàn)名稱
RIP協(xié)議分析。
2.2 實(shí)驗(yàn)?zāi)康?/p>
在路由器上配置啟用RIP協(xié)議,并利用協(xié)議分析軟件捕獲RIP報文,了解RIP的工作過程。同時,改變網(wǎng)絡(luò)的連接狀態(tài),觀察理解RIP的慢收斂現(xiàn)象,體會水平分割與觸發(fā)更新更新技術(shù)的作用。
2.3 實(shí)驗(yàn)設(shè)備
實(shí)驗(yàn)采用華為AR2200系列路由器4臺,在2號槽位配1塊8FE1GE接口卡。實(shí)驗(yàn)另需Hub 5臺,4臺主機(jī),均安裝開源協(xié)議分析軟件WireShark。
2.4 實(shí)驗(yàn)拓?fù)?/p>
實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙鐖D2所示。各路由器接口間連接
與IP地址的分配如圖中標(biāo)注。
圖2 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D
2.5 實(shí)驗(yàn)過程與參考配置
(1) 不啟動路由協(xié)議時網(wǎng)絡(luò)的連通狀況。連接好相應(yīng)設(shè)備后,我們首先在路由器上配置各接口IP地址。以Router A為例,在其上配置:
在路由器B、C和D上也進(jìn)行類似配置。配置完成后,在各個路由器上,通過display ip routing-table命令觀察各個路由器的路由表。由于還沒有運(yùn)行路由協(xié)議,每個路由器路由表中只有直連的路由表項(xiàng),所以這4個路由器間還不會完全聯(lián)通??梢酝ㄟ^ping命令測試路由器間的聯(lián)通性驗(yàn)證這一結(jié)果。
(2) 啟動RIP后網(wǎng)絡(luò)的連通狀況。接下來我們分別在4個路由器上啟動RIP協(xié)議,其中Router A的配置命令為:
[Huawei] rip #在系統(tǒng)視圖下配置,設(shè)置RIP協(xié)議
[Huawei-rip-1] network 192.168.1.0 #設(shè)置啟用RIP協(xié)議的網(wǎng)絡(luò)
[Huawei-rip-1] network 192.168.2.0
[Huawei-rip-1] rip version 2 #設(shè)置使用RIP v2
再觀察各個路由器的路由表,并測試路由器間的聯(lián)通性。此時,每個路由器的路由表中不僅直連的路由表項(xiàng),還有通過RIP學(xué)到的路由,并且具有到達(dá)圖中每個網(wǎng)絡(luò)地址的路由,整個網(wǎng)絡(luò)是連通的。
在每個主機(jī)上開始抓包,并進(jìn)行協(xié)議分析??梢杂^察到路由器間周期性組播的RIP v2報文,檢查RIP報文,對比各路由器的路由表,可以驗(yàn)證RIP報文中傳遞的V-D信息。
(3) 理解水平分割與觸發(fā)更新的工作方式。華為路由器RIP啟動后默認(rèn)就啟用水平分割與觸發(fā)更新. 可以在接口狀態(tài)通過命令undo rip split-horizon 禁用該接口啟動水平分割功能. 在路由器各接口禁用水平分割后,再次觀察RIP報文中的V-D信息。與沒禁用水平分割時的V-D信息對比,可以看到禁用水平分割后,V-D信息包含全部路由表項(xiàng),而啟用水平分割功能后,V-D信息包含的只是不是從該接口學(xué)下到的那部分路由表項(xiàng)。
然后,通過改變網(wǎng)絡(luò)連接狀況,比如,down掉Router B的Ethernet2/0/2接口,通過分析捕獲的RIP報文觀察觸發(fā)更新的工作方式。觸發(fā)更新發(fā)出的RIP報文只含引發(fā)觸發(fā)的路由變化的V-D信息,在我們的例子中就是只含一條關(guān)于192.168.20.0/24的路由信息,跳數(shù)為16。而周期性的路由更新報文包含整個路由表,或經(jīng)水平分割過濾過的整個路由表。
(4) 觀察、理解收斂到無窮現(xiàn)象。保存4個路由器的配置,并在主機(jī)上啟動協(xié)議分析軟件進(jìn)行捕包。然后重新啟動各個路由器,讓它們重新交換路由信息。這樣,就可以捕獲路由器進(jìn)行路由信息交換的所有RIP報文。通過對RIP報文的分析,對照各個路由器的路由表,就可以了解RIP協(xié)議工作的全過程。
繼續(xù)禁用路由器的水平分割功能,并down掉Router B的Ethernet2/0/2接口。在各個主機(jī)上經(jīng)過一段時間的捕獲RIP報文,然后終止。這些RIP報文就可以反映RIP的工作過程,以及收斂到無窮的過程與現(xiàn)象。為便于協(xié)議分析,首先利用WireShark的數(shù)據(jù)合并功能,將4個主機(jī)上抓獲的報文按時間合并到一個cap文件中[15]。下面是我們分析該文件關(guān)于192.168.20.0/24的V-D信息的部分結(jié)果。見表1。我們只列出了前面的一部分,可以請學(xué)生根據(jù)抓包文件補(bǔ)全該表,并運(yùn)用協(xié)議運(yùn)行原理,分析理解表中各項(xiàng)間的關(guān)系與合理性。
表1 4個路由器間關(guān)于192.168.20.0/24的交互的
路由協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)、組網(wǎng)技術(shù)、網(wǎng)絡(luò)管理等網(wǎng)絡(luò)工程專業(yè)系列課程的教學(xué)重點(diǎn)內(nèi)容,也是學(xué)生難以深入理解的知識點(diǎn)之一。利用協(xié)議分析的方法,通過跟蹤路由器間路由信息的交互、分析傳遞的V-D報文的具體內(nèi)容,對比路由表的變化,明了、直觀地展現(xiàn)了RIP工作原理和工作工程,既加深了學(xué)生對RIP及其存在的無窮計(jì)算問題與水平分割、毒化路由技術(shù)的理解,又很好地培養(yǎng)了學(xué)生分析問題、解決問題、以及綜合應(yīng)用知識的能力,教學(xué)效果良好。
[1] Douglas E Comer. 用TCP/IP進(jìn)行網(wǎng)際互聯(lián)第一卷:原理、協(xié)議與結(jié)構(gòu)[M]. 林瑤譯,謝希仁校.4版.北京:電子工業(yè)出版社,2006.
[2] Jeff Doyle, Jennifer Carroll. TCP/IP路由技術(shù)(第一卷)[M]. 2版. 葛建立譯.北京:人民郵電工業(yè)出版社,2011.
[3] Jeff Doyle, Jennifer Carroll. TCP/IP路由技術(shù)(第二卷)[M]. 夏俊杰譯.北京:人民郵電工業(yè)出版社,2011.
[4] 吳功宜,吳 英. 計(jì)算機(jī)網(wǎng)絡(luò)[M]. 北京:清華大學(xué)出版社,2004.
[5] 謝希仁. 計(jì)算機(jī)網(wǎng)絡(luò)[M]. 5版.北京:電子工業(yè)出版社,2007.
[6] Andrew S Tanenbaum. 計(jì)算機(jī)網(wǎng)絡(luò)[M].5版. 嚴(yán)偉譯. 北京:清華大學(xué)出版社,2012.
[7] Forouzan B A. TCP/IP協(xié)議族[M].4版. 王海譯,謝希仁校. 北京:清華大學(xué)出版社, 2011.
[8] 田增國, 劉晶晶, 張召賢. 組網(wǎng)技術(shù)與網(wǎng)絡(luò)管理[M]. 2版.北京:清華大學(xué)出版社,2009.
[9] 黃中砥, 張召賢, 周飛菲. 組網(wǎng)技術(shù)與網(wǎng)絡(luò)管理[M]. 北京:清華大學(xué)出版社,2006.
[10] 惠 玥,張 嬡,唐海濤. IP靜態(tài)路由實(shí)驗(yàn)的研究[J]. 實(shí)驗(yàn)室研究與探索,2010,29(11):61-64.
[11] 傅 偉,高海俠,熊 平. RIP路由協(xié)議實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 實(shí)驗(yàn)技術(shù)與管理,2012,29(5):127-129.
[12] Hedrick C. Routing Information Protocol[EB/OL]. IETF RFC1058(1988), http://www.rfceditor.org.
[13] Malkin G. RIP Version 2 Protocol Analysis[EB/OL]. IETF RFC1721(1994), http://www.rfceditor. org .
[14] Malkin G. RIP Version 2 [EB/OL]. IETF RFC2453(1998), http://www.rfceditor. org.
[15] Angela Orebaugh, Gilbert Ramirez, Jay Beale. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M]. Burlington:Syngress Press, 2006:87-89.
Design and Operation of RIP Protocol Analysis Experiment
LIUXiang-donga,KOUQing-huab,ZHANGXiao-ruia,WANGDe-gaoa
(a. The Institute of Nonlinear Information Technology; b. Library,Dalian Nationalities University, Dalian 116600, China)
This paper introduces the background, principles and implementation of Routing Information Protocol (RIP), shows the routing process of RIP by specific experiments with the aid of protocol analysis method. The experiment demonstrates slow convergence phenomenon, and the key effect of split horizon technology. The experiment enhances the self-study abilities of students.
RIP; protocol analysis; split horizon; slow convergence
2014-05-29
中央高校基本科研專項(xiàng)基金(DC12010106);大連民族學(xué)院教育教學(xué)改革項(xiàng)目
劉向東(1967-),男,山東萊州人,博士,教授,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及信息安全。E-mail:liuxd@dlnu.edu.cn
TP 393.08
A
1006-7167(2015)01-0122-04