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