Scaling and Convergence (Route Reflectors, Confederations, Timers)
Scaling and Convergence: Route Reflectors, Confederations, Timers
This domain tests the mechanisms that let iBGP scale past a full mesh and the timers that govern how fast the network converges.
Why full mesh fails
iBGP split horizon means every speaker needs a session with every other speaker: N(N-1)/2 sessions. Route reflectors (RFC 4456) break this. An RR reflects routes from a client to other clients and to non-clients, and from non-clients to clients only. Two attributes prevent loops: ORIGINATOR_ID (router-id of the originating speaker) and CLUSTER_LIST (cluster-ids traversed). A router discards a route whose ORIGINATOR_ID equals its own router-id, or whose CLUSTER_LIST already contains its cluster-id.
Confederations (RFC 5065) split one AS into sub-ASes. eBGP-like rules apply between sub-ASes and AS_CONFED_SEQUENCE / AS_CONFED_SET replace ordinary AS_PATH segments, which are stripped when the route leaves the confederation.
Timers and convergence
Default hold-time is 90 s with a 30 s keepalive; worst-case failure detection is hold-time. BFD or graceful-restart shortens the effective outage. min-route-advertisement (default 30 s for eBGP) limits update rate, while rapid-withdrawal and next-hop tracking reduce blackholing. Add-path (RFC 7911) advertises multiple paths per prefix.
Worked example
One RR with cluster-id 1.1.1.1 serves 40 clients. Client A advertises 203.0.113.0/24; the RR adds ORIGINATOR_ID equal to A's router-id and CLUSTER_LIST [1.1.1.1], then reflects the route to the other 39 clients. A second RR with the same cluster-id in the same cluster prevents loops between the pair; separate cluster-ids are safer when the RRs are not fully meshed.
Traps
Reflecting a route back to its originator (prevented by ORIGINATOR_ID); reusing one cluster-id across unrelated clusters; changing hold-time without keeping keepalive at or below hold/3; and expecting add-path to change best-path selection - it only advertises more paths.