Are you sure? RR should just distribute routes.
RR do not make any route decisions, and (btw) iBGP
do not make route
decisions - they are mostly based on IGP routing.
All iBGP + RR are doing
- tie external routes to internal IP;
- distribute this information using iBGP mesh, RR's
- receive this information and set up routing using
internal IP (which are
routed by IGP protocls).
End routers receives iBGP routes and uses IGP (OSPF
or EIGRP or anything you
use) for route decisions (of course, we can image
exceptions, but normally ,
it works so that all decisions are based on IGP
routing). Most important
decisions are done , where routes are emitted from
EBGP into iBGP, others -
by iGP; which decisions are done by RR's themself?
The primary decision made by a route-reflector is the
same decision which would be made by multiple routers
in an iBGP full-mesh: which exit point should this
router use to reach a specific netblock.
Leaving aside for the moment any manipulation of
multipath, each router will run the BGP route
selection algorithm on each route learned. If
multiple routes are learned to a given destination,
only one will be inserted into the RIB. The standard
behavior for a router is to only pass on those routes
which have been accepted into the RIB.
So if you have this network
And R1 is the only route-reflector (yeah, yeah, bad
design - it's just an example), R4 will only learn
about the path to C1 through R1, and might route
traffic along the R4->R2->R1->C1 path rather than
along the R4->R3->C1 path which would be preferred by
an iBGP full-mesh.
The upshot of this is the following (drumroll):
route reflectors are a wonderful thing, but make sure
that their topology reflects and respects your
underlying IP network topology. If you don't, you can
get unpleasant consequences.