1.為Rip的辯護
隨著OSPF與IS-IS的出現,許多人都相信RIP已經過時了。
事實上,盡管新的IGP路由協議的確比RIP優越得多,但RIP
也確有它自己得一些優點。首先,在一個小型網絡中,RIP
對于使用帶寬以及網絡的配置和治理方面的要求是很少的,
與新的IGP相比,RIP非常輕易實現。
此外,現在RIP還在大量使用,這是OSPF與IS-IS所不
能比的。而且,看起來這種狀況還將持續一些年。
既然RIP在許多領域和一定時期內仍具有使用價值,那
么就有理由增加RIP的有效性,這是毫無疑問的,因為對已
有技術進行改造所獲收益比起徹底更新要現實得多。
2.現在的RIP
現在的RIP包中只是包含了路由器為包在網絡上選路所
需要的最小限度的路由信息。由于歷史原因,在現在的RIP
包中還有大量的未被使用的空間。
現在的RIP協議沒有考慮自治系統(AS)之間以及內部網
關協議與外部網關協議之間的信息交互,沒有考慮子網的問
題,沒有身份驗證機制。在RIP包中沒有包含子網掩碼信息對
于路由器來說是一個非凡嚴重的問題,因為它們需要知道子
網掩碼以決定如何選擇路由。假如一個RIP路由是到一個網絡
的路由,那么這時候子網掩碼和網絡掩碼是相同的。但是,
假如這個路由不是到一個網絡的路由,那么路由器就無法確定
子網掩碼。更糟糕的是,路由器將無法確定這個路由是到一個
網絡的路由還是到一個特定主機的路由。現在,一些路由器只
是簡單的選擇包來源處的子網掩碼,并依次決定路由的類型。
3.協議擴展
這份文檔并沒有從根本上改變RIP協議。更恰當的來說,它
只是提供了一個對于RIP協議數據包格式的擴展,以使路由器能
夠分享一些重要的附加信息。
新的RIP數據包格式如下:
01233
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+命令字
(1)版本(1)路由選擇域(2)
+---------------+---------------+-------------------------------+
地址族標識符(2)路由標簽(2)
+-------------------------------+-------------------------------+
IP地址(4)
+---------------------------------------------------------------+
子網掩碼(4)
+---------------------------------------------------------------+
下一跳(4)
+---------------------------------------------------------------+
度量值(4)
+---------------------------------------------------------------+
上圖中的命令字域,地址族標識符域,IP地址域以及度量值域
都保留了它們在RFC1058中的定義。版本域被指定為2的RIP包將會支
持使用身份驗證機制或者在其他幾個新定義的域中攜帶信息。
所以的域都使用IP網絡字節順序來編碼。
3.1驗證機制
驗證機制是個數據包的功能,在包的頭信息里只有兩個字節
大小的域可以用來進行身份驗證,而任何合理的身份驗證都需要
不止兩個字節大小的空間。所以RIP-2的驗證機制決定使用一個完
整的RIP頭項以進行身份驗證。假如包中地址族標識符的第一項(只有
一項)的值是0XFFFF,那么這項的其余部分包含了驗證的信息(包括
所使用的驗證算法的類型以及16個字節的驗證數據)。在往后就是最多
為24個目的的站點-度量值數據對。假如不使用驗證機制的話,那么
地址族標識符項就不能是0XFFFF。一個包含了驗證項的RIP包的格式如
下:
01233
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
命令字(1)版本(1)路由選擇域(2)
+---------------+---------------+-------------------------------+
0xFFFF驗證類型(2)
+-------------------------------+-------------------------------+
~驗證(16)~
+---------------------------------------------------------------+
現在,能確定的唯一的驗證算法就是“簡易密碼”,它的
類型是2。其余的16個字節包含了純文本的密碼。密碼格式是向
左對齊,右邊假如有空的話有二進制的0補齊
3.2選擇域路由
路由域標號是路由程序用來決定路由更新信息歸屬(那個域)
的信息。這個字段是用來將路由更新信息綁定到路由器上特定的
路由程序來處理的。假如我需要實現多個不同的網絡共存與同以
物理網絡的話,那么我們就需要路由信息中包含這個字段。這可以
使治理員可以使用簡單的策略來實現多個并行的RIP實例。這意味著,
一個路由器只在一個和一系列域中工作,它將會忽略那些屬于別的
其他域的RIP數據包。路由域標號為0的是缺省路由域。
3.3路由標記
路由標記字段的存在是為了支持外部網關協議(EGP)。有關與
這個字段的使用已經超出本協議的范圍了。不論使用什么方法,這個
字段被期望用于傳遞自治系統的標號給外部網關協議以及邊界網關協
議(BGP)。任何RIP系統收到一個包含有非零路由標記字段的RIP包時,
必須重新對外廣播收到的值。而沒有路由標記的路由器必須將0作為
自己的路由標記對外廣播。
3.4子網掩碼
子網掩碼字段包含的子網掩碼用于產生目標地址的非主機地址部
分(即目標所處網絡的網絡地址)。假如這個字段的值為0的話,這意
味這該字段中沒有包含子網掩碼。
利用下面兩條規則,一個RIP-1路由器可以收到RIP-2的數據包并對
其進行操作:
1)網絡內部的路由信息不可以出現在其他的網絡里。
2)有關特定子網的路由信息不能對RIP-1路由器廣播,因為它會誤
認為那是一個到主機的路由。
3.5下一跳
指定一個包到一個特定地址的立即下一跳地址的路由器應該被跳
過。假如這個字段的值為0.0.0.0的話,那么說明這個這個包的路由必
須包括發出RIP廣播指定該字段的地址為0.0.0.0的路由器。每一個被指
定的下一跳地址,都必須是可以通過發送RIP廣播的邏輯子網而直接抵達
的。
增加下一跳地址字段的目的是消除包在發送的過程中不會增加不必要
的跳數。當一個網絡上并不是所有的路由器都運行RIP時,下一跳地址字段
就會顯得非凡有用。一個很簡單的例子就是附錄A中給出的例子。注重,下
一跳地址字段是一個可選的字段。假如這些信息被忽略了,那么路由器的
效率一定會有所下降的。
3.6多點廣播
為了減輕那些不接受RIP-2包的主機的不必要的負載,一個ip多點廣播
地址將被用于周期性的廣播。這個ip多點廣播地址時224.0.0.9。注重,因為
RIP路由信息包只是在本地網絡上進行多點廣播,所以連IGMP也不需要。
為了維持向后兼容性,我們將設置多點廣播地址的使用方式,具體方法
參考下面的4.1節。假如使用多點廣播的話,應該使用在所以支持它的路由器
上。
4.兼容性
在RFC1058的描述中,我們看見了相當多的有關于如何處理版本號的深謀
遠慮。在那篇RFC中規定了,一個版本號為0的的RIP包將會被丟棄;假如一個
版本號為1的RIP包中的任何一個必須為0的字段不是0,那么這個包也將被拋棄;
任何版本號大于1的包將不會僅僅因為某個規定必須為0的字段不為0而被拋棄。
這些規定意味著,新版本的RIP協議對于現存的只是部分支持這些規范的RIP實
現將會是完全向下兼容的。
4.1兼容的轉換
我們需要兼容的轉換有兩個原因。第一,有一些RIP-1的實現并不服從我們
在上面所談到的在RFC1058中的描述。第二,多點廣播技術的使用將會阻止RIP-1
路由器收到RIP-2路由更新信息包(這正是我們在某些情況下希望得到的的特性)。
轉換有三種設置方法:1.RIP-1,只有RIP-1包在RIP-1路由器中傳遞
2.RIP-1兼容,用廣播的方法發送RIP-2路由信息包
3.RIP-2,用多點廣播的方法發送RIP-2路由信息包
推薦的方法是RIP-1兼容。
4.2驗證機制
因為驗證機制的使用是通過將RIP包中地址族標識符字段的第一項置為0xffff
來標識的。那么,一個RIP-1路由器將會忽略這個包,因為對于它來說,這是一個
屬于非IP地址族的地址。應當注重的一點是,使用驗證機制并不能阻止RIP-1路由
器得到RIP-2路由信息包。假如你希望達到這種效果的話,應當像在3.6及4.1節中
描述的那樣使用多點廣播來發送你的RIP-2路由信息包。
4.3多重度量制式
當討論到兼容性的話題時,有一些要求增加度量制式的請求。這里有一個
這個要求不能被滿足的最基本的原因,因為這樣做會直接破壞向下兼容性。一
個增加的度量制式很顯而易見的會徹底使一個老版本的RIP路由器迷惑。最好
是它們能夠忽略這些路由信息,就像忽略公制的16。也有一種建議是令度量為
一個字節,而重新使用高的三字節,但是這樣會破壞任何已有的實現。
4.4無地址連接
和RIP-1一樣,RIP-2也不支持無地址連接。
附錄A
這是一個在一個RIP實體中使用下一跳字段的很簡單的例子。
------------------------------
IR1IR2IR3XR1XR2XR3
--+----+----+----+----+----+--
--+-------+-------+---------------+-------+-------+--
<-------------RIP-2------------->
假設IR1,IR2和IR3都是一個使用RIP-2為內部網關協議的網絡(例如
一個校園網)的內部路由器。另一方面,XR1,XR2,和XR3則是在另一個
使用其他網關協議(例如OSPF)的網絡(例如一個局域網,校園網是它的
一個成員)中。XR1,XR2和XR3之間會互相交換路由信息,這樣它們會知道
到網絡N1,N2的最佳路由是經過XR1,到網絡N3,N4和N5的最佳路由是經過
XR2,而到網絡N6,N7的最佳路由是經過XR3。通過設定正確的下一跳字段(通
過XR2到N3,N4,N5,通過XR3到N6,N7),只有XR1需要與IR1/IR2/IR3交換
路由信息已避免經由XR1的多余的跳數。假如沒有下一跳字段(例如,我們使用
RIP-1),那么我們就需要XR2,XR3也一樣分享RIP-2路由信息以消滅多余的跳
數。
參考文獻
[1]Hedrick,C.,"RoutingInformationUniversity,June1988.
[2]Malkin,G.,andF.Baker,"RIPVersion2MIBExtension",RFC
1389,Xylogics,Inc.,AdvancedComputerCommunications,January
1993.
[3]Malkin,G.,"RIPVersion2ProtocolAnalysis",RFC1387,
Xylogics,Inc.,January1993.
安全注重事項
基本的RIP協議并不是一個安全的協議。為了使RIP-2協議更像一個
現代的路由協議,一個可擴展的驗證機制被加到協議的改進中了。驗證
機制的具體描述請參考3.1節以及4.2節。
作者地址
GaryScottMalkin
Xylogics,Inc.
53ThirdAvenue
Burlington,MA01803
Phone:(617)272-8140
EMail:gmalkin@Xylogics.COM
新聞熱點
疑難解答