需要注意的是,距離向量路由協議只是簡單地將自己的路由表周期性地通告出去,同時也將收到的有效路由載入到路由表中,並通過累加的度量值來體現到達目標網路的距離,但是執行距離向量路由協議的路由器其實並不了解整個網路的拓撲結構,這些特點使得網路中非常容易出現路由環路。
如下圖所示的網路拓撲中:
r1準備在下乙個更新週期到來時通告該條路由的不可達情況。
但是此時完全有可能出現的一種情況是,在r1通告這個更新之前,r2的更新週期到了,它開始在自己的ge0/0/0介面上傳送response報文,該報文中包含r2路由表中的所有路由,其中就包括1.0.0.0/8路由,且該路由的跳數為2 (r2自己到達該網段需經過1個路由器,因此它將路由更新出去時將跳數加1) 。
r1收到這個response報文後,發現1.0.0.0/8竟然通過r2可達且跳數為2,於是它將1.0.0.0/8路由載入到路由表,如下圖所示:
很明顯,此時出現了路由環路。如果r2收到乙個發往1.0.0.0/8的資料報,經過路由表查詢後,r2發現自己有一條路由可以匹配該目的位址,並且下一跳為r1,因此它將資料報**給r1,但是r1經過路由表查詢,發現到達1.0.0.0/8下一跳是r2,於是資料報又被**給r2,如此反覆,發往該網段的資料報就會在r1、r2之間不停地來回**,直到報文的ttl值遞減為0。
如果業務流量特別大的話,這無疑將對路由器的效能造成極大損耗,也可能將鏈路的頻寬耗盡。
設想一下,如果rip沒有任何機制解決該問題,那麼1.0.0.0/8路由豈不是會在網路中被不斷地泛洪且其度量值也會持續累加到無窮大?
RIP路由防止環路的方法
距離向量路由協議中路由環路問題的解決方法 概括來講,主要分為六種 1.定義最大值 2.水平分割技術 3.路由中毒 4.反向路由中毒 5.控制更新時間 6.觸發更新。下面我們就來一一講解各種解決方法的實現原理 1.定義最大值 距離向量路由演算法可以通過ip頭中的生存時間 ttl 來 糾錯,但路由環路問...
RIP解決環路機制
在最初開發 rip的時候就發現環路的問題,所以已經在 ripv1 和ripv2 中整合了幾種防止環路的方式 l 最大跳數 當乙個路由條目作為副本傳送出去的時候就會自加 1跳,那麼最大加到 16跳,到 16跳就已經被視為最大條數不可達了。l 水平分割 路由器不會把從某個介面學習到的路由在從該介面廣播回...
黑洞路由,避免路由環路
預設路由一般配置在邊界路由器上,如果不知道去往公網isp的下一條位址,可以用出口介面來代替,比如 ip route static 0.0.0.0 0 0 0 0 如果因為一些實際情況,必須在內網的兩個路由器之間配置預設路由,為了避免某些路由匹配中途斷掉,走預設路由形成環路,必須配上 黑洞路由 黑洞路...