RIP路由協議
一、RIP協議的認識
RIP(Routing Information Protocol)是採用D-V(Distance-Vector)算法的距離矢量協議
根據跳數(Hop Count)來決定最佳路徑。最大跳數爲16,限制了網絡的範圍。
單獨以跳數做爲距離或花費,在有些狀況下是不合理的,由於跳數少不必定是最佳路徑;
實際上帶寬和可靠性也是重要的因素。有時須要管理員修改花費值。
RIP有兩個版本,RIP-1 和RIP-2。
RIP-1:採用廣播方式發送報文。不支持子網路由。
RIP-2:支持多播方式、子網路由和路由的聚合。
二、路由表的維護
經過UDP協議每隔30秒發送路由交換信息,從而肯定鄰居的存在。
若180秒尚未收到某相鄰結點路由信息,標記爲此路不可達。
若再120秒後尚未收到路由信息,則刪除該條路由。
當網絡結構變化時,要更新路由表,這個過程稱爲收斂(Convergence)。
RIP標記一條路由不可達要通過3分鐘,收斂過程較慢。
路由表是在內存當中的,路由器上電時初始化路由表,對每一個直接網絡生成一條路由。
同時複製相鄰路由器的路由表,複製過程當中跳數加1,且下一跳指向該路由器。
若去往某網絡的下一跳是RouteA,若RouteA去該網絡的路由沒有了,則刪除這一路由。
跳數是到達目的網絡所通過的路由器數目,直接網絡的跳數是0,且有最高的優先級。
三、路由環路:
矢量路由的一個弱點就是可能產生路由環路,產生路由環路的緣由有兩種,
一是靜態路由設置的不合理,再一是動態路由定時廣播產生的誤會。
先看靜態路由設置不合理的狀況:
設兩個路由器RouterA和RouterB,其路由表中各有一條去往相同目的網絡的靜態路由,
但下一跳彼此指向對方,造成環路。
再看動態路由形成的狀況:
假設某路由器RouterA經過RouterB至網絡neta,
但RouteB到neta不可達了,且RouterB的廣播路由比RouterA先來到,
RouterB去neta不可達,但RouterA中有去往neta路由,且下一跳是RouterB,
這時RouteB就會從RouterA那裏學習該路由,將去往neta的指向RouterA,跳數加1。
去neta的路由本來是RouterB傳給RouterA的,現RouterB卻從RouterA學習該路由,
顯然是不對的,但這一現象還會繼續,
RouterA去neta網絡的下一路是RouterB,當RouterB的跳數加1的時候,RouterA將再加1。
周而復反造成環路,直至路由達到最大值16。
四、解決路由環路的辦法 (1) 規定最大跳數 RIP規定了最大跳數爲16,跳數等於16時視爲不可達,從而阻止環跳進行。 (2) 水平分割 水平分割是過濾掉髮送給原發者的路由信息。具體路由信息單向傳送。 (3) 毒性逆轉 水平分割的改進,收到原是本身發出的路由信息時,將這條信息跳數置成16,即毒化。 (4) 觸發方式 一旦發現網絡變化,不等呼叫,當即發送更新信息,迅速通知相鄰路由器,防止誤傳。 (5) 抑制時間 在收到路由變化信息後,啓動抑制時間,此時間內變化項被凍結,防止被錯誤地覆蓋。