[SNMP4J] Question about SNMPv3 configuration

Clement_Pellerin at ibi.com Clement_Pellerin at ibi.com
Fri Jan 15 14:19:47 CET 2010


Did you add that user to a userGroup and assign a VACM view to that userGroup?
Take a look at org.snmp4j.agent.test.TestAgent
Also make sure your client talks SNMPv3 and not SNMPv1 by default.

-----Original Message-----
From: snmp4j-bounces at agentpp.org [mailto:snmp4j-bounces at agentpp.org] On Behalf Of Ivan Mladenovic
Sent: Friday, January 15, 2010 4:06 AM
To: snmp4j at agentpp.org
Subject: [SNMP4J] Question about SNMPv3 configuration

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?
_______________________________________________
SNMP4J mailing list
SNMP4J at agentpp.org
http://lists.agentpp.org/mailman/listinfo/snmp4j



More information about the SNMP4J mailing list