! ============================================================================ ! role-route-reflector.cfg -- RR-specific overlay for CORE routers ! ============================================================================ ! Apply ONLY on routers that act as iBGP route reflectors for their AS. ! Skip on the client routers -- there this overlay is a no-op at best and ! creates inadvertent reflection at worst. ! ! Complements 01-bmp-basic.cfg (defines the BMP-MONITORED neighbor-group) ! and 02-bgp-ls.cfg (which activates the LS AF toward peers). The ! RR-specific bit here is `route-reflector-client` under the AFs for ! every client neighbor. ! ! Two conventions worth preserving: ! - Put every RR client into a `RR-CLIENT` neighbor-group so the ! reflector attribute is set once at group scope. ! - Combine with BMP-MONITORED via `use neighbor-group` at the neighbor ! itself -- IOS-XR only allows one `use neighbor-group` per neighbor, ! so nest common bits by inheritance if you need multiple groups. ! ============================================================================ router bgp ! ! Cluster-id -- set to the RR's loopback so RR<->RR pairs recognize each ! other's reflected routes and don't loop. Both RRs in a pair share the ! same cluster-id if you want them to act as a single logical RR. bgp cluster-id ! ! RR-CLIENT neighbor-group: applied to every iBGP client peer. neighbor-group RR-CLIENT remote-as update-source Loopback0 bmp-activate server 1 address-family ipv4 unicast route-reflector-client ! ! *** NEXT-HOP-SELF CAVEAT ********************************************* ! next-hop-self here ONLY rewrites the next-hop of eBGP-learned and ! locally-originated routes advertised to clients. That is exactly what ! this lab wants: the full table enters at the cores via eBGP (GoBGP/ ! ExaBGP) and clients must resolve those routes via the RR's loopback. ! ! IOS-XR will NOT rewrite the next-hop of iBGP-REFLECTED routes unless ! you ALSO configure: ! router bgp ! ibgp policy out enforce-modifications ! On a pure route reflector with no eBGP feed, this line is a silent ! no-op and clients must resolve next-hops via the IGP instead. Do not ! copy it into such a design expecting reflected-route NH rewrite. ! ********************************************************************** next-hop-self ! address-family link-state link-state route-reflector-client ! ! ! ! Per-client wiring (repeat per client, replacing ): ! ! router bgp ! neighbor ! use neighbor-group RR-CLIENT ! ! ! ! ! --- Verify ----------------------------------------------------------------- ! show bgp neighbors | include Route-Reflector ! show bgp summary ! all clients Established ! show bgp neighbors advertised-routes | count ! ! On the stack side (once the routers are BMP-reporting and reflecting): ! Grafana -> OBMP-Reference -> RR Loc-RIB Diff (should populate)