为什么我看到可行距离的两个不同值?

网络工程 eigrp
2021-08-04 17:22:11

我在 GNS3 中与 EIGRP 实验室一起玩,遇到了一个非常奇怪的奇怪现象。

这是拓扑:

EIGRP 实验室拓扑

这是奇怪的地方:

R2# show ip eigrp topology
<~-~-~ output ommitted ~-~-~>
P 10.4.5.0/24, 1 successors, FD is 309760   <----
        via 10.2.3.3 (332800/307200), FastEthernet0/0
P 10.3.4.0/24, 1 successors, FD is 307200
        via 10.2.3.3 (307200/281600), FastEthernet0/0

注意 10.4.5.0/24,我看到可行距离显示了两个不同的值。带箭头的线将 FD 报告为309760它正下方的行将 FD 报告为332800

我包含了 10.3.4.0/24 的路线作为比较,在该路线中(正如我所期望的那样),第一行中的 FD 与第二行中的 FD 匹配(两者都是307200)。

更详细地查看 EIGRP 路由:

R2# show ip eigrp topology 10.4.5.0/24
IP-EIGRP (AS 99): Topology entry for 10.4.5.0/24
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 309760
  Routing Descriptor Blocks:
  10.2.3.3 (FastEthernet0/0), from 10.2.3.3, Send flag is 0x0
      Composite metric is (332800/307200), Route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit     <---- 
        Total delay is 3000 microseconds    <----
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2

我们可以使用突出显示的值使用默认 K 值和以下公式计算 EIGRP 指标:256 * (BW + Delay)。这相当于:

256 * (1000 + 300) = 332800

所以到 R2 上 10.4.5.0/24 的可行距离是 332800。show ip route输出确实显示了这一点:

R2# show ip route 10.4.5.0
Routing entry for 10.4.5.0/24
  Known via "eigrp 99", distance 90, metric 332800, type internal

但无论出于何种原因,在 EIGRP 拓扑表中,我看到了另一个奇怪的值309760

R2# show ip eigrp topology
P 10.4.5.0/24, 1 successors, FD is 309760
        via 10.2.3.3 (332800/307200), FastEthernet0/0

是什么导致了 309760 值?为什么我在我认为始终是可行距离的值中看到两个不同的值?为什么 10.4.5.0/24 是我网络中唯一显示两个不同值的路由?

3个回答

尝试“清除 ip eigrp 邻居”,然后重新访问“显示 ip eigrp 拓扑”输出。现在它应该反映可行距离和报告/广告距离的正确值。

332800 = 计算距离

307200 = 报告的距离

309760 = 可行距离

FD 是一个历史值,它是路由器在最后一次主动/被动更改之前距离目的地最近的值。

你解读:

请注意10.4.5.0/24,我看到可行距离显示了两个不同的值。带箭头的线将 FD 报告为 309760它正下方的行将 FD 报告为332800

是不正确的。FD 是309760到目的地的费用是332800您通常不会看到任何重复的信息,就像您认为命令显示的那样。

EIGRP 命令

可行距离。可行距离是到达目的地的最佳度量,或者是路由激活时已知的最佳度量该值用于可行性条件检查。如果路由器上报的距离(斜线后的度量)小于可行距离,则满足可行条件,该路径为可行后继。一旦软件确定它有一个可行的后继者,它就不需要发送对该目的地的查询。

第一个数字是 EIGRP 指标,表示到目的地的成本。第二个数字是该对等体通告的 EIGRP 指标。

增强型内部网关路由协议

可行距离、报告距离和可行后继

可行距离是沿到目标网络的路径的最佳度量,包括到通告该路径的邻居的度量。报告的距离是沿上游邻居通告的到达目的地网络的路径的总度量。可行后继是报告距离小于可行距离(当前最佳路径)的路径。图 3 说明了这个过程:

eigrp3.gif

路由器 1 看到它有两条到网络 A 的路由:一条通过路由器 3,另一条通过路由器 4。

  • 通过路由器 4 的路由的开销为 46277376,报告的距离为 307200。
  • 通过路由器 3 的路由的成本为 20307200,报告的距离为 307200。

请注意,在每种情况下,EIGRP 都会计算从路由器向网络通告路由的报告距离。换句话说,从路由器 4 报告的距离是从路由器 4 到网络 A 的度量,从路由器 3 报告的距离是从路由器 3 到网络 A 的度量。EIGRP 选择通过路由器 3 的路由作为最佳路径,并使用通过路由器 3 的度量作为可行距离。由于通过路由器 4 报告到该网络的距离小于可行距离,因此路由器 1 将通过路由器 4 的路径视为可行后继路径。

当路由器 1 和路由器 3 之间的链路出现故障时,路由器 1 会检查它知道的通往网络 A 的每条路径,并发现它具有通过路由器 4 的可行后继路由器。路由器 1 使用此路由,使用通过路由器 4 的度量作为新的可行距离。网络立即收敛,对下游邻居的更新是来自路由协议的唯一流量。

让我们看一个更复杂的场景,如图 4 所示。

eigrp4.gif

从路由器一到网络 A 有两条路由:一条通过路由器二,度量为 46789376,另一条通过路由器四,度量为 20307200。路由器一选择这两个度量中较小的作为到网络 A 的路由,并且这个度量成为可行距离。接下来,让我们看看通过路由器 2 的路径,看看它是否符合可行后继的条件。从路由器 2 报告的距离为 46277376,高于可行距离 - 因此此路径不是可行后继路径。如果此时您要查看路由器一的拓扑表(使用show ip eigrp topology),您将只能看到网络 A 的一个条目 - 通过路由器四。(实际上路由器一的拓扑表中有两个条目,但只有一个是可行后继的,所以在show ip eigrp topology 中不会显示另一个;您可以使用show ip查看不是可行后继的路由eigrp 拓扑全链路)。

让我们假设路由器 1 和路由器 4 之间的链路出现故障。路由器 1 发现它丢失了到网络 A 的唯一路由,并查询它的每个邻居(在这种情况下,只有路由器 2)以查看它们是否有到网络 A 的路由。因为路由器 2 确实有到网络 A 的路由,它响应查询。由于路由器 1 不再有通过路由器 4 的更好的路由,它接受这条通过路由器 2 到网络 A 的路由。

  • 可行距离是最佳度量(至少当路由器开始活跃报道)到目的地。
  • 度量的目标是所有在其上所报告的路由器和目的地之间的度量的总和。
  • 播发距离是距离另一个路由器告诉你的是它的度量目标。

在报告广告距离的其他路由器中,您的路由器会将所有广告距离可行距离进行比较与任何路由器播发距离小于可行距离将变得可行后继,并用最好的路由器播发的距离将是接班人如果没有路由器报告的通告距离小于可行距离,则不会有后继可行后继

您对两个不同值的问题在于它们是两个不同的东西。第一个是Feasible Distance,它可能是路由变为 active 时报告的路由的最佳度量,但它可能不再是到目的地的度量(原始最佳路径可能已关闭,或者某些东西可能已在路径上更改,例如使用bandwidthdelay接口命令)。第二个数字是到达目的地的度量标准。