In the following picture we can see the transit area which is connected to two others AS. Now let's focus on 3 different situation:
- routers in the transit area are running only IGP
- routers in the transit area are running only iBGP
- routers in the transit area are running both IGP and iBGP
In the second option we are using only iBGP. We redistribute connected into BGP, so every router can ping whatever he want. But BGP is designed to carry a huge number of prefixes. In the path selection, the BGP doesn't take into account the link speed or link delay, which is the strength of link-state IGPs. Moreover BGP has a relative long time to reach the convergence in case of any failures in the network. So this solution may work, however it is not optimal.
Finally we can use IGP and iBGP in our core network. And this solution is almost perfect! Almost, because we have to deploy BGP sessions between every single router (we can use MPLS to avoid this, however this technology is out of scope of this post). Before we saw what happens without a full-mesh BGP sessions (R2, R3 or R4 are dropping all unknown packets). In this solution R1 (or R5) is advertising all BGP prefixes that he learned from R6 to the transit network (so to the R2, R3 or R4) using BGP, so all other routers that are running BGP have the knowledge of all these prefixes, and all other routers in the transit area know exactly how to reach the exit point (R1), because of IGP. In case of any failure in the core network, each router within the transit area is able to update its routing table (and finds out the new route to the exit point) using the IGP and it is much faster that the convergence of BGP.
"And this solution is almost perfect! Almost, because we have to deploy BGP sessions between every single routers (we can use MPLS to avoid this, however this technology is out of scope of this post)"
ReplyDeleteyou can use route reflector to avoid creating BGP session between every router in iBGP.
Yes, you are right. Maybe it will be better to say, that you have to run the BGP process in every single router within your core network.
ReplyDelete