By request from Nassim in Algeria, a non-technical post on MPLS.
There is multiple ways to use MPLS: Basic MPLS, MPLS-TE, MPLS-VPN, Multicast over MPLS.
The goal of Basic MPLS was to improve packet switching in a network. You could use basic MPLS in an Enterprise Network or in a Provider Network. With MPLS, instead of looking for the IP destination on each router, the first router will decide the path across the network, the other routers will only switch the packet. A path is called a Label Switch Path (LSP).
Let’s take a simple network with only two networks (A and B) represented in the routing tables :
So the IGP will established a routing table in each router :
The LDP process defines label values for each destination in the routing table. Labels are locally significant. That means significant only for the router that originate those labels.
The LDP process exchange the label values between the neighbors at the end of the exchange, we will have this status for LDP information :
Based on the routing table and the LDP table, the routers will established the LSP. For example, R1 knows that B is in the direction of R2 and knows that R2 wants 37 as a label for B. So if R1 needs to send a packet to B. It will impose the label (add the label) 37 and send it to R2.
R3, using the same demonstration, will send a packet destinated to B, to R4 with label 25. But also, R3 knows that other routers will send packets destinated to network B to him with label 25 (it is the same but it could have been different.). So if it receive a packet with label 25, it should switch the label from 25 to 25 and send it to R4 .
Each router will do the same process. At the end to go from A to B, we’ll have :
R5 at the end will pop (remove) the label. When R1 will need to send a packet to B, it will be able to select an LSP up to R5. In fact, R1 will add a label (37) on the packet and send it to R2. R2 will not look at layer 3 information but just swith label to pass it to R3 and so on… In fact, I didn’t explain Penultimate Hop Popping. I might explain it in a future post.
This way of doing MPLS is deprecated. Most service providers want to use MPLS-TE instead. With MPLS-TE, you’ve got more control on the path inside the network and you could do some bandwidth reservation. Also doing basic IP routing is not really common on a MPLS network. People want to use application on top of it, like MPLS-VPN or Multicast over MPLS. But that’s the beginning of the MPLS explanation. Version française.