[Wes - if you're around, we could probably
          do with your input on this one!    ]

On Tue, 2005-08-23 at 16:33 -0700, David T. Perkins wrote:

> Now, on NET-SNMP, what I find most troubling is the
> inconsistent behavior between SNMPv1(and v2c), and
> SNMPv3/USM, and between TRAPs and INFORMs.

Agreed.
The current situation is clearly not sensible,
and should be improved.


> I would hope for the following changes for USM:
> 1) with no users configured, you should be able to recieve
>    both noAuthNoPriv TRAPs and INFORMs

I'd support that.
It would be consistent with the handling of community-based
notifications, and also the generation of SNMPv3 noAuth
requests.
      (see snmpusm.c:usm_generate_out_msg())


> 2) on authNoPriv TRAPs and INFORMs, if there is a
>    problem ... then I believe that the notification
>    should still be outputted

I disagree.
That would be inconsistent with the handling of errors with
other PDU types, and the processing of community-based traps.
(e.g RFC 1157, section 4.1)

It might well be sensible to log an indication that there
was an erroneous message received (rather than just failing
silently), but I wouldn't suggest any more processing than
that.  It certainly shouldn't be merged with the main trap
handler processing.


> 3) on authPriv and a failure, an output should still
>    be done, but with an error indication that the
>    message content is not available.

Again, this feels similar to the failed authenticated request
case.  Logging an error would be sensible, but nothing more.




>From the other list of suggestions:
> 1) not require entries for noAuthNoPriv
Agreed

> 2) print what protocol of each trap or inform
> 3) print security level (unsecured (noAuthNoPriv),
>      authenticated(authNoPriv), or encrypted(authPriv)

I don't think we should change the existing (external)
'traphandle' API.  We've documented the input format
that such scripts should expect for too long now.
However the internal Netsnmp_Trap_Handler routine does
receive the incoming PDU (complete with version and
administrative settings) as one of the parameters.
So this information is already available to C-based 
trap handlers.

There probably isn't a simple way to make use of this
as yet (other than adding code to 'snmptrapd_handlers.c'),
but the basic framework is in place.
  Either extending the build environment to support a
"trapd module" mechanism (similar to the existing agent
MIB module setup),  or a new "trap2handle" directive
(with an extended input format).  Or both!


> 4) print and indication as to the status (success, noSuchUser,
>    engineID/EngineClock discovery, outOfTimeWindow, authFail,
>    decryptionFail, etc)

Reporting errors feels different from processing successful
incoming requests.  I can see a case for having a separate
"error handler" mechanism, but this should probably be
considered as part of the main SNMP library, rather than
something exclusively for snmptrapd.



I *still* feel that we need to address the non-scalability
of engine IDs wrt SNMPv3 traps.   Both GET*/SET requests
and inform notifications Just Work (discovering engineIDs
automatically).  That's not possible for unacknowledged
traps, but we ought to be able to come up with a simpler
mechanism, but staying within the existing (possibly broken)
USM framework.
    Hence my suggestion of "wildcard" user matching.


Dave


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to