IGP網路協議之RIP詳解一
這篇文章開始,我們開始講解計算機網路這一塊,主要是針對內部閘道器協議這一塊,我們先從歷史最久,相對也是最簡單的RIP協議講起。RIP協議全稱是Routing Information Protocol中文譯名即路由資訊協議。
適用於小型同類網路的一個自治系統(AS)內的路由資訊的傳遞。RIP協議是基於距離向量演算法(Distance Vector Algorithms,DVA)的。它使用“跳數”,即metric來衡量到達目標地址的路由距離。文件見RFC1058、RFC1723。它是一個用於路由器和主機間交換路由資訊的距離向量協議,目前最新的版本為v4,也就是RIPv4。但是我們只會講到RIPv2,感興趣的朋友可以網上查閱一下RIP新版本資訊。
文章會按照如下思路順序編寫,介紹什麼是動態路由協議,然後將一些RIP 的工作原理,最後簡介一些RIP的配置。
1.動態路由
1.1 什麼是動態路由
問什麼是動態路由協議之前,我們想一下,為什麼我們需要動態路由協議?不說網際網路上面多少裝置聯網,單說企業內部辦公網稍微大一些的公司都至少五六十臺計算機,如果不採用動態協議,所有路由表資訊都要人工維護,如果裝置流動性高一些,每天都要忙死。更不要說幾百臺幾千臺網絡裝置的維護了。所以我們需要能夠自己互動路由資訊的協議,這就是動態路由的由來。
動態路由協議 1. 向其他路由器傳遞路由資訊 2. 接收其他路由器的路由資訊 3. 根據收到的路由資訊計算出到每個目的網路的最優路徑,並由此生成路由表 4. 根據網路拓樸變化及時調整路由表,同時向其他路由器宣告拓樸改變的資訊
1.1 動態路由協議的分類
動態路由協議根據路由所執行的演算法分為,距離向量路由協議和鏈路狀態路由協議。距離向量路由協議中路由器每經過特定時間週期向鄰居傳送自己的路由表,他主要釋出和關注倆個資訊1.距離:有多遠,2向量:從哪個方向。
鏈路狀態路由協議會從對等路由器處獲取資訊,建立一張完整的網路圖-鏈路狀態資料庫,再根據鏈路狀態資料庫,用SPF(最短路徑樹)演算法計算出一個以自己為根的樹型結構,再生成路由表
2.RIP工作原理
RIP是為TCP/IP環境中開發的第一個路由選擇協議標準,RIP就是一個距離向量路由協議。
2.1 路由表的形成
RIP以跳數作為唯一度量值,RIP的工作原理及過程就是:
RIP路由協議向鄰居傳送整個路由表資訊,RIP路由協議以跳數作為度量值根據跳數的多少來選擇最佳路由,最大跳數為15跳,16跳為不可達,經過一系列路由更新,網路中的每個路由器都具有一張完整的路由表的過程,稱為收斂。
2.1 RIP計時器
RIP協議中會有一個計時器機制,路由器每隔30秒從每個啟動RIP協議的介面傳送出路由更新資訊,如果一條路由在180s內沒有收到更新,這條路由的跳數將記為16,如果這條路由在被記為16跳後,60s內還沒有收到更新,則將這條路由從路由表中刪除。但是n如果一個目標的距離增加或變為不可達,啟動抑制計時器(180s),直到抑制計時器超時,路由器才接收有關於這條路由的更新資訊。這樣是為了防止路由抖動,否則只是短暫的狀態變化,會引起多次路由計算。
RIP因為向量路由協議本身的演算法缺陷,很容易導致路由環路。比如說由器A會將針對目標網路C的路由表項的metric值置為16,即標記為目標網路不可達,並準備在每30秒進行一次的路由表更新中傳送出去,如果在這條資訊還未發出的時候,A路由器收到了來自B的路由更新報文,而路由器B中包含著關於網路C的metric為2的路由資訊,根據前面提到的路由更新方法,路由器A會錯誤的認為有一條通過路由器B的路徑可以到達目標網路C,從而更新其路由表,將對於目標網路C的路由表項的metric值由16改為3,而對於的埠變為與路由器B相連線的埠。很明顯,路由器A會將該條資訊發給路由器B,路由器B將無條件更新其路由表,將metric改為4;該條資訊又從路由器 B發向路由器A,路由器A將metric改為 5,最後雙發的路由表關於目標網路C的metric值都變為16,此時,才真正得到了正確的路由資訊。這種現象稱為”計數到無窮大”現象,雖然最終完成了收斂,但是收斂速度很慢,而且浪費了網路資源來發送這些迴圈的分組。
過程圖如下

2.3 水平分割
為了防止路由環路,我們引入了水平分割機制。水平分割規則:從一個介面上學習到的路由資訊,不再從這個介面傳送出去
2.4 RIP的兩個版本
RIP v1:傳送路由更新時不攜帶子網掩碼,屬於有類路由協議,傳送路由更新時,目標地址為廣播地址: 255.255.255.255。
RIP v2:傳送路由更新時攜帶子網掩碼,屬於無類路由協議,n傳送路由更新時,目標地址為組播地址:224.0.0.9。
3.RIP配置
配置: 1.啟動RIP程序,Router(config)# router rip 2.宣告主網路號,Router(config-router)# network network-number 驗證配置: o 檢視路由表 Router# show ip route o 檢視路由協議配置 Router# show ip protocols o 開啟RIP協議除錯命令 Rouetr#debug ip rip
3.1配置RIP協議使用版本1
配置示例 RouterA(config)#interface f0/0 RouterA(config-if)#ip address 192.168.1.1255.255.255.0 RouterA(config-if)#no shutdown RouterA(config)#interface f0/1 RouterA(config-if)#ip address 10.0.0.2255.0.0.0 RouterA(config-if)#no shutdown RouterA(config)#router rip RouterA(config-router)#network 10.0.0.0 RouterA(config-router)#network 192.168.1.0
3.2配置RIP協議使用版本2
Router(config)# router rip Router(config-router)# version 2 Router(config-router)# no auto-summary 檢視路由協議配置 RouterA# show ip protocol Routing Protocol is"rip" Sending updates every 30 seconds, next due in16 seconds Invalid after 180 seconds, hold down 180,flushed after 240 Outgoing update filter list for allinterfaces is not set Incoming update filter list for allinterfaces is not set Redistributing: rip Default version control: send version 2,receive version 2 InterfaceSendRecvTriggered RIPKey-chain FastEthernet0/022 FastEthernet0/122 Automatic network summarization is in effect Maximum path: 4 Routing for Networks: 10.0.0.0 192.168.1.0 Routing Information Sources: GatewayDistanceLast Update 10.0.0.112000:00:15 Distance: (default is 120) 開啟RIP協議除錯命令 RouterA#debug ip rip RIP: received v2 update from 10.0.0.1 onFastEthernet0/1 20.0.0.0/8 via 0.0.0.0 in 1 hops 192.168.2.0/24 via 0.0.0.0 in 2 hops RIP: sending v2 update to 224.0.0.9 viaFastEthernet0/0 (192.168.1.1) RIP: sending v2 update to 224.0.0.9 viaFastEthernet0/1 (10.0.0.2)