Re: EXTERNAL: Re: 5.7.3 | snmptrap not populating EngineBoots or EngineTime for snmp v3 traps
Denis Hainsworth <[email protected]>
| Newsgroups | gmane.network.net-snmp.devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Oct 30, 2018 at 11:31:59PM +0000, Roedersheimer, Drew A. wrote: > > From: Denis Hainsworth <[email protected]> > > Sent: Tuesday, October 30, 2018 7:57 AM > > To: [email protected] > > Subject: EXTERNAL: Re: 5.7.3 | snmptrap not populating EngineBoots or EngineTime for snmp v3 traps > > > > Just a note to anyone that might run into this. I was interested in all the > > evidence that snmptrap/d used to process boots/time correctly for v3 and so built > > 5.1.4.2 and found that snmptrap in that version does in fact correctly set boots/time > > based on the -Z command line argument and if -Z is not used it does use uptime as coded. > > > > I also confirmed that snmptrapd from 5.1.4.2 actually checks those values while 5.7.3 > > does not which is probably why most people dont care because they are probably using both > > binaries so even if snmptrap isnt setting the values snmptrapd is ignoring them anyway so > > it just works. > > > > No clue yet when it broke or how easy it might be to fix. > > > > -denis > > > This interested me for selfish reasons, so I investigated it. It appears that the local cache > of SNMP engine ID/boot/time is not getting updated from the switches supplied at the command > line. When the message is sent out, there is no entry in the cache, so default values of 0 > are used. > > I have pinned down the regression to this commit: > > commit 0dd182f682b6f6cbb18b948718238750ca3404e4 > Author: Robert Story <[email protected]> > Date: Thu Jun 2 23:14:07 2005 +0000 > > delay SNMPv3 EngineID probe until needed > > > > I have also tested a patch for this that seems to work. I'd be interested in the developers' > opinions, as I'm not sure this is the best location for the fix or if I missed something. > > Patch is against v5.8: > > diff -urN old-5.8/apps/snmptrap.c new-5.8/apps/snmptrap.c > --- old-5.8/apps/snmptrap.c 2018-07-16 09:33:40.000000000 -0500 > +++ new-5.8/apps/snmptrap.c 2018-10-30 18:25:26.652014237 -0500 > @@ -214,6 +214,9 @@ > session.engineBoots = 1; > if (session.engineTime == 0) /* not really correct, */ > session.engineTime = get_uptime(); /* but it'll work. Sort of. */ > + > + set_enginetime(session.securityEngineID, session.securityEngineIDLen, > + session.engineBoots, session.engineTime, TRUE); > } > > ss = snmp_add(&session, > > > > > Denis: can you easily test this patch with your system? Thanks Drew! Yeah it seems fix snmptrap which was my primary concern. -denis