三、RIP工作原理/防環機制
1、工作原理
配置好RIP的路由器會每隔30s,向鄰居路由器自動發送RIP路由更新報文。報文里面攜帶了其所知道的所有路由。
通過發送數據包進行路由信息的交互,路由器啟動RIP協議,向周圍鄰居路由器傳遞request(請求)response(響應)報文,周圍路由器收到后發回復報文,回復報文內包含有周圍路由器自身的RIP路由表,路由器收到周圍路由器的恢復后修改自己的路由表。
2、RIP防環機制
對于路由環路問題,RIP中存在3種解決方案:水平分割、毒性逆轉、觸發更新。
(1)水平分割(Split Horizon)
水平分割的原理:RIP路由設備從某個接口學到的路由不會從該接口再發回給鄰居路由設備。這樣不但減少了帶寬消耗,還可以防止路由環路。
水平分割在不同網絡中實現有所區別,分為按照接口和按照鄰居進行水平分割兩種:
1)在廣播型網絡、點到點網絡(P2P)和點到多點網絡(P2MP)中,從哪個接口學習到的RIP路由信息,就禁止從該接口發送出去。
廣播網、P2MP和P2P網絡中的水平分割
如(上圖示),DeviceA會向DeviceB發送到網絡10.0.0.0/8的路由信息,如果沒有配置水平分割,DeviceB會將從RouterA學習到的這條路由再發送回給RouterA。這樣,RouterA可以學習到兩條到達10.0.0.0/8網絡的路由,一條是跳數為0的直連路由,一條是下一跳指向DeviceB且跳數為2的路由。
但是在DeviceA的RIP路由表中只有直連路由才是活躍的。當DeviceA到網絡10.0.0.0的路由變成不可達,并且DeviceB還沒有收到路由不可達的信息時,DeviceB會繼續向DeviceA發送10.0.0.0/8可達的路由信息。即,DeviceA會接收到錯誤的路由信息,認為可以通過DeviceB到達10.0.0.0/8網絡;而DeviceB仍舊認為可以通過DeviceA到達10.0.0.0/8網絡,從而形成路由環路。
配置水平分割后,DeviceB將不會再把到網絡10.0.0.0/8的路由發回給DeviceA,避免了路由環路的產生。
2)在非廣播多路訪問網絡(NBMA,Non Broadcast Multiple Access)中,不允許將從某一鄰居學習到的路由信息再發送回該鄰居,是按照鄰居進行水平分割。
NBMA網絡中的水平分割
對于NBMA網絡,由于一個接口上連接多個鄰居,RIP支持在NBMA網絡中按鄰居進行水平分割處理。NBMA網絡中,路由按照單播方式發送,同一接口上收到的路由可以按鄰居進行區分。從某一接口的對端鄰居處學習到路由,不會再通過該接口發送回去。
如(上圖)示,配置水平分割后,DeviceB會將從DeviceA學習到的10.0.0.0/8路由發送給DeviceC,但是不會再發送回給DeviceA。
(2)毒性反轉(Poison Reverse)
毒性逆轉的原理:配置了毒性反轉之后,可以使錯誤路由立即超時。RIP從某個接口學到路由后,從原接口發回鄰居路由器,并將該路由的開銷設置為16(即指明該路由不可達),并從原接口發回鄰居路由設備。利用這種方式,可以清除對方路由表中的無用路由,也可以防止產生路由環路的發生。
如(上圖)示,DeviceA會向DeviceB發送10.0.0.0/8路由信息,如果沒有配置毒性逆轉,Device B會將從DeviceA學習到的這條路由再發送回給DeviceA。這樣,DeviceA可以學習到兩條到達10.0.0.0/8網絡的路由,一條是跳數為0的直連路由;一條是下一跳指向DeviceB且跳數為2的路由。
當DeviceA到網絡10.0.0.0/8的路由變成不可達,并且DeviceB還沒有收到路由不可達的信息時,DeviceB會繼續向Device A發送10.0.0.0/8可達的路由信息。即,DeviceA會接收到錯誤的路由信息,認為可以通過DeviceB到達10.0.0.0/8網絡;而DeviceB仍舊認為可以通過DeviceA到達10.0.0.0/8網絡,由此導致了路由環路。
配置毒性逆轉后,DeviceB在接收到從DeviceA發來的路由后,向DeviceA發送一個這條路由不可達的消息(即將該路由的開銷設置為16跳,16跳即意味著該路由不可達),這樣DeviceA就不會再從DeviceB學到這條可達路由,因此就可以避免上述環路的發生。
(3)觸發更新
缺省情況下,一臺RIP路由器每30秒會發送一次路由表更新給鄰居路由器。
觸發更新的原理:當本地路由信息發生變化時,觸發更新功能允許路由器立即發送觸發更新報文給鄰居路由器,來通知路由信息更新,而不需要等待更新定時器超時,從而加速了網絡收斂。觸發更新可以縮短網絡收斂時間,在路由表項變化時立即向其他設備廣播該信息,而不必等待定時更新。
如(上圖)所示,網絡10.4.0.0不可達時,DeviceC最先得到這一信息。通常,更新路由信息會定時發送給相鄰Device(RIP協議每隔30秒發送一次)。
但如果在DeviceC等待更新周期到來的時候,DeviceB的更新報文傳到了DeviceC,DeviceC就會學到DeviceB的去往網絡10.4.0.0的錯誤路由。這樣DeviceB和DeviceC上去往10.4.0.0的路由都指向對方從而形成路由環路。
如果DeviceC發現網絡故障之后,不再等待更新周期到來,就立即發送路由更新信息給DeviceB,使DeviceB的路由表及時更新,則可以避免產生上述問題。
觸發更新還存在另外一種方式:當下一跳不可用之后(如因為鏈路故障)需要及時通告給其他設備,此時要把該路由的cost設置為16然后發布出去,此更新也叫做路由毒殺。
整個華為數通學習筆記系列中,本人是以網絡視頻與網絡文章的方式自學的,并按自己理解的方式總結了學習筆記,某些筆記段落中可能有部分文字或圖片與網絡中有雷同,并非抄襲。完處于學習態度,覺得這段文字更通俗易懂,融入了自己的學習筆記中。如有相關文字涉及到某個人的版權利益,可以直接聯系我,我會把相關文字刪除。【VX:czlingyun ? ?暗號:CSDN】