Thursday, June 19, 2014

MPLS Label Distribution Protocol (LDP)


I Decided to post a Cheat Sheet that summarizes the Label Distribution Modes for those who suffer; like myself, to remember :D

So what is a Label Distribution Protocol? When Multi-Protocol Label Switching (MPLS) was created, it needed some sort of protocol to be able to populate Labels and bind them to the prefix in the local routing table which is also called Local Label Binding, and at the same time exchange those labels with the surrounding neighbors. The received Labels are Called Remote Bindings

The use of those exchanged labels that are handled by LDP is called a Labeled Switched Paths (LSPs) which is used by MPLS to forward packets based on their labels instead of the prefix itself.

A Reminder for some acronyms
LSR: Label Switch Router
FEC: Forward Equivalency Class


MPLS Labels are handled either during the Binding, Exchange, Local Storage or Forwarding based on the following criteria:


MPLS Label Space
Per Interface Label Space
Per-Platform Label Space
MPLS Labels are assigned per Interface per FEC. This result in a forwarding behaviour based on the incoming interfaces AND the incoming label
MPLS labels are assigned per Platform per FEC. This results in a forwarding behaviour based on the incoming label regardless of the incoming interface


MPLS Label Distribution Modes
Unsolicited Downstream
Downstream On Demand
Each LSR automatically sends its local labels binding to its neighbours without them asking for a label. And also accepting incoming labels exchange from adjacent LSRs
Each LSR requests  a label binding for a FEC from its downstream router only

MPLS Label Retention Modes
Conservative Label Retention
Liberal Label Retention
Only Labels that are associated with an adjacent LSR are kept in LIB for a certain FEC.
The LSR will keep all remote bindings in its Label Information Base. Either those binding are from direct neighbour or a remote LSR all the way down the LSP. But here's the catch.  The LSR will only install those Labels which are binded to the next-hop in the LFIB while all other labels will remain in the LIB


LSP Control Modes
Independent LSP Control Mode
Ordered LSP Control Mode
A LSR will Instantaneously create a Label binding for a FEC as soon as it realizes that there is FEC, which of course is independent from its adjacent LSRs as the name of the mode implies.
A LSR will only create a local binding to a FEC if it receives a label binding  from downstream LSR or if it's the Egress LSR for that FEC


Hopefully that clears up some of the confusion, I’ll prepare a more detailed post on those modes and how are they implemented in both Juniper and Cisco in upcoming posts. Cheers!