Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

LSP 计算

受限路径 LSP 计算

约束最短路径优先 (CSPF) 算法是 OSPF 和 IS-IS 路由计算中使用的最短路径优先 (SPF) 算法的高级形式。CSPF 用于受多个约束的 LSP 的计算路径。在计算 LSP 的路径时,CSPF 不仅要考虑网络的拓扑结构,还要考虑 LSP 和链路的属性,并尝试通过智能平衡网络负载来最大限度地减少拥塞。

CSPF 考虑的限制包括:

  • LSP 属性

    • 管理组(即链接颜色要求)

    • 带宽要求

    • 显式路由(严格或松散)

    • 跃点限制

    • 优先级(设置和保持)

  • 链接属性

    • 管理组(即,分配给链接的链接颜色)

    • 链路的可预留带宽(静态带宽减去当前保留的带宽)

CSPF 考虑的数据来自以下来源:

  • 信息流工程数据库 — 为 CSPF 提供最新的拓扑信息、当前可预留的链路带宽以及链路颜色。要使 CSPF 算法执行其计算,需要具有特殊扩展的链路状态 IGP(例如 OSPF 或 IS-IS)。要使 CSPF 有效,所有路由器上的链路状态 IGP 必须支持特殊扩展。在构建拓扑数据库时,扩展 IGP 必须考虑当前的 LSP,并且必须在所有位置泛洪路由信息。由于保留链路带宽和链路颜色的更改会导致数据库更新,因此扩展的 IGP 往往比普通 IGP 更频繁地泛洪。有关这些组件之间的关系图,请参阅 图 1

  • 当前活动的 LSP — 包括应源自路由器的所有 LSP 及其当前操作状态(启动、关闭或超时)。

图 1: CSPF 计算过程CSPF 计算过程

本节讨论以下主题:

CSPF 如何选择路径

若要选择路径,CSPF 遵循特定规则。规则如下:

  1. 一次计算一个 LSP,从优先级最高的 LSP(设置优先级值最低的 LSP)开始。在同等优先级的 LSP 中,CSPF 按 LSP 名称的字母顺序为 LSP 提供服务。

  2. 删除所有非全双工且没有足够的可预留带宽的链路的信息流工程数据库。

  3. 如果 LSP 配置包含语句, include 将删除不共享任何包含颜色的所有链接。

  4. 如果 LSP 配置包含语句, exclude 将删除包含排除颜色的所有链接。如果链接没有颜色,则接受。

  5. 如果多个路径的成本相等,则选择其最后一跃点地址与 LSP 的目标路径相同的路径。

  6. 如果剩余几个等价路径,则选择跃点数最少的路径。

  7. 如果剩余多个等价路径,则应用在 LSP 上配置的 CSPF 负载平衡规则(最少填充、最多填充或随机)。

CSPF 会找到通向 LSP 出口路由器的最短路径,同时考虑显式路径约束。例如,如果路径必须通过路由器 A,则会计算两个单独的 SPF,一个从入口路由器到路由器 A,另一个从路由器 A 到出口路由器。所有 CSPF 规则都应用于这两个计算。

CSPF 路径选择决胜局

如果在应用 CSPF 规则(CSPF 如何选择路径)后仍有多个路径可用,则会应用平局规则来选择 LSP 的路径。使用的规则取决于配置。有三条平局规则:

  • 随机 - 随机选取剩余路径之一。无论可用带宽比率如何,此规则都倾向于在每个链路上放置相同数量的 LSP。这是默认行为。

  • 最少填充 - 首选具有最大最小可用带宽比率的路径。此规则尝试均衡每个链路上的预留。

  • 大多数填充 - 首选具有最小可用带宽比率的路径。此规则尝试在转到备用链接之前填充链接。

以下定义描述了如何得出最少填充和最多填充规则的最小可用带宽比率数字:

  • 预留带宽 = 链路带宽 x 链路订阅系数

  • 可用带宽 = 预留带宽 -(遍历链路的 LSP 带宽总和)

  • 可用带宽比率 = 可用带宽/预留带宽

  • 最小可用带宽比率(对于路径)= 路径中链路的最小可用带宽比率

注:

对于要使用的最少填充或最多填充行为,路径必须将其带宽(在层次结构级别使用语句指定bandwidth)或最小带宽(在minimum-bandwidth层次结构级别使用[edit protocols mpls label-switched-path lsp-name auto-bandwidth]语句指定)配置为大于 0 [edit protocols mpls label-switched-path lsp-name] 的值。如果路径的带宽或最小带宽未配置或配置为 0,则无法计算最小可用带宽,而是改用随机路径选择行为。

脱机计算 CSPF 路径

Junos OS 仅提供在线实时 CSPF 计算;每个路由器独立于网络中的其他路由器执行 CSPF 计算。这些计算基于当前可用的拓扑信息,这些信息通常是最新的,但不完全准确。LSP 放置会根据当前网络状态在本地进行优化。

要优化网络中的全局链路,您可以使用离线工具执行 CSPF 计算并确定 LSP 的路径。您可以自己创建此类工具,也可以修改现有网络设计工具来执行这些计算。您应该定期(每天或每周)运行该工具,并将结果下载到路由器中。离线工具在执行优化计算时应考虑以下因素:

  • LSP 的所有要求

  • 所有链接属性

  • 完整的网络拓扑结构

配置 CSPF 平局中断

为 LSP 选择路径时,如果有多个等价路径,CSPF 将使用平局中断过程。有关 CSPF 如何选择路径的信息,请参阅 CSPF 如何选择路径

您可以配置以下语句之一(一次只能配置其中一个语句)来更改 CSPF 绑定中断的行为:

  • 默认情况下,CSPF 的随机平局规则用于从等价路径集中选择一个路径。但是,您也可以使用以下语句显式 random 配置此行为:

  • 要优先选择具有最少使用链接的路径,请包含以下 least-fill 语句:

  • 要优先选择具有最常用链接的路径,请包含以下 most-fill 语句:

您可以将这些语句中的每一个包含在以下层次结构级别:

  • [edit protocols mpls label-switched-path lsp-name]

  • [edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]

禁用受限路径 LSP 计算

如果 IGP 是链路状态协议(例如 IS-IS 或 OSPF),并且支持允许报告每个路由器链路上的当前带宽预留的扩展,则默认情况下会计算受限路径 LSP。

IS-IS 和 OSPF 的 Junos 实现包括支持受限路径 LSP 计算的扩展。

  • IS-IS - 默认情况下,这些扩展程序处于启用状态。要禁用此支持,请在层次结构级别包含disable[edit protocols isis traffic-engineering]语句,如 Junos OS 路由设备路由协议库中所述。

  • OSPF — 默认情况下,这些扩展处于禁用状态。要启用此支持,请将该 traffic-engineering 语句包含在运行 OSPF 的所有路由器的配置中,如 路由设备的 Junos OS 路由协议库中所述。

如果在路由器上启用了 IS-IS,或者您启用了 OSPF 流量工程扩展,则默认情况下,MPLS 会执行受限路径 LSP 计算。有关受限路径 LSP 计算工作原理的信息,请参阅 受限路径 LSP 计算

由于以下原因,受限路径 LSP 更有可能快速成功建立:

  • LSP 计算会考虑当前的带宽预留。

  • 受限路径 LSP 会自行重新路由,避免节点故障和拥塞。

启用受限路径 LSP 计算后,您可以配置 LSP,以便定期对其进行重新优化,如 优化信号 LSP 中所述。

建立 LSP 或现有 LSP 失败时,将按重试计时器指定的间隔定期重复约束路径 LSP 计算,直到成功设置 LSP。设置 LSP 后,无需重新计算。有关重试计时器的更多信息,请参阅 配置入口路由器和出口路由器之间的连接

默认情况下,约束路径 LSP 计算处于启用状态。当所有节点都不支持必要的流量工程扩展时,您可能希望禁用约束路径 LSP 计算。要禁用约束路径 LSP 计算,请包含以下 no-cspf 语句:

有关可包含此语句的层次结构级别的列表,请参阅此语句的语句摘要部分。

如果通过配置 no-cspf 语句禁用 LSP 上的约束路径 LSP 计算,然后尝试在 IS-IS 或 OSPF 中通告指标低于此路由器的 IGP 的其他 LSP,则无法建立新的 LSP。