What is RR?
Route Reflector
An RR (Route Reflector) is an iBGP router allowed to pass iBGP-learnt routes on to other iBGP peers, removing the need for a full mesh.
Normally a route learnt over iBGP is never advertised to another iBGP peer. That rule prevents loops inside an AS, where the AS_PATH doesn't change, but it means every BGP router must peer with every other: n(n−1)/2 sessions, which becomes unmanageable quickly. Route reflection, defined in RFC 4456, relaxes the rule on chosen routers. A reflector has clients and non-clients. A route from a client is reflected to all other clients and non-clients; a route from a non-client goes only to clients; routes from eBGP neighbours go to everyone as usual. Clients need sessions only to the reflectors and need no special configuration. Two attributes prevent loops: ORIGINATOR_ID records the router that first put the route into the AS, and CLUSTER_LIST records the reflection clusters it has passed through.
A reflector doesn't change the next hop by default, so it can sit outside the forwarding path entirely; traffic still goes directly between the edge routers. Networks usually run at least two reflectors so that losing one doesn't break iBGP. One side effect is path hiding: a reflector advertises only its own best path, so clients may not see every exit, and they inherit the reflector's view of which is best, which can lead to less-than-ideal exits. Route reflectors are standard in large networks and in EVPN fabrics. The BGP Fundamentals lesson explains why iBGP needs them, and Route reflectors on VyOS replaces a full mesh with reflectors in a real lab.
Lessons that use RR
- BGP FundamentalsTeaches this term · Intermediate · 75 min
How the Border Gateway Protocol glues the internet together: autonomous systems, sessions, path attributes, best-path selection, iBGP scaling and a hands-on eBGP lab with real FRR configuration.
- Route reflectors on VyOSIntermediate · 30 min
Replace an iBGP full mesh with route reflectors: see iBGP refuse to pass routes on, turn on reflection, read ORIGINATOR_ID and CLUSTER_LIST, confirm the reflector stays out of the forwarding path, and survive taking one reflector down.