(轉)示例化講解RIP路由更新機制

原文鏈接:https://www.cnblogs.com/lixuwu/p/5676177.html

 以下內容摘自最新上市的“四大金剛”圖書之一《Cisco路由器配置與管理完全手冊》(第二版)(其它三本分別爲《Cisco交換機配置與管理完全手冊》(第二版)、《H3C交換機配置與管理完全手冊》(第二版)和《H3C路由器配置與管理完全手冊》(第二版)),目前這四本新書在各大網店中均有銷售:http://item.jd.com/11273171.html http://product.dangdang.com/product.aspx?product_id=23270907

 

8.1.3 RIP路由更新機制

    RIP協議有兩種更新機制:一是定期更新,二是觸發更新。“定期更新”是根據設置的更新計時器定期發送RIP路由通告。該通告報文中攜帶了除“水平分割”機制抑制的RIP路由之外本地路由器中的所有RIP路由信息。而“觸發更新”則是RIP路由器僅在有路由表項發生變化時發送的RIP路由通告,僅攜帶本地路由表中有變化的路由信息。RIP路由器一旦察覺到網絡變化,就儘快甚至是立即發送更新報文,而不等待更新週期結束。只要觸發更新的速度足夠快,就可以大大地防止“計數到無窮大”的發生,但是這一現象還是有可能發生的。

    無論是定期更新,還是觸發更新,RIP路由的更新規則如下

l  如果更新的某路由表項在路由表中沒有,則直接在路由表中添加該路由表項;

l  如果路由表中已有相同目的網絡的路由表項,且來源端口相同,那麼無條件根據最新的路由信息更新其路由表;

l  如果路由表中已有相同目的網絡的路由表項,但來源端口不同,則要比較它們的度量值,將度量值較小的一個作爲自己的路由表項;

l  如果路由表中已有相同目的網絡的路由表項,且度量值相等,保留原來的路由表項。

下面主要介紹RIP路由的定期更新機制。

1.RIP路由定期更新機制

    RIP路由器總是會每隔30秒(這是默認值,可以修改,而且也可能與設置值有些偏差)通過UDP 520端口以RIP廣播應答方式向鄰居路由器發送的一個路由更新包,包中包括了本路由器上的完整的路由表(除了被“水平分割”機制抑制的路由表項),用來向鄰居路由器提供路由更新,同時用來向鄰居路由器證明自己的存在。RIP的路由表中主要包括“目的網絡”、“下一跳地址”和“距離”這三個字段,參見圖8-3。

    如果一個路由器在180秒(這也是默認值,可以修改)內沒有收到某個鄰居路由器發來的路由更新,則這個路由器就會標記該鄰居路由器爲不可達路由器,使這個鄰居路由器處於抑制週期。當路由器處於抑制週期內,它仍然用於向前轉發數據包,但網絡中的其它路由器不學習到達該路由器所連網絡的路由信息,除非是一條更好的到達該路由器所連網絡的路由信息,如本來是3跳,在抑制週期內學到了一條2跳的路由信息。但抑制週期過後,即使是差的路由信息也接受。

    如果在連續的240秒(這也是默認值,可以修改)內還沒收到這個路由器的路由更新,則本地路由器會在路由表中刪除與該鄰居路由器相關的路由表項。

    由此可見,這個路由更新不僅影響着整個RIP網絡中的路由器上最由表的更新和所有需要到達,或者經過該路由器的數據包路由,還影響着其它鄰居路由器是否當它存在。試想一下,如果有一個數據包是要發送到連接某個某個RIP路由器的網絡的一臺主機上,但這臺RIP路由器當時恰好出現了故障,沒有這個路由器更新機制的話,其它路由器也就不知道它當前出現了故障,仍按原來的路由路徑傳輸數據包,結果當然是數據包總是無法到達目的主機了,儘管可能經過多次嘗試。

2.RIP路由定期更新機制解析示例

    爲了更好地理解RIP協議路由表的更新機制,下面以圖8-6所示的簡單的互連網絡爲例來討論圖中各個路由器中的路由表是怎樣建立的。

 

 

圖8-6 RIP路由表建立網絡示例

   (1)在一開始,所有路由器中的路由表只有自己所直接連接的網絡的路由表項信息。但不是RIP路由表項,是直連路由表項,無需下一跳(用“--”表示),度量“距離”也均爲0 ,各路由器的初始路由表如圖8-7所示,均只有兩條直連網絡的路由表項。

  (2)接下來,各路由器就會按設置的週期(默認爲30秒)向鄰居路由器發送路由更新了。具體哪個路由器會先發送路由更新,取決於哪個路由器先開了。現假設路由器R2先收到來自路由器R1和R3的路由更新,然後就更新自己的路由表,如圖8-8所示。從中可以看出,它新添加了分別通過R1和R3到達10.0.0.0網絡和30.0.0.0網絡的路由表項,度量值均爲1,因爲它只經過了一跳。

圖8-7 R1、R2和R3的初始路由表

   (3)R2更新自己的路由表後,會把完整的路由表發給鄰居路由器R1和R3。路由器R1和R3分別再進行更新。根據前面介紹的RIP路由表更新的規則可以知道,R1首先是把從R2上接收到的如果圖8-8的路由表中,對每項度量進行加1,得到的路由表如圖8-9所示。

   

圖8-8  R2在路由更新後的路由表   圖8-9  R1對收到的來自R2路由表進行度量加1後形成的路由表

   (4)然後R1再把圖8-9所示的路由表與自己原來的路由表(圖8-6中的左圖所示)進行比較,凡是新添加的,和度量值小於等於原來的路由表項均將更新,度量值更大的路由表項將忽略更新。經過行比較發現有兩條新的路由表項,其目的網絡分別爲30.0.0.0和40.0.0.0,直接在路由表中添加。而原來已有的兩條10.0.0.0和20.0.0.0表項,發現路由度量(“距離”)值1比原來的0還大,忽略更新,結果就得到R1更新後的路由表,如圖8-10所示。

   用同樣的方法可以得出R3在收到R2路由更新後的路由表如圖8-11所示。但RIP路由協議存在一個問題,那就是網絡收斂比較慢,當網絡出現故障時,要經過比較長的時間才能將此信息傳送到所有的路由器,而且中間有許多是無效路由更新。

 

圖8-10 R1在收到R2路由更新後的路由表   圖8-11 R3在收到R2路由更新後的路由表

    仍以圖8-6爲例,現在三個路由器都已經建立了各自的穩定路由表,假設R1路由器和網1(10.0.0.0)的連接線路斷開了。此時R1可以立即發現,並更新自己的路由表,將到10.0.0.0的路由表項距離改爲16(即不可達),並在30秒後將此路由更新信息發給R2。但是,R2從R3得到的路由更新是“經過R2到達10.0.0.0網絡的距離爲2”,明顯度量值更小,於是R2將此路由表項更新爲“經過R3到達10.0.0.0的距離爲3”,然後再通過路由更新發給R3,此時R3的路由表中更新爲“經過R2到達10.0.0.0網絡的距離爲4”。R3再通過路由更新發給R2信息,結果是““經過R3到達10.0.0.0網絡的距離爲5””,一直如此反覆,直到該路由表項的距離達到16,R2和R3才知道10.0.0.0網絡是不可達的。

   爲了解決這一不足,產生了水平分割技術,就是同一路由表項更新不再從接收該路由表項的接口發送出去,具體將在本章後面介紹。下面再具體介紹RIP路由的收斂機制。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章