What is MPLS?
This is a short extract from our MPLS guide. This topic was dropped from the Cisco CCNP exam syllabus some time ago, but the technology is still relevant today.
The Multiprotocol Label Switching (MPLS) framework was designed to provide flexibility to operate with virtually any Layer 3 and Layer 2 technology. MPLS-based solutions can be integrated seamlessly over any existing infrastructure. Using a connection-oriented approach, packet forwarding in MPLS relies on preexisting paths. An MPLS forwarding path can be considered a tunnel that goes from an MPLS ingress point to an MPLS egress point. Unlike the path selection and forwarding processes used in conventional IP routing, the path selection and path forwarding processes are separated in MPLS.
MPLS supports several Layer 2 and Layer 3 protocols. The Layer 2 protocols supported by MPLS include Ethernet, Frame Relay, PPP, Token Ring, FDDI, SONET/SDH, and ATM; currently, MPLS is defined only for the Internet Protocol (IP) at Layer 3. MPLS was originally a Cisco proprietary technology referred to as tag switching. It is, therefore, common to see texts that refer to MPLS as tag switching. However, MPLS was later handed to the IETF for open standardization and was renamed label switching. The following RFCs and Internet drafts are supported in Cisco IOS software:
- RFC 2702, “Requirements for Traffic Engineering over MPLS”
- RFC 3031, “Multiprotocol Label Switching Architecture”
- RFC 3032, “MPLS Label Stack Encoding”
- Draft draft-ietf-isis-traffic-02.txt, “IS-IS Extensions for Traffic Engineering”
- Draft draft-ietf-mpls-icmp-02.txt, “ICMP Extensions for Multiprotocol Label Switching.”
- Draft draft-katz-yeung-ospf-traffic-04.txt, “Traffic Engineering Extensions to OSPF”
At a very high level, the MPLS architecture defines the basic mechanism for performing label switching within the MPLS core network. That is, the MPLS architecture assigns labels to packets in order to be able to transport them across the MPLS core network. The use of labels is similar to other Layer 2 technologies, such as Frame Relay DLCIs and ATM PVCs. These assigned labels are used for the next-hop Layer 2 lookup, allowing packets to be switched through the MPLS core network, thus improving the performance of the network.
In order to understand MPLS, it is imperative to have a solid grasp and understanding of the jargon or terminology used in regards to MPLS. This section lists and describes terms that you are expected to be familiar with in regard to MPLS. These terms are:
- Forwarding Equivalency Class
- MPLS Flow
- MPLS Label
- Label Switch Router
- Upstream and Downstream
- Label Switched Path
A Forwarding Equivalency Class (FEC), as defined in RFC 3031, is a group of packets that are forwarded in the same manner, over the same MPLS path, and with the same treatment. In other words, an FEC is a set of packets that can be handled equivalently for the purpose of forwarding and, as such, can be bound to a single label. The set of packets destined for an address prefix is one example of an FEC. Another common example of an FEC is a flow.
An MPLS flow is a unidirectional sequence of MPLS packets that arrive at a router on the same interface or subinterface and have the same source and destination IP addresses, Layer 4 protocol, TCP or UDP source and destination ports, and Type of Service (ToS) byte in the IP header. A TCP session is an example of a flow. An MPLS flow contains up to three of the same incoming MPLS labels of interest with experimental bits and end-of-stack bits in the same positions in the packet label stack.
An MPLS label is a short, fixed-length identifier that tells MPLS switching nodes how the data (packets or cells) should be forwarded. A label stack is when more than one label is imposed (placed) onto an MPLS packet.
A Label Switch Router (LSR) is an IP router that supports the MPLS protocol. An LSR understands the MPLS header and the values encoded within it. The LSR is also responsible for the actual forwarding of user data traffic through the established Label Switched Path (LSP). LSPs will be described in detail later in this chapter. Depending on its placement in the MPLS network, an LSR can either perform label imposition (i.e. placing a label on the packet, also referred to as a push operation); or label disposition (i.e., removing a label from the packet, also referred to as a pop operation); or label swapping (i.e., replacing the top label in a label stack with a new outgoing label value). There are four different types of LSRs: ingress, transit, egress, and penultimate.
The terms upstream and downstream are crucial in regards to understanding MPLS. These two terms are used in reference to the destination network, which can either be a simple prefix or an FEC. Consider the following diagram, for example:
In the diagram above, traffic originates from the 10.1.1.0/24 prefix and is destined for the 172.16.1.0/24 prefix. The flow of traffic from the 10.1.1.0/24 prefix to the 172.16.1.0/24 prefix is said to be a downstream flow. Data intended for a particular destination network always flows downstream. Updates (e.g., routing protocol and label distribution protocol updates) pertaining to a particular prefix are always propagated upstream. If the traffic originated on the 172.16.1.0/24 prefix and was destined for the 10.1.1.0/24 prefix, the upstream and downstream directions would simply be inversed, as illustrated in the following diagram:
A Label Switched Path (LSP) is a unidirectional path through an internal network. Each network path created by the MPLS protocol is a label-switched path. The LSP is a unidirectional entity that typically exists within a single autonomous system or domain. The LSP is usually derived from IGP routing information. However, an LSP can diverge from the path learned by the routing protocol by implementing MPLS Traffic Engineering (TE). Although technically beyond the scope of the ISCW requirements, MPLS TE will be described briefly later in this chapter when we learn about the Resource Reservation Protocol (RSVP). Additionally, LSPs are a mandatory requirement.
Read the Cisco notes on MPLS.