1. 程式人生 > >EIGRP拓撲,路由以及匯聚

EIGRP拓撲,路由以及匯聚

eigrp 拓撲 匯聚


實驗目的

通過對EIGRP拓撲,路由以及匯聚相關實驗的練習,掌握EIGRP建立拓撲信息的方式,
度量計算方法,如何調整度量,非等價負載均衡,以及EIGRP末節路由器。

實驗拓撲

技術分享圖片
1.實驗步驟
2.首先在R1,R2,R3上配置好各自的相關接口,並保持連通性。並且分別在R1,

R2和R3路由器上起環回口,相應的地址為X.X.X.X/24,與上個實驗一致。
3.配置好R1,R2,R3的EIGRP 100進程,使得R1和R2正常建立鄰居,R2和R3正常建立鄰居。

4.在R2上查看路由表:

技術分享圖片

技術分享圖片
觀察1.1.1.0的路由條目。其下一跳為10.10.12.1,即R1;管理距離為90,由於為EIGRP內部路由;度量值為409600。


再查看R2上關於1.1.1.0/24的拓撲信息。

技術分享圖片

技術分享圖片


可以發現R2得知的該條拓撲信息中包含了前綴1.1.1.0,前綴長度24,以及後繼者10.10.12.1,以及度量。

其中度量包括最小帶寬10000 Kbit
總計延遲為6000微秒
可靠性為255
負載為1
最小MTU為1500

在EIGRP進程開啟後,EIGRP將加入進程的接口信息裝載進入UPDATE數據包中發給相應的鄰居,其中UPDATE數據包中就包含了上述信息。
當每一臺EIGRP路由器都更新完成後,各自便根據獲得的拓撲信息進行計算,最後得到通告距離(RD)和可行性距離(FD)。
只要滿足FD>RD,則該路由標記為可用,選出最優一條。

EIGRP可以使用帶寬,延遲,負載,可靠性和MTU進行計算度量。所使用的因素由K值所決定。但默認情況下只使用帶寬和延遲兩項進行計算,即K1=K3=1,其余K值為0。


技術分享圖片

技術分享圖片
因此對於1.1.1.0/24的度量計算應該為:
(1000000/10000+6000/10)*256=409600
並且該度量大於RD=128256,因此成為FD。
5.通過上面的分析,我們可以總結出調整EIGRP度量的辦法:
a) 調整接口帶寬
b) 調整接口延遲
c) 調整K值
d) 利用偏移列表(offset-list)

R1(config)#int lo0
R1(config-if)#bandwidth 1000
調整R1的環回口帶寬為1000Kbit,註意,帶寬為整條鏈路上的最小帶寬,並且為入接口帶寬。

R1(config)#int lo0
R1(config-if)#delay 1
調整R1的環回口延遲為10微秒,註意此處的單位。延遲為整條鏈路延遲之和,並且為入接口延遲。


R2(config)#router eigrp 100
R2(config-router)#metric weights ?
<0-8> Type Of Service (Only TOS 0 supported)

R2(config-router)#metric weights 0 ?
<0-255> K1

R2(config-router)#metric weights 0 1 ?
<0-255> K2

R2(config-router)#metric weights 0 1 0 ?
<0-255> K3

R2(config-router)#metric weights 0 1 0 1 ?
<0-255> K4

R2(config-router)#metric weights 0 1 0 1 0 ?
<0-255> K5

R2(config-router)#metric weights 0 1 0 1 0 0 ?
<cr>

R2(config-router)#metric weights 0 1 0 1 0 0

對R2的K值進行調整。第一個數值為TOS字段,永遠為1。後面五個數字分別是K1到K5。如果調整K值,需要保持鄰居之間K值一致,否則將會無法建立鄰居。
偏移列表可以對某一條特殊路由進行度量調整。
在R2上對來自R1的1.1.1.1/24的度量加1,使用偏移列表完成。
R2(config)#access-list 1 permit 1.1.1.0 0.0.0.255
R2(config)#router eigrp 100
R2(config-router)#offset-list ? //調用ACL 1
<0-99> Access list of networks to apply offset (0 selects all networks)
<1300-1999> Access list of networks to apply offset (expanded range)
WORD Access-list name

R2(config-router)#offset-list 1 ?
in Perform offset on incoming updates
out Perform offset on outgoing updates

R2(config-router)#offset-list 1 in ? //偏移值
<0-2147483647> Offset

R2(config-router)#offset-list 1 in 1 ?
Async Async interface
BVI Bridge-Group Virtual Interface
CDMA-Ix CDMA Ix interface
Ctunnel Ctunnel interface
Dialer Dialer interface
Ethernet IEEE 802.3
Lex Lex interface
Loopback Loopback interface
MFR Multilink Frame Relay bundle interface
Multilink Multilink-group interface
Null Null interface
Port-channel Ethernet Channel of interfaces
Tunnel Tunnel interface
Vif PGM Multicast Host interface
Virtual-PPP Virtual PPP interface
Virtual-Template Virtual Template interface
Virtual-TokenRing Virtual TokenRing
<cr>

R2(config-router)#offset-list 1 in 1 e0/1 ?
<cr>

R2(config-router)#offset-list 1 in 1 e0/1
R2(config-router)#end
之後鄰居會發生一次抖動。
*Mar 1 02:20:51.287: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 10.10.12.1

(Ethernet0/1) is resync: route configuration changed
再次查看關於來自R1的1.1.1.0/24的路由度量為:

技術分享圖片

技術分享圖片


可以看到其度量值增加了1。(註意,上述實驗並沒有更改R1環回口的帶寬和度量,只是列舉出了命令)

6.現在R1和R2之間增加一條串行鏈路。並且配置地址為10.10.21.X/24。
技術分享圖片


配置好相應的接口IP地址,以及將接口加入EIGRP進程中。
查看R2上的鄰居狀態,發現在以太網口和串行口上和R1建立了兩個EIGRP鄰居關系。
技術分享圖片


然後查看R2的路由表
技術分享圖片

技術分享圖片

去往1.1.1.0/24的數據包走以太網接口。

查看R2上的拓撲信息表。

技術分享圖片

技術分享圖片


可以發現,到1.1.1.0/24的路由存在兩條路由,但是由於走以太網接口的最終距離小於走串行口的距離,因此以太網接口被選擇成為後繼者,而串行口被選擇成為可行性後繼者。
成為可行性後繼者的條件是RD<FD,如果違反這個條件,那麽可能的路由不會出現在上述拓撲表中。可以在show ip eigrp topology後添加all-link選項顯示。

EIGRP支持非等價負載均衡,只要滿足兩個條件:
a)備用路由能夠成為可行性後繼路由(RD<FD)
b)備用路由度量小於FD*variance(variance默認為1)

要使得R2到1.1.1.0/24負載,則現在只要滿足備用路由度量小於FD*variance即可。那麽可以算出變量因子的最小值為6。(409600*6>2297856)

調整R2的variance值為6。
R2(config)#router eigrp 100
R2(config-router)#variance 6 //調整變量因子為6,必須為整數。

再次查看R2的路由表。

技術分享圖片

技術分享圖片
可以發現R2去往1.1.1.0/24的路由負載均衡了。

7.默認情況下,如果EIGRP丟失了去往某前綴的路由,那麽EIGRP將會查找是否存在可行性後繼者,如果有,則直接使用;如果沒有,那麽EIGRP將把該路由條目標記為活動(Active)狀態,然後產生Query數據包發給所有的活動鄰居詢問該路由情況。鄰居檢查自己的拓撲信息表,如果沒有,再次將該查詢蔓延給其余鄰居。最終無人可查時,將會利用Reply數據包回復查詢。因此,EIGRP為了加快匯聚,通常會將一些路由器配置成為末節路由器。
因為EIGRP不會將查詢發送給末節路由器。
R2(config)#router eigrp 100
R2(config-router)#eigrp stub ?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
receive-only Set IP-EIGRP as receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes
<cr>

上述命令可以將R2配置成為末節路由器。
Connected表示該路由器只通告network包含的直連網絡信息
Receive-only表示該路由器不通告任何信息
Redistributed表示該路由器只通告重分布進入的路由條目
Static表示該路由器只通告重分布進入的靜態路由
Summary表示該路由器只通告手工或者自動匯總的路由默認為connected和summary選項。

一旦R2配置了末節路由器,那麽當R1丟失掉1.1.1.0/24路由時,便不會發送查詢給R2。
R1#debug eigrp packets query
EIGRP Packets debugging is on
(QUERY)
R1#config t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int lo0
R1(config-if)#sh
R1(config-if)#
*Mar 1 00:29:23.655: EIGRP: Received QUERY on Ethernet0/0 nbr 10.10.12.2
*Mar 1 00:29:23.655: AS 100, Flags 0x0, Seq 19/0 idbQ 0/0 iidbQ un/rely 0/0
peerQ un/rely 0/0
*Mar 1 00:29:23.659: EIGRP: Received QUERY on Serial1/0 nbr 10.10.21.2
*Mar 1 00:29:23.659: AS 100, Flags 0x0, Seq 18/14 idbQ 0/0 iidbQ un/rely 0/0
peerQ un/rely 0/0
R1(config-if)#
*Mar 1 00:29:25.451: %LINK-5-CHANGED: Interface Loopback0, changed state to
administratively down
*Mar 1 00:29:26.451: %LINEPROTO-5-UPDOWN: Line protocol on Interface


Loopback0, changed state to down
R1(config-if)#
可以看出,如果手工down掉loopback 0,R1並沒有發送Query數據包給R2,只
是收到了R2關於1.1.1.0/24路由的查詢。



吳迪

2017.12.12


EIGRP拓撲,路由以及匯聚