Saturday, 31 October 2015

EIGRP IP FRR & OSPF LFA

In today's modern networks, fast convergence has become a mandatory requirement.
If we want to achieve fast convergence, each of the steps below need to be optimized

1. Failure Detection
2. Failure Propagation
3. Processing of new information
4. Updating RIB/FIB

1. Failure Detection:- "How long does it take me to detect a failure?"
This normally depends on the Hello/Hold down/Dead timers of the routing protocol. We can either tune these timers or use a mechanism such as "BFD" which we have seen in our earlier post.

2. Failure Propagation:- "How long does it take me to tell everyone else?"
In EIGRP, this is done through Query/Reply packets. We can reduce the Query domain by configuring the routers as "stub".

In OSPF, this depends on the area size and the LSA flooding procedure. We can tune the LSA timers to change this.

3. Processing of new information:- "How long does it take to decide on the new topology?"
This depends on the algorithm used by the individual routing protocol. i.e. EIGRP uses "DUAL", OSPF uses "SPF".

This process is heavily dependent on the physical CPU capacity of the router so it's not very tunable.  

4. Updating RIB/FIB:- "How long does it take me to install the changes?"
This step involves installing the routing topology information to RIB. RIB to install the information in the FIB and then transferring it from software FIB to hardware TCAM.

There are different methods through which we can optimize the convergence time. Some of the methods are "Reactive" while some of them are "Proactive".

Reactive Optimizations:-
  • Fast hellos & BFD
  • OSPF LSA & SPF Pacing
  • FIB prefix prioritization
Proactive optimizations:-
  • EIGRP Feasible Successor & FRR
  • OSPF LFA (Loop Free Alternate)
  • BGP PIC (Prefix Independent Convergence)
  • MPLS Traffic Engineering Fast Reroute (TE FRR)


In this post we will look at EIGRP FRR and OSPF LFA. To understand them, let's look at the topology below.






















At the moment, we are running EIGRP named mode on all the four routers.



We can see that R7 learns about the prefix 1.1.1.1/32 from R6 and R3 and use ECMP (Equal cost multipath).



Now let's change the delay on the R7's interface towards R3.



We can now see that R7 now uses R6 to reach R1 however it also keeps the path through R3 as feasible successor. 







What would happen if the link between R7 and R6 goes down?


As R7 already has a feasible successor route through R3, it will be installed in the routing table from the EIGRP topology table. 

Then this route will be installed in the CEF table and will then end up in the TCAM of the router.

Even through this process seems fairly quick, this can add additional delay in the convergence process. 

There is a way to preempt this process through a feature called "Fast Reroute".

Let's see how it works.

To enable this, I will configure the command "Fast Reroute" in EIGRP process on R7. At the moment this feature is only available in EIGRP named mode.



We can see that R7 still prefers R6 to reach 1.1.1.1/32 and it also has the feasible successor through R3.





If we look at the output closely we can notice that now R7 maintains a "Repair Path" in it's routing table!



We can also see a similar entry in the CEF table!



So now if the primary link fails, R7 won't have to install the feasible successor from topology table to routing table and then to the CEF table as it's already pre-installed which will speed up the convergence.

EIGRP maintains a backup path as a feasible successor if it meets the feasibility condition however OSPF do not have any such mechanism.

OSPF maintains the same database on each router in a particular area hence OSPF can run SPF algorithm with considering neighboring router as a root. This way it can find a loop free alternate path which can be used in the event if the primary path fails.

In our topology, let's run OSPF on all the routers and see how it works.



Similar OSPF process is running on other routers.
Now R7 learns 1.1.1.1/32 through OSPF from both R6 and R3. 



Let's change the cost of the link towards R3 which will make R7 prefers R6.






Now we can configure "fast-reroute" on R7 under the ospf process.



As we saw for EIGRP, OSPF also started showing the repair path. 



We can also see the second entry in the CEF table.



In our topology we only have a single alternate path. If there are multiple possible repair paths, OSPF LFA FRR prioritizes attributes in the following order

1. srlg
2. primary-path
3. interface-disjoint
4. lowest-metric
5. linecard-disjoint
6. node-protecting
7. broadcast-interface-disjoint

More information on this can be found 

http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_ospf/configuration/xe-3s/iro-lfa-frr-xe.html 

http://www.cisco.com/en/US/docs/ios-xml/ios/iproute_eigrp/configuration/15-2s/ire-ipfrr.html

1 comment: