D-V解決路由環路的方法
路由環路如何發生?
在維護路由表信息的時候,如果在拓撲發生改變后,網絡收斂緩慢產生了不協調或者矛盾的路由選擇條目,就會發生路由環路的問題,那么該如何解決此問題呢?本文就為大家介紹D-V解決路由環路的方法。
Distance-VectorRoutingProtocols通過向所有接口周期性的廣播路由更新來跟蹤整個網絡的變化,這些廣播包括了完整的路由表,但卻給cpu和帶寬增加了負擔。若會聚更新過慢會產生路由環路。

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