RIP路由協(xié)議的定義和路由表的更新
在路由器方面,協(xié)議是一個(gè)重點(diǎn)。對(duì)于協(xié)議的學(xué)習(xí),可以幫助我們更好地完成路由器各方面的配置和管理。那么作為基礎(chǔ),我們應(yīng)該了解RIP協(xié)議。RIP路由協(xié)議主要就是基于routed的程序,同時(shí)routed運(yùn)行在Unix系統(tǒng)上,當(dāng)網(wǎng)絡(luò)啟用了RIP路由協(xié)議,網(wǎng)絡(luò)便具有了能夠自動(dòng)更新路由表的強(qiáng)大功能。但是使用象RIP/RIP2、OSPF或IGRP/EIGRP等一些主要的內(nèi)部網(wǎng)關(guān)協(xié)議(InteriorGatewayProtocol,IGP)都有一定的協(xié)定。
內(nèi)部網(wǎng)關(guān)協(xié)議首先適合于在那些只有單個(gè)管理員負(fù)責(zé)網(wǎng)絡(luò)操作和運(yùn)行的地方;否則,將會(huì)出現(xiàn)配置錯(cuò)誤導(dǎo)致網(wǎng)絡(luò)性能降低或是導(dǎo)致網(wǎng)絡(luò)運(yùn)行不穩(wěn)定的情況。對(duì)于由許多管理員共同分擔(dān)責(zé)任的網(wǎng)絡(luò),如Internet,則考慮使用EGP協(xié)議(InteriorGatewayProtocol,外部網(wǎng)關(guān)協(xié)議),如BGP4。
如果網(wǎng)絡(luò)中只有一個(gè)路由器,不需要使用RIP路由協(xié)議;只有當(dāng)網(wǎng)絡(luò)中具有多個(gè)路由器時(shí),才有必要讓它們?nèi)ス蚕硇畔ⅰ5绻麅H有小型網(wǎng)絡(luò),完全可以通過靜態(tài)路由手動(dòng)地更新路由表。
路由信息協(xié)議
RIP(RoutingInformationProtocol)協(xié)議基于一個(gè)被稱為“routed”的程序,該程序運(yùn)行在BSDI版本的Unix系統(tǒng)之上,并在1988年被標(biāo)準(zhǔn)化在RFC1058中。而在RFC1388中所描述的版本2中,增加了對(duì)VLSM(VariableLengthSubnetMasks,可變長(zhǎng)子網(wǎng)屏蔽)的支持,但沒有彌補(bǔ)該RIP路由協(xié)議的主要缺陷。例如,在有多重路徑到相同目標(biāo)的網(wǎng)絡(luò)中,RIP確定使用一條可選擇的路徑將花費(fèi)許多時(shí)間,在沒有多重路徑的網(wǎng)絡(luò)中,RIP路由協(xié)議已經(jīng)被廣泛使用。
RIP路由協(xié)議被列為距離矢量協(xié)議,這意味著它使用距離來決定***路徑,如通過路由跳數(shù)來衡量。路由器每30秒互相發(fā)送廣播信息。收到廣播信息的每個(gè)路由器增加一個(gè)跳數(shù)。如果廣播信息經(jīng)過多個(gè)路由器收到,到這個(gè)路由器具有***跳數(shù)的路徑是被選中的路徑。如果***的路徑不能正常工作,那么具有較高跳數(shù)的路徑被作為備份。
對(duì)于RIP路由協(xié)議(和其他路由協(xié)議),網(wǎng)絡(luò)上的路由器在一條路徑不能用時(shí)必須經(jīng)歷決定替代路徑的過程,這個(gè)過程稱為收斂(Convergence)。RIP路由協(xié)議花費(fèi)大量的時(shí)間用于收斂是個(gè)主要的問題。在RIP路由協(xié)議認(rèn)識(shí)到路徑不能達(dá)到前,它被設(shè)為等待,直到它已錯(cuò)過6次更新總共180秒時(shí)間。然后,在使用新路徑更新路由表前,它等待另一個(gè)可行路徑的下一個(gè)信息的到來。這意味著在備份路徑被使用前至少經(jīng)過了3分鐘,這對(duì)于多數(shù)應(yīng)用程序超時(shí)是相當(dāng)長(zhǎng)的時(shí)間。
RIP為每個(gè)目的地只記錄一條路由的事實(shí)要求RIP積極地維護(hù)路由表的完整性。通過要求所有活躍的RIP路由器在固定時(shí)間間隔廣播其路由表內(nèi)容至相鄰的RIP路由器來做到這一點(diǎn),所有收到的更新自動(dòng)代替已經(jīng)存儲(chǔ)在路由表中的信息。
RIP依賴3個(gè)計(jì)時(shí)器來維護(hù)路由表:
·更新計(jì)時(shí)器
·路由超時(shí)計(jì)時(shí)器
·路由刷新計(jì)時(shí)器
更新計(jì)時(shí)器用于在節(jié)點(diǎn)一級(jí)初始化路由表更新。每個(gè)RIP節(jié)點(diǎn)只使用一個(gè)更新計(jì)時(shí)器。相反的,路由超時(shí)計(jì)時(shí)器和路由刷新計(jì)時(shí)器為每一個(gè)路由維護(hù)一個(gè)。如此看來,不同的超時(shí)和路由刷新計(jì)時(shí)器可以在每個(gè)路由表項(xiàng)中結(jié)合在一起。這些計(jì)時(shí)器一起能使RIP節(jié)點(diǎn)維護(hù)路由的完整性并且通過基于時(shí)間的觸發(fā)行為使網(wǎng)絡(luò)從故障中得到恢復(fù)。
1. 初始化表更新
RIP路由器每隔3 0秒觸發(fā)一次表更新。更新計(jì)時(shí)器用于記錄時(shí)間量。一旦時(shí)間到, RIP節(jié)點(diǎn)就會(huì)產(chǎn)生一系列包含自身全部路由表的報(bào)文。這些報(bào)文廣播到每一個(gè)相鄰節(jié)點(diǎn)。因此,每一個(gè)RIP路由器大約每隔3 0秒鐘應(yīng)收到從每個(gè)相鄰RIP節(jié)點(diǎn)發(fā)來的更新。注意在更大的基于RIP的自治系統(tǒng)中,這些周期性的更新會(huì)產(chǎn)生不能接受的流量。因此,一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)地交錯(cuò)進(jìn)行更新更理想一些。RIP自動(dòng)完成更新,每一次更新計(jì)時(shí)器會(huì)被復(fù)位,一個(gè)小的、任意的時(shí)間值加到時(shí)鐘上。如果更新并沒有如所希望的一樣出現(xiàn),說明互聯(lián)網(wǎng)絡(luò)中的某個(gè)地方發(fā)生了故障或錯(cuò)誤。故障可能是簡(jiǎn)單的如把包含更新內(nèi)容的報(bào)文丟掉了。故障也可能是嚴(yán)重的如路由器故障,或者是介于這兩個(gè)極端之間的情況。顯然,采取合適的措施會(huì)因不同的故障而有很大區(qū)別。由于更新報(bào)文丟失而作廢一系列路由是不明智的(記住, RIP更新報(bào)文使用不可靠的傳輸協(xié)議以最小化開銷)。因此,當(dāng)一個(gè)更新丟失時(shí),不采取更正行為是合理的。為了幫助區(qū)別故障和錯(cuò)誤的重要程度,RIP使用多個(gè)計(jì)時(shí)器來標(biāo)識(shí)無效路由。
2. 標(biāo)識(shí)無效路由
有兩種方式使路由變?yōu)闊o效:路由終止。路由器從其他路由器處學(xué)習(xí)到路由不可用。在任何一種情形下, RIP路由器需要改變路由表以反映給定路由已不可達(dá)。一個(gè)路由如果在一個(gè)給定時(shí)間之內(nèi)沒有收到更新就中止。比如,路由超時(shí)計(jì)時(shí)器通常設(shè)為180秒。當(dāng)路由變?yōu)榛钴S或被更新時(shí),這個(gè)時(shí)鐘被初始化。180秒是大致估計(jì)的時(shí)間,這個(gè)時(shí)間足以令一臺(tái)路由器從它的相鄰路由器處收到6個(gè)路由表更新報(bào)文(假設(shè)它們每隔30秒發(fā)送一次路由更新),如果180秒消逝之后, RIP路由器沒收到關(guān)于那條路由的更新, RIP路由器就認(rèn)為那個(gè)目的I P地址不再是可達(dá)的。因此,路由器就會(huì)把那條路由表項(xiàng)標(biāo)記為無效。通過設(shè)置它的路由度量值為1 6來實(shí)現(xiàn),并且要設(shè)置路由變化標(biāo)志。這個(gè)信息可以通過周期性的路由表更新來與其相鄰路由器交流。
注意:對(duì)于RIP路由協(xié)議的節(jié)點(diǎn)而言,16等于無窮。因此,簡(jiǎn)單的設(shè)置耗費(fèi)度量值為16能作廢一條路由。
接到路由新的無效狀態(tài)通知的相鄰節(jié)點(diǎn)使用此信息來更新它們自己的路由表。這是路由變?yōu)闊o效的第二種方式。無效項(xiàng)在路由表中存在很短時(shí)間,路由器決定是否應(yīng)該刪除它。即使表項(xiàng)保持在路由表中,報(bào)文也不能發(fā)送到那個(gè)表項(xiàng)的目的地址: RIP不能把報(bào)文轉(zhuǎn)發(fā)至無效的目的地。
3. 刪除無效路由
一旦路由器認(rèn)識(shí)到路由已無效,它會(huì)初始化一個(gè)秒計(jì)時(shí)器:路由刷新計(jì)時(shí)器。因此,在***一次超時(shí)計(jì)時(shí)器初始化后180秒,路由刷新計(jì)時(shí)器被初始化。這個(gè)計(jì)時(shí)器通常設(shè)為90秒。如果路由更新在270秒之后仍未收到( 180秒超時(shí)加上90秒路由刷新時(shí)間),就從路由表中移去此路由(也就是刷新)。而為了路由刷新遞減計(jì)數(shù)的計(jì)時(shí)器稱為路由刷新計(jì)時(shí)器。這個(gè)計(jì)時(shí)器對(duì)于RIP從網(wǎng)絡(luò)故障中恢復(fù)的能力絕對(duì)必要。
主動(dòng)和被動(dòng)站點(diǎn)
注意到為了使RIP互聯(lián)網(wǎng)絡(luò)正常工作,網(wǎng)絡(luò)中的每一個(gè)網(wǎng)關(guān)必須參與進(jìn)去這一點(diǎn)很重要。參與可以是主動(dòng)參與也可以是被動(dòng)參與,但所有的網(wǎng)關(guān)必須參與。主動(dòng)節(jié)點(diǎn)是那些主動(dòng)地進(jìn)行共享路由信息的節(jié)點(diǎn)。它們從相鄰者處接收更新,并且轉(zhuǎn)發(fā)它們的路由表項(xiàng)拷貝至那些相鄰節(jié)點(diǎn)。被動(dòng)站點(diǎn)從相鄰者處接收更新,并且使用那些更新來維護(hù)它們的路由表。然而被動(dòng)節(jié)點(diǎn)不主動(dòng)地發(fā)布它們自己路由表項(xiàng)的拷貝。被動(dòng)維護(hù)路由表的能力在硬件路由器出現(xiàn)之前的日子里是特別有用的特性,那時(shí)路由是一個(gè)運(yùn)行在UNIX處理器下的后臺(tái)程序,這樣會(huì)使UNIX主機(jī)上的路由開銷達(dá)到最小。