-
Notifications
You must be signed in to change notification settings - Fork 2
bmp
Pre-Alpha. This page describes behavior that may change.
Ze implements RFC 7854 BMP in both directions: as a receiver (accepting feeds from routers) and as a sender (streaming state to collectors). Adj-RIB-Out support per RFC 8671 is included.
The receiver listens for TCP connections from BMP-enabled routers:
environment {
bmp {
enabled true;
server default {
ip 0.0.0.0;
port 11019;
}
max-sessions 100;
}
}
| Field | Default | Description |
|---|---|---|
enabled |
false | Enable BMP receiver. |
server |
- | Named listener endpoints (same pattern as SSH/web). |
port |
11019 | Listen TCP port (IANA assigned for BMP). |
max-sessions |
100 | Maximum concurrent BMP sessions (1-1000). |
Multiple listeners are supported. Port conflicts with other ze listeners are detected at config commit time.
The sender connects to external BMP collectors:
bgp {
bmp {
sender {
collector monitoring-station {
address 10.0.0.100;
port 11019;
}
route-monitoring-policy pre-policy;
statistics-timeout 0;
}
}
}
| Field | Default | Description |
|---|---|---|
collector |
- | Named collector endpoints. |
route-monitoring-policy |
all |
pre-policy (Adj-RIB-In), post-policy (Adj-RIB-Out, RFC 8671), or all. |
statistics-timeout |
0 | Seconds between statistics reports (0 = disabled). |
The sender reconnects automatically with exponential backoff (30s to 720s).
| Command | Description |
|---|---|
ze bmp sessions |
Active BMP receiver sessions (router address, sysName, uptime). |
ze bmp peers |
Monitored BGP peers (AS, BGP ID, up/down status). |
ze bmp collectors |
Sender collector connection status. |
ze bmp rib show |
Show all BMP-monitored routes. |
Ze handles all 7 BMP message types:
| Type | Receiver | Sender |
|---|---|---|
| Initiation | Parses sysName/sysDescr | Sends ze identity on connect |
| Termination | Closes session cleanly | Sends before disconnect |
| Peer Up | Tracks monitored peer | Sends on BGP Established |
| Peer Down | Marks peer down | Sends on BGP session close |
| Route Monitoring | Decodes inner BGP UPDATE | Wraps received/sent UPDATEs |
| Statistics Report | Stores per-peer counters | Periodic (if configured) |
| Route Mirroring | Logs raw BGP PDUs | Not implemented (follow-up) |
The sender wraps sent BGP UPDATEs as Route Monitoring with O+L flags (post-policy). The route-monitoring-policy controls which direction(s) are streamed.
When the BMP receiver is enabled, monitored routes are stored in the RIB under a separate "bmp" protocol namespace. These routes are visible through dedicated looking glass endpoints and CLI commands but never enter best-path selection or the FIB.
| Endpoint | Description |
|---|---|
GET /api/looking-glass/protocols/bmp |
List BMP-monitored peers. |
GET /api/looking-glass/routes/bmp/{name} |
Routes from a specific BMP peer. |
The {name} parameter is the composite peer key in <router>:<peer-address> format (e.g., 10.0.0.1:12345:192.168.1.1). Responses follow the birdwatcher format for compatibility with Alice-LG.
-
Injection: Route Monitoring messages inject BGP UPDATE routes under a BMP-specific ProtocolID with composite keys
<router>:<peer-address>. - Peer Down: All routes for the monitored peer are withdrawn.
- Session disconnect: All routes for all peers of that router are withdrawn.
- Best-path isolation: BMP routes are stored under a separate ProtocolID. The best-path algorithm only iterates BGP peers, so BMP routes are automatically excluded with zero filter code.
BMP routes are separate from BGP routes: ze bgp rib show excludes BMP-monitored routes, and ze bmp rib show excludes real BGP routes.
- Peer Up messages contain minimal synthetic OPENs built from AS metadata. Capabilities are not reflected.
- Per-NLRI ribout dedup is not yet implemented; all UPDATEs are forwarded as-is.
- Loc-RIB monitoring (RFC 9069) is not yet wired.
- Route Mirroring encoding on the sender side is not implemented.
- Looking Glass for the web UI and API that displays BMP routes.
- Plugins for the plugin list.
Adapted from main/docs/guide/bmp.md.
Unreviewed draft. This wiki was authored in bulk and has not been reviewed. File corrections on the issue tracker.
- Overview
- YANG Model
- Editor Workflow
- Archive and Rollback
- System
- Interfaces
- VRRP
- BFD
- FIB
- OSPF
- IS-IS
- MPLS / LDP / RSVP-TE
- RSVP-TE
- SRv6
- Static Routes
- Policy Routing
- Firewall
- Traffic Control
- Class of Service
- L2TP/PPP
- PPPoE
- VPP Data Plane
- RPKI
- IPsec VPN
- TACACS+ AAA
- RADIUS AAA
- AS112 DNS
- Authorization
- Fleet
- BGP
- Starting and Stopping
- Show Commands
- Monitoring
- Flow Export
- DDoS Mitigation
- Anomaly Detection
- Health Checks
- Audit Trail
- Production Diagnostics
- Logging
- Operational Reports
- Healthcheck
- Self-Update
- Zero-Touch Provisioning
- MRT Analysis
- Upgrade and Restart
- Storage
- Policy
- Core
- Resilience
- Validation
- Capabilities
- Address Families
- Protocol
- Subsystems
- Infrastructure
- Route Server at an IXP
- Transit Edge with RPKI
- Public Looking Glass
- ExaBGP Migration Walkthrough
- FlowSpec Injection
- Chaos-Tested Peering
- AS Path Topology