是Cisco的私有路由協定,它綜合了距離矢量和鍊路狀态2者的優點,它的特點包括:
1.<b>快速收斂</b>:鍊路狀态包(Link-State Packet,LSP)的轉發是不依靠路由計算的,是以大型網絡可以較為快速的進行收斂.它隻宣告鍊路和鍊路狀态,而不宣告路由,是以即使鍊路發生了變化,不會引起該鍊路的路由被宣告.但是鍊路狀态路由協定使用的是Dijkstra算法,該算法比較複雜,并且較占CPU和記憶體資源和其他路由協定單獨計算路由相比,鍊路狀态路由協定采用種擴散計算(diffusingcomputations ),通過多個路由器并行的記性路由計算,這樣就可以在無環路産生的情況下快速的收斂.
2.<b>減少帶寬占用</b>:EIGRP不作周期性的更新,它隻在路由的路徑和度發生變化以後做部分更新.當路徑資訊改變以後,DUAL隻發送那條路由資訊改變了的更新,而不是發送整個路由表.和更新傳輸到一個區域内的所有路由器上的鍊路狀态路由協定相比,DUAL隻發送更新給需要該更新資訊的路由器。 在WAN低速鍊路上,EIGRP可能會占用大量帶寬,預設隻占用鍊路帶寬50%,之後釋出的IOS允許使用指令ip bandwidth-percent eigrp來修改這一預設值 .
3.<b>支援多種網絡層協</b>議:EIGRP通過使用“協定相關子產品”(即protocol-dependentmodule<PDM>),可以支援IPX,ApplleTalk,IP,IPv6和NovellNetware等協定.
4.<b>無縫連接配接資料鍊路層協定和拓撲結構</b>:EIGRP不要求對OSI參考模型的層2協定做特别是配置.不像OSPF,OSPF對不同的層2協定要做不同配置,比如以太網和幀中繼總之,EIGRP能夠有效的工作在LAN和WAN中,而且EIGRP保證網絡不會産生環路(loop-free);而且配置起來很簡單;支援VLSM;它使用多點傳播和單點傳播,不使用廣播,這樣做節約了帶寬;它使用和IGRP一樣的度的算法,但是是32位長的;它可以做非等價的路徑的負載平衡.
1.Protocol-Dependent Module(PDM)
2.可靠傳輸協定(Reliable Transport Protocol,RTP)
3.鄰居的發現/恢複
4.彌散更新算法(Diffusing Update Algorithm,DUAL)
<b></b>
<b></b>
RTP負責<b>EIGRP packet(下面有講)</b>的按順序(可靠)的發送和接收,這個可靠的保障是通過Cisco私有的一個算法,reliable multicast實作的,使用多點傳播位址<b>224.0.0.10</b>,每個鄰居接收到這個可靠的多點傳播包的時候就會以一個unicast作為确認按順序的發送是通過packet裡的2個序列号實作的,每個packet都包含發送方配置設定的1個序列号,發送方每發送1個packet,這個序列号就遞增1.另外,發送方也會把最近從目标路由器接收到的packet的序列号放在這個要發送的packet裡,在某些情況下,RTP也可以使用無需确認的不可靠的發送,并且使用這種不可靠發送的packet中不包含序列号.
EIGRP選擇一條主路由(最佳路由)和一條備份路由放在topology table(EIGRP到目的地支援最多6條鍊路).它支援幾種路由類型:内部,外部(非EIGRP)和彙總路由.EIGRP使用混合度.
i.EIGRP Metric的5個标準
1.<b>帶寬</b>:10的7次方除以源和目标之間最低的帶寬乘以256
2.<b>延遲(delay):</b>接口的累積延遲乘以256,機關是微秒
3.<b>可靠性(reliability):</b>根據keepalive而定的源和目的之間最不可靠的可靠度的值
4.<b>負載(loading):</b>根據包速率和接口配置帶寬而定的源和目的之間最不差的負載的值
5.<b>最大傳輸單元(MTU):</b>路徑中最小的MTU.MTU包含在EIGRP的路由更新裡,但是一般不參與EIGRP度的運算
ii. <b>EIGRP Metric的計算:</b>EIGRP使用DUAL來決定到達目的地的最佳路由(successor).當最佳路由出問題的時候,EIGRP不使用
holddown timer而立即使用備份路由(feasible successor),這樣就使得EIGRP可以進行快速收斂
EIGRP計算度的公式,K是常量,公式如下:
<b>metric=[K1*bandwidth+(K2*bandwidth)/(256–load)+K3*delay]*[K5/reliability+K4]</b>
預設:K1=1,K2=0,K3=1,K4=1,K5=0 不推薦修改K值.K值通過EIGRP的hello包運載.如果兩個路由器的K值不比對的話它們是
不會形成鄰居關系的 <b>Metric weight Tos K1 K2 K3 K4 K5 來修改K值</b>,Tos 預設為0.
EIGRP使用多種類型的packet,這些packet通過IP頭部資訊裡的協定号<b>88</b>來辨別:
1. <b>Hello packet</b>:用來發現和恢複鄰居,通過多點傳播的方式發送,使用不可靠的發送.
2. <b>ACK</b>(acknowledgement) packet:不包含資料(data)的Hello包,使用unicast的方式,不可靠的發送.
3. <b>Update packet</b>:傳播路由更新資訊,不定期的,通過可靠的方式發送(比如網絡鍊路發生變化).當隻有一台路由器需要路由更新 時,update通過unicast的方式發送;當有多個路由器需要路由更新的時候,通過多點傳播的方式發送.
4. <b>Query(查詢) & Reply(應答)</b> packet:是<b>DUAL finite state machine</b>用來管理擴散計算用的,查詢包可以是多點傳播或unicast;應答包是通過unicast的方式發送,并且方式都是可靠的.
5. <b>Request(請求)</b> packet:最初是打算提供給路由伺服器(server)使用的,但是從來沒實作過.
EIGRP的Update包是非周期性發送的,
1.Hello包在一般的網絡中(比如點到點,point-to-point)是每<b>5</b>秒多點傳播<b>1</b>次(要随機減去1個很小的時間防止同步);
2.在多點(multipoint)X.25,幀中繼(Frame Relay,FR)和ATM接口(比如ATM SVC)和ISDN PRI接口上,Hello包的發送間隔是<b>60</b>
秒.
在所有的情況中,Hello包是不需要确認的.可以在接口配置模式下修改該接口的Hello包預設的發送間隔,指令為
ip hello-interval eigrp
當一個路由器收到從鄰居發來的Hello包的時候,這個Hello包包含了一個<b>holdown time</b>,這個holdown time告訴這個路由器等待後續Hello包的最大時間.如果在超出這個holdown time之前沒有收到後續Hello包,那麼這個鄰居就會被宣告為不可達,并通知DUAL這個鄰居已丢失.<b>預設hold time是3倍于Hello包發送間隔的, 更高鍊路 -- 預設Hello間隔和保持時間是5s和15s T1或低于T1鍊路 -- 分别是60s和180s</b> 可以在接口配置模式下修改這個預設的holdown time, 指令為
ip hold-time eigrp.
EIGRP鄰居資訊都記錄在鄰居表(neighbor table)中,使用show ip eigrp neighbors指令檢視IP EIGRP的鄰居.
1.<b>彌散更新算法簡介</b> (彌散更新算法可以保證路由100%無環路loopfree)為了能夠讓DUAL正确的操作,低層協定必須滿足以下幾個條件:
1. 一個節點要在有限的時間裡檢測到新鄰居的存在或和一個鄰居的連接配接的丢失
2. 在鍊路上傳輸的所有資訊必須在有限的時間裡按正确的順序收到
3. 所有的消息,包括鍊路cost的更改,鍊路故障,和新鄰居的發現,都應該是在有限時間裡,一個一個的依次處理Cisco的EIGRP使用鄰居的發現/恢複和RTP來確定上述前提條件
2.<b>adjacency(鄰接):</b> 在剛啟動的時候,路由器使用Hello包來發現鄰居并辨別自己用于鄰居的識别.當鄰居被發現以後,EIGRP會在它們之間形成一種鄰接關系.鄰接是指在這2個鄰居之間形成一條交換路由資訊的虛鍊路(virtual link).當鄰接關系形成以後,它們之間就可以互相發送路由update,這些update包括路由器它所知道的所有的鍊路及其metric.對于每個路由,路由器都會基于它鄰居宣告的距離(distance)和到達那個鄰居的鍊路的cost來計算出一個距離
3.<b>Feasible Distance(FD,可行距離):</b> 到達每個目标網絡的最小的metric将作為那個目标網絡的FD.比如,路由器可能有3條到達網絡172.16.5.0的路由,metric分别為380672,12381440和660868,那麼380672就成了FD.
4. <b>Feasible Condition(FC,可行條件):</b> 鄰居宣告到達目标網絡的的距離小于本地路由器到達目标網絡的FD AD < FD => FC=ture.
5.<b>Feasible Successor(FS,可行後繼路由):</b> 如果一個鄰居宣告到達目标網絡的距離滿足FC,那麼這個鄰居就成為FS.比如,路由器到達目标網絡172.16.5.0的FD為380672,而他鄰居所宣告到達目标網絡的距離為355072,這個鄰居路由器滿足FC,它就成為FS;如果鄰居路由器宣告到達目标網絡的距離為 380928,即不滿足FC,那麼這個鄰居路由器就不能成為FS,<b>FS和FC是避免環路的核心技術,FS也是downstream router(下遊路由器),因為從FS到達目标網絡的距離比本地路由器到達目标網絡的FD要小,</b>存在一個或多個FS的目标網絡被記錄在拓撲表中。
6.拓撲表(Topological Table)
拓撲表包括以下内容:
目标網絡的FD.
所有的FD.
每一個FS所宣告的到達目标網絡的距離.
本地路由器計算出的,經過每個FS到達目标網絡的距離,即基于FS所宣告到達目标網絡的距離和本地路由器到達那個FS的鍊路的cost.
發現FS的網絡相連的接口.
7.鄰居表(Neighbor Table):每個路由器的RAM中都儲存有關于鄰居的位址和接口資訊的表。
8.後繼路由(Successor):又稱成功者(Secessful),是到達遠端網絡的最佳路由。是EIGRP用于轉發業務量的路由,它被存儲在路由表中。
(1)EIGRP路由協定主要優點
精确路由計算和多路由支援。EIGRP協定繼承了IGRP協定的最大的優點是矢量路由權。EIGRP協定在路由計算中要對網絡帶寬、網絡時延、信道占用率和信道可信度等因素作全面的綜合考慮,是以EIGRP的路由計算更為準确,更能反映網絡的實際情況。同時EIGRP協定支援多路由,使路由器可以按照不同的路徑進行負載分擔。
較少帶寬占用。使用EIGRP協定的對等路由器之間周期性的發送很小的hello封包,以此來保證從前發送封包的有效性。路由的發送使用增量發送方法,即每次隻發送發生變化的路由。發送的路由更新封包采用可靠傳輸,如果沒有收到确認資訊則重新發送,直至确認。EIGRP還可以對發送的EIGRP封包進行控制,減少EIGRP封包對接口帶寬的占用率,進而避免連續大量發送路由封包而影響正常資料業務的事情發生。
快速收斂。路由計算的無環路和路由的收斂速度是路由計算的重要名額。EIGRP協定由于使用了DUAL算法,使得EIGRP協定在路由計算中不可能有環路路由産生,同時路由計算的收斂時間也有很好的保證。因為,DUAL算法使得EIGRP在路由計算時,隻會對發生變化的路由進行重新計算;對一條路由,也隻有此路由影響的路由器才會介入路由的重新計算。
MD5認證。為確定路由獲得的正确性,運作EIGRP協定程序的路由器之間可以配置MD5認證,對不符合認證的封包丢棄不理,進而確定路由獲得的安全。
路由聚合。EIGRP協定可以通過配置,對所有的EIGRP路由進行任意掩碼長度的路由聚合,進而減少路由資訊傳輸,節省帶寬。
實作負載分擔。去往同一目的的路由表項,可根據接口的速率、連接配接品質和可靠性等屬性,自動生成路由優先級,封包發送時可根據這些資訊自動比對接口的流量,達到幾個接口負載分擔的目的。
配置簡單。使用EIGRP協定組建網絡,路由器配置非常簡單,它沒有複雜的區域設定,也無需針對不同網絡接口類型實施不同的配置方法。使用EIGRP協定隻需使用router eigrp指令在路由器上啟動EIGRP 路由程序,然後再使用network 指令使能網絡範圍内的接口即可。
(2)EIGRP路由協定主要缺點
沒有區域概念。EIGRP沒有區域的概念,而OSPF在大規模網絡的情況下,可以通過劃分區域來規劃和限制網絡規模。是以EIGRP适用于網絡規模相對較小的網絡,這也是矢量-距離路由算法(RIP協定就是使用這種算法)的局限所在。
定時發送HELLO封包。運作EIGRP的路由器之間必須通過定時發送HELLO封包來維持鄰居關系,這種鄰居關系即使在撥号網絡上,也需要定時發送HELLO封包,這樣在按需撥号的網絡上,無法定位這是有用的業務封包還是EIGRP發送的定時探詢封包,進而可能誤觸發按需撥号網絡發起連接配接,尤其在備份網絡上,引起不必要的麻煩。是以,一般運作EIGRP的路由器,在撥号備份端口還需配置Dialer list和Dialer group,以便過濾不必要的封包,或者運作TRIP協定,這樣做增加路由器運作的開銷。而OSPF可以提供對撥号網絡按需撥号的支援,隻用一種路由協定就可以滿足各種專線或撥号網絡應用的需求。
基于分布式的DUAL算法。EIGRP的無環路計算和收斂速度是基于分布式的DUAL算法的,這種算法實際上是将不确定的路由資訊散播(向鄰居發query封包),得到所有鄰居的确認後(reply封包)再收斂的過程,鄰居在不确定該路由資訊可靠性的情況下又會重複這種散播,是以某些情況下可能會出現該路由資訊一直處于活動狀态(這種路由被稱為活動路由棧),并且,如果在活動路由的這次DUAL計算過程中,出現到該路由的後繼(successor)的測量發生變化的情況,就會進入多重計算,這些都會影響DUAL算法的收斂速度。而OSPF算法則沒有這種問題,是以從收斂速度上看,雖然整體相近,但在某種特殊情況下,EIGRP還有不理想的情況。
EIGRP是Cisco公司的私有協定。Cisco公司是該協定的發明者和唯一具備該協定解釋和修改權的廠商。如果要支援EIGRP協定需向Cisco公司購買相應版權,并且Cisco公司修改該協定沒有義務通知任何其他廠家和使用該協定的使用者。而OSPF是開放的協定,是IETF組織公布的标準。世界上主要的網絡裝置廠商都支援該協定,是以它的互操作性和可靠性由于公開而得到保障,并且在衆多的廠商支援下,該協定也會不斷走向更加完善。
本文轉自 meiyanaa 51CTO部落格,原文連結:http://blog.51cto.com/justim/223892,如需轉載請自行聯系原作者