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.
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
ASN:nn or IP-address:nn VPN Route Distinguisher
For the purpose of this description I will configure the RD value as 65355:10
To verify this value enter the command sh ip vrf
R1#sh ip vrf
Name Default RD Interfaces
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