Hello David
MPLS is an old technology, with RFC 3031 being published in January of 2001. The technology was created for something specific, but as needs evolved, so did the technology itself. Let me just touch on some of the points you mentioned:
You’re right that the original drivers behind MPLS included faster IP lookups (label swaps vs. IP longest-prefix-match), the ability to carry diverse protocols over a unified infrastructure, and creating a BGP-free core. However, the RFC actually lists five distinct advantages of MPLS, and raw forwarding speed is only one, and it is actually the least enduring. The deeper architectural drivers were about unifying IP routing with existing ATM/Frame Relay infrastructure, classifying packets at the ingress, and keeping complex forwarding logic at the network edge rather than in the core.
Concerning most of your description about the development of MPLS, you’re basically spot on. In modern deployments, MPLS carries IPv4, IPv6, and Ethernet almost exclusively. The “multiprotocol” name is still valid, but somewhat less important today. As you suggest, what MPLS actually delivers in practice includes L3 VPNs (BGP/MPLS VPN for IP traffic separation per customer), L2 VPNs (EoMPLS, VPLS for Ethernet services), BGP-free core (P routers only need IGP, not full customer routes), and Traffic Engineering (RSVP-TE to steer traffic based on bandwidth and policy, not just IGP metrics)…and none of these benefits depend primarily on lookup speed. They depend on MPLS as a Layer 2.5 tunneling and classification mechanism.
In fact, on Cisco devices, MPLS requires CEF, and the LFIB (Label Forwarding Information Base) runs at line-rate speeds just like IP forwarding. So they’ve come full circle from originally being competitors to becoming complementary technologies.
Now this is the interesting bit. MPLS was designed to accommodate ATM operation! ATM switches could use the same IP routing protocols (OSPF, IS-IS) as edge routers and learn the network topology just like any IP router. But instead of using proprietary ATM signaling (PNNI), they used LDP to exchange label bindings over IP. The clever part: The MPLS label was encoded in the ATM VPI/VCI field.
The result is that no packet-level routing lookups happened inside the ATM core, just label swaps. This was revolutionary for the time: you got the speed advantages of ATM switching combined with the intelligence of IP routing, all unified under one control plane.
Now the practical reason behind this design is this: Major ISPs (like UUnet and MCI if those names ring a bell
) had built backbones with IP routers at the edges and ATM switches in the middle. MPLS (originally Cisco’s “Tag Switching”) was designed to enable those two technologies to work together under unified IP control, competing with proprietary solutions. Legacy ATM switches were not originally IP routers, but MPLS allowed suitably upgraded ATM switches to participate as LSRs, while preserving the ATM-style cell switching in the data plane: the ingress router requested labels chain-style, and each ATM-LSR allocated a VPI/VCI on demand.
Now, these VPI/VCI labels have left some historical fingerprints on MPLS and LDP design. Modern MPLS runs over Ethernet using a label header directly without any VPI/VCI mappings. A lot of LDP’s complexity (label allocation modes, per-interface label spaces, etc.) is legacy from accommodating ATM’s hardware constraints.
Indeed, ATM is essentially dead today, but understanding how MPLS unified the IP and ATM control planes provides insight into MPLS architecture and why it is designed as it is.
I hope this has been helpful!
Laz