RIP路由協議快速入門

路由器的工作不外乎兩個,一是路徑選擇,二是數據轉發。進行數據轉發相對容易一些,難的是如何判斷到達目的網絡的最佳路徑。所以,路徑選擇就成了路由器最重要的工作。
不同的路由協議都各自有各自的路由算法,在同一個環境裏它們有相對的優勢但是在不同的環境裏它們又表現出它們各自的優點。所以我們不能單一的說哪一種路由協議怎麼樣,只有在一定的環境裏讓他們作比較纔是合理的。 
RIP 協議雖然在選擇最優路徑用跳數作爲度量值,支持的網絡環境有限,再收斂上的時間比較長,但是對於小型的網絡他還是有優勢的,因爲它配置簡單維護方便。 

一、RIP是什麼 

RIP(Routing Information Protocols,路由信息協議)是使用最廣泛的距離向量協議,它是由施樂(Xerox)在70年代開發的。當時,RIP是XNS(Xerox Network Service,施樂網絡服務)協議簇的一部分。TCP/IP版本的RIP是施樂協議的改進版。RIP最大的特點是,無論實現原理還是配置方法,都非常簡單。 

度量方法 

RIP的度量是基於跳數(hops count)的,每經過一臺路由器,路徑的跳數加一。如此一來,跳數越多,路徑就越長,RIP算法會優先選擇跳數少的路徑。RIP支持的最大跳數是15,跳數爲16的網絡被認爲不可達。(最多十六個設備) 

路由更新 

RIP中路由的更新是通過定時廣播實現的。缺省情況下,路由器每隔30秒向與它相連的網絡廣播自己的路由表,接到廣播的路由器將收到的信息添加至自身的路由表中。每個路由器都如此廣播,最終網絡上所有的路由器都會得知全部的路由信息。正常情況下,每30秒路由器就可以收到一次路由信息確認,如果經過180秒,即6個更新週期,一個路由項都沒有得到確認,路由器就認爲它已失效了。如果經過240秒,即8個更新週期,路由項仍沒有得到確認,它就被從路由表中刪除。上面的30秒,180秒和240秒的延時都是由計時器控制的,它們分別是更新計時器(Update Timer)、無效計時器(Invalid Timer)和刷新計時器(Flush Timer)。 由此可見它的更新機制不是很好 廣播量很大佔用了一定的網絡帶寬導致延時 

路由循環 

距離向量類的算法容易產生路由循環,RIP是距離向量算法的一種,所以它也不例外。如果網絡上有路由循環,信息就會循環傳遞,永遠不能到達目的地。爲了避免這個問題,RIP等距離向量算法實現了下面4個機制。 

水平分割(split horizon)。水平分割保證路由器記住每一條路由信息的來源,並且不在收到這條信息的端口上再次發送它。這是保證不產生路由循環的最基本措施。 

毒性逆轉(poison reverse)。當一條路徑信息變爲無效之後,路由器並不立即將它從路由表中刪除,而是用16,即不可達的度量值將它廣播出去。這樣雖然增加了路由表的大小,但對消除路由循環很有幫助,它可以立即清除相鄰路由器之間的任何環路。 

觸發更新(trigger update)。當路由表發生變化時,更新報文立即廣播給相鄰的所有路由器,而不是等待30秒的更新週期。同樣,當一個路由器剛啓動RIP時,它廣播請求報文。收到此廣播的相鄰路由器立即應答一個更新報文,而不必等到下一個更新週期。這樣,網絡拓撲的變化會最快地在網絡上傳播開,減少了路由循環產生的可能性。 

抑制計時(holddown timer)。一條路由信息無效之後,一段時間內這條路由都處於抑制狀態,即在一定時間內不再接收關於同一目的地址的路由更新。如果,路由器從一個網段上得知一條路徑失效,然後,立即在另一個網段上得知這個路由有效。這個有效的信息往往是不正確的,抑制計時避免了這個問題,而且,當一條鏈路頻繁起停時,抑制計時減少了路由的浮動,增加了網絡的穩定性。 

即便採用了上面的4種方法,路由循環的問題也不能完全解決,只是得到了最大程度的減少。一旦路由循環真的出現,路由項的度量值就會出現計數到無窮大(Count to Infinity)的情況。這是因爲路由信息被循環傳遞,每傳過一個路由器,度量值就加1,一直加到16,路徑就成爲不可達的了。RIP選擇16作爲不可達的度量值是很巧妙的,它既足夠的大,保證了多數網絡能夠正常運行,又足夠小,使得計數到無窮大所花費的時間最短。 

鄰居  (*值得注意

有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不允許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。 

RIP的缺陷 

RIP雖然簡單易行,並且久經考驗,但是也存在着一些很重要的缺陷,主要有以下幾點: 
過於簡單,以跳數爲依據計算度量值,經常得出非最優路由; 
度量值以16爲限,不適合大的網絡; 
安全性差,接受來自任何設備的路由更新; 
不支持無類IP地址和VLSM(Variable Length Subnet Mask,變長子網掩碼); 
收斂緩慢,時間經常大於5分鐘; 
消耗帶寬很大。 

二、路由器怎麼配 

路由器本身就是一臺有多個網絡接口的計算機,同普通計算機一樣,它也有中央處理器(CPU)、系統主存(RAM)和只讀存儲器(ROM)等部件。 

除此之外,一個很重要的部分是它的網絡接口(Interface),爲了連結不同類型的網絡,路由器的網絡接口種類繁多,比如應用在局域網中的以太、快速以太、令牌環接口,應用於廣域網的V.35、RS232、ISDN BRI PRI接口等等。 
路由器的外存儲器主要有兩種:NVRAM(Non-Volatile RAM,非易失性RAM)和Flash(閃存)。NVRAM存儲路由器的配置文件,Flash用於存放操作系統IOS(Internet Operating System)。 

配置模式 

CISCO路由器最基本的配置模式有兩種:用戶(user)和特權(privileged)。在用戶模式下,只能顯示路由器的狀態,特權模式還可以更改路由器的配置。 

特權模式下可以進入安裝(setup)模式、全局配置(global config)模式,局部配置(sub config)模式。  
安裝模式提供菜單提示,引導用戶進行路由器的基本配置。新路由器第一次啓動後,自動進入安裝模式。 
全局配置模式中可以改變路由器的全局參數,如主機名、密碼等等。 
局部配置改變路由器的局部參數,例如某一個網絡接口的配置、某一種路由協議的配置等等。
Tracing the route to 172.16.4.2 

1 172.16.2.2 16 msec 16 msec * 

testBJ#telnet 172.16.4.2 

Trying 172.16.4.2 ... Open 

User Access 
Verification 

Password: 

testTJ> 

172.16.4.2是路由器testTJ上的一個端口,我們在testBJ上運行上述三個命令,得知它運行正常。 

顯示當前狀態 

爲了使網絡管理員能夠方便地瞭解路由器的狀態,CISCO路由器提供了豐富的show命令。我們在這裏介紹最簡單的幾個,如下所示。 

show version命令顯示路由器的硬軟件版本號及配置信息。 

show flash:命令相當於DOS的dir命令,顯示flash中包含的文件信息。 

show interface命令顯示網絡接口的狀態。 

配置路由器的過程中,最重要的一個show命令莫過於查看配置文件的內容,可以用show命令查看running-config或startup-config,如下所示。 

show running-config 

show startup-config 

配置文件是一個文本文件,其中包含着你鍵入的每一條配置命令。可以將配置文件下載到計算機上,用文本編輯器修改之後,再傳回路由器。 

三、RIP要配什麼 

IP地址配置 

我們可以使用interface命令進入局部配置模式,然後利用ip address設置接口的IP地址。如下所示。 

testBJ#conf t 

Enter configuration commands, one per line. End with CNTL/Z. 

testBJ(config)#interface e0/1 

testBJ(config-if)#ip address 172.16.1.2 255.255.255.0 

testBJ(config-if)# 

爲了便於配置和記憶,你還可以給每個端口添加一些描述信息。如下所示,在端口局部配置模式下使用description命令。 

testBJ(config-if)#description connect to testSH 

testBJ(config-if)#end 

testBJ# 

有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不允許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。 

有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不允許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。 

RIP配置 

RIP是最容易配置的路由協議。配置它只需要兩步操作,首先,指定使用RIP協議,然後,聲明所連接的網絡號,如下所示。 

testBJ(config)#router rip 

testBJ(config-router)#network 172.16.0.0 

testBJ(config-router)#end 

testBJ# 

router rip命令用於指定使用RIP協議,network命令聲明網絡號,由於RIP是一個有類路由協議,所以不必聲明各個子網號。 

對每一臺路由器重複上述操作,一個使用RIP路由的網絡就建成了。 

測試配置正確性 

配置RIP之後,要檢查數據是否可以被正確路由。除了可以使用上面提到的連通性測試工具之外,還有以下幾個命令: 
sh ip route用於檢測路由表; 
sh ip protocols用於檢查路由協議狀況; 
debug ip rip用於調試RIP協議信息。 

使用sh ip route命令顯示各臺路由器的路由表。 

testBJ#sh ip route 

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP 

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP 

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,  

* - candidate default, U - per-user static route, o - ODR 

Gateway of last resort is not set  [Page]

172.16.0.0/24 is subnetted, 4 subnets 

R 172.16.4.0 [120/1] via 172.16.2.2, 00:00:12, Serial1/0 

C 172.16.1.0 is directly connected, Ethernet0/1 

C 172.16.2.0 is directly connected, Serial1/0 

R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:09, Ethernet0/1 

[120/1] via 172.16.2.2, 00:00:22, Serial1/0 

上面顯示的是北京路由器的路由信息。字母C開頭的是直接相連的網絡,有172.16.1.0和172.16.2.0,分別連接在e0/1和s1/0端口上。字母R開頭的是RIP協議學習到的路由,有172.16.3.0和172.16.4.0,其中,到172.16.3.0有兩條路徑供選擇,分別經由testSH和testTJ路由器。對比網絡拓撲圖,可以看出實際情況與設計的完全一致。中括號裏的內容是路由項的管理距離和度量值,RIP的缺省管理距離是120,到達3、4子網的度量值是1,即經過1個路由器可達。 

同樣的命令在另外兩臺路由器上運行,結果如下。 

testSH#sh ip route 

Gateway of last resort is not set 

172.16.0.0/24 is subnetted, 4 subnets 

R 172.16.4.0 [120/1] via 172.16.3.2, 00:00:13, Ethernet0/0 

C 172.16.1.0 is directly connected, Ethernet0/1 

R 172.16.2.0 [120/1] via 172.16.1.2, 00:00:11, Ethernet0/1 

[120/1] via 172.16.3.2, 00:00:13, Ethernet0/0 

C 172.16.3.0 is directly connected, Ethernet0/0 

testTJ#sh ip route 

Gateway of last resort is not set 

172.16.0.0/24 is subnetted, 4 subnets 

C 172.16.4.0 is directly connected, Ethernet0/0 

R 172.16.1.0 [120/1] via 172.16.3.3, 00:00:07, Ethernet0/1 

[120/1] via 172.16.2.3, 00:00:19, Serial1/0 

C 172.16.2.0 is directly connected, Serial1/0 

C 172.16.3.0 is directly connected, Ethernet0/1 

分析上述命令輸出時,一定要隨時參照拓撲圖,離開網絡拓撲,上面的信息就沒有任何意義。動態路由的靈活性體現在一條鏈路出現故障,路由算法會自動切換到迂迴鏈路上。例如我們將testBJ和testTJ之間的串行線纜斷開,一段時間後,再檢查路由表,如下所示。 

testBJ#sh ip route 

Gateway of last resort is not set 

172.16.0.0/24 is subnetted, 3 subnets 

R 172.16.4.0 [120/2] via 172.16.1.3, 00:00:22, Ethernet0/1 
C 172.16.1.0 is directly connected, Ethernet0/1 

R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:22, Ethernet0/1 
我們發現串行鏈路所在的子網2斷開了,到網絡172.16.4.0網絡的數據包都將繞經testSH路由器。 

sh ip protocols命令可以顯示當前路由協議的狀況,如下所示。 

testBJ#sh ip protocols 

Routing Protocol is "rip" 

Sending updates every 30 seconds, next due in 19 seconds 

Invalid after 180 seconds, hold down 180, flushed after 240 

Outgoing update filter list for all interfaces is not set 

Incoming update filter list for all interfaces is not set 

Redistributing: connected, rip 

Default version control: send version 1, receive any version 

Interface Send Recv Key-chain 

Ethernet0/1 1 1 2 

Serial1/0 1 1 2 

Routing for Networks: 

172.16.0.0 

Routing Information Sources: 

Gateway Distance Last Update 

172.16.2.2 120 00:00:05 

172.16.1.3 120 00:00:27 

Distance: (default is 120) 

從命令輸出中,可以看出RIP協議的基本配置,還可以得知與當前路由器交換信息的路由器有testTJ(172.16.2.2)和testSH(172.16.1.3)兩臺路由器,上次接收路由信息分別在5秒和27秒之前。 

要了解路由器之間交換路由信息的詳情,可以使用debug ip rip命令。如下所示,輸入命令後,隔一段時間,控制檯上出現接收或者發送RIP廣播的信息。

testBJ#debug ip rip 

RIP protocol debugging is on 

testBJ# 

RIP: received v1 update from 172.16.2.2 on Serial1/0 

172.16.4.0 in 1 hops 

172.16.3.0 in 1 hops 

RIP: received v1 update from 172.16.1.3 on Ethernet0/1 

172.16.4.0 in 2 hops 

172.16.3.0 in 1 hops 

RIP: sending v1 update to 255.255.255.255 via Ethernet0/1 (172.16.1.2) 
subnet 172.16.4.0, metric 2 

subnet 172.16.2.0, metric 1 

RIP: sending v1 update to 255.255.255.255 via Serial1/0 (172.16.2.3) 

subnet 172.16.1.0, metric 1 
RIP: received v1 update from 172.16.1.3 on Ethernet0/1 

172.16.4.0 in 2 hops 

172.16.3.0 in 1 hops 

RIP: received v1 update from 172.16.2.2 on Serial1/0 

172.16.4.0 in 1 hops 

172.16.3.0 in 1 hops 

testBJ#no debug all 

All possible debugging has been turned off 

testBJ# 

從上述信息中可以得到RIP廣播的詳情。路由器先是從testTJ收到子網3、4的信息,然後又從testSH收到子網3、4的信息。其中,到子網4走testTJ一跳,走testSH兩跳,所以,路由表中反映出來的是經由testTJ到子網4;到子網3的距離都是一跳,所以,路由表中有兩條並列的路由。 

一段時間後,當前路由器的更新計時達到30秒,於是,它在兩條鏈路上廣播自身的路由表信息。注意,廣播路由更新時,RIP採用了水平分割機制,從一個端口上學得的信息就不在這個端口上進行廣播,所以當前路由器testBJ只發送子網172.16.1.0的路由信息。 

使用no debug all命令結束調試信息的顯示。需要注意的是debug命令非常消耗路由器資源,所以不要在通訊繁忙的路由器上使用,否則,路由器就會象死機一樣停止反應。 

怎麼樣,你看一遍這篇文章用了多少時間。下面可以找幾臺路由器,試着配置一下,不是很困難吧。

0

收藏

小百姓

33篇文章,2W+人氣,0粉絲

Ctrl+Enter 發佈

發佈

取消

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章