Osprey 1.2.2
Osprey 1.2.2. Network topology intelligence for OSPF, IS-IS, EIGRP, BGP, MPLS, and EVPN — passive discovery, protocol-accurate modelling, no agents on your routers and no routes injected.
This release is the result of a deliberate hunt for wrong answers. Two independent audits went looking for places where Osprey was confidently telling you something untrue — a path metric, an alert that never cleared, an area quietly modelled from a partial database — and this version fixes what they found. Alongside that, path answers are now both router-exact and several times faster.
Highlights since 1.2.1
Answers that match the routers
- A path to a prefix now returns what the router itself computes. Asking how a router reaches a subnet could return a metric several times too cheap, a first hop the router does not use, and a route type that contradicted the explanation shown beside it — with nothing marking the answer as approximate. Summary routes are now examined only where the standard permits, transit-link subnets are priced from the interfaces that form them, and a BGP path learned by another router is weighed at the distance the receiving router would actually apply. Validated against every router's own routing table: 13,824 of 13,824 answers now match on metric, first hop and route type.
- Identical questions return identical answers. Among equal-cost paths, the one presented as primary could differ between two identical requests, and between restarts. Equal-cost selection is now deterministic end to end.
- IS-IS links drained for maintenance are excluded from path computation, as the standard requires, instead of still being offered as viable.
- Link-state ages count time. LSA age and IS-IS remaining lifetime were frozen at the moment of capture; they now age on read, and the browser marks a database whose retrieval was incomplete instead of presenting it as whole.
Alerts you can trust
- A Device Down alert can clear itself again. Recovery was gated on a condition that was the exact opposite of the one that raised the alert, so an alert could stay red for days on a healthy device — and because of alert de-duplication, that stuck alert silenced every future alert for the same device. Existing stuck alerts are also swept up and resolved.
- Alert rules honour the scope you gave them. A rule limited to one network, routing domain or protocol instance was silently applied everywhere, including across tenants. Scoping is now enforced on both the event path and the SNMP path.
- Maintenance windows suppress SNMP-side alerts too, and a device that stops answering during a planned window is no longer auto-disabled into needing a manual re-enable.
- Alerts name the device again on IS-IS networks. A single IS-IS event in a batch could blank the device names for that entire evaluation round, leaving bare identifiers in alert summaries.
Discovery and protocol accuracy
- OSPFv3 areas are no longer modelled from a partial database. Some agents silently drop oversized responses over IPv6, which left areas running on a fraction of their link-state database with no indication anything was missing. Retrieval now adapts and resumes, and an area that still cannot be read completely is marked as incomplete rather than published as authoritative.
- Standards-compliant pseudowire equipment reports its pseudowires. Every value was being read from the wrong position in the standard table, so compliant devices reported none at all.
- BGP AS path reconstruction follows the standard. In four-byte AS deployments a supplementary attribute could replace the real AS path exactly when the standard says to ignore it, corrupting the origin of a route — which matters most when you are triaging a hijack.
- EIGRP topologies stop going stale, and IPv6 EIGRP links connect to their interfaces instead of remaining unattached.
- Dual-stack BGP ports count once. A port carrying both address families was recorded as two interfaces, inflating per-device interface counts and traffic roll-ups.
- Time travel and the live view agree on BGP session counts. Sessions that ended during a restart could be left open in history forever.
Faster, and lighter on the database
- Path, routing-table and simulation answers are several times faster. Each request used to reload the whole scope from the database before computing anything; that data is now cached per area and invalidated on change, so response time is dominated by the computation rather than the size of your topology.
- Around 93 % of pointless database writes are gone. An unchanged topology was rewritten continuously; write volume and write-ahead log traffic dropped by an order of magnitude, and the recurring deadlocks that came with it are gone.
- Log volume dropped by roughly 96 % on an idle system, with the actionable lines kept and a rate limiter that reserves capacity for warnings and errors — and reports it when anything is shed.
Administration
- Deleting part of the hierarchy no longer resurrects it. A delete whose areas are still fed by a recorder is now refused, naming the recorder responsible, with an explicit override available. Deleted areas leave a record so their history stays identifiable and can be purged afterwards.
- Editing one field no longer clears the others. Renaming an autonomous system, routing domain, protocol instance or area could blank sibling fields that were not part of the edit.
- The Device Sessions panel shows the device and the user, which had never been populated, and its columns sort and search correctly.
- Application log streaming is restricted to administrators, matching the equivalent REST endpoint.
- Single points of failure are reported for your network only — Osprey's own passive recorders are no longer counted as network dependencies.
- New installations get a PostgreSQL connection and memory budget that matches the services, and existing installations are told when theirs is too small instead of being changed underneath them.
- The bundled third-party license inventory is generated from the actual build, so what ships is what is listed.
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. Commercial licensing: sales@wijnberg.net.
Full documentation: https://www.wijnberg.net/osprey/docs