Re: Cacti on 7.9
Stuart Henderson <[email protected]> Wed, 22 Jul 2026 11:42:05 -0000 (UTC)
| Newsgroups | gmane.os.openbsd.misc |
|---|---|
| Message-ID | <[email protected]> |
On 2026-07-21, Steven Surdock <[email protected]> wrote: > There is an indication that the value returned by OBSD for SNMP-FRAMEWORK-MIB::snmpEngineTime.0 is incorrect. On my discussion on the Cacti forum, https://forums.cacti.net/viewtopic.php?p=297860&sid=1a77491941fff1bd5572c5334095913b#p297860, it was brought up that "the SNMP-FRAMEWORK-MIB::snmpEngineTime.0 object is designed to track the operational status of an SNMP engine. It specifically measures the time elapsed since the last change in the snmpEngineBoots value." However, OBSD is returning wall clock time. This is causing some confusion with the Cacti poller. > > Media$ snmpget -v2c -c public localhost snmpEngineTime.0 > SNMP-FRAMEWORK-MIB::snmpEngineTime.0 = INTEGER: 1784666833 seconds > > Media$ date +%s > 1784666836 > > https://github.com/Cacti/cacti/issues/7342 snmpEngineTime can't be used as a proxy for *system* uptime anyway because when implemented normally, it just relates to uptime of the SNMP engine, not the whole system. Reasoning for snmpd's non-standard use of snmpEngineTime is explained here in snmpd.c: u_long snmpd_engine_time(void) { struct timeval now; /* * snmpEngineBoots should be stored in a non-volatile storage. * snmpEngineTime is the number of seconds since snmpEngineBoots * was last incremented. We don't rely on non-volatile storage. * snmpEngineBoots is set to zero and snmpEngineTime to the system * clock. Hence, the tuple (snmpEngineBoots, snmpEngineTime) is * still unique and protects us against replay attacks. It only * 'expires' a little bit sooner than the RFC3414 method. */ gettimeofday(&now, NULL); return now.tv_sec; } This didn't change since snmpEngineTime support was added alongside SNMPv3 in 2012 so any recent problems are presumably due to tripping over some maximum value of a data type recently. (There could be issues with false replay detection with the current scheme if the clock skewed backwards, I believe). Fixing this would require snmpd to write to persistent storage. -- Please keep replies on the mailing list.