動態路由協議RIP的基本原理與配置

  前面學習了靜態路由的原理,但是用靜態路由搭建網絡時,每一條路由的變更都需要手動進行配置,這在大型網絡中的工作量是非常巨大的。有沒有辦法解決呢?答案是肯定的,使用動態路由即可解決此問題

動態路由協議基礎

1. 動態路由概述

   動態路由是網絡中路由器之間互相通信,傳遞路由信息,利用收到的路由信息更新路由表的過程。它能實時的適應網絡結構的變化。如果路由更新信息表明網絡發生了變化,路由選擇軟件就會重新計算路由,併發出新的路由更新信息。這些信息通過各個網絡,引起各路由器重新啓動其路由算法,並更新各自的路由表以動態的反映網絡拓撲的變化。

   如果使用動態路由協議,路由器之間就會將自己的路由信息向相鄰的路由器發送,並接收相鄰路由器發過來的路由信息,有選擇的保存這些路由信息,生成自己的路由表。

   動態路由適用於網絡規模大、網絡拓撲復雜的網絡。動態路由的特點如下:

 減少了管理任務。因爲動態路由的過程完全是由路由器自己完成的,管理員只需做簡單的配置即可,路由學習、路由轉發和路由維護的任務都是由動態路由來完成的。配置了動態路由後,當網絡拓撲發生變化時,不需要進行重新配置,動態路由會自己瞭解這些變化,從而修改路由表。

 佔用了網絡的帶寬。因爲動態路由是通過與其他路由器通信來了解網絡的,每個路由器都要告訴其他路由器自己所知道的的網絡信息,同時還要從其他路由器學習自己所不知道的網絡信息,這樣就不可避免的發送包,而這些路由信息包會佔用一定的網絡流量。


2. 動態路由協議

(1) 動態路由協議概述

   動態路由是基於某種路由協議(Routing Protocol)來實現的。路由協議定義了路由器在與其他路由器通信時一些規則。也就是說,路由協議規定了路由器是如何來學習路由的,是用什麼標準來選擇路由以及維護路由信息的等。

   動態路由協議就像路由器之間用來交流信息的語言,通過它,路由器之間可以共享網絡連接信息和狀態信息。動態路由協議不侷限於路徑的選擇和路由表的更新,當到達目的網絡的最優路徑出現問題時,動態路由協議可以在剩下的可用路徑中,選擇下一個最優路徑進行替代。

   每一種動態路由協議都有它自己的路由選擇算法,算法是解決問題的一系列步驟。一個路由選擇算法至少要具備以下幾個必要的步驟:

* 向其他路由器傳遞路由信息。

* 接收其他路由器的路由信息。

* 根據收到的路由信息計算出每個目的網絡的最優路徑,並由此生成路由表。

* 根據網絡拓撲的變化及時作出反應,調整路由生成新的路由表,同時把拓撲變化以路由信息的形式向其他路由信息宣告。


(2) 度量值

   不同的路由協議使用不同的度量,有時還使用多個度量。

跳數:跳數(Hop Count)度量可以簡單的記錄路由器的跳數。

帶寬:帶寬(Bandwidth)度量將會選擇高帶寬路徑,而不是低帶寬路徑。

負載:負載(Load)度量反映了佔用沿途鏈路的流量大小。最優路徑應該是負載最低的路徑。不像跳數和帶寬,路徑上的負載會發生變化,因而度量也會跟着變化。這時需要注意,如果度量變化過於頻繁,路由擺動(最優路徑頻繁變化)可能經常發生。路由擺動會對路由器的CPU、數據鏈路的帶寬和全網穩定性產生負面影響。

時延:時延(Delay)度量數據包經過一條路徑所花費的時間。使用時延作爲度量值的路由選擇協議時將會選擇使用最低時延的路徑作爲最優路徑。

可靠性:可靠性(Reliability)度量用來度量鏈路在某種情況下發生故障的可能性。可靠性可以是變化的或固定的。鏈路發生故障的次數或特定時間間隔內收到錯誤的次數都是可變可靠性度量的例子。固定可靠性度量是基於管理員確定的一條鏈路的已知量。可靠性最高的路徑將被最優先選擇。

成本:成本(Cost)是用來描述路由優劣的一個通用術語,最小成本(最高成本)或最短(最長)僅僅指的是路由協議基於自己特定的度量對路徑的一種看法。網絡管理員可以對Cost進行手工定義。


(3) 收斂

   動態路由選擇協議必須包含一系列過程,這寫過程用於路由器向其他路由器通告本地直連網絡,接收並處理來自其他路由器的同類信息,中繼從其他路由器接收到的信息。此外,路由選擇協議還需要定義決定最優路徑的度量。對路由選擇協議來說,另一個標準是互聯網網絡上所有路由器的路由表中的可達信息必須是一致。使所有路由表都達到一致狀態的過程叫做收斂(Convergence)。全網實現信息共享以及所有路由器計算最優路徑所花費的時間的總和就是收斂時間。


3. 靜態路由和動態路由

   通過動態路由的學習,感覺動態路由協議比靜態路由協議要好。動態路由協議就是自動檢測並隨着網絡拓撲的變換更新路由表。靜態路由協議對於大中型網絡來說管理是困難的,但在小型網絡中配置靜態路由是十分方便的。

   靜態路由和動態路由都有各自的特點和實用範圍,在網絡中靜態路由和動態路由互相補充。在所有的路由中,除直連路由外靜態路由的優先級最高。當一個包在路由器中進行路徑選擇時,路由器首先查找靜態路由,如果查到則根據相應的靜態路由進行轉發分組,否則再查找動態路由。當靜態路由與動態路由發生衝突時,以靜態路由爲準。


動態路由協議分類

   常見的路由協議可以分爲距離矢量路由協議和鏈路狀態路由協議。其中距離矢量路由協議依據從源網絡到目標網絡所經過的路由器的個數來選擇路由,典型的協議如RIP和IGRP鏈路狀態路由協議會綜合考慮從源網絡到目標網絡的各種路徑的情況來選擇路由,典型的協議如OSPF和IS-IS

1. 距離矢量路由協議

   距離矢量名稱的由來是因爲路由是以矢量(距離、方向)的方式被通告出去的,其中距離是根據度量定義的,方向是根據下一跳路由器定義的。例如,“朝下一跳路由器X的方向可以到達目標A,距此5跳之遠”,這個表述隱含着每個路由器向鄰接路由器學習它們所觀察到的路由信息,然後再向外通告自己觀察到的路由信息。因爲每個路由器在信息上都依賴於鄰接路由器,而鄰接路由器又從它們的鄰接路由器那裏學習路由,以此類推,所以距離矢量路由選擇有時又被認爲是“依據傳聞進行路由選擇”。

2. 鏈路狀態路由協議

   距離矢量路由協議所使用的信息可以比喻爲路標提供的信息,而鏈路狀態路由協議像是一張公路線路圖。鏈路狀態路由器是不容易被欺騙而做出錯誤的路由決策的,因爲它有一張完整的網絡圖。鏈路狀態不同於距離矢量依照傳聞進行路由選擇的工作方式,原因是鏈路狀態路由器從對等路由器那裏獲取第一手信息。每臺路由器會產生一些關於自己、本地直連網絡以及這些鏈路狀態的信息。這些信息從一臺路由器傳送到另一臺路由器,每臺路由器都做一份信息備份,但是絕不改動信息。最終目的是每臺路由器都有一個相同的有關互聯網絡信息,並且每臺路由器可以獨立的計算各目的最優路徑。


RIP路由協議工作原理

   在學習RIP協議之前,先了解幾個距離矢量路由協議的概念:

定期更新(Periodic Updates):定期更新意味着每經過特定時間週期就要發送更新信息。需要注意,如果更新信息的發送過於頻繁可能會引起擁塞,但如果更新信息發送不頻繁,網絡收斂時間可能長得難以接受。

鄰居(Neighbors):在路由器看來,鄰居通常意味着共享相同數據鏈路的路由器。距離矢量路由選擇協議向鄰居路由器發送更新信息,並依賴鄰居向它的鄰居傳遞更新信息。因此,距離矢量路由協議被說成是使用逐跳更新方式。

廣播更新(Broadcast Update):當路由器首次在網絡上被激活時,路由器怎樣尋找其他路由器呢?它又是怎樣宣佈自己的存在呢?最簡單的方法是向廣播地址(在IP網絡中,廣播地址是255.255.255.255)發送更新信息。使用相同路由器選擇協議的鄰居路由器將會收到廣播數據包,並且採取相應的動作。不關心路由更新信息的主機和其他設備會丟棄該數據包。

全路由表更新(Full Routing Table Update):大多數距離矢量路由協議使用非常簡單的方法告訴鄰居它所知的一切,該方法就是廣播它的整個路由表。鄰居在收到這些更新信息之後,會收集自己需要的信息,其他則被丟棄。


1. 路由表的形成

   在爲路由器配置了接口的IP地址,並且在接口up的情況下,每個路由器的路由表中會出現直連路由的條目。如果爲路由器配置了RIP路由協議,路由器之間就會互相發送自己的路由表信息。

   路由器接收到相鄰路由器發送來的路由信息,會與自己路由表中的條目進行比較,如果路由表中已經有這條路由信息,路由器會比較新接收到的路由信息是否優先於現有的條目。如果優先於現有的條目,路由器會用新的路由信息替換原有的路由條目。反之,則路由器比較這條路由信息與原有的條目是否來自同一個源,如果來自同一個源,則更新,否則就忽略這條路由信息。

  wKioL1mhbpuAfKPLAACkiT2GCJk142.png


2. RIP的度量值與更新時間

(1) RIP的度量值

  RIP路由協議使用跳數作爲唯一的度量值。

  在RIP中規定了跳數的最大值爲15, 16跳視爲不可達。因此,RIP路由協議不適用與大型的廣域網。

(2) RIP的更新時間

  RIP使用UDP協議,端口號是520

  路由器啓動後,平均每隔30s就從每個啓動RIP協議的接口不斷的發送出路由更新消息。


3. 水平分割(Split Horizon)

   網絡收斂後,路由器仍然在以30s的時間間隔向外發送整個路由表。

   執行水平分割可以阻止路由環路的發生,水平分割的規則是:從一個接口學習到路由信息,不再從這個接口發送出去。水平分割不僅能夠阻止路由環路的產生,同時也能減少路由更新信息佔用的鏈路帶寬資源。


RIP路由協議的配置和驗證

1. 配置命令

 配置RIP路由協議,首先要在路由器上啓動RIP進程。

  啓動RIP進程的命令如下:

Router(config)# router rip

 然後要將路由器上所有啓動RIP的接口的主網絡號宣告出去,命令如下:

Router(config-router)# network network-number


2. 驗證配置的命令

查看路由表

  使用查看路由表命令查看路由表是否通過RIP協議學習到了正確的路由條目,命令如下:

Router# show ip route

查看路由協議的配置

  使用查看路由協議配置的命令,可以查看關於RIP計時器,使用的版本、宣告的網段等信息,命令如下:

Router# show ip protocols

   在路由表中可以看到網絡中所有的網段,表明RIP的配置正確。在路由條目中前面有標記C的爲直連路由,標記R的爲通過RIP路由協議學習到的路由。在網段號後面的[120/1]表示管理距離(優先級)和度量值(跳數)。

   管理距離是一種優先級度量,當兩種路由方式到達同一網絡時,路由器會選擇管理距離較小的路由來到達目標網段。靜態路由的管理距離爲1,而RIP協議的管理距離爲120,因此,如果到達同一網段,同時配置了靜態路由和RIP,路由器會選擇靜態路由指向的路徑來轉發數據。RIP的優先級:120,OSPF的優先級:110

  默認情況下,RIP使用版本1發送路由更新,可以接受v1和v2兩個版本的路由的更新。


RIP v1與TIP v2

   RIP路由協議包含兩個版本,RIP v1和RIP v2。版本1和版本2主要的區別如下:

* RIP v1廣播發送路由更新,廣播地址爲255.255.255.255;RIP v2組播發送路由更新,組播地址爲224.0.0.9

* RIP v1是有類路由(Classful)協議,它們在宣告路由信息時不攜帶網絡掩碼;而RIP v2是無類路由(Classless)協議,它們在宣告路由信息時攜帶網絡掩碼。

   有類路由協議的另一個特點是在邊界路由器上自動進行路由彙總


RIP v2的配置

  配置RIP協議,使用版本v2的命令如下:

Router(config)# router rip                      // 啓動RIP進程
Router(config-router)# version 2                  //使用版本v2
Router(config-router)# no auto-summary              //關閉路由彙總功能
Router(config-router)# network network-number         //宣告網段


實驗案例:驗證RIP v1和RIP v2

實驗環境:

按如圖所示的拓撲圖連接網絡,其中10.1.1.0/24和10.1.2.0/24配置RIP v2

wKioL1miN_LDvDBdAACZoxIRr8Q401.png

需求描述:

要求分別配置RIP v1和RIP v2,並驗證網絡是否可以正常通信。

具體步驟:

1. 配置路由器的接口地址,實現路由器互通(略)

2. 分別配置RIP v1和RIP v2,驗證網絡通信是否正常。

(1)配置RIP v1

R1(config)# router rip
R1(config-router)# network 10.1.1.0
R1(config-router)# network 192.168.1.0

R2(config)# router rip
R2(config-router)# network 192.168.1.0
R2(config-router)# network 192.168.2.0

R3(config)# router rip
R3(config-router)# network 10.1.2.0
R3(config-router)# network 192.168.2.0

(2)查看路由表,顯示結果如下:

R1的路由表

wKioL1miRDKCZ6GqAACSxhSQvFE448.png

R2的路由表

wKiom1miRETSEglaAACRBM4x2bY071.png

R3的路由表

wKiom1miREaAUE_JAACS9uPHTF4471.png

   可以看出路由表條目錯誤,路由器把10.1.1.0/24和10.1.2.0/24兩個網段自動進行彙總,形成了10.0.0.0/8網段,R2路由器保存了兩條到達10.0.0.0/8網段的路由,一個指向R1,一個指向R3,從而發生錯誤的數據轉發情況。


(3)配置RIP v2

R1(config)# router rip
R1(config-router)# version 2
R1(config-router)# no auto-summary
R1(config-router)# network 10.1.1.0
R1(config-router)# network 192.168.1.0
R2(config)# router rip
R2(config-router)# version 2
R2(config-router)# no auto-summary
R2(config-router)# network 192.168.1.0
R2(config-router)# network 192.168.2.0
R3(config)# router rip
R3(config-router)# version 2
R3(config-router)# no auto-summary
R3(config-router)# network 10.1.2.0
R3(config-router)# network 192.168.2.0

(4)查看路由表,顯示結果如下:

R1的路由表

wKiom1miTAbj5K3LAACZ5GaaxYc963.png

R2的路由表

wKioL1miS_eC5wHaAACWeEJOP2M044.png

R3的路由表

wKiom1miTAfDfpwgAACXyWIZWfw264.png

   在路由表中可以看到網絡中所有的網段,表明RIP的配置正確,經驗證,PC1與PC2可以正常通行

wKioL1miTbGhyInOAABvbe8Es9w528.png

  使用show ip protocols 命令查看路由協議信息

wKioL1miTxmCUs68AACdBpT4Hi0971.png

    通過實驗,可以知道,RIP v1不支持不連續的子網,因爲會自動進行路由彙總;RIP v2可以配置不進行自動彙總功能,在宣告路由信息時攜帶網絡掩碼,就不會產生前面的轉發錯誤了。由此可知,RIPv2支持不連續的子網


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