What the heck is MPLS?

It’s been a while without doing any new articles. Anyways, I’m back to the track with a lot more experiences and stuffs 😀 . Well, now let’s start off with basic understanding of MPLS! Please remember, this blog is mainly focus on “example configuration” not to dig detail theory about how things work.

What is MPLS?

Multi-Protocol Label Switching, or MPLS, is basically a routing technique that route packets using “labels” rather than IP addresses. It’s simple as that 😆  . Compared with traditional network, router does routing lookup to determine next-hop in its routing table then forwards packets to that next-hop. With MPLS, only the first router does routing lookup and then it finds label along the path to the destination instead of finding next-hop. The path of an MPLS packet is called a label-switched path (LSP).

MPLS Terminology

Service Providers (SP) use the term Provider router (P) for a backbone router/switch doing label switching only. The customer-facing router at the Service Provider is called a Provider Edge router (PE). The router at customer side which communicate with PE is call Customer Edge router (CE). Customer facing routers typically can terminate IP addresses, L3VPNs, L2VPNs/ pseudowires, and VPLS before packets are transferred to the CE.

Acronym Terminology
MPLS Multiprotocol Label Switching
LSP Label-switched path
LSR Label-switching router
LER Label edge router
PE router Provider edge router
P router Provider core router
PHP Penultimate-hop popping
Push A MPLS label is added to the top of the stack
Swap A MPLS label is swapped by an LSR
Pop The topmost MPLS label is removed from the stack

The MPLS Header

Look at below MPLS header, the size is only 4 bytes which are inserted in the packets.

There are discussions out there whether MPLS is tunneling based technology. It’s actually NOT, it’s a virtual-circuits-based. Just because of packets between two endpoints follow the same path and the nodes in the middle do not inspect IP headers, doesn’t mean you use a tunneling technology. Tunneling is something when a protocol get encapsulated in a protocol like MAC-in-IP, IPv6-in-IPv4, IP-over-GRE-over-IP. IP-over-MPLS-over-Ethernet is not tunneling.

Here is a description of the 32 bits of MPLS header.

  • The first 20 bits are the MPLS label.
  • The next 3 bits are Traffic Class. “Exp” refer to experiment which in the past we mean for experimental bits.
  • The next 1 bit is BoS or Bottom of Stack bit. It has value of 0 and 1. This bit is important because it needs to indicate that it is the last header before the MPLS payload since it does not have a type field.
  • The next 8 bits are MPLS Time-to-Live or TTL. This is exact same mechanism to IP TTL, which is used to discard packets in the event of a forwarding loop.

And that’s it for basic understanding MPLS! We will talk more about  configurations in next article.

Leave a Reply

Your email address will not be published. Required fields are marked *