RIP協議

RIP協議

通信協議
RIP協議是一種内部網關協議(IGP),是一種動态路由選擇協議,用于自治系統(AS)内的路由信息的傳遞。RIP協議基于距離矢量算法(DistanceVectorAlgorithms),使用“跳數”(即metric)來衡量到達目标地址的路由距離。這種協議的路由器隻關心自己周圍的世界,隻與自己相鄰的路由器交換信息,範圍限制在15跳(15度)之内,再遠,它就不關心了。RIP應用于OSI網絡七層模型的網絡層。各廠家定義的管理距離(AD,即優先級)如華為定義的優先級是100,華三定義優先級是100,思科定義的是120。RIP分組分為請求分組和響應分組兩種。
    中文名:RIP協議 外文名:Routing Information Protocol 别名: 采用原理:距離向量算法 性質:一種内部網關協議 性能:自治系統内的路由信息的傳遞

名詞概述

RIP協議采用距離向量算法,是當今應用最為廣泛的内部網關協議。在默認情況下,RIP使用一種非常簡單的度量制度:距離就是通往目的站點所需經過的鍊路數,取值為1~15,數值16表示無窮大。RIP進程使用UDP的520端口來發送和接收RIP分組。RIP分組每隔30s以廣播的形式發送一次,為了防止出現“廣播風暴”,其後續的的分組将做随機延時後發送。在RIP中,如果一個路由在180s内未被刷,則相應的距離就被設定成無窮大,并從路由表中删除該表項。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協議不适于大型網絡。

報文格式

071531

命令字(1字節)版本(1字節)必須為0(2字節)

地址類型标識符(2字節)必須為0(2字節)

IP地址

必須為0

必須為0

Metric值(1—16)

(最多可以有24個另外的路由,與前20字節具有相同的格式)

“命令字”字段為1時表示RIP請求,為2時表示RIP應答。地址類型标志符在實際應用中總是為2,即地址類型為IP地址。“IP地址”字段表明目的網絡地址,“Metric”字段表明了到達目的網絡所需要的“跳數”。

結構組成

使用RIP報文中列出的項,RIP主機可以彼此之間交流路由信息。這些信息存儲在路由表中,路由表為每一個知道的、可達的目的地保留一項。每個目的地表項是到達那個目的地的最低開銷路由。

注意每個目的地的表項數可以随路由生産商的不同而變化。生産商可能選擇遵守規範,也可以對标準進行他們認為合适的“強化”。所以,用戶很可能會發現某個特殊商标的路由器為每一個網絡中的目的地存儲至多4條相同費用的路由。

每個路由表項包括以下各域:

目的IP地址域

距離-向量度量域

下一跳IP地址域

路由變化标志域

路由計時器域

注意雖然RFC1058是一個開放式标準,能支持大量互連網絡地址結構,然而它是由IETF設計用于Internet中自治系統内的協議。如此,使用這種形式RIP的自然是網絡互聯協議。

1.目的IP地址域

任何路由表中所包含的最重要信息是到所知目的地的IP地址。一旦一台RIP路由器收到一個數據報文,就會查找路由表中的目的I P地址以決定從哪裡轉發那個報文。

2.度量标準域

路由表中的度量域指出報文從起始點到特定目的地的總耗費。路由表中的度量是從路由器到特定目的地之間網絡鍊路的耗費總和。

3.下一跳IP地址域

下一跳IP地址域包括至目的地的網絡路徑上下一個路由器接口的IP地址。如果目的IP地址所在的網絡與路由器不直接相連時,路由器表中才出現此項。

4.路由變化标志域

路由變化标志域用于指出至目的IP地址的路由是否在最近發生了變化。這個域是重要的,因為RIP為每一個目的IP地址隻記錄一條路由。

5.路由計時器域

有兩個計時器與每條路由相聯系,一個是超時計時器,一個是路由刷新計時器。這些計時器一同工作來維護路由表中存儲的每條路由的有效性。路由表維護過程在12.2.2節中詳細描述。

基本舉例

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時,建議用靜态路由。

局限性

1、協議中規定,一條有效的路由信息的度量(metric)不能超過15,這就使得該協議不能應用于很大型的網絡,應該說正是由于設計者考慮到該協議隻适合于小型網絡所以才進行了這一限制。對于metric為16的目标網絡來說,即認為其不可到達。

2、該路由協議應用到實際中時,很容易出現“計數到無窮大”的現象,這使得路由收斂很慢,在網絡拓撲結構變化以後需要很長時間路由信息才能穩定下來。

3、該協議以跳數,即報文經過的路由器個數為衡量标準,并以此來選擇路由,這一措施欠合理性,因為沒有考慮網絡延時、可靠性、線路負荷等因素對傳輸質量和速度的影響。

特性

(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”的字段,僅處理RFC1058中規定的有意義的字段。因此,運行RIP版本1的機器能夠接收處理RIP版本2的報文,但會丢失其中的RIP版本2新規定的那些信息。

(3)RIP版本1對地址的處理

RIP版本1不能識别子網網絡地址,因為在其傳送的路由更新報文中不包含子網掩碼,因此RIP路由信息要麼是主機地址,用于點對點鍊路的路由;要麼是A、B、C類網絡地址,用于以太網等的路由;另外,還可以是0.0.0.0,即缺省路由信息。

(4)計數到無窮大(CountingtoInfinity)

前面在RIP的局限性一部分提到了可能出現的計數到無窮大的現象,下面就來分析一下該現象的産生原因與過程。考察下面的簡單網絡:

c(目的網絡)----routerA------routerB

在正常情況下,對于目标網絡,A路由器的metric值為1,B路由器的metric值為2。當目标網絡與A路由器之間的鍊路發生故障而斷掉以後:

c(目的網絡)--||--routerA------routerB

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值的最大值的選擇實際上存在着矛盾,如果選得太小,那麼适用的網絡規模太小;如果選得過大,那麼在出現計數到無窮大現象的時候收斂時間會變得很長。

提高措施

水平分割

在上面的“計數到無窮大”現象中,産生的原因是A、B之間互相傳送了“欺騙信息”,那麼針對這種情況,我們自然會想到如果能将這些“欺騙信息”去掉,那麼不就可以在一定程度上避免“計數到無窮大”了嗎。水平分割正是這樣一種解決手段。

“普通的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中将不再包含該條路由信息。“帶毒化逆轉的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中将繼續包含該條路由信息,而且将這條信息的metric置為16。

“普通的水平分割”能避免欺騙信息的發送,而且減小了路由更新報文的大小,節約了網絡帶寬;“帶毒化逆轉的水平分割”能夠更快的消除路由信息的環路,但是增加了路由更新的負擔。這兩種措施的選擇可根據實際情況進行選擇。

觸發更新

上面的“水平分割”能夠消除兩台路由器間的欺騙信息的相互循環,但是當牽涉到三台或者以上的路由器時,效果就有限了。考察下面的網絡:

+---++----++-----+/-----

|||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中一共使用了4個定時器:updatetimer,timeouttimer,garbagetimer,holddowntimer。

Updatetimer用于每30秒發送路由更新報文。

Timeouttimer用于路由信息失效前的180秒的計時,每次收到同一條路由信息的更新信息就将該計數器複位。

Garbagetimer和holddowntimer同時用于将失效的路由信息删除前的計時:在holddowntimer的時間内,失效的路由信息不能被接收到的新信息所更新;在garbagetimer計時器超時後,失效的路由信息被删除。

另外,在觸發更新中,更新信息會需要1到5秒的随機延時以後才被發出,這裡也需要一個計時器。

RIP版本2

RIPV2概述

RIP-V2不是一個新的協議,它隻是在RIPV1協議的基礎上增加了一些擴展特性,以适用于現代網絡的路由選擇環境。這些擴展特性有:

>每個路由條目都攜帶自己的子網掩碼

>路由選擇更新更具有認證功能

>每個路由條目都攜帶下一跳地址

>外部路由标志

>組播路由更新

最重要的一項是路由更新條目增加了子網掩碼的字段,因而RIP協議可以使用可變長的子網掩碼,從而使RIP-V2協議變成了一個無類别的路由選擇協議。

RIPV2原理

V1版路由更新用是的廣播方式。RIP-V2協議使用組播的方式向其他宣告RIP-V2的路由器發出更新報文,它使用的組播地址是保留的D類地址224.0.0.9

使用組播方工的好處在于,本地網絡上相連的RIP路由選擇無關的設備不再花費時間對路由器廣播的更新報文進行解析。

1RIP-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)——路由條目的目的地址,它可以是主網絡地址、子網地址或主機路由。

>子網掩碼(SUBNETMASK)——是一個确認IP地址的網絡和子網部分的32位的掩碼。

>下一跳(NEXTHOP)——如果存在的話,它标識一個比通告路由器更好的地址更好的一下地址。也就是說,它指出的下一跳地址,其度量值比同一個子網上的通告路由器更靠近目的地。如果這個字段設置為全0(0.0.0.0),說明通告路由器的地址就是最好的下一跳地址。

>度量(METRIC)——是一個1~16之間的跳數。

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)下鍵入命令NOVERSION恢複到原來的缺省方式。

2RIP-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 V1mode)

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

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發送的updata最多可以攜帶25條路由條目,RIPv2在有認證的情況下最多隻能攜帶24條路由。

8.RIPv1發送的updata包裡面沒有next-hop屬性,RIPv2有next-hop屬性,可以用與路由更新的重定。

相關詞條

相關搜索

其它詞條