D-V解決路由環(huán)路的方法
路由環(huán)路如何發(fā)生?
在維護(hù)路由表信息的時(shí)候,如果在拓?fù)浒l(fā)生改變后,網(wǎng)絡(luò)收斂緩慢產(chǎn)生了不協(xié)調(diào)或者矛盾的路由選擇條目,就會(huì)發(fā)生路由環(huán)路的問題,那么該如何解決此問題呢?本文就為大家介紹D-V解決路由環(huán)路的方法。
Distance-VectorRoutingProtocols通過向所有接口周期性的廣播路由更新來跟蹤整個(gè)網(wǎng)絡(luò)的變化,這些廣播包括了完整的路由表,但卻給cpu和帶寬增加了負(fù)擔(dān)。若會(huì)聚更新過慢會(huì)產(chǎn)生路由環(huán)路。

假如網(wǎng)絡(luò)5出問題了,不工作了,E就發(fā)送更新給C匯報(bào)情況,于是,C開始停止通過E來路由信息到網(wǎng)絡(luò)5,但是這個(gè)時(shí)候A,B和D還不知道網(wǎng)絡(luò)5出問題了.所以它們?nèi)匀焕^續(xù)發(fā)送更新信息.C發(fā)送更新給B說停止路由到網(wǎng)絡(luò)5.但是此時(shí)A和D還沒有更新,所以它們覺得網(wǎng)絡(luò)5仍然可用,而且跳數(shù)為3.接下來,A發(fā)送更新說:嘿!網(wǎng)絡(luò)5還可用.B和D接受到A發(fā)來的更新后,沒辦法,也相同的覺得可用經(jīng)過A到達(dá)網(wǎng)絡(luò)5,并且認(rèn)為網(wǎng)絡(luò)5可用.所以就這樣,1個(gè)目標(biāo)網(wǎng)絡(luò)是網(wǎng)絡(luò)5的數(shù)據(jù)包將進(jìn)過A到B,然后又回到A……
路由環(huán)路解決辦法
水平分割(splithorizon),它規(guī)定由1個(gè)接口發(fā)送出去的路由信息不能再朝這個(gè)接口往回發(fā)送.這個(gè)辦法減少了路由信息的不正確性和負(fù)載,但在某些環(huán)境中,例如Frame-Relay的Hub節(jié)點(diǎn),水平分割將帶來一些麻煩。
毒性逆轉(zhuǎn)(poisonreverse)。當(dāng)一條路徑信息變?yōu)闊o效之后,路由器并不立即將它從路由表中刪除,而是用16,即不可達(dá)的度量值將它廣播出去。這樣雖然增加了路由表的大小,但對消除路由環(huán)路很有幫助,它可以立即清除相鄰路由器之間的任何環(huán)路。
觸發(fā)更新(triggerupdate)。當(dāng)路由表發(fā)生變化時(shí),更新報(bào)文立即廣播給相鄰的所有路由器,而不是等待30秒的更新周期。同樣,當(dāng)一個(gè)路由器剛啟動(dòng)RIP時(shí),它廣播請求報(bào)文。收到此廣播的相鄰路由器立即應(yīng)答一個(gè)更新報(bào)文,而不必等到下一個(gè)更新周期。這樣,網(wǎng)絡(luò)拓?fù)涞淖兓瘯?huì)最快地在網(wǎng)絡(luò)上傳播開,減少了路由環(huán)路產(chǎn)生的可能性。
抑制計(jì)時(shí)(holddowntimer)。一條路由信息無效之后,一段時(shí)間內(nèi)這條路由都處于抑制狀態(tài),即在一定時(shí)間內(nèi)不再接收關(guān)于同一目的地址的路由更新。如果,路由器從一個(gè)網(wǎng)段上得知一條路徑失效,然后,立即在另一個(gè)網(wǎng)段上得知這個(gè)路由有效。這個(gè)有效的信息往往是不正確的,抑制計(jì)時(shí)避免了這個(gè)問題,而且,當(dāng)一條鏈路頻繁起停時(shí),抑制計(jì)時(shí)減少了路由的浮動(dòng),增加了網(wǎng)絡(luò)的穩(wěn)定性。
路由環(huán)路的問題即便采用了上面的4種方法也不能完全解決,只是得到了***程度的減少。一旦路由環(huán)路真的出現(xiàn),路由項(xiàng)的度量值就會(huì)出現(xiàn)計(jì)數(shù)到無窮大(CounttoInfinity)的情況。這是因?yàn)槁酚尚畔⒈谎h(huán)傳遞,每傳過一個(gè)路由器,度量值就加1,一直加到16,路徑就成為不可達(dá)的了。RIP選擇16作為不可達(dá)的度量值是很巧妙的,它既足夠的大,保證了多數(shù)網(wǎng)絡(luò)能夠正常運(yùn)行,又足夠小,使得計(jì)數(shù)到無窮大所花費(fèi)的時(shí)間最短。