Thanks Frank. As mentioned in my previous email my issue is now resolved. I did not specify any engineID on the SnmpRequest command line.
Also, when sending TRAP in v3, I am using my own implementation of the TcpTransportMapping by using non-NIO socket operations. Regards, Neeraj > On 21 Jun 2017, at 03:05, Frank Fock <f...@agentpp.com> wrote: > > Hi Neeraj, > > As I wrote before, you first have to understand the engine ID concept. > Otherwise, you will not get it running (unless by accident). > > For INFORM you have to specify the engine ID of the NET-SNMP target engine as > authoritative engine ID. > You first have to discover it or let SNMP4J discover it. > > Best regards, > Frank > > >> On 19. Jun 2017, at 04:37, Neeraj Vaidya <neeraj.vai...@yahoo.co.in> wrote: >> >> Thanks Frank. So how do I get the authoritativeEngineId at runtime ? >> >> The remote snmptrap collector has provided me with a user id of myuser and >> engine id of 0102030405. This is via an email correspondence which I had >> with the administrators of the remote system. >> >> When I use the SnmpRequest tool bundled as part of snmp4j, which engineId >> parameters do I need to set when sending an INFORM ? >> -l , -e , -E ? >> >> I tried setting just the -e flag with 0102030405 on the command line of this >> tool and still at the receiving end i.e. in the logs of the net-snmp trap >> collector I see a message of "no match on engineID (80 00 88 .....)" >> Basically, the snmptrapd collector is not using 0102030405 for USM engine ID >> matching purposes. >> >> If I were to send just a coldStart trap with the SnmpRequest tool bundled in >> snmp4j distribution, what command line do I need to use ? >> My engine ID which I can successfully specify as the authoritativeEngineId >> via -e flag is 0102030405, when using the snmptrap utility. >> I was of the opinion that the same -e flag can be used in SnmpRequest >> utility as well. >> >> Regards, >> Neeraj >> >> -------------------------------------------- >> On Mon, 19/6/17, Frank Fock <f...@agentpp.com> wrote: >> >> Subject: Re: [SNMP4J] TCP Socket in SYN_RECV when sending V3 traps >> To: "Neeraj Vaidya" <neeraj.vai...@yahoo.co.in> >> Cc: snmp4j@agentpp.org >> Date: Monday, 19 June, 2017, 8:31 AM >> >> Hi Neeraj, >> >> Please make sure, that you have understand the >> engine ID and context >> engine ID terms and >> usages. >> It seems that you mix up things. >> Your example below cannot work for >> INFORM >> PDUs, because >> you need to specify the >> authoritative engine ID as context engine ID >> then. This is the >> INFORM >> *receivers* engine ID. >> Instead, you use the >> senders engine ID. The receiver should drop/ignore >> such an INFORM message with >> unknownPduHandles counter increased. >> >> Best regards, >> Frank >> >> Am >> 16.06.2017 um 22:41 schrieb Neeraj Vaidya: >>> Hi Frank, >>> Coming back >> to this conversation as I have been away from this task due >> to other project commitments. >>> In the >> example below, I have also noticed that if I change the PDU >> type to INFORM, the receiving snmptrap collector (which is >> net-snmp snmptrapd) fails to match the engine id. It picks >> up something totally different from what I am setting >> below. >>> Is there some other place where >> I need to set the engineId ? >>> >>> Regards, >>> Neeraj >>> >>> Sent from my >> iPhone >>> >>> On 24 May >> 2017, at 16:44, Frank Fock <f...@agentpp.com> >> wrote: >>> >>>>> >> ------------------------------------------------ Code Start >> ------------------------------------------------ >>>>> >>>>> >> Address address = >> GenericAddress.parse("tcp:rhelhost1/1163"); >>>>> >>>>> >> try { >>>>> >> TransportMapping transportMapping = new >> DefaultTcpTransportMapping(); >>>>> >> transportMapping.listen(); >>>>> >>>>> Snmp snmp = new >> Snmp(transportMapping); >>>>> >>>>> USM usm = new >> USM(SecurityProtocols.getInstance(), >>>>> >> new >> OctetString(MPv3.createLocalEngineID()), 0); >>>>> >>>>> >> SecurityModels.getInstance().addSecurityModel(usm); >>>>> >>>>> >> //snmp.listen(); ----> Do I need to use this >> invocation ?? >>>>> >>>>> byte[] b = (new >> BigInteger("0102030405",16)).toByteArray(); >>>>> >>>>> >> snmp.getUSM().addUser(new >> OctetString("snmp4j"), >>>>> new >> UsmUser(new OctetString("snmp4j"), AuthMD5.ID, new >> OctetString("snmp4j"), PrivDES.ID, new >> OctetString("snmp4j"))); >>>>> >>>>> UserTarget >> target = new UserTarget(); >>>>> >> >>>>> >> target.setAddress(address); >>>>> >> target.setRetries(1); >>>>> >> target.setTimeout(5000); >>>>> >> target.setVersion(SnmpConstants.version3); >>>>> >> target.setSecurityLevel(SecurityLevel.AUTH_NOPRIV); >>>>> >> target.setSecurityName(new >> OctetString("snmp4j")); >>>>> >>>>> // create the >> PDU >>>>> ScopedPDU >> pdu = new ScopedPDU(); >>>>> >> long sysUpTime = >> Instant.now().getEpochSecond(); >>>>> //pdu.add(new >> VariableBinding(SnmpConstants.sysUpTime),new OctetString(new >> Date().toString())); >>>>> >> pdu.setType(ScopedPDU.TRAP); >>>>> pdu.add(new >> VariableBinding(SnmpConstants.sysUpTime, new >> TimeTicks(sysUpTime))); >>>>> >> pdu.add(new >> VariableBinding(SnmpConstants.snmpTrapOID, >> SnmpConstants.linkUp)); >>>>> >> pdu.setContextEngineID(new >> OctetString().fromByteArray(b)); >>>>> >> snmp.setLocalEngine(b, 0, 0); >>>>> >> // send the PDU >>>>> >>>>> ResponseEvent >> response = null; >>>>> >>>>> response = >> snmp.send(pdu, target); >>>>> >>>>> >> Thread.sleep(10); // This Sleep somehow allows the entire >> TCP 3-way handshake to occur without terminating the >> program >>>>> >>>>> snmp.close(); >>>>> >>>>> >> } catch (IOException e) { >>>>> >> e.printStackTrace(); >>>>> >> } catch (InterruptedException e) { >>>>> >> e.printStackTrace(); >>>>> >> } >>>>> >> ------------------------------------------------ Code End >> ----------------------------------------------- >> >> -- >> --- >> AGENT++ >> Maximilian-Kolbe-Str. >> 10 >> 73257 Koengen, Germany >> https://agentpp.com >> Phone: +49 7024 8688230 >> Fax: >> +49 7024 8688231 >> >> > _______________________________________________ SNMP4J mailing list SNMP4J@agentpp.org https://oosnmp.net/mailman/listinfo/snmp4j