A group of researches presented an “interesting” result @ IETF 87: migrating from IBGP full mesh to IBGP reflectors can introduce temporary forwarding loops. OMG, really?
Don’t panic, the world is not about to become a Vogon hyperspace bypass. Let’s put their results in perspective.
Disclaimer: IBGP loops weren’t the main focus of the IETF 87 paper (do go through the whole slide deck, it’s interesting), but I hate the big fuss some people make out of corner cases.
Can it really happen? Sure it can. You can always find a pathological case where following best practices (assuming they deserve the name) can lead to into a quagmire. Route reflectors are no exception.
Is the migration from full mesh to route reflectors a relevant use case? You tell me – I always tell my clients to use BGP route reflectors whenever they have more than four BGP routers in an AS ... but I’m also positive there are still some neglected networks out there running IBGP full mesh (more probably partial mesh because they forgot to configure a few sessions) on tens of boxes.
Are best practices broken? No. They are just that – a procedure that will cause the least harm (as compared to random ramblings and cut-and-paste of Google-delivered configuration snippets) when executed by people who don’t know what they’re doing.
Or, as John Sonmez put it more politely in his Principles are Timeless, Best Practices are Fads blog post:
If you were to blindly follow any best practice and not apply that best practice in a way that brings out the underlying principle, you would be very unlikely to actually receive any benefit.
Does that make BGP a bad protocol? Contrary to some vocal beliefs, it doesn’t. Every tool (including BGP) can be misused, and a properly focused researcher can generate an NP-hard problem out of every real-life situation. Is screwdriver a bad tool because I have to spend so much energy when hammering nails with it? Maybe not.
Is there a way around the problem? Sure. Deploy MPLS-based forwarding in your network (aka: MPLS is the answer … what was the question?)
Lacking any better idea, use a network simulation tool like Cariden to see what will happen with your network prior to reconfiguring it. More about better ideas in follow-up blog post ... and if you have one, share it in the comments.