Octet

How do route reflectors work, and what are the reflection rules?

Show the answer

Say this first

A route reflector (RFC 4456) is an iBGP router allowed to re-advertise iBGP routes, which breaks split horizon in a controlled way. Clients peer only with the RR. A route from an eBGP peer goes to all clients and non-clients. A route from a client goes to all other clients and to non-clients. A route from a non-client goes only to clients. The RR adds ORIGINATOR_ID and CLUSTER_LIST to stop loops, and it does not change the next hop.

Go deeper

Reflection rules

Learned fromSent to clientsSent to non-clientsSent to eBGP
eBGP peerYesYesYes
ClientYesYesYes
Non-clientYesNoYes

Config (only the RR changes)

Cisco IOS
router bgp 64500
 neighbor 10.255.0.1 remote-as 64500
 neighbor 10.255.0.1 update-source Loopback0
 neighbor 10.255.0.1 route-reflector-client
 neighbor 10.255.0.3 remote-as 64500
 neighbor 10.255.0.3 update-source Loopback0
 neighbor 10.255.0.3 route-reflector-client

Clients are configured as ordinary iBGP peers of the RR.

Loop prevention

  • ORIGINATOR_ID: router ID of the router that brought the route into the AS. A router that sees its own ID drops the route.
  • CLUSTER_LIST: each RR adds its cluster ID (by default its router ID). An RR that sees its own cluster ID drops the route.

Design points

  • Run two RRs. Each client peers with both, and the RRs peer with each other.
  • The RR reflects only its own best path per prefix, so clients lose sight of alternatives. Add-path and best-external fix that when it matters.
  • The RR picks the best path from its own position in the IGP. An RR off to one side can hand clients a poor exit; optimal route reflection (RFC 9107) addresses this.

Traps

  • Saying the RR sets itself as next hop. It does not; edge routers still need next-hop-self.
  • Saying routes from one non-client are reflected to another non-client. Non-clients must stay fully meshed with each other.
How did you do?Book 4.1 Global Internet