高級距離矢量路由協議,metric衡量的參數比較多
收斂速度快,適用在中小型網絡中
無類的路由選擇協議
發送路由更新時只發送更新過的內容
·EIGRP是Cisco私有的路由協議,採用DUAL(擴散更新算法)。
·EIGRP屬於IGP,是Hybrid協議,基於IP Pro 88。
·組播、單播更新,組播地址224.0.0.10
·支持等價/不等價的負載均衡。
·支持VLSM,手工彙總。
·支持多種網絡協議(IP/IPX)。
“T1”的默認速率 1.544M
EIGRP爲各種協議都維護的3張表:
1)Neighbor Table:
確保直接鄰居之間能夠雙向通信。
保存鄰居的IP等信息
2)Topology Table:
拓撲表中存放着前往目標地址的所有路由。
3)Routing Table:
從拓撲表中選擇到達目標地址的最佳路由放入路由表。
DUAL算法:
AD(通告距離)-- 鄰居通告的到達目的的Metric
FD(可行距離)-- 本路由器到達目的的Metric
successor路由--具有最優Metric值的路由
Feasible successor路由--符合條件的後備路由
成爲Feasible Successor的條件:也叫可行性條件
FD of Best Route > AD of Second best Route
(Successor)
RTP(Reliable Transport Protocol)
用來管理EIGRP報文的發送和接收,實現可靠傳輸。
所謂可靠傳輸是指發送有保障的而且報文是有序發送的。
EIGRP中的常用報文:
Hello:用於鄰居的發現和恢復。(Multicast)
Update:傳遞路由更新,僅包含需要的路由條目,當爲指定的一臺路由器發更新時使用Unicast(P-TO-P) ,當爲多臺路由器發更新時使用Multicast.(MA)
Query:當找不到Feasible Successor時,發送查詢報文(Unicast)
Reply:迴應查詢報文。(Unicast)
ACK:用來確認Update/Query/Reply (Unicast)
Reliable packets :Update/Query/Reply
Unreliable packets :Hello/ACK
·針對3種可靠包最大重傳16次,如果16次還沒ACK,則重置鄰居關係。
·Hello Address = 224.0.0.10
·Hello Timer
5S:≥T1 (1.544Mbps)也有一個隨機時間差防止更新同步
60S:<T1
·Hold Timer = 3 * Hello Timer
·形成鄰居關係的必要條件
1、雙方K Value一致。
2、AS Num一致。
3、authentication必須一致。
·即使雙方的Hello Timer & Hold Timer不一致,也可形成鄰居關係。
·SRTT(Smooth Round-Trip Time)平均往返時間:
從發送3種可靠包,到對方迴應ACK的時間。(ms)
·RTO(Retransmission TimeOut):
重傳超時的定時器。
·Queue count 隊列數 還在排隊的報文數
EIGRP的Metric值計算:
公式:
EIGRP Metric = 256*(107/BW+DLY/10)
[BW(min) / DL (sum)]
K1=帶寬bandwidth(源和目的之間的最小帶寬) 1
K2=負載loading(源和目的之間的最大負載) 0
K3=延遲delay(源和目的之間的延遲總和) 1
K4=可靠性reliability(源和目的之間的最低可靠性) 0
K5=MTU(源和目的之間的最小MTU) 0
注意:
1、帶寬取路由傳遞路徑上的最小帶寬值
2、延遲是取路由來的方向的入接口的延遲總和
幾種常用接口的帶寬和延遲:
Interface BW(kbps) DLY(μsec)
Ethernet 10000 1000
FAST 100000 100
Serial 1544 20000
Loopback 8000000 5000
<EIGRP>
R2(config)#router eigrp 90
R2(config-router)#network 12.1.1.0 0.0.0.255
R2(config-router)#network 2.2.0.0 255.255.0.0 (正/反掩碼皆可)
R2#show ip protocols
R2#show ip eigrp interfaces
R1#show ip eigrp neighbors
R1#show ip eigrp traffic
R1#show ip eigrp topology 只能顯示successor和feasible successor
R1#show ip eigrp topology all-links 可顯示拓撲表中的所有條目
測試不同AS NUM能不能建起鄰居。
測試Hello/Hold Timer不一致能不能建起鄰居。
·修改Hello/Hold Timer
R1(config-if)#ip hello-interval eigrp 90 60
R1(config-if)#ip hold-time eigrp 90 180 記住,hold-time時間是給鄰居用的
show ip eigrp interface detail s1/0 查看接口的hello時間
·修改K值
R3(config)#router eigrp 90
R3(config-router)#metric weights 0 1 1 1 0 0
-------------------------------------------------------------------------------------
<自動彙總>
EIGRP在默認auto-summary時,跨越不同網絡邊界時,還是會彙總成主類。
所以:R1(config-router)#no auto-summary 本命令關閉自動彙總
·Eigrp在summary有如下特點:
1)會在做彙總的路由器上產生一條特殊的指向空接口的路由
D 2.0.0.0/8 is a summary, 00:02:30, Null0
(本地彙總成主類指向Null0)
這條指向NULL0接口的路由是用來防環的
2)僅將本地的路由彙總成主類,對於收到的路由不做彙總,直接發出。
show ip route 172.16.0.0 255.255.0.0 可以看到指向Null0接口的特殊彙總路由的管理距離
<手工彙總>
R2(config-if)#ip summary-address eigrp 90 20.1.4.0 255.255.252.0
(在路由流向的出接口作)
本地會產生:D 20.1.4.0/22 is a summary, 00:00:02, Null0
這條特殊EIGRP彙總路由的AD值是5
彙總的特點:
1、本地必須有明細路由,纔會從做彙總的接口發出彙總路由。
2、直到明細的最後一條路由消失,彙總纔會消失。
3、彙總路由的metric值會取最小的metric值
<等價負載均衡>
·EIGRP可做等價負載均衡,也可做不等價負載均衡。默認只做等價的。
·EIGRP默認支持4條路徑的負載均衡,最大支持16條。
R1#show ip protocols 這條命令可以查看EIGRP的負載均衡路徑數
R1(config)#router eigrp 90
R1(config-router)#maximum-paths 6(最多16條) 本命令改動負載均衡的路徑數
如果多條路由的metric不相等,可以通過修改Metric值來實現等價負載均衡,有以下兩種方法:
1、<修改EIGRP接口帶寬或延遲>
·通過修改接口的帶寬或延遲,可以達到改動路由metric值的目地。
·在路由流向的入口改。
·改延遲時,如果想把延遲改成2000usec,
則要R3(config-if)#delay 200 (/10) 輸入的值默認會*10
show interface s1/0 使用這條命令可以看到接口的帶寬和延遲
例:
如上圖所示:運行EIGRP後,R2可以學到兩條3.3.3.0的路由,一條從R3學到,另一條從R1學到。
R2#sh ip eigrp topology detail-links
P 3.3.3.0/24, 1 successors, FD is 409600, serno 6
via 23.1.1.3 (409600/128256), Ethernet0/0
via 12.1.1.1 (2809856/2297856), Serial1/0
如果想實現等價負載均衡,可以通過修改E0/0接口的延遲來實現
R2(config-if)#delay 9476 將接口延遲改爲94760μS
R2#show ip route
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/2809856] via 23.1.1.3, 00:00:08, Ethernet0/0
[90/2809856] via 12.1.1.1, 00:00:08, Serial1/0
2、<偏移列表>
用這個玩意也可將不同路由的metric值改爲一樣,用來實現負載均衡
R3(config)#access-list 1 permit 1.1.1.0 0.0.0.0
R3(config-router)#offset-list 1 in 3 Serial 1 本命令只能在原有基礎上增加metric值
(原有Metric + 3)
R3(config-router)#offset-list 0 in 3 ethernet 0 從E0接口進來的所有路由的metric值都加3
(0代表所有網絡)
例:
如上圖所示:運行EIGRP後,R2可以學到兩條3.3.3.0的路由,一條從R3學到,另一條從R1學到。
R2#sh ip eigrp topology detail-links
P 3.3.3.0/24, 1 successors, FD is 409600, serno 6
via 23.1.1.3 (409600/128256), Ethernet0/0
via 12.1.1.1 (2809856/2297856), Serial1/0
如果想實現等價負載均衡,可以在R2上使用偏移列表對E0/0接口進來的3.3.3.0的路由增加metric值。
R2(config)#access-list 1 permit 3.3.3.0
R2(config-router)#offset-list 1 in 2400256 e0/0
R2#show ip route
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/2809856] via 23.1.1.3, 00:00:24, Ethernet0/0
[90/2809856] via 12.1.1.1, 00:00:24, Serial1/0
<不等價的負載均衡>
默認情況下EIGRP只支持等價的負載均衡,使用以下命令可實現不等價負載均衡。
通過下面這條命令可設置一個變量,再用這個變量乘以當前successor路由的FD值就能得到一個參考值
R3(config-router)#variance 2
只要當前拓撲表中的feasible successor路由能滿足以下條件,就能被放入路由表中,實現不等價負載均衡。
FS's FD < U*Successor's FD(參考值) U值就是變量值,由variance命令設定(1-128)
注意:做不等價負載均衡的前提是路由必須要先成爲Feasible successor ,否則不會被用來做負載均衡
例:
如上圖所示:運行EIGRP後,在R2上可以學到兩條13.1.1.0的路由,一條成爲successor,一條成爲FS。
R2#show ip eigrp topology
P 13.1.1.0/24, 1 successors, FD is 2195456
via 23.1.1.3 (2195456/2169856), Ethernet0/0
via 12.1.1.1 (2681856/2169856), Serial1/0
可以通過設置variance變量實現不等價負載均衡
R2(config)#router eigrp 90
R2(config-router)#variance 2
R2#show ip route
13.0.0.0/24 is subnetted, 1 subnets
D 13.1.1.0 [90/2195456] via 23.1.1.3, 00:00:13, Ethernet0/0
[90/2681856] via 12.1.1.1, 00:00:13, Serial1/0
<EIGRP佔用帶寬>
·默認,EIGRP協議本身的流量最多隻佔用接口的參考帶寬的50%。
如果沒有使用Bandwidth設置帶寬,則使用接口默認帶寬。
真實帶寬由clock rate決定,show interface時只是參考帶寬
·通過以下命令,可以改動EIGRP佔用的帶寬值
R1(config-if)#ip bandwidth-percent eigrp 90 200 後面的參數爲百分比
(BW * 200%)
本命令只能show run interface看
注意:show interface 時所看到的帶寬叫做參考帶寬,這個帶寬並不是接口的實際帶寬,接口的實際帶寬是由時鐘速率決定的,參考帶寬只是用來計算metric值或其它一些應用的。
------------------------------------------------------------------------------------
<EIGRP Authentication>僅支持MD5,不支持明文認證
第一步:
R2(config)#key chain R2 (本地有效)定義KEY庫名爲R2
R2(config-keychain)#key 1(兩端一致)定義KEY號爲1
R2(config-keychain-key)#key-string cisco 定義KEY值爲cisco
第二步:
R2(config-if)#ip authentication key-chain eigrp 90 R2 在接口下指定使用哪個密碼庫
第三步:
R2(config-if)#ip authentication mode eigrp 90 md5 開啓認證
R1#show key chain
R1#debug eigrp packet
R2(config-keychain-key)#Accept-lifetime 04:00:00 jan 2006 infinite 定時接收
R2(config-keychain-key)#Send-lifetime 04:00:00 jan 2006 04:01:00 jan 2006 定時發送
R2(config-keychain-key)#Send-lifetime 04:00:00 jan 2006 duration 300 有效期300S
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
<Query>
在廣域網鏈路上,EIGRP的擴散查詢機制可能會導致查詢範圍過大,而佔用不必要的帶寬。
·以下兩種方法可限制EIGRP的查詢範圍:
1)Summary 使用路由彙總來解決
·EIGRP的查詢有以下特點:
僅當路由表中有完全匹配的明細條目時,纔會繼續傳播該查詢。
否則直接回應網絡不可達。
2)Stub 給鄰居配
·通過命令把遠程路由器配置成Stub路由器,Stub路由器會向所有鄰居發送信息告之自已的狀態,其他路由器將不會向Stub路由器發送查詢。
R3(config)#router ei 90
R3(config-router)#eigrp stub (默認通告直連&彙總)
(在配置文件中會自動變成 eigrp stub connected summary 只向鄰居傳送直連路由和自身路由器出口上的彙總路由)
R3(config-router)#eigrp stub connected (通告直連路由)
R3(config-router)#eigrp stub summary (通告彙總路由) 在R3本地做的彙總路由纔會傳
R3(config-router)#eigrp stub redistributed (通告重分佈的路由)
R3(config-router)#eigrp stub static (通告靜態路由)
R3(config-router)#eigrp stub receive-only (只接收不通告)
SIA(Stuck in Active)卡在活動狀態
路由器在三分鐘內沒有收到鄰居的迴應,就認爲路由已進入SIA狀態,這時會重置鄰居關係.
·導致SIA的常見原因:
1)查詢範圍太大
2)路由器太忙無法回答查詢。
3)路由器之間的鏈路質量低劣,導致查詢包丟失。
4)某些單向鏈路失效。
R1(config-router)#timers active-time [2|disable]
(SIA計時器,默認是3分鐘,超過3分鐘就重置鄰居關係,避免卡在活動狀態)時間過半時會發送SIA查詢
<被動接口>
·EIGRP中也可以將一個接口設置爲被動接口
·接口將不收發Hello包。所以對於物理接口來說則根本無法和對端路由器建立鄰居關係
R1(config-router)#passive-interface loopback 0
<水平分割>
EIGRP中默認也是開啓水平分割的
Router(config-if)#no ip split-horizon eigrp 90 在接口上使用這條命令可以關閉
<EIGRP最大hop數>
在EIGRP路由器上可以設定可用路由的最大跳數。
如果一臺路由器收到的路由傳遞的跳數已超過了自已設定的最大跳數,這條路由將不用也不傳。
默認情況下是100,最大可修改爲255
R1(config-router)#metric maximum-hops 255
show ip protocol 本命令可查看
<EIGRP區域生成默認路由> 由邊界路由器下發
1)Redistribute Static:
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 0
R1(config)#router eigrp 90
R1(config-router)#redistribute static
(默認是按靜態路由出接口類型計算Metric)
EX* 0.0.0.0/0 [170/2707456]
2)Network 0.0.0.0:
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 0(寫下一跳不行,必須寫接口)
R1(config)#router eigrp 90
R1(config-router)#network 0.0.0.0
D* 0.0.0.0/0 [90/2707456]
3)ip default-network:
R1(config)#ip default-network 192.12.1.0(寫成主類)
這樣就可以把這條路由下發給其它的路由器當做默認路由了
使用本命令要滿足以下條件:
1、接口IP地址必須是主類
2、接口必須宣告進EIGRP
3、使用命令下發時也必須寫主類網絡號
本文出自 “老胳膊BLOG” 博客,請務必保留此出處http://laogebo.blog.51cto.com/413916/454051