Hi all,
I’m new to SNMP and currently working with the SNMP4J library (version 2.8.18). I’m implementing two components:
- An SNMP GET requester, which sends SNMPv3 GET requests.
- An SNMP trap receiver, which receives SNMPv3 traps.
On the GET side, I use SNMPv3 with localized users. I’m able to discover the engine ID of the remote agent dynamically using the discovery API, so I don’t need to provide the engine ID manually.
However, on the trap receiver side, the source address (agent) is not known in advance, so I can’t perform discovery to get the engine ID. This leads me to following questions:
- Does the trap receiver need to know the engine ID of the remote SNMP agents/devices in advance, or should the devices sending traps know the engine ID of the trap receiver?
- In SNMP4J 2.8.18, is it mandatory to localize users on the trap receiver side? Or is using non-localized users (i.e. relying on username and matching credentials) sufficient?
- Currently I have implemented trap receiver using non localized users. In one of my use cases, two different devices send traps using the same SNMPv3 username but with different authentication credentials. In this setup, one trap is consistently dropped due to authentication failure:
- Is this kind of configuration valid in SNMPv3 in general?
- Or is it unsupported (or unsafe) in SNMP4J?
Thanks in advance for any clarification, best practices, or design suggestions.