天天看點

小白必看!RIP協定

作者:運維法拉令

一、RIP概述

路由資訊協定(Routing Information Protocol, RIP)是一種較簡單的内部網關協定,主要應用于規模較小的網絡中,如校園網及結構較簡單的地區性網絡。

RIP是一種基于距離矢量算法的協定,它通過UDP封包進行路由資訊的交換,使用的端口号為520。RIP使用跳數來衡量到達目的位址的距離,換句話說,就是RIP采用跳數作為路徑成本。

在RIP中,預設情況下,裝置到與它直接相連網絡的跳數為0,通過一個裝置可達的網絡跳數為1。也就是說,路徑成本等于從本網絡到達目的網絡間的裝置數量。為限制收斂時間,RIP 規定路徑成本取0~ 15之間的整數,大于或等于16的跳數被定義為無窮大,即目的網絡或主機不可達。這個限制使得RIP不可能在大型網絡中得到應用。

RIP包括RIPv1與RIPv2兩個版本,兩者原理相同,RIPv2 是RIPv1的增強版。RIPv1 是有類别路由協定,協定封包中不攜帶掩碼資訊,不支援VLSM,不支援手工彙總,隻支援以廣播方式釋出協定封包。

RIPv2支援VLSM,協定封包中攜帶掩碼資訊,支援明文認證和MD5密文認證,支援手工彙總,支援以廣播或者多點傳播的形式發送封包。

二、RIP的工作過程

1.路由表建立

RIP啟動時的初始路由表僅包含本路由器的一些直連端口路由,RIP啟動後的工作過程包括如下幾個步驟。

(1) RIP啟動後向各端口廣播一個Request封包。

(2)鄰居路由器的RIP從某端口收到Request 封包後,根據自己的路由表形成Response封包向該端口對應的網絡廣播。

(3)IP接收鄰居路由器回複的包含鄰居路由器路由表的Response封包,形成路由表。RIP以30s為周期用Response封包廣播自己的路由表。

收到鄰居發送而來的Response 封包後,RIP計算封包中的路由路徑成本,比較其與本地路由表中的路由路徑成本是否有差别,更新自己的路由表。封包中路由路徑成本的計算公式為metric = MIN (metric + cost, 16)。其中,metric為封包中攜帶的路徑成本資訊; cost 為接收封包的網絡的開銷,預設為1; 16 代表不可達。

RIP根據DV算法的特點,将協定的參加者分為主動機和被動機兩種。主動機主動向外廣播路由重新整理封包,被動機被動地接收路由重新整理封包。一般情況下,主機作為被動機,路由器則既是主動機又是被動機,即在向外廣播路由重新整理封包的同時,接收來自其他主動機的DV封包,并進行路由重新整理。

2.路由表更新

RIP在更新和維護路由資訊時主要使用如下的4個定時器。

(1)更新定時器(Update timer) :當此定時器逾時時,立即發送更新封包。

(2)老化定時器(Age timer) : RIP裝置如果在老化時間内沒有收到鄰居發來的路由更新封包,則認為該路由不可達。

(3)垃圾收集定時器(Garbage- collect timer) :如果在垃圾收集時間内不可達路由沒有收到來自同一鄰居的更新, 則該路由将被從RIP路由表中徹底删除。

(4)抑制定時器(Suppress timer) :當RIP裝置收到的對端的路由更新cost為16時,對應路由進入抑制狀态,并啟動抑制定時器。為了防止路由震蕩,在抑制定時器逾時之前,即使再收到對端路由cost小于16的更新也不接收。當抑制定時器逾時後,重新允許接收對端發送的路由更新封包。

當本路由器從鄰居路由器收到路由更新封包時,根據以下原則更新本路由器的RIP路由表。

  • 本路由表中已有路由項的下一跳是 鄰居路由器時,不論路徑成本增大或是減小,都更新該路由項(路徑成本相同時隻将其老化定時器清零);當該路由項的下一跳不是鄰居路由器時,隻在路徑成本減小時更新該路由項。
  • 對本路由表中不存在的路由項,路徑成本小于不可達(16)時,在路由表中增加該路由項。
  • 路由表中的每一 路由項都對應一老化定時器,當學習到一條路由并添加到RIP路由表中時,老化定時器啟動。當路由項在180s内沒有任何更新時,老化定時器逾時,該路由項的路徑成本變為不可達(16)。
  • 某路由項的路徑成本變為不可達後,啟動垃圾收集定時器,以該路徑成本在Response 封包中釋出4次(120s),如果垃圾收集定時器逾時,裝置仍然沒有收到更新封包,則在RIP路由表中删除該路由。

三、RIP的路由環路及避免辦法

1.路由環路的産生

當網絡發生故障時,RIP網絡有可能産生路由環路。例如圖所示的示例:

小白必看!RIP協定

RIP 網絡正常運作時,RTA會通過RTB學習到10.0.0.0/8網絡的路由,路徑成本為1,一旦路由器RTB的直連網絡10.0.0.0/8産生故障,RTB會立即檢測到該故障,并認為該路由不可達。

此時,RTA由于還沒有收到該路由不可達的資訊,會繼續向RTB發送路徑成本為2的通往10.0.0.0/8 的路由資訊。RTB則會學習此路由資訊,認為可以通過RTA到達10.0.0.0/8 網絡。此後,RTB發送的更新路由表,又會導緻RTA路由表的更新,RTA便會新增一條路徑成本為3的10.0.0.0/8網絡路由表項,如此産生路由環路。這個過程會持續下去,直到路徑成本為16。

由此可得出一個結論: 當網絡發生故障或者網絡拓撲發生改變的時候,網絡收斂速度慢會造成網絡資料庫不一緻,即造成路由環路。

2.避免方法

(1)最大跳數

在上圖所示的網絡中,發生路由環路時,路由器去往網絡10.0.0.0的跳數會不斷地增大,網絡無法收斂。

為解決這個問題,可以給跳數定義一個最大值,當跳數到法最大值時,網絡10.0.0.0被認為是個可達的。路由器會在路由表中顯示網絡不可達資訊,并不再更新到法網絡10.0.0.0的路由。在RIP路由協定中,跳數最大值為16。

通過定義最大值,距離矢量路由協定可以解決發生環路時路由權值無限增大的問題,同時也可校正錯誤的路由資訊。但是,在最大權值到達之前,路由環路還是會存在的。也就是說,以上解決方案隻是補救措施,不能真正避免環路産生,隻能減輕路由環路産生的危害。

(2)水準分割

水準分割是指路由器從某個端口學習到的路由不會再從該端口發出去。如圖所示,RTA從RTB學習到的10.0.0.0/8網絡的路由不會再從RTA的接收端口重新通告給RTB,由此避免路由環路的産生。

小白必看!RIP協定

(3)毒性反轉

毒性反轉是指路由器從某個端口學到路由後,将該路由的跳數設定為16,并從原接收端口發送給鄰居路由器。毒性反轉機制可以使錯誤路由立即逾時,即配置毒性反轉。RIP從某個端口學習到路由之後,發送給鄰居路由器時會将該路由的跳數設定為16。利用這種方式,可以清除對方路由表中的無用路由。如圖所示,RTB向RTA通告了路徑成本為1的10.0.0.0/8路由,RTA在通告給RTB時将該路由路徑成本設定為16,如果10.0.0.0/8網絡發生故障,RTB便不會認為可以通過RTA到達10.0.0.0/8網絡,是以就可以避免路由環路的産生。

小白必看!RIP協定

(4)觸發更新

觸發更新是指當路由資訊發生變化時,立即向鄰居裝置發送觸發更新封包。預設情況下,一台RIP路由器每30s會發送一次路由表更新給鄰居路由器,當本地路由資訊發生變化時,觸發更新功能允許路由器立即發送觸發更新封包給鄰居路由器,來通知路由資訊更新,而不需要等待更新定時器逾時。例如圖所示的示例,路由器RTB會立即通告網絡10.0.0.0/8不可達資訊,進而加速了網絡收斂

小白必看!RIP協定

四、RIP配置執行個體

1.目标

通過RIP的配置實作網絡的互通。

2.拓撲圖

本執行個體的網絡拓撲如圖所示。

小白必看!RIP協定

3.配置步驟

(1)按拓撲圖配置端口IP位址:

<Huawei>system-view //進入系統視圖
[Huawei]sysname R1
//修改裝置名稱
[R1]interface GigabitEthernet 0/0/0
//進入端口視圖
[R1- -GigabitEthernet0/0/1]ip address 192.168.2.1 24//将和 PC1連接配接的端口配上IP位址
 [R1-GigabitEthernet0/0/0]quit
//退回系統視圖
[R1]interface GigabitEthernet 0/0/1
//進入端口視圖
[R1-GigabitEthernet0/0/1]ip address 192.168.1.1 24//将和 R2連接配接的端口配上IP位址
[R1-GigabitEthernet0/0/1]quit
//退回系統視圖           

R2與R1配置類似。

(2)啟動RIP并在指定網段使能RIP:

[R1]rip 1
//進入RIP路由配置視圖
[R1-rip-1]version 1
//設定BIP版本
[R1-rip-1]network192.168.1.0
//将和R2連接配接的端口加入RIP中
[R1-rip-1]network192.168.2.0
//将和PC1連接配接的端加入RIP中           

R2與R1配置類似。

4.測試

(1)檢視IP路由表:

檢視路由表,可發現相應路由。

小白必看!RIP協定
小白必看!RIP協定

(2)用Ping指令檢查聯通性:

可以Ping通,當然也能Ping通其他網段,說明全網聯通性正常。

小白必看!RIP協定

繼續閱讀