Route reflectors (RRs) propagate only their best path over their sessions by hiding the other paths. This may not be the best path according to client point of view. ORR (Optimal Route Reflection) can solve that kind of problem.

Use case for ORR is to avoid reflecting all paths to the client. Because Client may or may not support Add-Path. Or even it supports, it may not have enough capacity.

According to topology, R4 and R5 has 2 eBGP peers and having the network After they sent the network to RR, RR will choose the best one and reflect it to RR-Client. Let us assume all links have a defaul ISIS cost of 10. 

RR BGP Table via R4, best, IGP metric=10 via R5, IGP metric=20

That means RR will reflect route to the client with a next hop R4. In fact R5 is the closest exit for RR Client. One of the solution may be BGP Add-Path feature. Disadvantage of add path is, it will create a lot of entry on BGP Table of RR-Clients. If you are holding internet routing table, you will probably not want these second entries on your BGP router. 

Also you can use hierarchical RR and put many RRs which are close the different Clients. This will be hard to manage and implement.

BGP ORR, is used with BGP-LS. With BGP-LS, RR can see the lowest path form the eye of its client.  And can make the best path selection according to place of its client. In our topology, if you enable ORR, RR will reflect the path with a next hop of R5 to its client R3. Because R5 has a lower metric to R3.

According to RFC  there is 2 options for BGP ORR.

1. Client’s Perspective IGP Based Best Path Selection (which I tried to explain)

2. Client’s Perspective Policy Based Best Path Selection

Depending on the needs service providers may configure IGP based optimal route reflection or policy based optimal route reflection.  It’s also possible to configure both approaches together. In most cases IGP based optimal route reflection is a better choice, assuming you will not want to deal with new policies.  

BGP ORR reduces the amount of state which needs to be pushed to the BGP routers in order to perform hot potato routing.

About: fabricplane