Internet Engineering Task Force (IETF) S. Litkowski Request for Comments: 8333 B. Decraene Category: Standards Track Orange ISSN: 2070-1721 C. Filsfils Cisco Systems P. Francois Individual Contributor March 2018
Internet Engineering Task Force (IETF) S. Litkowski Request for Comments: 8333 B. Decraene Category: Standards Track Orange ISSN: 2070-1721 C. Filsfils Cisco Systems P. Francois Individual Contributor March 2018
Micro-loop Prevention by Introducing a Local Convergence Delay
引入局部收敛延迟的微环预防
Abstract
摘要
This document describes a mechanism for link-state routing protocols that prevents local transient forwarding loops in case of link failure. This mechanism proposes a two-step convergence by introducing a delay between the convergence of the node adjacent to the topology change and the network-wide convergence.
本文档描述了链路状态路由协议的一种机制,该机制可在链路故障时防止本地瞬态转发循环。该机制通过在拓扑变化附近节点的收敛和网络范围的收敛之间引入延迟,提出了两步收敛。
Because this mechanism delays the IGP convergence, it may only be used for planned maintenance or when Fast Reroute (FRR) protects the traffic during the time between the link failure and the IGP convergence.
由于该机制延迟了IGP收敛,因此它只能用于计划维护或在链路故障和IGP收敛之间的时间内,当快速重路由(FRR)保护流量时。
The mechanism is limited to the link-down event in order to keep the mechanism simple.
该机制仅限于链接关闭事件,以保持该机制的简单性。
Simulations using real network topologies have been performed and show that local loops are a significant portion (>50%) of the total forwarding loops.
使用真实网络拓扑进行的仿真表明,本地环路在整个转发环路中占很大一部分(>50%)。
Status of This Memo
关于下段备忘
This is an Internet Standards Track document.
这是一份互联网标准跟踪文件。
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). Further information on Internet Standards is available in Section 2 of RFC 7841.
本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(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/rfc8333.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问https://www.rfc-editor.org/info/rfc8333.
Copyright Notice
版权公告
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2018 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 ....................................................4 2. Terminology .....................................................4 2.1. Acronyms ...................................................4 2.2. Requirements Language ......................................5 3. Side Effects of Transient Forwarding Loops ......................5 3.1. FRR Inefficiency ...........................................5 3.2. Network Congestion .........................................8 4. Overview of the Solution ........................................9 5. Specification ...................................................9 5.1. Definitions ................................................9 5.2. Regular IGP Reaction ......................................10 5.3. Local Events ..............................................10 5.4. Local Delay for Link-Down Events ..........................11 6. Applicability ..................................................11 6.1. Applicable Case: Local Loops ..............................12 6.2. Non-applicable Case: Remote Loops .........................12 7. Simulations ....................................................13 8. Deployment Considerations ......................................14 9. Examples .......................................................15 9.1. Local Link-Down Event .....................................15 9.2. Local and Remote Event ....................................19 9.3. Aborting Local Delay ......................................21 10. Comparison with Other Solutions ...............................23 10.1. PLSN .....................................................23 10.2. oFIB .....................................................24 11. IANA Considerations ...........................................24 12. Security Considerations .......................................24 13. References ....................................................25 13.1. Normative References .....................................25 13.2. Informative References ...................................25 Acknowledgements ..................................................26 Authors' Addresses ................................................26
1. Introduction ....................................................4 2. Terminology .....................................................4 2.1. Acronyms ...................................................4 2.2. Requirements Language ......................................5 3. Side Effects of Transient Forwarding Loops ......................5 3.1. FRR Inefficiency ...........................................5 3.2. Network Congestion .........................................8 4. Overview of the Solution ........................................9 5. Specification ...................................................9 5.1. Definitions ................................................9 5.2. Regular IGP Reaction ......................................10 5.3. Local Events ..............................................10 5.4. Local Delay for Link-Down Events ..........................11 6. Applicability ..................................................11 6.1. Applicable Case: Local Loops ..............................12 6.2. Non-applicable Case: Remote Loops .........................12 7. Simulations ....................................................13 8. Deployment Considerations ......................................14 9. Examples .......................................................15 9.1. Local Link-Down Event .....................................15 9.2. Local and Remote Event ....................................19 9.3. Aborting Local Delay ......................................21 10. Comparison with Other Solutions ...............................23 10.1. PLSN .....................................................23 10.2. oFIB .....................................................24 11. IANA Considerations ...........................................24 12. Security Considerations .......................................24 13. References ....................................................25 13.1. Normative References .....................................25 13.2. Informative References ...................................25 Acknowledgements ..................................................26 Authors' Addresses ................................................26
Micro-loops and some potential solutions are described in [RFC5715]. This document describes a simple targeted mechanism that prevents micro-loops that are local to the failure. Based on network analysis, local micro-loops make up a significant portion of the micro-loops. A simple and easily deployable solution for these local micro-loops is critical because these local loops cause some traffic loss after an FRR alternate has been used (see Section 3.1).
[RFC5715]中描述了微回路和一些可能的解决方案。本文档描述了一种简单的有针对性的机制,可防止局部故障的微回路。基于网络分析,局部微环构成了微环的重要部分。对于这些局部微环路,一个简单且易于部署的解决方案至关重要,因为在使用FRR替代方案后,这些局部环路会造成一些流量损失(见第3.1节)。
Consider the case in Figure 1 where S does not have an LFA (Loop-Free Alternate) to protect its traffic to D when the S-D link fails. That means that all non-D neighbors of S on the topology will send to S any traffic destined to D; if a neighbor did not, then that neighbor would be loop-free. Regardless of the advanced FRR technique used, when S converges to the new topology, it will send its traffic to a neighbor that is not loop-free and will thus cause a local micro-loop. The deployment of advanced FRR techniques motivates this simple router-local mechanism to solve this targeted problem. This solution can work with the various techniques described in [RFC5715].
考虑图1中的情况,当S—D链路失败时,S没有LFA(无环路备用)来保护它的流量到D。这意味着拓扑上S的所有非D邻居将向S发送任何目的地为D的流量;如果一个邻居没有,那么该邻居将是无循环的。无论使用何种先进的FRR技术,当S收敛到新拓扑时,它将把它的流量发送到一个没有环路的邻居,从而导致局部微环路。先进的FRR技术的部署促使这种简单的路由器本地机制来解决这一目标问题。此解决方案可与[RFC5715]中描述的各种技术配合使用。
D ------ C | | | | 5 | | S ------ B
D ------ C | | | | 5 | | S ------ B
Figure 1
图1
In Figure 1, all links have a metric of 1 except the B-C link, which has a metric of 5. When the S-D link fails, a transient forwarding loop may appear between S and B if S updates its forwarding entry to D before B does.
在图1中,除B-C链路的度量值为5外,所有链路的度量值均为1。当S-D链路发生故障时,如果S在B之前将其转发条目更新为D,则S和B之间可能会出现一个临时转发循环。
FIB: Forwarding Information Base
转发信息库
FRR: Fast Reroute
快速重路由
IGP: Interior Gateway Protocol
内部网关协议
LFA: Loop-Free Alternate
LFA:无环备用
LSA: Link State Advertisement
链接状态广告
LSP: Link State Packet
链路状态包
MRT: Maximally Redundant Tree
最大冗余树
oFIB: Ordered FIB
oFIB:有序FIB
PLR: Point of Local Repair
PLR:局部维修点
PLSN: Path Locking via Safe Neighbors
PLSN:通过安全邻居进行路径锁定
RIB: Routing Information Base
路由信息库
RLFA: Remote Loop-Free Alternate
RLFA:远程无环路备用
SPF: Shortest Path First
最短路径优先
TTL: Time to Live
TTL:生命的时刻
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”在所有大写字母出现时(如图所示)应按照BCP 14[RFC2119][RFC8174]所述进行解释。
Even if they are very limited in duration, transient forwarding loops may cause significant network damage.
即使它们的持续时间非常有限,瞬时转发循环也可能导致严重的网络损坏。
In Figure 2, we consider an IP/LDP routed network.
在图2中,我们考虑了IP/LDP路由网络。
D 1 | | 1 A ------ B | | ^ 10 | | 5 | T | | | E--------C | 1 1 | S
D 1 | | 1 A ------ B | | ^ 10 | | 5 | T | | | E--------C | 1 1 | S
Figure 2
图2
An RSVP-TE tunnel T, provisioned on C and terminating on B, is used to protect the traffic against C-B link failure (the IGP shortcut feature, defined in [RFC3906], is activated on C). The primary path of T is C->B and FRR is activated on T, providing an FRR bypass or detour using path C->E->A->B. On router C, the next hop to D is the tunnel T, thanks to the IGP shortcut. When the C-B link fails:
RSVP-TE隧道T在C上提供,在B上终止,用于保护通信量不受C-B链路故障的影响(在[RFC3906]中定义的IGP快捷方式功能在C上激活)。T的主要路径是C->B,FRR在T上被激活,通过路径C->E->A->B提供FRR旁路或迂回。在路由器C上,由于IGP快捷方式,到D的下一跳是隧道T。当C-B链路出现故障时:
1. C detects the failure and updates the tunnel path using a preprogrammed FRR path. The traffic path from S to D becomes S->E->C->E->A->B->A->D.
1. C检测故障并使用预先编程的FRR路径更新隧道路径。从S到D的交通路径变为S->E->C->E->A->B->A->D。
2. In parallel, on router C, both the IGP convergence and the TE tunnel convergence (tunnel path recomputation) are occurring:
2. 同时,在路由器C上,IGP收敛和TE隧道收敛(隧道路径重新计算)都在发生:
* The tunnel T path is recomputed and now uses C->E->A->B.
* 隧道T路径重新计算,现在使用C->E->A->B。
* The IGP path to D is recomputed and now uses C->E->A->D.
* 重新计算到D的IGP路径,现在使用C->E->A->D。
3. On C, the tail-end of the TE tunnel (router B) is no longer on the shortest-path tree (SPT) to D, so C does not continue to encapsulate the traffic to D using the tunnel T and updates its forwarding entry to D using the next-hop E.
3. 在C上,TE隧道(路由器B)的末端不再位于到D的最短路径树(SPT)上,因此C不会继续使用隧道T将流量封装到D,并使用下一跳E将其转发条目更新到D。
If C updates its forwarding entry to D before router E, there would be a transient forwarding loop between C and E until E has converged.
如果C在路由器E之前将其转发条目更新为D,则C和E之间将有一个临时转发循环,直到E收敛。
Table 1 describes a theoretical sequence of events happening when the B-C link fails. This theoretical sequence of events should only be read as an example.
表1描述了B-C链路故障时发生的事件的理论顺序。这种理论上的事件顺序只能作为一个例子来阅读。
+------------+--------+---------------------+-----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+--------+---------------------+-----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | |
+------------+--------+---------------------+-----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+--------+---------------------+-----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | |
| S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+60 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+62 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+92 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+163 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating its | | | ms | | RIB/FIB | | | | | | | S->D | t0+255 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | | | | t0+340 | C convergence ends | | | | ms | | | | | | | | | S->D | t0+443 | | E updates its RIB/FIB | | Traffic OK | ms | | for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | +------------+--------+---------------------+-----------------------+
| S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+60 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+62 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+92 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+163 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating its | | | ms | | RIB/FIB | | | | | | | S->D | t0+255 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | | | | t0+340 | C convergence ends | | | | ms | | | | | | | | | S->D | t0+443 | | E updates its RIB/FIB | | Traffic OK | ms | | for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | +------------+--------+---------------------+-----------------------+
Table 1
表1
The issue described here is completely independent of the FRR mechanism involved (e.g., TE FRR, LFA/RLFA, MRT, etc.) when the primary path uses hop-by-hop routing. The protection enabled by FRR works perfectly but only ensures protection until the PLR has converged (as soon as the PLR has converged, it replaces its FRR path with a new primary path). When implementing FRR, a service provider wants to guarantee a very limited loss of connectivity time. The example described in this section shows that the benefit of FRR may be completely lost due to a transient forwarding loop appearing when PLR has converged. Delaying FIB updates after the IGP convergence (1) may allow the FRR path to be kept until the neighbors have converged and (2) preserves the customer traffic.
当主路径使用逐跳路由时,此处描述的问题完全独立于所涉及的FRR机制(例如,TE FRR、LFA/RLFA、MRT等)。FRR启用的保护工作正常,但只能在PLR收敛之前确保保护(一旦PLR收敛,它将用新的主路径替换其FRR路径)。在实施FRR时,服务提供商希望保证有限的连接时间损失。本节中描述的示例表明,由于PLR收敛时出现瞬态转发环路,FRR的优势可能完全丧失。在IGP会聚之后延迟FIB更新(1)可允许保留FRR路径,直到邻居会聚为止(2)保留客户流量。
In Figure 3, when the S-D link fails, a transient forwarding loop may appear between S and B for destination D. The traffic on the S-B link will constantly increase due to the looping traffic to D. Depending on the TTL of the packets, the traffic rate destined to D, and the bandwidth of the link, the S-B link may become congested in a few hundreds of milliseconds and will stay congested until the loop is eliminated.
在图3中,当S-D链路发生故障时,目的地D的S和B之间可能会出现一个瞬态转发环路。S-B链路上的流量将由于到D的循环流量而不断增加。这取决于数据包的TTL、目的地D的流量率和链路的带宽,S-B链路可能会在几百毫秒内变得拥塞,并将保持拥塞状态,直到环路被消除。
1 D ------ C | | 1 | | 5 | | A -- S ------ B / | 1 F E
1 D ------ C | | 1 | | 5 | | A -- S ------ B / | 1 F E
Figure 3
图3
The congestion introduced by transient forwarding loops is problematic as it can affect traffic that is not directly affected by the failing network component. In Figure 3, the congestion of the S-B link will impact some customer traffic that is not directly affected by the failure, e.g., traffic from A to B, F to B, and E to B. Class of service may mitigate the congestion for some traffic. However, some traffic not directly affected by the failure will still be dropped as a router is not able to distinguish the looping traffic from the normally forwarded traffic.
瞬态转发环路引入的拥塞是有问题的,因为它会影响不受故障网络组件直接影响的流量。在图3中,S-B链路的拥塞将影响一些不受故障直接影响的客户流量,例如,从A到B、F到B和e到B的流量。服务等级可能会缓解一些流量的拥塞。但是,由于路由器无法区分循环流量和正常转发的流量,一些未受故障直接影响的流量仍将被丢弃。
This document defines a two-step convergence initiated by the router detecting a failure and advertising the topological change in the IGP. This introduces a delay between network-wide convergence and the convergence of the local router.
本文档定义了由路由器检测故障并在IGP中公布拓扑变化发起的两步收敛。这在网络范围的收敛和本地路由器的收敛之间引入了延迟。
The solution described in this document is limited to local link-down events in order to keep the solution simple.
本文档中描述的解决方案仅限于本地链接关闭事件,以保持解决方案的简单性。
This ordered convergence is similar to the ordered FIB (oFIB) approach defined in [RFC6976], but it is limited to only a "one-hop" distance. As a consequence, it is more simple and becomes a local-only feature that does not require interoperability. This benefit comes with the limitation of eliminating transient forwarding loops involving the local router only. The mechanism also reuses some concepts described in [PLSN].
这种有序收敛类似于[RFC6976]中定义的有序FIB(oFIB)方法,但它仅限于“一跳”距离。因此,它更简单,成为一种仅本地的功能,不需要互操作性。这一好处与消除仅涉及本地路由器的瞬时转发循环的限制有关。该机制还重用了[PLSN]中描述的一些概念。
This document refers to the following existing IGP timers. These timers may be standardized or implemented as a vendor-specific local feature.
本文件涉及以下现有IGP定时器。这些定时器可以标准化或作为供应商特定的本地功能实现。
o LSP_GEN_TIMER: The delay between the consecutive generation of two local LSPs/LSAs. From an operational point of view, this delay is usually tuned to batch multiple local events in a single local LSP/LSA update. In IS-IS, this timer is defined as minimumLSPGenerationInterval [ISO10589]. In OSPF version 2, this timer is defined as MinLSInterval [RFC2328]. It is often associated with a vendor-specific damping mechanism to slow down reactions by incrementing the timer when multiple consecutive events are detected.
o LSP_GEN_TIMER:连续生成两个本地LSP/LSA之间的延迟。从操作角度来看,此延迟通常被调整为在单个本地LSP/LSA更新中批处理多个本地事件。在IS-IS中,该计时器定义为MinimumLSPGGenerationInterval[ISO10589]。在OSPF版本2中,该计时器定义为MinlInterval[RFC2328]。它通常与供应商特定的阻尼机制相关联,当检测到多个连续事件时,通过增加计时器来减缓反应。
o SPF_DELAY: The delay between the first IGP event triggering a new routing table computation and the start of that routing table computation. It is often associated with a damping mechanism to slow down reactions by incrementing the timer when the IGP becomes unstable. As an example, [BACKOFF] defines a standard SPF delay algorithm.
o SPF_延迟:触发新路由表计算的第一个IGP事件与开始该路由表计算之间的延迟。当IGP变得不稳定时,它通常与阻尼机制相关联,通过增加定时器来减缓反应。例如,[退避]定义了标准SPF延迟算法。
This document introduces the following new timer:
本文档介绍了以下新计时器:
o ULOOP_DELAY_DOWN_TIMER: Used to slow down the local node convergence in case of link-down events.
o ULOOP_DELAY_DOWN_TIMER:用于在发生链路中断事件时减慢本地节点收敛速度。
When the status of an adjacency or link changes, the regular IGP convergence behavior of the router advertising the event involves the following main steps:
当邻接或链路的状态发生变化时,公布事件的路由器的常规IGP收敛行为包括以下主要步骤:
1. IGP is notified of the up/down event.
1. IGP收到向上/向下事件的通知。
2. The IGP processes the notification and postpones the reaction for LSP_GEN_TIMER ms.
2. IGP处理通知并延迟LSP_GEN_定时器ms的反应。
3. Upon LSP_GEN_TIMER expiration, the IGP updates its LSP/LSA and floods it.
3. LSP_GEN_计时器到期时,IGP更新其LSP/LSA并将其淹没。
4. The SPF computation is scheduled in SPF_DELAY ms.
4. SPF计算以SPF_DELAY ms为单位进行调度。
5. Upon SPF_DELAY timer expiration, the SPF is computed, and then the RIB and FIB are updated.
5. SPF_延迟计时器到期后,计算SPF,然后更新RIB和FIB。
The mechanism described in this document assumes that there has been a single link failure as seen by the IGP area/level. If this assumption is violated (e.g., multiple links or nodes failed), then regular IP convergence must be applied (as described in Section 5.2).
本文件中描述的机制假设存在IGP区域/级别所看到的单链路故障。如果违反此假设(例如,多个链路或节点失败),则必须应用常规IP聚合(如第5.2节所述)。
To determine if the mechanism is applicable or not, an implementation SHOULD implement logic to correlate the protocol messages (LSP/LSA) received during the SPF scheduling period in order to determine the topology changes that occurred. This is necessary as multiple protocol messages may describe the same topology change, and a single protocol message may describe multiple topology changes. As a consequence, determining a particular topology change MUST be independent of the order of reception of those protocol messages. How the logic works is left to the implementation.
为了确定该机制是否适用,实现应该实现逻辑来关联在SPF调度期间接收的协议消息(LSP/LSA),以便确定发生的拓扑更改。这是必要的,因为多个协议消息可能描述相同的拓扑更改,而单个协议消息可能描述多个拓扑更改。因此,确定特定拓扑变化必须独立于这些协议消息的接收顺序。逻辑的工作方式留给实现。
Using this logic, if an implementation determines that the associated topology change is a single local link failure, then the router MAY use the mechanism described in this document; otherwise, the regular IP convergence MUST be used.
使用此逻辑,如果实现确定关联的拓扑更改是单个本地链路故障,则路由器可以使用本文档中描述的机制;否则,必须使用常规IP聚合。
In Figure 4, let router B be the computing router when the link B-C fails. B updates its local LSP/LSA describing the link B-C as down, C does the same, and both start flooding their updated LSPs/LSAs. During the SPF_DELAY period, B and C learn all the LSPs/LSAs to consider. B sees that C is flooding an advertisement that indicates that a link is down, and B is the other end of that link. B determines that B and C are describing the same single event. Since B receives no other changes, B can determine that this is a local link failure and may decide to activate the mechanism described in this document.
在图4中,当链路B-C发生故障时,让路由器B成为计算路由器。B更新其本地LSP/LSA,将链路B-C描述为断开,C执行相同操作,并且两者都开始泛洪更新的LSP/LSA。在SPFI延迟期间,B和C学习所有LSP/LSA要考虑。B看到C正在淹没一个广告,表明链接已断开,B是该链接的另一端。B确定B和C描述的是同一个事件。由于B没有收到其他更改,B可以确定这是本地链路故障,并可以决定激活本文档中描述的机制。
+--- E ----+--------+ | | | A ---- B -------- C ------ D
+--- E ----+--------+ | | | A ---- B -------- C ------ D
Figure 4
图4
This document introduces a change in step 5 (see list in Section 5.2) so that, upon an adjacency or link-down event, the local convergence is delayed compared to the network-wide convergence. The new step 5 is described below:
本文件对第5步进行了更改(见第5.2节中的列表),以便在发生邻接或链路断开事件时,与网络范围的收敛相比,本地收敛会延迟。新的步骤5描述如下:
5. Upon SPF_DELAY timer expiration, the SPF is computed. If the condition of a single local link-down event has been met, then an update of the RIB and the FIB MUST be delayed for ULOOP_DELAY_DOWN_TIMER ms. Otherwise, the RIB and FIB SHOULD be updated immediately.
5. SPF_延迟计时器到期时,计算SPF。如果满足单个本地链路断开事件的条件,则RIB和FIB的更新必须延迟ULOOP_DELAY_down_TIMER ms。否则,应立即更新RIB和FIB。
If a new convergence occurs while ULOOP_DELAY_DOWN_TIMER is running, ULOOP_DELAY_DOWN_TIMER is stopped, and the RIB/FIB SHOULD be updated as part of the new convergence event.
如果在ULOOP_DELAY_DOWN_计时器运行时发生新的收敛,ULOOP_DELAY_DOWN_计时器将停止,并且RIB/FIB应作为新收敛事件的一部分进行更新。
As a result of this addition, routers local to the failure will converge slower than remote routers. Hence, it SHOULD only be done for a non-urgent convergence, such as administrative deactivation (maintenance) or when the traffic is protected by FRR.
由于这一添加,故障本地路由器的收敛速度将比远程路由器慢。因此,应仅在非紧急聚合情况下进行,如管理停用(维护)或流量受FRR保护时。
As previously stated, this mechanism only avoids the forwarding loops on the links between the node local to the failure and its neighbors. Forwarding loops may still occur on other links.
如前所述,该机制仅避免故障本地节点与其邻居之间链路上的转发循环。转发循环仍可能发生在其他链接上。
In Figure 5, let us consider the traffic from G to F. The primary path is G->D->C->E->F. When the link C-E fails, if C updates its forwarding entry for F before D, a transient loop occurs. This is sub-optimal as it breaks C's FRR forwarding even though upstream routers are still forwarding the traffic to C.
在图5中,让我们考虑从G到F的流量。主路径是G->D>C>E-> F。当链路C-E失败时,如果C在D之前更新其转发项为F,则会发生瞬态循环。这是次优的,因为它中断了C的FRR转发,即使上游路由器仍在将流量转发给C。
A ------ B ----- E | / | | / | G---D------------C F
A ------ B ----- E | / | | / | G---D------------C F
All the links have a metric of 1
所有链接的度量值均为1
Figure 5
图5
By implementing the mechanism defined in this document on C, when the C-E link fails, C delays the update of its forwarding entry to F, in order to allow some time for D to converge. FRR on C keeps protecting the traffic during this period. When ULOOP_DELAY_DOWN_TIMER expires on C, its forwarding entry to F is updated. There is no transient forwarding loop on the link C-D.
通过在C上实现本文档中定义的机制,当C-E链路发生故障时,C将其转发条目的更新延迟到F,以便为D的收敛留出一些时间。C上的FRR在此期间继续保护流量。当ULOOP_DELAY_DOWN_计时器在C上过期时,它向F的转发条目将被更新。链路C-D上没有瞬时转发循环。
In Figure 6, let us consider the traffic from G to K. The primary path is G->D->C->F->J->K. When the C-F link fails, if C updates its forwarding entry to K before D, a transient loop occurs between C and D.
在图6中,让我们考虑从G到K的流量。主路径是G->D>C>F->J-> K。当C-F链路失败时,如果C在D之前将其转发项更新为K,则在C和D之间出现一个瞬态循环。
A ------ B ----- E --- H | | | | G---D--------C ------F --- J ---- K
A ------ B ----- E --- H | | | | G---D--------C ------F --- J ---- K
All the links have a metric of 1 except B-E=15
除B-E=15外,所有链路的度量值均为1
Figure 6
图6
By implementing the mechanism defined in this document on C, when the link C-F fails, C delays the update of its forwarding entry to K, allowing time for D to converge. When ULOOP_DELAY_DOWN_TIMER expires on C, its forwarding entry to F is updated. There is no transient forwarding loop between C and D. However, a transient forwarding loop may still occur between D and A. In this scenario, this mechanism is not enough to address all the possible forwarding loops. However, it does not create additional traffic loss. Besides, in
通过在C上实现本文中定义的机制,当链路C-F失败时,C将其转发条目的更新延迟到K,从而使D有时间收敛。当ULOOP_DELAY_DOWN_计时器在C上过期时,它向F的转发条目将被更新。C和D之间没有瞬态转发循环。但是,D和a之间仍可能出现瞬态转发循环。在这种情况下,此机制不足以解决所有可能的转发循环。但是,它不会造成额外的交通损失。此外,在
some cases -- such as when the nodes update their FIB in the order C, A, D because the router A is quicker than D to converge -- the mechanism may still avoid the forwarding loop that would have otherwise occurred.
在某些情况下——例如,当节点按照C、A、D的顺序更新FIB时,因为路由器A的收敛速度比D快——该机制仍然可以避免本来会发生的转发循环。
Simulations have been run on multiple service-provider topologies. We evaluated the efficiency of the mechanism on eight different service-provider topologies (different network size and design). Table 2 displays the gain for each topology.
模拟已经在多个服务提供商拓扑上运行。我们在八种不同的服务提供商拓扑(不同的网络大小和设计)上评估了该机制的效率。表2显示了每个拓扑的增益。
+----------+------+ | Topology | Gain | +----------+------+ | T1 | 71% | | T2 | 81% | | T3 | 62% | | T4 | 50% | | T5 | 70% | | T6 | 70% | | T7 | 59% | | T8 | 77% | +----------+------+
+----------+------+ | Topology | Gain | +----------+------+ | T1 | 71% | | T2 | 81% | | T3 | 62% | | T4 | 50% | | T5 | 70% | | T6 | 70% | | T7 | 59% | | T8 | 77% | +----------+------+
Table 2
表2
We evaluated the gain as follows:
我们对收益的评估如下:
o We considered a tuple (link A-B, destination D, PLR S, backup next-hop N) as a loop if, upon link A-B failure, the flow from a router S upstream from A (A could be considered as PLR also) to D may loop due to convergence time difference between S and one of its neighbors N.
o 我们将元组(链路a-B、目的地D、PLR S、备份下一跳N)视为一个循环,如果在链路a-B发生故障时,由于S和它的一个邻居N之间的收敛时间差,从a(a也可以被视为PLR)上游路由器S到D的流可能会循环。
o We evaluated the number of potential loop tuples in normal conditions.
o 我们评估了正常情况下潜在循环元组的数量。
o We evaluated the number of potential loop tuples using the same topological input but taking into account that S converges after N.
o 我们使用相同的拓扑输入计算潜在循环元组的数量,但考虑到S在N之后收敛。
o The gain is the relative number of loops (both remote and local) we succeed in suppressing.
o 增益是我们成功抑制的环路(远程和本地)的相对数量。
For topology 1, implementing the local delay prevented 71% of the transient forwarding loops created by the failure of any link. The analysis shows that all local loops are prevented and only remote loops remain.
对于拓扑1,实现本地延迟可以防止71%的由任何链路故障创建的瞬态转发循环。分析表明,所有本地环路都被阻止,只保留远程环路。
Transient forwarding loops have the following drawbacks:
瞬态转发循环有以下缺点:
o They limit FRR efficiency. Even if FRR is activated within 50 ms, as soon as the PLR has converged, the traffic may be affected by a transient loop.
o 它们限制了FRR的效率。即使FRR在50毫秒内激活,一旦PLR聚合,交通可能会受到瞬态环路的影响。
o They may impact traffic not directly affected by the failure (due to link congestion).
o 它们可能会影响不受故障直接影响的流量(由于链路拥塞)。
The local delay mechanism is a transient forwarding loop avoidance mechanism (like oFIB). Even if it only addresses local transient loops, the efficiency versus complexity comparison of the mechanism makes it a good solution. It is also incrementally deployable with incremental benefits, which makes it an attractive option for both vendors to implement and service providers to deploy. Delaying the convergence time is not an issue if we consider that the traffic is protected during the convergence.
本地延迟机制是一种瞬态转发环路避免机制(类似于oFIB)。即使它只处理局部瞬态循环,该机制的效率与复杂性的比较也使它成为一个很好的解决方案。它还可以增量部署,带来增量好处,这使它成为供应商实施和服务提供商部署的一个有吸引力的选项。如果考虑到收敛期间的流量被保护,延迟收敛时间不是问题。
The ULOOP_DELAY_DOWN_TIMER value should be set according to the maximum IGP convergence time observed in the network (usually observed in the slowest node).
ULOOP_DELAY_DOWN_TIMER值应根据在网络中观察到的最大IGP收敛时间(通常在最慢的节点中观察到)进行设置。
This mechanism is limited to link-down events. When a link goes down, it eventually goes back up. As a consequence, with this mechanism deployed, only the link-down event will be protected against transient forwarding loops while the link-up event will not. If the operator wants to limit the impact of transient forwarding loops during the link-up event, it should make sure to use specific procedures to bring the link back online. As examples, the operator can decide to put the link back online outside of business hours, or it can use some incremental metric changes to prevent loops (as proposed in [RFC5715]).
此机制仅限于链接事件。当一个链接断开时,它最终会恢复。因此,部署此机制后,只有链路断开事件将受到保护,不受瞬态转发循环的影响,而链路断开事件不会受到保护。如果运营商希望在连接事件期间限制瞬态转发循环的影响,则应确保使用特定程序使链接重新联机。例如,运营商可以决定在营业时间以外将链接重新联机,或者可以使用一些增量度量更改来防止循环(如[RFC5715]中所建议的)。
We consider the following figure for the examples in this section:
我们在下面的例子中考虑下面的图:
D 1 | F----X | 1 | A ------ B | | 10 | | 5 | | E--------C | 1 1 | S
D 1 | F----X | 1 | A ------ B | | 10 | | 5 | | E--------C | 1 1 | S
Figure 7
图7
The network above is considered to have a convergence time of about 1 second, so ULOOP_DELAY_DOWN_TIMER will be adjusted to this value. We also consider that FRR is running on each node.
上述网络的收敛时间约为1秒,因此ULOOP_DELAY_DOWN_TIMER将调整为该值。我们还考虑了FRR在每个节点上运行。
Table 3 describes the events and their timing on routers C and E when the link B-C goes down. It is based on a theoretical sequence of events that should only been read as an example. As C detects a single local event corresponding to a link-down event (its LSP + LSP from B received), it applies the local delay down behavior, and no micro-loop is formed.
表3描述了链路B-C断开时路由器C和E上的事件及其定时。它基于事件的理论顺序,仅作为示例阅读。当C检测到与链路断开事件对应的单个本地事件(接收到B的LSP+LSP)时,它应用本地延迟断开行为,并且不形成微环。
+------------+---------+---------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+---------+---------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+53 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+60 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+67 | C receives LSP/LSA | | | | ms | from B and floods | | | | | it | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+161 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C delays its | | | | ms | RIB/FIB update (1 | | | | | sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB |
+------------+---------+---------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+---------+---------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+53 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+60 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+67 | C receives LSP/LSA | | | | ms | from B and floods | | | | | it | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+161 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C delays its | | | | ms | RIB/FIB update (1 | | | | | sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB |
| | | | | | | t0+443 | | E updates its | | | ms | | RIB/FIB for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | | | t0+1165 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+1255 | C updates its | | | | ms | RIB/FIB for D | | | | | | | | | t0+1340 | C convergence ends | | | | ms | | | +------------+---------+---------------------+----------------------+
| | | | | | | t0+443 | | E updates its | | | ms | | RIB/FIB for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | | | t0+1165 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+1255 | C updates its | | | | ms | RIB/FIB for D | | | | | | | | | t0+1340 | C convergence ends | | | | ms | | | +------------+---------+---------------------+----------------------+
Table 3
表3
Similarly, upon B-C link-down event, if LSP/LSA from B is received before C detects the link failure, C will apply the route update delay if the local detection is part of the same SPF run. Table 4 describes the associated theoretical sequence of events. It should only been read as an example.
类似地,在B-C链路断开事件中,如果在C检测到链路故障之前从B接收到LSP/LSA,则如果本地检测是同一SPF运行的一部分,C将应用路由更新延迟。表4描述了相关的事件理论顺序。它只能作为一个例子来阅读。
+------------+---------+---------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+---------+---------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+32 | C receives LSP/LSA | | | | ms | from B and floods | | | | | it | | | | | | | | | t0+33 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+50 | C detects the | | | | ms | failure | | | | | | |
+------------+---------+---------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+---------+---------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+32 | C receives LSP/LSA | | | | ms | from B and floods | | | | | it | | | | | | | | | t0+33 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+50 | C detects the | | | | ms | failure | | | | | | |
| S->D | t0+55 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+55 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+70 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+135 | C computes SPF | | | | ms | | | | | | | | | | t0+140 | C delays its | | | | ms | RIB/FIB update (1 | | | | | sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | | t0+443 | | E updates its | | | ms | | RIB/FIB for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | | | t0+1145 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+1255 | C updates its | | | | ms | RIB/FIB for D | | | | | | | | | t0+1340 | C convergence ends | | | | ms | | | +------------+---------+---------------------+----------------------+
| S->D | t0+55 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+55 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+70 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | | | | t0+135 | C computes SPF | | | | ms | | | | | | | | | | t0+140 | C delays its | | | | ms | RIB/FIB update (1 | | | | | sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | | t0+443 | | E updates its | | | ms | | RIB/FIB for D | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | | | t0+1145 | C starts updating | | | | ms | its RIB/FIB | | | | | | | | | t0+1255 | C updates its | | | | ms | RIB/FIB for D | | | | | | | | | t0+1340 | C convergence ends | | | | ms | | | +------------+---------+---------------------+----------------------+
Table 4
表4
Table 5 describes the events and their timing on router C and E when the link B-C goes down and when the link F-X fails in the same time window. C will not apply the local delay because a non-local topology change is also received. Table 5 is based on a theoretical sequence of events that should only been read as an example.
表5描述了当链路B-C下降和链路F-X在同一时间窗口中失败时,路由器C和E上的事件及其定时。C将不应用本地延迟,因为还接收到非本地拓扑更改。表5基于事件的理论顺序,仅作为示例阅读。
+-----------+--------+-------------------+--------------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +-----------+--------+-------------------+--------------------------+ | S->D | | | | | Traffic | | | | | OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | | t0+36 | Link F-X fails | Link F-X fails | | | ms | | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic | ms | | | | OK | | | | | | | | | | | t0+50 | C updates its | | | | ms | local LSP/LSA | | | | | | | | | t0+54 | C receives | | | | ms | LSP/LSA from F | | | | | and floods it | | | | | | | | | t0+60 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+67 | C receives | | | | ms | LSP/LSA from B | | | | | and floods it | | | | | | | | | t0+69 | | E receives LSP/LSA from | | | ms | | F, floods it and | | | | | schedules SPF (100 ms) | | | | | |
+-----------+--------+-------------------+--------------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +-----------+--------+-------------------+--------------------------+ | S->D | | | | | Traffic | | | | | OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | | t0+36 | Link F-X fails | Link F-X fails | | | ms | | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic | ms | | | | OK | | | | | | | | | | | t0+50 | C updates its | | | | ms | local LSP/LSA | | | | | | | | | t0+54 | C receives | | | | ms | LSP/LSA from F | | | | | and floods it | | | | | | | | | t0+60 | C schedules SPF | | | | ms | (100 ms) | | | | | | | | | t0+67 | C receives | | | | ms | LSP/LSA from B | | | | | and floods it | | | | | | | | | t0+69 | | E receives LSP/LSA from | | | ms | | F, floods it and | | | | | schedules SPF (100 ms) | | | | | |
| | t0+70 | C floods its | | | | ms | local updated | | | | | LSP/LSA | | | | | | | | | t0+87 | | E receives LSP/LSA from | | | ms | | C | | | | | | | | t0+117 | | E floods LSP/LSA from C | | | ms | | | | | | | | | | t0+160 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C starts updating | | | | ms | its RIB/FIB (NO | | | | | DELAY) | | | | | | | | | t0+170 | | E computes SPF | | | ms | | | | | | | | | | t0+173 | | E starts updating its | | | ms | | RIB/FIB | | | | | | | S->D | t0+365 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | | | S->D | t0+443 | | E updates its RIB/FIB | | Traffic | ms | | for D | | OK | | | | | | | | | | | t0+450 | C convergence | | | | ms | ends | | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | +-----------+--------+-------------------+--------------------------+
| | t0+70 | C floods its | | | | ms | local updated | | | | | LSP/LSA | | | | | | | | | t0+87 | | E receives LSP/LSA from | | | ms | | C | | | | | | | | t0+117 | | E floods LSP/LSA from C | | | ms | | | | | | | | | | t0+160 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C starts updating | | | | ms | its RIB/FIB (NO | | | | | DELAY) | | | | | | | | | t0+170 | | E computes SPF | | | ms | | | | | | | | | | t0+173 | | E starts updating its | | | ms | | RIB/FIB | | | | | | | S->D | t0+365 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | | | S->D | t0+443 | | E updates its RIB/FIB | | Traffic | ms | | for D | | OK | | | | | | | | | | | t0+450 | C convergence | | | | ms | ends | | | | | | | | | t0+470 | | E convergence ends | | | ms | | | | | | | | +-----------+--------+-------------------+--------------------------+
Table 5
表5
Table 6 describes the events and their timing on routers C and E when the link B-C goes down. In addition, we consider what happens when the F-X link fails during local delay of the FIB update. C will first apply the local delay, but when the new event happens, it will fall back to the standard convergence mechanism without further delaying route insertion. In this example, we consider a ULOOP_DELAY_DOWN_TIMER configured to 2 seconds. Table 6 is based on a theoretical sequence of events that should only been read as an example.
表6描述了链路B-C断开时路由器C和E上的事件及其定时。此外,我们考虑当F-X链路在FIB更新的本地延迟期间发生故障时会发生什么。C将首先应用本地延迟,但当新事件发生时,它将退回到标准收敛机制,而不会进一步延迟路由插入。在这个例子中,我们考虑了一个配置为2秒的uloopyDelay-Delphi定时器。表6基于事件的理论顺序,仅作为示例阅读。
+------------+--------+----------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+--------+----------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+55 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+57 | C schedules SPF (100 | | | | ms | ms) | | | | | | | | | t0+67 | C receives LSP/LSA | | | | ms | from B and floods it | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | |
+------------+--------+----------------------+----------------------+ | Network | Time | Router C Events | Router E Events | | Condition | | | | +------------+--------+----------------------+----------------------+ | S->D | | | | | Traffic OK | | | | | | | | | | S->D | t0 | Link B-C fails | Link B-C fails | | Traffic | | | | | lost | | | | | | | | | | | t0+20 | C detects the | | | | ms | failure | | | | | | | | S->D | t0+40 | C activates FRR | | | Traffic OK | ms | | | | | | | | | | t0+50 | C updates its local | | | | ms | LSP/LSA | | | | | | | | | t0+55 | C floods its local | | | | ms | updated LSP/LSA | | | | | | | | | t0+57 | C schedules SPF (100 | | | | ms | ms) | | | | | | | | | t0+67 | C receives LSP/LSA | | | | ms | from B and floods it | | | | | | | | | t0+87 | | E receives LSP/LSA | | | ms | | from C and floods it | | | | | | | | t0+90 | | E schedules SPF (100 | | | ms | | ms) | | | | | |
| | t0+160 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C delays its RIB/FIB | | | | ms | update (2 sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | | t0+254 | Link F-X fails | Link F-X fails | | | ms | | | | | | | | | | t0+300 | C receives LSP/LSA | | | | ms | from F and floods it | | | | | | | | | t0+303 | C schedules SPF (200 | | | | ms | ms) | | | | | | | | | t0+312 | E receives LSP/LSA | | | | ms | from F and floods it | | | | | | | | | t0+313 | E schedules SPF (200 | | | | ms | ms) | | | | | | | | | t0+502 | C computes SPF | | | | ms | | | | | | | | | | t0+505 | C starts updating | | | | ms | its RIB/FIB (NO | | | | | DELAY) | | | | | | | | | t0+514 | | E computes SPF | | | ms | | | | | | | | | | t0+519 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | S->D | t0+659 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | |
| | t0+160 | C computes SPF | | | | ms | | | | | | | | | | t0+165 | C delays its RIB/FIB | | | | ms | update (2 sec) | | | | | | | | | t0+193 | | E computes SPF | | | ms | | | | | | | | | | t0+199 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | | t0+254 | Link F-X fails | Link F-X fails | | | ms | | | | | | | | | | t0+300 | C receives LSP/LSA | | | | ms | from F and floods it | | | | | | | | | t0+303 | C schedules SPF (200 | | | | ms | ms) | | | | | | | | | t0+312 | E receives LSP/LSA | | | | ms | from F and floods it | | | | | | | | | t0+313 | E schedules SPF (200 | | | | ms | ms) | | | | | | | | | t0+502 | C computes SPF | | | | ms | | | | | | | | | | t0+505 | C starts updating | | | | ms | its RIB/FIB (NO | | | | | DELAY) | | | | | | | | | t0+514 | | E computes SPF | | | ms | | | | | | | | | | t0+519 | | E starts updating | | | ms | | its RIB/FIB | | | | | | | S->D | t0+659 | C updates its | | | Traffic | ms | RIB/FIB for D | | | lost | | | | | | | | |
| S->D | t0+778 | | E updates its | | Traffic OK | ms | | RIB/FIB for D | | | | | | | | t0+781 | C convergence ends | | | | ms | | | | | | | | | | t0+810 | | E convergence ends | | | ms | | | +------------+--------+----------------------+----------------------+
| S->D | t0+778 | | E updates its | | Traffic OK | ms | | RIB/FIB for D | | | | | | | | t0+781 | C convergence ends | | | | ms | | | | | | | | | | t0+810 | | E convergence ends | | | ms | | | +------------+--------+----------------------+----------------------+
Table 6
表6
As stated in Section 4, the local delay solution reuses some concepts already introduced by other IETF proposals but tries to find a trade-off between efficiency and simplicity. This section tries to compare behaviors of the solutions.
如第4节所述,本地延迟解决方案重用了其他IETF提案中已经引入的一些概念,但试图在效率和简单性之间找到折衷。本节尝试比较解决方案的行为。
PLSN [PLSN] describes a mechanism where each node in the network tries to avoid transient forwarding loops upon a topology change by always keeping traffic on a loop-free path for a defined duration (locked path to a safe neighbor). The locked path may be the new primary next hop, another neighbor, or the old primary next hop depending on how the safety condition is satisfied.
PLSN[PLSN]描述了一种机制,其中网络中的每个节点通过在定义的持续时间(到安全邻居的锁定路径)内始终保持无环路路径上的通信量,尝试在拓扑变化时避免瞬态转发环路。锁定路径可以是新的主下一跳、另一个邻居或旧的主下一跳,这取决于安全条件的满足程度。
PLSN does not solve all transient forwarding loops (see Section 4 of [PLSN] for more details).
PLSN不能解决所有瞬态转发环路(更多详细信息,请参见[PLSN]第4节)。
The solution defined in this document reuses some concepts of PLSN but in a more simple fashion:
本文档中定义的解决方案重用了PLSN的一些概念,但采用了更简单的方式:
o PLSN has three different behaviors: (1) keep using the old next hop, (2) use the new primary next hop if it is safe, or (3) use another safe next hop. The local delay solution, however, only has one: keep using the current next hop (i.e., the old primary next hop or an already-activated FRR path).
o PLSN有三种不同的行为:(1)继续使用旧的下一跳,(2)如果安全,则使用新的主下一跳,或者(3)使用另一个安全的下一跳。然而,本地延迟解决方案只有一个:继续使用当前下一跳(即旧的主下一跳或已激活的FRR路径)。
o PLSN may cause some damage while using a safe next hop that is not the new primary next hop if the new safe next hop does not provide enough bandwidth (see [RFC7916]). The solution defined in this document may not experience this issue as the service provider may have control on the FRR path being used, preventing network congestion.
o 如果新的安全下一跃点没有提供足够的带宽,则在使用非新的主下一跃点的安全下一跃点时,PLSN可能会造成一些损坏(请参见[RFC7916])。本文档中定义的解决方案可能不会遇到此问题,因为服务提供商可以控制正在使用的FRR路径,从而防止网络拥塞。
o PLSN applies to all nodes in a network (remote or local changes), while the mechanism defined in this document applies only to the nodes connected to the topology change.
o PLSN适用于网络中的所有节点(远程或本地更改),而本文档中定义的机制仅适用于连接到拓扑更改的节点。
oFIB [RFC6976] describes a mechanism where the convergence of the network upon a topology change is ordered in order to prevent transient forwarding loops. Each router in the network deduces the failure type from the LSA/LSP received and computes/applies a specific FIB update timer based on the failure type and its rank in the network, considering the failure point as root.
oFIB[RFC6976]描述了一种机制,在这种机制中,网络在拓扑变化时的收敛是有序的,以防止瞬时转发循环。网络中的每个路由器根据接收到的LSA/LSP推断出故障类型,并根据故障类型及其在网络中的排名,将故障点视为根,计算/应用特定的FIB更新计时器。
The oFIB mechanism solves all the transient forwarding loops in a network at the price of introducing complexity in the convergence process that may require careful monitoring by the service provider.
oFIB机制解决了网络中的所有瞬态转发循环,但代价是在融合过程中引入复杂性,这可能需要服务提供商仔细监控。
The solution defined in this document reuses the oFIB concept but limits it to the first hop that experiences the topology change. As demonstrated, the mechanism defined in this document allows all the local transient forwarding loops to be solved; these represent a high percentage of all the loops. Moreover, limiting to one hop allows network-wide convergence behavior to be kept.
本文档中定义的解决方案重用了oFIB概念,但仅限于经历拓扑更改的第一个跃点。如前所述,本文件中定义的机制允许解决所有本地瞬态转发循环;这些表示所有循环中的高百分比。此外,限制一跳可以保持网络范围内的收敛行为。
This document has no IANA actions.
本文档没有IANA操作。
This document does not introduce any change in terms of IGP security. The operation is internal to the router. The local delay does not increase the number of attack vectors as an attacker could only trigger this mechanism if it already has the ability to disable or enable an IGP link. The local delay does not increase the negative consequences. If an attacker has the ability to disable or enable an IGP link, it can already harm the network by creating instability and harm the traffic by creating forwarding packet loss and forwarding loss for the traffic crossing that link.
本文件不涉及IGP安全方面的任何变更。该操作是路由器的内部操作。本地延迟不会增加攻击向量的数量,因为攻击者只有在已经能够禁用或启用IGP链路时才能触发此机制。局部延迟不会增加负面后果。如果攻击者能够禁用或启用IGP链路,则它可能已经通过创建不稳定来损害网络,并通过创建转发数据包丢失和通过该链路的流量的转发丢失来损害流量。
[ISO10589] International Organization for Standardization, "Information technology -- Telecommunications and information exchange between systems -- Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)", ISO/IEC 10589:2002, Second Edition, November 2002.
[ISO10589]国际标准化组织,“信息技术——系统间电信和信息交换——与提供无连接模式网络服务协议一起使用的中间系统到中间系统域内路由信息交换协议(ISO 8473)”,ISO/IEC 10589:2002,第二版,2002年11月。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.
[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<https://www.rfc-editor.org/info/rfc2119>.
[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>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8174]Leiba,B.,“RFC 2119关键词中大写与小写的歧义”,BCP 14,RFC 8174,DOI 10.17487/RFC8174,2017年5月<https://www.rfc-editor.org/info/rfc8174>.
[BACKOFF] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., Francois, P., and C. Bowers, "SPF Back-off Delay algorithm for link state IGPs", Work in Progress, draft-ietf-rtgwg-backoff-algo-10, March 2018.
[退避]Decraene,B.,Litkowski,S.,Gredler,H.,Lindem,A.,Francois,P.,和C.Bowers,“链路状态IGP的SPF退避延迟算法”,正在进行的工作,草案-ietf-rtgwg-退避-algo-10,2018年3月。
[PLSN] Zinin, A., "Analysis and Minimization of Microloops in Link-state Routing Protocols", Work in Progress, draft-ietf-rtgwg-microloop-analysis-01, October 2005.
[PLSN]Zinin,A.“链路状态路由协议中微环的分析和最小化”,正在进行的工作,草稿-ietf-rtgwg-microloop-Analysis-01,2005年10月。
[RFC3906] Shen, N. and H. Smit, "Calculating Interior Gateway Protocol (IGP) Routes Over Traffic Engineering Tunnels", RFC 3906, DOI 10.17487/RFC3906, October 2004, <https://www.rfc-editor.org/info/rfc3906>.
[RFC3906]Shen,N.和H.Smit,“计算交通工程隧道上的内部网关协议(IGP)路由”,RFC 3906,DOI 10.17487/RFC3906,2004年10月<https://www.rfc-editor.org/info/rfc3906>.
[RFC5715] Shand, M. and S. Bryant, "A Framework for Loop-Free Convergence", RFC 5715, DOI 10.17487/RFC5715, January 2010, <https://www.rfc-editor.org/info/rfc5715>.
[RFC5715]Shand,M.和S.Bryant,“无环收敛框架”,RFC 5715DOI 10.17487/RFC57152010年1月<https://www.rfc-editor.org/info/rfc5715>.
[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>.
[RFC7916] Litkowski, S., Ed., Decraene, B., Filsfils, C., Raza, K., Horneffer, M., and P. Sarkar, "Operational Management of Loop-Free Alternates", RFC 7916, DOI 10.17487/RFC7916, July 2016, <https://www.rfc-editor.org/info/rfc7916>.
[RFC7916]Litkowski,S.,Ed.,DeClaene,B.,Filsfils,C.,Raza,K.,Horneffer,M.,和P.Sarkar,“无回路备用电源的运行管理”,RFC 7916,DOI 10.17487/RFC7916,2016年7月<https://www.rfc-editor.org/info/rfc7916>.
Acknowledgements
致谢
We would like to thank the authors of [RFC6976] for introducing the concept of ordered convergence: Mike Shand, Stewart Bryant, Stefano Previdi, and Olivier Bonaventure.
我们要感谢[RFC6976]的作者介绍了有序收敛的概念:迈克·山德、斯图尔特·布莱恩特、斯蒂法诺·普雷维迪和奥利维尔·博纳文图尔。
Authors' Addresses
作者地址
Stephane Litkowski Orange
斯蒂芬利特科夫斯基橙
Email: stephane.litkowski@orange.com
Email: stephane.litkowski@orange.com
Bruno Decraene Orange
布鲁诺橙
Email: bruno.decraene@orange.com
Email: bruno.decraene@orange.com
Clarence Filsfils Cisco Systems
克拉伦斯菲尔斯思科系统公司
Email: cfilsfil@cisco.com
Email: cfilsfil@cisco.com
Pierre Francois Individual Contributor
皮埃尔·弗朗索瓦个人投稿人
Email: pfrpfr@gmail.com
Email: pfrpfr@gmail.com