[SNMP4J] Unknown engine ID

Marcel Bassuener Marcel.Bassuener at unibw.de
Sat Nov 27 22:57:32 CET 2010


Hi,
I have a problem. I wrote an SNMP Agent, which works (I tested it with 
an other programm).  But now I tried to write my own manager and send 
messages. Every time I start it the agent says: (Unknown engine ID)

3283585 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.transport.DefaultUdpTransportMapping  - Received message from 
/127.0.0.1/63167 with length 61: 
30:3b:02:01:03:30:11:02:04:05:e4:af:d7:02:03:00:ff:ff:04:01:04:02:01:03:04:10:30:0e:04:00:02:01:00:02:01:00:04:00:04:00:04:00:30:11:04:00:04:00:a0:0b:02:01:00:02:01:00:02:01:00:30:00
3283585 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.mp.MPv3  - SNMPv3 header decoded: msgId=98873303, 
msgMaxSize=65535, msgFlags=04, secModel=3
3283585 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.security.USM  - RFC3414 §3.2.3 Unknown engine ID:
3283586 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.mp.MPv3  - Adding cache entry: 
StateReference[msgID=98873303,pduHandle=PduHandle[1990949864],securityEngineID=,securityModel=org.snmp4j.security.USM at c5c3ac,securityName=,securityLevel=1,contextEngineID=,contextName=]
3283587 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.mp.MPv3  - Removed cache entry: 
StateReference[msgID=98873303,pduHandle=PduHandle[1990949864],securityEngineID=,securityModel=org.snmp4j.security.USM at c5c3ac,securityName=,securityLevel=1,contextEngineID=,contextName=]
3283587 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.security.USM  - RFC3414 §3.1.4.b Outgoing message is not 
encrypted
3283587 [DefaultUDPTransportMapping_127.0.0.1/161] DEBUG 
org.snmp4j.transport.DefaultUdpTransportMapping  - Sending message to 
127.0.0.1/63167 with length 87: 
30:55:02:01:03:30:11:02:04:05:e4:af:d7:02:03:00:ff:ff:04:01:00:02:01:03:04:19:30:17:04:09:80:00:13:70:01:c0:a8:0b:02:02:01:00:02:01:00:04:00:04:00:04:00:30:22:04:00:04:00:a8:1c:02:01:00:02:01:00:02:01:00:30:11:30:0f:06:0a:2b:06:01:06:03:0f:01:01:04:00:41:01:22
3283587 [DefaultUDPTransportMapping_127.0.0.1/161] WARN 
org.snmp4j.MessageDispatcherImpl  - 1.3.6.1.6.3.15.1.1.4.0 = 34


Here my code:

Snmp snmp =  new Snmp(new DefaultUdpTransportMapping());

         OctetString localEngineID = new 
OctetString(MPv3.createLocalEngineID());

         ((MPv3)snmp.getMessageProcessingModel(MPv3.ID)).
             setLocalEngineID(localEngineID.getValue());

         USM usm = new USM(SecurityProtocols.getInstance(),
                             localEngineID,
                             0);
           SecurityModels.getInstance().addSecurityModel(usm);
           snmp.getUSM().addUser(new OctetString("SHADES"),new 
UsmUser(new OctetString("SHADES"),
                   AuthSHA.ID,
                   new OctetString("SHADESAuthPassword"),
                   PrivDES.ID,
                   new OctetString("SHADESPrivPassword")));

         UserTarget target = new UserTarget();
         target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
         target.setSecurityName(new OctetString("SHADES"));
         target.setVersion(SnmpConstants.version3);
         target.setAddress(new UdpAddress("127.0.0.1/161"));
         target.setRetries(1);
         target.setTimeout(500);
//        target.setMaxSizeRequestPDU(maxSizeResponsePDU);
         snmp.listen();

         ScopedPDU request = new ScopedPDU();
         request.setType(PDU.GET);//createPDU(target);
         if (request.getType() == PDU.GETBULK) {
           request.setMaxRepetitions(50);
           request.setNonRepeaters(1);
         }
         request.add(new VariableBinding(new OID("0.1.0")));

         PDU response = null;
           ResponseEvent responseEvent;
           long startTime = System.currentTimeMillis();
           responseEvent = snmp.send(request, target);
           if (responseEvent != null) {
             response = responseEvent.getResponse();
             System.out.println("Received response after "+
                                (System.currentTimeMillis()-startTime)+" 
millis"+response.getVariableBindings());
         }
         snmp.close();

Please help me!!

Thanks and Best regards
Marshall



More information about the SNMP4J mailing list