Introduction to MPLS: Multiprotocol Label Switching for Cisco Professionals

In the last 15-20 years there have been a number of different technologies used to both terminate network traffic and transport this traffic from source to destination. These technologies include a number of which are well known including Asynchronous Transfer Mode (ATM), Frame Relay, Ethernet, PPP among others.

All of these technologies had their various advantages but made it complicated to internetwork between any of these technologies. At the same time these technologies were being used, many companies were looking for methods to connect their various offices together and had few good options that were also cost effective.

Some of these solutions included the technologies listed above and others, but most required either configuring VPN’s between various offices or purchasing leased lines (or dedicated paths) between the various offices at a premium.

Out of these situations grew the idea of Tag switching which was developed by Cisco and than a formalized standard with Multiprotocol Label Switching (MPLS); when comparing the technologies, the tag and label are synonymous with each other.

The simple idea behind MPLS is to label each packet as it enters a network; the routing across the network is then routed from a label forwarding table or Label Forwarding Instance Based (LFIB). It must be understood however that MPLS still relies on standard routing protocols like OSPF, EIGRP or BGP.


An IP routing table is formed in the same way as it always was but when using MPLS an added layer of label forwarding is provided which can speed the routing of packets (with labels) and provide a method of traffic separation which is not provided by IP without individually setting up VPN’s for all customer’s traffic.

When it comes down to it, MPLS is a layer 2 ½ protocol which sits between the layer two protocol (ATM, Frame Relay, Ethernet…) and layer three (IP, IPv6…). It is at this layer in the model that MPLS adds an additional header which dictates the label (or labels) which are attached to each packet.

MPLS also makes use of an additional protocol (technically there are a few) called Label Distribution Protocol (LDP) which is used when a network is not running BGP to distribute the labels which are assigned by the MPLS-enabled routers. I say when not running BGP because BGP has the capability to advertise these labels within the protocol which is not supported natively with current IGP’s (OSPF, EIGRP…).

Setting Up MPLS

When setting up MPLS, the routers within a network that support and perform MPLS functions are called Label Switch Routers (LSR). Each LSR has the ability to do three main things: push, pop or swap labels from a packet. To push a label simply means to add a label to a packet, to pop is to remove a label from a packet and to swap is to remove and add an alternative label to the packet (think how MAC addresses are changed when forwarding Ethernet traffic from switch to switch).

It is possible for a packet to have multiple labels attached which are arranged in a stack and are considered in the order from the most recent label to the least recent label (the label that was pushed most recently will be used for forwarding until it is popped from the MPLS header).

There are three different types of LSR: ingress, egress and intermediate. The ingress LSR is at the edge of an MPLS network and is the first to insert an MPLS header and label on a packet. The egress LSR is at the edge of the network and is the last point before leaving the network and thus removes all of the MPLS labels and header. Both the ingress and egress LSR’s are considered Provider Edge (PE) routers.

The LSRs which exist within the network are called intermediate LSR’s and are responsible for pushing, popping and swapping labels based on the routing with the MPLS network; the intermediate LSR’s are considered Provider (P) routers.

Services Provided by MPLS

The main services which are provided by MPLS are layer two and three VPN’s and Traffic Engineering/Quality of Service (QoS). Layer two VPN’s are also referred to as overlay VPN’s and are implemented on Cisco equipment using Any Transport over MPLS (AToM). Simply put, when using MPLS’s layer two VPN capability the edge connectivity can be any number of different technologies including ATM, Frame Relay and Ethernet. The traffic that comes in these interfaces is then tunneled via MPLS between the ingress and egress PE routers.

From the customers perspective their edge routers are connected via a dedicated circuit. This circuit within the MPLS network is also referred to as a pseudowire. Layer three VPN’s are also possible using MPLS and are referred to as peer-to-peer VPN’s. These differ from layer two VPN’s because the Customer Edge (CE) routers and the PE routers exchange routing information. From the CE perspective they are connected with the PE directly instead of other CE routers. The PE routers keep different customers data protected through the implementation of Virtual Routing/Forwarding (VRF). VRF is run on the PE routers and provides a separate routing table for each customer. Traffic is then routed between the PE routers to other customer sites using MPLS.

MPLS also has the ability to offer Traffic Engineering (TE) and Quality of Service (QoS). When implanting these within MPLS traffic can be reserved across the MPLS network using Resource Reservation Protocol (RSVP). This traffic is inserted into a TE tunnel and has its path specified based on the reservation setup. This same technology is used to give specific types of traffic priority by reserving specific amounts of traffic based on the request.

Getting Started with MPLS

MPLS is a very versatile way of setting up your network whether you’re a provider or a customer. There are certainly many different methods for implanting the various features which can be daunting but with a little research MPLS is not a hard technology to pick up.

There are several resources available which can be referenced for additional information. The following are good places to start:

0
 in Cisco

Comments