We are running a provider level MPLS network on Juniper gear at my current organization, so to get a better understanding of the ins and outs of MPLS I created a small lab to play with.
I didn’t have any spare MX series routers, so instead I used three physical SRX 240s configured to be packet-based to simulate a router.
The lab design has two Provider Edge routers (R1 and R3) with two customer VRFs each, and one Core router (R2) to illustrate a BGP free core network.
I used OSPF on the 192.168.x.x networks to learn the 172.16.0.x loopback addresses for MP-BGP. LDP is used on the 192.168.x.x interfaces for label distribution. The customer ranges are in the 10.x.x.x address space.
I very creatively used Route Distinguisher 1 and 2 for customers 1 and 2 respectively.
Below are the routing tables on R1, which shows each customers routing table, MPLS labels, and MP-BGP routes.