Internet Engineering Task Force (IETF)                      S. Litkowski
Request for Comments: 8541                       Orange Business Service
Category: Informational                                      B. Decraene
ISSN: 2070-1721                                                   Orange
                                                            M. Horneffer
                                                        Deutsche Telekom
                                                              March 2019
        
Internet Engineering Task Force (IETF)                      S. Litkowski
Request for Comments: 8541                       Orange Business Service
Category: Informational                                      B. Decraene
ISSN: 2070-1721                                                   Orange
                                                            M. Horneffer
                                                        Deutsche Telekom
                                                              March 2019
        

Impact of Shortest Path First (SPF) Trigger and Delay Strategies on IGP Micro-loops

最短路径优先(SPF)触发和延迟策略对IGP微环的影响

Abstract

摘要

A micro-loop is a packet-forwarding loop that may occur transiently among two or more routers in a hop-by-hop packet-forwarding paradigm.

微循环是一种包转发循环,在逐跳包转发范例中,它可能在两个或多个路由器之间瞬时发生。

This document analyzes the impact of using different link state IGP implementations in a single network with respect to micro-loops. The analysis is focused on the Shortest Path First (SPF) delay algorithm but also mentions the impact of SPF trigger strategies.

本文分析了在单个网络中使用不同链路状态IGP实现对微环路的影响。分析的重点是最短路径优先(SPF)延迟算法,但也提到了SPF触发策略的影响。

Status of This Memo

关于下段备忘

This document is not an Internet Standards Track specification; it is published for informational purposes.

本文件不是互联网标准跟踪规范;它是为了提供信息而发布的。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。并非IESG批准的所有文件都适用于任何级别的互联网标准;见RFC 7841第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8541.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问https://www.rfc-editor.org/info/rfc8541.

Copyright Notice

版权公告

Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.

版权(c)2019 IETF信托基金和被确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(https://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents

目录

   1. Introduction ....................................................3
   2. Problem Statement ...............................................4
   3. SPF Trigger Strategies ..........................................6
   4. SPF Delay Strategies ............................................6
      4.1. Two-Step SPF Delay .........................................7
      4.2. Exponential Back-Off Delay .................................7
   5. Mixing Strategies ...............................................9
   6. Benefits of Standardized SPF Delay Behavior ....................13
   7. Security Considerations ........................................14
   8. IANA Considerations ............................................14
   9. References .....................................................14
      9.1. Normative References ......................................14
      9.2. Informative References ....................................15
   Acknowledgements ..................................................15
   Authors' Addresses ................................................15
        
   1. Introduction ....................................................3
   2. Problem Statement ...............................................4
   3. SPF Trigger Strategies ..........................................6
   4. SPF Delay Strategies ............................................6
      4.1. Two-Step SPF Delay .........................................7
      4.2. Exponential Back-Off Delay .................................7
   5. Mixing Strategies ...............................................9
   6. Benefits of Standardized SPF Delay Behavior ....................13
   7. Security Considerations ........................................14
   8. IANA Considerations ............................................14
   9. References .....................................................14
      9.1. Normative References ......................................14
      9.2. Informative References ....................................15
   Acknowledgements ..................................................15
   Authors' Addresses ................................................15
        
1. Introduction
1. 介绍

Link state IGP protocols are based on a topology database on which the SPF algorithm is run to find a consistent set of non-looping routing paths.

链路状态IGP协议基于拓扑数据库,在该数据库上运行SPF算法以找到一致的非循环路由路径集。

Specifications like IS-IS [RFC1195] propose some optimizations of the route computation (see Appendix C.1 of [RFC1195]), but not all implementations follow those non-mandatory optimizations.

IS-IS[RFC1195]等规范建议对路由计算进行一些优化(参见[RFC1195]的附录C.1),但并非所有实现都遵循这些非强制性优化。

In this document, we refer to the events that lead to a new SPF computation based on the topology as "SPF triggers".

在本文档中,我们将导致基于拓扑的新SPF计算的事件称为“SPF触发器”。

Link state IGP protocols, like OSPF [RFC2328] and IS-IS [RFC1195], use multiple timers to control the router behavior in case of churn: SPF delay, Partial Route Computation (PRC) delay, Link State Packet (LSP) generation delay, LSP flooding delay, and LSP retransmission interval.

链路状态IGP协议,如OSPF[RFC2328]和IS-IS[RFC1195],使用多个定时器控制路由器在发生搅动时的行为:SPF延迟、部分路由计算(PRC)延迟、链路状态包(LSP)生成延迟、LSP泛洪延迟和LSP重传间隔。

Some of the values and behaviors of these timers are standardized in protocol specifications, and some are not. The SPF computation-related timers have generally remained unspecified.

这些计时器的一些值和行为在协议规范中是标准化的,而有些则不是。与SPF计算相关的计时器通常尚未确定。

Implementations are free to implement non-standardized timers in any way. For some standardized timers, implementations may offer dynamically adjusted timers to help control the churn rather than use static configurable values.

实现可以自由地以任何方式实现非标准化计时器。对于一些标准化计时器,实现可能会提供动态调整的计时器,以帮助控制搅动,而不是使用静态可配置值。

"SPF delay" refers to the timer in most implementations that specifies the required delay before running an SPF computation after an SPF trigger is received.

“SPF延迟”是指大多数实现中的计时器,它指定在收到SPF触发器后运行SPF计算之前所需的延迟。

A micro-loop is a packet-forwarding loop that may occur transiently among two or more routers in a hop-by-hop packet-forwarding paradigm. These micro-loops are formed when two routers do not update their Forwarding Information Bases (FIBs) for a certain prefix at the same time. The micro-loop phenomenon is described in [MICROLOOP-LSRP].

微循环是一种包转发循环,在逐跳包转发范例中,它可能在两个或多个路由器之间瞬时发生。当两个路由器不同时为某个前缀更新其转发信息库(FIB)时,就会形成这些微环。微环现象在[MICROLOOP-LSRP]中描述。

Two micro-loop mitigation techniques have been defined by IETF. The mechanism in [RFC6976] has not been widely implemented, presumably due to the complexity of the technique. The mechanism in [RFC8333] has been implemented. However, it does not prevent all micro-loops that can occur for a given topology and failure scenario.

IETF定义了两种微回路缓解技术。[RFC6976]中的机制尚未得到广泛实施,可能是由于该技术的复杂性。[RFC8333]中的机制已经实现。然而,它并不能阻止给定拓扑和故障场景中可能发生的所有微循环。

In multi-vendor networks, using different implementations of a link state protocol may favor micro-loop creation during the convergence process due to discrepancies in timers. Service providers already know to use timers with similar values and behaviors for all of the network as a best practice, but this is sometimes not possible due to the limitations of implementations.

在多供应商网络中,由于定时器的差异,使用链路状态协议的不同实现可能有利于在收敛过程中创建微环。服务提供商已经知道在整个网络中使用具有类似值和行为的计时器是一种最佳实践,但由于实现的限制,这有时是不可能的。

This document presents reasons for service providers to have consistent implementation of link state protocols across vendors. In particular, this document analyzes the impact of using different link state IGP implementations in a single network with regard to micro-loops. The analysis focuses on the SPF delay algorithm.

本文档介绍了服务提供商跨供应商一致实施链路状态协议的原因。特别是,本文分析了在单个网络中使用不同链路状态IGP实现对微环路的影响。重点分析了SPF延迟算法。

[RFC8405] defines a solution that partially addresses this problem statement, and this document captures the reasoning of the provided solution.

[RFC8405]定义了部分解决此问题的解决方案,本文档捕获了所提供解决方案的推理。

2. Problem Statement
2. 问题陈述
                              S ---- E
                              |      |
                           10 |      | 10
                              |      |
                              D ---- A
                              |  2
                              Px
        
                              S ---- E
                              |      |
                           10 |      | 10
                              |      |
                              D ---- A
                              |  2
                              Px
        

Figure 1: Network Topology Experiencing Micro-loops

图1:经历微环的网络拓扑

Figure 1 represents a small network composed of four routers (S, D, E, and A). Router S primarily uses the SD link to reach the prefixes behind router D (named Px). When the SD link fails, the IGP convergence occurs. If S converges before E, S will forward the traffic to Px through E; however, because E has not converged yet, E will loop the traffic back to S, leading to a micro-loop.

图1表示由四个路由器(S、D、E和a)组成的小型网络。路由器S主要使用SD链路到达路由器D(命名为Px)后面的前缀。当SD链路失效时,IGP收敛发生。如果S在E之前收敛,S将通过E将流量转发给Px;但是,由于E尚未收敛,E将把流量循环回S,从而形成一个微循环。

The micro-loop appears due to the asynchronous convergence of nodes in a network when an event occurs.

当事件发生时,由于网络中节点的异步聚合而出现微循环。

Multiple factors (or a combination of factors) may increase the probability of a micro-loop appearing:

多个因素(或多个因素的组合)可能会增加出现微环的概率:

o Delay of failure notification: The greater the time gap between E and S being advised of the failure, the greater the chance that a micro-loop may appear.

o 故障通知延迟:通知E和S之间的时间间隔越大,出现微回路的可能性越大。

o SPF delay: Most implementations support a delay for the SPF computation to catch as many events as possible. If S uses an SPF delay timer of x ms, E uses an SPF delay timer of y ms, and x < y, E would start converging after S, leading to a potential micro-loop.

o SPF延迟:大多数实现都支持SPF计算的延迟,以捕获尽可能多的事件。如果S使用x ms的SPF延迟定时器,E使用y ms的SPF延迟定时器,并且x<y,E将在S之后开始收敛,导致潜在的微回路。

o SPF computation time: This is mostly a matter of CPU power and optimizations like incremental SPF. If S computes its SPF faster than E, there is a chance for a micro-loop to appear. Today, CPUs are fast enough to consider the SPF computation time as negligible (on the order of milliseconds in a large network).

o SPF计算时间:这主要是CPU能力和优化(如增量SPF)的问题。如果S的SPF计算速度比E快,则有可能出现微循环。今天,CPU足够快,可以将SPF计算时间视为可忽略的(在大网络中以毫秒为单位)。

o SPF computation ordering: An SPF trigger can be common to multiple IGP areas or levels (e.g., IS-IS Level 1 and Level 2) or to multiple address families with multi-topologies. There is no specified order for SPF computation today, and it is implementation dependent. In such scenarios, if the order of SPF computation done in S and E for each area, level, topology, or SPF algorithm is different, there is a possibility for a micro-loop to appear.

o SPF计算顺序:SPF触发器可以是多个IGP区域或级别(例如,IS-IS级别1和级别2)或具有多拓扑的多个地址族的公用触发器。目前,SPF计算没有指定的顺序,它依赖于实现。在这种情况下,如果在S和E中对每个区域、级别、拓扑或SPF算法进行的SPF计算顺序不同,则有可能出现微回路。

o RIB and FIB prefix insertion speed or ordering: This is highly dependent on the implementation.

o RIB和FIB前缀插入速度或顺序:这在很大程度上取决于实现。

Even if all of these factors increase the probability of a micro-loop appearing, the SPF delay plays a significant role, especially in case of churn. As the number of IGP events increases, the delta between the SPF delay values used by routers becomes significant; in fact, it becomes the dominating factor (especially when one router increases its timer exponentially while another one increases it in a smoother way). Another important factor is the time to update the FIB. As of today, the total FIB update time is the major factor for IGP convergence. However, for micro-loops, what matters is not the total time but the difference in installing the same prefix between nodes. The time to update the FIB may be the main part for the first iteration but not for subsequent IGP events. In addition, the time to update the FIB is very implementation specific and difficult or impossible to standardize, while the SPF delay algorithm may be standardized.

即使所有这些因素都增加了出现微循环的可能性,SPF延迟也起着重要作用,尤其是在发生搅动的情况下。随着IGP事件数量的增加,路由器使用的SPF延迟值之间的增量变得显著;事实上,它成为主导因素(特别是当一个路由器以指数方式增加其计时器,而另一个路由器以更平滑的方式增加其计时器时)。另一个重要因素是更新FIB的时间。到目前为止,FIB的总更新时间是IGP收敛的主要因素。但是,对于微循环,重要的不是总时间,而是节点之间安装相同前缀的差异。更新FIB的时间可能是第一次迭代的主要部分,但不是后续IGP事件的主要部分。此外,更新FIB的时间非常具体,难以或不可能标准化,而SPF延迟算法可能会标准化。

As a consequence, this document will focus on an analysis of SPF delay behavior and associated triggers.

因此,本文将重点分析SPF延迟行为和相关触发器。

3. SPF Trigger Strategies
3. SPF触发策略

Depending on the change advertised in the LSP or LSA (Link State Advertisement), the topology may or may not be affected. An implementation may avoid running the SPF computation (and may only run an IP reachability computation instead) if the advertised change does not affect the topology.

取决于LSP或LSA(链路状态通告)中通告的更改,拓扑可能会或可能不会受到影响。如果公布的更改不影响拓扑,则实现可以避免运行SPF计算(并且可以只运行IP可达性计算)。

Different strategies can trigger the SPF computation:

不同的策略可以触发SPF计算:

1. An implementation may always run a full SPF for any type of change.

1. 对于任何类型的更改,实现都可能始终运行完整的SPF。

2. An implementation may run a full SPF only when required. For example, if a link fails, a local node will run an SPF for its local LSP update. If the LSP from the neighbor (describing the same failure) is received after SPF has started, the local node can decide that a new full SPF is not required as the topology has not changed.

2. 实现只能在需要时运行完整的SPF。例如,如果链接失败,本地节点将为其本地LSP更新运行SPF。如果在SPF启动后接收到来自邻居的LSP(描述相同的故障),则本地节点可以决定不需要新的完整SPF,因为拓扑没有更改。

3. If the topology does not change, an implementation may only recompute the IP reachability.

3. 如果拓扑结构没有改变,实现可能只会重新计算IP可达性。

As noted in Section 1, SPF optimizations are not mandatory in specifications. This has led to the implementation of different strategies.

如第1节所述,SPF优化在规范中不是强制性的。这导致了不同战略的实施。

4. SPF Delay Strategies
4. SPF延迟策略

Implementations of link state routing protocols use different strategies to delay SPF computation. The two most common SPF delay behaviors are the following:

链路状态路由协议的实现使用不同的策略来延迟SPF计算。两种最常见的SPF延迟行为如下:

1. Two-step SPF delay

1. 两步SPF延迟

2. Exponential back-off delay

2. 指数退避延迟

These behaviors are explained in the following sections.

这些行为将在以下部分中解释。

4.1. Two-Step SPF Delay
4.1. 两步SPF延迟

The SPF delay is managed by four parameters:

SPF延迟由四个参数管理:

o rapid delay: the amount of time to wait before running SPF after the initial SPF trigger event.

o 快速延迟:在初始SPF触发事件之后运行SPF之前等待的时间量。

o rapid runs: the number of consecutive SPF runs that can use the rapid delay. When the number is exceeded, the delay moves to the slow delay value.

o 快速运行:可以使用快速延迟的连续SPF运行数。当超过该数字时,延迟移到慢速延迟值。

o slow delay: the amount of time to wait before running an SPF.

o 慢速延迟:运行SPF之前等待的时间量。

o wait time: the amount of time to wait without detecting SPF trigger events before going back to the rapid delay.

o 等待时间:返回快速延迟之前,在未检测到SPF触发事件的情况下等待的时间量。

Figure 2 displays the evolution of the SPF delay timer (based on a two-step delay algorithm) upon the reception of multiple events. Figure 2 considers the following parameters for the algorithm: rapid delay (RD) = 50 ms, rapid runs = 3, slow delay (SD) = 1 s, wait time = 2 s.

图2显示了接收多个事件时SPF延迟计时器(基于两步延迟算法)的演变。图2考虑了算法的以下参数:快速延迟(RD)=50毫秒,快速运行=3,慢速延迟(SD)=1秒,等待时间=2秒。

   SPF delay time
       ^
       |
       |
   SD- |             x xx x
       |
       |
       |
   RD- |   x  x   x                    x
       |
       +---------------------------------> Events
           |  |   |  | || |            |
                           < wait time >
        
   SPF delay time
       ^
       |
       |
   SD- |             x xx x
       |
       |
       |
   RD- |   x  x   x                    x
       |
       +---------------------------------> Events
           |  |   |  | || |            |
                           < wait time >
        

Figure 2: Two-Step SPF Delay Algorithm

图2:两步SPF延迟算法

4.2. Exponential Back-Off Delay
4.2. 指数退避延迟

The algorithm has two modes: fast mode and back-off mode. In fast mode, the SPF delay is usually delayed by a very small amount of time (fast reaction). When an SPF computation is run in fast mode, the algorithm automatically moves to back-off mode (a single SPF run is authorized in fast mode). In back-off mode, the SPF delay increases exponentially in each run. When the network becomes stable, the algorithm moves back to fast mode. The SPF delay is managed by four parameters:

该算法有两种模式:快速模式和退避模式。在快速模式下,SPF延迟通常延迟很短的时间(快速反应)。在快速模式下运行SPF计算时,算法自动移动到后退模式(在快速模式下授权单个SPF运行)。在后退模式下,SPF延迟在每次运行中呈指数级增加。当网络变得稳定时,算法返回到快速模式。SPF延迟由四个参数管理:

o first delay: amount of time to wait before running SPF. This delay is used only when SPF is in fast mode.

o 首次延迟:运行SPF之前等待的时间量。此延迟仅在SPF处于快速模式时使用。

o incremental delay: amount of time to wait before running SPF. This delay is used only when SPF is in back-off mode and increments exponentially at each SPF run.

o 增量延迟:运行SPF之前等待的时间量。此延迟仅在SPF处于后退模式且在每次SPF运行时呈指数递增时使用。

o maximum delay: maximum amount of time to wait before running SPF.

o 最大延迟:运行SPF前等待的最大时间。

o wait time: amount of time to wait without events before going back to fast mode.

o 等待时间:返回快速模式前无事件等待的时间量。

Figure 3 displays the evolution of the SPF delay timer (based on an exponential back-off delay algorithm) upon the reception of multiple events. Figure 3 considers the following parameters for the algorithm: first delay (FD) = 50 ms, incremental delay (ID) = 50 ms, maximum delay (MD) = 1 s, wait time = 2 s

图3显示了接收到多个事件时SPF延迟计时器(基于指数退避延迟算法)的演变。图3考虑了算法的以下参数:第一延迟(FD)=50毫秒,增量延迟(ID)=50毫秒,最大延迟(MD)=1秒,等待时间=2秒

   SPF delay time
       ^
   MD- |               xx x
       |
       |
       |
       |
       |
       |             x
       |
       |
       |
       |          x
       |
   FD- |   x  x                        x
   ID  |
       +---------------------------------> Events
           |  |   |  | || |            |
                           < wait time >
          FM->BM -------------------->FM
        
   SPF delay time
       ^
   MD- |               xx x
       |
       |
       |
       |
       |
       |             x
       |
       |
       |
       |          x
       |
   FD- |   x  x                        x
   ID  |
       +---------------------------------> Events
           |  |   |  | || |            |
                           < wait time >
          FM->BM -------------------->FM
        

Figure 3: Exponential Back-Off Delay Algorithm

图3:指数退避延迟算法

5. Mixing Strategies
5. 混合策略

Figure 1 illustrates a flow of packets from S to D. S uses optimized SPF triggering (full SPF is triggered only when necessary) and two-step SPF delay (rapid delay = 150 ms, rapid runs = 3, slow delay = 1 s). As the implementation of S is optimized, PRC is available. For PRC delay, we consider the same timers as for SPF delay. E uses an SPF trigger strategy that always computes a full SPF for any change and uses the exponential back-off strategy for SPF delay (first delay = 150 ms, incremental delay = 150 ms, maximum delay = 1 s).

图1显示了从S到D的数据包流。S使用优化的SPF触发(仅在必要时触发完整SPF)和两步SPF延迟(快速延迟=150 ms,快速运行=3,慢速延迟=1 S)。随着S的实现得到优化,PRC可用。对于PRC延迟,我们考虑与SPF延迟相同的计时器。E使用SPF触发策略,该策略始终为任何更改计算完整SPF,并为SPF延迟使用指数退避策略(第一延迟=150 ms,增量延迟=150 ms,最大延迟=1 s)。

Consider the following sequence of events:

考虑下面的事件顺序:

o t0=0 ms: A prefix is declared down in the network. This event happens at time=0.

o t0=0毫秒:在网络中声明了一个前缀。此事件发生在时间=0时。

o 200 ms: The prefix is declared up.

o 200毫秒:前缀声明为up。

o 400 ms: The prefix is declared down in the network.

o 400毫秒:前缀在网络中声明为向下。

o 1000 ms: S-D link fails.

o 1000毫秒:S-D链路故障。

   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |    Prefix DOWN    |                  |                  |
   |  10 ms  |                   | Schedule PRC (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    PRC starts    |    SPF starts    |
   |  161 ms |                   |     PRC ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |                  |
   |  163 ms |                   |                  |     SPF ends     |
   |  164 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  178 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Prefix UP     |                  |                  |
   |  212 ms |                   | Schedule PRC (in |                  |
   |         |                   |     150 ms)      |                  |
   |  214 ms |                   |                  | Schedule SPF (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    PRC starts    |                  |
   |  372 ms |                   |     PRC ends     |                  |
   |  373 ms |                   |                  |    SPF starts    |
        
   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |    Prefix DOWN    |                  |                  |
   |  10 ms  |                   | Schedule PRC (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    PRC starts    |    SPF starts    |
   |  161 ms |                   |     PRC ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |                  |
   |  163 ms |                   |                  |     SPF ends     |
   |  164 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  178 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Prefix UP     |                  |                  |
   |  212 ms |                   | Schedule PRC (in |                  |
   |         |                   |     150 ms)      |                  |
   |  214 ms |                   |                  | Schedule SPF (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    PRC starts    |                  |
   |  372 ms |                   |     PRC ends     |                  |
   |  373 ms |                   |                  |    SPF starts    |
        
   |  373 ms |                   |  RIB/FIB starts  |                  |
   |  375 ms |                   |                  |     SPF ends     |
   |  376 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  385 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |    Prefix DOWN    |                  |                  |
   |  410 ms |                   | Schedule PRC (in | Schedule SPF (in |
   |         |                   |     300 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |    PRC starts    |    SPF starts    |
   |  711 ms |                   |     PRC ends     |                  |
   |  712 ms |                   |  RIB/FIB starts  |                  |
   |  713 ms |                   |                  |     SPF ends     |
   |  714 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |                   |   RIB/FIB ends   |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |   S-D link DOWN   |                  |                  |
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     600 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1160 ms |                   |    SPF starts    |                  |
   | 1161 ms |                   |     SPF ends     |                  |
   | 1162 ms |   Micro-loop may  |  RIB/FIB starts  |                  |
   |         |  start from here  |                  |                  |
   | 1175 ms |                   |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1612 ms |                   |                  |    SPF starts    |
   | 1615 ms |                   |                  |     SPF ends     |
   | 1616 ms |                   |                  |  RIB/FIB starts  |
   | 1626 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   +---------+-------------------+------------------+------------------+
        
   |  373 ms |                   |  RIB/FIB starts  |                  |
   |  375 ms |                   |                  |     SPF ends     |
   |  376 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  385 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |    Prefix DOWN    |                  |                  |
   |  410 ms |                   | Schedule PRC (in | Schedule SPF (in |
   |         |                   |     300 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |    PRC starts    |    SPF starts    |
   |  711 ms |                   |     PRC ends     |                  |
   |  712 ms |                   |  RIB/FIB starts  |                  |
   |  713 ms |                   |                  |     SPF ends     |
   |  714 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |                   |   RIB/FIB ends   |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |   S-D link DOWN   |                  |                  |
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     600 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1160 ms |                   |    SPF starts    |                  |
   | 1161 ms |                   |     SPF ends     |                  |
   | 1162 ms |   Micro-loop may  |  RIB/FIB starts  |                  |
   |         |  start from here  |                  |                  |
   | 1175 ms |                   |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1612 ms |                   |                  |    SPF starts    |
   | 1615 ms |                   |                  |     SPF ends     |
   | 1616 ms |                   |                  |  RIB/FIB starts  |
   | 1626 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   +---------+-------------------+------------------+------------------+
        

Table 1: Route Computation When S and E Use Different Behaviors and Multiple Events Appear

表1:S和E使用不同行为且出现多个事件时的路由计算

In Table 1, due to discrepancies in the SPF management and after multiple events of different types, the values of the SPF delay are completely misaligned between node S and node E, leading to the creation of micro-loops.

在表1中,由于SPF管理中的差异以及在不同类型的多个事件之后,SPF延迟的值在节点S和节点E之间完全不对齐,从而导致产生微环路。

The same issue can also appear with only a single type of event as shown below:

同样的问题也可能只出现在单一类型的事件中,如下所示:

   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |     Link DOWN     |                  |                  |
   |  10 ms  |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    SPF starts    |    SPF starts    |
   |  161 ms |                   |     SPF ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |                  |
   |  163 ms |                   |                  |     SPF ends     |
   |  164 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  178 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Link DOWN     |                  |                  |
   |  212 ms |                   | Schedule SPF (in |                  |
   |         |                   |     150 ms)      |                  |
   |  214 ms |                   |                  | Schedule SPF (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    SPF starts    |                  |
   |  372 ms |                   |     SPF ends     |                  |
   |  373 ms |                   |                  |    SPF starts    |
   |  373 ms |                   |  RIB/FIB starts  |                  |
   |  375 ms |                   |                  |     SPF ends     |
   |  376 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  385 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |     Link DOWN     |                  |                  |
   |  410 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  560 ms |                   |    SPF starts    |                  |
   |  561 ms |                   |     SPF ends     |                  |
        
   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |     Link DOWN     |                  |                  |
   |  10 ms  |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    SPF starts    |    SPF starts    |
   |  161 ms |                   |     SPF ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |                  |
   |  163 ms |                   |                  |     SPF ends     |
   |  164 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  178 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Link DOWN     |                  |                  |
   |  212 ms |                   | Schedule SPF (in |                  |
   |         |                   |     150 ms)      |                  |
   |  214 ms |                   |                  | Schedule SPF (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    SPF starts    |                  |
   |  372 ms |                   |     SPF ends     |                  |
   |  373 ms |                   |                  |    SPF starts    |
   |  373 ms |                   |  RIB/FIB starts  |                  |
   |  375 ms |                   |                  |     SPF ends     |
   |  376 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  385 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |     Link DOWN     |                  |                  |
   |  410 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  560 ms |                   |    SPF starts    |                  |
   |  561 ms |                   |     SPF ends     |                  |
        
   |  562 ms |   Micro-loop may  |  RIB/FIB starts  |                  |
   |         |  start from here  |                  |                  |
   |  568 ms |                   |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |                  |    SPF starts    |
   |  713 ms |                   |                  |     SPF ends     |
   |  714 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |     Link DOWN     |                  |                  |
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |       1 s)       |     600 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1612 ms |                   |                  |    SPF starts    |
   | 1615 ms |                   |                  |     SPF ends     |
   | 1616 ms |   Micro-loop may  |                  |  RIB/FIB starts  |
   |         |  start from here  |                  |                  |
   | 1626 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 2012 ms |                   |    SPF starts    |                  |
   | 2014 ms |                   |     SPF ends     |                  |
   | 2015 ms |                   |  RIB/FIB starts  |                  |
   | 2025 ms |  Micro-loop ends  |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   +---------+-------------------+------------------+------------------+
        
   |  562 ms |   Micro-loop may  |  RIB/FIB starts  |                  |
   |         |  start from here  |                  |                  |
   |  568 ms |                   |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |                  |    SPF starts    |
   |  713 ms |                   |                  |     SPF ends     |
   |  714 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |     Link DOWN     |                  |                  |
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |       1 s)       |     600 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1612 ms |                   |                  |    SPF starts    |
   | 1615 ms |                   |                  |     SPF ends     |
   | 1616 ms |   Micro-loop may  |                  |  RIB/FIB starts  |
   |         |  start from here  |                  |                  |
   | 1626 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 2012 ms |                   |    SPF starts    |                  |
   | 2014 ms |                   |     SPF ends     |                  |
   | 2015 ms |                   |  RIB/FIB starts  |                  |
   | 2025 ms |  Micro-loop ends  |   RIB/FIB ends   |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   +---------+-------------------+------------------+------------------+
        

Table 2: Route Computation upon Multiple Link Down Events When S and E Use Different Behaviors

表2:S和E使用不同行为时多个链路中断事件的路由计算

6. Benefits of Standardized SPF Delay Behavior
6. 标准化SPF延迟行为的好处

Table 3 uses the same event sequence as Table 1. Fewer and/or shorter micro-loops are expected using a standardized SPF delay.

表3使用了与表1相同的事件序列。使用标准化的SPF延迟,预期微环更少和/或更短。

   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |    Prefix DOWN    |                  |                  |
   |  10 ms  |                   | Schedule PRC (in | Schedule PRC (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    PRC starts    |    PRC starts    |
   |  161 ms |                   |     PRC ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |     PRC ends     |
   |  163 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  176 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Prefix UP     |                  |                  |
   |  212 ms |                   | Schedule PRC (in |                  |
   |         |                   |     150 ms)      |                  |
   |  213 ms |                   |                  | Schedule PRC (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    PRC starts    |    PRC starts    |
   |  372 ms |                   |     PRC ends     |                  |
   |  373 ms |                   |  RIB/FIB starts  |     PRC ends     |
   |  374 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  384 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |    Prefix DOWN    |                  |                  |
   |  410 ms |                   | Schedule PRC (in | Schedule PRC (in |
   |         |                   |     300 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |    PRC starts    |    PRC starts    |
   |  711 ms |                   |     PRC ends     |     PRC ends     |
   |  712 ms |                   |  RIB/FIB starts  |                  |
   |  713 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |                   |   RIB/FIB ends   |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |   S-D link DOWN   |                  |                  |
        
   +---------+-------------------+------------------+------------------+
   |   Time  |   Network Event   | Router S Events  | Router E Events  |
   +---------+-------------------+------------------+------------------+
   |   t0=0  |    Prefix DOWN    |                  |                  |
   |  10 ms  |                   | Schedule PRC (in | Schedule PRC (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  160 ms |                   |    PRC starts    |    PRC starts    |
   |  161 ms |                   |     PRC ends     |                  |
   |  162 ms |                   |  RIB/FIB starts  |     PRC ends     |
   |  163 ms |                   |                  |  RIB/FIB starts  |
   |  175 ms |                   |   RIB/FIB ends   |                  |
   |  176 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  200 ms |     Prefix UP     |                  |                  |
   |  212 ms |                   | Schedule PRC (in |                  |
   |         |                   |     150 ms)      |                  |
   |  213 ms |                   |                  | Schedule PRC (in |
   |         |                   |                  |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  370 ms |                   |    PRC starts    |    PRC starts    |
   |  372 ms |                   |     PRC ends     |                  |
   |  373 ms |                   |  RIB/FIB starts  |     PRC ends     |
   |  374 ms |                   |                  |  RIB/FIB starts  |
   |  383 ms |                   |   RIB/FIB ends   |                  |
   |  384 ms |                   |                  |   RIB/FIB ends   |
   |         |                   |                  |                  |
   |  400 ms |    Prefix DOWN    |                  |                  |
   |  410 ms |                   | Schedule PRC (in | Schedule PRC (in |
   |         |                   |     300 ms)      |     300 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   |  710 ms |                   |    PRC starts    |    PRC starts    |
   |  711 ms |                   |     PRC ends     |     PRC ends     |
   |  712 ms |                   |  RIB/FIB starts  |                  |
   |  713 ms |                   |                  |  RIB/FIB starts  |
   |  716 ms |                   |   RIB/FIB ends   |   RIB/FIB ends   |
   |         |                   |                  |                  |
   | 1000 ms |   S-D link DOWN   |                  |                  |
        
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1160 ms |                   |    SPF starts    |                  |
   | 1161 ms |                   |     SPF ends     |    SPF starts    |
   | 1162 ms |   Micro-loop may  |  RIB/FIB starts  |     SPF ends     |
   |         |  start from here  |                  |                  |
   | 1163 ms |                   |                  |  RIB/FIB starts  |
   | 1175 ms |                   |   RIB/FIB ends   |                  |
   | 1177 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   +---------+-------------------+------------------+------------------+
        
   | 1010 ms |                   | Schedule SPF (in | Schedule SPF (in |
   |         |                   |     150 ms)      |     150 ms)      |
   |         |                   |                  |                  |
   |         |                   |                  |                  |
   | 1160 ms |                   |    SPF starts    |                  |
   | 1161 ms |                   |     SPF ends     |    SPF starts    |
   | 1162 ms |   Micro-loop may  |  RIB/FIB starts  |     SPF ends     |
   |         |  start from here  |                  |                  |
   | 1163 ms |                   |                  |  RIB/FIB starts  |
   | 1175 ms |                   |   RIB/FIB ends   |                  |
   | 1177 ms |  Micro-loop ends  |                  |   RIB/FIB ends   |
   +---------+-------------------+------------------+------------------+
        

Table 3: Route Computation When S and E Use the Same Standardized Behavior

表3:S和E使用相同标准化行为时的路线计算

As displayed above, there can be other parameters, like router computation power and flooding timers, that may also influence micro-loops. In all the examples in this document comparing the SPF timer behavior of router S and router E, we have made router E a bit slower than router S. This can lead to micro-loops even when both S and E use a common standardized SPF behavior. However, by aligning implementations of the SPF delay, we expect that service providers may reduce the number and duration of micro-loops.

如上所示,可能还有其他参数,如路由器计算能力和泛洪计时器,也可能影响微循环。在本文档中比较路由器S和路由器E的SPF定时器行为的所有示例中,我们使路由器E比路由器S慢一点。这可能导致微循环,即使S和E使用共同的标准化SPF行为。然而,通过调整SPF延迟的实现,我们期望服务提供商可以减少微循环的数量和持续时间。

7. Security Considerations
7. 安全考虑

This document does not introduce any security considerations.

本文档不介绍任何安全注意事项。

8. IANA Considerations
8. IANA考虑

This document has no actions for IANA.

本文档没有针对IANA的操作。

9. References
9. 工具书类
9.1. Normative References
9.1. 规范性引用文件

[RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and dual environments", RFC 1195, DOI 10.17487/RFC1195, December 1990, <https://www.rfc-editor.org/info/rfc1195>.

[RFC1195]Callon,R.“OSI IS-IS在TCP/IP和双环境中的路由使用”,RFC 1195,DOI 10.17487/RFC1195,1990年12月<https://www.rfc-editor.org/info/rfc1195>.

[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, DOI 10.17487/RFC2328, April 1998, <https://www.rfc-editor.org/info/rfc2328>.

[RFC2328]Moy,J.,“OSPF版本2”,STD 54,RFC 2328,DOI 10.17487/RFC2328,1998年4月<https://www.rfc-editor.org/info/rfc2328>.

[RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., Francois, P., and C. Bowers, "Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, DOI 10.17487/RFC8405, June 2018, <https://www.rfc-editor.org/info/rfc8405>.

[RFC8405]DeClaene,B.,Litkowski,S.,Gredler,H.,Lindem,A.,Francois,P.,和C.Bowers,“链路状态IGP的最短路径优先(SPF)退避延迟算法”,RFC 8405,DOI 10.17487/RFC8405,2018年6月<https://www.rfc-editor.org/info/rfc8405>.

9.2. Informative References
9.2. 资料性引用

[MICROLOOP-LSRP] Zinin, A., "Analysis and Minimization of Microloops in Link-state Routing Protocols", Work in Progress, draft-ietf-rtgwg-microloop-analysis-01, October 2005.

[MICROLOOP-LSRP]Zinin,A.,“链路状态路由协议中微环的分析和最小化”,正在进行的工作,草稿-ietf-rtgwg-MICROLOOP-Analysis-01,2005年10月。

[RFC6976] Shand, M., Bryant, S., Previdi, S., Filsfils, C., Francois, P., and O. Bonaventure, "Framework for Loop-Free Convergence Using the Ordered Forwarding Information Base (oFIB) Approach", RFC 6976, DOI 10.17487/RFC6976, July 2013, <https://www.rfc-editor.org/info/rfc6976>.

[RFC6976]Shand,M.,Bryant,S.,Previdi,S.,Filsfils,C.,Francois,P.,和O.Bonaventure,“使用有序转发信息库(oFIB)方法的无循环收敛框架”,RFC 6976,DOI 10.17487/RFC6976,2013年7月<https://www.rfc-editor.org/info/rfc6976>.

[RFC8333] Litkowski, S., Decraene, B., Filsfils, C., and P. Francois, "Micro-loop Prevention by Introducing a Local Convergence Delay", RFC 8333, DOI 10.17487/RFC8333, March 2018, <https://www.rfc-editor.org/info/rfc8333>.

[RFC8333]Litkowski,S.,DeClaene,B.,Filsfils,C.,和P.Francois,“通过引入局部收敛延迟防止微环”,RFC 8333,DOI 10.17487/RFC8333,2018年3月<https://www.rfc-editor.org/info/rfc8333>.

Acknowledgements

致谢

The authors would like to thank Mike Shand and Chris Bowers for their useful comments.

作者要感谢迈克·山德和克里斯·鲍尔斯的有用评论。

Authors' Addresses

作者地址

Stephane Litkowski Orange Business Service

Stephane Litkowski橙色商务服务

   Email: stephane.litkowski@orange.com
        
   Email: stephane.litkowski@orange.com
        

Bruno Decraene Orange

布鲁诺橙

   Email: bruno.decraene@orange.com
        
   Email: bruno.decraene@orange.com
        

Martin Horneffer Deutsche Telekom

马丁·霍内弗德国电信公司

   Email: martin.horneffer@telekom.de
        
   Email: martin.horneffer@telekom.de