lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] Discrepancy in SNMP GET responses


From: Jesus Alvarez
Subject: RE: [lwip-users] Discrepancy in SNMP GET responses
Date: Wed, 18 Feb 2009 11:19:06 -0400

I got a very prompt response from the net-snmp list on this issue. See the
details below. Apparently there is a problem handling 32-bit request IDs in
the lwIP 1.3.0 SNMP agent.

Regards,
Jesus Alvarez

-----Original Message-----
From: Dave Shield
Sent: Wednesday, February 18, 2009 10:53 AM
To: Jesus Alvarez
Cc: address@hidden
Subject: Re: Discrepancy in queries to lwIP

2009/2/18 Jesus Alvarez <address@hidden>:
> Using net-snmp 5.4.2.1 under Windows a simple query to sysLocation.0
works.
> Yet the same query fails from net snmp 5.4.1 under Debian Linux. The UDP
> query and response is included below for both cases.

> It appears that the lwIP SNMP agent is processing one of the queries
> incorrectly but I can't identify what portion of the ASN-1 encoded
response
> packet is causing the rejection. I also don't understand why the content
of
> the query packets is different on the two versions. Any suggestions would
be
> appreciated.

The first (successful) query is using a 16-bit request ID.
This is handled correctly by the remote agent,
which returns a response with the same ID:


> Sending 41 bytes to UDP: [0.0.0.0]->[192.168.1.222]:161
> 0000: 30 27 02 01  00 04 06 70  75 62 6C 69  63 A0 1A 02
0'.....publicá..
> 0016: 02 32 0B...

> Received 54 bytes from UDP: [0.0.0.0]->[192.168.1.222]:161
> 0000: 30 34 02 01  00 04 06 70  75 62 6C 69  63 A2 27 02
04.....publicó'.
> 0016: 02 32 0B...

Note that the last four octets are the same in both cases:
   04 02 32 0B


The second (failing) query is using a 32-bit request ID.
This is perfectly valid, but the remote agent is mangling it,
and only returning the lower 16-bits in the response:

> Sending 43 bytes to UDP: [192.168.1.222]:161
> 0000: 30 29 02 01  00 04 06 70  75 62 6C 69  63 A0 1C 02
0).....public...
> 0016: 04 1C 7B EC  CB....

> Received 55 bytes from UDP: [192.168.1.222]:161
> 0000: 30 35 02 01  00 04 06 70  75 62 6C 69  63 A2 28 02
05.....public.(.
> 0016: 03 00 EC CB....


Note:    02 04 1C 7B EC EB
becomes  02 03 00 EC CB

The client notes that the request ID in the response doesn't
match the original one, so discards the message.

This is a bug in the remote agent.   Complain to the lwIP people.

As a workaround:

    $ man snmp.conf

           16bitIDs yes
              restricts requestIDs, etc to 16-bit values.

              The SNMP specifications define these ID fields as  32-bit
              quantities,  and  the  Net-SNMP  library  typically  ini-
              tialises them to random  values  for  security.   However
              certain  (broken)  agents cannot handle ID values greater
              than 2^16 - this option allows interoperability with such
              agents.


[Note: this goes in snmp.conf, *not* snmpd.conf]

Dave






reply via email to

[Prev in Thread] Current Thread [Next in Thread]