No matter what I did according to this Cisco article, I simply can't do load-sharing among the PE routers within our enterprise MPLS VPN. The central Route Reflector (RR) simply refuses to send more than 1 identical route, even though I have multiple PE routers attached to that route.
Subsequently, I come across this excellent MPLS VPN blog. It explains that there is no way to change the route reflector behavior. The workaround is to simply assign different Route Distinguisher (RD) values for the same VRF on different routers. To enable route propagation, ensure that you export and import common Route Target (RT) across the PE routes. Finally, enable "maximum-paths eibgp " on each vpnv4 address family under the router bgp process, so as to inject more than one bgp route into the routing table.
And it works magic!
Example configuration according to above diagram
On Router PE A
ip vrf VRF_A
rd 65001:101
route-target both 65001:100
.....
router bgp 65001
address-family ipv4 vrf VRF_A
maximum-paths eibgp 4
On Router PE B
ip vrf VRF_A
rd 65001:102
route-target both 65001:100
.....
router bgp 65001
address-family ipv4 vrf VRF_A
maximum-paths eibgp 4
On Router PE C
ip vrf VRF_A
rd 65001:101
route-target both 65001:100
.....
router bgp 65001
address-family ipv4 vrf VRF_A
maximum-paths eibgp 4
On Router PE D
ip vrf VRF_A
rd 65001:102
route-target both 65001:100
.....
router bgp 65001
address-family ipv4 vrf VRF_A
maximum-paths eibgp 4
You may consider to use "BGP diverse-path RR" feature on your case (you may need two RRs). If so, you need the following three main steps:
ReplyDelete[BGP RR]
1. bgp maximum-paths ibgp 4
2. bgp additional-path
3. neighbor x.x.x.x advertise diverse-path mpath