• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Roger Perkin

Network Automation Architect

  • Network Automation
    • Network Automation Courses
    • What is NetDevOps?
    • Workflow Orchestration
    • Ansible Automation Platform
    • Ansible Workshop
    • What is Network Automation?
    • Network Automation Tools
    • ContainerLab
    • Ansible Training
      • What is Ansible?
      • Ansible Tutorial for Beginners
      • Ansible Network Automation
      • Ansible Inventory Example
    • Python Network Automation
      • Nornir
      • Python Network Automation Course
      • Python for Network Engineers
      • Python VENV / Virtual Environment Tutorial
      • Python Tutorial for Beginners
      • pyATS
    • Network Source of Truth
      • NetBox Training
      • Infrahub
      • NautoBot
    • NetDevops
    • DevOps Tutorial
      • Git Training
      • Terraform Training
      • Linux Training
      • Kubernetes Training
      • Devops Training Course
      • Azure Devops Training
    • Terraform
    • GIT
      • Git Commands
      • What is GitHub?
    • Docker Training
    • Confluence
    • Microsoft Azure
  • Cisco
    • ISE
    • SD WAN Training
    • Password Recovery
    • Software-Upgrade-Guides
    • BGP
    • Data Center
    • WIRELESS
  • CCIE
  • Blog
  • About
    • My Red Special Guitar
  • Contact

Route Distinguisher and Route Target – MPLS Tutorial

Home » CCIE Certification » MPLS

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

route distinguisher

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

route distinguisher topology rogers ccie blog

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

Category: MPLSTag: CCIE, MPLS Tutorial, route distinguisher, route target
ansible course for network engineers
Get Access to my Ansible Course NOW
Previous Post:bose qc15 noise cancelling headphonesBose Noise Cancelling Headphones for Studying
Next Post:What Cisco did for London 2012

Reader Interactions

Comments

  1. Guido

    May 9, 2013 at 6:22 am

    Thanks! Not only Cisco but Juniper study guides don’t make a clear distinction between the two either, this certainly helped!

    • Roger Perkin

      May 13, 2013 at 11:01 pm

      I am glad I have helped you understand this simple but poorly explained concept!

      • Nathaniel

        October 24, 2014 at 8:46 pm

        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

          October 30, 2014 at 4:11 pm

          Glad it helped
          Roger

  2. chamara

    August 18, 2014 at 4:22 am

    Thank you very much… this has really helped to understand the concept clearly!!

    • Roger Perkin

      August 22, 2014 at 1:50 pm

      I am glad it has helped. The Route Distinguisher vs Route Target is a very simple concept but easily mis-understood!

  3. jignesh

    September 6, 2014 at 10:26 am

    thanks to explain in easy way. . . .

  4. Edward Adikwu

    October 28, 2014 at 11:56 am

    Hi Roger, Thanks. this was really helpful . I’m with Internet solutions (Dimension Data Nigeria) 🙂

  5. Musole

    September 10, 2015 at 7:43 pm

    Roger, you rock. Absolutely great explanation. Just bumped into this today. Great job.

  6. clucas

    October 13, 2015 at 8:30 pm

    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

      October 14, 2015 at 3:56 pm

      Thanks Christophe

  7. Sunil Soni

    January 25, 2018 at 12:28 am

    Absolutely great explanation, Roger. Looking forward for your further POSTS.

    • Roger Perkin

      January 26, 2018 at 9:18 pm

      Thanks Sunil, glad it helped

  8. Mohamed Yashir

    July 10, 2018 at 7:54 am

    Thanks Roger. It helped.

  9. Tushar

    September 17, 2018 at 9:51 am

    Nice roger..Appreciated

Sidebar

Hi I'm Roger Perkin,
Based in the UK working as a Network Automation Architect, CCIE #50038
About Roger | Twitter | Linkedin

python course for network engineers

Topics

Network Automation
Ansible
Python for Network Automation
CCIE
Cisco ISE
F5 Certification
BGP
OSPF
Network Automation Conferences
auvik promo banner
Pluralsight Trial

Git for Network Engineers

Ansible vs Nornir

Start learning today with my Network Automation Courses

Master Ansible, Python, Git, Nornir, Jenkins and more..


Buy me a coffeeBuy me a coffee

ansible network automation course

Have you seen my YouTube Channel?

YouTube Subscribe

Let’s get started

Take a look at my premium courses on Ansible, Nornir & Git or buy them all with the Network Automation Bundle!

Network Automation Courses

Navigation

Python VENV Tutorial
Python for Network Engineers

Network Automation
Network Automation Courses
Network Discovery Tools
Network Automation Conferences
Ansible Training
What is Ansible?
Devops Tutorial
Network Source of Truth
DevOps Glossary
Network Monitoring Software

Contact

Contact

Get in touch with me here

[email protected]

  • Twitter
  • LinkedIn
  • YouTube
Buy me a coffeeBuy me a coffee

Copyright © 2026 · Roger Perkin · All Rights Reserved · Privacy Policy – Terms