實驗目的
通過對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-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)#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
R2(config-router)#offset-list 1 in 1 e0/1 ?
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)#variance 6 //調整變量因子為6,必須為整數。
再次檢視R2的路由表。
可以發現R2去往1.1.1.0/24的路由負載均衡了。
7.預設情況下,如果EIGRP丢失了去往某字首的路由,那麼EIGRP将會查找是否存在可行性後繼者,如果有,則直接使用;如果沒有,那麼EIGRP将把該路由條目标記為活動(Active)狀态,然後産生Query資料包發給所有的活動鄰居詢問該路由情況。鄰居檢查自己的拓撲資訊表,如果沒有,再次将該查詢蔓延給其餘鄰居。最終無人可查時,将會利用Reply資料包回複查詢。是以,EIGRP為了加快彙聚,通常會将一些路由器配置成為末節路由器。
因為EIGRP不會将查詢發送給末節路由器。
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
上述指令可以将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-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
*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
可以看出,如果手工down掉loopback 0,R1并沒有發送Query資料包給R2,隻
是收到了R2關于1.1.1.0/24路由的查詢。
吳迪
2017.12.12