iBGP: Synchronizing the Internet - page 3
Peering, Backbones, Stubs, Mangles of Meshes
When you enable synchronization on a router, this means that the IGP (iBGP in this case) and EGP must have the same information before those routes are used. The basic design principal of a transit AS is that you don’t advertise something until you can forward traffic to that route.
A few different approaches are available to deal with iBGP and synchronization. We may turn on the synchronization option on our routers and wait for the IGP to have a route for the destination before it’s advertised to peers. Another option is to simply use a full mesh, so that iBGP convergence isn’t an issue. Clearly that isn’t going to happen when a network’s core needs to scale: it will implement something like reflectors that cause iBGP’s full mesh to be broken.
The real alternative, if you don’t enable synchronization, is to use route recursion. A recursive route lookup uses the BGP next-hop attribute to actually make a different route lookup. The IGP can use the destination network instead of the AS-path to determine where it gets sent. Even if the iBGP hasn’t converged, the routers will still know how to get to that network, since it will exist in the router it was advertised from, who will know the next-hop.
We know that routing isn’t dependent only on the protocols, because we’re human and we’ll have reasons for changing the behavior. BGP is limited in that the AS_PATH length is the only external mechanism used for route selection. That said, however, there are a few attributes of BGP that will allow you to influence the path a packet takes. Without getting into the BGP decision algorithms for route selection, there are still a few BGP attributes that you should know.
The MED, or MultiExit Discriminator, is used to indicate a preferred path. The MED is essentially a weight, and the lower value wins. This is a simple mechanism to say which entrance point you prefer, if you have two options for a path. The MED is used to tell a peer which one it should take, and it is only passed to your direct peers.
The LOCAL_PREF attribute is used to tell your iBGP peers the best way to get out to a differnt AS. Again, this is another mechanism used to prefer one equal (from BGP’s perspective) path over the other.
All in all, iBGP is really just BGP used in a different way. We hope the iBGP discussion has helped to round out your understand of BGP and inter-AS routing.
When he's not writing for Enterprise Networking Planet or riding his motorcycle, Charlie Schluting is the Associate Director of Computing Infrastructure at Portland State University. Charlie also operates OmniTraining.net, and recently finished Network Ninja, a must-read for every network engineer.
Article courtesy of Enterprise Networking Planet, originally published June 29, 2006.