MPLS or Multiprotocol Label Switching protocol as we know, combines the performance and capabilities of Layer 2 (data link layer) switching with the proven scalability of Layer 3 (network layer) routing.MPLS provides solution to address a multitude of problems faced in the networks like speed, scalability, quality of service (QoS) management, and traffic engineering. Service providers are realizing larger revenues by the implementation of service models based on the flexibility and value adds provided by MPLS solutions. MPLS also provides an elegant solution to satisfy the bandwidth management and service requirements for next-generation IP–based backbone networks.
The MPLS architecture is remarkable for its flexibility:
• Data can be transferred over any combination of Layer 2 technologies
• Support is offered for all Layer 3 protocols
• Scaling is possible well beyond anything offered in today's networks
Today in this blog, I will explain how labels are generated, shared and used in MPLS. While writing this blog I assume that the reader knows basic MPLS terminology and has some idea about how MPLS works. If you are one of those readers who don’t know about MPLS and have just started learning MPLS and excited about learning more about it, please go through first five section of Multiprotocol Label switching overview once. And for understanding basic MPLS terms, see MPLS FAQ.
MPLS Label Format:
- MPLS uses a 32-bit label field that contains the following information:
- 20-bit label (a number)
- 3-bit experimental field (usually used to carry IP precedence value)
- 1-bit bottom-of-stack indicator (indicates whether this is the last label before the IP header. I.e. VPN or TE or FRR)
- 8-bit TTL (equal to the TTL in IP header)
Now, because of the limitation of space that we have here, I am skipping basic MPLS configuration and those who are interested in basic configuration can download the attachments available with this blog containing whole configuration.
For explaining label exchange process, I have used following diagram:
For explanation I have picked ip address 10.1.5.5/24 of fa 0/1 interface at R5. Now, we will start form R5 and examine FIB (Forward information base) and LFIB (Label forwarding information base) for network 10.1.5.0 towards R1.
You can see that the local binding is “implicit-null” which is expected as the route is locally connected. Network 10.1.5.0 has a remote binding as well however; it will not be used for obvious reasons.
On this router, the local binding is 23 and the router has received three remote bindings one each from R2, R3 and R5.
Again, we have one local binding and two remote bindings, one each from R4 and R2
To check which one of these will really be used for forwarding, we should check LFIB
Same process you can follow on R2, to check which label will be used:
Check LIB first:
Then the LFIB:
I hope that this blog will help you understand the label exchange and utilization process in more detail and with ease. It would be great if you can leave your comments on this one as that will help me understand what you guys are looking forward to on MPLS or MPLS VPN.
Thanks for your time!