lo0:172.16.2.1/24
lo1: 10.1.1.1 /30
---------+-------
|
+-+-+
|R2 |
S1/0 *---* S1/1
/ \
172.16.3.0/30 / \ 192.168.10.8/30
/ \
S1/0 / \ S1/1
+---+ S1/1 S1/0 *---+
|R1 |--------------|R3 |
+-+-+ +-+-+
| 192.168.10.4/30 |
-----------+----- ---------+--------
lo0:172.16.1.1/24 lo0:192.168.1.1/24
Configuration
R1:
interface Loopback0
ip address 172.16.1.1 255.255.255.0
!
interface Serial1/0
ip address 172.16.3.1 255.255.255.252
!
interface Serial1/1
ip address 192.168.10.5 255.255.255.252
!
router eigrp 1
network 172.16.0.0
network 192.168.10.4 0.0.0.3
R2:
interface Loopback0
ip address 172.16.2.1 255.255.255.0
!
interface Loopback1
ip address 10.1.1.1 255.255.255.252
!
interface Serial1/0
ip address 172.16.3.2 255.255.255.252
!
interface Serial1/1
ip address 192.168.10.9 255.255.255.252
!
router eigrp 1
network 172.16.0.0
network 192.168.10.8 0.0.0.3
R3:
interface Loopback0
ip address 192.168.1.1 255.255.255.0
!
interface Serial1/0
ip address 192.168.10.6 255.255.255.252
!
interface Serial1/1
ip address 192.168.10.10 255.255.255.252
!
router eigrp 1
network 192.168.1.0
network 192.168.10.0
EIGRP度量值的计算
EIGRP度量值计算需要以下几个要素:分为带宽、延迟、可靠性、负载,一般常用带宽和延迟。
可以用“bandwidth”更改带宽度量值,这里的bandwidth只是更改BW的值,对实际带宽没有任何影响。
度量值的计算公式:
[(10^7)/带宽(最小)]*256 + [总延迟/10]*256
注意10的7次方没有任何意义,只是一个参量。
256也没有任何意义,只是增大EIGRP度量值的颗粒度。
下面拿R1收到的路由192.168.1.0/24举例说明:
R1#sh int s1/1
Serial1/1 is up, line protocol is up
Hardware is M4T
Internet address is 192.168.10.5/30
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
------------------------------------------------------------
R3#sh int lo0
Loopback0 is up, line protocol is up
Hardware is Loopback
Internet address is 192.168.1.1/24
MTU 1514 bytes, BW 8000000 Kbit, DLY 5000 usec,
reliability 255/255, txload 1/255, rxload 1/255
!---注意在计算度量值时,只考虑路由进入端口的参数,例如要计算192.168.1.0/24的度量值
!---只需考虑R3的lo0,R1的S1/1两个端口的带宽和延迟参数
R1#sh 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
192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks
D 192.168.10.0/24 is a summary, 00:06:56, Null0
C 192.168.10.4/30 is directly connected, Serial1/1
D 192.168.10.8/30 [90/2681856] via 192.168.10.6, 00:06:56, Serial1/1
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
D 172.16.0.0/16 is a summary, 00:07:02, Null0
C 172.16.1.0/24 is directly connected, Loopback0
D 172.16.2.0/24 [90/2297856] via 172.16.3.2, 00:08:09, Serial1/0
C 172.16.3.0/30 is directly connected, Serial1/0
D 192.168.1.0/24 [90/2297856] via 192.168.10.6, 00:06:55, Serial1/1
!---根据公式,1544Kbit是最小BW,所以[(10^7)/1544]*256 = 1657856
!---延迟部分为[(20000 + 5000)/10]*256 = 640000
!---度量值= 1657856 + 640000 = 2297856
DUAL算法的术语
2011-02-06 更新:
1. 增加对术语的解释。
2. 修正实例中的个别解释。
1. 后继路由器(Successor):FS中FD最小的就是后继路由器,如果有相等的,就负载分担。
2. 可行距离(FD):到目的网段的最小度量值。
3. 可行后续路由器(FS):到达目的网段的下一跳路由器,并符合FC。
4. 报告距离(RD),或称通告距离(AD):每个FS的可行距离。
5. 可行性条件(FC):当RD小于FD时,符合条件;如果大于,就没有资格成为FS。
常用到的命令:
1. show inter x/x >>>查看mtu、带宽、延迟、可靠性、负载
2. show ip route >>>确认后继路由和可行距离(FD)
3. show ip eigrp topology >>>可查看可行后续路由器的信息(FS),不包括不符合FC的路由器
4. show ip eigrp topology all-link >>>包括所有可能链路,即时不符合FS
下面还是拿R1学到的路由192.168.1.0/24举例
R1#sh ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(172.16.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.10.0/24, 1 successors, FD is 2169856
via Summary (2169856/0), Null0
P 192.168.10.4/30, 1 successors, FD is 2169856
via Connected, Serial1/1
P 192.168.1.0/24, 1 successors, FD is 2297856
via 192.168.10.6 (2297856/128256), Serial1/1
!---1个后继路由器,符合FC,到目的网段的下一跳路由器,就是R3
!---2297856是FD;128256是R3到此路由的FD,在这里叫RD
!---所谓FC就是RD要小于最优路由的FD,即时等于也不行
!---根据topology,R1可以通过R2到达R3,但为什么没在表中?
P 192.168.10.8/30, 1 successors, FD is 2681856
via 192.168.10.6 (2681856/2169856), Serial1/1
P 172.16.0.0/16, 1 successors, FD is 128256
via Summary (128256/0), Null0
P 172.16.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 172.16.2.0/24, 1 successors, FD is 2297856
via 172.16.3.2 (2297856/128256), Serial1/0
P 172.16.3.0/30, 1 successors, FD is 2169856
via Connected, Serial1/0
R1#sh ip eigrp topology all
IP-EIGRP Topology Table for AS(1)/ID(172.16.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.1.0/24, 1 successors, FD is 2297856, serno 17
via 192.168.10.6 (2297856/128256), Serial1/1
via 172.16.3.2 (2809856/2297856), Serial1/0
!---这里可以看到通过R2学来的路由信息
!---明显R2学来的路由的RD等于最优路由的FD,所以不满足FC
!---因此不会加到topology表中,也就不会成为可行后继路由FS
那么可行后继路由FS到底起到什么作用呢?
当存在可行后继路由时,不用DUAL计算,直接用后继路由替换当前失效路由,速度非常快。
在此例中,可以通过更改BW使其满足FC并把路由存入topology表中。
由于R3环回口的带宽是8,000,000,所以忽略R3,直接更改R1的S1/0和R2的S1/1两个端口的带宽
R2#sh int s1/1
Serial1/1 is up, line protocol is up
Hardware is M4T
Internet address is 192.168.10.9/30
MTU 1500 bytes, BW 10000 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
R1#sh int s1/0
Serial1/0 is up, line protocol is up
Hardware is M4T
Internet address is 172.16.3.1/30
MTU 1500 bytes, BW 10000 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
R1#sh ip eigrp topology 192.168.1.0
IP-EIGRP (AS 1): Topology entry for 192.168.1.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 1408000
Routing Descriptor Blocks:
172.16.3.2 (Serial1/0), from 172.16.3.2, Send flag is 0x0
Composite metric is (1408000/896000), Route is Internal
!---1408000是FD,896000是R2的RD
Vector metric:
Minimum bandwidth is 10000 Kbit
!---最小带宽
Total delay is 45000 microseconds
!---总共的延迟
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
192.168.10.6 (Serial1/1), from 192.168.10.6, Send flag is 0x0
Composite metric is (2297856/128256), Route is Internal
!---2297856是FD,128256是R3的RD
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
R1#sh ip eig to
IP-EIGRP Topology Table for AS(1)/ID(172.16.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.1.0/24, 1 successors, FD is 1408000
via 172.16.3.2 (1408000/896000), Serial1/0
via 192.168.10.6 (2297856/128256), Serial1/1
!---这回可以看到,从R2学来的路由已经加进topology表中了
!---因为AD 128256 < FD 1408000满足FC
!---另外从R2学来的路由反而成了后续路由(1408000<2297856)
!---现在的路径是R1--->R2--->R3,显然它不是最优路径
非等价负载均衡
根据上面的实验,192.168.1.0在topology表中已经有后继路由和可行后继路由,但是路由表中只有后继路由,如何把可行后继路由加入路由表中呢?这就需要EIGRP的负载均衡特性。
EIGRP的负载均衡与其他协议的负载均衡不太一样,它是唯一一个支持非等价负载均衡的路由协议。
可以通过“variance”来进行配置,这个参数只是一个差额 = (大的metric)/(小的metric)
咱们继续拿上面的例子,2297856/1408000=1.632,约等于2
R1#sh run | b r e
router eigrp 1
variance 2
network 172.16.0.0
network 192.168.10.4 0.0.0.3
auto-summary
R1#sh ip route 192.168.1.0
Routing entry for 192.168.1.0/24
Known via "eigrp 1", distance 90, metric 1408000, type internal
Redistributing via eigrp 1
Last update from 192.168.10.6 on Serial1/1, 00:01:15 ago
Routing Descriptor Blocks:
192.168.10.6, from 192.168.10.6, 00:01:15 ago, via Serial1/1
Route metric is 2297856, traffic share count is 49
Total delay is 25000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
* 172.16.3.2, from 172.16.3.2, 00:01:15 ago, via Serial1/0
Route metric is 1408000, traffic share count is 80
Total delay is 45000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
!---关于CEF负载均衡的问题,可以参考我以前的文章
EIGRP其他的特性
1. 通过“ip bandwidth-per eigrp as-num per”来调整EIGRP使用的带宽百分比
2. 通过“ip hello-inter eigrp as-num sec”来调整Hello间隔时间
(不同链路,默认的hello间隔和保持时间也是不同的)
3. 通过“no auto”来关闭自动汇总
4. 通过“ip summary-address eigrp as-num x.x.x.x x.x.x.x”
配置手动汇总(与RIP一样),注意此命令在端口下配置
5. 把其他协议重分发到EIGRP时,必须指定metric,RIP也一样