[SNMP4J] Question about SNMPv3 configuration
Ivan Mladenović
piffta at gmail.com
Fri Jan 15 10:05:35 CET 2010
Hi, I'm using snmp4j to
My configuration file for SNMPv3 is:
snmp.user.name=userName
snmp.auth.passphrase=m5_encrypted_passphrase
snmp.privacy.passphrase=des_encrypted_passphrase
snmp.auth.protocol=MD5
snmp.privacy.protocol=DES
snmp.security.level=3 # Security level: AUTH_PRIV
snmp.security.model=3 # SecurityModel.SECURITY_MODEL_USM
I have class that implements CommandResponder. In consturctor:
transport = new DefaultUdpTransportMapping(new
UdpAddress("localhost/161"));
snmp = new Snmp(transport);
snmp.addCommandResponder(this);
// Security protocol.
SecurityProtocols securityProtocols = SecurityProtocols.getInstance();
securityProtocols.addAuthenticationProtocol(new AuthMD5());
byte[] localEngineID = MPv3.createLocalEngineID();
USM usm = new USM(securityProtocols, new OctetString(localEngineID), 0);
SecurityModels.getInstance().addSecurityModel(usm);
snmp.setLocalEngine(localEngineID, 0, 0);
UsmUser usmUser = new UsmUser(userName, authProtocol, authPassphrase,
privacyProtocol, privacyPassphrase);
usm.addUser(snmpConfiguration.getUserName(), usmUser);
// Listen for requests.
transport.listen();
This class implements processPDU method:
// Get object identifier.
Vector<VariableBinding> variableBindings =
event.getPDU().getVariableBindings();
VariableBinding variableBinding = variableBindings.get(0);
OID oid = variableBinding.getOid();
Variable variable = new Counter32(someLongValue);
variableBinding.setVariable(variable);
PDU pdu = event.getPDU();
pdu.clear();
pdu.setErrorStatus(0);
pdu.add(variableBinding);
event.setPDU(pdu);
event.setProcessed(true);
try {
byte[] engineID = MPv3.createLocalEngineID();
UserTarget target = new UserTarget();
target.setAddress(event.getPeerAddress());
target.setRetries(retriesCount);
target.setTimeout(timeout);
target.setVersion(SnmpConstants.version3);
target.setSecurityName(userName);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityModel(SecurityModel.SECURITY_MODEL_USM);
target.setAuthoritativeEngineID(engineID);
ResponseEvent responseEvent = snmp.send(event.getPDU(), target);
} catch (IOException e) {
e.printStackTrace();
}
Method processPDU catch GET request event, and response does not contains
errors, but MIB browser always get timeout exception.
Do I have some errors in configuration?
Could you, please, give me some example?
More information about the SNMP4J
mailing list