EIGRP 在其复合度量中使用下列值来计算通向网络的首选路径:
.带宽
.延迟
.可靠性
.负载

注:尽管 MTU 被包括在路由表更新中,但它并不是 EIGRP 或 IGRP 所用的路由度量之一。默认情况下,仅使用带宽和延迟来计算度量。Cisco 建议,除非管理员明确需要,否则不使用可靠性和负载。

复合度量

EIGRP度量计算

如图所示为 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 值

EIGRP度量计算

show ip protocols 命令用于检验 K 值。R1 的命令输出如图所示。请注意,R1 上的 K 值被设为默认值。同样,除非网络管理员有充分的理由,否则建议保留默认值不变。

检查度量值

您现在知道了 K 值的默认值。我们可以通过使用 show interface 命令来检查计算路由度量时为带宽、延迟、可靠性和负载使用的实际 值。

EIGRP度量计算

图中的输出显示了 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

EIGRP度量计算

图中的表格显示了各种接口的默认延迟值。请注意,串行接口的默认值为 20,000 微秒,快速以太网接口的默认值为 100 微秒。

可靠性

可靠性 (reliability) 是对链路将发生或曾经发生错误的几率的衡量指标。与延迟不同的是,可靠性是动态测得的,取值范围为 0 到 255,其中 1 表示可靠性最低的链路,255 则表示百分之百可靠。计算可靠性时取 5 分钟内的加权平均值,以避免高(或低)错误率的突发性影响。

可靠性以为分母为 255 的分数表示 — 该值越大,链路越可靠。因此,255/255 表示百分之百可靠,而 234/255 则表示 91.8% 可靠。

请记住:默认情况下,EIGRP 在度量计算中不使用可靠性。

EIGRP度量计算

负载

负载 (load) 反映使用该链路的流量。与可靠性相似,负载也是动态测得的,且取值范围也是从 0 到 255,也以分母为 255 的分数表示,但不同的是,负载值越低越好,因为这表示链路上负载较轻。因此,1/255 表示链路上负载最低,40/255 表示链路上的负载容量为 16%,255/255 则表示链路已百分之百饱和。

负载同时显示为出站(即发送)负载值 (txload) 和入站(即接收)负载值 (rxload)。计算此值时取 5 分钟内的加权平均值,以避免高(或低)通道使用率的突然影响。

请记住:默认情况下,EIGRP 在度量计算中不使用负载。

拓扑图:

EIGRP度量计算

在大多数串行链路上,带宽度量默认为 1544 Kbit。因为 EIGRP 和 OSPF 都使用带宽计算默认度量,所以正确的带宽值对路由信息的准确性至关重要。但是,如果链路的实际带宽与默认带宽不符,该怎么办?

EIGRP度量计算

使用接口命令 bandwidth 修改带宽度量:

Router(config-if)#bandwidth kilobits

使用接口命令 no bandwidth 恢复为默认值。

在上图中,R1 和 R2 之间的链路带宽为 64 kbps,R2 和 R3 之间的链路带宽则为 1024 kbps。图示为在所有三台路由器上修改相应的串行接口带宽时所用的命令。

EIGRP度量计算

我们可以使用 show interface 命令来检验更改。修改带宽时,必须同时在链路两端进行,才能确保两个方向上的正确路由。

注:刚刚接触网络和 Cisco IOS 的学生常常有一种误解,认为 bandwidth 命令将更改链路的物理带宽。bandwidth 命令只会修改 EIGRP 和 OSPF 等路由协议所用的带宽度量。有时,网络管理员可能会出于加强传出接口控制的目的而更改带宽值。

计算ergrp的度量:

EIGRP度量计算

如图所示为 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度量计算

因为 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度量计算

EIGRP 使用所有传出接口的延迟度量的总和。R2 上的 Serial 0/0/1 接口的延迟为 20000 微秒。R2 上的 FastEthernet 0/0 接口的延迟为 100 微秒。

每个延迟值除以 10,然后相加。20,000/10 + 100/10 得到的值为 2,010,然后用此值乘以 256,复合度量的延迟部分为 514,560。

将带宽和延迟相加

EIGRP度量计算

只需将该两个值相加 2,499,840 + 514,560,即可得到 EIGRP 度量值 3,014,400。此值与 R2 的路由表中所示的值相符。这是由最低带宽和总延迟计算得到的。