前面學習了靜态路由的原理,但是用靜态路由搭建網絡時,每一條路由的變更都需要手動進行配置,這在大型網絡中的工作量是非常巨大的。有沒有辦法解決呢?答案是肯定的,使用動态路由即可解決此問題
動态路由協定基礎
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路由協定,路由器之間就會互相發送自己的路由表資訊。
路由器接收到相鄰路由器發送來的路由資訊,會與自己路由表中的條目進行比較,如果路由表中已經有這條路由資訊,路由器會比較新接收到的路由資訊是否優先于現有的條目。如果優先于現有的條目,路由器會用新的路由資訊替換原有的路由條目。反之,則路由器比較這條路由資訊與原有的條目是否來自同一個源,如果來自同一個源,則更新,否則就忽略這條路由資訊。
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程序的指令如下:
1
<code>Router(config)</code><code># router rip</code>
然後要将路由器上所有啟動RIP的接口的主網絡号宣告出去,指令如下:
<code>Router(config-router)</code><code># network network-number</code>
2. 驗證配置的指令
檢視路由表
使用檢視路由表指令檢視路由表是否通過RIP協定學習到了正确的路由條目,指令如下:
<code>Router</code><code># show ip route</code>
檢視路由協定的配置
使用檢視路由協定配置的指令,可以檢視關于RIP計時器,使用的版本、宣告的網段等資訊,指令如下:
<code>Router</code><code># show ip protocols</code>
在路由表中可以看到網絡中所有的網段,表明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的指令如下:
2
3
4
<code>Router(config)</code><code># router rip // 啟動RIP程序</code>
<code>Router(config-router)</code><code># version 2 //使用版本v2</code>
<code>Router(config-router)</code><code># no auto-summary //關閉路由彙總功能</code>
<code>Router(config-router)</code><code># network network-number //宣告網段</code>
實驗案例:驗證RIP v1和RIP v2
實驗環境:
按如圖所示的拓撲圖連接配接網絡,其中10.1.1.0/24和10.1.2.0/24配置RIP v2
<a href="http://yangshufan.blog.51cto.com/13004230/1959692" target="_blank"></a>
需求描述:
要求分别配置RIP v1和RIP v2,并驗證網絡是否可以正常通信。
具體步驟:
1. 配置路由器的接口位址,實作路由器互通(略)
2. 分别配置RIP v1和RIP v2,驗證網絡通信是否正常。
(1)配置RIP v1
<code>R1(config)</code><code># router rip</code>
<code>R1(config-router)</code><code># network 10.1.1.0</code>
<code>R1(config-router)</code><code># network 192.168.1.0</code>
<code>R2(config)</code><code># router rip</code>
<code>R2(config-router)</code><code># network 192.168.1.0</code>
<code>R2(config-router)</code><code># network 192.168.2.0</code>
<code>R3(config)</code><code># router rip</code>
<code>R3(config-router)</code><code># network 10.1.2.0</code>
<code>R3(config-router)</code><code># network 192.168.2.0</code>
(2)檢視路由表,顯示結果如下:
R1的路由表
R2的路由表
R3的路由表
可以看出路由表條目錯誤,路由器把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
5
<code>R1(config-router)</code><code># version 2</code>
<code>R1(config-router)</code><code># no auto-summary</code>
<code>R2(config-router)</code><code># version 2</code>
<code>R2(config-router)</code><code># no auto-summary</code>
<code>R3(config-router)</code><code># version 2</code>
<code>R3(config-router)</code><code># no auto-summary</code>
(4)檢視路由表,顯示結果如下:
在路由表中可以看到網絡中所有的網段,表明RIP的配置正确,經驗證,PC1與PC2可以正常通行
使用show ip protocols 指令檢視路由協定資訊
通過實驗,可以知道,RIP v1不支援不連續的子網,因為會自動進行路由彙總;RIP v2可以配置不進行自動彙總功能,在宣告路由資訊時攜帶網絡掩碼,就不會産生前面的轉發錯誤了。由此可知,RIPv2支援不連續的子網
本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1959692,如需轉載請自行聯系原作者