Hi all,
I’m encountering an issue using SNMP4J (version 2.8.7) with SNMPv3 when polling a network device.
Problem Summary
After the engine ID is discovered and polling begins successfully, SNMP4J suddenly sends a get-next-request with an incorrect and much higher msgAuthoritativeEngineTime. This causes the remote device to drop the packet.
Observed Behavior (from Wireshark)
-
Initial discovery works:
- Sent “empty” SNMPv3 request → received
usmStatsUnknownEngineIDs(1.3.6.1.6.3.15.1.1.4.0) with engineID, boots, and time. Engine time is 422,336 (seconds)
- Sent “empty” SNMPv3 request → received
-
Sent again with contextName → got the same
unknownEngineIDsresponse. -
Sent proper
get-next-requestfor OID1.3.6.1.2.1.1.2→ received correct response (1.3.6.1.2.1.1.2.0with a value) -
Next
get-next-request(1.3.6.1.2.1.1.2.0) → received1.3.6.1.2.1.1.3.0which is sysUpTimeInstance with value of 1.3.6.1.2.1.1.3.0: 44758458 (in hundredths of a second) → 447,584.58 seconds -
Suddenly, next request is sent with a large
msgAuthoritativeEngineTime(27,222,514), which the agent rejects.
Questions
- What could cause SNMP4J to reset or recompute
msgAuthoritativeEngineTimeincorrectly after previous success? - Is it possible that internal USM cache is cleared or reset unexpectedly?
- How can I ensure that engine time tracking persists reliably between requests?
Any insights would be greatly appreciated.
If more info is needed, let me know. I will try my best to provide it. I can’t share IPs and other
Thanks