BGP Route Reflector

Route reflectors (RR) are one method to eliminate the full-mesh of IBGP peers in your network. The other method is BGP confederations.

The route reflector allows all IBGP speakers within your autonomous network to learn about the available routes without introducing loops. Let me show you an example picture:

IBGP 6 routers full mesh

Above, we have a network with six IBGP routers. Using the full mesh formula, we can calculate the number of IBGP peerings:


So that will be:

6(6-1=5) / 2 = 15 IBGP peerings.

When we use a route reflector, our network could look like this:

IBGP Route Reflector Example

We still have six routers, but each router only has an IBGP peering with the route reflector on top. When one of those IBGP routes advertises a route to the route reflector, it will be “reflected” to all other IBGP routers:

IBGP Route Reflector Route Update

This simplifies our IBGP configuration a lot, but there’s also a downside. What if the route reflector crashes? It’s a single point of failure when it comes to IBGP peerings. Of course, there’s a solution to this: we can have multiple route reflectors in our network. I’ll give you some examples later.

The route reflector can have three types of peerings:

  • EBGP neighbor
  • IBGP client neighbor
  • IBGP non-client neighbor

When configuring a route reflector, you must tell the router whether the other IBGP router is a client or non-client. A client is an IBGP router to which the route reflector will “reflect” routes. The non-client is just a regular IBGP neighbor.


When a route reflector forwards a route, there are a couple of rules:

  1. A route learned from a non-RR client is advertised to RR clients but not to non-RR clients.
  2. A route learned from an RR client is advertised to both RR clients and non-RR clients. Even the RR client that advertised the route will receive a copy and discard it because it sees itself as the originator.
  3. A route learned from an EBGP neighbor is advertised to both RR clients and non-RR clients.

Here are three illustrations to see these rules in action.

Rule 1

Bgp Route Reflector Rule1

Rule 2

Bgp Route Reflector Rule2

Rule 3

Bgp Route Reflector Rule3


Now you have an idea of what the route reflector is about, let’s take a look at some configurations.


We’ll use a simple example, 3 IBGP routers with a single route reflector:

AS 123 IBGP Route Reflector

In this example, we have 3 IBGP routers. With normal IBGP rules, when R2 receives a route from R1, it will not be forwarded to R3 (IBGP split horizon). We will configure R2 as the route reflector to get around this. Let’s configure R1 and R3 first:

R1(config)#router bgp 123
R1(config-router)#neighbor remote-as 123
R3(config)#router bgp 123
R3(config-router)#neighbor remote-as 123

The configuration of R1 and R3 is exactly the same as a normal IBGP peering. Only the configuration on the route reflector is special:

R2(config)#router bgp 123
R2(config-router)#neighbor remote-as 123
R2(config-router)#neighbor route-reflector-client

R2(config-router)#neighbor remote-as 123
R2(config-router)#neighbor route-reflector-client

Here’s the magic…when we configure the route reflector, we have to specify its clients. In this case, R1 and R3. In my topology, I have added a loopback interface on R1. Let’s advertise that in BGP to see what it looks like on R2 and R3:

R1(config)#router bgp 123
R1(config-router)#network mask

That’s all we have to configure. Let’s use some show commands to verify our work.


First, we’ll look at R2 and see if it learned anything:

R2#show ip bgp
BGP routing table entry for, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Advertised to update-groups:
  Local, (Received from a RR-client) from (
      Origin IGP, metric 0, localpref 100, valid, internal, best

R2 shows us that this route was received from a route reflector client. Did it advertise anything to R3? Let’s find out:

R2#show ip bgp neighbors advertised-routes
BGP table version is 2, local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.1/32             0    100      0 i

So what do we see here? Let me explain…

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 788 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

730 Sign Ups in the last 30 days

100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!


Forum Replies

  1. Hi Rene, all of your BGP Tutorials are so great please make another advanced BGP topics too, such as :
    - BGP Peer-Group
    - BGP Community
    - BGP Local-AS
    - BGP Load-Sharing
    - BGP Summarization
    - etc (if any)

  2. Hi Black,

    Glad to hear that you like it. I’ll add some of these tutorials, don’t worry :slight_smile:


  3. Thanks Rene, I’ll be waiting for that.

  4. Hi Rene,
    I also want to thank you for BGP tutorials. Its very nicely and simply written.

120 more replies! Ask a question or join the discussion by visiting our Community Forum