We have configured the route-reflector feature, but the "loop prevention" mechanism is still supressing multiple routes to the same destination.
"By default, all internal BGP (iBGP) speakers in an autonomous system must be fully meshed, and neighbors do not readvertise iBGP learned routes to neighbors, thus preventing a routing information loop. When all the clients are disabled, the local router is no longer a route reflector.
If you use route reflectors, all iBGP speakers need not be fully meshed. In the route reflector model, an Interior BGP peer is configured to be a route reflector responsible for passing iBGP learned routes to iBGP neighbors. This scheme eliminates the need for each router to talk to every other router."
What am I missing here?
You have one or multiple BGP route-reflectors? You see the prefixes in the BGP table?
Maybe I got it wrong but you expect to have multiple routes to the same destination in the routing table? The route-reflector feature is not about having multiple, equal cost routes to the same destination. THe feature, as you correctly quoted, is used to avoid large numbers of any-to-any iBGP sessions by using route-reflector BGP routers.
If you can answer the above questions, we may help you more.
If you want to have multiple routes to the same destination they must be equal cost and they must both equal after going through the BGP best path selection algorithm. If they are then you need to add this to your config if it is not there -
there are restrictions to this though ie from the BGP command reference -
The maximum-paths ibgp command is used to configure equal-cost or unequal-cost multipath load sharing for iBGP peering sessions. In order for a route to be installed as a multipath in the BGP routing table, the route cannot have a next hop that is the same as another route that is already installed. The BGP routing process will still advertise a best path to iBGP peers when iBGP multipath load sharing is configured. For equal-cost routes, the path from the neighbor with the lowest router ID is advertised as the best path.
To configure BGP equal-cost multipath load sharing, all path attributes must be the same. The path attributes include weight, local preference, autonomous system path (entire attribute and not just the length), origin code, Multi Exit Discriminator (MED), and Interior Gateway Protocol (IGP) distance.
The number of paths that can be configured is determined by the version of Cisco IOS software as shown in the following list:
•Cisco IOS Release 12.0S-based software: 8 paths
•Cisco IOS Release 12.3T, 12.4, 12.4T, and 15.0-based software: 16 paths
•Cisco IOS Release 12.2S-based software: 32 paths
see the bit in bold about the same next hop.
Thanks for your input.
I've used this hidden cmd: bgp bestpath as-path multipath-relax
The challenge is that the actual prefix is not showing up twice in the BGP table.
This command allows you to load balance between eBGP routes received from different providers and will not help you here.
Concerning your original issue, it is normal behavior for a route reflector to make a best path selection on all received paths and to only propagate this one best path. If you want multiple iBGP paths, you need to either fully mesh all your routers (get rid of the route reflector) or use the "add paths" feature.
Just for my own clarification.
So are you saying that the "maximum-paths ibgp
The issue is that this command is useless if you do not receive multiple iBGP paths. The RR only propagate the best path by default. So unless you have multiple RRs selecting and propagating different paths, which is not usually the case, the clients are left with only one path for a given route, hence this command not helping in this case.
I think BGP add paths would be a good implementation in that case Harold? If it is supported.
Please rate helpful posts.
You are absolutely correct. I referred to the add paths feature in my previous post.