Internal BGP - iBGP

Internal BGP - iBGP#

As most of you may know BGP has two modes external and internal BGP. Today we will be discussing iBGP and some important information about it. I personally think iBGP is very interesting and it's uses in todays enterprise networks is very fascinating. So without further ado lets dive in!

What is iBGP?#

  • Internal BGP is when BGP speakers are within the same autonomous system. This may cause some wide eyes because if you know eBGP uses the AS_PATH attribute to prevent loop prevention.

iBGP Loop Prevention#

How can iBGP prevent loops when they are in the same AS? Well iBGP has a few key rules that must be followed to prevent loops.

  • iBGP peers cannot advertise routes learned from an iBGP peer to other iBGP peers. This means to learn routes peers participating in iBGP must be in a full mesh. This means every iBGP peer must peer with all other iBGP speakers. This would require an IGP used in conjuction with BGP to ensure connectivy is available for all peers to each other.

  • Before a route learned from an iBGP peer is added to the BGP route table it also MUST exist in the IGP route table.

Synchronization And iBGP#

  • The Synchronization rule states that if an AS acts as a transit for another AS, BGP should not advertise a route until all routers within the AS have learned the route via an IGP. This makes sense because again remember all iBGP peers must be fully meshed. If they were not then black-hole route scenarios can occur due to not being able to route to specific peers.

  • Synchronization can be an issue in modern networks. For example the entire BGP routing table would have to exist in the IGP. This can cause memory issues due to the size of the routing table and could end up crashing the router. Synchronization can be turned off however and a few design choices with pros & cons are made at that time.

  • Synchronization can be used and every router will have to be fully meshed with the IGP must learn have external routes redistrubuted into it.

  • Synchronization can be disabled without having the external routes in the IGP. This allows the routes to be added directly into the BGP table and you wont have to worry about overloading the IGP. Route Reflectors and Confederations can be used to resolve the fully mesh issue. Turning synchronization off is the preffered way to run iBGP.