天天看點

EIGRP實驗總結

Cisco私有的路由協定,但也有極少的廠家使用。号稱綜合了距離,鍊路二種路由協定的優點。

快速收斂 源于鍊路狀态路由特點,路由器發送的并非路由報告,而是網絡的鍊路狀态,由每個路由單獨計算最佳路由。是以路由器隻要接收到網絡拓撲變化資訊中,它就會更新目前的拓撲表,并重新計算路由。而不必等待鄰居的路由計算結果。另一方面,正常的SPF算法比較耗費CPU和記憶體,EIGRP采用了另一種獨特的算法(DUAL)來計算。它造成的路由器負擔相對較輕,同時也可以較快的得到結果。是以EIGRP的收斂時間是優于OSPF和ISIS的。

低帶寬占用 源于鍊路狀态路由特點,路由器不會發送定期更新,隻有當網絡拓撲發生變化時,才會發出更新資訊。同時更新資訊僅僅包含變化的部分,這就極大的降低的更新消息資料包的大小,進而減小網絡帶寬占用。

多點傳播更新 目标位址為224.0.0.10。

支援多種網絡協定 此點與ISIS相似,而OSPF就是為IP開發的,它也僅僅支援IP。

安全性 EIGRP支援md5加密認證。

501

如圖所示,EIGRP的正常運作依賴于下面四個元件

協定無關子產品

可靠的傳輸協定 RTP

鄰居發現和維護機制

DUAL算法

下面依次介紹

EIGRP針對不同的網絡層協定,有不同的子產品,比如IP,IPX。當它識别出目前的三層協定後,它就會用相應的三層協定去封裝EIGRP資料包。

可靠可以了解為需要确認,它保證了關鍵資訊的傳遞。這中間的差別類似于TCP和UDP。

RTP的工作過程為,

資料包首先以多點傳播形式發送,接收者需要回送一個确認資訊。

如果源路由器沒有收到這個确認資訊,它轉而用單點傳播将更新資訊再次發送給目标路由器,并等待确認。

如果16個單點傳播發送後,還是沒有收到确認。就認為目标路由器無效,通告并更新自身路由表。

并非所有EIGRP資料包都需要确認,這對網絡的帶寬是一種考驗。常見的EIGRP資料包有

Hello資料包 多點傳播發送,用于鄰居路由器發現和維護,無須确認。

Update資料包 多點傳播發送,RTP。EIGRP隻發送更新部分的資訊。如果隻有一個接收者,則用單點傳播發送。

ACK資料包 單點傳播發送,相當于沒有資料的Hello包,用于确認。

Query和Answer 前者可以是多點傳播或單點傳播,RTP。後者為單點傳播,RTP。用于DUAL計算。

Request 隻定認過,但從未真正使用過

EIGRP協定中有三張重要的表

拓撲表 将接收到的鄰居路由表加入到自身的網絡拓撲表中,計算得到一條最佳路由

路由表 記錄最佳路由

可以看到,鄰居表是整個流程中的起點。那麼路由器間是如何确定鄰居關系的?

其次,前面已經提供,EIGRP的更新是非周期性的,這意味着可能很長時間内都沒有更新資訊的發出。在如此長的時間内,路由器又如何确定鄰居路由器還處于正常工作狀态?

當路由器啟動後,它會周期性的發出Hello包。在一般網絡中,這個值是5s。在FR,ATM接口上,這個值為60s。hello包中有一個保持時間(hold time),意思為如果在保持時間内未收到下一個hello包,就認為該路由器已經失效。預設的hold time是hello包周期的3倍,即15s/180s。

當路由器收到一個hello時,首先檢查其中的AS号和K值,如果與自身相同,就可以形成鄰居關系。它會進一步檢查其中包含的源路由器資訊。如果在鄰居表沒有記錄,就把它加入鄰居表。如果已有記錄,就更新其中的hold time。

ip hello-interval eigrp <AS> <time>

ip hold-time eigrp <AS> <time>

檢視鄰居表

show ip eigrp neighbors

一個好的路由協定,它的算法肯定是優秀的。不要說RIP的算法不行,隻是在它設計的時代并沒有考慮到現在的網絡環境會是如此龐大。這就好比商周時候,會個勾股定理就可以讓人驚為天人。現在随便找了國中生都明白這個道理。但你不能說勾股定理太爛了,隻是所處時代不同罷了。

DUAL算法全稱為 Diffusing Update Algorithm,翻譯過來就是擴散理新算法。這個名字恰如其分,DUAL算法的核心不是擴散。

502

這是一個典型的DUAL計算過程

1,路由器A向它的所有鄰居發出查詢包,詢問目标網絡的距離

2,如果鄰居B知道這個目标網絡,它就傳回答複包,包含自身B到目标網絡的距離。

如果鄰居B也不知道這個目标網絡,它就将該查詢轉發給它的所有鄰居(除源A外)

如果到最後,所有的路由器都不知道這個目标網絡,那麼最外層路由器就向内答複目标不可達,沿途路由器都依次更新自身路由表,并向内層傳遞。

從這個過程中,我們可以看到正确運作DUAL算法需要先确定幾個因素

必須能迅速的對鄰居存在做出判斷,這依賴于hello包。

查詢和答複都必須在有限的時間内到達

如果答複一直收不到,路由器就處于一直等待的狀态,稱為SIA (Stuk In Active)

解決SIA的方法就是設定末稍區域,比如常見的hub-spoke型網絡

可行距離和通告距離

可行距離FD,為自身到目标網絡的距離。

通告距離AD,為鄰居到目标網絡的距離。

可行性條件FC

AD < FD 則FC為真

這個可以和RIP的環路問題結合起來,還記得RIP環路的根本原因嗎?它永遠不知道自己是否在一個通告的路由路徑上。EIGRP雖然具有鍊路狀态路由的特點,但是在距離計算上,它還是依賴于鄰居的AD。這不就和RIP一樣了嗎?但是EIGRP很聰明了設定了FC判斷。

如果路由器接收到的AD中包含了自身,那麼AD肯定大于目前的FD。

後繼路由器與可行後繼路由器

目前路由的下一跳路由器稱為後繼路由器 Successor

從上面的計算可以看到,擴散類似于廣播機制。每次計算都可能要涉及很多台路由器,是以EIGRP會保留一個備份的下一跳路由器,稱為FS Fessible Successor

它通過FC來判斷,AD最小的即為FS。

當Successor出現故障後,FS立即接管它的工作,進而保證網絡持續暢通。

如果沒有FS,那麼就隻能重新計算了

EIGRP的距離計算

前者一直談到EIGRP的距離,這個距離到底是什麼?在前面已經提到EIGRP的距離計算基于5個因素:帶寬,負載,可靠性,延遲

metric = [K1 \times BW+\frac {K2 \times BW}{256-load}+K3 \times Delay]* \frac {K5}{Reliability+K4}

router eigrp <AS号>

network <主網絡号> [反掩碼]

由于EIGRP是支援無類路由的,它可以比較掩碼資訊。是以通常可以加入反掩碼用于指定運作EIGRP的子網

EIGRP預設是自動彙總的,可以EIGRP指令行中輸入 no auto-summary 關閉

手動彙總在接口上進行 ip summary-address EIGRP <AS> <ip> <mask>

與rip認證類似,需要配置鑰匙鍊,認證在接口上配置。

key chain <kc>

key 1

key-string <passwd>

...

interface <interface>

ip authentication eigrp <AS> key-chain <kc>

ip authentication eigrp <AS> mode md5

與RIP認證不同的是,EIGRP僅支援md5,不支援明文,如果沒有下面這一行,認證将不會進行。

該區域中的路由器将不參與DUAL擴散,可以有效的減少DUAL的計算量。

EIGRP程序下,輸入 eigrp stub <receive-only | connected | summary | static>

receive-only 隻接收不發送任何更新資訊

connected 發送直連路由

summary 發送彙總路由

static 發送靜态路由

預設的是connected和summary

最大均衡路徑數目 max-path <value> 1~6,預設為4

允許不等價均衡 variance <value> 設定非等價均衡的倍數

隻有滿足FC的路由器才會參與非等價均衡中

下面重點說下EIGRP的這樣幾個問題;

1. EIGRP的等價負載均衡與非等價負載的差別在那  之間如何轉換  其中原理是什麼  如何實作 ?其中delay指令的用法什麼意思

2. 其中EIGRP度量的算法  如何實作

_____________________________________________________________________________________

1.等價負載均衡把流量分布在具有相同路徑成本的多條路徑上;非等價負載均衡把流量分布在具有不同路徑成本的多條路徑上。流量将根據路由代價配置設定,代價高度高的配置設定得少,代價低的配置設定得多。每種路由協定都有其衡量到目标網絡開銷的标準,我們稱其為路徑成本。

那麼在EIGRP中,路徑成本由5個因素通過一個公式得出,這5個因素是

帶寬、延時、負載、可靠性、MTU。

計算的公式會很煩瑣,實際工作中也沒有人會去這麼算,簡化之後的算法delay是計算metric的參數,看下面

預設情況,Metric=【10^7/帶寬(K)+延時(10usec)】*256

其中帶寬bandwidth和延時delay能夠在sh interface裡面看到

帶寬是指路徑之中最小的鍊路,延時是所有路徑延時之和

差別在流量的配置設定,等價是平均配置設定,非等價是按Metric的比值配置設定

等價的是自動實作,非等價必須手工指定比值variance

這裡說一下等價負載均衡和不等價負載均衡。

等價負載均衡很多路由協定都支援,但是要做到不等價負載均衡有且隻有Cisco私有的路由協定EIGRP可以做到。

不等價負載均衡就是在到達目标網絡的不同路徑成本的路徑上進行負載均衡,而且流量的配置設定是按照鍊路Metric的比值。

舉個例子,從網絡1.1.1.1到達網絡2.2.2.2有metric為1和1000的兩條路徑。那麼第1~1000個資料包會走metric為1的鍊路,第1001個包會走metric為1000的鍊路。也就是說metric為1的鍊路每傳輸1000個包,metric為1000的鍊路上隻傳輸1個包。

再說下不等價負載均衡的實作,在路由程序下輸入:variance n(n為一個數值)。

這裡還是舉個例子

P 2.2.2.0/24, 1 successors, FD is 2297856, serno 6

        via 10.1.1.2 (2297856/128256), Serial1/1

        via 10.3.3.2 (2300416/2297856), FastEthernet0/0

目前successors為10.1.1.2,FD(可行距離)=2297856,

當在路由程序下 variance n之後,EIGRP會把FD<=2297856*n的後繼路由全部放到路由表中。預設最多為4條。

本文轉自q狼的誘惑 51CTO部落格,原文連結:http://blog.51cto.com/liangrui/399688,如需轉載請自行聯系原作者

繼續閱讀