Multi-Protocol Label Switching - RFC 2547bis
*** also see Cisco's MPLS page - awesome explanations !!
MPLS is an exciting protocol that has revolutionized data communications !! Therefore anyone working with technology needs to know at least the basics of MPLS.
It all started in 1999 with a high-level description in RFC, #2547bis (bis means "2nd version", and is usually omitted when referring to the RFC). RFC 2547 did not reveal much as far as how MPLS can be implemented, but since then there have been over 30 additional RFC's submitted for clarification and details (see the RFC section for a list with links to all the MPLS RFC's). Here we attempt to discuss this protocol in a simple-as-possible manner, omitting the minutiae, yet supplying enough detail for an overall understanding.
Why MPLS is exploding in Popularity - Traditional layer 3 IP networks are connectionless, best-effort networks with hop-by-hop routing, no QOS, and a requirement of external customer processing & encryption for VPN's. MPLS is capable of routing AND switching, VPN's, and QOS !! The MPLS intelligence itself is almost entirely contained within the PE (Provider Edge) routers. It presents a fairly standard IP network to the CE (Customer Edge) routers. But it offers them a plethora of advantages . . . VPN's that they don't have to configure, QoS, inherent security, and allows private addressing without NAT !!
MPLS combines the security, performance and reliability of legacy data protocols such as Frame Relay and ATM with the routing flexibility of IP. MPLS-based IP VPNs are access method agnostic, thus Frame Relay,ATM, DSL, dial, wireless, cable and Ethernet can all be used for access. Also, since VPN's are created entirely by the SP (Service Provider), customers. Therefore, MPLS is extremely popular !! It is also now a standard, and an “expected” network protocol.
To give you an idea of how popular it is - at Supercomm on June 24, 2004, most of the show floor seemed focused on VoIP with an MPLS IP network. This reflects the reality that MPLS has matured to the point where it is considered to be the defacto standard for network infrastructure. Indeed almost every network diagram shown on the floor showed IP/MPLS at the core.
Connectionless, or Connection Oriented ?? There seems to be some controversy here.
says: "unlike FR and ATM, a significant technical advantage of MPLS
VPNs is that they are connectionless. ( http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/120newft/120t/120t5/vpn.htm#18991
Lucent says: "MPLS is a connection-oriented protocol for routed IP networks supporting IP addressing, signaling, and routing protocols." ( http://www.lucent.com/livelink/090094038005d485_White_paper.pdf )
The truth is that MPLS takes a layer 3, connectionless IP core, adds label switching and intelligence. So it is a connectionless IP substrate with a connection-oriented overlay. It combines the connectionless advantages of IP, with the connection oriented advantages of label-switched paths (LSP's - similar to FR and ATM PVC's).
Layer 2 or Layer 3 ?? there are drafts that define Layer 2 MPLS (see the Layer 2 MPLS section). However, in general, when someone talks about MPLS, without referring to "Layer 2 MPLS", they are referring to RFC2547 MPLS, which is Layer 3. MPLS implements Layer 3 routing, using Layer 3 switching. Traditionally, switching has been Layer 2 (switching layer 2 Ethernet & FR frames, ATM cells, etc), but in this case, the switching is Layer 3 (switching layer 3 IP packets).
The whole concept of "Layer 3 switching" is difficult to comprehend, and began with previous "tag switching" algorithms. It seems like Layer 2 because the mechanics of it are very similar to Layer 2 switching. However, the switching of MPLS labels accomplishes CE-to-CE routing, and therefore is Layer 3. This is a very important concept:
"The switching of MPLS labels, accomplishes CE-to-CE routing, and therefore is Layer 3."
The 3 types of MPLS Routers - there are three MPLS router types defined by RFC2547 . . . CE, PE, and P. Actually, the CE routers are normally outside the MPLS cloud - but they are part of the overall scheme. The MPLS routers append labels to each IP packet, which allows routes to be preconfigured and executed with high-speed, simplistic label swapping algorithms. The core "P" (Provider) routers can operate at extremely high speeds, because like ATM core switches - they only need to spend their CPU cycles on switching, by swapping labels as dicatated by the LDP (Label Distribution Protocol). The "brains" of the network are contained within the "PE" (Provider Edge) routers, which perform the management of the LSP's, traditional routing with the CE routers, and label-swapping routing with the P routers. Since the the network is managed by an overlay of intelligent labeling protocols - instead of complex, hop-by-hop routing - MPLS has great traffic management capabilities (called TE - Traffic Engineering - by the MPLS RFC's). Repeating the diagram from above shows the 3 router types:
VPN's (Virtual Private Networks) - with MPLS, VPN's are usually configured within the provider's network at the edge routers. The customer can segment their VPN's logically on a router, port, or IP address range basis, and send the info to the provider. That's all the customer has to do - the provider will then configure that customer's VPN's on their MPLS edge routers. This offers foolproof traffic separation and security, since the customer does not have to configure or troubleshoot.
BGP Extensions and VPN IPv4 Addresses - MPLS-based IP VPNs are routed using an enhanced (an extension of . . . ) BGP routing protocol. This is described initially in IETF standard RFC 2547, and detailed in later RFC's. Traditional BGP uses 4-byte IPv4 addresses, and MPLS BGP uses 12-byte VPN IPv4 addresses, which add an 8-byte RD (Route Distinguisher) to the 4-byte address. BUT ONLY THE "BRAINS" OF THE MPLS NETWORK . . . THE PE ROUTERS . . . USE THE ROUTE DISTINGUISHERS !!
MPLS Links - MPLS Resource Center http://www.mplsrc.com
MPLS FAQ http://www.mplsrc.com/mplsfaq.shtml
MPLS FAQ http://www.mplsrc.com/mplsfaq.shtml
RFC 2547 - http://www.ietf.org/rfc/rfc3031.txt?number=2547
RFC 3031 - http://www.ietf.org/rfc/rfc3031.txt?number=3031
All MPLS RFC’s – see table in Appendix !!