天天看點

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-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

繼續閱讀