Multi-Protocol Label Switching (MPLS) provides a mechanism for forwarding packets for any network protocol. It was originally developed in the late 1990s to provide faster packet forwarding for IP routers (see RFC 3031). Since then its capabilities have expanded massively, for example to support service creation (VPNs), traffic engineering, network convergence, and increased resiliency.
MPLS is now the de-facto standard for many carrier and service provider networks and its deployment scenarios continue to grow.
Traditional IP networks are connectionless: when a packet is received, the router determines the next hop using the destination IP address on the packet alongside information from its own forwarding table. The router's forwarding tables contain information on the network topology, obtained via an IP routing protocol, such as OSPF, IS-IS, BGP, RIP or static configuration, which keeps that information synchronized with changes in the network.
MPLS similarly uses IP addresses, either IPv4 or IPv6, to identify end points and intermediate switches and routers. This makes MPLS networks IP-compatible and easily integrated with traditional IP networks. However, unlike traditional IP, MPLS flows are connection-oriented and packets are routed along pre-configured Label Switched Paths (LSPs).
The evident power of the basic MPLS concepts led the industry to define generalized extensions to MPLS, or Generalized MPLS (GMPLS). This work extended the MPLS concept of a label to include implicit values defined by the medium that is being provisioned, for example a wavelength for a DWDM system or a timeslot for a SONET/SDH device. So with GMPLS, there is no need for a switch to "read" the label in each packet header. The label is an inherent part of the switch fabric and the switching operations depend on wavelength, or timeslot etc. This permits the benefits of MPLS to be shared by many different types of switching platform.
How Does MPLS Work?
MPLS works by tagging the traffic, in this example packets, with an identifier (a label) to distinguish the LSPs. When a packet is received, the router uses this label (and sometimes also the link over which it was received) to identify the LSP. It then looks up the LSP in its own forwarding table to determine the best link over which to forward the packet, and the label to use on this next hop.
A different label is used for each hop, and it is chosen by the router or switch performing the forwarding operation. This allows the use of very fast and simple forwarding engines, which are often implemented in hardware.
Ingress routers at the edge of the MPLS network classify each packet potentially using a range of attributes, not just the packet's destination address, to determine which LSP to use. Inside the network, the MPLS routers use only the LSP labels to forward the packet to the egress router.
The diagram above shows a simple example of forwarding IP packets using MPLS, where the forwarding is based only on packet destination IP address. LSR (Label Switched Router) A uses the destination IP address on each packet to select the LSP, which determines the next hop and initial label for each packet (21 and 17). When LSR B receives the packets, it uses these labels to identify the LSPs, from which it determines the next hops (LSRs D and C) and labels (47 and 11). The egress routers (LSRs D and C) strip off the final label and route the packet out of the network.
The above is only one use of MPLS. Since MPLS uses only the label to forward packets, it is protocol-independent, hence the term "Multi-Protocol" in MPLS. It can be used to carry any content (not only packets) over any link technology (using different label encoding for each layer 2 link type).
How Does GMPLS Work?
GMPLS is conceptually similar to MPLS, but instead of using an explicit label to distinguish an LSP at each LSR, some physical property of the received data stream is used to deduce which LSP it belongs to. The most commonly used schemes are
- using the timeslot to identify the LSP, on a Time Division Multiplexed (TDM) link
- using the wavelength to identify the LSP, on a Wavelength Division Multiplexed (WDM) link
- using the fiber or port on which a packet is received.
LSPs are therefore implicitly labeled in a GMPLS network.
GMPLS can be used to establish LSPs for circuit traffic (in addition to packet traffic). Using the TDM and WDM examples above, the LSP traffic is switched based on a continuous, constant property of the data stream – the data stream is not switched one packet at a time. This allows for a very efficient implementation in the data plane with zero per-packet lookups, making GMPLS a highly suitable protocol to run in high bandwidth networks.
Other than this, the forwarding operation of the LSRs in a GMPLS network is similar to the MPLS example discussed above. At each LSR, the implicit label on received data determines the outgoing interface and the implicit label with which to transmit onwards data.
MPLS and GMPLS Protocols
MPLS defines only the forwarding mechanism; it uses other protocols to establish the LSPs. Two separate protocols are needed to perform this task: a routing protocol and a signaling protocol. These are described below.
It is also possible to establish MPLS LSPs with static provisioning. This involves configuring each network element along the LSP route with the appropriate ingress / transit / egress information. Static provisioning has not been very widely deployed to date, but it can have a role in the access network. It is also likely to be one of the operating modes for MPLS Transport Profile (MPLS-TP).
MPLS and GMPLS Routing Protocols
The routing protocol distributes network topology information through the network so that the route of an LSP can be calculated automatically. An interior gateway protocol, such as OSPF or IS-IS, is normally used, as MPLS networks typically cover a single administrative domain.
However, these routing protocols only distribute network topology. When traffic engineering is required to establish LSPs with guaranteed QoS characteristics and backup LSPs that avoid any single point of failure, the traffic engineering (TE) extensions to these protocols are used. These extensions distribute QoS and Shared Risk Link Group (SRLG) information on each link in the network. This information enables the route calculator to determine routes through the network with guaranteed QoS parameters, and backup LSPs that traverse different links and/or network elements from the primary path.
Various mechanisms to extend this traffic engineering to inter-area and inter-carrier routing have been proposed, but none is yet universally accepted. Our White Paper on "Inter-Area Routing, Path Selection and Traffic Engineering" provides a detailed discussion of this topic.
MPLS and GMPLS Signaling Protocols
The signaling protocol informs the switches along the route which labels and links to use for each LSP. This information is used to program the switching fabric. For MPLS, one of three main signaling protocols is used, depending on the application.
- LDP is used for
- MPLS transport where traffic engineering is not required
- certain MPLS services, for example pseudowires
- RSVP-TE is used for
- MPLS transport where traffic engineering is required
- all GMPLS transport
- BGP is used (as a signaling protocol) for certain MPLS services, for example BGP/MPLS Layer 3 VPNs.