Hello! Welcome back to our course on the CCNP Enterprise core exam.
In our last lesson, we took active control of BGP routing policy, using route maps to manipulate attributes like Local Preference and AS-path. A key principle we relied on was that all routers within an Autonomous System (iBGP peers) must have a consistent view of these policies. To ensure this, we assumed a full mesh of iBGP peerings, where every iBGP router is directly connected to every other iBGP router.
Today, we address the real-world limitations of that assumption. This lesson covers the learning outcome: Configure and verify iBGP route reflection for scalability.
As your network grows, maintaining a full mesh becomes operationally unsustainable. As a solutions engineer, you're constantly balancing performance with scalability and manageability. We will explore one of the primary solutions to this scalability challenge: the BGP Route Reflector. We'll examine the problem it solves, the rules that govern its operation, and how to configure and verify it in a practical setting.
1. The iBGP Scalability Problem
The need for a full iBGP mesh stems from the iBGP split-horizon rule: a route learned from one iBGP peer will not be advertised to another iBGP peer. This rule is a loop-prevention mechanism, but it forces us into a design where every iBGP speaker must peer with every other iBGP speaker to ensure all routes are propagated throughout the AS.
The number of required TCP sessions in a full mesh is calculated with the formula , where is the number of routers.
- For 5 routers, you need 10 sessions.
- For 10 routers, you need 45 sessions.
- For 50 routers, you need an astounding 1,225 sessions.
This exponential growth creates significant administrative overhead and consumes router CPU and memory. To understand this challenge more deeply, let's start with a short video.
"Unlocking Network Scalability: The Power of Route Reflectors"
This video from Sikandar Shaik revisits the iBGP split-horizon rule and clearly explains the administrative and technical disadvantages of a full-mesh configuration, setting the stage for why a solution like route reflection is necessary.
Please watch from the beginning until 04:14. Focus on the explanation of the split-horizon rule and the specific drawbacks listed for a full-mesh topology.
2. Introducing the Route Reflector
A Route Reflector (RR) is a specially configured iBGP router that can relax the split-horizon rule, allowing it to re-advertise (or "reflect") routes learned from one iBGP peer to other iBGP peers. This eliminates the need for a full mesh.
This introduces a simple hierarchical topology within iBGP. We define three roles:
- Route Reflector (RR): The router that reflects the routes.
- Route Reflector Client (RR-Client): An iBGP peer that peers with the RR. Clients do not need to peer with each other; they rely on the RR to receive updates.
- Non-Client Peer: A regular iBGP router that is not a client of the RR. Non-clients must still be fully meshed with the RR and with all other non-clients.
The RR and its clients are said to form a cluster.

The Rules of Reflection
An RR follows a specific set of rules to determine how it advertises routes, which are crucial to understand:
- A route received from an eBGP peer is advertised to all clients and non-client peers.
- A route received from a non-client iBGP peer is advertised to all clients (but not to other non-client peers, honoring the split-horizon rule among non-clients).
- A route received from an RR-client is advertised to all other clients and all non-client peers.
Let's watch a concise video that walks through these rules with a clear topology.
Border Gateway Protocol (BGP) Route Reflectors
This video by Anthony Sequeira provides an excellent explanation of what a route reflector does and demonstrates the specific rules of reflection for routes coming from clients vs. non-clients.
Watch from the beginning until 02:52. Pay close attention to the diagrams showing how an update from a client is handled differently from an update from a non-client.
3. Configuration and Verification
One of the best things about route reflectors is the simplicity of their configuration. All the configuration is done on the router acting as the RR; the clients require no special commands.
You simply identify which neighbors are clients using the route-reflector-client command within the BGP process.
Configuration Steps
On the designated Route Reflector router:
router bgp 65000
address-family ipv4 unicast
neighbor 10.0.0.2 remote-as 65000
neighbor 10.0.0.2 route-reflector-client
!
neighbor 10.0.0.3 remote-as 65000
neighbor 10.0.0.3 route-reflector-client
exit-address-family
In this example, the local router becomes an RR, and neighbors 10.0.0.2 and 10.0.0.3 become its clients. The clients (10.0.0.2 and 10.0.0.3) are configured with a standard iBGP peering to the RR, with no knowledge of their "client" status.
Now, let's see this in action. The same video we just watched provides a perfect demonstration of both the configuration and verification.
Border Gateway Protocol (BGP) Route Reflectors
Continuing with Anthony Sequeira's video, this segment shows the configuration and, more importantly, how to verify that the reflection rules are working as expected using show ip bgp.
Watch from 02:38 to the end (07:02). Follow the simple configuration command and then observe the verification steps. Notice how a prefix from one client shows up on another client, and how a prefix from a non-client is blocked from reaching other non-clients via the RR.
Test your understanding!
You are configuring a route reflector topology in AS 65100. Router R1 is the designated Route Reflector. R2 and R3 are its clients. Which router(s) require the neighbor <ip> route-reflector-client command, and in which direction should it be applied?
A) On R1, for neighbors R2 and R3.
B) On R2 and R3, for neighbor R1.
C) On all three routers.
D) On R1, using an outbound route map.
Show answer
The correct answer is A) On R1, for neighbors R2 and R3.
The route-reflector-client command is only configured on the Route Reflector server itself. It is a neighbor-specific command that tells the RR to treat that neighbor as a client. The clients have no special configuration; they just establish a normal iBGP peering with the RR.
4. Loop Prevention and Redundancy
Since route reflectors intentionally break the iBGP split-horizon rule, they need an alternative mechanism to prevent routing loops. RRs use two special, optional, non-transitive BGP attributes for this.
IP Routing: BGP Configuration Guide
This official Cisco documentation explains the two key attributes RRs use for loop avoidance. Understanding these is key to a deeper grasp of the technology.
Please read the section titled 'Route Reflector Mechanisms to Avoid Routing Loops.' It clearly defines the Originator ID and Cluster-list attributes.
As you just read, the two mechanisms are:
- Originator ID: The RR creates this attribute and sets it to the router ID of the BGP speaker that originally advertised the route into the AS. If a router ever receives an update where the Originator ID matches its own router ID, it knows there is a loop and discards the update.
- Cluster-list: The RR appends its own Cluster ID to the Cluster-list attribute as it reflects a route. By default, the Cluster ID is the router ID of the RR. If an RR receives an update that already contains its own Cluster ID in the list, it knows the update has looped back to its own cluster and discards it.
Design Consideration: Redundancy
By centralizing iBGP peering, the RR becomes a single point of failure. If the RR goes down, its clients lose their path to the rest of the AS. To prevent this, you can deploy multiple RRs.
- A cluster can have more than one RR.
- All RRs within the same cluster must be fully meshed with each other.
- To ensure all RRs in the cluster know they are part of the same group (for loop prevention with the Cluster-list), they must be configured with the same, explicit
bgp cluster-id <id>command.
Conclusion
Today we tackled a fundamental scalability issue in large-scale BGP deployments. By understanding the limitations of a full iBGP mesh, you can now appreciate the elegance and simplicity of using route reflectors. You learned the specific rules of reflection, how to implement the simple configuration, and the underlying mechanisms that keep the network loop-free.
Key Takeaways:
- The iBGP split-horizon rule necessitates a full mesh of iBGP peers, which does not scale.
- A Route Reflector (RR) solves this by reflecting routes learned from one iBGP peer to others.
- The key roles are the RR, RR-Clients, and Non-Client peers. Clients only need to peer with their RR.
- Configuration is done only on the RR using the
neighbor <ip> route-reflector-clientcommand. - RRs use the Originator ID and Cluster-list attributes to prevent routing loops.
- For high availability, multiple RRs can be deployed in a cluster, which requires them to be fully meshed and share a common Cluster ID.
Preview of the Next Lesson:
Route reflection is an excellent and widely used solution, but it's not the only one. In our next lesson, we will explore the other primary method for scaling iBGP: configuring and verifying iBGP confederations. We will then be able to compare and contrast these two powerful design options.