OSPF如何计算最短路径开销

在OSPF中,计算从路由器到每个子网的开销的过程可能很直观。本文将讨论分为四个部分:区域内路由,区域间路由,关于同一子网的区域内和区域间路由同时存在的情况的简短讨论以及SPF计算的说明。 

综上所述,OSPF为给定子网选择最佳路由的方法如下:

  • 搜索LSDB,以找到到达子网的所有可能路由。
  • 对于每个可能的路由,为该路由的所有传出接口添加OSPF接口开销。
  • 选择总开销最低的路线。

区域内路由的OSPF开销计算

路由器分析LSDB以计算到每个子网的最佳路由后,路由器将检查以下步骤:

  • 步骤1:根据类型1 LSA 和任何类型2网络LSA查找区域内的所有子网 。
  • 步骤2: 运行SPF算法,以查找通过路由的所有可能路径,从其自身到每个子网。
  • 步骤3:当路由器为每条路由内的所有传出接口计算OSPF开销值时,它将选择每个子网总开销最低的路由,并将其标记为通向该特定子网的最佳路由。

例如,下图举例说明了区域34内部的路由器和链接,作为互联网的子集。该图像还显示了接口号和OSPF开销。

OSPF开销区域内

按照基本的三步过程,在步骤1,R1可以确定子网10.10.34.0/24在区域34中存在,因为该子网中的DR创建了类型2 LSA。对于步骤2,R1运行SPF算法并确定四个可能的路线,其中两个显然对人类更合理:R1-R3和R1-R4。由于另外两条路径的开销较高,因此它们不会被选择为最佳路径,但它们是有效路径。

在下一步中,R1进行简单的数学运算,以增加每条路由中传出接口的开销,如下所示:

  • R1-R3:将R1的S0/0/0.3开销(647)和R3的Fa0/0开销(10)加起来,总计657
  • R1-R4:加上R1的S0/0/0.4开销(647)和R4的Fa0/0开销(10),总计657

度量标准是一致的,因此在默认设置的最大路径4下,R1将两条路由都添加到其路由表中。具体来说,路由列出了度量657和相应链路另一端的下一跳IP地址:10.10.13.3(R3的S0/0/0.1)和10.10.14.4(R4的S0/0/0.1)。

请注意,OSPF支持等价负载均衡,但是很明显,它不支持等价负载均衡,因为OSPF仅选择最短的开销。可以将maximum-paths OSPF子命令设置为低至1,最大值取决于路由器平台和版本。 

区域间路由的OSPF开销计算

从人的角度来看,如果我们具有完整的网络图,子网地址和OSPF接口开销,则可以像区域内路由一样计算区域间路由的开销。 

由于内部路由器没有其他区域的拓扑数据(LSA类型1和2),因此OSPF路由器无法对区域间路由执行等效操作。为此,ABR将类型3摘要LSA创建并泛洪  到一个区域中,列出子网地址和掩码,但不列出其他区域中有关路由器和链接的详细信息。

例如,下图同时显示了区域34和0。请考虑OSPF如何确定从路由器R3到右侧数据中心子网(10.10.99.0/24)的最低开销路由。

SPF算法必须计算区域内到ABR的所有可能路由,以找到冗余路径。由于区域设计的原因,R1和R2充当ABR,R3不会处理上图中所示的所有拓扑。相反,R3依赖于由ABR创建的类型3摘要LSA,它们具有以下信息:

  • LSA代表的子网号/掩码
  • ABR到达子网的开销最低的路由的开销
  • ABR的RID


该问题与一个以上的ABR有关

为了获得更多的冗余,大多数工程师在骨干网和每个非骨干网之间设计了两个路由器,因此这种设计在许多OSPF网络中很常见。

问题与以下事实有关:当ABR计算自己的路由表时,将发生两个或多个ABR。实际上,ABR将为骨干区域(所有接口位于区域0的路由器)的子网计算区域内路由和区域间路由。

例如,从最后几个示例中考虑路由器R1的角度,如下图所示:

简而言之,OSPF中的ABR路由器根据以下规则选择自己的最佳路由:

  • 步骤1: 无论采用哪种度量标准,区域内路由始终比竞争性区域间路由要好。
  • 步骤2:  ABR在计算自己的路由时会忽略非骨干区域内的类型3 LSA。

由于第一个规则,如果区域内路由可用,则R1永远不会选择区域间路由。第二条规则更进一步,指出R1永远不会选择区域间路由。它只是出于选择自身最佳IP路由的目的而忽略了LSA。

OSPF指标调整

有几个命令可让您更改OSPF接口开销的值,如下所示:

  • 改变参考带宽
  • 设置接口带宽
  • 直接设置OSPF开销

更改参考带宽

缺省OSPF开销是根据以下公式计算的:

开销=参考带宽/接口带宽

在Cisco路由器中,您可以使用router子命令中的auto-cost reference-bandwidth来设置参考带宽。它设置路由器公式的分子,单位为Mbps。在不同的路由器上,此设置可以有所不同,但是建议在OSPF路由域中的所有路由器上使用相同的设置。

例如,串行接口的带宽为1544 kbps。参考的默认值是带宽100,表示100 Mbps。将参考带宽单位转换为kbps以匹配带宽度量单位后,串行链路的默认值计算为:

费用= 100,000 / 1544 = 64

更改参考带宽的主要原因是要为高速链接提供良好的默认设置。例如,默认值为100 Mbps的快速以太网接口的开销等于1。千兆位以太网和10个千兆位接口的默认OSPF开销为1,这是最低的OSPF开销。

设置带宽

改变OSPF开销的第二种方法是使用 bandwidth speed interface子命令(速度以kbps为单位)。在这种情况下,将使用上一部分中显示的公式,仅使用配置的带宽值。请记住,在以太网接口上,如果未配置bandwidth命令,则接口带宽与实际速度匹配。 

直接配置开销

配置OSPF开销的最后也是最可控制的方法是直接配置接口开销。您可以使用Cisco路由器中的ip ospf cost valueinterface子命令直接更改OSPF开销。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁