Multiprotocol Label Switching
Multiprotocol Label Switching (MPLS) is a routing technique in
Role and functioning
In an MPLS network, labels are assigned to data packets. Packet-forwarding decisions are made solely on the contents of this label, without the need to examine the packet itself. This allows one to create end-to-end circuits across any type of transport medium, using any protocol. The primary benefit is to eliminate dependence on a particular
MPLS operates at a layer that is generally considered to lie between traditional definitions of OSI Layer 2 (
A number of different technologies were previously deployed with essentially identical goals, such as Frame Relay and ATM. Frame Relay and ATM use labels to move
History
- 1994: IETF BOF
- 1995: ACM SIGCOMM annual conference[4]
- 1996: Ipsilon, Cisco and IBM announced label switching plans
- 1997: Formation of the IETF MPLS working group
- 1999: First MPLS VPN (L3VPN) and TE deployments
- 2000: MPLS Traffic Engineering
- 2001: First MPLS Request for Comments (RFCs) published[5]
- 2002: AToM (L2VPN)
- 2004: GMPLS; Large-scale L3VPN
- 2006: Large-scale TE "Harsh"
- 2007: Large-scale L2VPN
- 2009: Label Switching Multicast
- 2011: MPLS transport profile
In 1996 a group from
Some time later it was recognized that the work on threaded indices by Girish Chandranmenon and George Varghese had invented the idea of using labels to represent destination prefixes that was central to tag switching.[10]
One original motivation was to allow the creation of simple high-speed switches since for a significant length of time it was considered impractical to forward IP packets entirely in hardware. Advances in
Operation
MPLS works by prefixing packets with an MPLS header, containing one or more labels. This is called a label
- A 20-bit label value. A label with the value of 1 represents the router alert label.
- A 3-bit Traffic Class field for QoS (quality of service) priority and ECN (Explicit Congestion Notification). Prior to 2009 this field was called EXP.[12]
- A 1-bit bottom of stack flag. If this is set, it signifies that the current label is the last in the stack.
- An 8-bit TTL (time to live) field.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Label | TC: Traffic Class (QoS and ECN) | S: Bottom-of-Stack | TTL: Time-to-Live |
These MPLS-labeled packets are switched based on the label instead of a lookup in the IP routing table. When MPLS was conceived, label switching was faster than a routing table lookup because switching could take place directly within the switched fabric and avoided CPU and software involvement.
The presence of such a label has to be indicated to the switch. In the case of Ethernet frames this is done through the use of EtherType values 0x8847 and 0x8848, for unicast and multicast connections respectively.[13]
Label switch router
An MPLS router that performs routing based only on the label is called a label switch router (LSR) or transit router. This is a type of router located in the middle of an MPLS network. It is responsible for switching the labels used to route packets.
When an LSR receives a packet, it uses the label included in the packet header as an index to determine the next hop on the label-switched path (LSP) and a corresponding label for the packet from a lookup table. The old label is then removed from the header and replaced with the new label before the packet is routed forward.
Label edge router
A label edge router (LER, also known as edge LSR) is a router that operates at the edge of an MPLS network and acts as the entry and exit points for the network. LERs push an MPLS label onto an incoming packet[b] and pop it off an outgoing packet. Alternatively, under penultimate hop popping this function may instead be performed by the LSR directly connected to the LER.
When forwarding an
Provider router
In the specific context of an MPLS-based virtual private network (VPN), LERs that function as ingress or egress routers to the VPN are often called provider edge (PE) routers. Devices that function only as transit routers are similarly called provider (P) routers.[14] The job of a P router is significantly easier than that of a PE router.
Label Distribution Protocol
Labels may be distributed between LERs and LSRs using the Label Distribution Protocol (LDP)[15] or Resource Reservation Protocol (RSVP).[16] LSRs in an MPLS network regularly exchange label and reachability information with each other using standardized procedures in order to build a complete picture of the network so that they can then use that information to forward the packets.
Label-switched paths
Label-switched paths (LSPs) are established by the network operator for a variety of purposes, such as to create network-based IP virtual private networks or to route traffic along specified paths through the network. In many respects, LSPs are not different from
Routing
When an unlabeled packet enters the ingress router and needs to be passed on to an MPLS tunnel, the router first determines the forwarding equivalence class (FEC) for the packet and then inserts one or more labels in the packet's newly created MPLS header. The packet is then passed on to the next hop router for this tunnel.
From an OSI model perspective, the MPLS Header is added between the network layer header and link layer header.[17]
When a labeled packet is received by an MPLS router, the topmost label is examined. Based on the contents of the label a swap, push[c] or pop [d] operation is performed on the packet's label stack. Routers can have prebuilt lookup tables that tell them which kind of operation to do based on the topmost label of the incoming packet so they can process the packet very quickly.
- In a swap operation the label is swapped with a new label, and the packet is forwarded along the path associated with the new label.
- In a push operation a new label is pushed on top of the existing label, effectively encapsulating the packet in another layer of MPLS. This allows hierarchical routing of MPLS packets. Notably, this is used by MPLS VPNs.
- In a pop operation the label is removed from the packet, which may reveal an inner label below. This process is called decapsulation. If the popped label was the last on the label stack, the packet leaves the MPLS tunnel. This can be done by the egress router, or at the penultimate hop.
During these operations, the contents of the packet below the MPLS Label stack are not examined. Indeed, transit routers typically need only to examine the topmost label on the stack. The forwarding of the packet is done based on the contents of the labels, which allows protocol-independent packet forwarding that does not need to look at a protocol-dependent routing table and avoids the expensive IP longest prefix match at each hop.
At the egress router, when the last label has been popped, only the payload remains. This can be an IP packet or any type of packet. The egress router must, therefore, have routing information for the packet's payload since it must forward it without the help of label lookup tables. An MPLS transit router has no such requirement.
Usually[e], the last label is popped off at the penultimate hop (the hop before the egress router). This is called penultimate hop popping (PHP). This is useful in cases where the egress router has many packets leaving MPLS tunnels and thus spends significant CPU resources on these transitions. By using PHP, transit routers connected directly to this egress router effectively offload it, by popping the last label themselves. In the label distribution protocols, this PHP label pop action is advertised as label value 3 (implicit null) and is never found in a label, since it means that the label is to be popped.
Several MPLS services including end-to-end QoS management,[18] and 6PE,[19] require keeping a label even between the penultimate and the last MPLS router, with a label disposition always done on the last MPLS router, ultimate hop popping (UHP).[20][21] Some specific label values have been notably reserved[22][23] for this use. In this scenario the remaining label stack entry conveys information to the last hop (such as its Traffic Class field for QoS information), while also instructing the last hop to pop the label stack using one of the following reserved label values:
- 0: Explicit-null for IPv4
- 2: Explicit-null for IPv6
An MPLS header does not identify the type of data carried inside the MPLS path. To carry two different types of traffic between the same two routers, with different treatment by the core routers for each type, a separate MPLS path for each type of traffic is required.
Label-switched path
A label-switched path (LSP) is a path through an MPLS network set up by the
The path begins at an LER, which makes a decision on which label to prefix to a packet based on the appropriate FEC. It then forwards the packet along to the next router in the path, which swaps the packet's outer label for another label, and forwards it to the next router. The last router in the path removes the label from the packet and forwards the packet based on the header of its next layer, for example
The router which first prefixes the MPLS header to a packet is an ingress router. The last router in an LSP, which pops the label from the packet, is called an egress router. Routers in between, which need only swap labels, are called transit routers or label switch routers (LSRs).
Note that LSPs are unidirectional; they enable a packet to be label switched through the MPLS network from one endpoint to another. Since bidirectional communication is typically desired, the aforementioned dynamic signaling protocols can automatically set up a separate LSP in the opposite direction.
When link protection is considered, LSPs can be categorized as primary (working), secondary (backup) and tertiary (LSP of last resort).
Installing and removing paths
There are two standardized protocols for managing MPLS paths: the Label Distribution Protocol (LDP) and RSVP-TE, an extension of the Resource Reservation Protocol (RSVP) for traffic engineering.[24][25] Furthermore, there exist extensions of the Border Gateway Protocol (BGP) that can be used to manage an MPLS path.[14][26][27]
Multicast addressing
Multicast was, for the most part, an afterthought in MPLS design. It was introduced by point-to-multipoint RSVP-TE.[28] It was driven by service provider requirements to transport broadband video over MPLS.
The hub and spoke multipoint LSP (HSMP LSP) was also introduced by IETF. HSMP LSP is mainly used for multicast, time synchronization, and other purposes.
Relationship to Internet Protocol
MPLS works in conjunction with the Internet Protocol (IP) and its routing protocols, usually
In a pure IP network, the shortest path to a destination is chosen even when the path becomes congested. Meanwhile, in an IP network with MPLS Traffic Engineering CSPF routing, constraints such as the RSVP bandwidth of the traversed links can also be considered, such that the shortest path with available bandwidth will be chosen. MPLS Traffic Engineering relies upon the use of TE extensions to Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS) and RSVP. In addition to the constraint of RSVP bandwidth, users can also define their own constraints by specifying link attributes and special requirements for tunnels to route (or not to route) over links with certain attributes.[30]
For end-users the use of MPLS is not visible directly, but can be assumed when doing a
MPLS local protection
In the event of a network element failure when recovery mechanisms are employed at the IP layer, restoration may take several seconds which may be unacceptable for real-time applications such as
Comparisons
MPLS can make use of existing ATM network or Frame Relay infrastructure, as its labeled flows can be mapped to ATM or Frame Relay virtual-circuit identifiers, and vice versa.
Frame Relay
Telcos often sold Frame Relay to businesses looking for a cheaper alternative to dedicated lines; its use in different geographic areas depended greatly on governmental and telecommunication companies' policies.
Many customers migrated from Frame Relay to MPLS over IP or Ethernet, which in many cases reduced costs and improved manageability and performance of their wide area networks.[35]
Asynchronous Transfer Mode
While the underlying protocols and technologies are different, both MPLS and
The most significant difference is in the transport and encapsulation methods. MPLS is able to work with variable-length packets while ATM uses fixed-length (53 bytes) cells. Packets must be segmented, transported and re-assembled over an ATM network using an adaptation layer, which adds significant complexity and overhead to the data stream. MPLS, on the other hand, simply adds a label to the head of each packet and transmits it on the network.
Differences exist, as well, in the nature of the connections. An MPLS connection (LSP) is unidirectional, allowing data to flow in only one direction between two endpoints. Establishing two-way communications between endpoints requires a pair of LSPs be established. Because two LSPs are used, data flowing in the forward direction may use a different path from data flowing in the reverse direction. ATM point-to-point connections (virtual circuits), on the other hand, are bidirectional, allowing data to flow in both directions over the same path.[f]
Both ATM and MPLS support tunneling of connections inside connections. MPLS uses label stacking to accomplish this while ATM uses virtual paths. MPLS can stack multiple labels to form tunnels within tunnels. The ATM virtual path indicator (VPI) and virtual circuit indicator (VCI) are both carried together in the cell header, limiting ATM to a single level of tunneling.
The biggest advantage that MPLS has over ATM is that it was designed from the start to be complementary to IP. Modern routers can support both MPLS and IP natively across a common interface allowing network operators great flexibility in
Deployment
MPLS is standardized by the IETF in
Evolution
MPLS was originally proposed to allow high-performance traffic forwarding and
Competitor protocols
MPLS can exist in both an
See also
- Generalized Multi-Protocol Label Switching
- Label Information Base
- MPLS VPN
- Per-hop behavior
- Virtual private LAN service
Notes
- network latencye.g., to support voice traffic was the motivation for the small-cell nature of ATM.
- ^ In some applications, the packet presented to the LER already may have a label, so that the new LER pushes a second label onto the packet.
- ^ A.k.a. impose
- ^ A.k.a. dispose
- ^ This is the default behavior with only one label in the stack, accordingly to the MPLS specification.
- ^ Both SVC and PVC ATM connections are bidirectional.[36]
References
- ^ "What is Multiprotocol Label Switching (MPLS)?".
- ISBN 978-1587051975.
- ISBN 0471346403.
- doi:10.17487/RFC3031
- doi:10.17487/RFC1953.
- doi:10.1109/5.650179.
- ^ "IETF - Tag Distribution Protocol (draft-doolan-tdp-spec-00)". IETF. September 1996.
- ^ "Multiprotocol Label Switching (mpls) WG History". IETF.
- ^ L. Peterson and B. Davie (2022). Computer Networks: A Systems Approach. p. 336.
- doi:10.17487/RFC3469
- doi:10.17487/RFC5462
- ISBN 1587050811
- ^ doi:10.17487/RFC4364
- ^ B. Thomas; E. Gray (January 2001), RFC 3037: LDP Applicability, IETF
- ^ R. Braden; L. Zhang (September 1997), RFC 2205: Resource ReSerVation Protocol (RSVP), IETF
- ^ Savecall telecommunication consulting company Germany Savecall - MPLS
- ^ Doyle, Jeff. "Understanding MPLS Explicit and Implicit Null Labels". Network World. Retrieved 2018-03-13.
- ^ "6PE FAQ: Why Does 6PE Use Two MPLS Labels in the Data Plane?". Cisco. Retrieved 2018-03-13.
- OCLC 297576680.
- ^ "Configuring Ultimate-Hop Popping for LSPs - Technical Documentation - Support - Juniper Networks". www.juniper.net. Retrieved 2018-03-13.
- doi:10.17487/RFC3032. Retrieved 2018-03-13.)
{{cite web}}
: CS1 maint: multiple names: authors list (link - doi:10.17487/RFC4182. Retrieved 2018-03-13.
- doi:10.17487/RFC5036
- doi:10.17487/RFC3209
- doi:10.17487/RFC3107
- doi:10.17487/RFC4781
- doi:10.17487/RFC4875
- doi:10.17487/RFC3985
- ISBN 978-1587051975.
- ^ a b Aslam; et al. (2005-02-02), NPP: A Facility Based Computation Framework for Restoration Routing Using Aggregate Link Usage Information, QoS-IP 2005 : quality of service in multiservice IP network, retrieved 2006-10-27.
- S2CID 5659648.
- ^ S2CID 195347236.
- S2CID 13870642.
- ^ Tran Cong Hung, Le Quoc Cuong, Tran Thi Thuy Mai (10 Feb 2019). "A Study on Any Transport over MPLS (AToM)" (PDF). International Conference on Advanced Communications Technology. Retrieved 5 February 2020.
{{cite web}}
: CS1 maint: multiple names: authors list (link) - ^ ITU-T I.150 3.1.3.1
- ^ "Is MPLS faster?". www.802101.com. 2017-08-04. Retrieved 2017-08-05.
- OCLC 656875465.
- ^ Salah M. S. Buraiky (December 2018). "An Informal Guide to the Engines of Packet Forwarding". Juniper Forums.
- ^ Richard A Steenbergen (June 13–16, 2010). "MPLS for Dummies" (PDF). NANOG.
- ISBN 0-7821-4071-8.)
{{cite book}}
: CS1 maint: multiple names: authors list (link
Further reading
- "Deploying IP and MPLS QoS for Multiservice Networks: Theory and Practice" by John Evans, Clarence Filsfils (Morgan Kaufmann, 2007, ISBN 0-12-370549-5)
- Rick Gallaher's MPLS Training Guide (ISBN 1932266003)
External links
- MPLS Working Group, IETF.
- MPLS IP Specifications, Broadband Forum.
- A brief history of MPLS, RIPE