EIGRP 在其复合度量中使用下列值来计算通向网络的首选路径:
.带宽
.延迟
.可靠性
.负载
注:尽管 MTU 被包括在路由表更新中,但它并不是 EIGRP 或 IGRP 所用的路由度量之一。默认情况下,仅使用带宽和延迟来计算度量。Cisco 建议,除非管理员明确需要,否则不使用可靠性和负载。
复合度量
如图所示为 EIGRP 所用的复合度量公式。公式包含 K1 到 K5 五个 K 值,它们称为 EIGRP 度量权重。默认情况下,K1 和 K3 设为 1,K2、K4 和 K5 设为 0。结果,仅带宽和延迟值被用于计算默认复合度量。
默认的 K 值可使用 EIGRP 路由器命令来更改:
Router(config-router)#metric weights tos k1 k2 k3 k4 k5
注:修改度量权重不在此讨论,但它们的关联性在建立邻接关系时相当重要.tos(服务类型)值是 IGRP 遗留下来的,实际未曾实施。tos 始终被设为 0。
检验 K 值
show ip protocols 命令用于检验 K 值。R1 的命令输出如图所示。请注意,R1 上的 K 值被设为默认值。同样,除非网络管理员有充分的理由,否则建议保留默认值不变。
检查度量值
您现在知道了 K 值的默认值。我们可以通过使用 show interface 命令来检查计算路由度量时为带宽、延迟、可靠性和负载使用的实际 值。
图中的输出显示了 R1 的 Serial 0/0/0 接口的复合度量中所用的值。
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
带宽
带宽度量 (1544 Kbit) 是一种静态值。EIGRP 和 OSPF 等路由协议使用带宽来计算路由度量。带宽以 Kbit(千比特)为单位显示。大多数串行接口使用默认带宽值 1544 Kbit(即 1,544,000 bps 或 1.544 Mbps)。这是 T1 连接的带宽。然而,某些串行接口使用不同的默认带宽值。务必使用 show interface 命令来检验带宽。
该带宽值可能无法反映出接口的实际物理带宽。修改该带宽值不会更改该链路的实际带宽。 如果链路的实际带宽与默认带宽不相等,您就应该修改该带宽值.
延迟
延迟是衡量数据包通过路由所需时间的指标。延迟 (DLY) 度量是一种静态值,它以接口所连接的链路类型为基础,单位为微秒。延迟不是动态测得的。换句话说,路由器并不会实际跟踪数据包达到目的地所需的时间。延迟值与带宽值相似,都是一种默认值,可由网络管理员更改。
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
图中的表格显示了各种接口的默认延迟值。请注意,串行接口的默认值为 20,000 微秒,快速以太网接口的默认值为 100 微秒。
可靠性
可靠性 (reliability) 是对链路将发生或曾经发生错误的几率的衡量指标。与延迟不同的是,可靠性是动态测得的,取值范围为 0 到 255,其中 1 表示可靠性最低的链路,255 则表示百分之百可靠。计算可靠性时取 5 分钟内的加权平均值,以避免高(或低)错误率的突发性影响。
可靠性以为分母为 255 的分数表示 ― 该值越大,链路越可靠。因此,255/255 表示百分之百可靠,而 234/255 则表示 91.8% 可靠。
请记住:默认情况下,EIGRP 在度量计算中不使用可靠性。
负载
负载 (load) 反映使用该链路的流量。与可靠性相似,负载也是动态测得的,且取值范围也是从 0 到 255,也以分母为 255 的分数表示,但不同的是,负载值越低越好,因为这表示链路上负载较轻。因此,1/255 表示链路上负载最低,40/255 表示链路上的负载容量为 16%,255/255 则表示链路已百分之百饱和。
负载同时显示为出站(即发送)负载值 (txload) 和入站(即接收)负载值 (rxload)。计算此值时取 5 分钟内的加权平均值,以避免高(或低)通道使用率的突然影响。
请记住:默认情况下,EIGRP 在度量计算中不使用负载。
拓扑图:
在大多数串行链路上,带宽度量默认为 1544 Kbit。因为 EIGRP 和 OSPF 都使用带宽计算默认度量,所以正确的带宽值对路由信息的准确性至关重要。但是,如果链路的实际带宽与默认带宽不符,该怎么办?
使用接口命令 bandwidth 修改带宽度量:
Router(config-if)#bandwidth kilobits
使用接口命令 no bandwidth 恢复为默认值。
在上图中,R1 和 R2 之间的链路带宽为 64 kbps,R2 和 R3 之间的链路带宽则为 1024 kbps。图示为在所有三台路由器上修改相应的串行接口带宽时所用的命令。
我们可以使用 show interface 命令来检验更改。修改带宽时,必须同时在链路两端进行,才能确保两个方向上的正确路由。
注:刚刚接触网络和 Cisco IOS 的学生常常有一种误解,认为 bandwidth 命令将更改链路的物理带宽。bandwidth 命令只会修改 EIGRP 和 OSPF 等路由协议所用的带宽度量。有时,网络管理员可能会出于加强传出接口控制的目的而更改带宽值。
计算ergrp的度量:
如图所示为 EIGRP 所用的复合度量。当使用 K1 和 K3 的默认值时,计算可简化为:最低带宽(即最小带宽)加上总延迟。
换句话说,通过检查路由上所有传出接口的带宽和延迟值,即可确定 EIGRP 度量。首先,确定带宽最低的链路。该带宽用于公式的(10,000,000/带宽)* 256部分。下一步,确定沿途每个传出接口的延迟值。将所有延迟值加起来然后除以 10(总延迟/10),再乘以 256(* 256)。将带宽和总延迟值加起来即可得到 EIGRP 度量。
R2 的路由表输出显示,通向 192.168.1.0/24 的路由的 EIGRP 度量为 3,014,400。让我们详细看看 EIGRP 是如何算出此值的。
度量计算过程:
拓扑还是上面的那个
带宽
因为 EIGRP 在其度量计算中使用最低带宽,我们可以通过检查 R2 与目的网络 192.168.1.0 之间的每个接口来找出最低带宽。R2 上的 Serial 0/0/1 接口的带宽为 1,024 Kbps(即 1,024,000 bps)。R3 上的 FastEthernet 0/0 接口的带宽为 100,000 Kbps(即 100 Mbps)。因此,最低带宽为 1024 Kbps,此值用在度量计算中。
EIGRP 取以 kbps 为单位的带宽值并用参考带宽值 10,000,000 除以该带宽值,这将使高带宽值产生低度量值,而低带宽值则产生高度量值。
10,000,000 除以 1024,如果商不是整数,则舍掉小数。在本例中,10,000,000 除以 1024 等于 9765.625。小数部分 .625 被舍去,然后再乘以 256。复合度量的带宽部分为 2,499,840。
延迟
我们可以使用相同的传出接口来确定延迟值。
EIGRP 使用所有传出接口的延迟度量的总和。R2 上的 Serial 0/0/1 接口的延迟为 20000 微秒。R2 上的 FastEthernet 0/0 接口的延迟为 100 微秒。
每个延迟值除以 10,然后相加。20,000/10 + 100/10 得到的值为 2,010,然后用此值乘以 256,复合度量的延迟部分为 514,560。
将带宽和延迟相加
只需将该两个值相加 2,499,840 + 514,560,即可得到 EIGRP 度量值 3,014,400。此值与 R2 的路由表中所示的值相符。这是由最低带宽和总延迟计算得到的。