This lab uses VPNv4 and VPN6 for the first time in this topology. The VRF configuration is straightforward. The PEs must each use a unique RD, because we are not using add path. Without this, R7 will pick the best path for all routes with the same RD. R7 would end up reflecting only the path via R4 to R2.
The BGP configuration uses VPNv4 and VPNv6 for iBGP RR. On IOS-XE, all routers would need to activate bgp dmzlink-bw for the VPNv4/VPNv6 address-family. But on IOS-XR, you only need this command under the neighbor.
On R4 and R5, we specify the R6 neighbor with dmz-link-bandwidth to add the dmz link-bw extcommunity to routes learned from this peer.
On R7, we can see both routes are learned and both are choosen as a best path. This is because we are using unique RDs per-PE. This is an easy way to achieve additional path functionality in a VPN environment.
Thanks to the unique RDs, R2 receives both paths. R2 also configures mulitpath for iBGP routes under the customer VRF in BGP. This allows R2 to do UCMP for this VPN.
We can see the traffic share count is 2:1 for IPv4 traffic:
Unlike on IOS-XE, dmz-linkbw works for VPNv6 on IOS-XR:
Using show cef … detail on IOS-XR, we can see the 2:1 load distribution. There are two hashes for path 0, which is via R4, and one for path 1, which is via R5.