[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