Lab9 MPLS + RDs + UCMP
Load lab9.init.cfg
#R1, R6
configure replace unix:lab9.init.cfg
#R2-R5, R7
configure
load bootflash:lab9.init.cfg
commit replace
y
R7 is the only RR, and it is reflecting VPNv4 and VPN6 routes. The iBGP sessions have already been established.
On the PEs, place the customer in a VRF called CUST_A and exchange IPv4 and IPv6 routes.
The VRF has not been configured yet.
Configure dmz-linkbw so that R2 will forward traffic to R6 in a 2:1 ratio to R4/R5.
Answer
https://www.youtube.com/watch?v=Er2fq1yL0rc&list=PL3Y9eZjZCcsejbVWD3wJIePqe3NiImqxB&index=12
Explanation/Verification
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.


Last updated