[SNMP4J] UnknowHost Exception while sending the snmp trap

Hallur,Parashuram hallur.p.t at gmail.com
Wed Mar 6 09:27:34 CET 2013


Reposting the complete thread with currect subject
-------------------------------------------------------------------------

Hi Frank:

As I mentioned in my original email, the host is not getting recognized, it
throws the "UnknownHostException" at the InetAddress.getByName("HostName").
The reason is the host name will be sent by snmp4j as "localhost:1622" to
this underneath api, ideally it should not be sent with the trap receiver
port. I tried this both for IPv4 and IPv6 address application, in both
cases I see the same issue with snmp4j-2.0.jar.

My application is configurable to bind to particular address, it can be
configured to bind to single socket address or multiple socket addresses.

Following are the cases I tried
1. With snmp4j-1.0.jar : Application is bind to IPv6 socket address, the
java.nio.BufferOverFlowException is thrown.
2. With snmp4j-2.0.jar : Application is bind to all machine IP addresses.
"UnknownHostException" while parsing the target address
3. With snmp4j-2.0.jar : Application is bind to only IPv6 socket address.
"UnknownHostException" while parsing the target address

The code used to parse the address is -

 Address targetAddress =
GenericAddress.parse("udp:<HostName>:<TrapReceiverPort>/162");

Am I missing something here? Appreciate your help very much. Please let me
know if you need more details.

Thanks,
Parash

--------

OK, that'a no problem. So then why do you get an exception?

Am 06.03.2013 01:15, schrieb Hallur,Parashuram:

--------

Thank you so much for the response Frank.

What do you exactly mean by "trap is bound to IPv6 address"?

This means, the application which is running on IPv6 address is trying to
send a notification to the trap receiver running on a dual stack IP ( both
Ipv4 & IPv6 )mode machine.

Thanks,
Parash

----------

Hi Parash,

What do you exactly mean by "trap is bound to IPv6 address"?

(If you tried to set the agentAddress field in a trap/notification with a
IPv6 address
you will fail, as SNMP supports IPv4 addresses only for this field.

Best regards,
Frank

Am 06.03.2013 01:05, schrieb Hallur,Parashuram:



On Wed, Mar 6, 2013 at 5:39 AM, Hallur,Parashuram <hallur.p.t at gmail.com>wrote:

> Frank or any body else on the forum:
>
> Would you please help me with pointers on how to fix this issue? What
> needs to be done to be able to send the traps from IPv6 application?
> Thanks for any pointers.
>
> Parash
>
>
> On Tue, Mar 5, 2013 at 7:24 AM, Hallur,Parashuram <hallur.p.t at gmail.com>wrote:
>
>> Thanks Frank for the response. Yes the application which is trying to
>> send the trap is bound to IPv6 address, would you please help me with how
>> to fix this issue?
>>
>> Thanks,
>> Parash
>>
>>
>> On Mon, Mar 4, 2013 at 11:44 PM, Frank Fock <fock at agentpp.com> wrote:
>>
>>> Hi,
>>>
>>> I think you are trying to sent an IPv6 address as IpAddress BER encoded
>>> on the wire. This is not possible, because the SNMP standard defines
>>> IpAddress as IPv4 address and nothing else.
>>> If this worked with 1.0 then this was an error in 1.0.
>>>
>>> Best regards,
>>> Frank
>>>
>>> Am 04.03.2013 12:24, schrieb Hallur,Parashuram:
>>>
>>>> Hi,
>>>>
>>>> I'm using the following code to create the target address.
>>>>
>>>> Address targetAddress =
>>>> GenericAddress.parse("udp:<**HostName>:<TrapReceiverPort>/**162");
>>>>
>>>> This goes through fine when I use the snmp4j1.0.jar. However, this
>>>> particular version seems does not support the IPv6 addresses. For IPv6
>>>> requests it throws the java.nio.**BufferOverFlowException.
>>>> java.nio.**BufferOverflowException
>>>>      at java.nio.Buffer.nextPutIndex(**Unknown Source)
>>>>      at java.nio.HeapByteBuffer.put(**Unknown Source)
>>>>      at org.snmp4j.asn1.**BEROutputStream.write(**
>>>> BEROutputStream.java:65)
>>>>      at org.snmp4j.asn1.BER.encodeOID(**BER.java:437)
>>>>      at org.snmp4j.smi.OID.encodeBER(**OID.java:205)
>>>>      at org.snmp4j.smi.**VariableBinding.encodeBER(**
>>>> VariableBinding.java:176)
>>>>      at org.snmp4j.PDUv1.encodeBER(**PDUv1.java:207)
>>>>      at org.snmp4j.mp.MPv1.**prepareOutgoingMessage(MPv1.**java:108)
>>>>      at
>>>> org.snmp4j.**MessageDispatcherImpl.sendPdu(**
>>>> MessageDispatcherImpl.java:**376)
>>>>      at org.snmp4j.Snmp.sendMessage(**Snmp.java:900)
>>>>      at org.snmp4j.Snmp.send(Snmp.**java:779)
>>>>      at org.snmp4j.Snmp.send(Snmp.**java:771)
>>>>
>>>> To fix the above issue, I picked up the latest jars snmp4j2.1.0.jar,
>>>> snmp4j1.11.3.jar, and snmp4j1.10.jar. All of these throw the unknown
>>>> host
>>>> exception. What I notice is that snm4j sends hostname as
>>>> "hostname:trapreceiverport" to underneath java api to resolve the
>>>> address,
>>>> hence the issue unknownhostexception. The same code works with 1.0
>>>> version
>>>> of jar. Are there any difference from now and then? Any help is very
>>>> much
>>>> appreciated.
>>>>
>>>> Thanks,
>>>> Parash
>>>> ______________________________**_________________
>>>> SNMP4J mailing list
>>>> SNMP4J at agentpp.org
>>>> http://lists.agentpp.org/**mailman/listinfo/snmp4j<http://lists.agentpp.org/mailman/listinfo/snmp4j>
>>>>
>>>
>>> --
>>> ---
>>> AGENT++
>>> Maximilian-Kolbe-Str. 10
>>> 73257 Koengen, Germany
>>> https://agentpp.com
>>> Phone: +49 7024 8688230
>>> Fax:   +49 7024 8688231
>>>
>>> ______________________________**_________________
>>> SNMP4J mailing list
>>> SNMP4J at agentpp.org
>>> http://lists.agentpp.org/**mailman/listinfo/snmp4j<http://lists.agentpp.org/mailman/listinfo/snmp4j>
>>>
>>
>>
>



More information about the SNMP4J mailing list