RIP(Routing Information Protocol,路由信息協(xié)議)作為一種較為簡(jiǎn)單的動(dòng)態(tài)路由協(xié)議,在實(shí)際使用中有著廣泛的應(yīng)用。RIP協(xié)議是一個(gè)應(yīng)用于網(wǎng)關(guān)(路由器)和主機(jī)之間交換路由器信息的距離矢量協(xié)議,目前最新版本是RIP v2。RIP采用距離矢量算法,即路由器根據(jù)距離選擇路由,所以,也稱為距離向量協(xié)議。路由器收集所有可到達(dá)目的地的不同路徑,并且保存有關(guān)到達(dá)每個(gè)目的地的最少站點(diǎn)數(shù)的路徑信息,除到達(dá)目的地的最佳路徑外,任何其他信息均予以丟棄。同時(shí),路由器也把所收集的路由信息用RIP協(xié)議通知相鄰的其他路由器。這樣,正確的路由信息逐漸擴(kuò)散到了全網(wǎng)。
1.RIP工作機(jī)制
RIP是一種基于距離矢量(Distance-Vector)算法的協(xié)議,它使用UDP報(bào)文進(jìn)行路由信息的交換。RIP使用跳數(shù)(Hop Count)來衡量到達(dá)信宿機(jī)的距離,稱為路由權(quán)(Routing Metric)。在RIP中,路由器到與它直接相連網(wǎng)絡(luò)的跳數(shù)為0,通過一個(gè)路由器可達(dá)的網(wǎng)絡(luò)的跳數(shù)為1,其余依此類推。為限制收斂時(shí)間,RIP規(guī)定metric取值在0~15之間的整數(shù),大于或等于16的跳數(shù)被定義為無窮大,即目的網(wǎng)絡(luò)或主機(jī)不可達(dá)。
RIP每隔30 秒鐘發(fā)送一次路由刷新報(bào)文,如果在180秒內(nèi)收不到從某一網(wǎng)絡(luò)鄰居發(fā)來的路由刷新報(bào)文,則將該網(wǎng)絡(luò)鄰居的所有路由標(biāo)記為不可達(dá)。如果在300秒之內(nèi)收不到從某一網(wǎng)上鄰居發(fā)來的路由刷新報(bào)文,則將該網(wǎng)上鄰居的路由從相應(yīng)協(xié)議路由表中清除。
為提高性能,防止產(chǎn)生路由環(huán),RIP支持水平分割(Split Horizon)和毒性逆轉(zhuǎn)(Poison Reverse)。RIP還可引入其他路由協(xié)議所得到的路由。
每個(gè)運(yùn)行RIP的路由器管理一個(gè)路由數(shù)據(jù)庫(kù),該路由數(shù)據(jù)庫(kù)包含了到網(wǎng)絡(luò)所有可達(dá)信宿的路由項(xiàng),這些路由項(xiàng)包含下列信息。
目的地址:指主機(jī)或網(wǎng)絡(luò)的地址。
下一跳地址:指為到達(dá)目的地,本路由器要經(jīng)過的下一個(gè)路由器地址。
接口:指轉(zhuǎn)發(fā)報(bào)文的接口。
metric值:指本路由器到達(dá)目的地的開銷,是一個(gè)0~16之間的整數(shù)。
定時(shí)器:從路由項(xiàng)最后一次被修改到現(xiàn)在所經(jīng)過的時(shí)間,路由項(xiàng)每次被修改時(shí),定時(shí)器重置為0。
路由標(biāo)記:區(qū)分路由為內(nèi)部路由協(xié)議的路由還是外部路由協(xié)議的路由的標(biāo)記。
Rip工作在UDP的端口520上-也就是說,所有的RIP數(shù)據(jù)包的源端口和目的端口都是520。
2. RIP的啟動(dòng)和運(yùn)行
RIP啟動(dòng)和運(yùn)行的整個(gè)過程可描述如下:
某路由器剛啟動(dòng)RIP時(shí),以廣播或組播的形式向相鄰路由器發(fā)送請(qǐng)求報(bào)文,相鄰路由器的RIP收到請(qǐng)求報(bào)文后,響應(yīng)該請(qǐng)求,回送包含本地路由表信息的響應(yīng)報(bào)文。
路由器收到響應(yīng)報(bào)文后,修改本地路由表,同時(shí)向相鄰路由器發(fā)送觸發(fā)修改報(bào)文,廣播路由修改信息。相鄰路由器收到觸發(fā)修改報(bào)文后,又向其各自的相鄰路由器發(fā)送觸發(fā)修改報(bào)文。在一連串的觸發(fā)修改廣播后,各路由器都能得到并保持最新的路由信息。
同時(shí),RIP每隔30秒向相鄰路由器廣播本地路由表,相鄰路由器在收到報(bào)文后,對(duì)本地路由進(jìn)行維護(hù),選擇一條最佳路由,再向其各自相鄰網(wǎng)絡(luò)廣播修改信息,使更新的路由最終能達(dá)到全局有效。同時(shí),RIP采用超時(shí)機(jī)制對(duì)過時(shí)的路由進(jìn)行超時(shí)處理,以保證路由的實(shí)時(shí)性和有效性。
3. RIP-1和RIP-2
RIP 有兩個(gè)不同的版本,RIPv1和RIPv2. RIPv1 。
RIPv1和RIPv2. RIPv1 的主要區(qū)別:
1.RIPv1是有類路由協(xié)議,RIPv2是無類路由協(xié)議
2.RIPv1不能支持VLSM,RIPv2可以支持VLSM
3.RIPv1沒有認(rèn)證的功能,RIPv2可以支持認(rèn)證,并且有明文和MD5兩種認(rèn)證
4.RIPv1沒有手工匯總的功能,RIPv2可以在關(guān)閉自動(dòng)匯總的前提下,進(jìn)行手工匯總
5.RIPv1是廣播更新,RIPv2是組播更新,
6.RIPv1對(duì)路由沒有標(biāo)記的功能,RIPv2可以對(duì)路由打標(biāo)記(tag),用于過濾和做策略
7.RIPv1發(fā)送的updata最多可以攜帶25條路由條目,RIPv2在有認(rèn)證的情況下最多只能攜帶24條路由
8.RIPv1發(fā)送的updata包里面沒有next-hop屬性,RIPv2有next-hop屬性,可以用與路由更新的重定
RIP的四個(gè)定時(shí)器
Update timer 更新計(jì)時(shí)器。在RIP啟動(dòng)之后,平均每30秒,啟用了RIP的接口會(huì)發(fā)送應(yīng)答信息(也就是update),這個(gè)update包含了路由器除了被split horizon(水平分割)抑制的完整的路由表.update周期發(fā)送的時(shí)間間隔(即update timer)為25.5秒到30秒之間(隨機(jī)),并且update的目標(biāo)地址為255.255.255.255
invalid timer無效計(jì)時(shí)器。如果 180 秒(默認(rèn)值)后還未收到可刷新現(xiàn)有路由的更新,則將該路由的度量設(shè)置為 16,從而將其標(biāo)記為無效路由。在清除計(jì)時(shí)器超時(shí)以前,該路由仍將保留在路由表中。
flush timer清除計(jì)時(shí)器。默認(rèn)情況下,清除計(jì)時(shí)器設(shè)置為 240 秒,比無效計(jì)時(shí)器長(zhǎng) 60 秒。當(dāng)清除計(jì)時(shí)器超時(shí)后,該路由將從路由表中刪除。
這里就意味著一個(gè)路由條目在180秒內(nèi)沒有收到更新報(bào)文時(shí),無效計(jì)時(shí)器超時(shí)。路由條目中該路由被標(biāo)志為x.x.x.x is possibly down,直到刷新計(jì)時(shí)器也超時(shí)了(再過60秒后)該路由條目才被刪除。在RIP中真正刪除路由條目的是刷新計(jì)時(shí)器超時(shí)。
holddown timer抑制計(jì)時(shí)器。該計(jì)時(shí)器用于穩(wěn)定路由信息,并有助于在拓?fù)浣Y(jié)構(gòu)根據(jù)新信息收斂的過程中防止路由環(huán)路。在某條路由被標(biāo)記為不可達(dá)后,它處于抑制狀態(tài)的時(shí)間必須足夠長(zhǎng),以便拓?fù)浣Y(jié)構(gòu)中所有路由器能在此期間獲知該不可達(dá)網(wǎng)絡(luò)。默認(rèn)情況下,抑制計(jì)時(shí)器設(shè)置為 180 秒。
抑制計(jì)時(shí)器通過以下方式工作:
1. 路由器從鄰居處接收到更新,該更新表明以前可以訪問的網(wǎng)絡(luò)現(xiàn)在已不可訪問。
2. 路由器將該網(wǎng)絡(luò)標(biāo)記為 possibly down 并啟動(dòng)抑制計(jì)時(shí)器。
3. 如果在抑制期間從任何相鄰路由器接收到含有更小度量的有關(guān)該網(wǎng)絡(luò)的更新,則恢復(fù)該網(wǎng)絡(luò)并刪除抑制計(jì)時(shí)器。
4. 如果在抑制期間從相鄰路由器收到的更新包含的度量與之前相同或更大,則該更新將被忽略。如此一來,更改信息便可以繼續(xù)在網(wǎng)絡(luò)中傳播一段時(shí)間。
5. 路由器仍然會(huì)轉(zhuǎn)發(fā)目的網(wǎng)絡(luò)被標(biāo)記為 possibly down 的數(shù)據(jù)包。通過這種方式,路由器便能克服連接斷續(xù)所帶來的問題。如果目的網(wǎng)絡(luò)確實(shí)不可達(dá),但路由器又轉(zhuǎn)發(fā)了數(shù)據(jù)包,黑洞路由就會(huì)建立起來并持續(xù)到抑制計(jì)時(shí)器超時(shí)。
4.RIP協(xié)議優(yōu)缺點(diǎn)RIP協(xié)議的優(yōu)點(diǎn)是配置簡(jiǎn)單,非常適用于小規(guī)模網(wǎng)絡(luò)。
RIP協(xié)議的缺點(diǎn)包括:
大量廣播。RIP向所有鄰居每隔30秒廣播一次完整的路由表,將占用寶貴的帶寬資源,在較慢的廣域網(wǎng)鏈路上尤其有問題。
沒有成本概念。RIP沒有網(wǎng)絡(luò)延遲和鏈路成本的概念。當(dāng)采用RIP時(shí),路由/轉(zhuǎn)發(fā)的決定只是基于跳線,這樣,很容易導(dǎo)致無法選擇最佳路由。例如,一條鏈路擁有較高的帶寬,但是,跳數(shù)較多,從而不能被選擇。
支持的網(wǎng)絡(luò)規(guī)模有限。由于RIP最多只支持16個(gè)步跳,當(dāng)超過該跳數(shù)時(shí),網(wǎng)絡(luò)將認(rèn)為無法到達(dá)。因此,RIP只能適用于規(guī)模較少的網(wǎng)絡(luò)。