Sequence Number:報文的序列號,用於確認機制,不需要確認的報文,如Hello報文,這個域為0。
Ack Number:報文攜帶的確認信息.表示已經收到了此序列號的報文。
Autonomous-System Number:自治系統號,一般來說也是進程號。
一般來說就是進程號一般來說就是進程號
DUAL(Diffusing update algorithm)
後繼站(Successor):最優路徑的下一跳路由器。
可行後繼站 (Feasible successor):備份路徑的下一跳路由器。
可行距離 (Feasible Distance):鄰居路由器去往目的地的度量值+自身去往鄰居路由器的度量值之和。
通告距離 (Advertise Distance):鄰居路由器去往目的地的度量值。
可行備份 (FC):次有路徑的AD小於本地最優路徑的FD時,可作為備份路徑。
1、本地計算:匯總鄰居發送過來的跟新加入拓撲表,使用DUAL算法計算出一條最優路徑加入路由表,同時計算出一條無環次優路徑加入拓撲表,備份路由選擇條件需滿足FC條件:AD(FS)<FD(S)<FD(FS);當最優路徑不可用時將最優路徑從路由表中刪除,自動將次優路徑加入路由表並通告鄰居該路由度量值已改變。
2。擴散更新計算:當一臺路由器丟失了一條路由且該路由沒有備份路由時,則啟動擴散更新計算:該路由器會向所有鄰居路由器發送Query報文,查詢關於丟失路由條目,同時將本地路由表中該路由FD設為無窮大(Passive改為Active),表示該路由條目已經不可達;
2.1 查找本地是否存在被查詢路由;
--不存在;直接丟棄Query報文並以Reply應答給查詢路由器該路由不可達;
--存在;判斷查詢者是不是本路由器的後繼站:
2.2 查詢者不是被查詢路由的後繼站,就將該路由以Reply應答給查詢路由器
2.3 查詢者是被查詢路由的後繼站,首先刪除本地路由表中的該路由;則判斷本地拓撲表內是否擁有該路由的備份路由:
--有;將最優路由切換為備份路由,並將備份路由以Reply應答給查詢路由器;
--沒有;會先欠著查詢者的應答,判斷自己是否擁有除查詢者之外的其他鄰居:
----有;發送Query查詢給鄰居路由器;
----沒有;發送Reply告知查詢者該路由不可達。
註:查詢路由器標記未回復query應答的鄰居為「r」狀態;一個鄰居只能發送一次query查詢,一次查詢收到reply應答後才能進行第二次查詢;鄰居收到查詢者的query查詢時,不能反向進行查詢;查詢者等待所有鄰居都回復了reply
應答後才可以進行更新計算,將180S內未回復reply應答的鄰居置為SIA狀態。
1、帶寬(bandwidth):K1(1),取最小值
3、可靠性(reliability):K4(0),丟包率,取最小值
4、負載(loading):K2(0),帶寬利用率,取最大值
5、最大傳輸單元(MTU):K5(0)一般不參與EIGRP度量值的計算。32位度量值計算:10的7次方除以(Kbit/s為單位)的最小帶寬加上(10的負5次方秒為單位)的延遲之和除以10,最後乘於256;默認情況下,K1和K3是1,K2、K4、K5值是0;
帶寬:控制層面路由流向的所有入接口提取帶寬的最小值。
延時:控制層面路由流向的所有入接口提取延時之和。
1、計算出的度量值不是整數時自動取整,比如計算結果為8501.39 ,顯示值將為8501;
2、 通過配置K值,可以修改EIGRP度量值計算方式;K值取值範圍(0-255)。
EIGRP 要求兩臺路由器的K值必須相同才能成為鄰居。另外,K2,K4,,K5最好不要設置,因為這些參數設置為非零之後,會導致計算度量值時會考慮接口的負載和可靠性,而負載和可靠性會隨時間變化,這將導致EIGRP重新泛洪拓撲數據,還可能導致路由器不斷地選擇不同的路由,由此導致網絡不穩定。
64位度量值計算:10的7次方乘以65536除以(Kbit/s為單位)的最小吞吐量加上(10的負5次方秒為單位)的時延之和乘以65536;
度量值因素:吞吐量throughout(帶寬)、時延latency(延時)
註:64位EIGRP默認度量值最大上限是2的32次方;當鏈路帶寬特別低時或者延時特別高時,會出現度量值超過上限值,此時可以通過在AS內所有路由器上設置metric rib-scale(路由信息庫)值(默認值128),設置一個(129-255)的值。
EIGRP出現Down鄰居的三種情況:
1.1 3倍hello時間未收到鄰居的hello響應,立即down鄰居刪除路由。註:帶寬低於1.544Mbps,hello發送周期60S,3倍dead時間;帶寬高於1.544Mbps,hello發送周期5S,3倍dead時間;鄰居兩端的hello發送周期可以不一樣,但是要低於dead時間。
1.2 在可靠機制RTP中,報文重傳了16次仍未收到ACK確認,將重置鄰居關係。註:初次重傳計時器multicast flow timer(時間值不固定)
第2-16次重傳計時器retransmission timeout(時間值不固定)
1.3 在執行擴散更新計算時,發送Query查詢報文在180S內都沒有收到鄰居的回覆應答repay,會將該鄰居關係置為SIA(stack in active)。2.1 BFD雙向轉發檢測機制:可以提供毫秒級的檢測,可以實現鏈路的快速檢測,通過使用BFD與EIGRP協議聯動,可以讓EIGRP路由器之間建立BFD的鄰居,快速感知鏈路變化,實現路由的快速收斂下放默認路由的4種方法:
R2(內網)- R1(邊界路由器)- R3(ISP)
3.1 在R1左邊的接口配置一條匯總路由0.0.0.0 0.0.0.0(EIGRP支持CIDR),R1就會把該匯總路由發給R2(邊界路由器不能發送明細路由給內網路由器了)。
3.2 全局模式下配置ip default-network後面接外網接口主類地址段;EIGRP進程中宣告該外網接口的主類地址段;邊界路由表中必須擁有該外網接口的主類路由(邊界路由器開啟自動匯總或者手工配置一條靜態路由指向null0接口)
3.3 全局模式下手工創建一條默認路由後面跟出接口但不包含下一跳地址,然後在EIGRP進程中宣告network 0.0.0.0;此時路由表會出現一條標記為D*的內部EIGRP路由。
3.4 EIGRP進程中使用路由重分發(redistribute static)將默認路由下放,凡是重分發至EIGRP域的都是外部EIGRP,標記為D*EX;此方法支持距離矢量協議中使用,不支持鏈路狀態協議中。
路由選路:
4.1 修改帶寬和延時可以在接口下操控bandwidth和delay值 ,bandwidth的單位是kbit/s,delay的單位是10微秒。
註:帶寬設置會影響接口速率計算、QOS參數的基礎以及用於SNMP統計報告;而延時設置除了對EIGRP外其他功能幾乎沒有影響,所以想要調整EIGRP的度量值,最好選擇修改延時。修改bandwidth和delay參數只會影響控制層面的管理帶寬/延時,影響路由度量值計算,不會影響接口實際數據轉發,修改speed(帶寬)和duplex(雙工模式)參數才會影響接口實際數據轉發。
4.2 使用偏移列表offer-list能夠給去往指定目的地的路由度量值計算到加上一個偏移量;從而實現修改度量值的目的,進而操控路由選路;結合ACL工具抓取路由(access-list),度量值只能改大不能改小。4.3 修改管理距離,由於發送的更新中不攜帶管理距離(distance),只能在本地修改;使用分發列表distribute-list過濾路由。
4.4 根據最長匹配原則,匯總後的路由掩碼往往較短而不會被選為最優路徑。
5.1等價負載均衡ECMP:當兩條路由前綴、掩碼和度量值相同,就會被同時加入路由表進行負載均衡;等價負載均衡默認支持4條,數據轉發的負載比例是1:1。5.2 非等價負載均衡UECMP:最優路徑的FD*variance值大於等於次優路徑的FD且次優路徑的AD小於最優路徑的FD,當滿足以上兩個條件時,就可以實現非等價負載均衡,路由表中會出現兩條度量值不同的路由;非等價負載均衡數據轉發的負載比例是1:X(X代表兩條路由度量值的比例)
註:variance值取值範圍1-128,1代表只支持等價負載均衡;2-128的值代表支持非等價負載均衡。註:只有當匯總路由中的全部明細路由down了,匯總路由才會消失;匯總路由使用明細路由中最小度量值(64位EIGRP中取最大值);EIGRP自動匯總的度量值和接口使用的手工匯總的度量值一樣;當防環路由度量值影響其他路由選擇協議正常收發路由時,可修改自動匯總路由的管理距離,建議修改為21-89的數值。
當重分發進來的路由經過手工匯總之後,路由傳遞模式會發生改變,重分發路由標識會由DEX變成內部路由D。
EIGRP認證:只支持MD5密文認證,基於鏈路的鑰匙鏈認證。
7.1 EIGRP認證的基本配置:首先配置KEY CHAIN,接著定義KEY ID,再接著定義KEY-STRING,然後到接口模式下引用KEY CHAIN,最後,在接口模式下把EIGRP的MD5認證功能打開。
7.2 KEY CHAIN不同,只要KEY ID和KEY-STRING相同,也可以認證成功。
7.3 默認情況下,只會發送密鑰ID最小的密鑰,密鑰接收後只要在鑰匙鏈中找到一把匹配成功的密鑰即可單向認證成功。
7.4 高級屬性:可以用send-lifetime和accpet-lifetime限制鑰匙鏈中鑰匙的發送和接收時間,使用這個方法,可以實現定期自動更換密鑰;還可以使用NTP(Network Time Protocol 網絡時間協議)同步計算機時鐘。
EIGRP Stub:DUAL算法也有缺點,有的時候需要限制Query報文的發送。
8.1 Stub特性:建議把最邊緣的路由器作為stub路由器;後面可以加很多參數:receive-only、summary、static、connected、redistributed、leak-mapreceive-only表示只收不發更新,默認情況下為connected和summary,表示只將直連路由和匯總路由發出去。
Summary表示能發送由本地路由器匯總的路由,不能發送其他路由器匯總路由。
static表示只能發送重分發至eigrp的static路由。
Redistributed 表示可以發送重分發至eigrp的所有類型的路由。
8.2 匯總可以限制查詢範圍。假設邊界路由器上匯總33.1.0.0/16,鄰居向其發起33.1.1.0/24的查詢,路由表查看路由表發現只有匯總路由,沒有33.1.1.0/24這條路由就馬上回復鄰居,不會再擴散去查詢鄰居路由器了。
9.1 被動接口passive-interface:被設置為passive-interface的接口是不能收發任何EIGRP報文。
9.2 單播更新:在幀中繼環境中,若未開啟偽廣播特性,則必須使用單播特性;neighbor命令需要在鄰居和本地接口都使用,單播特性才能建立。
9.3 水平分割:在幀中繼環境中,不僅需要關閉物理水平分割,也要關閉邏輯水平分割;(config-if)#no ip split-horizon 關閉物理水平分割
(config-if)#
no ip split-horizon eigrp 90 關閉邏輯水平分割
9.4 network 0.0.0.0:宣告所有接口且永久有效;當該路由器上有一條只關聯出接口的靜態路由,可以把該路由引入EIGRP。
9.5 EIGRP支持主類宣告,也支持精確宣告後面必須加上反掩碼。
9.6 EIGRP不支持使用接口的輔助地址(secondary address)建立鄰居。
9.7 在串行鏈路中,EIGRP默認最多可以使用50%的接口帶寬來承載EIGRP發送更新(這個帶寬佔比可以使用ip bandwidth-percent eigrp來修改),這就保證了EIGRP不會在主要的網絡收斂過程中「餓死」常規的數據分組。RIP和IGRP沒有這種特性,所以大量的RIP和IGRP更新可能會影響常規的數據發送。
9.8 Stuck in Active:如果有一個鄰居在180s之內沒能發送Reply,則重置鄰接關係,並進入SIA狀態。改進後的方案,添加了SIA-Query和SIA-Reply報文。當180s倒計時到一半時,發送SIA-Query,若鄰居返回SIA-Reply表明還在幹活,將重置180s。若連續發送7次SIA-Query後,仍未收到Reply,則不再發SIA-Query,待180s到時後,重置鄰接關係。9.9 Graceful Shutdown:當路由器不再運行EIGRP或者將某網段從network通告中刪除時,將發送goodbye報文(特殊的hello),告知鄰居此網段已經不可達。