<a href="http://linuxtro.blog.51cto.com/attachment/201009/6/1239505_12837501670MZs.jpg"></a>
DUAL(擴散更新算法)的幾個術語
FD(可行距離):達到一個目的網路的最小路徑成本;
RD(通告距離): 或稱AD(報告距離)鄰居路由器所通告的他自己達到目的網絡的最小路徑成本;
FC(可行性條件):是EGIRP路由器更新路由表和拓撲表的依據,可行性條件可以有效阻止路由環路,實作路由的快速收斂,可行性條件的公式:AD<FD ;
後繼路由器:指用于轉發資料包的一台相鄰路由器,該路由器是通向目的網路開銷最低的路由。後繼路由器的IP位址顯示在路由條目中,緊随單詞via;
FS(可行後繼路由器):是指一個鄰居,他有一條通向後繼路由器所連通的同一個目的網路的無環備份路徑,并且滿足可行性條件。
R4#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(4.4.4.4)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 2.2.2.0/24, 1 successors, FD is 2300416
via 192.168.41.8 (2300416/2297856), FastEthernet0/0
via 192.168.34.5 (2809856/2297856), Serial1/2
P 4.4.4.0/24, 1 successors, FD is 128256
via Connected, Loopback0
從上面的輸出可以看到,走Serial1/2的AD是2297856,而最優路由(走FastEthernet0/0)的FD是2300416,
AD&lt;FD,滿足可行性條件,是以第二條路徑(Serial1/2)是後繼路由(FastEthernet0/0)的可行後繼路由。
P代表該路由器處于被動狀态,當DUAL未執行擴算更新算法來确定通向一個網絡的路徑時,該路由器将處于穩定模式,即被動狀态,如果DUAL在重新計算或搜尋新路徑時,該路徑将處于主動狀态。對于穩定的路由器來說,該拓撲表中所有的路由都應該處于被動狀态。如果該路由”陷入主動狀态“,DUAL将顯示一個A字元。
2.2.2.0/24 是目的網絡,可以在路由表中看到;
1 successors 顯示通向目的網絡的後繼路由器的數量;
FD is 2300416 這是可行距離,即通向目的網絡的EIGRP度量;
第一個條目顯示的是後繼路由器:
via 192.168.41.8 這是後繼路由器(R1)的下一跳位址,在路由表中可以看到;
2300416 這是通向2.2.2.0/24的可行距離,是路由表中顯示的路徑成本;
2297856 這是後繼路由器通向此網絡的報告距離,即R1的開銷;
FastEthernet0/0 這是通向目的網絡的出站接口,在路由表中顯示;
第二個條目顯示的可行後繼路由器。
<b>實驗一、後繼路由器當機,可行性後繼路由器變為後繼路由器</b>
先在R4上debug路由更新算法
R4#debug eigrp fsm
EIGRP FSM Events/Actions debugging is on
然後在R1上shutdown FastEthernet0/0接口。
R1(config)#interface fastEthernet 0/0
R1(config-if)#shutdown
R1(config-if)#
*Mar 1 01:02:55.447: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.41.7 (FastEthernet0/0) is down: interface downd
R1#
*Mar 1 01:02:57.423: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 1 01:02:57.451: %SYS-5-CONFIG_I: Configured from console by console
*Mar 1 01:02:58.423: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
然後再切換到R4路由器上:
R4#
*Mar 1 01:02:57.347: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.41.8 (FastEthernet0/0) is down: holding time expired
*Mar 1 01:02:57.347: DUAL: linkdown: start - 192.168.41.8 via FastEthernet0/0
*Mar 1 01:02:57.351: DUAL: Destination 2.2.2.0/24
*Mar 1 01:02:57.351: DUAL: Find FS for dest 2.2.2.0/24. FD is 2300416, RD is 2323456
*Mar 1 01:02:57.351: DUAL: 192.168.41.8 metric 4294967295/4294967295
*Mar 1 01:02:57.351: DUAL: 192.168.34.5 metric 2809856/2297856 found Dmin is 2809856
*Mar 1 01:02:57.355: DUAL: Removing dest 2.2.2.0/24, nexthop 192.168.41.8, infosource 192.168.41.8
*Mar 1 01:02:57.359: DUAL: RT installed 2.2.2.0/24 via 192.168.34.5
*Mar 1 01:02:57.359: DUAL: Send update about 2.2.2.0/24. Reason: metric chg
*Mar 1 01:02:57.359: DUAL: Send update about 2.2.2.0/24. Reason: new if
*Mar 1 01:02:57.359: DUAL: Destination 4.4.4.0/24
*Mar 1 01:02:57.363: DUAL: Destination 192.168.41.0/24
*Mar 1 01:02:57.363: DUAL: Destination 192.168.34.0/24
*Mar 1 01:02:57.367: DUAL: Destination 192.168.12.0/24
*Mar 1 01:02:57.367: DUAL: Find FS for dest 192.168.12.0/24. FD is 2172416, RD is 2195456
*Mar 1 01:02:57.367: DUAL: 192.168.41.8 metric 4294967295/4294967295
*Mar 1 01:02:57.367: DUAL: 192.168.34.5 metric 3193856/2681856 not found Dmin is 3193856
*Mar 1 01:02:57.371: DUAL: Peer total 1 stub 0 template 1
*Mar 1 01:02:57.371: DUAL: Dest 192.168.12.0/24 entering active state.
*Mar 1 01:02:57.371: DUAL: Set reply-status table. Count is 1.
*Mar 1 01:02:57.371: DUAL: Not doing split horizon
*Mar 1 01:02:57.375: DUAL: Destination 192.168.23.0/24
*Mar 1 01:02:57.375: DUAL: Removing dest 192.168.23.0/24, nexthop 192.168.41.8, infosource 192.168.41.8
*Mar 1 01:02:57.379: DUAL: linkdown: finish
*Mar 1 01:02:57.679: DUAL: rcvreply: 192.168.12.0/24 via 192.168.34.5 metric 3193856/2681856
*Mar 1 01:02:57.679: DUAL: reply count is 1
*Mar 1 01:02:57.679: DUAL: Clearing handle 2, count now 0
*Mar 1 01:02:57.683: DUAL: Freeing reply status table
*Mar 1 01:02:57.683: DUAL: Find FS for dest 192.168.12.0/24. FD is 4294967295, RD is 4294967295 found
*Mar 1 01:02:57.683: DUAL: Removing dest 192.168.12.0/24, nexthop 192.168.41.8, infosource 192.168.41.8
*Mar 1 01:02:57.687: DUAL: RT installed 192.168.12.0/24 via 192.168.34.5
*Mar 1 01:02:57.687: DUAL: Send update about 192.168.12.0/24. Reason: metric chg
*Mar 1 01:02:57.687: DUAL: Send update about 192.168.12.0/24. Reason: new if
R4#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
D 192.168.12.0/24 [90/3193856] via 192.168.34.5, 00:02:24, Serial1/2
2.0.0.0/24 is subnetted, 1 subnets
D 2.2.2.0 [90/2809856] via 192.168.34.5, 00:02:24, Serial1/2
4.0.0.0/24 is subnetted, 1 subnets
C 4.4.4.0 is directly connected, Loopback0
C 192.168.41.0/24 is directly connected, FastEthernet0/0
D 192.168.23.0/24 [90/2681856] via 192.168.34.5, 00:06:09, Serial1/2
C 192.168.34.0/24 is directly connected, Serial1/2
現在,R4的拓撲表中顯示R3為後繼路由器,且沒有新的可行後繼路由器。
無可行後繼路由器時:
如果通向後繼路由器的路徑發生故障,且有沒有可行後繼路由器,會發生什麼情況呢?
DUAL沒有可行後繼路由器并不代表不存在通往該網絡的其他路徑,這隻能說明DUAL沒有通向該網絡的保證無環的備用路徑,是以未将其它路徑做為可行後繼路由器加入到拓撲表中。
如果拓撲表中沒有可行後繼路由器,DUAL會将網絡置于主動狀态,主動向鄰居查詢,
看是否存在新的後繼路由器。其他路由器會傳回EIGRP應答,
告知該路由器是否有通向目的網路的路徑,
如果所有鄰居的EIGRP應答都沒有通向此網路的路徑,則該路由器就沒有通向目的網絡的路徑;
如果鄰居的EIGRP應答包括通向此網絡的路徑,該路由器将會通過DUAL算法快速将含有這條路徑的路由器作為後繼路由器添加到路由表中。
<b>實驗二、EIGRP的<b>等價</b>負載均衡</b>
通過适當的配置,可以在路由器R4上看到R2的loopback 0的路由條目為等價路由,進而實作等價負載均衡,隻要他們的延遲之和相同,就是等價路由,是以,可以在路由器R4上做如下的配置:
R4(config)#int fa 0/0
R4(config-if)#delay 2000
【注】:在接口下用delay修改延遲時,在計算路徑成本時,不需要再除以10。
在R4上檢視路由表:
D 192.168.12.0/24 [90/2681856] via 192.168.41.8, 00:02:14, FastEthernet0/0
D 2.2.2.0 [90/2809856] via 192.168.41.8, 00:02:14, FastEthernet0/0
[90/2809856] via 192.168.34.5, 00:02:14, Serial1/2
上述輸出表明路由條目“2.2.2.0”确實有兩條等價路由,說明EIGRP是支援等價負載均衡的;
<b>實驗三、EIGRP的非等價負載均衡</b>
将R4的FastEthernet0/0口的delay恢複到原來的值,通過“variance”指令來研究EIGRP的非等價負載均衡,
在路由器參數沒有修改之前,對于“2.2.2.0”的路由條目,在R4的路由拓撲結構資料庫中存在如下記錄:
P 2.2.2.0/24, 1 successors, FD is 2323456
via 192.168.41.8 (2323456/2297856), FastEthernet0/0
P 192.168.41.0/24, 1 successors, FD is 51200
現在隻需要在R4的路由器上調整variance的值,使得這兩條路徑在路由表中都可見可用,
【注】:EIGRP非等價負載均衡是通過variance指令來實作的,“variance”的預設值是1(即代表等價路由的負載均衡),variance值的範圍是1--128,這個參數代表了可以接受的不等價路由的路徑成本的倍數,在這個範圍内的鍊路都将被接受,并且被放入路由表中。
R4的配置如下:
R4(config)#router eigrp 1
R4(config-router)#variance ?
&lt;1-128> Metric variance multiplier
R4(config-router)#variance 2
D 192.168.12.0/24 [90/2195456] via 192.168.41.8, 00:00:14, FastEthernet0/0
D 2.2.2.0 [90/2323456] via 192.168.41.8, 00:00:14, FastEthernet0/0
[90/2809856] via 192.168.34.5, 00:00:14, Serial1/2
以上輸出表明路由條目“2.2.2.0”有兩條路徑可達,但是他們的路徑成本不同,這就是所說的非等價路由,進而證明EIGRP也支援非等價負載均衡的。
本文轉自 linuxtro 51CTO部落格,原文連結:http://blog.51cto.com/linuxtro/387908,如需轉載請自行聯系原作者