[SNMP4J] Snmpv3 Sending and Receiving
guyfawkes at gmx.at
guyfawkes at gmx.at
Fri Jul 22 18:37:08 CEST 2011
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
--
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
Jetzt informieren: http://www.gmx.net/de/go/freephone
More information about the SNMP4J
mailing list