Hey Major,
Because the RD isn’t used to make a site unique. The purpose of an RD is almost the exact opposite of what you’re thinking. It’s used to make a VPN instance unique. Say you have 4 routers.
R1:
RD 1:1
route-target export 1:1
route-target import 1:1
R2:
RD 1:2
route-target export 1:1
route-target import 1:1
R3:
RD 1:3
route-target export 1:1
route-target import 1:1
R4:
A route reflector in the middle of all of these routers.
All three routers advertise their own unique subnets and the 192.168.0.0/24 subnet.
This will make 3 separate entries in the VPNV4 table for the 192.168.0.0/24 network. Each site will receive all 3 of these routes and then choose the best route to get to the destination.
Let’s do the same thing but with slightly differently.
R1:
RD 1:1
route-target export 1:1
route-target import 1:1
R2:
RD 1:1
route-target export 1:1
route-target import 1:1
R3:
RD 1:1
route-target export 1:1
route-target import 1:1
R4:
A route reflector in the middle of all of these routers.
Now we’re telling VPNv4 all of these routes belong to the same VPN, which means the route reflector will learn all 3 of the 192.168.0.0/24 routes that are being advertised. However, the route reflector will now do NWLLA OMNI OLL and then only advertise the best route the clients.
RD is mostly used for load balancing within the BGP VPNv4 network. You might have two edge routers in one AS and want to load balance between them, but because you used the same RD on both, only one can be selected (in fact, INE has a lab on this specifically).
So to sum up, the RD is NOT used to prevent a route from being advertised back to itself, it is used within VPNv4 to specify when you want to forward on multiple overlapping subnets. That’s the entire purpose. You learn multiples of the same route from different VRFs, etc, and you want them all to be advertised.