RIP、 OSPF、 EIGRP的區別

我們前面已經簡單介紹了三種類型的動態路由協議算法分別是距離矢量算法,鏈路狀態算法以及平衡混合算法,那麼咱們今天就來看看這幾種算法的類型代表:RIP、OSPF、EIGRP。而且它們都是內部網關協議(IGP),也就是說它們都運行在一個自治系統內部,什麼是自治系統,我們來簡單看一下:


      自治系統:就是使用相同路由準則的網絡集合,一般是一個ISP,或者是一個大型的行政機構。大家剛聽到這個術語時會感到有點模糊,有點抽象,在CCNP的課程中會有詳細的介紹,我們CCNA部分很少會用到自治系統間的協議,使用的基本上都是自治系統內的協議。所以如果按照在自動系統內運行還是用於連接不同的自治系統,路由協議又分爲兩種:
IGP:內部網關協議,在一個自治系統內運行。比如:RIP、OSPF、IS-IS、EIGRP等。
EGP:外部網關協議,用於連接不同的自治系統。比如:BGP
 

在12.3(2)T之前的Cisco IOS版本中,IP路由選擇協議支持的最大平行路由(成本相等的路由)數爲6,而在12.3(2)T中,支持的最大平行路由數爲16。

       BGP要求靜態地指定鄰居。

Rip v1屬於分類路由選擇協議。Rip v2、EIGRP、OSPF、IS-IS和BGP屬於無類路由選擇協議。使用分類路由選擇協議時,必須是連續網絡,彙總纔不會出現問題。使用無類路由選擇協議時,支持VLSM。如果路由選擇表中有多個與目標地址匹配的條目,則將使用前綴最長的匹配條目。

對於RIPv2和EIGRP,可以使用路由器配置命令no  auto-summary來禁用自動彙總。

IGRP、EIGRP、IS-IS是思科私有協議。

路由來源

管理距離

會聚速度

RIP V2

120

ERGIP

90

非常快

IS-IS

115

OSPF

110

BGP

內部200,外部20

       管理距離是0-255的值,管理距離越小,協議的可信度越高。

靜態路由:

Example:

ip  route  172.16.1.0  255.255.255.0  s0/0/0(可用來到達目標網絡的本地路由器出站接口)

ip  route  172.16.1.0  255.255.255.0  192.168.1.1(可用來到達目標網絡的下一跳的IP地址)

靜態默認路由:ip route 0.0.0.0 0.0.0.0 172.16.1.0

按需靜態路由:

       ODR(on demand routing)只適合於中央-分支拓撲。在中央路由器上,使用全局配置命令router odr配置ODR.Example:

       R1#conf  t

R1(config)#router  odr

在末節路由器上,無需配置任何IP路由選擇協議。

默認情況下,Cisco路由器全局的啓用CDP。CDP每隔60S發送一次更新。要調整定時器時,Example:

R1#conf  t

R1(config)#cdp  timer  <5-254個/S>

RIP:

       RIPv1的特徵:

               使用跳數作爲度量值;

               最大允許跳數爲15;

        默認情況下,每隔30s廣播一次路由更新;

        RIP最多可以在6條(默認爲4條)等成本路徑之間均衡負載;

        不支持身份驗證。

       可使用接口命令ip rip send version和ip rip receive version。

RIPv2使用組播地址224.0.0.9將更新發給其他RIPv2的路由器。RIPv1使用255.255.255.255。

RIPv2的路由更新時間也是30s。

EIGRP:

       EIGRP是cisco專有協議,同時具備鏈路狀態和距離矢量路由選擇協議的優點。

EIGRP發送部門更新而不是定期更新,且僅在路由的路徑或度量值發生變化時才發送。EIGRP使用的組播地址:224.0.0.10。

EIGRP術語:

       通告距離(AD):下一條路由器到目的地的成本。

    可行距離(FD):當前路由器到下一跳路由器的成本加上下一條路由器到目的地的成本。

    後繼站(successor):到目的地的路徑成本最低(FD最低)的鄰接路由器。

    可行後繼站(FS):備用路徑的下一跳路由器被稱爲可行後繼站。

默認情況下,最多可以將4條前往同一個目的地且度量值相同的路由加入到路由選擇表中(通過修改配置最後可以16條)。

EIGRP運行時使用3個表:鄰居表(show ip eigrp neighbors);拓撲表;路由選擇表。

EIGRP發送5種類型的分組:Hello、更新、查詢、應答、確認(ACK)。

默認情況下,在T1(1.544mbps,是美國電信標準)或速度更低的多點接口上,每隔60S就發送一個hello分組;在LAN和其他串行接口上,每隔5S發送一個hello分組。可以使用接口命令ip eigrp hello-interval as-number seconds來調整。保持時間爲Hello時間的3倍。可以使用接口命令ip eigrp hold-time as-number seconds來調整。

可以手動彙總。Example:R3(config-if)#ip summary eigrp 50 192.168.0.0 255.255.252.0

RIP:路由信息協議
    在CCNA部門主要介紹的是內部網關協議,那麼我們先從RIP開刀。RIP是一個典型的距離矢量路由協議,全稱是Routing information protocol(路由信息協議)。它使用的是數據包所經過的網關來做爲距離的單位,最大跳數爲15跳,超過15跳便無法到達,大家從這個數中就可以看出 來,RIP是一個元老級的路由協議,正是因爲受到15跳的限制,所以現在使用的是越來越少。它只適合於一些規模不大的網絡,路由器的數量不多的網絡中。因 爲它評價網絡的好處就是依靠跳數,但是這個跳數並不一定說就能代表最佳路徑。如圖所示:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


PC1希望到達PC2,按照RIP協議來說肯定是經過Router3,再轉交給Router4就到達PC2,因爲這 樣的話相對於Router3來說,它只要經過兩跳,就可以到達PC2所在的網段。跳數最少。但是這條線路的帶寬是19.2Kbps,而另一條路雖然跳線 多,但它是T1線路,帶寬大,延遲小。肯定會比第一條路要優。但是RIP是以跳數計算最佳路徑,所以它就選擇了第一條路。所以大家也感覺到了,RIP有點 笨笨的感覺,以至於現在用的不多了!當啓用RIP協議時,RIP會從RIP的相關接口上向外發廣播包。這裏使用的是520/UDP端口。廣播包的內容主要 是請求信息,偵聽來自其他路由器的請求信息和應答信息,當鄰居收到請求信息以後,就發送應答息給該路由器。在RIP啓動成功之後,平均每30秒,注意這裏 是平均每30稱,不是正好是30秒。就會發送應答信息,又稱爲update包。這個update包中包含了路由器完整的路由表。這裏應該還有路由無效值, 路由刷新時間等參數,這一部分應該是CCNP的內容,在此簡單介紹一下,詳細內容大家可以參考NP部分。我們來看下圖
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


       如果Router3所連接的40網段斷開了。那麼相對於Router2來說,如果在180秒內,沒有得到關於40網段的路由消息,就會認爲它失效了,但僅 僅是失效而已,將Router2上關於40網段的路由設置爲holddown狀態,默認時間爲180秒。如果在這180秒裏,Router2接收到40網 段可行路由後會中止計時,並將原來關於40網段的路由改爲可用路由;如果經過240秒,仍沒有得到關於40網段的確認,就認爲這個網段直的“死悄悄”了, 那就把它從路由表中刪除。
       關於RIP還要提到一點是RIP分爲RIP1與RIP2兩個版本,區別在於RIP1是一個有類路由協議,即所有的更新包中不含子網掩碼,不支持VLSM, 所以就要求網絡中所有設備必須使用相同的子網掩碼,否則就會出錯,而RIP2是一個無類的路由協議,它使用子網掩碼;第二個不同的地方是RIP1是發送更 新包的時候使用的是廣播包,而RIP2使用的是組播224.0.0.9這樣相對於RIP1來說就節省了一部分網絡帶寬。第三個就是RIP2支持明文或者是 MD5驗證,要求兩臺路由器在同步路由表的時候必須進行驗證,通過纔可以進行路由同步,這樣可以加強安全性。(rip1和 rip2 的區別)
下面咱們來看一個RIP協議的具體配置:
      相對來說RIP的配置還是很簡單的,下面咱們就以實驗來結束RIP的討論,我們在此做兩個實驗,一個使用RIP1來完成,一個使用RIP2來完成。其實它們的配置大同小異,我們先來看RIP1。
Lab1:動態路由協議RIP,使用RIP1協議使得網絡中達到全網互通的目的
實驗目的:通過設置RIP1路由協議達到全網通的效果
實驗設備:三臺Cisco系列路由器
拓撲圖:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


RA上的配置:
Router>enable
Router#conf t
RA(config)#interface s0/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#interface loopback 1
RA(config-if)#ip address 10.10.10.10 255.255.255.0
RA(config-if)#exit
RA(config-router)#network 192.168.0.0
RA(config-router)#network 10.10.10.0
RA配置完畢!
RB的配置:
Router>en
Router#conf t
Router(config)#hostname RB
RB(config)#interface s0/0
RB(config-if)#ip address 192.168.0.2 255.255.255.0
RB(config-if)#no shutdown
RB(config-if)#interface s0/1
RB(config-if)#ip address 192.168.1.1 255.255.255.0
RB(config-if)#clock rate 64000
RB(config-if)#no shutdown
RB(config-if)#end
RB(config)#router rip
RB(config-router)#network 192.168.0.0
RB(config-router)#network 192.168.1.0
RC上的配置
Router>en
Router#config t
Router(config)#hostname RC
RC(config-if)#ip address 192.168.1.2 255.255.255.0
RC(config-if)#no shutdown
RC(config)#interface loopback 1
RC(config-if)#ip address 20.20.20.20 255.255.255.0
RC(config)#router rip
RC(config-router)#network 192.168.1.0
RC(config-router)#network 20.20.20.0
大家可以看到其實RIP的真正配置命令就兩個
Router rip 激活RIP協議
Network network-number 選擇需要激活接口所在的網段
驗證配置:
 

我們在此沒有使用PC,就使用擴展ping來測試我們的配置是否正確。我們先來驗證網絡的連通性。

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


OK!網絡是通的,說明RIP已經生效了!
那麼我們接下來就可以通過show ip router查看路由器的路由表
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


在此我們可以看到RA這個路由器上的路由表信息:兩個直連路由,兩個是通過RIP學習到的動態路由,其中[ 120/2] 120代表管理距離,2代表到達對方的跳數。至於其他兩個路由器上的路由表我們在此不再查看!
也可以使用show ip protocols來查看當前運行的協議,如圖所示:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


這裏可以看到正在運行的協議,更新時間,失效時間,刷新時間,還可以查看到激活的網絡號和默認距離值等信息。還可以使用Debug ip rip 來查看RIP協議的學習過程:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


只是大家在選擇網段的時候一定要注意:如下圖路由器B上network10.0.0.0就把10.1.1.0和10.2.2.0都包含了!
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


Lab2:和實驗1相同,只是RIP2來實現
注意:RIP2與RIP1相比配置命令差不多,只是多了一個命令version 2 因爲你不指定,會默認是RIP1
最好執行命令關閉自動聚合:no auto-summary
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


Router>enable
Router#configure terminal
RA(config-if)#interface serial 0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#no shutdown
RA(config-if)#clock rate 64000
RA(config-if)#exit
RA(config)#interface looback 1
RA(config-if)#ip address 10.10.10.10 255.255.255.0
RA(config-if)#exit
RA(config)#router rip
RA(config-router)#version 2
RA(config-router)#no auto-summary
RA(config-router)#network 192.168.0.1
RA(config-router)#network 10.10.10.0
RB的配置:
Router>en
Router#conf t
Router(config)#interface s0
Router(config-if)#ip address 192.168.0.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000
Router(config-if)#interface s1
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#clock rate 64000
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router rip
Router(config-router)#ver 2
Router(config-router)#no auto-summary
Router(config-router)#network 192.168.0.0
Router(config-router)#network 192.168.1.0
RC的配置:
Router>enable
Router#configure terminal
Router(config)#interface s0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#interface loopback 1
Router(config-if)#ip address 20.20.20.20 255.255.255.0
Router(config-if)#end
Router#configure t
Router(config)#router rip
Router(config-router)#ver 2
Router(config-router)#no auto-summary
Router(config-router)#network 192.168.1.0
Router(config-router)#network 20.20.20.0
到時爲止,配置全部完成,我們還是首先來驗證網絡的連通性
RA上PING
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


還是使用show ip route來查看路由信息
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


也可以通過命令 show ip protocols 查看當前的協議信息。可以看到現在的版本已經是2。
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


還可以通過 defub ip rip 查看RIP的學習過程:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


再給出一個思科官方的一個關於RIP2的配置實例,供大家學習使用:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


在這個例子中要注意:
1、B使用是RIP2,而C使用的是RIP1,所以需要在B的S3口上定義RIP1版本,目的是爲了和C路由器結合,一般最好是都使用同一個版本的RIP。
2、no auto-summary 關閉自動彙總,當路由更新經過主類網絡時,會自動向主燈網絡號進行彙總,這樣就會造成配置不正確,所以我們需要先關閉彙總,再手動開啓彙總,再手動開啓時就可以指定子網掩碼!
關於RIP協議就介紹這麼多了,下面咱們看一個鏈路狀態協議的代表:OSPF
OSPF:Open Shortest Path First
      開放最短路徑優先協議,它是IETF組織開發的一個基於鏈路狀態的內部網關協議。大家從Open這個詞就可以看出來,這個協議是公開的,可以支持不同廠家 的設備,而我們下面要講到的EIGRP就是思科所獨有的。OSPF目前使用的是版本2,可適應大規模網絡,因爲OSPF沒有RIP的跳數限制,並且由於引 進了區域的概念也比EIGRP支持的網絡規模大。OSPF已經被廣泛的用在網絡、企業網絡、電力網絡、金融網絡、是一個支持大規模網絡的IGP路由協議, 最多可支持幾百臺路由器的網絡規模。
下面咱們來看一下OSPF的優點:
路由變化收斂速度快:OSPF的路由是經過路由器存儲在本地的數據庫計算出來的,當發生網絡更新的時候不需要被動的詢問鄰居路由器,所以OSPF相對來說收斂速度比較快。
無路由環路:OSPF路由協議採用的是最短路徑優先算法(SPF),而且路由器 用Router ID來表示,所以可以保證在一個區域內沒有環路,由於 使用直連骨幹區域的設計,所以可以保證即使在多載的情況下無環路出現。注意,這裏所說的無環路的意思是當網絡僅使用OSPF路由協議時沒有環路,如果出現 其他路由協議或靜態路由的參與,就不能保證沒有環路了。
支持CIDR和VLSM:我們前面所講的RIP路由協議不支持CIDR和VLSM,這被認爲是RIP路由不適用於大型網絡的又一個重要原因,採用CIDR和VLSM可以在最大限度上節約IP地址。
層次區域劃分:在OSPF中,一個網絡可以被劃分爲很多個區域Area,其中分 爲兩種:骨區域(area 0)和常規區域,其中常規區域可以支持42億個,2的32次方個區域,絕對夠用。但是要求所有的常規區域必須與骨幹區域相連,一個區域通過OSPF邊界路 由器相連,區域間可以通過路由彙總(Summary)來減少路由信息,減小路由表,提高路由器的運算速度。
組播地址發送協議報文:使用專用的組播地址發送協議報文,因爲是在小範圍內通訊,所以可以減少對網絡中非OSPF設備的影響。
下面咱們要介紹OSPF中一個重要但是很不算複雜的概念:Router ID(RID)
        一臺路由器如果要運行OSPF協議,就必須存在Router ID。Router ID的作用其實很簡單,就是唯一標示一臺OSPF路由器,如果沒有配置ID號,系統會從當前接口的IP地址中自動選一個作爲路由器的ID號。選擇順序通常 是優先從loopback地址中選擇一個作爲路由器的ID號;也可以從接口地址中選擇,這時如果同時存在多個接口,則將接口中最大的IP地址作爲路由器的 ID號。也就是說如果有邏輯接口也就是Loopback接口,則使用Loopback地址作爲自己的RID,那如果沒有邏輯接口,只有物理接口,則會使用 物理接口IP地址比較大的那個作爲自己的RIP。那麼哪些是物理接口如:Serial口,Ethernet口,ATM口等等,但是如果有兩個邏輯接口,則 也是邏輯接口中IP地址較大的那個爲RID。
        通常建議先Router ID再配置OSPF路由協議,否則如果先啓動了OSPF而路由器自己選舉的Router ID又不是你希望的,那麼重新重新配置Router ID就需要重啓動一次OSPF路由進程了。爲什麼使用Loopback IP地址來優先配置Router ID?因爲早期的路由器操作(IOS)中使用物理接口IP地址充當Router ID,如果物理接口出現問題而down了,那麼Router ID也就跟着消失了。這樣很容易OSPF路由協議的不穩定。雖然現在路由器操作系統已經改掉了這個BUG,但路由器優先考比物理接口穩定的 Loopback口IP地址成爲了一個慣例。另外由於Loopback接口一般不參與路由工作,所以可以通過Loopback接口優先配置Router ID。
手動配置Router ID的好處:
         因爲OSPF協議以Router ID識別鄰居路由器,所以當出現各川問題的時候管理員總是看到Router ID路由器有問題。那麼在分配Router ID的時候,就可以考慮按照邏輯或物理的地址來進行分配。在Cisco路由器中還有一個特性是通過;架設DNS服務器來解析Router ID名稱。這樣當網絡管理員監視網絡狀況的時候就可以直接看到對方路由器的名字了。
       咱們瞭解了Router ID之後咱們就要接着來了解另外兩個概述DR和BDR:因爲Router ID直接影響到DB和BDR的選舉,我們來詳細看一下,我們先從一個圖入手:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


       那麼如果在一個以太網環境中這五臺路由器之間希望交換同步路由信息,它們之間使用的是網狀的邏輯拓撲。如下圖所示:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


       這時如果希望它們之間能夠迅速同步,需要多條鏈路,這樣維護成本是比較大的。我們就想了,我們可以在網絡上選擇一個路由器出來,讓它來當“老大”,然後規 定其他的路由器如果希望與另一個路由器通訊,那麼只要經過這個“老大”就可以了。所以如果我們把C當成“老大”,則拓撲就變成了下面這樣:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


        這樣所有的路由器之間通訊都通過C路由器,就減少了路由信息在網絡上的洪泛。節約了網絡帶寬。那麼這個路由器C就是咱們所說的DR,指定路由器(Designated Rouer)
       那關鍵是如果有一天這個路由器C壞了,怎麼辦?這和WINDOWS中的DC有點類似,爲了實現冗餘,我們再來指定一個BDR(Backup DR),如我們在這裏再指定路由器D作爲BDR,那麼這個拓撲圖又變了:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


       其實也就是咱們網絡拓撲中所說的部分互連。這樣的話冗餘實現了,成本也降低了。關鍵是網絡上有這麼多路由器,到底哪一個是DR,哪一個是BDR?
我們來看一下選舉過程:
       當選舉DR/BDR的時候要比較hello報文中的優先級。那麼什麼又是hello報文中,簡單來說這個hello報文中包括一些定時器的數 值,DR,BDR,以及自己已知的鄰居。也就是說每個路由器在和對方通訊時也是發hello報文,見面先打個照呼!在OSPF中默認每10秒中發一次 Hello報文!如果40秒還沒有收到的話,則宣稱該鄰居死亡。裏面就包含了Router ID,Hello報文的時間間隔和死亡時間間隔,鄰居信息,區域信息,路由器優先級,DR以及BDR的信息,驗證信息以及根區域標記等。如圖所示:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


      其中要求打*的參數必須要完全一樣,不然就不可能成爲一個鄰居。
那麼當選舉DR/BDR的時候就先比較Hello包中的優先級(priority)優先級最高的爲DR,次高的爲 BDR,但是默認優先級都爲1,所以這個意義不大!那麼在優先級相同的情況下就開始比較我們剛剛介紹的一個東西了Router ID,RID值最高的爲DR,次高的爲BDR,當你把優先級設置爲0以後,該路由器就不能成爲DR或者是BDR,只能是DROther。
修改優先級可以使用命令: (config-if)#ip ospf cost 0-255 255最高
      當選舉完成後,DROther只和DR/BDR形成鄰接關係也就是說在它們的眼裏只有DR和BDR是它們的鄰居,所有的路由器將組播Hello包到地址 224.0.0.5以便它們能跟蹤其他鄰居的信息,即DR將洪泛LSU到224.0.0.5這個組播地址上;DROther 只能能過組播地址224.0.0.6將LSU(鏈路狀態更新)到所有的DR上。只有DR/BDR監聽這個組播地址。
如果兩臺路由器剛剛啓動沒有配置OSPF時,則相關的端口都是DOWN的。
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


      如果配置好OSPF,這個時候如果雙方開始發送一個初始化狀態,我們以Router1爲例,此時它會宣告我是192.168.10.10 這其實就是它的RID,它會告訴對方我是192.168.10.10我現在沒有任何鄰居。這個時候Router2在自己的Fa0/0中收到了 Router2 發過來的宣告信息就是把這個信息加到自己的鄰居表裏面並註明是通過Fa0/0中連接。,然後再反饋給Router1說我是192.168.10.20,我 有一個鄰居是192.168.10.10;此時Router1又收到Router2的宣告信息就會把Router2的地址加到自己的路由表中並註明是通過 Fa0/0連接的。這個狀態稱爲:Two-way 狀態,相對穩定狀態但是還沒有真正成爲鄰居關係。接下來進行 Exstart 狀態,還沒有真正進行信息交換呢, 只是一個選舉DR的過程:Router1會發出一個數據包說我來負責更新路由表,因爲我的RID是192.168.10.10,但是Router2會說, 不行,我不認可,因爲我的RID比你大。所以經過協商,Roter2應該是BDR了。再往下就是一個Exchange 狀態:交換雙方LSDB中的鏈路狀態數據庫的摘要信息,注意僅僅是摘要信息,爲同步雙方的數據庫做準備。注意這裏使用的不再是hello報文,是DD報 文,也就是說Router1發出一個DD報文給對方,對方收到後會發出LSACK,大家一看ACK太熟悉了,好多地方我們都使用過ACK,如TCP建立連 接,通訊,拆除連接過程中,DHCP的工作過程中等等,都用到達ACK這個詞,在這裏也是一個意思就是給對方一個確認,因爲如果沒有確認,對方會重傳!再 往下就進入了Load 狀態,這纔是真正根據需要來調整自己的鏈路狀態數據庫,沒有的加進來,如果我已經有了,再做出比較應該不應該做更新,等等操作。最後完全結束之後進行是一 個FULL狀態,完全狀態。所有的鏈路狀態數據庫保持同步!那麼如果又有網絡鏈路發生改變了,則LSU的信息(LSU更新包中包含LSA狀態信息)只會發 給DR,然後由DR再通過組播洪泛到本區域的其他路由器上。其他路由器再根據鏈路狀態重新計算出新的路由表出來。 這中間會用到鏈路狀態樹和最短路徑樹兩個概念,我們簡單看一下:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲

      在OSPF中是用帶寬作爲metric的標準叫 cost,一般每個路由器都是以自己爲根來計算到達對方所需要的一個開銷,用10的8次方來除以帶寬,越小說明帶寬越大,路徑最優,就放到路由表中也就是最短路徑樹中。


以上只是簡單分析了一下OSPF的工作過程。在此給出一張截圖供大家參考:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


OSFP雖然說理論知識很多,但是配置起來很簡單,我們來看一下具體的配置:
啓用 OSPF:
(Config)# router ospf 進程ID 範圍是 1-65535
其中這個進程ID,用於區分不同的OSPF協議,這只是一個本地進程ID,隨便取,也就是說只是區分一個路由器上的多個OSPF協議,跟別的路由器沒有關係可以不同。
指定網段
(config-router)network 網絡號 反向掩碼 area 區域號
注意這裏區域號必須要求一樣
查看啓用的路由協議:
Show ip protocols
查看當前路由表:
Show ip route
查直OSPF樣關信息
Show ip ospf interface
同樣我們還是通過一個實驗來結束OSPF的學習:
Lab:: 動態路由協議OSPF
實驗目的:通過OSPF路由協議使得網絡中達到全網互通的目的
設備:三臺Cisco系統路由器,2條V24線纜
拓撲圖:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


Router1上的配置:
Router>en
Router#conf t
Router(config)#hostname RA
RA(config)#interface s2/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#interface fa 0/0
RA(config-if)#ip address 10.10.10.1 255.255.255.0
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#router ospf 1
RA(config-router)#network 10.10.10.0 0.0.0.255 area 0
RA(config-router)#network 192.168.0.0 0.0.0.255 area 0
Router2的配置:
Router>enable
Router#conf t
Router(config)#hostname RB
RB(config)#interface s2/0
RB(config-if)#ip address 192.168.0.2 255.255.255.0
RB(config-if)#no shutdown
RB(config-if)#exit
RB(config)#interface s3/0
RB(config-if)#ip address 192.168.1.1 255.255.255.0
RB(config-if)#clock rate 64000
RB(config-if)#no shutdown
RB(config-if)#exit
RB(config)#router ospf 1
RB(config-router)#network 192.168.0.0 0.0.0.255 area 0
RB(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router3的配置:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface s2/0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fa 0/0
Router(config-if)#ip address 20.20.20.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router(config-router)#network 20.20.20.0 0.0.0.255 area 0
Router(config-router)#exit
驗證我們在PC2上去ping PC1:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


反之也可以通訊,在此不再測試
我們可以使用show ip route,顯示當前的路由表
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


其中O代表的就是OSPF,在此不再詳細介紹!
也可以使用show ip rotocols 顯示當前正在運行的路由協議
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲

 


關於OSPF我們就介紹到此,下面我們來看一個平衡混合路由協議的代表EIGRP
EIGRP:Enhanced Interior Gateway Routing Protocol
      中文意思是:增加強內部網關路由協議,是早期IGRP的增強版,對IGRP做了一些擴展,原理也差不多,差別不是很大,所以我們在此就介紹EIGRP,不 再介紹IGRP了,以後大家也不會再用到IGRP了。但EIGRP是思科私有的一個路由協議,這其實也制約了EIGRP的使用範圍,因爲只有在同一個網絡 中全部都是思科的產品纔會使用EIGRP,但要考慮到一個網絡的擴展功能。那萬一以後要使用其他廠家的產品怎麼辦?所以一定要考慮好用不用EIGRP。下 面咱們就花點時間來看一下EIGRP的相關知識點,首先就從EIGRP特性入手:
EIGRP特性:
      EIGRP早點是在IOS9.21的時候就支持EIGRP了,現在IOS的版本已經達到12.4了,大家可以從官網找到相關的IOS文件:
 

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


      關鍵是EIGRP是一個混合型的路由協議,也就是說它結合了距離矢量和鏈路狀態兩種路由協議的特性。但是距離矢量和鏈路狀態都有自己的弊端民。如距離矢量 容易產生環路,而且是以跳數爲計算路徑不是很準確。那麼鏈路狀態協議是沒有環路了,而且是以cost來作爲metric值作爲最佳路由,但是因爲它的算法 複雜,所以必須佔用一定的資源。那麼EIGRP就結合它們有自己的一些特性:
收斂速度快:相對於RIP來說,收斂速度是很多的,不敢說比OSPF絕對快,但 絕對比RIP要快,我們前面介紹RIP的時候我們也看到了RIP有一個30秒的廣播時間,有180秒的無效時間,還有240的刷新時間,所以當網絡出現更 改時,這個收斂速度是很慢的,在此EIGRP使用的是鏈路狀態的收斂形式,對外宣佈的鏈中狀態,所以EIGRP相對來說要快很多。
無環路的無類路由:因爲它採用的是一位荷蘭的計算機科學家Dijkstra於1959年發現的算法,這種算法有點複雜,但能保證網絡中的每一個路由器都有一個整個的網絡鏈路圖,不會產生網絡環路。
增量路由更新: RIP是將整個路由表都發給對方,而EIGRP是將發生更新的路由發給對方,這和我們平時所說的增量備份和差異備份有點相似,所以相比來說性能要高。而且採用的是trigger update,如果沒有更新是不是發送的,這點和RIP也不一樣!
支持等價與非等價路徑的負載均衡:RIP支持的是4條等價的負載均衡,針對一些廠家可以支持6條cost相同的OSPF負載均衡,但都是等價的負載均衡,但是隻有EIGRP可以實現非等價的負載均衡。
使用單播或組播代替廣播:
支持多種網絡層協議:支持IP、Novell 公司的IPX、Apple的AppleTalk等等協議,主要是因爲它有一個協議相關模塊!
至於說其他特性就不再細細介紹了,如:支持VLSM和CIDR、支持路由的手動彙總。
EIGRP中的三張表: EIGRP如果想正常工作必須用到三張表,分別是鄰居表,拓撲表,路由表,這一點和鏈路狀態差不多!我們來看一下這三張表是如何協同工作的,如圖所示:

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


      鄰居表中存放的是netxt-hop router 與interface的對應關係,也就是說存放的是下一跳及本地接口,通過本地的哪個接口可以到達下一跳,但是必須是運行EIGRP路由器的直連路由信息。 拓撲表:從鄰居表中學過來的所有的路由信息,也就是所有目標網絡的信息,其中有successor後繼路由以及feasible successor(FS)可行後繼路由,當然最終放到路由表的只有後繼路由,那這個FS有什麼用呢,是說如果萬一後繼路由壞了,路不通了,那麼可行後繼 路由就成了後繼路由放到路由表中,其實也是一個冗錯機制! 路由表:存放的是到達對方的最佳路由信息。 一個數據包能不能被轉發最終依靠的是路由表。 下面看一下FD和AD兩個概念:這兩個概念也很容易理解: FD:Feasible Distance 可行距離 AD:Advertised Distance 宣告距離 它們兩個術語之間有什麼關係,針對每一個路由器,都會根據它所宣告的距離AD及cost來計算自己到達對方的FD。然後最小的FD就是到達對方的最佳路由。

RIP、OSPF、EIGRP 區別 - 0ldh - 愛情懶蟲


那有人問這個metric值是怎麼算出來的,這裏需要參考這麼幾個參數: 帶寬,延遲,可靠性,負載以及MTU那麼在這裏必須用到的是帶寬和延遲 公式如下:256*min(BW)+sum(DLY) 那這裏如果不乘以256就是IGRP的metric計算方法,因爲IGRP以後大家不會再用了,在此就不再介紹。 其中BW就是帶寬,DLY就是延遲 最後咱們來看一下EIGRP的具體配置,配置對大家來說就是張飛吃豆芽,總的來說就兩個命令: 啓動EIGRP         命令:Router eigrp 自治系統號 注意這個號是1-65535,注意這個自治系統號必須一樣,實驗中大家可以隨便指定,但是工作中由運營商給我們分配好! 宣告主連網絡號         命令:Network 網絡號 這裏有幾個和驗證相關的命令 顯示鄰居表的內容:show ip eigrp neighbors 顯示拓撲表的內容:show ip eigrp topology 顯示當前EIGRP路由表內容: show ip route eigrp 查看EIGRP的流量信息: show ip eigrp traffic 顯示當前運行的協議:show ip protocols 關於CCNA部分中的EIGRP就暫且講這麼多了,其實EIGRP還是相當複雜的一個協議,更多內容請參考CCNP部分。下面咱們還是以一個實驗來結束這節課! Lab:動態路由協議EIGRP 實驗目的:通過EIGRP路由協議使得網絡中達到全網互通的效果

 

 

ospf與eigrp和rip

RIP的侷限性在大型網絡中使用所產生的問題:

   RIP的15跳限制,超過15跳的路由被認爲不可達

   RIP不能支持可變長子網掩碼(VLSM),導致IP地址分配的低效率

   週期性廣播整個路由表,在低速鏈路及廣域網雲中應用將產生很大問題

   收斂速度慢於OSPF,在大型網絡中收斂時間需要幾分鐘

   RIP沒有網絡延遲和鏈路開銷的概念,路由選路基於跳數。擁有較少跳數的路由總是被選爲最佳路由即使較長的路徑有低的延遲和開銷

   RIP沒有區域的概念,不能在任意比特位進行路由彙總 

   一些增強的功能被引入RIP的新版本RIPv2中,RIPv2支持VLSM,認證以及組播更新。但RIPv2的跳數限制以及慢收斂使它仍然不適用於大型網絡 

相比RIP而言,OSPF更適合用於大型網絡:

    沒有跳數的限制

    支持可變長子網掩碼(VLSM)

    使用組播發送鏈路狀態更新,在鏈路狀態變化時使用觸發更新,提高了帶寬的利用率

    收斂速度快

   具有認證功能

OSPF與EIGRP的比較

在互聯網飛速發展的今天,TCP/IP協議已經成爲數據網絡互聯的主流協議。在各種網絡上運行的大大小小各種型號路由器,承擔着控制本世紀或許最重要信息的流量,而這成百上千臺路由器間的協同工作,離不開路由協議。OSPF和EIGRP都是近年來出現的比較好的動態路由協議,OSPF以協議標準化強,支持廠家多,受到廣泛應用,而EIGRP協議由網絡界公認的領先廠商Cisco公司發明,並靠其在業界的影響力和絕對的市場份額,也受到用戶的普遍認同。然而這兩種協議究竟哪種更好,誰更適合網絡未來發展的需要?本文就用戶普遍關心的問題,從技術角度客觀分析這兩種協議各自的優缺點,以便網絡集成商和企業用戶在網絡設計規劃時,能作爲參考。

一、OSPF協議

(一)、OSPF協議簡介

      OSPF是Open Shortest Path First(即“開放最短路由優先協議”)的縮寫。它是IETF組織開發的一個基於鏈路狀態的自治系統內部路由協議。在IP網絡上,它通過收集和傳遞自治系統的鏈路狀態來動態地發現並傳播路由。

每一臺運行OSPF協議的路由器總是將本地網絡的連接狀態,(如可用接口信息、可達鄰居信息等)用LSA(鏈路狀態廣播)描述,並廣播到整個自治系統中去。這樣,每臺路由器都收到了自治系統中所有路由器生成的LSA,這些LSA的集合組成了LSDB(鏈路狀態數據庫)。由於每一條LSA是對一臺路由器周邊網絡拓撲的描述,則整個LSDB就是對該自治系統網絡拓撲的真實反映。

根據LSDB,各路由器運行SPF(最短路徑優先)算法。構建一棵以自己爲根的最短路徑樹,這棵樹給出了到自治系統中各節點的路由。在圖論中,“樹”是一種無環路的連接圖。所以OSPF計算出的路由也是一種無環路的路由。

OSPF協議爲了減少自身的開銷,提出了以下概念:

(1). DR:

在各類可以多址訪問的網絡中,如果存在兩臺或兩臺以上的路由器,該網絡上要選舉出一個“指定路由器”(DR)。“指定路由器”負責與本網段內所有路由器進行LSDB的同步。這樣,兩臺非DR路由器之間就不再進行LSDB的同步。大大節省了同一網段內的帶寬開銷。

(2). AREA:

OSPF可以根據自治系統的拓撲結構劃分成不同的區域(AREA),這樣區域邊界路由器(ABR)向其它區域發送路由信息時,以網段爲單位生成摘要LSA。這樣可以減少自治系統中的LSA的數量,以及路由計算的複雜度。

OSPF使用4類不同的路由,按優先順序來說分別是:

   區域內路由

   區域間路由

   第一類外部路由

   第二類外部路由

區域內和區域間路由描述的是自治系統內部的網絡結構,而外部路由則描述了應該如何選擇到自治系統以外目的地的路由。一般來說,第一類外部路由對應於OSPF從其它內部路由協議所引入的信息,這些路由的花費和OSPF自身路由的花費具有可比性;第二類外部路由對應於OSPF從外部路由協議所引入的信息,它們的花費遠大於OSPF自身的路由花費,因而在計算時,將只考慮外部的花費。

(二)、OSPF協議主要優點:

1、OSPF是真正的LOOP- FREE(無路由自環)路由協議。源自其算法本身的優點。(鏈路狀態及最短路徑樹算法)

2、OSPF收斂速度快:能夠在最短的時間內將路由變化傳遞到整個自治系統。

3、提出區域(area)劃分的概念,將自治系統劃分爲不同區域後,通過區域之間的對路由信息的摘要,大大減少了需傳遞的路由信息數量。也使得路由信息不會隨網絡規模的擴大而急劇膨脹。

4、將協議自身的開銷控制到最小。見下:

1)用於發現和維護鄰居關係的是定期發送的是不含路由信息的hello報文,非常短小。包含路由信息的報文時是觸發更新的機制。(有路由變化時纔會發送)。但爲了增強協議的健壯性,每1800秒全部重發一次。

2)在廣播網絡中,使用組播地址(而非廣播)發送報文,減少對其它不運行ospf 的網絡設備的干擾。

3)在各類可以多址訪問的網絡中(廣播,NBMA),通過選舉DR,使同網段的路由器之間的路由交換(同步)次數由 O(N*N)次減少爲 O (N)次。

4)提出STUB區域的概念,使得STUB區域內不再傳播引入的ASE路由。

5)在ABR(區域邊界路由器)上支持路由聚合,進一步減少區域間的路由信息傳遞。

6)在點到點接口類型中,通過配置按需播號屬性(OSPF over On Demand Circuits),使得ospf不再定時發送hello報文及定期更新路由信息。只在網絡拓撲真正變化時才發送更新信息。

5、通過嚴格劃分路由的級別(共分四極),提供更可信的路由選擇。

6、良好的安全性,ospf支持基於接口的明文及md5 驗證。

7、OSPF適應各種規模的網絡,最多可達數千臺。

二、EIGRP協議

EIGRP和早期的IGRP協議都是由Cisco發明,是基於距離向量算法的動態路由協議。EIGRP(Enhanced Interior Gateway Routing Protocol)是增強版的IGRP協議。它屬於動態內部網關路由協議,仍然使用矢量-距離算法。但它的實現比IGRP已經有很大改進,其收斂特性和*作效率比IGRP有顯著的提高。

EIGRP的收斂特性是基於DUAL ( Distributed Update Algorithm ) 算法的。DUAL 算法使得路徑在路由計算中根本不可能形成環路。它的收斂時間可以與已存在的其他任何路由協議相匹敵。

EIGRP協議主要具有如下特點:

1. 精確的路由計算和多路由的支持

EIGRP協議繼承了IGRP協議的最大的優點:矢量路由權。EIGRP協議在路由計算中要對網絡帶寬,網絡時延,信道佔用率,信道可信度等因素作全面的綜合考慮,所以EIGRP的路由計算更爲準確,更能反映網絡的實際情況。同時EIGRP協議支持多路由,使路由器可以按照不同的路徑進行負載分擔。

2. 較少的帶寬佔用

使用EIGRP協議的對等路由器之間週期性的發送很小的hello報文,以此來保證從前發送報文的有效性。路由的發送使用增量發送方法,即每次只發送發生變化的路由。發送的路由更新報文采用可靠傳輸,如果沒有收到確認信息則重新發送,直至確認。EIGRP還可以對發送的EIGRP報文進行控制,減少EIGRP報文對接口帶寬的佔用率,從而避免連續大量發送

路由報文而影響正常數據業務的事情發生。

3. 無環路由和較快的收斂速度

路由計算的無環路和路由的收斂速度是路由計算的重要指標。EIGRP協議由於使用了DUAL算法,使得EIGRP協議在路由計算中不可能有環路路由產生,同時路由計算的收斂時間也有很好的保證。因爲,DUAL算法使得EIGRP在路由計算時,只會對發生變化的路由進行重新計算;對一條路由,也只有此路由影響的路由器纔會介入路由的重新計算。

4. MD5認證

爲確保路由獲得的正確性,運行EIGRP協議進程的路由器之間可以配置MD5認證,對不符合認證的報文丟棄不理,從而確保路由獲得的安全。

5. 任意掩碼長度的路由聚合

EIGRP協議可以通過配置,對所有的EIGRP路由進行任意掩碼長度的路由聚合,從而減少路由信息傳輸,節省帶寬。

6. 同一目的但優先級的路由可實現負載分擔

去往同一目的的路由表項,可根據接口的速率、連接質量、可靠性等屬性,自動生成路由優先級,報文發送時可根據這些信息自動匹配接口的流量,達到幾個接口負載分擔的目的。

7. 協議配置簡單

使用EIGRP協議組建網絡,路由器配置非常簡單,它沒有複雜的區域設置,也無需針對不同網絡接口類型實施不同的配置方法。使用EIGRP協議只需使用router eigrp命令在路由器上啓動EIGRP 路由進程,然後再使用network 命令使能網絡範圍內的接口即可。

三、OSPF和EIGRP的比較

OSPF和EIGRP都是收斂速度較快並且不會形成環路的算法,網絡帶寬佔用較小,使用靈活,安全性較好的路由協議。但是從以上分析可以看出,各自還是有優缺點。

(一)、OSPF的缺點

1、配置相對複雜。由於網絡區域劃分和網絡屬性的複雜性,需要網絡分析員有較高的網絡知識水平才能配置和管理OSPF網絡。

2、路由負載均衡能力較弱。OSPF雖然能根據接口的速率、連接可靠性等信息,自動生成接口路由優先級,但通往同一目的的不同優先級路由,OSPF只選擇優先級較高的轉發,不同優先級的路由,不能實現負載分擔。只有相同優先級的,才能達到負載均衡的目的,不象EIGRP那樣可以根據優先級不同,自動匹配流量。

(二)、EIGRP的缺點

1. EIGRP沒有區域(AREA)的概念,而OSPF在大規模網絡的情況下,可以通過劃分區域來規劃和限制網絡規模。所以EIGRP適用於網絡規模相對較小的網絡,這也是矢量-距離路由算法(RIP協議就是使用這種算法)的侷限所在。

2. 運行EIGRP的路由器之間必須通過定時發送HELLO報文來維持鄰居關係,這種鄰居關係即使在撥號網絡上,也需要定時發送HELLO報文,這樣在按需撥號的網絡上,無法定位這是有用的業務報文還是EIGRP發送的定時探詢報文,從而可能誤觸發按需撥號網絡發起連接,尤其在備份網絡上,引起不必要的麻煩。所以一般運行EIGRP的路由器,在撥號備份端口還需配置Dialer list和Dialer group,以便過濾不必要的報文,或者運行TRIP協議,這樣做增加路由器運行的開銷。而OSPF可以提供對撥號網絡按需撥號的支持,只用一種路由協議就可以滿足各種專線或撥號網絡應用的需求。

3. EIGRP的無環路計算和收斂速度是基於分佈式的DUAL算法的,這種算法實際上是將不確定的路由信息(active route)散播(向鄰居發query報文),得到所有鄰居的確認後(reply報文)再收斂的過程,鄰居在不確定該路由信息可靠性的情況下又會重複這種散播,因此某些情況下可能會出現該路由信息一直處於active狀態(這種路由被稱爲stuck in active route),並且,如果在active route的這次DUAL計算過程中,出現到該路由的後繼(successor)的metric發生變化的情況,就會進入多重計算,這些都會影響DUAL算法的收斂速度。而OSPF算法則沒有這種問題,所以從收斂速度上看,雖然整體相近,但在某種特殊情況下,EIGRP還有不理想的情況。

4、EIGRP是Cisco公司的私有協議。Cisco公司是該協議的發明者和唯一具備該協議解釋和修改權的廠商。如果要支持EIGRP協議需向Cisco公司購買相應版權,並且Cisco公司修改該協議沒有義務通知任何其他廠家和使用該協議的用戶。而OSPF是開放的協議,是IETF組織公佈的標準。世界上主要的網絡設備廠商都支持該協議,所以它的互*作性和可靠性由於公開而得到保障,並且在衆多的廠商支持下,該協議也會不斷走向更加完善

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