What is MPLS & Why is BGP required with MPLS Implementation?
FYI... The below-mentioned explanation is a very high-level overview of how MPLS & BGP work in conjunction. This post, by no means, contain detailed information regarding MPLS & BGP. If you need more information check out Cisco's site (search keyword: MPLS, BGP) & you will find tons of material with great explanations.
MPLS (Multi-Protocol Label Switching) is basically a WAN technology that allows Routing on Layer2. Now I know, this sounds crazy but just hang in there for moment & I will explain myself. Review the below-mentioned diagram while keeping the OSI Model in mind & it will give you an idea:
As you can see, MPLS is stuffed between Layer2 (Data-Link) & Layer3 (Network), therefore its considered "Layer 2.5" Protocol. Do understand the underlying WAN mechanism or infrastructure is still based of off Layer 2 technologies such as Frame Relay, ATM, PPP, HDLC, etc. MPLS essentially adds the concept of Labels, which makes it a lot quicker to deliver packets to its destination since the Layer3 lookup is not required.
Now where does BGP come into play? Why is BGP required with MPLS Implementation? These questions come to mind because with Frame Relay, ATM, PPP, HDLC we did not need a Layer3 routing protocol. Well, here is the answer:
With strictly Layer2 WAN protocols provided by the service provider or carrier, we only need Layer2 information since we (customers) need to communicate to the provider on Layer2. With MPLS however, things are a bit different. The provider now communicates via BGP. In other words, in the old days provider would only care about Layer2 stuff & the upper layers were our responsibility as far as routing. But with MPLS, the provider now participates in the Routing process & is running BGP on their router. Hence we also have to use BGP on our router for the MPLS to work.
The following WAN Designs will further clarify the above explanation: