EIGRP是Cisco的私有路由協(xié)議,它綜合了距離矢量和鏈路狀態(tài)2者的優(yōu)點(diǎn),它的特點(diǎn)包括:
1.快速收斂:EIGRP使用DiffusingUpdate算法(DUAL)來(lái)實(shí)現(xiàn)快速收斂.路由器使用EIGRP來(lái)存儲(chǔ)所有到達(dá)目的地的備份路由,以便進(jìn)行快速切換.如果沒(méi)有合適的或備份路由在本地路由表中的話.路由器向它的鄰居進(jìn)行查詢(xún)來(lái)選擇一條備份路由
2.減少帶寬占用:EIGRP不作周期性的更新,它只在路由的路徑和度發(fā)生變化以后做部分更新.當(dāng)路徑信息改變以后,DUAL只發(fā)送那條路由信息改變了的更新,而不是發(fā)送整個(gè)路由表.和更新傳輸?shù)揭粋€(gè)區(qū)域內(nèi)的所有路由器上的鏈路狀態(tài)路由協(xié)議相比,DUAL只發(fā)送更新給需要該更新信息的路由器
3.支持多種網(wǎng)絡(luò)層協(xié)議:EIGRP通過(guò)使用protocol-dependentmodules(PDMs),可以支持ApplleTalk,IP和NovellNetware等協(xié)議
4.無(wú)縫連接數(shù)據(jù)鏈路層協(xié)議和拓?fù)浣Y(jié)構(gòu):EIGRP不要求對(duì)OSI參考模型的層2協(xié)議做特別是配置.不像OSPF,OSPF對(duì)不同的層2協(xié)議要做不同配置,比如以太網(wǎng)和幀中繼總之,EIGRP能夠有效的工作在LAN和WAN中,而且EIGRP保證網(wǎng)絡(luò)不會(huì)產(chǎn)生環(huán)路(loop-free);而且配置起來(lái)很簡(jiǎn)單;支持VLSM;它使用多播和單播,不使用廣播,這樣做節(jié)約了帶寬;它使用和IGRP一樣的度的算法,但是是32位長(zhǎng)的;它可以做非等價(jià)的路徑的負(fù)載平衡
EIGRPDatabases
運(yùn)行了EIGRP的路由器維持3張表:neighbortable,topologytable和routingtable.其中neighbortable保存了和路由器建立了鄰居關(guān)系的,直接相連的路由器;topologytable包含路由器學(xué)習(xí)到的到達(dá)目的地的所有路由條目,其過(guò)程如下:
1.neighbortable中的每個(gè)鄰居都轉(zhuǎn)發(fā)1份IP路由表的拷貝給它們的鄰居
2.然后每個(gè)鄰居把從它們自己的鄰居處得來(lái)的路由表存儲(chǔ)在自己的EIGRP拓?fù)鋽?shù)據(jù)庫(kù)中
3.EIGRP檢查拓?fù)鋽?shù)據(jù)庫(kù),然后選擇出一條到達(dá)目的地的最佳路由
4.EIGRP從拓?fù)鋽?shù)據(jù)庫(kù)中選擇到達(dá)目的地的最佳的successorroutes,然后把它們放到路由表里.路由器為每種協(xié)議(比如IP,IPX)各自保持1張單獨(dú)是路由表
FeasibleDistancevs.AdvertisedDistance
為了決定到達(dá)目的地的最佳路由(successor)和備份路由(feasiblesuccessor),EIGRP使用下面2個(gè)參數(shù):
1.advertiseddistance:EIGRP鄰居到達(dá)目標(biāo)網(wǎng)絡(luò)的度
2.feasibledistance:到達(dá)鄰居路由器的度加上advertiseddistance(即鄰居到達(dá)目標(biāo)網(wǎng)絡(luò)的度)
路由器比較所有的FD,然后選擇FD值最低的放進(jìn)IP路由表
顯示的是C的EIGRP拓?fù)鋽?shù)據(jù)庫(kù),里面包含了鄰居A和B的信息.A和B都知道如何到達(dá)網(wǎng)絡(luò)10.1.1.0/24.從圖中我們看見(jiàn)A到達(dá)目標(biāo)網(wǎng)絡(luò)的advertiseddistance是1000;B是1500.FD分別是2000和2500.C經(jīng)過(guò)比較,將FD值低的,這里就是A的條目,作為到達(dá)網(wǎng)絡(luò)10.1.1.0/24的最佳路徑
EIGRPMetricCalculation
EIGRP選擇一條主路由(最佳路由)和一條備份路由放在topologytable(EIGRP到目的地支持最多6條鏈路).它支持幾種路由類(lèi)型:內(nèi)部,外部(非EIGRP)和匯總路由.EIGRP使用混合度
EIGRP度的5個(gè)標(biāo)準(zhǔn)如下:
1.帶寬:10的7次方除以源和目標(biāo)之間最低的帶寬乘以256
2.延遲(delay):接口的累積延遲乘以256,單位是微秒
以上是默認(rèn)的2個(gè),下面是可選的3個(gè)標(biāo)準(zhǔn):
3.可靠性(reliability):根據(jù)keepalive而定的源和目的之間最不可靠的可靠度的值
4.負(fù)載(loading):根據(jù)包速率和接口配置帶寬而定的源和目的之間最不差的負(fù)載的值
5.最大傳輸單元(MTU):路徑中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不參與EIGRP度的運(yùn)算
EIGRP使用DUAL來(lái)決定到達(dá)目的地的最佳路由(successor).當(dāng)最佳路由出問(wèn)題的時(shí)候,EIGRP不使用holddowntimer而立即使用備份路由(feasiblesuccessor),這樣就使得EIGRP可以進(jìn)行快速收斂
看看EIGRP計(jì)算度的公式,K是常量,公式如下:
metric=[K1*bandwidth+(K2*bandwidth)/(256–load)+K3*delay]*[K5/(reliability+K4)]
默認(rèn):K1=1,K2=0,K3=1,K4=0,K5=0
這樣就得到默認(rèn)的度的簡(jiǎn)化計(jì)算公式,如下:
metric=bandwidth+delay
注意,不推薦修改K值.K值通過(guò)EIGRP的hello包運(yùn)載.如果兩個(gè)路由器的K值不匹配的話它們是不會(huì)形成鄰居關(guān)系的
EIGRPMetricsBackwardCompatibletoIGRP
EIGRP的度和IGRP的度能夠很好的進(jìn)行兼容.IGRP的度是以24位的格式,而EIGRP是32位的格式.它們之間的關(guān)系是EIGRP的度是256倍于IGRP的度.也就是說(shuō)假如IGRP的度為1000的話,換算成EIGRP的度為256000
來(lái)看一個(gè)EIGRP度的計(jì)算的例子,
注意圖上各個(gè)路由器之間的鏈路帶寬,先看看A經(jīng)過(guò)B,C到達(dá)D之間的度的計(jì)算,AB之間,BC之間為T(mén)1線路,CD之間帶寬為64kbps,計(jì)算如下:
帶寬=10,000,000/64*256=40,000,000
累積延遲=(2000+2000+2000)*256=1,536,000
所以度=帶寬+累積延遲=41,536,000
EIGRPPackets
EIGRP的5種包的類(lèi)型,如下:
1.hello包:路由器使用hello包來(lái)發(fā)現(xiàn)鄰居,采用多播的方式
2.update包:采用單播或多播的方式發(fā)送.更新發(fā)生在路由器啟動(dòng),拓?fù)浠蚨劝l(fā)生變化,和路由狀態(tài)的遷移(主動(dòng)到被動(dòng))
3.query包:當(dāng)路由器開(kāi)始進(jìn)行路由計(jì)算和沒(méi)有FD的時(shí)候,它就發(fā)送給鄰居一個(gè)可靠的查詢(xún)包來(lái)詢(xún)問(wèn)是否有到達(dá)目的地的FD.查詢(xún)包通常以多播的方式發(fā)送
4.reply包:以單播的方式發(fā)回給發(fā)出查詢(xún)包的路由起,作為應(yīng)答
5.acknowledge(ACK)包:ACK包是采用單播的hello包,包含非0的確認(rèn)數(shù)字.update包,query包和reply包均是可靠發(fā)送,所以它們都需要確認(rèn);而hello包和ACK包就不需要確認(rèn)
EIGRPHelloPackets
當(dāng)你在路由器的接口配置了EIGRP以后,路由器會(huì)周期性的以組多播的方式向外發(fā)送hello包.多播地址是224.0.0.10.當(dāng)和它在1個(gè)AS里的其他運(yùn)行了EIGRP的路由器接收到hello包以后,就會(huì)和它形成鄰居關(guān)系.不在1個(gè)AS里,而且度的計(jì)算方式不一樣(即K值不同),是不會(huì)形成鄰居關(guān)系的
EIGRPTimers
hello包在不同的介質(zhì)上發(fā)送間隔是不一樣的,如下:
1.在以下介質(zhì)中是以每5秒進(jìn)行發(fā)送:廣播型介質(zhì),比如以太網(wǎng),令牌環(huán)(TokenRing)和分布式光纖接口(FDDI);在點(diǎn)到點(diǎn)類(lèi)型的串行鏈路中比如PPP和HDLC,還有幀中繼和ATM;帶寬大于T1線路的多點(diǎn)線路,比如交換式多兆位數(shù)據(jù)服務(wù)(SMDS),幀中繼,ATM和ISDNPRI
2.在以下類(lèi)型中間隔時(shí)間是60秒:帶寬小于T1線路的多點(diǎn)線路,比如ISDNBRI,幀中繼,SMDS,ATM和X.25當(dāng)配置EIGRP的時(shí)候,EIGRP進(jìn)程動(dòng)態(tài)發(fā)現(xiàn)和它直接相連的運(yùn)行了EIGRP的路由器.每個(gè)路由器在它自己的neighbortable中都保持的有鄰居的信息,包括到達(dá)鄰居路由器的地址和接口.還保持的有holdtime.holdtime是3倍于hellotime
EIGRP在低速鏈路上發(fā)送hello包的頻率較低,因?yàn)閔ello包會(huì)占用額外的帶寬.不過(guò)可以在接口配置模式對(duì)默認(rèn)時(shí)間進(jìn)行修改,使用iphello-intervaleigrp{AS-number}{seconds}命令;修改holdtime的時(shí)間的命令也是在接口配置模式,使用iphold-timeeigrp{AS-number}{seconds}命令.當(dāng)你修改了hello包的時(shí)間間隔以后,holdtime是不會(huì)自動(dòng)修改的(之前holdtime=hellotime*3)所以要人工進(jìn)行修改
EIGRPAdjacencyEstablishmentConditions
即使兩個(gè)路由器的hellotime和holdtime相互之間不匹配,它們?nèi)匀挥锌赡艹蔀猷従?hello包包含了holdtime的信息和保持跟蹤每個(gè)EIGRP鄰居路由器的holdtime如果EIGRP路由器在holdtime超出之前沒(méi)有收到EIGRP包,路由器就會(huì)察覺(jué)拓?fù)涞淖兓?路由器刪除鄰居路由器的相關(guān)信息,包括從鄰居那里認(rèn)可的topologytable條目.假如FD可用的話,EIGRP進(jìn)程將進(jìn)行重新收斂
EIGRP不會(huì)基于次要地址(secondaryaddress)建立鄰居關(guān)系,因?yàn)镋IGRP使用接口的主地址
showipeigrpneighborsCommand
使用showipeigrpneighbors命令查看EIGRP鄰居關(guān)系
看下各個(gè)輸出的含義,如下:
1.neighboraddress:鄰居路由器的地址,如上圖可以看出p2r2有2個(gè)鄰居
2.queue(QCnt):等待發(fā)送的排隊(duì)排列的包.如果這個(gè)值持續(xù)高于0的話,說(shuō)明發(fā)生了擁塞問(wèn)題
3.SmoothRoundTripTimer(SRTT):從鄰居處發(fā)送和接收包的平均回程時(shí)間.單位是毫秒.這個(gè)通常用來(lái)決定
RTO(RetransmitTimeOut)
4.RTO:單位是毫秒.路由器在重新傳輸包之前等待ACK的時(shí)間
5.holdtime:定義了等待沒(méi)有從鄰居那里接收到任何包的最大時(shí)間.當(dāng)接受到新的包以后,holdtimer復(fù)位
6.Interface:本地到鄰居的接口
EIGRPReliability
ReliableTransportProtocol(RTP)用來(lái)保證EIGRP包發(fā)送給鄰居的可靠的傳輸.RTP支持單播和多播的混合方式.出于效率問(wèn)題的考慮,只有一些特定的EIGRP包需要可靠的傳輸.比如在擁有多播能力的多路訪問(wèn)網(wǎng)絡(luò)中,比如以太網(wǎng),就不需要單獨(dú)的發(fā)送可靠的hello包給所有鄰居.EIGRP發(fā)送1個(gè)單獨(dú)的hello包的多播,其中包含接收者不需要對(duì)這些包進(jìn)行確認(rèn)其他類(lèi)型包,比如update包就需要確認(rèn).所有運(yùn)載路由信息的包(update,reply和query)就需要可靠傳輸因?yàn)樗鼈儾皇侵芷谛缘陌l(fā)送.每個(gè)包分配的有序列號(hào)然后要求確認(rèn).這些序列號(hào)和確認(rèn)就使得這些包可以可靠的傳輸ACK包和hello包,是不需要可靠性的
EIGRPRetransmissionPolicyandTransportMechanism
RTP的重傳機(jī)制:路由器發(fā)送給鄰居可靠的包在RTO超出以后,還沒(méi)得到確認(rèn)的話,將進(jìn)行包的重傳.最大重傳次數(shù)16次,直到holdtime超出
EIGRP的傳輸使用了窗口技術(shù),并且窗口大小是1,stop-and-wait機(jī)制,即要對(duì)傳輸?shù)陌M(jìn)行一一確認(rèn).假如一個(gè)路由器A有兩個(gè)鄰居B和C,當(dāng)分別給B和C發(fā)送1個(gè)包以后,B做出了及時(shí)的應(yīng)該而C還沒(méi)有做出應(yīng)答,A就必須等待,直到C做出應(yīng)答以后才能發(fā)送下一個(gè)包,這樣帶來(lái)的影響是降低了效率.解決的辦法是對(duì)沒(méi)有得到確認(rèn)的多播包采用單播包來(lái)傳送
InitialRouteDiscoveryinEIGRP
來(lái)看看EIGRP中鄰居的發(fā)現(xiàn)和建立過(guò)程
具體過(guò)程如下:
1.路由器A啟動(dòng),然后在鏈路上發(fā)送hello包
2.路由器B接收到A發(fā)來(lái)的hello包,然后做出應(yīng)答,發(fā)回update包給A,告訴A它自己的路由表的信息.但是這個(gè)時(shí)候
鄰居關(guān)系還沒(méi)有建立直到B發(fā)回hello包給A.在B給A的update包里設(shè)置了初始位(initbit)的,說(shuō)明這是初始過(guò)程
3.當(dāng)雙方交換過(guò)hello包以后,鄰居關(guān)系建立.A發(fā)回ACK包給B確認(rèn)它已經(jīng)收到了從B而來(lái)的update包
4.A吸收update包到它自己的topologytable中去.topologytable包括了從鄰居那里得來(lái)的所有目的地信息
5.A發(fā)送update包給B
6.B收到A發(fā)來(lái)的update包后做出應(yīng)答;發(fā)回ACK包給A
整個(gè)過(guò)程完成
VerifyingEIGRPConnectivityUsingdebugCommands
debugeigrppackets:顯示執(zhí)行這條命令的路由器的接收和發(fā)送的包的類(lèi)型,如下:
RouterA#debugeigrppackets
(略)
01:38:29:EIGRP:SendingHELLOonSerial0/0
01:38:29:AS100,Flags0x0,Seq0/0idbQ0/0iidbQun/rely0/0
01:38:31:EIGRP:ReceivedHELLOonSerial0/0nbr10.1.2.2
01:38:31:AS100,Flags0x0,Seq0/0idbQ0/0iidbQun/rely0/0peerQun/rely0/0
ReceivedEIGRPUpdate
01:38:33:EIGRP:ReceivedUPDATEonSerial0/0nbr10.1.2.2
01:38:33:AS100,Flags0x0,Seq23/37idbQ0/0iidbQun/rely0/0peerQun/rely0/0
01:38:33:EIGRP:EnqueueingACKonSerial0/0nbr10.1.2.2
01:38:33:Ackseq23iidbQun/rely0/0peerQun/rely1/0
01:38:33:EIGRP:SendingACKonSerial0/0nbr10.1.2.2
(略)
如果K值不匹配的話,當(dāng)然就建立不了鄰居關(guān)系,如下:
RouterA#debugeigrppackets
(略)
01:39:13:EIGRP:ReceivedHELLOonSerial0/0nbr10.1.2.2
01:39:13:AS100,Flags0x0,Seq0/0idbQ0/0iidbQun/rely0/0peerQun/rely0/0
01:39:13:K-valuemismatch
(略)
debugipeigrp:顯示路由器發(fā)送和接收的EIGRP包的相關(guān)信息,如下:
RouterA#debugipeigrp
IP-EIGRPRouteEventsdebuggingison
01:57:23:IP-EIGRP:ProcessingincomingUPDATEpacket
01:57:23:IP-EIGRP:Int172.16.1.0/24M10639872-9999872640000
SM384000-256000128000
(略)
如上輸出,內(nèi)部路由標(biāo)的有Int字樣,FD為9999872(帶寬值)+640000(延遲)=10639872,其中FD是路由器A到達(dá)目標(biāo)網(wǎng)絡(luò)172.16.1.0/24;SM代表sourcemetric,advertiseddistance是256000+128000=384000.因?yàn)閹捴凳怯?0的7次方除以真正的帶寬得來(lái)的,而且計(jì)算EIGRP度的時(shí)候是選擇鏈路帶寬值低的那條.所以EIGRP的度為9999872(bandwidth)+640000(delay)=10639872
SelectionofaSuccessorbyDUAL
如果有相同的FD的話,路由表可以存在多個(gè)successor,默認(rèn)可以存在4個(gè).FS(feasiblesuccessor)是備份路由.要限定一個(gè)FS,下一跳的路由器的advertiseddistance必須比當(dāng)前successor路由的FD要小如果successor因故無(wú)效,而有效的FS存在的話,FS將代替successor并無(wú)需進(jìn)行重新計(jì)算.EIGRP的topologytable一次可以存在多個(gè)有效的FS;如果successor因故無(wú)效,同時(shí)又沒(méi)有有效的FS的話,EIGRP將進(jìn)行重新計(jì)算.計(jì)算過(guò)程將計(jì)算出新的一個(gè)successor
successor是下一跳的路由器到達(dá)目標(biāo)網(wǎng)絡(luò)中的最佳路由器.FD最低的成為successor.所有的路由器只選擇下一跳的路由器,然后每個(gè)路由器依靠下一跳路由器做出到達(dá)目標(biāo)網(wǎng)絡(luò)的最可靠的決定.所有的路由器依賴(lài)于successor(最佳的下一跳路由器)到達(dá)目標(biāo)網(wǎng)絡(luò)
假設(shè)路由器B把網(wǎng)絡(luò)10.1.1.0/24宣告給它的鄰居路由器C,B到網(wǎng)絡(luò)10.1.1.0/24的耗費(fèi)為1000,C把這個(gè)值作為從B那里得到的advertiseddistance.C再加上它自己到達(dá)B的耗費(fèi)(1000)得到通過(guò)B到達(dá)目標(biāo)網(wǎng)絡(luò)的FD(即1000+1000=2000)
D宣告網(wǎng)絡(luò)10.1.1.0/24給C.如圖,D到達(dá)網(wǎng)絡(luò)10.1.1.0/24的耗費(fèi)是1500,C從D那里得到這個(gè)作為advertiseddistance,然后加上它自己到達(dá)D的耗費(fèi)(1000)得到FD為2500.路由器C比較所有的FD,選擇值低的那個(gè)作為最佳路由,即選擇通過(guò)B到達(dá)目標(biāo)網(wǎng)絡(luò).所以路由器B作為C到達(dá)目標(biāo)網(wǎng)絡(luò)的successor
EIGRPFeasibleSuccessor
FS,是作為successor的備份,FS路由存儲(chǔ)在topologytable中,一張topologytable可以保持多個(gè)FS.FS的選舉是經(jīng)過(guò)比較非successor的AD,而且AD要比FD小,才能被認(rèn)可為FS.這個(gè)比較的過(guò)程,可以寫(xiě)成下面的數(shù)學(xué)方程式:
ADofsecondbestroute<FDofbestroute(successor)=FS
注意這里的AD不是管理距離而是advertiseddistance
如下是沒(méi)有FS的一個(gè)公式:
ADofsecondbestroute≥FDofbestroute(successor)≠FS
ConfiguringEIGRP
配置EIGRP的具體步驟,如下:
1.在全局配置模式下使用routereigrp[[ASnumber]命令啟用EIGRP,在一個(gè)AS內(nèi),所有要配置EIGRP的路由器必須擁有相同的AS號(hào)
2.定義EIGRP網(wǎng)絡(luò)號(hào)使用network[network-number][wildcard-mask]命令,可以使用wildcardmask來(lái)定義特殊的IP地址,子網(wǎng)或網(wǎng)絡(luò)
3.如果你使用了串行連接,還得定義鏈路帶寬.如果你不定義帶寬,EIGRP默認(rèn)認(rèn)為帶寬為T(mén)1線路的帶寬大小,即1.544Mbps.如果實(shí)際的鏈路帶寬比這個(gè)低的話,路由器將不能收斂,或者路由update包會(huì)丟失.使用bandwidth[Kb]命令定義帶寬.這個(gè)帶寬對(duì)于點(diǎn)對(duì)點(diǎn)的幀中繼網(wǎng)絡(luò)中,定義的帶寬是CIR;而對(duì)于其他的普通串行線路,定義的就是實(shí)際帶寬
所有的路由器都在AS109里,路由器A沒(méi)有使用wildcardmask.如果A使用了以下的配置:
RouterA(config)#routereigrp109
RouterA(config-router)#netw10.1.0.0
RouterA(config-router)#netw10.4.0.0
RouterA(config-router)#netw172.16.1.0
RouterA(config-router)#netw172.16.2.0
路由器A將對(duì)網(wǎng)絡(luò)進(jìn)行自動(dòng)匯總,使得配置看上去像是這樣的,如下:
RouterA(config)#routereigrp109
RouterA(config-router)#netw10.0.0.0
RouterA(config-router)#netw172.16.0.0
如果路由器A的配置命令是如下這樣的:
RouterA(config)#routereigrp109
RouterA(config-router)#netw10.1.0.00.0.255.255
RouterA(config-router)#netw10.4.0.00.0.255.255
RouterA(config-router)#netw172.16.1.00.0.0.255
RouterA(config-router)#netw172.16.2.00.0.0.255
使用wildcardmask來(lái)定義參與AS109的EIGRP進(jìn)程的直接相連的路由器接口.在上面這個(gè)例子里,定義的就是處于10.1.0.0/16,10.4.0.0/16,172.16.1.0/24和172.16.2.0/24里的所有接口都會(huì)參與AS109里的EIGRP進(jìn)程看看在EIGRP中使用wildcardmask的例子,路由器C并沒(méi)有使用network172.16.0.00.0.0.255,而使用的是network172.16.3.00.0.0.255和network172.16.4.00.0.0.255,因?yàn)镃的S0口連接的是外部網(wǎng)絡(luò),即S0口沒(méi)有運(yùn)行EIGRP.如果在S0口運(yùn)行了EIGRP的話,將會(huì)給外部發(fā)送不必要的信息造成帶寬的浪費(fèi)和CPU的負(fù)擔(dān)
ConfiguringDefaultRouteUsingthedefault-networkCommand
當(dāng)配置EIGRP的時(shí)候,可以使用ipdefault-network[network-number]命令創(chuàng)建默認(rèn)路由
路由器A連接外部網(wǎng)絡(luò)172.31.0.0/16,A使用了ipdefault-network172.31.0.0命令配置了一條默認(rèn)路由;然后A把它宣告給B,B把也它標(biāo)記成默認(rèn)路由.注意[network-number]參數(shù)是基于類(lèi)的網(wǎng)絡(luò)號(hào)
VerifyingEIGRPUsingshowCommands
使用showiproute命令查看路由表的內(nèi)容,如下:
RouterA#showiproute
Codes:C-connected,S-static,I-IGRP,R-RIP,D-EIGRP,EX-EIGRPexternal,O-OSPF,
(略)
Gatewayoflastresortisnotset
172.16.0.0/24issubnetted,1subnets
D172.16.1.0[90/10639872]via10.1.2.2,06:04:01,Serial0/010.0.0.0/24issubnetted,4subnets
D10.1.3.0[90/10514432]via10.1.2.2,05:54:47,Serial0/0
D10.3.1.0[90/10639872]via10.1.2.2,06:19:41,Serial0/0
C10.1.2.0isdirectlyconnected,Serial0/0
C10.1.1.0isdirectlyconnected,Ethernet0/0
注意D代表是從EIGRP學(xué)來(lái)的,*代表默認(rèn)路由
使用showipprotocols命令可以檢查默認(rèn)的EIGRP設(shè)置,如下:
RouterA#showipprotocols
RoutingProtocolis"eigrp100"
Outgoingupdatefilterlistforallinterfacesisnotset
Incomingupdatefilterlistforallinterfacesisnotset
Defaultnetworksflaggedinoutgoingupdates
Defaultnetworksacceptedfromincomingupdates
EIGRPmetricweightK1=1,K2=0,K3=1,K4=0,K5=0
EIGRPmaximumhopcount100
EIGRPmaximummetricvariance1
Redistributing:eigrp100
Automaticnetworksummarizationisnotineffect
Maximumpath:4
RoutingforNetworks:
10.1.0.0/16
10.0.0.0
RoutingInformationSources:
GatewayDistanceLastUpdate
10.1.2.29005:50:13
Distance:internal90external170
(略)
使用showupeigrptopology命令來(lái)驗(yàn)證EIGRP操作,如下:
RouterA#showipeigrptopology
IP-EIGRPTopologyTableforAS(100)/ID(10.1.2.1)
Codes:P-Passive,A-Active,U-Update,Q-Query,R-Reply,r-replyStatus,s-siaStatus
P10.1.3.0/24,1successors,FDis10514432
via10.1.2.2(10514432/28160),Serial0/0
P10.3.1.0/24,1successors,FDis10639872
via10.1.2.2(10639872/384000),Serial0/0
P10.1.2.0/24,1successors,FDis10511872
viaConnected,Serial0/0
P10.1.1.0/24,1successors,FDis2190
viaConnected,Ethernet0/0
P172.16.1.0/24,1successors,FDis10639872
via10.1.2.2(10639872/384000),Serial0/0
(略)
注意前面的字母P,可能出現(xiàn)的字母代號(hào)有如下幾種:
1.P:代表passive,這個(gè)表示穩(wěn)定網(wǎng)絡(luò)中的穩(wěn)定狀態(tài)
2.A:代表active,當(dāng)前網(wǎng)絡(luò)不可用,正處于發(fā)送查詢(xún)狀態(tài)
3.U:代表update,網(wǎng)絡(luò)處于等待update包的確認(rèn)狀態(tài)
4.Q:代表query,網(wǎng)絡(luò)處于等待query包的確認(rèn)的狀態(tài)
5.stuck-in-active(SIA):持續(xù)處于active狀態(tài),說(shuō)明EIGRP網(wǎng)絡(luò)的收斂發(fā)生了問(wèn)題
EIGRPRouteSummarization:Manual
路由匯總的目的是為了減少路由表的條目,減少或update包,邊界查詢(xún)
使用人工匯總的特點(diǎn)如下:
1.可以基于接口的配置匯總
2.當(dāng)在接口做了人工匯總以后,路由器將創(chuàng)建一條指向null0口的路由,這樣做是為了防止路由循環(huán)
3.當(dāng)匯總之前的路由down掉以后,匯總路由將自動(dòng)從路由表里被刪除
4.匯總路由的度取決于特定路由中度最小的來(lái)做為自己的度
ConfigurationRouteSummarization
noauto-summary:關(guān)閉自動(dòng)匯總的命令,在全局配置莫模式下使用ipsummary-addresseigrp[as-number][address][mask]:關(guān)閉了自動(dòng)匯總以后,人工在接口模式下創(chuàng)建匯總地址
、路由器A和B關(guān)閉了自動(dòng)匯總,因?yàn)槿绻魂P(guān)閉自動(dòng)匯總的話,匯總路由172.16.0.0/16將傳給網(wǎng)絡(luò)10.0.0.0,這樣網(wǎng)絡(luò)10.0.0.0就不能知道路由器A和B的具體位置.路由器C創(chuàng)建人工匯總,在S0口將172.16.1.0和172.16.2.0宣告成單獨(dú)的一條條目172.16.0.0.
創(chuàng)建人工匯總的過(guò)程,如下:
1.選擇傳播匯總路由的接口
2.定義匯總地址,EIGRP路由協(xié)議以及AS號(hào)
UnderstandingEIGRPLoadBalancing
負(fù)載均衡是指在網(wǎng)絡(luò)的多個(gè)出口上分發(fā)數(shù)據(jù)流量到目的地,負(fù)載均衡增加了網(wǎng)段的使用,也增加了網(wǎng)絡(luò)的帶寬.對(duì)于IP,CiscoIOS默認(rèn)支持4條等價(jià)鏈路的負(fù)載均衡,最大支持6條
EIGRP支持不等價(jià)鏈路的負(fù)載均衡,使用variance命令,跟上一個(gè)乘數(shù),默認(rèn)是1(即代表等價(jià)的鏈路的均衡負(fù)載),值的范圍是1到128.這個(gè)乘數(shù)代表了可以接受的不等代價(jià)鏈路的度的倍數(shù),在這個(gè)范圍內(nèi)的鏈路都將被接受,作為負(fù)載均衡.使用了variance2,即乘數(shù)是2,路由器E選擇經(jīng)過(guò)C來(lái)到達(dá)網(wǎng)絡(luò)Z,因?yàn)镕D是20.FD從上到下分別是30,20和45.因?yàn)槌藬?shù)是2,E還將選擇經(jīng)過(guò)B到達(dá)網(wǎng)絡(luò)Z,因?yàn)锽的FD是30,小于2倍C的FD即40;而D的FD是45,大于2倍C的FD,所以E將不會(huì)經(jīng)過(guò)D到達(dá)網(wǎng)絡(luò)Z(關(guān)系是必須小于,不能等于或大于)
EIGRPBandwidthUtilization
EIGRP支持不同的WAN鏈路,比如point-to-point鏈路,NBMA網(wǎng)絡(luò)中的point-to-point鏈路和point-to-multipoint鏈路.因?yàn)樵赪AN鏈路中帶寬比較低,所以為了防止EIGRP占用太多的網(wǎng)絡(luò)帶寬,.默認(rèn)情況下,最多允許EIGRP占用WAN鏈路帶寬的50%.這個(gè)默認(rèn)的百分比可以通過(guò)在接口配置模式下使用ipbandwidth-percenteigrp[AS-number][pencentage].百分比可以超過(guò)100(注意沒(méi)有%符號(hào))
一般的,CiscoIOS軟件認(rèn)為點(diǎn)到點(diǎn)的幀中繼子接口帶寬為T(mén)1線路帶寬(1.544Mbps),但是假如在一個(gè)幀中繼環(huán)境中CIR只有56K,按默認(rèn)占用50%的帶寬來(lái)算,這樣就會(huì)占用768Kbps.所以要在接口配置模式下使用bandwidth[BW](單位是Kbps)來(lái)給接口分配實(shí)際帶寬
對(duì)多點(diǎn)鏈路比如幀中繼網(wǎng)絡(luò),ISDNPRI和SMDS的配置比較麻煩.當(dāng)你配置多點(diǎn)鏈路的接口的時(shí)候,把帶寬配置成最小的CIR和VC之積
注意這個(gè)星形環(huán)境,有10條VC(圖中只顯示4條),每條VC的帶寬都是56Kbps,使用的是點(diǎn)到點(diǎn)環(huán)境,所以在C上,劃分10個(gè)子接口,分別指定接口帶寬為56Kbps
配置的辦法是把CIR最低的作為點(diǎn)到點(diǎn)鏈路,定義帶寬BW=CIR;把帶寬較高的作為多點(diǎn)環(huán)境,BW=CIR之和.上述例子就是把3條帶寬較高的劃分為一條多點(diǎn)鏈路的接口,指定帶寬為768Kbps(256Kbps*3);帶寬最低的那條(56Kbps)作為點(diǎn)到點(diǎn)環(huán)境,單獨(dú)劃分一個(gè)點(diǎn)到點(diǎn)的接口,并且指定帶寬為它實(shí)際的CIR即56Kbps
HowEIGRPRespondstoaQuery
作為一種高級(jí)距離向量協(xié)議,EIGRP來(lái)依靠鄰居提供路由信息,如果路由出了問(wèn)題,即進(jìn)入active狀態(tài),而且又沒(méi)有可用的FS的時(shí)候,EIGRP就要求快速的收斂.然后EIGRP路由器向鄰居發(fā)送查詢(xún)(query),尋找一條可以替代那條出了問(wèn)題的路由.查詢(xún)被發(fā)送給所有的鄰居路由器,除了到達(dá)successor的那個(gè)接口.如果被查詢(xún)的路由器知道一條替代路由的話,它就把這條替代路由放進(jìn)應(yīng)答(reply)包中發(fā)送給發(fā)出查詢(xún)的源路由器;如果接收到查詢(xún)的路由器沒(méi)有替代路由的信息,它將繼續(xù)發(fā)送給它自己的其他鄰居,直到找到可以替代的路由為止
EIGRPQueryProcessSIA
EIGRP使用可靠的多播來(lái)尋找替代路由.路由器必須得到收到查詢(xún)的所有路由器的應(yīng)答才能重新進(jìn)行計(jì)算successor的信息,如果有一個(gè)路由器的應(yīng)該還沒(méi)有收到的話,發(fā)出查詢(xún)的源路由器就必須等待.默認(rèn)如果在3分鐘內(nèi)某些路由器沒(méi)有對(duì)應(yīng)答做出響應(yīng)的話,這條路由就進(jìn)入stuckinactive(SIA)狀態(tài)(即始終處于active狀態(tài)).然后路由器將重新設(shè)定和這個(gè)沒(méi)有做出應(yīng)答的路由器的鄰居關(guān)系.為了避免SIA情形的發(fā)生,解決方案是限制查詢(xún)的范圍
ScalabilityIssuesandSolutions
影響EIGRP網(wǎng)絡(luò)可擴(kuò)展性的因素,如下:
1.鄰居之間信息交換量
2.路由器的數(shù)量
3.拓?fù)浣Y(jié)構(gòu)的深度
4.替代路徑的數(shù)量
所以EIGRP在大型網(wǎng)絡(luò)中不能夠即插即用(Plug-and-Play),而且查詢(xún)的代價(jià)可能會(huì)比較高
LimitingtheEIGRPQueryRangewithSummarization
為了使得EIGRP能夠具有更好的可擴(kuò)展性,可以使用下面兩種選項(xiàng):
1.通過(guò)在路由器的outbound接口使用ipsummary-addresseigrp命令配置路由匯總
2.把遠(yuǎn)程路由器做為stubEIGRP路由器
路由匯總可以減小查詢(xún)的范圍;把遠(yuǎn)程路由器作做為stubEIGRP路由器使得這些遠(yuǎn)程路由器被查詢(xún).還有其他的一些限制查詢(xún)范圍的方法諸如路由過(guò)濾(routefiltering)或接口包過(guò)濾(interfacepacketfiltering)
如圖,路由器B發(fā)送匯總路由172.30.0.0/16給路由器A.假如網(wǎng)絡(luò)172.30.1.0/24突然down掉以后,C向B查詢(xún)網(wǎng)絡(luò)172.30.1.0/24,B又向A查詢(xún).由于A收到的是匯總路由,于是A直接對(duì)查詢(xún)做出網(wǎng)絡(luò)172.30.1.0/24不可達(dá)的應(yīng)答,然后不再將查詢(xún)繼續(xù)傳遞下去
查詢(xún)范圍不是產(chǎn)生SIA現(xiàn)象的唯一原因,還有諸如以下原因可能會(huì)產(chǎn)生SIA的發(fā)生:
1.路由器對(duì)查詢(xún)的應(yīng)答過(guò)于繁忙比如路由器CPU資源占用過(guò)高;還有內(nèi)存不足,不足以分配處理查詢(xún)包或者建立應(yīng)答包
2.路由器之間的鏈路狀態(tài)不穩(wěn)定,因此可能產(chǎn)生丟包現(xiàn)象.路由器足夠多的包來(lái)維持鄰居關(guān)系,但是卻沒(méi)有收到全部的查詢(xún)包或應(yīng)答包
3.單向鏈路(unidirectionallink),即網(wǎng)絡(luò)流量只朝一個(gè)方向傳輸?shù)墓收贤ㄟ^(guò)使用路由匯總,可以使得路由表最小化,這樣就使得路由器的CPU資源和帶寬盡可能的減少,而且減少了SIA情況的發(fā)生
使用路由匯總是減少收斂時(shí)間的一個(gè)比較好的辦法,遠(yuǎn)程路由器以網(wǎng)絡(luò)不可達(dá)的信息做為應(yīng)答并且如果路由表內(nèi)沒(méi)有精確匹配的條目的話將不再把查詢(xún)延伸傳播下去
通過(guò)在B的兩邊劃分不同的AS,當(dāng)網(wǎng)絡(luò)X消失以后,C發(fā)送查詢(xún)給B,B做出網(wǎng)絡(luò)不可達(dá)的應(yīng)答.在AS1中查詢(xún)不會(huì)繼續(xù)
傳播下去,查詢(xún)終止.但是在AS2,B將產(chǎn)生一個(gè)新的查詢(xún),發(fā)送給A.注意這和在同一個(gè)AS內(nèi)做出查詢(xún)不一樣.所以說(shuō)通過(guò)劃分不同的AS來(lái)限制查詢(xún)的范圍并不是一個(gè)有效的解決方案
LimitingtheEIGRPQueryRangeUsingthestubOption
還有種限制EIGRP查詢(xún)比較有效的方法就是配置stub選項(xiàng).在做這項(xiàng)配置的時(shí)候,只有遠(yuǎn)程路由器要配置成stub路由器.使用EIGRPstub路由特性增加了網(wǎng)絡(luò)的穩(wěn)定性,減少了網(wǎng)絡(luò)資源的占用,簡(jiǎn)化了stubrouter的配置EIGRPstub功能最早是出現(xiàn)在CiscoIOSRelease12.0(7)T上.星形拓?fù)?hub-and-spoke)結(jié)構(gòu)的網(wǎng)絡(luò)常使用stub路由,在這樣的拓?fù)浣Y(jié)構(gòu)里,遠(yuǎn)程路由器不會(huì)轉(zhuǎn)發(fā)所有的數(shù)據(jù)給中心(hub)路由器,遠(yuǎn)程路由器也不會(huì)保持完整網(wǎng)絡(luò)的路由表.一般的,中心路由器只需要發(fā)送一條默認(rèn)路由給遠(yuǎn)程路由器.當(dāng)?shù)竭_(dá)某個(gè)網(wǎng)絡(luò)的路由丟失以后,路由器不會(huì)向stub路由器做出路由查詢(xún)
EIGRPstub配置命令的具體格式是在路由配置模式下,輸入如下命令:
Router(config-router)#eigrpstub[receive-only|connected|static|summary]
一些參數(shù)的含義如下:
receive-only:不能和其他3個(gè)參數(shù)(connected,static和summary)一起使用.只接收從鄰居路由器發(fā)送來(lái)的信息
connected:指定該路由器可以把和它直接相連的網(wǎng)絡(luò)信息傳遞給它的鄰居.這個(gè)選項(xiàng)默認(rèn)是開(kāi)啟的
static:把靜態(tài)路由信息傳遞給它的鄰居
summary:把匯總路由信息傳遞給它的鄰居.這個(gè)選項(xiàng)默認(rèn)也是開(kāi)啟的
由于connected和summary選項(xiàng)默認(rèn)是開(kāi)啟的,配置stub路由器并發(fā)送直連網(wǎng)絡(luò)和匯總路由信息就可以這樣寫(xiě),如下:
Router(config)#routereigrp1
Router(config-router)#netw10.0.0.0
Router(config-router)#eigrpstub
但是假如你使用了receive-only選項(xiàng)的話,其他3個(gè)選項(xiàng)的信息就不會(huì)被發(fā)送,如下:
Router(config)#routereigrp1
Router(config-router)#netw10.0.0.0
Router(config-router)#eigrpstubrecive-only
ScalabilityRulesforImplementingEIGRP
以前曾經(jīng)提到過(guò),不太合理的IP地址規(guī)劃限制了路由匯總.這樣會(huì)增加網(wǎng)絡(luò)的收斂時(shí)間;相反,合理的地址規(guī)劃能使得路由匯總工作的更好,加快了網(wǎng)絡(luò)收斂時(shí)間


