複製鏈接
請複製以下鏈接發送給好友

RIP協議

鎖定
RIP(Routing Information Protocol,路由信息協議)是使用最久的協議之一。RIP是一種分佈式的基於距離向量的路由選擇協議,RIP協議是施樂公司20世紀80年代推出的,主要適用於小規模的網絡環境。RIP協議主要用於一個AS(自治系統)內的路由信息的傳遞,每30s發送一次路由信息更新。 [4] 
RIP應用於OSI網絡七層模型的應用層。各廠家定義的管理距離(AD,即優先級)如下:華為定義的優先級是100,思科定義的優先級是120。
中文名
RIP協議
外文名
Routing Information Protocol
採用原理
距離向量算法
性    質
一種內部網關協議
性    能
自治系統內的路由信息的傳遞

RIP協議基本概況

RIP協議採用距離向量算法,在實際使用中已經較少適用。在默認情況下,RIP使用一種非常簡單的度量制度:距離就是通往目的站點所需經過的鏈路數,取值為0~16,數值16表示路徑無限長。RIP進程使用UDP的520端口來發送和接收RIP分組。RIP分組每隔30s以廣播的形式發送一次,為了防止出現“廣播風暴”,其後續的分組將做隨機延時後發送。在RIP中,如果一個路由在180s內未被刷新,則相應的距離就被設定成無窮大,並從路由表中刪除該表項。RIP分組分為兩種:請求分組和響應分組。

RIP協議歷史演化

RIP-1被提出較早,其中有許多缺陷。為了改善RIP-1的不足,在RFC1388中提出了改進的RIP-2,並在RFC1723和RFC2453中進行了修訂。RIP-2定義了一套有效的改進方案,新的RIP-2支持子網路由選擇,支持CIDR,支持組播,並提供了驗證機制。
隨着OSPF和IS-IS的出現,許多人認為RIP已經過時了。但事實上RIP也有它自己的優點。對於小型網絡,RIP就所佔帶寬而言開銷小,易於配置、管理和實現,並且RIP還在大量使用中。但RIP也有明顯的不足,即當有多個網絡時會出現環路問題。為了解決環路問題,IETF提出了分割範圍方法,即路由器不可以通過它得知路由的接口去宣告路由。分割範圍解決了兩個路由器之間的路由環路問題,但不能防止3個或多個路由器形成路由環路。觸發更新是解決環路問題的另一方法,它要求路由器在鏈路發生變化時立即傳輸它的路由表。這加速了網絡的聚合,但容易產生廣播氾濫。總之,環路問題的解決需要消耗一定的時間和帶寬。若採用RIP協議,其網絡內部所經過的鏈路數不能超過15,這使得RIP協議不適於大型網絡。

RIP協議報文格式

071531
命令字(1字節)版本(1字節)必須為0(2字節)
地址類型標識符(2字節)必須為0(2字節)
必須為0
必須為0
Metric值(1—16)
(最多可以有24個另外的路由,與前20字節具有相同的格式)
“命令字”字段為1時表示RIP請求,為2時表示RIP應答。地址類型標誌符在實際應用中總是為2,即地址類型為IP地址。“IP地址”字段表明目的網絡地址,“Metric”字段表明了到達目的網絡所需要的“跳數”。

RIP協議結構

使用R I P報文中列出的項, RIP主機可以彼此之間交流路由信息。這些信息存儲在路由表中,路由表為每一個知道的、可達的目的地保留一項。每個目的地表項是到達那個目的地的最低開銷路由。
注意每個目的地的表項數可以隨路由生產商的不同而變化。生產商可能選擇遵守規範,也可以對標準進行他們認為合適的“強化”。所以,用户很可能會發現某個特殊商標的路由器為每一個網絡中的目的地存儲至多4條相同費用的路由。
每個路由表項包括以下各域:
目的IP地址域
距離-向量度量域
下一跳IP地址域
路由變化標誌域
路由計時器域
注意雖然RFC 1058是一個開放式標準,能支持大量互連網絡地址結構,然而它是由IETF設計用於Internet中自治系統內的協議。如此,使用這種形式RIP的自然是網絡互聯協議。
1. 目的IP地址域
任何路由表中所包含的最重要信息是到所知目的地的I P地址。一但一台RIP路由器收到一個數據報文,就會查找路由表中的目的I P地址以決定從哪裏轉發那個報文。
2. 度量標準域
路由表中的度量域指出報文從起始點到特定目的地的總耗費。路由表中的度量是從路由器到特定目的地之間網絡鏈路的耗費總和。
3. 下一跳IP地址域
下一跳IP地址域包括至目的地的網絡路徑上下一個路由器接口的IP地址。如果目的IP地址所在的網絡與路由器不直接相連時,路由器表中才出現此項。
4. 路由變化標誌域
路由變化標誌域用於指出至目的I P地址的路由是否在最近發生了變化。這個域是重要的,因為R I P為每一個目的I P地址只記錄一條路由。
5. 路由計時器域
有兩個計時器與每條路由相聯繫,一個是超時計時器,一個是路由刷新計時器。這些計時器一同工作來維護路由表中存儲的每條路由的有效性。路由表維護過程在1 2 . 2 . 2節中詳細描述。

RIP協議補充內容

RIP(RoutinginformationProtocol)是應用較早、使用較普遍的內部網關協議(InteriorGatewayProtocol,簡稱IGP),適用於小型同類網絡,是典型的距離向量(distance-vector)協議。文檔見RFC1058、RFC1723。RIPv2文檔見RFC2543 [1] 
RIP通過廣播UDP報文來交換路由信息,每30秒發送一次路由信息更新。RIP提供跳躍計數(hopcount)作為尺度來衡量路由距離,跳躍計數是一個包到達目標所必須經過的路由器的數目。如果到相同目標有二個不等速或不同帶寬的路由器,但跳躍計數相同,則RIP認為兩個路由是等距離的。RIP最多支持的跳數為15,即在源和目的網間所要經過的最多路由器的數目為15,跳數16表示不可達。

RIP協議基本配置

*先把IP跟loopback口配置好。
做好實驗前的配置後我們來配置路由器R1、拿他當範例:
R1#configure terminal //進入配置模式
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router rip //啓動RIP協議
R1(config-router)#version 1 //配置RIP版本1
R1(config-router)#network 1.0.0.0 //通告網絡、意思就是告訴別人自己所連接的網絡
R1(config-router)#network 192.168.12.0
R1(config-router)#exit
R1(config)#
然後把其他路由器也都按R1的配置進行操作。配置RIP1版本、然後通告自己所連接的網絡。
注:1.Cisco的RIP版本2支持驗證、密鑰管理、路由彙總、無類域間路由(CIDR)和變長子網掩碼(VLSMs)

RIP協議基本舉例

Router1:
router rip version 2 network 192.200.10.0 network 192.20.10.0!相關調試命令:show ip protocol
show ip route在全局設置(#)模式下:1.啓動RIP路由router rip2.設置參與RIP路由的子網network子網地址3.允許在非廣播型網絡中進行RIP路由廣播neighbor相鄰路由器相鄰端口的IP地址4.設置RIP的版本RIP路由協議有2個版本,在與其它廠商路由器相連時,注意版本要一致,缺省狀態下,Cisco路由器接收RIP版本1和2的路由信息,但只發送版本1的路由信息,設置RIP的版本vesion1或2。另外,還可以控制特定端口發送或接收特定版本的路由信息。1.只在特定端口發版本1或2的信息,在端口設置模式下rip send version1或22.同時發送版本1和2的信息ip rip send receive1or23.在特定端口接受版本1或2的路由信息ip rip receive1or24.同時接受版本 1和2的路由信息ipripreceive1or2選擇路由協議幾點建議:1.在大型網絡中,建議使用ospf,eigrp.2.如果網絡中含有變長了網掩碼(VISM)不能使用igrp,rip版本1,可以使用rip版本2,ospf,eigrp或靜態路由。3.如果使用路由安全設置可以使用RIP版本1或OSPF。4.選用ospf,eigrp在系統穩定後所佔帶寬比RIP,IGRP少得多,IGRP比RIP所佔帶寬也少。5.綜合使用動態路由,靜態路由,缺省路由,以保證路由的冗餘。6.在撥號線路上儘量使用靜態路由,以節省費用。7.在小型網絡上數據量不大的情況下,且不需要高可性,廣域網線路為X.25SVC時,建議用靜態路由。

RIP協議侷限性

1)、協議中規定,一條有效的路由信息的度量(metric)不能超過15,這就使得該協議不能應用於很大型的網絡,應該説正是由於設計者考慮到該協議只適合於小型網絡所以才進行了這一限制。對於metric為16的目標網絡來説,即認為其不可到達。
2)、該路由協議應用到實際中時,很容易出現“計數到無窮大”的現象,這使得路由收斂很慢,在網絡拓撲結構變化以後需要很長時間路由信息才能穩定下來。
3)、該協議以跳數,即報文經過的路由器個數為衡量標準,並以此來選擇路由,這一措施欠合理性,因為沒有考慮網絡延時、可靠性、線路負荷等因素對傳輸質量和速度的影響。

RIP協議特性

(1)路由信息更新特性:
路由器最初啓動時只包含了其直連網絡的路由信息,並且其直連網絡的metric值為1,然後它向周圍的其他路由器發出完整路由表的RIP請求(該請求報文的“IP地址”字段為0.0.0.0)。路由器根據接收到的RIP應答來更新其路由表,具體方法是添加新的路由表項,並將其metric值加1。如果接收到與已有表項的目的地址相同的路由信息,則分下面三種情況分別對待:第一種情況,已有表項的來源端口與新表項的來源端口相同,那麼無條件根據最新的路由信息更新其路由表;第二種情況,已有表項與新表項來源於不同的端口,那麼比較它們的metric值,將metric值較小的一個最為自己的路由表項;第三種情況,新舊錶項的metric值相等,普遍的處理方法是保留舊的表項。
路由器每30秒發送一次自己的路由表(以RIP應答的方式廣播出去)。針對某一條路由信息,如果180秒以後都沒有接收到新的關於它的路由信息,那麼將其標記為失效,即metric值標記為16。在另外的120秒以後,如果仍然沒有更新信息,該條失效信息被刪除。
(2)RIP版本1對RIP報文中“版本”字段的處理:
0:忽略該報文。
1:版本1報文,檢查報文中“必須為0”的字段,若不符合規定,忽略該報文。
>1:不檢查報文中“必須為0”的字段,僅處理RFC 1058中規定的有意義的字段。因此,運行RIP版本1的機器能夠接收處理RIP版本2的報文,但會丟失其中的RIP版本2新規定的那些信息。
(3)RIP版本1對地址的處理
RIP版本1不能識別子網網絡地址,因為在其傳送的路由更新報文中不包含子網掩碼,因此RIP路由信息要麼是主機地址,用於點對點鏈路的路由;要麼是A、B、C類網絡地址,用於以太網等的路由;另外,還可以是0.0.0.0,即缺省路由信息。
(4)計數到無窮大(Counting to Infinity)
前面在RIP的侷限性一部分提到了可能出現的計數到無窮大的現象,下面就來分析一下該現象的產生原因與過程。考察下面的簡單網絡:
c(目的網絡)----router A------router B
在正常情況下,對於目標網絡,A路由器的metric值為1,B路由器的metric值為2。當目標網絡與A路由器之間的鏈路發生故障而斷掉以後:
c(目的網絡)--||--router A------router B
A路由器會將針對目標網絡C的路由表項的metric值置為16,即標記為目標網絡不可達,並準備在每30秒進行一次的路由表更新中發送出去,如果在這條信息還未發出的時候,A路由器收到了來自B的路由更新報文,而B中包含着關於C的metric為2的路由信息,根據前面提到的路由更新方法,路由器A會錯誤的認為有一條通過B路由器的路徑可以到達目標網絡C,從而更新其路由表,將對於目標網絡C的路由表項的metric值由16改為3,而對於的端口變為與B路由器相連接的端口。很明顯,A會將該條信息發給B,B將無條件更新其路由表,將metric改為4;該條信息又從B發向A,A將metric改為5……最後雙發的路由表關於目標網絡C的metric值都變為16,此時,才真正得到了正確的路由信息。這種現象稱為“計數到無窮大”現象,雖然最終完成了收斂,但是收斂速度很慢,而且浪費了網絡資源來發送這些循環的分組。
另外,從這裏我們也可以看出,metric值的最大值的選擇實際上存在着矛盾,如果選得太小,那麼適用的網絡規模太小;如果選得過大,那麼在出現計數到無窮大現象的時候收斂時間會變得很長。

RIP協議提高措施

水平分割
在上面的“計數到無窮大”現象中,產生的原因是A、B之間互相傳送了“欺騙信息”,那麼針對這種情況,我們自然會想到如果能將這些“欺騙信息”去掉,那麼不就可以在一定程度上避免“計數到無窮大”了嗎。水平分割正是這樣一種解決手段。
“普通的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中將不再包含該條路由信息。“帶毒化逆轉的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中將繼續包含該條路由信息,而且將這條信息的metric置為16。
“普通的水平分割”能避免欺騙信息的發送,而且減小了路由更新報文的大小,節約了網絡帶寬;“帶毒化逆轉的水平分割”能夠更快的消除路由信息的環路,但是增加了路由更新的負擔。這兩種措施的選擇可根據實際情況進行選擇。

RIP協議觸發更新

上面的“水平分割”能夠消除兩台路由器間的欺騙信息的相互循環,但是當牽涉到三台或者以上的路由器時,效果就有限了。考察下面的網絡:
+---++----++-----+/-----\
|||C+-------|D|-----||E||
|A+------|||+----||
+-+-++----++---+-+\-----/
|--|
|--|
|--|
+----+|
|||
|B+-----------------------
||
+----+
E是目標網絡
針對目標網絡,各路由器的路由信息分別如下:
A:3C
B:2D
C:2D
D:1直連
當D與目標網絡之間發生故障中斷以後,B和C都能正確的從D得到網絡不可達的信息,但是,從上面的路由信息中可以看出,A雖然不會給C發送錯誤信息,但是A可能在未收到網絡不可達信息之前就給B發送了路由信息,讓B錯誤的認為可以通過A到達目標網絡,繼而又會出現“計數到無窮大”的現象。
觸發更新就是為了針對上述情況進行的一種改善,它的具體實現措施是:路由器一旦察覺到網絡變化,就儘快甚至是立即發送更新報文,而不等待更新週期結束。只要觸發更新的速度足夠快,就可以大大的防止“計數到無窮大”的發生,但是這一現象還是有可能發生的。
使用了觸發更新以後,當網絡拓撲發生變化的時候,網絡中會出現類似於“多米諾骨牌”的更新報文潮流,並最後中止於到達目標網絡的路徑從未發生變化的路由器。

RIP協議定時器

RIP中一共使用了4個定時器:updatetimer,timeouttimer,garbagetimer,holddowntimer。
Updatetimer用於每30秒發送路由更新報文。
Timeouttimer用於路由信息失效前的180秒的計時,每次收到同一條路由信息的更新信息就將該計數器復位。
Garbagetimer和holddowntimer同時用於將失效的路由信息刪除前的計時:在holddowntimer的時間內,失效的路由信息不能被接收到的新信息所更新;在garbagetimer計時器超時後,失效的路由信息被刪除。
另外,在觸發更新中,更新信息會需要1到5秒的隨機延時以後才被髮出,這裏也需要一個計時器

RIP協議RIP版本2

RIP協議RIPV2概述

RIP-V2不是一個新的協議,它只是在RIPV1協議的基礎上增加了一些擴展特性,以適用於現代網絡的路由選擇環境。這些擴展特性有:
>每個路由條目都攜帶自己的子網掩碼
>路由選擇更新更具有認證功能
>每個路由條目都攜帶下一跳地址
>外部路由標誌
>組播路由更新
最重要的一項是路由更新條目增加了子網掩碼的字段,因而RIP協議可以使用可變長的子網掩碼,從而使RIP-V2協議變成了一個無類別的路由選擇協議

RIP協議RIPV2原理

V1版路由更新用是的廣播方式。RIP-V2協議使用組播的方式向其他宣告RIP-V2的路由器發出更新報文,它使用的組播地址是保留的D類地址224.0.0.9
使用組播方工的好處在於,本地網絡上相連的RIP路由選擇無關的設備不再花費時間對路由器廣播的更新報文進行解析。
1 RIP-V2信息幀格式
命令(8位)
版本(8位)
未用(值為0)
地址族標示符
路由標記
IP地址
子網掩碼
下一跳
度量值
……………
和RIPV1一樣,RIP-V2的更新報文最大可以包含25個路由條目。
同樣使用UDP的520端口號,並且數據報文的大小最大為512個8bit位。
>命令(COMMAND)——取值為1和2,1表示是請求信息,2表示是響應消息
>版本號(VERSION)——對於RIP-V2,該字段值為2
>地址族標識(address family indentifier ,AFI)——對於IP該項設置為2.當消息是對路由器(或主機)整個路由選擇表的請求時,這個字段將被設置為0.
>路由標誌(ROUTERTAG)——提供這個字段來標記外部路由或重分配到RIP-V2協議中的路由。默認情況是使用這個16位的字段來攜帶從外部路由選擇協議注入到RIP中的路由的自主系統號。雖然RIP協議自己並不使用這個字段,但是在多個地點和某個RIP域相連的外部路由,可能需要使用這個路由標記字段通過RIP域來交換路由信息。這個字段也可以用來把外部路由編成"組",以便於在RIP域中更容易地控制這些路由。
>IP地址(IP ADDRESS)——路由條目的目的地址,它可以是主網絡地址、子網地址或主機路由。
>子網掩碼(SUBNET MASK)——是一個確認IP地址的網絡和子網部分的32位的掩碼。
>下一跳(NEXT HOP)——如果存在的話,它標識一個比通告路由器更好的地址更好的一下地址。也就是説,它指出的下一跳地址,其度量值比同一個子網上的通告路由器更靠近目的地。如果這個字段設置為全0(0.0.0.0),説明通告路由器的地址就是最好的下一跳地址。
>度量(METRIC)——是一個1~16之間的跳數。 [2] 

RIP協議RIPV2的配置

由於RIP-V2只是RIP-V1的增強版,而不是一個單獨的協議,因此,在RIPV1中介紹的某些命令可以同樣的方法在RIP-V2中正確使用。
1 基本配置
router rip
version 2
network 172.25.0.0
network 192.168.50.0
可以在路由器配置模式(config-router mode)下鍵入命令NO VERSION恢復到原來的缺省方式。
2 RIP-V2與V1相結合
基於端口級別(interface-level)的"兼容性開關"。用"ip rip send version 版本號"和"Ip rip recevie version 版本號"來實現。
router(config)#interface ethernet0
router(config-if)#no shutdown
router(config-if)#ip address 192.168.50.1 255.255.255.0
router(config-if)#ip rip send vervion 1
router(config-if)#ip rip receive verion 1 (RIP V1 mode)
router(config-if)#interface ethernet 1
router(config-if)#no shutdown
router(config-if)#ip address 172.25.150.1 255.255.0.0
router(config-if)#ip rip send version 1 2 (RIP V1 V2 mode)
router(config-if)#interface ethernet 2
router(config-if)#no shutdown
router(config-if)#ip address 172.50.0.0 255.255.0.0
router(config-if)#end
router(config)#router rip
router(config-router)#version2
router(config-router)#network172.25.0.0
router(config-router)#network192.168.0.0
3 使用可變長子網掩碼
劃分子網的基本目的總是相同的:路由器必須能夠使用惟一的地址來標識每一條數據鏈路,以區別於互聯網中的其他地址。
4 不連續的子網和無類路由
無類路由選擇協議並沒有關於不連續子網的這些困難。因為每一條路由更新都包含一個子網掩碼,因而一個主網絡的子網能夠通告給另一個主網絡
RIP-V2協議缺省的行為要在主網絡邊界上進行路由彙總,為了關閉路由彙總功能以允許被通告的子網通過主網絡的邊界,可以在RIP的處理中使用 no auto-summary
router(config)#router rip
router(config-router)#version 2
router(config-router)#no auto-summary [2] 

RIP協議V1V2區別

1.RIPv1是有類路由協議,RIPv2是無類路由協議
2.RIPv1不能支持VLSM,RIPv2可以支持VLSM。
3.RIPv1沒有認證的功能,RIPv2可以支持認證,並且有明文和MD5兩種認證。
4.RIPv1沒有手工彙總的功能,RIPv2可以在關閉自動彙總的前提下,進行手工彙總。
5.RIPv1是廣播更新,RIPv2是組播更新。
6.RIPv1對路由沒有標記的功能,RIPv2可以對路由打標記(tag),用於過濾和做策略。
7.RIPv1發送的update最多可以攜帶25條路由條目,RIPv2在有認證的情況下最多隻能攜帶24條路由。
8.RIPv1發送的update包裏面沒有next-hop屬性,RIPv2有next-hop屬性,可以用與路由更新的重定。 [3] 
參考資料