Recently the RFC8541 has been published. It is a informational RFC about the two link state IGP routing protocols, OSPF and IS-IS in its different implementations. There are at least 5 different OSPF and 4 different IS-IS implementations that come immediately to my mind. The documents gives an good overview about the SPF algorithm, how it is implemented, and what is important to know if the network converges.
This RFC is specially interesting for networks dealing with multi-vendor strategy. Imagine following example:
- SP core - Nokia
- SP distribution - Juniper
- SP edge - Huawei
- DC - Cumulus
This RFC explains following:
- Under which circumstances micro-loops might form as the network converges
- Where micro-loops form
- How long will a micro-loop exists
- Which networking events and settings favour forming of micro-loops
In the RFC there is a simple example network topology depicted and a series of events. At the end of the document there is a timetable which shows a sequence of events and how 2 different implementation might behave, and at which time a micro-loop will form.
There are 4 important informations that I have learned form this RFC, which might be logical and obvious but I have not taken this fact into count if thinking and analysing SPF converging events.
The first important fact is convergence time is hardware dependent. There is a time window where the RIB information is written to the FIB. This time between a best route is found, and it is written to the line-card, or to the hardware might also favour forming of micro-loops. So there is slower hardware and faster hardware, even if dealing with the same vendor.
The second important information is that micro-loop might also appear if dealing with different router CPU's which computes the SPF. These are values that are impossible to control and standardize.
The 3-rd important piece of information is, that although OSPF and IS-IS implementations and its SPF algorithm are standardized, there are values for SPF which are standardized and there are different values which are unspecified.
The last important and interesting piece of information is the good wiki article about OSPF peformance tunning written by a INE worker.