BGP route reflectorsNetwork topology:
Configuration:Client1
and Client3 routers are clients of RR1 router while Client2 and Client4
are the clients of RR2 router. There is a single IBGP session between
each router.
Client1 advertises 11.1.1.1/32 route to RR1 router and Client2 advertises 12.1.1.1/32 route to RR2 router.
RR1 and RR2 Configuration
RR1 router:
router bgp 100
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 update-source Loopback 0
neighbor 2.2.2.2 description RR2 router
neighbor 172.16.1.2 remote-as 100
neighbor 172.16.1.2 route-reflector-client
neighbor 172.16.1.2 description Client1
!
RR2 router:
router bgp 100
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source Loopback 0
neighbor 1.1.1.1 description RR1 router
neighbor 172.16.2.2 remote-as 100
neighbor 172.16.2.2 route-reflector-client
neighbor 172.16.2.2 description Client2
!
Client1 and Client2 Configuration
Client1 router:
router bgp 100
neighbor 172.16.1.1 remote-as 100
neighbor 172.16.1.1 description RR1
network 11.1.1.1 mask 255.255.255.255
!
Client2 router:
router bgp 100
neighbor 172.16.2.1 remote-as 100
neighbor 172.16.2.1 description RR2
network 12.1.1.1 mask 255.255.255.255
!
Monitoring route reflection:An RR reflecting the route received from a RR-Client adds-
- Originator ID-
a 4-byte BGP attribute that is created by the RR. This attribute
carries the Router ID of the originator of the route in the local AS. If
the update comes back to the originator, it ignores the update.
- Cluster List-
A Cluster List is a list of Cluster IDs that an update has traversed.
When a route reflector sends a route received from a client to a
non-client, it appends the local Cluster ID. If a route reflector
receives a route whose Cluster List contains the local Cluster ID, it
ignores the update.
The following output shows RR1 receives 11.1.1.1/32 prefix from it RR-client Client1.
11.1.1.1/32 on RR1
!--------- Client1 router advertises 11.1.1.1/32 to RR1 router
Client1# show ip bgp 11.1.1.1
BGP routing table entry for 11.1.1.1/32, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
1
Local
0.0.0.0 from 0.0.0.0 (172.16.1.2)
Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
Client1# show ip bgp update-group
BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast
BGP Update version : 5/0, messages 0
Update messages formatted 1, replicated 0
Number of NLRIs in the update sent: max 1, min 1
Minimum time between advertisement runs is 0 seconds
Has 1 member (* indicates the members currently being sent updates):
172.16.1.1
!---- RR1 receives 11.1.1.1/32 from its client Client1 router
RR1# show ip bgp 11.1.1.1
BGP routing table entry for 11.1.1.1/32, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
2
Local, (Received from a RR-client)
172.16.1.2 from 172.16.1.2 (172.16.1.2)
Origin IGP, metric 0, localpref 100, valid, internal, best
RR1 router advertises this "best" route to all its IBGP peers including the peer it received from.
RR1 advertises 11.1.1.1/32
RR1# show ip bgp update-group
BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast
BGP Update version : 5/0, messages 0
Route-Reflector Client
Update messages formatted 3, replicated 0
Number of NLRIs in the update sent: max 1, min 0
Minimum time between advertisement runs is 0 seconds
Has 1 member (* indicates the members currently being sent updates):
172.16.1.2
BGP version 4 update-group 2, internal, Address Family: IPv4 Unicast
BGP Update version : 5/0, messages 0
Update messages formatted 1, replicated 0
Number of NLRIs in the update sent: max 1, min 1
Minimum time between advertisement runs is 0 seconds
Has 1 member (* indicates the members currently being sent updates):
2.2.2.2
RR2 receives 11.1.1.1/32 prefix from RR1 router.
RR1
adds the Originator ID attribute (Router ID of Client1 router
172.16.1.2) and Cluster List attribute (Router ID of RR1 router 1.1.1.1).
RR2 receives 11.1.1.1/32
RR2# show ip bgp 11.1.1.1
BGP routing table entry for 11.1.1.1/32, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
2
Local
172.16.1.2 (metric 65) from 1.1.1.1 (1.1.1.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 172.16.1.2, Cluster list: 1.1.1.1
When
RR2 receives the prefix 11.1.1.1/32, it accepts the prefix and
advertises to Client2 after appending its Router ID (2.2.2.2) to the
Cluster List attribute. The Originator ID attribute remains unchanged.
Client2 receives 11.1.1.1/32
Client2# show ip bgp 11.1.1.1
BGP routing table entry for 11.1.1.1/32, version 5
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Not advertised to any peer
Local
172.16.1.2 (metric 129) from 172.16.2.1 (2.2.2.2)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 172.16.1.2, Cluster list: 2.2.2.2, 1.1.1.1
Summary:BGP route reflector rules-
- An IBGP prefix received from a RR-client is advertised to all peers including the RR-client that advertised the prefix.
- Routes
originated by the router and routes received from EBGP neighbors and
selected as "best" routes are advertised to all internal and external
BGP peers.
- A RR non-client advertising a prefix is advertised to all EBGP peers and IBGP RR-clients.
- Routes received from RR-clients and selected as "best" routes are advertised to all internal and external BGP peers.
- The RR adds the Originator ID to the routes received from its RR-clients.
- The RR appends its own Router ID to the Cluster List attribute.
Further reading:http://wiki.nil.com/BGP_route_reflectors