Route Distinguisher vs Route Target – aren’t they the same thing? No they are not!
In this post I am going to clarify the difference between route distinguisher and route target within the Cisco world of MPLS L3VPN’s.
If you are looking for an MPLS Tutorial I suggest you read this post
MPLS L3VPN Configuration Example before reading further.
The main problem comes from the fact that in most Cisco Press books they always show the route distinguisher value and route target value as the same which is just confusing!
They are not the same and are used for completely different things.
In simple terms the route distinguisher is used to create a unique 96 bit address called the VPNv4 address.
This ensures that if two customers are running the 10.0.0.0/8 address space that each companies addresses are unique within the MPLS network.
The Route Target is a 64 bit BGP community used to tag prefixes. It tells the PE routers which prefixes it can import.
Route Distinguisher
The route distinguisher has only one purpose, to make IPv4 prefixes globally unique. It is used by the PE routers to identify which VPN a packet belongs to, e.g to enable a router to distinguish between 10.0.0.1/8 for Customer A and 10.0.0.1/8 for Customer B. The route distinguisher is made up of an 8 octet field prefixed to to the customer IPv4 address, the resulting 12 octect field make a unique VPNv4 address. For more info on this please refer to RFC 4364
Configuring a Route Distinguisher
The RD value used in the network is entirely the choice of the network admin. There are best practices but the number chosen can by any value to make sure the VPNv4 address is unique. Some engineers choose to use the AS number followed by a site ID
e.g 65335:10 Where 65335 is the AS number for the site and 10 is a site ID
To configure the route distinguisher first you need to define your vrf and then you can define it’s route distinguisher.
R1(config)#ip vrf Customer_A
If we do rd ? you can see the options for configuring the RD as described above
R1(config-vrf)#rd ?
ASN:nn or IP-address:nn VPN Route Distinguisher
For the purpose of this description I will configure the RD value as 65355:10
R1(config-vrf)#rd 65355:10
To verify this value enter the command sh ip vrf
R1#sh ip vrf
Name Default RD Interfaces
Customer_A 65355:10
Route Target
The route target on the other had is an 8 byte field which is a BGP extended Communities Attribute defined in RFC 4360 it defines which prefixes are exported and imported on the PE routers. So for example consider the diagram below. R3 has 2 VRF’s configured on it Customer_A and Customer_B so you would define under each vrf a unique route target value, these take the same format as the route distinguisher, but for the purpose of this explanation we are going to use 1:1 for Customer_A and 2:2 for Customer_B. On R3 we want to export and import the prefixes for Customer A and B, however on R1 we only want to import and export the prefixes for Customer_A and on R2 we only want to import and export the prefixes for Customer_B
Difference between route distinguisher and route target
To conclude, the route distinguisher and route target values perform two completely separate functions, and although in a lot of cisco press publications the values are the same (which they can be) it is confusing to someone learning MPLS for the first time as they assume they do the same thing.
The route distinguisher makes a unique VPNv4 address across the MPLS network
The route target defines which prefixes get imported and exported on the PE routers.
If you want go get into Network Automation – please check out my pages on Ansible Network Automation
MPLS Books >
There are a few books I would recommend if you want to go deeper into the subject
Watch out for Part 2 of this mpls tutorial where I will go into more detail on MPLS L3 VPN’s
Guido
Thanks! Not only Cisco but Juniper study guides don’t make a clear distinction between the two either, this certainly helped!
Roger Perkin
I am glad I have helped you understand this simple but poorly explained concept!
Nathaniel
Thank you 🙂 Definitely poorly explained. I’ve been working on Cisco equipment for 10 years and it is clear that they have developers (or someone who does not have the correct thought pattern) also write the guides and they can be Sooooo Confusing!! They should send anyone writing a tech article or book of theirs to a class on teaching methodologies or something,. I constantly find myself trying to explain things in a way that are easy to understand and having difficulty doing so because most of the time I learned it from a Cisco configuration guide or one of their books. Thanks again
Roger Perkin
Glad it helped
Roger
chamara
Thank you very much… this has really helped to understand the concept clearly!!
Roger Perkin
I am glad it has helped. The Route Distinguisher vs Route Target is a very simple concept but easily mis-understood!
jignesh
thanks to explain in easy way. . . .
Edward Adikwu
Hi Roger, Thanks. this was really helpful . I’m with Internet solutions (Dimension Data Nigeria) 🙂
Musole
Roger, you rock. Absolutely great explanation. Just bumped into this today. Great job.
clucas
Hi,
Sorry if it will make some problems in the clean explain of what is RD and what is RT. But if your subnet “S” is connected to two PEs and use RD as ASN:xxx your VPNv4 address is not unique : ASN:xxx:S.
This is why some engineers use : IP:xxx:s instead.
And it is a more simple design about load balancing services. This time your remote PE will receive IP_PE1:xxx:S and IP_PE2:xxx:S as VPNv4 address if it has imported the correct RT.
Your subnet is in this or other VRF by means of the Route Target, not the Route Distinguisher.
Regards,
Christophe
Roger Perkin
Thanks Christophe
Sunil Soni
Absolutely great explanation, Roger. Looking forward for your further POSTS.
Roger Perkin
Thanks Sunil, glad it helped
Mohamed Yashir
Thanks Roger. It helped.
Tushar
Nice roger..Appreciated