Saturday, 28 June 2025

BGP Chapter 23 - BGP Route Reflector

BGP Chapter 23 - BGP Route Reflector 

A small Recap of  BGP Split Horizon Rule

Route learned from an iBGP neighbor cannot be forwarded to other iBGP neighbor.

iBGP loop prevention mechanism . 


Solution for this are :-

1) Full Mesh iBGP

2) Route Reflector 

3) Confederation 


In this post we will focus on Route Reflector (RR)

RR – A router that reflects routes between iBGP peers.

Client - A router that peers with the RR.

Non-client -  A normal iBGP peer of the RR.


Route Reflection Behavior

When a RR receives a route






R1

R1_CLIENT#show ip bgp summary

BGP router identifier 121.121.121.121, local AS number 100

BGP table version is 3, main routing table version 3

3 network entries using 432 bytes of memory

3 path entries using 240 bytes of memory

3/2 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1104 total bytes of memory

BGP activity 3/0 prefixes, 3/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

2.2.2.2         4          100      67      66        3    0    0 00:56:11        2

R1_CLIENT#

R1_CLIENT#show ip bgp

BGP table version is 3, local router ID is 121.121.121.121

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.1.1.0/24     0.0.0.0                  0         32768 i

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i

 

R2

R2_RR#show ip bgp summary

BGP router identifier 2.2.2.2, local AS number 100

BGP table version is 7, main routing table version 7

6 network entries using 864 bytes of memory

6 path entries using 480 bytes of memory

3/3 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1776 total bytes of memory

BGP activity 6/0 prefixes, 6/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

1.1.1.1         4          100      66      67        7    0    0 00:56:11        1

3.3.3.3         4          100      64      65        7    0    0 00:56:07        1

4.4.4.4         4          100      66      66        7    0    0 00:56:13        1

5.5.5.5         4          100      67      68        7    0    0 00:57:38        1

6.6.6.6         4          200      64      66        7    0    0 00:55:59        1

R2_RR#

R2_RR#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 100.1.1.0/24     1.1.1.1                  0    100      0 i

 *>  100.2.1.0/24     0.0.0.0                  0         32768 i

 *>i 100.3.1.0/24     3.3.3.3                  0    100      0 i

 *>i 100.4.1.0/24     4.4.4.4                  0    100      0 i

 *>i 100.5.1.0/24     5.5.5.5                  0    100      0 i

 *>  100.6.1.0/24     6.6.6.6                  0             0 200 i

 

 

R3_CLIENT#show ip bgp summary

BGP router identifier 3.3.3.3, local AS number 100

BGP table version is 3, main routing table version 3

3 network entries using 432 bytes of memory

3 path entries using 240 bytes of memory

3/2 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1104 total bytes of memory

BGP activity 3/0 prefixes, 3/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

2.2.2.2         4          100      65      64        3    0    0 00:56:07        2

R3_CLIENT#

R3_CLIENT#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

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 *>  100.3.1.0/24     0.0.0.0                  0         32768 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i



R4_NON_CLIENT#show ip bgp summary

BGP router identifier 4.4.4.4, local AS number 100

BGP table version is 3, main routing table version 3

3 network entries using 432 bytes of memory

3 path entries using 240 bytes of memory

3/2 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1104 total bytes of memory

BGP activity 3/0 prefixes, 3/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

2.2.2.2         4          100      66      66        3    0    0 00:56:14        2

R4_NON_CLIENT#

R4_NON_CLIENT#show ip bgp

BGP table version is 3, local router ID is 4.4.4.4

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 100.2.1.0/24     2.2.2.2                  0    100      0 i

 *>  100.4.1.0/24     0.0.0.0                  0         32768 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i

R4_NON_CLIENT#


R5_NON_CLIENT#show ip bgp summary

BGP router identifier 5.5.5.5, local AS number 100

BGP table version is 3, main routing table version 3

3 network entries using 432 bytes of memory

3 path entries using 240 bytes of memory

3/2 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1104 total bytes of memory

BGP activity 3/0 prefixes, 3/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

2.2.2.2         4          100      68      67        3    0    0 00:57:38        2

R5_NON_CLIENT#

R5_NON_CLIENT#show ip bgp

BGP table version is 3, local router ID is 5.5.5.5

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 100.2.1.0/24     2.2.2.2                  0    100      0 i

 *>  100.5.1.0/24     0.0.0.0                  0         32768 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i



R6_eBGP#show ip bgp summary

BGP router identifier 6.6.6.6, local AS number 200

BGP table version is 7, main routing table version 7

6 network entries using 864 bytes of memory

6 path entries using 480 bytes of memory

3/3 BGP path/bestpath attribute entries using 408 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1776 total bytes of memory

BGP activity 6/0 prefixes, 6/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

2.2.2.2         4          100      66      64        7    0    0 00:55:59        5

R6_eBGP#

R6_eBGP#show ip bgp

BGP table version is 7, local router ID is 6.6.6.6

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.1.1.0/24     2.2.2.2                                0 100 i

 *>  100.2.1.0/24     2.2.2.2                  0             0 100 i

 *>  100.3.1.0/24     2.2.2.2                                0 100 i

 *>  100.4.1.0/24     2.2.2.2                                0 100 i

 *>  100.5.1.0/24     2.2.2.2                                0 100 i

 *>  100.6.1.0/24     0.0.0.0                  0         32768 i 

 

 

Now lets configure 

R2 as RR making R1 and R3 as client 


When we configure iBGP neighbor as route-reflector-client the BGP Session get flapped.


R2_RR(config)#router bgp 100

R2_RR(config-router)#neighbor 1.1.1.1 route-reflector-client 

*Jun 28 12:37:29.943: %BGP-5-ADJCHANGE: neighbor 1.1.1.1 Down RR client config change

*Jun 28 12:37:29.943: %BGP_SESSION-5-ADJCHANGE: neighbor 1.1.1.1 IPv4 Unicast topology base removed from session  RR client config change

*Jun 28 12:37:30.479: %BGP-5-ADJCHANGE: neighbor 1.1.1.1 Up 

R2_RR(config-router)#

R2_RR(config-router)#

R2_RR(config-router)#neighbor 3.3.3.3 route-reflector-client 

R2_RR(config-router)#

*Jun 28 12:37:41.615: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Down RR client config change

*Jun 28 12:37:41.615: %BGP_SESSION-5-ADJCHANGE: neighbor 3.3.3.3 IPv4 Unicast topology base removed from session  RR client config change

*Jun 28 12:37:42.703: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Up 

R2_RR(config-router)#^Z

R2_RR#



R1_CLIENT#show ip bgp 

BGP table version is 8, local router ID is 121.121.121.121

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.1.1.0/24     0.0.0.0                  0         32768 i

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 *>i 100.3.1.0/24     3.3.3.3                  0    100      0 i

 * i 100.4.1.0/24     4.4.4.4                  0    100      0 i

 * i 100.5.1.0/24     5.5.5.5                  0    100      0 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i

 

R3_CLIENT>show ip bgp 

BGP table version is 8, 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

 *>i 100.1.1.0/24     1.1.1.1                  0    100      0 i

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 *>  100.3.1.0/24     0.0.0.0                  0         32768 i

 * i 100.4.1.0/24     4.4.4.4                  0    100      0 i

 * i 100.5.1.0/24     5.5.5.5                  0    100      0 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i

 

R4_NON_CLIENT>show ip bgp 

BGP table version is 3, local router ID is 4.4.4.4

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 100.1.1.0/24     1.1.1.1                  0    100      0 i

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 * i 100.3.1.0/24     3.3.3.3                  0    100      0 i

 *>  100.4.1.0/24     0.0.0.0                  0         32768 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i


R5_NON_CLIENT#show ip bgp 

BGP table version is 3, local router ID is 5.5.5.5

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 100.1.1.0/24     1.1.1.1                  0    100      0 i

 *>i 100.2.1.0/24     2.2.2.2                  0    100      0 i

 * i 100.3.1.0/24     3.3.3.3                  0    100      0 i

 *>  100.5.1.0/24     0.0.0.0                  0         32768 i

 * i 100.6.1.0/24     6.6.6.6                  0    100      0 200 i 


Thanks for Reading !!

Network Engineer Stuff