Signaling relies on two protocols in MPLS networks: LDP and RSVP. If you found this post, you are most likely interested in understanding the key differences between these protocols, and as you will see in just a second, there are big differences!
Top-3 differences between RSVP and LDP
- With LDP, the egress initiates the LSP setup. By contrast, with RSVP it is the ingress that initiates the LSP setup.
- With LDP the LSPs from multiple ingresses use the same label to reach the egress (multi-point to point LSP). By contrast, RSVP sets up independent point to point LSPs.
- LDP is the automatic pilot. RSVP requires configuration.
So, what can we conclude from this comparison? Well, if all you need is to set up LSPs, use LDP. If you require traffic engineering and resources reservations, use RSVP(-TE).
If you need to understand better the differences between LDP and RSVP, I detail them below. But I think you may be preparing for an interview for a network related role. Am I right?
In this case, I strongly advise you to look at the book "Cracking the PM Interview: How to Land a Product Manager Job in Technology". It was written by Gayle Laakmann McDowell, a former recruiter from Google who also worked at Apple and I find them really helpful to prepare technical interviews, not only for programmers but for all technical roles!
Why 2 protocols: RSVP and LDP?
Nowadays, most people use MPLS for its great traffic engineering capabilities, so my fair guess is that RSVP-TE is the most commonly used signaling protocol for MPLS networks. But LDP and RSVP-TE can be used within the same network: LDP setups LSPs based on routing data, whereas RSVP setups additional traffic engineered LSPs.
The MPLS architecture requires that directly connected routers agree on the meaning of the labels they use. Concretely that means routers must have the type of discussion described in the figure below, where a label switching router (LSR = an MPLS router) sends information about its IP prefix / label mapping.
When LSR2 knows that it can use label 17 for the traffic whose destination is a.b.c.d/24, it can start forwarding MPLS packets with the appropriate label to LSR1. That's for high-level principle.
Going into the details: the differences between LDP and RSVP
How does RSVP work, at a high level?
As often, the best presentation (in my humble opinion) you can find on the net about LDP versus RSVP is from NANOG. In this presentation, Ina Minei, illustrates the principle of RSVP signaling thanks to the figure below.
With RSVP, if PE2 wants to set up an LSP to send traffic to PE1, it will require the following operations. PE2 will send a PATH message to PE1. PE1 will answer with the label affected to the requested LSP, if the LSP can be setup. In the example above from Ina, this means that:
- PE1 will send a RESV message to its predecessor on the LSP to state that label 3 must be used to send traffic to PE1.
- This predecessor will, in turn, send a RESV message to its own predecessor on the LSP to state that label 100 must be used to send traffic to PE1.
- Same thing recursively until PE2 learns that it must use label 200 to send traffic to PE1.
It's particularly important to understand that in our example PE2 has needed to send a PATH message to PE1: it means that PE2 knew the exit point it wanted to reach PE1. In the classical example of a VPN network, it means that all provider edges (PEs) should know the address of all other PEs.
How does LDP work, at a high level?
LDP sets up multipoint to point LSPs, and it is the egress that initiates the setup. Let's analyze the example provided by Ina Minei in her excellent presentation to NANOG.
In this example, the egress PE1 advises its neighbor that to reach PE1, the neighbor must use the label 3. The neighbor advertises the route to PE1 with its own label values: here 100. Then the third LSR from the left on the picture is connected to two LSRs through two different interfaces. So, it advertises the route to PE1, with two different labels (300 and 200) to PE3 and PE1.
As you can see, LDP works very similarly to a path vector routing protocol such as BGP, where routes are advertised from their destination. You can also note that the ingress, say PE2, does not need to know the destination PE1. The egress PE1 does not need to know the ingress PE1 either. The LSP from PE2 to PE1 is setup automatically, based on routing tables.
LDP can work in two modes:
- either the LSRs advertise only the routes (labels) to their loopback address -- this mode is called ordered control
- or, they advertise all the routes they know from the intra-domain routing protocol (IGP) -- this mode is called independent control
Clearly, the first mode leads to a lower number of LSPs to setup.
How to learn more about MPLS, LDP, and RSVP-TE?
Have a look at my posts on MPLS fast reroute and "LDP Versus RSVP For Signaling In MPLS Networks", and I guarantee you will know more on MPLS than many network architects!
I hope you enjoyed this very technical post! Sharing is caring, I would be so happy if you shared this article on social media. Thanks!