blueprints: fix cross-references, flag next-hop-self caveat, sync XRd timers

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>
This commit is contained in:
Sam 2026-07-20 16:49:40 -07:00
parent b480615ca2
commit 65fd88a0a2
5 changed files with 26 additions and 10 deletions

View File

@ -130,12 +130,11 @@ configuration:
!
bmp server 1
host 10.40.40.202 port 1790
description OpenBMP
description OpenBMP-Collector
update-source Gi0/0/0/0
flapping-delay 60
initial-delay 5
initial-delay 60
stats-reporting-period 300
initial-refresh delay 30 spread 2
initial-refresh delay 60 spread 30
!
ssh server v2
end

View File

@ -81,9 +81,10 @@ it before configuring. Covers:
`HOST_IP`** on WSL deployments — the WSL VM's NAT address is
unreachable from real routers; see
[PORTABILITY-FINDINGS.md](PORTABILITY-FINDINGS.md) finding 4).
- Which port (`ROUTER_FACING_PORT`, defaults to 1790 — the IANA BMP port;
existing lab routers configured for 5000 need `--router-port 5000`
until reconfigured).
- Which port (`ROUTER_FACING_PORT` — 1790, the IANA BMP port, standardized
2026-07; the legacy 5000 is retired. Routers still configured for 5000
must be re-applied — `cml/proxmox_bmp_config.py` pushes the current
`.env` values).
- The BMP `bmp server 1` block, flat formal form.
- Activation via `neighbor-group BMP-MONITORED`.
- **RR-scope-only activation** for load reduction — the single biggest

View File

@ -5,7 +5,7 @@ present for the OpenBMP Docker stack to ingest data from it. Copy, edit
the `<PLACEHOLDER>` values for your topology, paste.
For the walkthrough (what each ingest path does, in what order to apply,
how to verify), see [docs/router-config-guide.md](../docs/router-config-guide.md).
how to verify), see [docs/router-integration.md](../docs/router-integration.md).
## Layout

View File

@ -62,4 +62,5 @@ router bgp <LOCAL_ASN>
!
! On the stack side:
! docker logs obmp-collector 2>&1 | grep -i "peer up"
! Grafana -> OBMP-Operations -> Base-1001 -> Peers Table
! Grafana -> OBMP-Operations -> Inventory (router appears, connected)
! Grafana -> OBMP-Operations -> Peer Detail (per-session state + prefixes)

View File

@ -32,6 +32,21 @@ router bgp <LOCAL_ASN>
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
@ -54,4 +69,4 @@ router bgp <LOCAL_ASN>
! show bgp neighbors <CLIENT_LOOPBACK> advertised-routes | count
!
! On the stack side (once the routers are BMP-reporting and reflecting):
! Grafana -> OBMP-Learning -> RR Loc-RIB Diff (should populate)
! Grafana -> OBMP-Reference -> RR Loc-RIB Diff (should populate)