Free tech learning for everyone, from basics to pro

Routing & SwitchingNetworking SecurityAdvanced

Scaling iBGP: full mesh, route reflectors, confederations, peer groups and synchronisation

In short: Because iBGP routers do not pass iBGP-learned routes to other iBGP peers, an AS needs a full mesh of n(n-1)/2 sessions. Route reflectors relax that rule for their clients; confederations split the AS into smaller member ASes. Peer groups and templates cut repeated configuration, and the old synchronisation rule is now disabled by default.

The full mesh problem

Inside an AS, the AS_PATH does not change, so it cannot detect loops. BGP therefore forbids passing a route learned from one iBGP peer to another. Every iBGP router must peer with every other one: n(n-1)/2 sessions. Ten routers need 45 sessions; fifty need 1,225. Every new router means touching every existing one. Two designs fix this: route reflectors and confederations.

Route reflectors

Route reflector versus confederationRoute reflectorClients peer only with the RRRR reflects iBGP routesLoop check: cluster listEasy to add laterConfederationAS split into member ASeseBGP-like links insideLoop check: confed AS pathLarger redesign
Figure 1. Both remove the need for a full iBGP mesh. Route reflectors are far more common because they only change the configuration of the reflectors and their clients.

A route reflector (RR), defined in RFC 4456, is allowed to pass iBGP routes on. Routers that peer with it are either clients or non-clients:

  • A route from a client is reflected to all other clients and all non-clients.
  • A route from a non-client is reflected to clients only.
  • A route from an eBGP peer goes to everyone, as normal.

Clients need no special configuration; they simply peer with the RR. Two attributes prevent loops: ORIGINATOR_ID records the router that first introduced the route, and CLUSTER_LIST records each cluster the route passed through. A router ignores a route that carries its own ID or cluster.

router bgp 64500
 neighbor 10.255.0.11 remote-as 64500
 neighbor 10.255.0.11 update-source Loopback0
 neighbor 10.255.0.11 route-reflector-client
 neighbor 10.255.0.12 remote-as 64500
 neighbor 10.255.0.12 update-source Loopback0
 neighbor 10.255.0.12 route-reflector-client

Always deploy at least two reflectors so the RR is not a single point of failure. A reflector advertises only its own best path, so clients may lose visibility of alternative paths; BGP Add-Path can help, as described in BGP security and convergence.

Confederations

A confederation (RFC 5065) splits one AS into several member ASes, usually with private ASNs. Inside each member AS you still need a full mesh (or reflectors), but between member ASes the sessions behave like eBGP for loop prevention, while keeping next hop, local preference and MED as if they were iBGP. To the outside world the whole confederation looks like a single AS.

router bgp 65001
 bgp confederation identifier 64500
 bgp confederation peers 65002 65003

Confederations suit very large networks or mergers, but they are a bigger redesign, so most enterprises and many providers use route reflectors instead.

Peer groups, templates and synchronisation

Many neighbours often share the same settings. A peer group defines them once; IOS also generates updates once for the whole group. Peer templates are more flexible: session templates hold settings such as remote AS and update source, and policy templates hold filters, and templates can inherit from each other. Modern IOS builds update groups automatically, so peer groups are now mainly about tidy configuration.

router bgp 64500
 neighbor RR-CLIENTS peer-group
 neighbor RR-CLIENTS remote-as 64500
 neighbor RR-CLIENTS update-source Loopback0
 neighbor RR-CLIENTS route-reflector-client
 neighbor 10.255.0.13 peer-group RR-CLIENTS

BGP synchronisation was an old rule: do not use or advertise an iBGP route until the IGP also knows it. It made sense when not every router ran BGP, but it forced redistribution of BGP into the IGP. It has been disabled by default since early 2000s IOS releases, and modern designs run BGP on every router that needs external routes, or use MPLS so that core routers do not need them at all.

Real-world example: a regional provider grew from 6 to 30 routers running iBGP. Adding each new router meant editing every existing one, and a missed session once left a town without some internet routes for a morning. The team introduced two route reflectors in different data centres, made every other router a client of both, and used a peer group on the reflectors. Adding a new router now means configuring two sessions on the new router and two lines on each reflector.

Practice

How many iBGP sessions does a full mesh of 12 routers need?
12 x 11 / 2 = 66.
A route reflector learns a route from a non-client. Who does it reflect it to?
Only to its clients (and to eBGP peers as normal), not to other non-clients.
Which attributes prevent loops between route reflectors?
ORIGINATOR_ID and CLUSTER_LIST.

Key takeaways

  • A full iBGP mesh needs n(n-1)/2 sessions and does not scale.
  • Route reflectors pass iBGP routes to clients; clients need no special configuration.
  • ORIGINATOR_ID and CLUSTER_LIST stop reflection loops; always use two reflectors.
  • Confederations split an AS into member ASes that look like one AS outside.
  • Peer groups and templates simplify configuration; synchronisation is legacy and off by default.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.