EIGRP理論

EIGRP(Enhanced Interior Gateway Routing Protocol)增強內部網關路由協議,也是Cisco公司的私有協議(當Cisco設備和其他廠商的設備互連時,不能使用EIGRP協議),它結合了鏈路狀態和距離矢量型路由選擇協議的Cisco專用協議,具有快速收斂,減少帶寬佔用等特點。下面,我們整理了有關EIGRP的詳細理論知識,

 EIGRP簡介

EIGRP是由距離矢量和鏈路狀態兩種路由協議混合,因此可以像距離矢量協議那樣,從它的相鄰路由器那裏得到更新信息;也像鏈路狀態協議那樣,保存着一個拓撲表,然後通過自己的DUAL算法選擇一個最優的無環路徑。

不同於傳統的距離矢量協議,EIGRP有着很快的收斂時間,而且不用發送定期的路由更新;也不像鏈路狀態協議,EIGRP並不知道整個網絡是什麼樣的,它只能靠鄰居公佈的信息。EIGRP使用與IGRP相同的路由算法DUAL(擴散更新算法),DUAL機制是EIGRP的核心,通過它來實現無環路徑。內部EIGRP管理距離爲90,外部EIGRP管理距離爲170,支持等價和非等價負載均衡。IP數據包中,EIGRP的協議字段爲88。

EIGRP的優點

100%無環:如果整個網絡包含在一個自制系統中,EIGRP使用DUAL能保證一張100%無環路由轉發表;

快速收斂:EIGRP使用DUAL(),通過備份路由而實現,當S不可用時,快速切換到FS上從而達到快速收斂的目的;

使用多播、單播:使用組播(224.0.0.10)或單播進行路由更新,節省鏈路帶寬;

增大了網絡規模:RIP最大隻能是15跳;而EIGRP最大可支持255跳,IGRP爲224跳,他們兩個默認都爲100跳;

支持三種網絡層協議:EIGRP支持IP、IPX、Apple Talk三種網絡層協議,這也就增大了EIGRP的使用範圍;

支持VLSM和非連續的網絡:RIP和IGRP則不支持;

減少了帶寬的消耗、更好地利用帶寬:EIGRP不像RIP和IGRP那樣,每隔一段時間就交換一次路由信息,它使用 觸發式更新和增量更新,僅當某個目的網絡的路由狀態改變或路由的度量發生變化時,才向鄰居發送路由 更新,因此其更新路由所需要的帶寬比RIP和EIGRP小得多。EIGRP從EIGRP分組即將發出的接口上獲得帶寬 參數,這個參數值是基於接口指定的。例如:默認情況下,所有串行接口都有1544kb/s的帶寬,不過這個 帶寬值是可以配置的,EIGRP最多可以使用50%的接口帶寬來承載EIGRP分組(可以使用ip bandwidth- percent eigrp來修改),這就保證了EIGRP分組不會在主要的網絡收斂過程中“餓死”常規的數據分組。

RIP和IGRP沒有這種特性,所以大量的RIP和IGRP更新分組可能會阻止常規的分組通過。

名詞解釋

度量值:EIGRP使用帶寬(bandwidth)、延遲(delay)、可靠性(reliability)、負載(loading)、最大傳輸單元(MTU)這五個值來計算度量,默認情況下只有帶寬和延遲起作用。計算公式爲——EIGRP度量=[(10^7/路徑上的較低帶寬)+(所有延遲之和)]×256;EIGRP度量=IGRP度量×256。

可行距離(Feasible Distance):到達一個目的地的最小度量值。

通告距離(Advertise Distance):相鄰路由器所通告的它自己到達某個目的地的最小度量值。

可行條件(Feasible Condition):通告距離(AD)小於可行距離的條件即AD

EIGRP 後繼(Successor):一個直接連接的鄰居路由器,它滿足FC,通過它具有到達目的地的最小度量值的路 由器。後繼路由器被用作下一跳來將報文轉發到目的地。

可行後繼(Feasible Successor):一個鄰居路由器,它滿足FC,具有到目的地第二低度量值的路由器。當主 路由S不可用時,FS被用來替代主路由,因而被保存在拓撲表中,當做備用路由。

活躍狀態/主動路由(active state):是一種正在搜索FS的狀態,當路由器丟失了S,並且沒有FS可用時,該路由進入活躍狀態,是一條不可用的路由。當一條路由處於活躍狀態時,路由器向所有鄰居發送查詢來尋 找另外一條到達該目的地的路由。

被動狀態/被動路由(passive state):是一種目前有正確的路由到達目的地的狀態,當路由器失去了S而有一個FS時,或者再找到一個S時,該路由進入被動狀態,是一條可用路由。

鄰居關係:EIGRP通過hello包來建立鄰居關係,在低速鏈路上hello包的發送間隔爲60秒、高速鏈路上爲5秒。 在一段時間內如果沒有收到hello包則重置鄰居關係,這個時間爲保持時間(hold time),默認的保持時間是hello時間的三倍。這兩種時間均可以手動修改,在建立鄰居關係時,K值和自制系統號必須一樣。可以 通過show ip eigrp neighbor查看鄰居關係。

EIGRP形成鄰居的條件:

1.AS號相同;

2.度量計算的K值相同;

3.認證相同(EIGRP只支持密文認證);

4.對端通告的Neighbor ID必須在本端的直連網段中存在。

注意:路由協議都是通過端口的Primary IP傳輸數據流並形成Neighbor ID(代表一個接口)。EIGRP路由器在接收到Hello後會用自己的Primary IP的子網掩碼與Hello中的Neighbor ID進行與運算,得出網絡地址後與自己路由表中的直連網段進行匹配,有則認爲對方是鄰居,並將其放入鄰居表中,沒有就會以不在同一子網爲由來拒絕形成鄰居。

說明:IGRP和EIGRP在相同的自制系統中可以自動再發布路由信息,但是也可以關閉自動再發布路由信息。

EIGRP涉及的4種重要技術:

1.鄰居發現協議:使用hello分組來發現鄰居,維護鄰居,檢查鄰居狀態等等。

2.可靠傳輸協議RTP:確保EIGRP分組能順序的傳遞到所有鄰居。

3.DUAL算法:有限狀態機,決算進程根據所有鄰居通告的所有路由,依據距離信息來選擇前往目的地的無環路路徑。

4.協議無關模塊:EIGRP的協議無關模塊負責處理隨網絡層協議而異的需求。如IP-EIGRP是兼容IP網絡

EIGRP詳解

EIGRP的三張表:Neighbor Table、Topology Table、Routing Table

初始運行EIGRP的路由器都要經歷發現鄰居、瞭解網絡及選擇路由的過程,在這個過程中同時建立三張獨立的表格:Neighbor Table、Topology Table、Routing Table。其中Neighbor Table保存了和路由器建立了鄰居關係的且直連的路由器;Topology Table包含路由器學習到的到達目的地的所有路由條目;Routing Table則是最佳路徑的路由表。

以路由器R4爲例介紹Neighbor Table、Topology Table、Routing Table




1、R4的Neighbor Table中的每個鄰居都轉發一份IP路由表的備份給R4;

2、R4把從鄰居處收到的路由表存儲在自己的Topology Table中,如圖,R4分別收到R2和R3到網絡172.16.1.0/24通告,通告距離爲110和160,R4收到後加上自己到R2和R3的度量後就得到了計算距離210和260;

3、R4檢查Topology Table,然後選擇出一條到達目的地的最佳路由,確定最佳的Successor routers爲R2,然後把它放在Routing Table中。

EIGRP的Routing Table:

D:在本自制系統裏學到的路由。

D EX:從外面發佈進來的路由。

EIGRP的Neighbor Table:


Address:鄰居路由器的地址。

Interface:本地到鄰居的接口。

Hold time:等待米有從鄰居處接受到任何數據報文的最大時間,當收到新的報文後Hold time復位。

SRTT(Smooth round-trip time)順利往返時間:一個EIGRP報文發送給鄰居然後到本地路由器從鄰居處接收到確認報文所花費的時間,單位是ms。

RTO(Retransmission timeout)重傳超時:重新傳輸報文之前等待確認報文的時間,單位是ms。

Q Cnt(Queue count)隊列計數:等待發送的EIGRP報文數,如果這個數值持續高於0,說明網絡發生了擁塞。

EIGRP的Topology Table:

P:passive,表示網絡處於穩定狀態。

A:active,表示當前網絡不可用,正處於發送查詢狀態。

U:update,表示網絡處於等待update包的確認狀態。

Q:query,表示網絡處於等待query包的確認狀態。

SIA:stuck-in-active,表示網絡持續處於active狀態,說明EIGRP網絡的收斂發生了問題。

EIGRP路由的Traffic Table(接收和發送信息表):

 

EIGRP的報文類型:

EIGRP使用可靠傳輸協議RTP(Reliable Transport Protocl),RTP確保每一個EIGRP分組都必須得到確認,只有前一個分組得到確認之後纔會發送下一個分組,RTP的重傳機制使得發送給鄰居可靠的報文在RTO(Retransmit Time Out)超出以後,還沒得到確認的話,RTP會將分組重傳(重傳爲單播,目的是爲了不影響那些已經正常確認的路由),最多重傳16次,如果16次之後還沒有確認則重置鄰居關係,直到鄰居關係保持時間(hold time)超出,宣佈鄰居不可達。接收者需要對update、reply和query這些有序號的報文進行確認,不需要可靠性的報文(如Hello和ACK)則沒有必要確認。

Hello:以多播的方式發送,用於發現鄰居路由器,並維持鄰居關係。

更新(update):當路由器收到某個鄰居路由器的第一個Hello報文時,以單點傳送方式回送一個包含它所知道的路由信息的更新報文。當路由信息發生變化時,以多播的方式發送一個只包含變化信息的更新報文。注意,兩個更新報文的內容不一樣。

查詢(query):當一條鏈路失效,路由器重新進行路由計算。但在拓撲表中沒有可行的後繼路由時,路由器就以多播的方式向它的鄰居發送一個查詢報文,以詢問它們是否有一條到目的地的可行後繼路由。

答覆(reply):以單點的方式回傳給查詢方,對查詢數據報文進行應答。

確認(ACK):以單點的方式傳送,用來確認update、query、reply數據報文,以確保傳輸的可靠性。

說明:OSPF要求鄰居必須具有相同的Hello和Down的判定間隔才能進行通信,而EIGRP沒有這種限制。在實際應用中,將EIGRP的保持時間設爲Hello間隔的3倍,而在OSPF中將保持時間設爲Hello間隔的4倍。

EIGRP路由維護過程:

1.建立相鄰關係:運行EIGRP的路由器自開始運行起,就不斷地用多播地址224.0.0.10從參與EIGRP的各個接口向外發送Hello報文。當路由器之間彼此都收到Hello報文後,這時雙方建立起鄰居關係。

2.發現網絡拓撲,選擇最短路由:當路由器通過Hello報文動態地發現了一個新鄰居時,也獲得了來自這個新鄰居update通告的路由信息。路由器將獲得的路由更新信息首先與拓撲表中所記錄的信息進行比較,FD最小的爲S,如果有相同的FD的話,路由表可以存在多個S,默認可以存在4個。符合FC的路由被放入拓撲表,作爲FS備選路由器,如果S因故無效,而有效的FS存在的話,FS將代替S並無需進行重新計算。EIGRP的TopologyTable一次可以存在多個有效地FS。

3.路由查詢、更新:當路由信息沒有變化時,EIGRP鄰居間只是通過發送Hello報文,來維持鄰居關係,以減少對網絡帶寬的佔用。在發現一個鄰居丟失、一條鏈路不可用時,EIGRP立即會從拓撲表中尋找FS,啓用備選路由器。如果拓撲表中沒有FS,將該路由設置爲活躍狀態,向所有鄰居發送查詢數據報文,除了失效鄰居。如果某個鄰居有一條到達目的地的路由,那麼它將對這個查詢進行答覆,並且不再擴散這個查詢。否則,相鄰路由器將進一步向它自己的每個鄰居查詢,只有所有查詢都得到答覆後,EIGRP才重新計算路由,重置FD,選擇新的後繼路由器。如果相鄰路由器沒有可替換的路由,也沒有相鄰的鄰居路由器,那麼它就向請求路由器發回一個度量爲無窮大的回覆報文。


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