The full-mesh problem
iBGP has one rule that shapes everything: a router that learns a route from an iBGP peer does not pass it to another iBGP peer. That stops loops, but it means every router in the AS must peer directly with every other. The number of sessions is n × (n - 1) / 2, so ten routers need 45 and fifty need 1,225.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
What a route reflector changes
A route reflector (RR) is an iBGP router allowed to break the rule. Its iBGP peers are either clients or non-clients. The reflector decides what to pass on based on who sent the route.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
Clients need peer only with the reflector, so the mesh shrinks to one session per client. Only the reflector holds the extra configuration, and clients do not know they are clients.
Configure it
router bgp 64500
neighbor 10.255.0.2 remote-as 64500
neighbor 10.255.0.2 update-source Loopback0
neighbor 10.255.0.3 remote-as 64500
neighbor 10.255.0.3 update-source Loopback0
address-family ipv4 unicast
neighbor 10.255.0.2 activate
neighbor 10.255.0.2 route-reflector-client
neighbor 10.255.0.3 activate
neighbor 10.255.0.3 route-reflector-clientOn the reflector. R2 (10.255.0.2) and R3 (10.255.0.3) are clients. Their own configuration is an ordinary iBGP session to the reflector's loopback.
RR#show ip bgp neighbors 10.255.0.2 | include Reflector Route-Reflector Client
show ip bgp 203.0.113.0 on a client and look for Originator and Cluster list.R3#show ip bgp 203.0.113.0 BGP routing table entry for 203.0.113.0/24, version 6 Paths: (1 available, best #1, table default) 64501 10.255.0.1 (metric 20) from 10.255.0.9 (9.9.9.9) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 1.1.1.1, Cluster list: 9.9.9.9
Technical reference: RFC 4456, BGP Route Reflection. Output above is illustrative.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
Following one route through a reflector
Take the route to 203.0.113.0/24. ISP A sends it to R1 over eBGP. R1 is a client of the reflector, so it passes the route over iBGP to RR. RR then reflects it to every other client. R2 and R3 never peer with R1 or with each other, and still learn the route.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
The reflector passes on only its best path
A reflector runs the best-path algorithm like any router and reflects only the best path to its clients. If R1 and R4 both offer a path to the same prefix, the clients hear about one of them and cannot choose between them with full information. In a design where each client should pick its own closest exit, that loss of path diversity is a real cost. Features such as additional paths, covered in the Advanced BGP course, restore it.
Cluster ID: who counts as the same cluster
A reflector and its clients form a cluster. The reflector uses its router ID as the cluster ID unless you set one. When two reflectors serve the same clients, give both the same cluster ID with bgp cluster-id, so each recognises a route reflected by the other in the CLUSTER_LIST and drops it, and clients do not hold two copies of every route.
router bgp 64500
bgp cluster-id 10.255.0.100On both reflectors of the same cluster. Without it, each uses its own router ID, the two are treated as different clusters, and each accepts the other's reflected routes.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
Where to put a reflector
A reflector chooses the best path from its point of view, using the IGP cost from itself to each next hop. That can differ from what a client would choose, so place reflectors where their view matches the clients, typically in the core, with the same IGP topology as the sessions. A reflector far from its clients may send them a path that is not the closest exit for them. Use two reflectors per cluster, in different places, so one failure does not remove reflection.
Troubleshooting a reflector
On small screens, swipe sideways or focus the diagram and use the arrow keys.
A frequent surprise is that the route reaches the client but is not valid. Reflected routes keep their original next hop, which is the external link on R1, so the clients need a route to it. Use next-hop-self on the border router, as covered in the iBGP lessons.
Check your understanding
A route reflector learns a route from a client. Where does it send it?
A reflector learns a route from a non-client. Where does it send it?
Which two attributes help a route reflector design avoid loops?