Review findings from verifying the router-blueprints drop against the deployed stack: - router-blueprints/README.md linked docs/router-config-guide.md, which does not exist -- the guide is docs/router-integration.md - router-integration.md still advised --router-port 5000 for lab routers; 1790 is the standard now, the note points at re-applying via cml/proxmox_bmp_config.py instead - verify sections referenced Grafana paths that don't exist in the provisioned UI: 'Base-1001 -> Peers Table' -> Inventory / Peer Detail, and folder 'OBMP-Learning' -> OBMP-Reference - role-route-reflector.cfg: loud caveat block on next-hop-self -- it only rewrites eBGP-learned/local routes (what this lab wants); reflected iBGP routes need 'ibgp policy out enforce-modifications', so on a pure RR the line is a silent no-op - cml/xrd-node-definition.yaml BMP timers synced to the blueprint values (initial-delay 60, refresh 60/30, drop flapping-delay) per the keep-hand-config-and-automation-in-sync rule Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
73 lines
3.1 KiB
INI
73 lines
3.1 KiB
INI
! ============================================================================
|
|
! 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 <LOCAL_ASN>
|
|
!
|
|
! 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 <ROUTER_LOOPBACK>
|
|
!
|
|
! RR-CLIENT neighbor-group: applied to every iBGP client peer.
|
|
neighbor-group RR-CLIENT
|
|
remote-as <LOCAL_ASN>
|
|
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 <LOCAL_ASN>
|
|
! 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 <CLIENT_LOOPBACK>):
|
|
!
|
|
! router bgp <LOCAL_ASN>
|
|
! neighbor <CLIENT_LOOPBACK>
|
|
! use neighbor-group RR-CLIENT
|
|
! !
|
|
! !
|
|
|
|
! --- Verify -----------------------------------------------------------------
|
|
! show bgp neighbors <CLIENT_LOOPBACK> | include Route-Reflector
|
|
! show bgp summary ! all clients Established
|
|
! show bgp neighbors <CLIENT_LOOPBACK> advertised-routes | count
|
|
!
|
|
! On the stack side (once the routers are BMP-reporting and reflecting):
|
|
! Grafana -> OBMP-Reference -> RR Loc-RIB Diff (should populate)
|