jinyan963 发表于 2009-8-5 10:16:00

[已解决]eigrp的metric 值的疑问

本帖最后由 Chaochao 于 2009-8-11 10:02 编辑

拓扑图简单示意如下:
r1------r2--------r3-----r5

各路由器之间运行eigrp.全部ping通。
r1上有个lookback地址 10.10.100.1
r5上有个lookback地址10.10.5.1

在r1上show ip eigrp top
P 10.10.5.0/24, 1 successors, FD is 2835456
      via 12.0.0.2 (2835456/2809856), Ethernet2/0
P 12.0.0.0/24, 1 successors, FD is 281600
      via Connected, Ethernet2/0
P 23.0.0.0/24, 1 successors, FD is 2195456
      via 12.0.0.2 (2195456/2169856), Ethernet2/0
P 35.0.0.0/24, 1 successors, FD is 2707456
      via 12.0.0.2 (2707456/2681856), Ethernet2/0
P 10.10.100.0/24, 1 successors, FD is 128256
      via Connected, Loopback0
R2#show ip eigrp to
IP-EIGRP Topology Table for AS(100)/ID(24.0.0.2)
Codes: P - Passive, A - Active, U - **, Q - Query, R - Reply,
       r - reply Status, s - sia Status
P 10.10.5.0/24, 1 successors, FD is 2809856
      via 23.0.0.3 (2809856/2297856), Serial1/0
P 12.0.0.0/24, 1 successors, FD is 281600
      via Connected, Ethernet2/0
P 23.0.0.0/24, 1 successors, FD is 2169856
      via Connected, Serial1/0
P 35.0.0.0/24, 1 successors, FD is 2681856
      via 23.0.0.3 (2681856/2169856), Serial1/0
P 10.10.100.0/24, 1 successors, FD is 409600
      via 12.0.0.1 (409600/128256), Ethernet2/0
可以看出,r1到10.10.5.0的FD是2835456,AD(r2到10.10.5.0的FD)是2809856
   所以,r1到r2的metric的值 2835456-2809856=25600          (到这里有没有错?)
反向一下:
r2 到10.10.100.0的FD是409600 ,AD(r1到10.10.100.0的FD)是128256
    所以,r2到r1的metric的值 409600-128256=281344

为什么会差这么多,还是我对metric理解错了?
看r1,r2之间的网段
P 12.0.0.0/24, 1 successors, FD is 281600
      via Connected, Ethernet2/0
似乎后面这个值是正确的

Danny 发表于 2009-8-5 17:00:40

应该是R1和R5运算到自己的LOOPBACK口的METRIC值不同,而我们算的是R1出接口到R5的LOOPBACK口的METRIC值,反过来算的是R5出接口到R1 LOOPBACK口的METRIC值,R1和R5算到本地LOOPBACK的METRIC不同,所以有所不同,算的时候还要扣掉到本地LOOPBACK的FD。

steven_song 发表于 2009-8-5 19:21:18

说的好阿

steven_song 发表于 2009-8-5 19:23:05

好阿~~顶啊~~牛阿~~~~~~~~~~~~UP

jinyan963 发表于 2009-8-5 23:15:24

2# Danny

不是很理解,再解释下,多谢了

task 发表于 2009-8-6 09:59:17

所有度量都是基于沿着路由方向的路由器的出站接口计算的。
过去的路由,跟回来的路由,经过的出站接口不同,metric也不同。

tianchunyu 发表于 2009-8-6 14:49:05


关于EIGRP的metric计算,先来看一下cisco的算法:

By default, EIGRP metric:
Metric = bandwidth (slowest link) + delay (sum of delays)
Delay = sum of the delays in the path, in tens of microseconds, multiplied by 256
Bandwidth = * 256

(用10的7次方除以沿途最小带宽+接口延迟总和/10)*256 =metric 其实这里面关于细节说的并不清楚,以上面的拓扑为例,
具体解释一下R1学习到的R3上的3.3.3.0/24网络的metric计算

前提知识:串口的缺省带宽为1544kbps,延迟为20000microseconds,环回口分别为80000000以及5000

R1#sh ip route 3.3.3.0 255.255.255.0
Routing entry for 3.3.3.0/24
Known via "eigrp 10", distance 90, metric 2809856, type internal
Redistributing via eigrp 10
Last ** ** 12.1.1.2 on Serial1/1, 00:00:19 ago
Routing Descriptor Blocks:
* 12.1.1.2, ** 12.1.1.2, 00:00:19 ago, via Serial1/1
      Route metric is 2809856, traffic share ** is 1
      Total delay is 45000 microseconds, minimum bandwidth is 1544 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2

在R1上我们能清楚看到参与计算参数的具体数值都是多少:

10000000/1544 = 6476.6839= 6476这是计算中要注意的一个细节,直接舍弃小数取整
45000=20000+20000+50006476+45000/10 = 1097610976 *256 = 2809856与路由器计算值符合

不知道到这里楼主看得怎么样了?有没有理解这个计算?理解了我想问个问题:就是我手动更改R3 S0/1接口带宽,
在R1上看到的关于3.3.3.0网络的metric会不会有变化?你有兴趣可以自己动手实验一下。下面说一下我的总结:

1.关于沿途最小带宽问题:如果直连接口两边带宽一致,那没什么好说的,链路带宽即等于接口带宽,但是不一致呢?
路由器取带宽计算其实是取接口带宽进行计算,严格的说的是取路由条目沿途更新入向接口(拓扑标注接口)带宽最小者进行计算

2.关于延迟总合问题:同样是取沿途更新入向接口延迟计算总合

换句话说就是metric计算与路由器更新的出接口一毛钱关系都没有

关于EIGRP的metric计算还有什么问题,可以再一起讨论下

task 发表于 2010-8-4 09:52:13

回复 7# tianchunyu
出接口和入接口是相对的。
有路由方向和数据流方向。对于数据流方向,则EIGRP是基于链路上,所有出站接口中,带宽最小的。算法是BWeigrp=10^7/nkbits
对于路由方向,则是相反。

链路时延,是路由经过的所有链路的时延之和再除以10
页: [1]
查看完整版本: [已解决]eigrp的metric 值的疑问