cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1101
Views
4
Helpful
7
Replies

Route Targets and Route Distinguishers - MPLS L3 VPNs

Mitrixsen
Level 1
Level 1

Hello, everyone!

I would like to apologize in advance for creating yet another post regarding this but I believe that I've hit a major confusion point when it comes to MPLS L3 VPNs in my studies.

This post is a question about RDs (Route Distinguishers) and RTs (Route Targets) in MPLS.

The general explanation to them that I practically see everywhere is the following:
RD - Makes the prefix unique
RT - Imports and exports routes from and into a VRF.

The question here is, why are both of them necessary? Consider the following scenario.

Mitrixsen_0-1694962248256.png

Source: NetworkLessons

Why couldn’t MPLS L3 VPNs work just solely on Route Targets without any Route Distinguishers or vice-versa?

 

For example, what exactly would prevent PE1 from using solely just RTs → so importing the prefixes it learns from Customer A and Customer B into the appropriate VRFs using RTs and then advertise it to PE2 who could in return export it to the correct customer VRF?

The PE routers would be able to differentiate between the different prefixes because they would have a different RT value and be a part of different VRFs.

If Customer A advertises something to PE1 and PE1 assigns it an RT of 1234:1 (for example) → advertises it to PE2 who reads the packet, sees the RT value and exports it into the appropriate VRF (Customer A VRF), there wouldn’t really be a need for RD, would there?

Then again, Customer B could advertise something to PE1, PE2 could assign it a different RT (like 1234:2) → advertise it to PE2 who would then export it into the Customer B VRF.

I just can’t see why we would even need RDs in the first place. All this “uniqueness” would be obtained just by assigning the prefixes a different Route Target value so they can be exported into the correct VRF, would it not?

I appreciate everyone’s help here.

Kind regards,
David

 

1 Accepted Solution

Accepted Solutions

Harold Ritter
Cisco Employee
Cisco Employee

Hi @Mitrixsen ,

One thing that should be taken in consideration is the use of a route reflector in the equation. The route reflector does not even take the RT in consideration and only compares the prefix value as such. I am not sure how easy or hard it would be to keep equal prefixes separate into the RR and compare them based on their RT value(s).

The other argument would be that if the RR was able to take the RT in consideration to make its best path decision, you would still have an issue in the following scenario:

PE1 and PE2 both advertise prefix A and tag it with RT 1:1. RR receives it and compare these two paths as they have the same RT. It selects the path coming from PE1 and only send this path to PE3, which would be unable to load balance between PE1 and PE2.

You could argue that you could make prefix A different on the RR by setting a different RT on PE1 (1:1) and PE2 (1:2)  and then import both these RTs on PE3, but it could become complex as you do not have the same level of flexibility as if you can decouple the RD and RT.

Regards,

Harold Ritter
Sr Technical Leader
CCIE 4168 (R&S, SP)
harold@cisco.com
México móvil: +52 1 55 8312 4915
Cisco México
Paseo de la Reforma 222
Piso 19
Cuauhtémoc, Juárez
Ciudad de México, 06600
México

View solution in original post

7 Replies 7

Harold Ritter
Cisco Employee
Cisco Employee

Hi @Mitrixsen ,

One thing that should be taken in consideration is the use of a route reflector in the equation. The route reflector does not even take the RT in consideration and only compares the prefix value as such. I am not sure how easy or hard it would be to keep equal prefixes separate into the RR and compare them based on their RT value(s).

The other argument would be that if the RR was able to take the RT in consideration to make its best path decision, you would still have an issue in the following scenario:

PE1 and PE2 both advertise prefix A and tag it with RT 1:1. RR receives it and compare these two paths as they have the same RT. It selects the path coming from PE1 and only send this path to PE3, which would be unable to load balance between PE1 and PE2.

You could argue that you could make prefix A different on the RR by setting a different RT on PE1 (1:1) and PE2 (1:2)  and then import both these RTs on PE3, but it could become complex as you do not have the same level of flexibility as if you can decouple the RD and RT.

Regards,

Harold Ritter
Sr Technical Leader
CCIE 4168 (R&S, SP)
harold@cisco.com
México móvil: +52 1 55 8312 4915
Cisco México
Paseo de la Reforma 222
Piso 19
Cuauhtémoc, Juárez
Ciudad de México, 06600
México

Hello @Harold Ritter 

I apprecitate your response. However, where exactly would a Route Reflector be installed here? I was taught from my study resource that in case of MPLS, the core of the infrastructure is BGP-free. Only the PE routers need to run BGP. In such a scenario, a Route Reflector wouldn't be necessary since we would only need adjacencies between the PEs, would it?

Thank you.

Hi @Mitrixsen ,

> I was taught from my study resource that in case of MPLS, the core of the infrastructure is BGP-free.

This would be correct for most core devices, except for the RR.

> In such a scenario, a Route Reflector wouldn't be necessary since we would only need adjacencies between the PEs, would it?

In a scenario such as the one you illustrated it is easy to configure a BGP session between PE1 and PE2, but imagine in a real life service provider (SP) network with potentially thousands of PEs, it would be impossible to configure a full mesh. Multiple RRs are required and are normally located in separate locations in the SP core.

Regards,

Harold Ritter
Sr Technical Leader
CCIE 4168 (R&S, SP)
harold@cisco.com
México móvil: +52 1 55 8312 4915
Cisco México
Paseo de la Reforma 222
Piso 19
Cuauhtémoc, Juárez
Ciudad de México, 06600
México

In a large-scale service provider network, especially with potentially thousands of PE routers, configuring a full mesh of BGP sessions between all PEs becomes impractical and highly inefficient. This is where the concept of RR is crucial for simplifying the BGP architecture.

Topology in lessons and real life is totally different. Lessons for the basis/theories, and real life for the beginning of worries/problems Thanks @Harold Ritter for that clarification.

 

Best regards
.ı|ı.ı|ı. If This Helps, Please Rate .ı|ı.ı|ı.

M02@rt37
VIP
VIP

@Mitrixsen,

When a route reflector is involved, it indeed simplifies the route reflection process by not considering the RT for best path selection. As @Harold Ritter correctly highlighted, this can potentially lead to suboptimal routing and lack of load balancing, especially in scenarios where multiple PEs advertise the same prefix with the same R

In complex scenarios, the ability to decouple the RD and RT becomes crucial for achieving the necessary flexibility and ensuring optimal routing. The RD provides the uniqueness required within the MPLS core, while the RT governs route import/export behavior.

In the context of a route reflector, carefully planning and designing the RD and RT assignments to balance uniqueness and efficient route reflection is essential. This often involves taking into account factors such as load balancing, avoiding suboptimal routing, and accommodating potential overlapping IP address spaces.

Overall, the interplay between RDs, RTs, and route reflection mechanisms requires careful consideration during the design and implementation phase to ensure a scalable, efficient, and optimal MPLS L3 VPN deployment, especially in larger and complex network architectures.

 

Best regards
.ı|ı.ı|ı. If This Helps, Please Rate .ı|ı.ı|ı.

Joseph W. Doherty
Hall of Fame
Hall of Fame

Possibly why you're having such an issue with "why" both RD and RT, you're working with very simple lab situations.  The other posters have noted how in the "real world", scaling up creates issues not seen in a small lab example.  Also, many small labs don't show the full capability of an architecture regarding how it might be used logically.

For example, have you ever studied the history of MPLS, and how it started as "tag" switching?  If you have, do you understand the (back then, especially) performance implication of using "tags"?

I suspect some of the same logic is "baked" into RDs, i.e. they can be very efficiently utilized versus RTs, likely the "why" behind what @Harold Ritter explains how RRs use RDs but not RTs.

Rather than trying to explain "why" both RD and RT, and why one value couldn't (always) be used in lieu of both, I've selected 3 additional articles on the subject.

In https://www.networkfuntimes.com/route-distinguishers-vs-route-targets-what-are-they-why-do-we-need-them-both/

We find:

Now, even after all that explanation, you might still be wondering: this is all very well and good, but why didn’t they just design all of this so that the RD and the RT was indeed the same number, and have one number serve both purposes? Or, why not just force the VRF name to be the same everywhere, and advertise the VRF name instead of this random RT number? All of this seems like a lot of nonsense.

And of course you’re correct, in that networking is mostly nonsense.

But to answer that question, let’s take the complexity up a notch – because it turns out that we can actually do some really clever things with route-target manipulation. For example, we can create more advanced topologies that send all site-to-site traffic via a firewall at a central hub site. Another example is that we can actually leak certain prefixes between VRFs, which means we can introduce a management VRF that has selective access to certain parts of our customer networks, giving us the ability to monitor and maintain devices we manage on their behalf!

Sort of what you're asking, correct?

The two additional reference, also overlap with the above, but often multiple explanations, on the same subject, can be extremely helpful when you cannot interactively ask questions to an instructor.

https://packetlife.net/blog/2013/jun/10/route-distinguishers-and-route-targets/

https://www.linkedin.com/pulse/difference-between-route-distinguisher-target-ivan-anti%C4%87

If you understand the above, you'll likely recognize the potential of RT, but still wonder, do we really need the RD too?

Well, logically, possibly not.  We do want, though, a simple and efficient way to identify different IP domains so that we can overlap IP network usage, i.e. the basic VLAN ID equivalent.  The requirement for that, though, even if met by using a "reserved" RT, might also be "safer" if dedicated for just that purpose.  Sometimes too much functional overload, can create its own set of issues.

Laugh - consider Classful addressing.  Why do we need both an IP and a network mask?  We don't, we'll just "reserve" ranges of IPs which will have implied network masks.

Likewise, not to repeat a similar approach, we have a RD just dedicated for route uniqueness, and RT for determining what's actually in a VRF domain.  Often we don't need both, and many simple examples demonstrate you don't need both, but having them separate also allows us to process them separately without conflicts.

Hopefully, the forgoing, and the articles I referenced, will at least make in clear, having both an RD and RT, makes some VRF issues much easier to deal with, rather than using one common for both.

I was still a little unsure but your post together with the articles switched the lightbulb in my head ON.

Although I wouldn't say that I am a RD/RT master now, I definitely understand the WHY behind these two.

Thank you and everyone else very much. You've made my studying way easier now!

Review Cisco Networking for a $25 gift card