RIP技術介紹


RIP

RIPRouting Information Protocol,路由信息協議)是一種較為簡單的內部網關協議(Interior Gateway ProtocolIGP,主要用於規模較小的網絡中,比如校園網以及結構較簡單的地區性網絡。對於更為複雜的環境和大型網絡,一般不使用RIP

由於RIP的實現較為簡單,在配置和維護管理方麵也遠比OSPFIS-IS容易,因此在實際組網中仍有廣泛地應用。

RIP工作機製

1. RIP的基本概念

RIP是一種基於距離矢量(Distance-Vector)算法的協議,它通過UDP報文進行路由信息的交換,使用的端口號為520

RIP使用跳數來衡量到達目的地址的距離,跳數稱為度量值。在RIP中,路由器到與它直接相連網絡的跳數為0,通過與其相連的路由器到達另一個網絡的跳數為1,其餘依此類推。為限製收斂時間,RIP規定度量值取015之間的整數,大於或等於16的跳數被定義為無窮大,即目的網絡或主機不可達。由於這個限製,使得RIP不適合應用於大型網絡。

為提高性能,防止產生路由環路,RIP支持水平分割(Split Horizon)和毒性逆轉(Poison Reverse)功能。

2. RIP的路由數據庫

每個運行RIP的路由器管理一個路由數據庫,該路由數據庫包含了到所有可達目的地的路由項,這些路由項包含下列信息:

l              目的地址:主機或網絡的地址。

l              下一跳地址:為到達目的地,需要經過的相鄰路由器的接口IP地址。

l              出接口:轉發報文通過的出接口。

l              度量值:本路由器到達目的地的開銷。

l              路由時間:從路由項最後一次被更新到現在所經過的時間,路由項每次被更新時,路由時間重置為0

l              路由標記(Route Tag):用於標識外部路由,在路由策略中可根據路由標記對路由信息進行靈活的控製。關於路由策略的詳細信息,請參見“IP路由分冊”中的“路由策略配置”。

3. RIP的啟動和運行過程

RIP啟動和運行的整個過程可描述如下:

l              路由器啟動RIP後,便會向相鄰的路由器發送請求報文(Request message),相鄰的RIP路由器收到請求報文後,響應該請求,回送包含本地路由表信息的響應報文(Response message)。

l              路由器收到響應報文後,更新本地路由表,同時向相鄰路由器發送觸發更新報文,廣播路由更新信息。相鄰路由器收到觸發更新報文後,又向其各自的相鄰路由器發送觸發更新報文。在一連串的觸發更新廣播後,各路由器都能得到並保持最新的路由信息。

l              RIP采用老化機製對超時的路由進行老化處理,以保證路由的實時性和有效性。

4. RIP定時器

RIP受四個定時器的控製,分別是UpdateTimeoutSuppressGarbage-Collect

l              Update定時器,定義了發送路由更新的時間間隔。

l              Timeout定時器,定義了路由老化時間。如果在老化時間內沒有收到關於某條路由的更新報文,則該條路由在路由表中的度量值將會被設置為16

l              Suppress定時器,定義了RIP路由處於抑製狀態的時長。當一條路由的度量值變為16時,該路由將進入抑製狀態。在被抑製狀態,隻有來自同一鄰居且度量值小於16的路由更新才會被路由器接收,取代不可達路由。

l              Garbage-Collect定時器,定義了一條路由從度量值變為16開始,直到它從路由表裏被刪除所經過的時間。在Garbage-Collect時間內,RIP16作為度量值向外發送這條路由的更新,如果Garbage-Collect超時,該路由仍沒有得到更新,則該路由將從路由表中被徹底刪除。

5. 防止路由環路

RIP是一種基於D-V算法的路由協議,由於它向鄰居通告的是自己的路由表,存在發生路由環路的可能性。

RIP通過以下機製來避免路由環路的產生:

l              計數到無窮(Counting to infinity):將度量值等於16的路由定義為不可達(infinity)。在路由環路發生時,某條路由的度量值將被設置為16,該路由被認為不可達。

l              水平分割(Split Horizon):RIP從某個接口學到的路由,不會從該接口再發回給鄰居路由器。這樣不但減少了帶寬消耗,還可以防止路由環路。

l              毒性逆轉(Poison Reverse):RIP從某個接口學到路由後,將該路由的度量值設置為16(不可達),並從原接口發回鄰居路由器。利用這種方式,可以清除對方路由表中的無用信息。

l              觸發更新(Triggered Updates):RIP通過觸發更新來避免在多個路由器之間形成路由環路的可能,而且可以加速網絡的收斂速度。一旦某條路由的度量值發生了變化,就立刻向鄰居路由器發布更新報文,而不是等到更新周期的到來。

RIP的版本

RIP有兩個版本:RIP-1RIP-2

RIP-1是有類別路由協議(Classful Routing Protocol),它隻支持以廣播方式發布協議報文。RIP-1的協議報文無法攜帶掩碼信息,它隻能識別ABC類這樣的自然網段的路由,因此RIP-1不支持不連續子網(Discontiguous Subnet)。

RIP-2是一種無類別路由協議(Classless Routing Protocol),與RIP-1相比,它有以下優勢:

l              支持路由標記,在路由策略中可根據路由標記對路由進行靈活的控製。

l              報文中攜帶掩碼信息,支持路由聚合和CIDRClassless Inter-Domain Routing,無類域間路由)。

l              支持指定下一跳,在廣播網上可以選擇到最優下一跳地址。

l              支持組播路由發送更新報文,減少資源消耗。

l              支持對協議報文進行驗證,並提供明文驗證和MD5驗證兩種方式,增強安全性。

&  說明:

RIP-2有兩種報文傳送方式:廣播方式和組播方式,缺省將采用組播方式發送報文,使用的組播地址為224.0.0.9。當接口運行RIP-2廣播方式時,也可接收RIP-1的報文。

 

RIP的報文格式

1. RIP-1的報文格式

RIP報文由頭部(Header)和多個路由表項(Route Entries)部分組成。在一個RIP報文中,最多可以有25個路由表項。

RIP-1的報文格式如1所示。

圖1 RIP-1的報文格式

各字段的解釋如下:

l              Command:標識報文的類型。值為1時表示Request報文,值為2表示Response報文。

l              VersionRIP的版本號。對於RIP-1來說其值為0x01

l              AFIAddress Family Identifier):地址族標識,其值為2時表示IP協議。

l              IP Address:該路由的目的IP地址,可以是自然網段地址、子網地址或主機地址。

l              Metric:路由的度量值。

2. RIP-2的報文格式

RIP-2的報文格式與RIP-1類似,如2所示。

圖2 RIP-2的報文格式

其中,與RIP-1不同的字段有:

l              VersionRIP的版本號。對於RIP-2來說其值為0x02

l              Route Tag:路由標記。

l              IP Address:該路由的目的IP地址,可以是自然網段地址、子網地址或主機地址。

l              Subnet Mask:目的地址的掩碼。

l              Next Hop:如果為0.0.0.0,則表示發布此條路由信息的路由器地址就是最優下一跳地址,否則表示提供了一個比發布此條路由信息的路由器更優的下一條地址。

3. RIP-2的驗證

RIP-2為了支持報文驗證,使用第一個路由表項(Route Entry)作為驗證項,並將AFI字段的值設為0xFFFF標識報文攜帶認證信息,如3所示。

圖3 RIP-2的驗證報文格式

各字段的解釋如下:

l              Authentication Type:驗證類型。值為2時表示明文驗證,值為3時表示MD5驗證。

l              Authentication:驗證字,當使用明文驗證時包含了密碼信息;當使用MD5驗證時包含了Key IDMD5驗證數據長度和序列號的信息。

&  說明:

RFC1723中隻定義了明文驗證方式,關於MD5驗證的詳細信息,請參考RFC2082RIP-2 MD5 Authentication”。

 

TRIP

TRIPTriggered RIP,觸發路由信息協議)是RIP協議在WANWide Area Network,廣域網)上的擴展,主要應用於撥號網絡。

1. 工作機製

WAN連接中,為了將路由管理開銷減到最小,路由信息被當作觸發更新發送而不是定期廣播:

l              取消路由信息的周期性發送。隻有當路由表中數據有所變更,或者當下一跳不可達時,才發送路由更新。

l              由於取消了周期性發送路由更新報文,因此需要采用確認和重發機製來保證更新報文在廣域網上的成功發送和接收。

2. 報文類型

TRIP為此引入了3種新的報文類型,並通過RIP報文頭部的Command字段來區分。

l              Update Request(更新請求):類型值為9,請求對端發送所需要的路由表信息。

l              Update Response(更新應答):類型值為10,包含對端所需要的路由更新信息。

l              Update Acknowledge(更新確認):類型值為11,對收到的Update Response報文進行確認,表示已收到對端發送的路由更新信息。

3. TRIP重傳機製

l              路由器向鄰居路由器發送Update Request報文後,如果一直沒有收到從鄰居回複的Update Response報文,則每隔一段時間間隔向鄰居重新發送Update Request報文,如果向鄰居發送Update Request報文的次數超過了限製的次數仍沒有收到Update Response報文,則當前路由器會認為鄰居路由器不可達。

l              路由器向鄰居路由器發送Update Response報文後,如果一直沒有收到從鄰居回複的Update Acknowledge報文,路由器則每隔一段時間間隔向鄰居重新發送Update Response報文;如果向鄰居發送Update Response報文的次數超過了限製的次數仍沒有收到Update Acknowledge報文,則當前路由器會認為鄰居路由器不可達。

附件下載

聯係我們