diff --git a/cml/xrd-node-definition.yaml b/cml/xrd-node-definition.yaml index 7d15111..90fae59 100644 --- a/cml/xrd-node-definition.yaml +++ b/cml/xrd-node-definition.yaml @@ -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 diff --git a/docs/router-integration.md b/docs/router-integration.md index 189ff18..122dc07 100644 --- a/docs/router-integration.md +++ b/docs/router-integration.md @@ -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 diff --git a/router-blueprints/README.md b/router-blueprints/README.md index 9c7b6d7..b474f7a 100644 --- a/router-blueprints/README.md +++ b/router-blueprints/README.md @@ -5,7 +5,7 @@ present for the OpenBMP Docker stack to ingest data from it. Copy, edit the `` 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 diff --git a/router-blueprints/iosxr/01-bmp-basic.cfg b/router-blueprints/iosxr/01-bmp-basic.cfg index d36e2a8..0f178c0 100644 --- a/router-blueprints/iosxr/01-bmp-basic.cfg +++ b/router-blueprints/iosxr/01-bmp-basic.cfg @@ -62,4 +62,5 @@ router bgp ! ! 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) diff --git a/router-blueprints/iosxr/role-route-reflector.cfg b/router-blueprints/iosxr/role-route-reflector.cfg index 5798161..03cf8dd 100644 --- a/router-blueprints/iosxr/role-route-reflector.cfg +++ b/router-blueprints/iosxr/role-route-reflector.cfg @@ -32,6 +32,21 @@ router bgp 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 @@ -54,4 +69,4 @@ router bgp ! show bgp neighbors 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)