Enhance your Career in Networking With IPinBits!!!​

BGP Route Reflector

As discussed in the article for Split Horizon Rule, IBGP neighbor doesn’t forward routing update received from an IBGP neighbor to another. To refresh on that article click below button. In this article we check the use of RR ( Router Reflector) to overcome this rule and how we can advertise and receive routes across IBGP peers.

We will understand the working of RR, what are the types of RR peers , rules and basic configuration in single Cluster and multiple clusters.

PEER TYPES : The peer types are defined on the RR itself and not on the other routers.

A. CLIENT : RR can be peered with router which is client.

B. NON-CLIENT: RR can have peering with router is non-client.

C. RR is neighbor of all IBGP neighbors mostly, it can also peer with RR in other AS as EBGP peers as well depending on the requirement of the design ( Mostly used in BGP-LU).

RR can be any router since the function of RR is reflect the routes in the control plane ( so less BW CPU routers can also act as RR). But there are scenarios where in RR is also forwarding traffic in data plane along with its control plane functionality, this type of RR are know as inline route reflector.

Now lets us know see the rules of RR and its functionality with LAB

RULES OF RR :

  1. Client can communicate with Client as well as non client.
  2. Non Client can only Communicate with client, not non-client.
  3. EBGP neighbor routes are advertised to both Client and Non-client.

Let’s say R2 is the Route Reflector, and we will make R1 as its Client and R3 as its non-client.

So route learned from R1 will be exchanged to R2 via the route reflector, this is what the above Rule no 1 is.

Similarly Route learned from R3 ( Non-Client) we be exchanged and learned by R1 ( client ) via R2 (RR), but there if R1 was also non Client then R1 would not learn the routes from R-3 which is also non-client.

LAB:

Consider the above same topology, we have OSPF running as IGP for IP reachability from R1-R2-R3.
We have IBGP peering's between R1-R2, R2-R3
R1 has two loopback 100.100.100.100, 101.101.101.101 which are advertised in BGP.
R3 also has two loopbacks 30.30.30.30, 33.33.33.33
 also advertised in BGP.

A. R2 is RR, R1 and R2 both are non-client.


R1#show ip bgp 
BGP table version is 3, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  100.100.100.0/24 0.0.0.0                  0         32768 i
 *>  101.101.101.0/24 0.0.0.0                  0         32768 i

R2#show ip bgp 
BGP table version is 7, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 30.30.30.0/24    3.3.3.3                  0    100      0 i
 *>i 33.33.33.0/24    3.3.3.3                  0    100      0 i
 *>i 100.100.100.0/24 1.1.1.1                  0    100      0 i
 *>i 101.101.101.0/24 1.1.1.1                  0    100      0 i
R2#

R3#show ip bgp
BGP table version is 3, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  30.30.30.0/24    0.0.0.0                  0         32768 i
 *>  33.33.33.0/24    0.0.0.0                  0         32768 i
R3#

As you can see, R2 has all the routes, R1's and R3's but R1 has no route from R3 and vice-versa because of split horizon rule.


B. R2 is RR, R1 is client, R3 is non-client

Just added R2 as RR, and R1 as its client, now we will see all the prefixes in all 3 routers.
R2(config-router)#neighbor 1.1.1.1 rout
R2(config-router)#neighbor 1.1.1.1 route-r
R2(config-router)#neighbor 1.1.1.1 route-reflector-client 
R2(config-router)#do wr

R2#show ip bgp
BGP table version is 11, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 30.30.30.0/24    3.3.3.3                  0    100      0 i
 *>i 33.33.33.0/24    3.3.3.3                  0    100      0 i
 *>i 100.100.100.0/24 1.1.1.1                  0    100      0 i
 *>i 101.101.101.0/24 1.1.1.1                  0    100      0 i
R2#

R1#show ip bgp 
BGP table version is 7, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 30.30.30.0/24    3.3.3.3                  0    100      0 i
 *>i 33.33.33.0/24    3.3.3.3                  0    100      0 i
 *>  100.100.100.0/24 0.0.0.0                  0         32768 i
 *>  101.101.101.0/24 0.0.0.0                  0         32768 i
R1#

R3#show ip bg
BGP table version is 7, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  30.30.30.0/24    0.0.0.0                  0         32768 i
 *>  33.33.33.0/24    0.0.0.0                  0         32768 i
 *>i 100.100.100.0/24 1.1.1.1                  0    100      0 i
 *>i 101.101.101.0/24 1.1.1.1                  0    100      0 i
R3#

Now we can see all the routes are exchanged between R1-R2-R3 in the control plane, R1 can reach R3 loopback and vice-versa, so we have overcome split horizon rule here.

That’s all about route reflectors as of now, we will have more addition in BGP LU and we will see how RR-RR peering’s work, we can have both RR-RR as IBGP and EBGP peering’s depending on design and implementations in network. We will have separate article for that, this is the fundamentals of Route-Reflector.

Thank you for visiting, stay tuned for next articles.

Related blog posts