Role of BGP Protocol in MPLS networks- MP-iBGP

I am starting the session about the MP-iBGP protocol and I assumed that people who are going to study this already have the previous knowledge of basic operations of MPLS, LDP, RT and RD in the MPLS domain.

When MPLS control plane comes into picture, people think about the BGP, but instead of using the iBGP protocol why MP-iBGP used in the MPLS environment. Still a lot of people are not able to understand the basic behind this concept.

Fig 1.1- MP-iBGP in MPLS

MP-BGP on PEs is needed to peer between other PE routers because BGP by itself only carries IPv4 routes. The routes that are exchanged between PE routers are VPN routes. So MP-BGP is needed in order to exchange these routes between PE routers. MP-BGP not only advertises the RD/RT values with each prefix but it also advertises the correct VPN Label. 

It is important to understand that MP-BGP is capable of assigning labels to prefixes and advertising them without LDP. This is what the PE routers use to de-multiplex which route belongs to each VPN.

Did you understand this why we are using the MP-iBGP Protocol instead of iBGP in MPLS domain?

Yes you are right i-BGP protocol is not capable of taking VPNv4 prefixes of the customer from one PE to another PE. Even the RT ( Extended community in BGP will be supported only in MP-iBGP Protocol ) to make it unique and required to be there in MPLS domain.
The RT value tells MP-BGP which routes to accept into each VRF and ultimately redistribute to the CE router. This controls which customer sites participate in which VPNs.

The RD is attached to IP prefixes to form VPN prefixes. The RD makes each route unique within MP-BGP. This way we can have overlapping subnets from different VPNs. Without the RD value, BGP would ignore the duplicate prefix and the VPNs would not function properly.

                                               Fig 1.2- MP-iBGP in MPLS                                                       

Role of RD and RT in MPLS ?
RD and RT functions are only used within MP-BGP. When traffic is forwarded in each VPN in MPLS domain there should be some way to distinguish which VPN it belongs for the specified customer. So there will always be a VPN label attached to each traffic flow in the MPLS domain. 

You can see this in packet captures if you ping between customer sites. Each ICMP packet will have a VPN label that is assigned by MP-BGP and used at the receiving PE router to differentiate which VPN the traffic belongs. 

I hope you know how to ping in  the MPLS domain, its different than the default way of pinging the host from the source. But we will come up with another article where we will discuss about the work of Ping and trace command in the MPLS domain.