Routing Loops

Terry Slattery
Principal Architect

I’m surprised by people who don’t understand how they could create routing loops with static routes.  These people seem to be really surprised that it happened.  Upon investigation, they don’t seem to understand dynamic routing and prefer to use static routes.

Maybe I’ve been lucky and not enjoyed the thrill of creating a routing loop and then troubleshooting it. Wink
I consider static routes to be a bad idea except in special cases.  I only use them at the edge of the network where using route redistribution could be even more dangerous or complex.  By limiting static routes to specific cases at the edge, I can control where they point and avoid problems.  An example is a static route via a back-door link to a partner’s network.  A corresponding reverse route is needed, or two-way connectivity won’t exist.  Both parties need to agree on the routing mechanism to be used to avoid problems.  Very seldom do I want to import routes from a partner’s routing protocol.  Weirdness within their routing domain may impact my router, so a static route insulates my network from theirs.

My bogon alert goes off whenever someone suggests that a static route point to another part of the IGP domain.  It is generally a sign that we need to review the IGP design and figure out why it isn’t doing what we want.  I call it “band-aiding the network,” because it is applying a patch to the network when someone didn’t want to take the time to understand why the existing system didn’t have the desired connectivity.

Another interesting scenario occurs when a static route exists, and everything works until a seemingly unrelated topology change creates a routing loop.  The cause is often because the IGP, or another static route, is now pointing back along the path of the initial static route.  So the initial change could be weeks or months removed from the failure.

A good analogy is in the software maintenance arena.  The most common source of bugs is due to the maintainer not reading and understanding what the existing code does before implementing a change.  Understanding network configurations is similar to reading a program’s source code.  It is often tempting to slap in a “quick fix,” declare the task closed, and move on to something else.  But in too many cases, the fix has bad side effects and has to be revisited.  If there is no revision tracking (does your network management system collect config revisions?), you have to try to figure out what was changed, then figure out what the right fix should be.   A history of configuration changes is needed if the change was implemented long ago and another seemingly simple change triggered the problem.

How have static routes helped or hurt your network?



Re-posted with Permission 

NetCraftsmen would like to acknowledge Infoblox for their permission to re-post this article which originally appeared in the Applied Infrastructure blog under


Leave a Reply