Routing Area Working Group | S. Litkowski |
Internet-Draft | Orange Business Service |
Intended status: Standards Track | June 27, 2014 |
Expires: December 29, 2014 |
Link State protocols SPF trigger and delay algorithm impact on IGP microloops
draft-litkowski-rtgwg-spf-uloop-pb-statement-00
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.
In this document, we are trying to analyze the impact of using different Link State IGP implementations in a single network in regards of microloops. The analysis is focused on the SPF triggers and SPF delay algorithm in a first step.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 29, 2014.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://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.
Link State IGP protocols are using plenty of timers to control the router behavior in case of churn : SPF delay, PRC delay, LSP generation delay, LSP flooding delay, LSP retransmission interval ... We can observe differences between implementations of the same protocol in term of timer management policy. Some timers are static, some timers are managed by a dynamic algorithm (with differences in term of algorithm used) ...
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. We can observe that these micro-loops are formed when two routers do not update their Forwarding Information Base (FIB) for a certain prefix at the same time.
Routers have more and more powerful controlplane and dataplane that reduce the Control plane to Forwarding plane overhead during the convergence process. Even if FIB update is still reasonably the highest contributor in the convergence time for large network, its duration is reducing more and more and may become comparable to protocol timers. This is particular true in small and medium networks.
In multi vendor networks, using different implementations of a link state protocol may favor micro-loops creation during convergence time due to deprecancies of timers. Service Providers are already aware to use similar timers for all the network as best practice, but sometimes it is not possible due to limitation of implementations.
This document will present why it sounds important for service provider to have consistent implementations of Link State protocols across vendors. We are particularly analyzing the impact of using different Link State IGP implementations in a single network in regards of microloops. The analysis is focused on the SPF triggers and SPF delay algorithm in a first step.
This document is only stating the problem, and defining some work items but its not intented to provide a solution.
A ---- B | | 10 | | 10 | | C ---- D | 2 | Px Px Figure 1
The microloop appears due to the asynchronous convergence of nodes in a network when a event occurs.
Multiple factors (and combination of these factors) may increase the probability for a microloop to appear :
This document will focus on analysis SPF delay (and associated triggers).
Depending of the change advertised in LSP/LSA, the topology may be affected or not. An implementation can decide to not run SPF (and only run IP reachability) if the advertised change is not affecting topology.
Different strategies exists to trigger SPF :
Implementations of link state routing protocols use different strategies to delay SPF :
The SPF delay is managed by four parameters :
Example : Rapid delay = 50msec, Rapid runs = 3, Slow delay = 1sec, Wait time = 2sec
SPF delay time ^ | | SD- | x xx x | | | RD- | x x x x | +---------------------------------> Events | | | | || | | < wait time >
The algorithm has two mode : fast mode and backoff mode. In backoff mode, the SPF delay is increasing exponentially at each run. The SPF delay is managed by four parameters :
Example : First delay = 50msec, Incremental delay = 50msec, Maximum delay = 1sec, Wait time = 2sec
SPF delay time ^ MD- | xx x | | | | | | x | | | | x | FD- | x x x ID | +---------------------------------> Events | | | | || | | < wait time > FM->BM -------------------->FM
S ---- E | | 10 | | 10 | | D ---- A | 2 Px Figure 2
In the diagram above, we consider a flow of packet from S to D. We consider that S is using optimized SPF triggering (Full SPF is triggered only when necessary), and two steps SPF delay (rapid=150ms,rapid-runs=3, slow=1s). As implementation of S is optimized, Partial Reachability Computation (PRC) is available. We consider the same timers as SPF for delaying PRC. We consider that E is using a SPF trigger strategy that always compute Full SPF and exponential backoff strategy for SPF delay (start=150ms, inc=150ms, max=1s)
We also consider the following sequence of events (note : the timescale does not intend to represent a real router timescale where jitters are introduced to all timers) :
S timescale E timescale Event timescale | | | | | | <- t0 Event | Schedule PRC (150ms) | Schedule SPF (150ms) | | | | | | | | | | | PRC starts | SPF starts | | PRC ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+180ms | | | | | | < - t0+200ms Event | Schedule PRC (150ms) | Schedule SPF (150ms) | | | | | | | | | | | PRC starts | SPF starts | | PRC ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+380ms | | | < - t0+400ms Event | Schedule PRC (300ms) | Schedule SPF (300ms) | | | | | | | | | | | | | | | | | | | | PRC starts | SPF starts | | PRC ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+730ms | | | | | | | | | | | | | | | < - t0+1000ms Event | Schedule SPF (150ms) | Schedule SPF (600ms) | | | | | | | | SPF starts | | | | | | SPF ends | | | RIB/FIB starts | | | | | } | RIB/FIB ends | | } | | | } | | | } | | | } | | | } | | | } Micro-loop creation | | | } | | SPF starts | } | | | } | | SPF ends | } | | RIB/FIB starts | } | | | } | | RIB/FIB ends | } Figure 3
In the figure above, we can see that due to deprecancies in SPF management, after multiple events (different types of event), SPF delays are completely misaligned between nodes leading to long microloop creation.
S timescale E timescale Event timescale | | | | | | < - t0 Event remote link down | Schedule SPF (150ms) | Schedule SPF (150ms) | | | | | | | | | | | PRC starts | SPF starts | | PRC ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+180ms | | | | | | < - t0+200ms Event remote link down | Schedule SPF (150ms) | Schedule SPF (150ms) | | | | | | | | | | | SPF starts | SPF starts | | SPF ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+380ms | | | < - t0+400ms Event remote link change | Schedule SPF (150ms) | Schedule SPF (300ms) | | | | | | | | SPF starts | | | | | | SPF ends | | | RIB/FIB starts | | | | SPF starts | } | RIB/FIB ends | | } | | SPF ends | } micro-loop creation | | RIB/FIB starts | } | | | } | | RIB/FIB ends | t0+730ms | | | | | | | | | | | | | | | < - t0+1000ms Event | Schedule SPF (1s) | Schedule SPF (600ms) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SPF starts | | | | | | SPF ends | | | RIB/FIB starts | | | | } | | RIB/FIB ends | } | | | } | | | } | | | } microloop creation | | | } | | | } | | | } | SPF starts | | } | | | } | SPF ends | | } | RIB/FIB starts | | } | | | } | RIB/FIB ends | | t0 + 2030ms Figure 4
The same issue can also appear with only single type of events as displayed below :
In order to enhance the current LinkState IGP behavior, authors would encourage working on standardisation of some behaviors.
Authors are proposing the following work items :
S timescale E timescale Event timescale | | | | | | < - t0 Event | Schedule PRC (150ms) | Schedule PRC (150ms) | | | | | | | | | | | PRC starts | PRC starts | | PRC ends | | | RIB/FIB starts | PRC ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+180ms | | | | | | < - t0+200ms Event | Schedule PRC (150ms) | Schedule PRC (150ms) | | | | | | | | | | | PRC starts | PRC starts | | PRC ends | | | RIB/FIB starts | PRC ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+380ms | | | < - t0+400ms Event | Schedule PRC (300ms) | Schedule PRC (300ms) | | | | | | | | | | | | | | | | | | | | PRC starts | PRC starts | | PRC ends | | | RIB/FIB starts | PRC ends | | | RIB/FIB starts | | RIB/FIB ends | | | | RIB/FIB ends | t0+730ms | | | | | | | | | | | | | | | < - t0+1000ms Event | Schedule SPF (150ms) | Schedule SPF (150ms) | | | | | | | | SPF starts | SPF starts | | | | | SPF ends | | | RIB/FIB starts | SPF ends | | | RIB/FIB starts | } microloop creation | RIB/FIB ends | | } | | RIB/FIB ends | | | | | | | Figure 5
Using the same event sequence as in figure 2, we may expect fewer and/or shorter microloops using standardized implementations.
This document does not introduce any security consideration.
This document has no action for IANA.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |