動態(tài)選路協(xié)議(RIP)
1.引言
對于靜態(tài)選路,在配置接口時(shí),以默認(rèn)方式生成路由表項(xiàng)(對于直接連接的接口),并通過r o u t e命令增加表項(xiàng)(通常從系統(tǒng)自引導(dǎo)程序文件),或是通過I C M P重定向生成表項(xiàng)(通常是在默認(rèn)方式出錯的情況下)。在網(wǎng)絡(luò)很小,且與其他網(wǎng)絡(luò)只有單個(gè)連接點(diǎn)且沒有多余路由時(shí),采用這種方法是可行的。如果上述三種情況不能全部滿足,通常使用動態(tài)選路。
動態(tài)選路主要運(yùn)用R I P,即選路信息協(xié)議(Routing Infromation Protocol),大多數(shù)T C P / I P實(shí)現(xiàn)都提供這個(gè)應(yīng)用廣泛的協(xié)議。
2.動態(tài)選路
當(dāng)相鄰路由器之間進(jìn)行通信,以告知對方每個(gè)路由器當(dāng)前所連接的網(wǎng)絡(luò),這時(shí)就出現(xiàn)了動態(tài)選路。路由器之間必須采用選路協(xié)議進(jìn)行通信,這樣的選路協(xié)議有很多種。路由器上有一個(gè)進(jìn)程稱為路由守護(hù)程序(routing daemon),它運(yùn)行選路協(xié)議,并與其相鄰的一些路由器進(jìn)行通信。
3.RIP:選路信心協(xié)議
3.1 RIP報(bào)文格式
RIP報(bào)文包含中在UDP數(shù)據(jù)報(bào)中。這里只總結(jié)版本1,對于版本2參考tcp/ip(v1)。
命令字段為1表示請求,2表示應(yīng)答。還有兩個(gè)舍棄不用的命令( 3和4),兩個(gè)非正式的命令:輪詢( 5)和輪詢表項(xiàng)( 6)。請求表示要求其他系統(tǒng)發(fā)送其全部或部分路由表。應(yīng)答則包含發(fā)送者全部或部分路由表。版本字段通常為1,而第2版R I P將此字段設(shè)置為2。緊跟在后面的2 0字節(jié)指定地址系列( address family)(對于I P地址來說,其值是2)、I P地址以及相應(yīng)的度量。在本節(jié)的后面可以看出, R I P的度量是以跳計(jì)數(shù)的。采用這種2 0字節(jié)格式的R I P報(bào)文可以通告多達(dá)2 5條路由。上限2 5是用來保證R I P報(bào)文的總長度為2 0×25 + 4 = 504,小于5 1 2字節(jié)。由于每個(gè)報(bào)文最多攜帶2 5個(gè)路由,因此為了發(fā)送整個(gè)路由表,經(jīng)常需要多個(gè)報(bào)文。有一個(gè)注意點(diǎn):跳數(shù)的最大值是1 5,這意味著R I P只能用在主機(jī)間最大跳數(shù)值為1 5的A S(自治系統(tǒng))內(nèi)。度量為1 6表示到無路由到達(dá)該I P地址。最大跳數(shù)為15限制了使用RIP網(wǎng)絡(luò)的大小。
3.2 運(yùn)行步驟
讓我們來看一下采用R I P協(xié)議的r o u t e d程序正常運(yùn)行的結(jié)果。R I P常用的U D P端口號是5 2 0。
1)初始化:在啟動一個(gè)路由守護(hù)程序時(shí),它先判斷啟動了哪些接口,并在每個(gè)接口上發(fā)送一個(gè)請求報(bào)文,要求其他路由器發(fā)送完整路由表。在點(diǎn)對點(diǎn)鏈路中,該請求是發(fā)送給其他終點(diǎn)的。如果網(wǎng)絡(luò)支持廣播的話,這種請求是以廣播形式發(fā)送的。這種請求報(bào)文的命令字段為1,但地址系列字段設(shè)置為0,而度量字段設(shè)置為1 6。這是一種要求另一端完整路由表的特殊請求報(bào)文。
2)接收到請求。如果這個(gè)請求是剛才提到的特殊請求,那么路由器就將完整的路由表發(fā)送給請求者。否則,就處理請求中的每一個(gè)表項(xiàng):如果有連接到指明地址的路由,則將度量設(shè)置成我們的值,否則將度量置為1 6(度量為1 6是一種稱為“無窮大”的特殊值,它意味著沒有到達(dá)目的的路由)。然后發(fā)回響應(yīng)。
3)接收到響應(yīng)。使響應(yīng)生效,可能會更新路由表??赡軙黾有卤眄?xiàng),對已有的表項(xiàng)進(jìn)行修改,或是將已有表項(xiàng)刪除。
4)定期選路更新。每過3 0秒,所有或部分路由器會將其完整路由表發(fā)送給相鄰路由器。發(fā)送路由表可以是廣播形式的(如在以太網(wǎng)上),或是發(fā)送給點(diǎn)對點(diǎn)鏈路的其他終點(diǎn)的。
5)觸發(fā)更新。每當(dāng)一條路由的度量發(fā)生變化時(shí),就對它進(jìn)行更新。不需要發(fā)送完整路由表,而只需要發(fā)送那些發(fā)生變化的表項(xiàng)。
每條路由都有與之相關(guān)的定時(shí)器。如果運(yùn)行R I P的系統(tǒng)發(fā)現(xiàn)一條路由在3分鐘內(nèi)未更新,就將該路由的度量設(shè)置成無窮(16),并標(biāo)注為刪除。這意味著已經(jīng)在6個(gè)3 0秒更新時(shí)間里沒收到通告該路由的路由器的更新了。再過6 0秒,將從本地路由表中刪除該路由,以保證該路由的失效已被傳播開。