( R1 ) -ibgp-> ( R2 ) -ebgp-> ( R3 )
The scenario is that router R1 is announcing routes to R2. Those routes are tagged from R2 inbound using RPL (community is 123:123). Now the R2 has an RPL policy towards R3 which dictates to match any routes that match the community 123:123. This would match all routes that R1 is announcing.
The observed behaviour is that as long as the R1 routes are best routes in R2 BGP table they are picked up by the RPL policy that's applied towards R3. However, this does not work when those R1 routes are not the best routes in the R2 BGP table. If so, is it possible to pick routes (using the community 123:123) which are not best and announce them to R3?
The idea is that R1 routes should never be the best routes in the R2 table. The purpose is to only announce those routes towards R3.
You could prefer the routes from R1 via some mechanism like local preference over other routes coming from other peers. We will only announce our best path, so you have to make the routes from R1 the best route, an alternative is BGP add-path + multipath so you can have a best and backup path installed and advertise both to your R3 peer.
The idea is routes advertising from R1 "not to be the best routes" in R2. However, we need to advertise those R1 routes towards R3 from R2 using RPL community matching.
BGP add-path + multipath might work. I have to lab this and confirm.
Thanks for the input.