MPLS Overview:
Multi-Protocol Label Switching (MPLS) defines a mechanism for packet forwarding in network routers. It was originally developed to provide faster packet forwarding than traditional IP routing, although improvements in router hardware have reduced the importance of speed in packet fowarding. However, the flexibility of MPLS has led to it becoming the default way for modern networks to achieve Quality of Service (QoS), next generation VPN services, and optical signaling.
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. They use an IP routing protocol, such as OSPF, IS-IS, BGP, RIP or static configuration, to keep their information synchronized with changes in the network.
MPLS also uses IP addresses, either v4 or v6, 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).
How does MPLS work?
MPLS works by tagging 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, as the router can select the label to minimize processing.
Ingress routers at the edge of the MPLS network use 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.
In the diagram above, 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.
As MPLS uses only the label to forward packets, it is protocol-independent, hence the term "Multi-Protocol" in MPLS. Packet forwarding has been defined for all types of layer-2 link technologies, with a different label encoding used in each case.
MPLS 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.
MPLS Routing Protocols:The routing protocol distributes network topology information through the network so that the LSP can be calculated. 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 Groups (SRLGs) 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 from the primary path.
Mechanisms to extend this traffic engineering to inter-area and inter-carrier routing are still being agreed. Our
White Paper on "Inter-Area Routing, Path Selection and Traffic Engineering" provides a detailed discussion of this topic.
MPLS 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. One of two main signaling protocols is used, depending on the network requirements.
BGP is also used as a combined routing and MPLS signaling protocol in some situations. An example of this is BGP/MPLS VPNs.
Advanced MPLS Applications:
Optical MPLS
The concept of a label has been extended in Generalized MPLS (GMPLS). In GMPLS, the label no longer needs to be carried as an identifier on the data flow, but may be implicit. For example, time-slots (in SONET/SDH) and wavelengths (in DWDM) can be labels. In these cases, the label switching operations translate to operations such as "switch this incoming wavelength onto this outgoing wavelength."
GMPLS is therefore ideal for optical networking, and many extensions to the protocols have been defined, including user-to-network interfaces and network-to-network interfaces.
MPLS in Hierarchical Networks
MPLS is ideal for hierarchical networks, where lower-layer switching entities (for example packets) are aggregated into a higher-layer entity, for example a time-slot, and then once again into a wavelength and a whole fiber. MPLS allows a label stack to be defined so that switches can switch higher-layer aggregations and ignore the lower levels of the label stack. When the flow arrives at a switch capable of handling lower-layer entities, the switch strips off the outer label and examines the next lower level in the stack.
One example of the use of label stacking is in BGP/MPLS VPNs, where a two-deep label stack is used.
A transport label is used to route aggregated VPN traffic to the destination edge router in the provider's network. This is conventional MPLS, using either RSVP-TE or LDP signaling.
Once at the destination edge router, the transport label is stripped off and the second label examined. This label identifies the specific VPN to which the flow belongs. These VPN labels are signaled in extensions to the BGP protocol.