Osprey 0.9.8
Osprey 0.9.8.
Real-time network visibility & engineering for OSPF, IS-IS, BGP, and MPLS. Passive topology discovery via GRE, SNMP, and BMP; multi-protocol SPF; what-if simulation; time travel; and incident correlation — a single binary backed by PostgreSQL.
A stability and correctness release: a large batch of IS-IS, OSPF, and BGP protocol-hardening fixes, health signals that react in seconds and stop reporting a dead network as healthy, and topology enrichment that converges — and surfaces its results — on its own.
Highlights since 0.9.6
Protocol correctness & hardening (IS-IS / OSPF / BGP)
- IS-IS: a same-sequence purge now withdraws the LSP immediately instead of lingering to MaxAge; a newer LSP arriving within the minimum-arrival window is stored rather than dropped; point-to-point links acknowledge received LSPs with a PSNP instead of firing a full-database retransmit at every adjacency-up; and adjacency flapping no longer storms the engine.
- OSPF: neighbors in NSSA areas now form correctly; the collector no longer strands a monitored router mid-DBD exchange; parallel OSPFv3 point-to-point links with crossed interface IDs no longer collapse (fixing an ECMP undercount); and topology no longer draws phantom stub networks or router self-loops.
- BGP: unknown address families are skipped cleanly instead of mis-parsed, and the device-address resolver is network-scoped for multi-tenant correctness.
- Resilience to malformed input: protocol parsers and in-memory tables are now bounded throughout — LSP checksums are verified over the PDU length, PSNP responses are capped and de-duplicated, neighbor and link-state-request tables are bounded, and transit fan-out is limited — so crafted or malformed protocol data cannot exhaust memory or flood logs.
Topology & enrichment
- Enrichment converges on its own. After a discovery crawl, a single interface-discovery pass now runs automatically, and you can trigger one on demand from the network Enrichment panel — so dual-stack OSPFv2/OSPFv3 links merge into one edge and interface names/hostnames appear without waiting for the next cycle.
- The canvas refreshes itself when enrichment lands: merged links and newly resolved names appear without a manual reload.
- MPLS-TE and L3VPN report entries appear the moment discovery finds them — the Reports entries surface as soon as the first tunnel or VRF is discovered, with no reload.
- MPLS discovery is an explicit control — an "MPLS Discovery" card in the network Enrichment panel with a per-network auto | on | off toggle, so only the routers that actually run MPLS are walked.
Health & incidents
- A dead network no longer shows a "Healthy" chip. Losing all adjacencies now surfaces within seconds as a degraded collector status — amber in the sidebar and counted against overall health — and freshness no longer reports a network as current when every poll to it is failing.
Reliability
- Removing a BGP instance that still has active BMP exporters now completes cleanly instead of erroring.
- Topology persistence is more robust to device-identity changes across upgrades.
- Log bursts can no longer flood the journal or disk.
Install
curl -LO https://github.com/wijnberg-net/osprey/releases/latest/download/osprey_amd64.deb
curl -LO https://github.com/wijnberg-net/osprey/releases/latest/download/SHA256SUMS
sha256sum -c SHA256SUMS
sudo apt install ./osprey_amd64.deb
Debian 12+, Ubuntu 24.04+ (bare metal, Proxmox LXC, or VM). PostgreSQL, NATS, and nginx are pulled in as dependencies; services start under systemd and a self-signed TLS certificate is generated on first install. Open https://your-server/ and log in with the admin account created during setup.
Free evaluation: all features, up to 32 devices, no time limit. Production licensing: sales@wijnberg.net.
Full documentation: https://www.wijnberg.net/osprey/docs