剖析RIP協(xié)議
今天我們主要介紹一下RIP協(xié)議,這個(gè)協(xié)議是我們?cè)趯W(xué)習(xí)路由協(xié)議的時(shí)候***個(gè)接觸的協(xié)議。那么這個(gè)協(xié)議主要有什么特點(diǎn)呢?接下來(lái)就來(lái)詳細(xì)介紹一下這個(gè)協(xié)議吧。RIP協(xié)議的一個(gè)重要的特點(diǎn)是它能夠告訴你它從其他路由器那里了解到的的有關(guān)目標(biāo)網(wǎng)絡(luò)的情況。你可能聽(tīng)說(shuō)過(guò)這類(lèi)被稱(chēng)為“傳聞路由(routing by rumor)”的路由協(xié)議。它的工作方式是,在一臺(tái)路由器廣播RIP數(shù)據(jù)包之前把尺度域(metric field)的值加一。例如路由器A告訴你你能夠經(jīng)過(guò)它通過(guò)兩跳達(dá)路由器B,那么,你就知道路由器A和路由器B能夠直接對(duì)話(huà),因?yàn)樗鼈冎g的距離只有一個(gè)跳點(diǎn)。所以,路由器A同路由器B一樣在同一個(gè)廣播域中有一個(gè)鏈路。但是,你卻沒(méi)有。
當(dāng)這個(gè)尺度,或者跳數(shù),達(dá)到16的時(shí)候,說(shuō)明你就遇問(wèn)題。16這個(gè)數(shù)字在RIP協(xié)議中意味著無(wú)窮大。無(wú)窮數(shù)等于16是一種用來(lái)停止度量值無(wú)限增大的機(jī)制。之所以這樣設(shè)計(jì)由于“傳聞路由”的工作原理。這個(gè)問(wèn)題講起來(lái)有點(diǎn)復(fù)雜。但是,請(qǐng)你耐心看一下下面這個(gè)三個(gè)路由器的例子:
路由器A知道它通過(guò)路由器B能夠在2跳之內(nèi)可以達(dá)到路由器C。你頭腦中的畫(huà)面可以是一條直線(xiàn),路由器B在中間,路由器A和C在兩端?,F(xiàn)在,由于路由器B與路由器C有直接的連接,因此,當(dāng)路由器C出故障的時(shí)候它將會(huì)知道。
但是,當(dāng)路由器B有機(jī)會(huì)告訴路由器A有關(guān)路由器C出故障的事情之前,路由器A發(fā)出了一個(gè)RIP更新信息。這個(gè)信息包括“我能夠在2跳之內(nèi)可以達(dá)到路由器C”。路由器B當(dāng)然會(huì)相信路由器A,這就意味著路由器B相信路由器A能夠達(dá)到路由器C。當(dāng)然,路由器A是不能到達(dá)路由器C的,因?yàn)樗穆窂揭?jīng)過(guò)路由器B。
但是,路由器B并不知道這種情況,因?yàn)镽IP協(xié)議中的惟一信息是下一跳地址,也就是路由器A。***,當(dāng)路由器B發(fā)送它的下一次更新的時(shí)候,它將包括通向路由器C的路由,這個(gè)路由現(xiàn)在是3跳。路由器A相信路由器B,因?yàn)槁酚善鰾畢竟是通向路由器C的惟一通道。這種事情經(jīng)常發(fā)生,我們的跳數(shù)達(dá)到了16。這個(gè)路由將被放棄,而不會(huì)永遠(yuǎn)繼續(xù)下去。
這個(gè)問(wèn)題如何解決呢?使用距離向量協(xié)議可沒(méi)有辦法。當(dāng)我們告訴我們的鄰居有關(guān)這個(gè)世界的情況時(shí),我們沒(méi)有提供有關(guān)每一個(gè)網(wǎng)絡(luò)的詳細(xì)信息,這樣剛才那種計(jì)算無(wú)窮數(shù)的事情就可能發(fā)生。鏈路狀態(tài)協(xié)議向全部路由器提供整個(gè)網(wǎng)絡(luò)的狀況因此可以避免了這種問(wèn)題的發(fā)生。“水平分割”是幫助避開(kāi)這個(gè)問(wèn)題的另一種方法。但是,這種方法本身也存在瑕疵。
Split-horizon意味著我們要跟蹤更新信息發(fā)進(jìn)來(lái)的端口,關(guān)注可能與之發(fā)生沖突的其它路由器發(fā)來(lái)的更新信息。換句話(huà)說(shuō),路由器紀(jì)錄一條路由信息發(fā)送出去時(shí)使用的接口,當(dāng)從這個(gè)接口收到到到同一目標(biāo)的路由更新信息時(shí),它會(huì)了解這是自己剛發(fā)出去的信息被其它路由器回傳了回來(lái),從面一定程序上避免問(wèn)題,但是,當(dāng)涉及到更多的路由器的時(shí)候,上面介紹的情況仍會(huì)存在。這種例子會(huì)變得更加復(fù)雜。但是,如果你對(duì)RIP協(xié)議感興趣,你可以試著設(shè)計(jì)出一種環(huán)境,在這種環(huán)境中即使具有Split-horizon功能的路由器仍會(huì)出現(xiàn)計(jì)算無(wú)窮數(shù)的現(xiàn)象。
RIP協(xié)議的***一個(gè)“問(wèn)題”就是聚合的速度慢。這是真的,主要是因?yàn)槊看胃麻g隔的30秒等待時(shí)間。但是,在小機(jī)構(gòu)中,這沒(méi)什么大關(guān)系。RIPv2幾乎能夠在所有的硬件上運(yùn)行,甚至在你買(mǎi)來(lái)支持寬帶網(wǎng)連接的廉價(jià)的“家庭路由器”上也可以運(yùn)行。即使你沒(méi)有專(zhuān)門(mén)把RIP協(xié)議用作一個(gè)IGP協(xié)議,了解這個(gè)協(xié)議仍然是有用的,因?yàn)橹鳈C(jī)也可以使用這個(gè)協(xié)議作為手工設(shè)置一個(gè)默認(rèn)的網(wǎng)關(guān)的替代方法。***,即使你的機(jī)構(gòu)很小,全部使用靜態(tài)路由就夠用,RIPv2也會(huì)給你帶來(lái)更多的方便。
RIP協(xié)議是一種距離向量?jī)?nèi)部網(wǎng)關(guān)路由協(xié)議:它使用跳數(shù)和下一跳路由器來(lái)具體說(shuō)明路由。
RIPv1用來(lái)進(jìn)行廣播,但是并不支持CIDR地址解析。RIPv2是無(wú)類(lèi)域間路由并且使用多播技術(shù)。
雖然這個(gè)協(xié)議的匯聚速度很慢并且存在一些瑕疵,但是,RIP非常適合于中小企業(yè)環(huán)境。