[SNMP4J] Snmpv3 Sending and Receiving
Frank Fock
fock at agentpp.com
Fri Jul 22 20:55:50 CEST 2011
Did you make sure that sender and receiver
use different engine IDs?
On 22.07.2011 18:37, guyfawkes at gmx.at wrote:
> I think have the same problem as described in this very old mail:
> http://lists.agentpp.org/pipermail/snmp4j/2007-March/001954.html
>
> I also found this thread but it didn't help me:
> http://www.mail-archive.com/snmp4j@agentpp.org/msg00776.html
>
> I also get an REPORT[reqestID=0, errorStatus=0, errorIndex=0, VBS[1.3.6.1.6.3.15.1.1.4.0 = 0]]
>
> I don't know what I'm doing wrong. seems like the engineID makes problems.??
> If I'm using SNMPv2c it works fine but switching to SNMPv3 is a problem.
>
> This is my code for sending:
> byte[] localEngineID =
> ((MPv3)getSnmp().getMessageProcessingModel(MessageProcessingModel.MPv3)).createLocalEngineID();
> USM usm = new USM(SecurityProtocols.getInstance(),
> new OctetString(localEngineID), 0);
>
> SecurityModels.getInstance().addSecurityModel(usm);
> getSnmp().setLocalEngine(localEngineID, 0, 0);
>
> getSnmp().getUSM().addUser(new OctetString("MD5DES"),
> new UsmUser(new OctetString("MD5DES"),
> AuthMD5.ID,
> new OctetString("MD5DESUserAuthPassword"),
> PrivAES256.ID,
> new OctetString("MD5DESUserPrivPassword")));
>
> // create the target
> UserTarget userTarget = new UserTarget();
> userTarget.setAddress(GenericAddress.parse(TAREGET_ADDRESS));
> userTarget.setRetries(1);
> userTarget.setTimeout(5000);
> userTarget.setVersion(SnmpConstants.version3);
> userTarget.setSecurityLevel(SecurityLevel.AUTH_PRIV);
> userTarget.setSecurityName(new OctetString("MD5DES"));
>
> // create the PDU
> PDU pduV3 = new ScopedPDU();
> pduV3.add(new VariableBinding(new OID("1.3.6.1.2.1.1.1.0")));
> pduV3.setType(PDU.GET);
>
> // send the PDU
> ResponseEvent response;
> try {
> response = getSnmp().send(pduV3, userTarget);
> // extract the response PDU (could be null if timed out)
> PDU responsePDU = response.getResponse();
> // extract the address used by the agent to send the response:
> logger.logDebug("responsePDU.get(0)",responsePDU.get(0).getOid());
> // response = getSnmp().send(responsePDU, userTarget);
> identifyOid(responsePDU);
> usm.removeEngineTime(new OctetString(localEngineID));
> response = getSnmp().send(pduV3, userTarget);
>
> if (response != null){
> logger.logError("could not send ", "success");
> }
>
> Address peerAddress = response.getPeerAddress();
> } catch (IOException e) {
> logger.logError("could not send ", e);
> }catch (Exception e) {
> logger.logError("could not send ", e);
> }
>
> Please help me. thx
>
> Oliver
>
--
AGENT++
http://www.agentpp.com
http://www.snmp4j.com
http://www.mibexplorer.com
http://www.mibdesigner.com
More information about the SNMP4J
mailing list