MPLS The Fundamentals Part 1

Hello to All,

MPLS is one of those protocols that you must know if you attempt to reach the CCIE Level Knowledge in your career, is one of those topics that will give you a really hard time at the beginning while you understand how it operates, the different flavors available but once you understand it you will see it’s just Mind-Blowing.

This is exactly why I wanted to write down a introduction blog post about it (Don’t worry.. This is just the beginning of our MPLS series).

Why would you implement MPLS?? I mean is there a need for it? Is it a routing protocol?

Those are the kind of questions that people new to MPLS ask themselves and they are completely valid. I actually asked myself those same questions (and a whole bunch of other questions about it).

MPLS define a new way of transporting traffic across a network. It uses Labels in order to determine where to send the traffic.

In order to transmit this labels there is a need for a protocol and that is LDP (The Label Distribution Protocols that runs on top of TCP 646).

As soon as you enable MPLS and LDP you will start announcing labels for all of your known routes.

That’s right we are going to look at something different than the routing table. We will look at the MPLS Forwarding-Table

So MPLS uses labels.. big deal… What’s the benefit of that??

Well, one of the major benefits is the fact that now L3 devices will perform a quicker decision about whenever they need to send a packet.

For example in your LAN if you wanted to send a packet to Google’s web servers you will need to check your routing table for the destination IP Address  and then check for the Next-Hop IP address and Mac-Address of that next hop (CEF Forwarding Table lookup is actually quicker as it gets both in just one step). This process will happen from source to destination.

With MPLS you would check for the destination IP address and if you reach that destination via an interface where MPLS is enabled you will route the packets using Labels.  The Huge benefit of it is that the next routers inside the MPLS cloud will not perform that check, they will only look at the label and they will determine where to send the traffic! As simple as that folks.

Another benefit of MPLS is the possibility of running  what is known as the “Free BGP Core

MPLS BGP Free Core

In that scenario shown above we have 2 Offices that are connected via an MPLS Cloud (PE1,P1,P2,PE2). Do not worry we will explain what that means in the next blog post about MPLS.

Without running MPLS if CE1 and CE2 wanted to communicate with each other, all of the routers across the MPLS cloud (ISP) would need to know about their networks in order to route the packet properly.

With MPLS and BGP that will not be needed! what I am about to tell you is just AMAZING!!

If you configure PE1 and PE2 via a BGP neighborhood through the MPLS cloud they will exchange the prefixes between each other and all the PE routers need to have is an MPLS label to send the traffic to PE1 and PE2.

So as long as the P1 and P2 have a label for the ip address of PE1 and PE2 (Next-Hops) we will be able to route traffic.

Imagine if you have a hundred subnets on your Network and you need to announce it to a remote location! The routing table of the devices in the ISP will growth a lot but if you run MPLS all they will need to know is how to reach your router.

So to understand it better let’s use our scenario as an example.

  1. PE1-P1-P2-PE2 are running EIGRP as the IGP protocol between each other so they all know how to reach each other.
  2. MPLS and LDP has been enabled on all of the links between this routers  (Between CE1-PE1 and CE2-PE2 MPLS-LDP is disabled).
  3. PE1 and PE2 build a BGP relationship and they exchange the prefixes learn with CE1 and CE2 respectively.
  4. P1 and P2 have no knowledge of this routes.

Without MPLS as soon as P1 receives a packet from CE1 to CE2 it would drop it as it does not have an entry on it’s routing table for any of those two devices.

With MPLS the forwarding logic would be as follows:

  • CE1 sends a packet to CE2 IP address using the regular IP routing lookup and forwarding decisions.
  • PE1 looks for the destination IP address which is the BGP peer PE2. It determines that the next hop is available via an interface where MPLS-LDP is enabled so it needs to route the packet based on the MPLS forwarding table (Where the mapping for IP-Addresses and label are).
  • It sends the packet with the MPLS label in order to reach PE2.
  • P1 receives it and check the label that was used to forward the packet and sends the packet to that same next hop again using the label (Look that P1 did not look at any IP address, it just received an MPLS label packet and forwarded an MPLS label packet).
  • Same process happen till reaches PE2.
  • When PE2 receives it with a Label of “X” it will check at is MPLS forwarding table to determine where to send it as any other router in the MPLS core has done and will determine that there is no label to be imposed to that packet but instead needs to be forwarded to an IP network.
  • The label will be remove and then will be normally send over an IP network.

That’s the magic behind MPLS and BGP Free Core.

There other many benefits or running this wonderful protocol such as L2VPNs, MPLSVPN, Traffic Engineering but that will be covered on a future blog post.

So bottom line:

  • Packets will now have a MPLS label field that will allow the transmission of MPLS packets over an IP network.
  • Routers do not need to look a the Destination IP address but only at the label.