mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
Introduce a sixth scanner that periodically queries an SNMP agent
(typically the router/firewall) for its ARP/neighbour cache via
SNMPv2c and feeds discovered devices into the shared devices, events
and notifications pipeline. Unlike the ARP scanner it generates no
traffic on the local segment and can surface devices across all
subnets the agent routes.
Scope is intentionally minimal: SNMPv2c only, a single target, and the
ipNetToMediaTable (ARP) only. SNMPv3 and switch MAC/forwarding-table
polling are left as follow-ups in TODO.md.
- backend: csnmp dependency; SnmpScanner config (opt-in, off unless a
[snmp_scanner] section is present); DeviceEventScanner::Snmp;
scanners/snmp/{finder,scanner,status}; main.rs wiring; status API
endpoint wired into OpenAPI
- frontend: SNMP scanner status model, card, API method, status screen
and summary card rows, and device-event label
- docs/config: sample TOML, README options, NixOS module option, and
setup notes for enabling SNMP on pfSense/OPNsense
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.2 KiB
1.2 KiB
OOTT ToDo list
- Add linting to CLAUDE.md for both Rust and Dart
- Review and document the release process
- Add support for push notifications to the app (iOS and Android)
- Review the README.md file
Backend
- Add configuration options to enable/disable each scanner
- Implement the pushover API call directly to support HTML content and review notification text to use it
- Add "devices seen on last scan" to the ARP and SNMP scanners status
- Review the recommended timings for ARP and SNMP scanners (change defaults)
Frontend
- Can we add front-end tests?
- Break down oott_api.dart in modules
Improve engine
Passive (low noise, no probing):
- Passive packet capture — observe any broadcast/multicast traffic; a device that never responds to ARP still generates traffic
Active (you probe the network):
- NDP (Neighbor Discovery Protocol) — IPv6 equivalent of ARP; important if the network uses IPv6
Via infrastructure:
- SNMP query to router/firewall — pull the ARP table directly via SNMPv2c (no local probing); see
[snmp_scanner]config - Extend the SNMP scanner: SNMPv3 support, and switch MAC/forwarding table (port/VLAN) polling