FR2.0.3 - UCD-SNMP 4.2.7 communication does not work on 64 bits Freebsd (but does on 32 bit Freebsd)
Hello, I've got several Freeradius servers running on Freebsd. I'd like to get them discuss with SNMP agent for statistics (using SMUX). I've notice that this is working on 32 bits Freebsd -------------------- portable-taf# snmpwalk -v 1 -m /usr/local/share/snmp/mibs/RADIUS-AUTH-SERVER-MIB.txt -c public localhost radiusAuth radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServIdent.0 = FreeRADIUS Version 2.0.3, for host i386-portbld-freebsd7.0, built on May 18 2008 at 17:05:17 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServUpTime.0 = Timeticks: (16500) 0:02:45.00 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServResetTime.0 = Timeticks: (16500) 0:02:45.00 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServConfigReset.0 = running(4) radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalAccessRequests.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalInvalidRequests.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalDupAccessRequests.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalAccessAccepts.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalAccessRejects.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalAccessChallenges.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalMalformedAccessRequests.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalBadAuthenticators.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalPacketsDropped.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServTotalUnknownTypes.0 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthClientAddress.1 = IpAddress: 127.0.0.1 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthClientAddress.2 = IpAddress: 127.0.0.1 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthClientID.1 = localhost radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthClientID.2 = localhost radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessRequests.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessRequests.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServDupAccessRequests.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServDupAccessRequests.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessAccepts.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessAccepts.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessRejects.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessRejects.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessChallenges.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServAccessChallenges.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServMalformedAccessRequests.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServMalformedAccessRequests.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServBadAuthenticators.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServBadAuthenticators.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServPacketsDropped.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServPacketsDropped.2 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServUnknownTypes.1 = Counter32: 0 radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthClientTable.radiusAuthClientEntry.radiusAuthServUnknownTypes.2 = Counter32: 0 ----------------------------------------------------------------- But on 64 bit Freebsd, I only get server uptime information : Below Extract of the walk request --------------------------------------------- snmpwalk -v 1 -m /usr/local/share/snmp/mibs/RADIUS-AUTH-SERVER-MIB.txt -c public localhost radiusAuth radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ.radiusAuthServIdent.0 = FreeRADIUS Version 2.0.3, for host amd64-portbld-freebsd7.0, built on May 18 2008 at 17:39:21 ----------------------------------------------- radius -X output Waking up in 0.9 seconds. Waking up in 0.9 seconds. Waking up in 0.9 seconds. Waking up in 0.9 seconds. SMUX message received type: 161 rest len: 28 SMUX Request OID: 1.3.6.1.2.1.67.1 SMUX getresp send: 130 Waking up in 0.2 seconds. SMUX message received type: 161 rest len: 33 SMUX Request OID: 1.3.6.1.2.1.67.1.1.1.1.1.0 SMUX getresp send: 10416 Waking up in 0.2 seconds. SMUX message received type: 161 rest len: 33 SMUX Request OID: 1.3.6.1.2.1.67.1.1.1.1.1.0 SMUX getresp send: 10416 Waking up in 0.2 seconds. SMUX message received type: 65 rest len: 1 SMUX_CLOSE with reason: 2 SMUX connect try 1 SMUX SMUX open oid: 1.3.6.1.4.1.11344.1.1.1 SMUX open progname: radiusd SMUX open password: verysecret SMUX SMUX register oid: 1.3.6.1.2.1.67.1.1.1.1 SMUX register priority: -1 SMUX register operation: 2 SMUX SMUX register oid: 1.3.6.1.2.1.67.2.1.1.1 SMUX register priority: -1 SMUX register operation: 2 Waking up in 0.2 seconds. SMUX message received type: 67 rest len: 4 Waking up in 0.1 seconds. SMUX message received type: 67 rest len: 4 Waking up in 0.9 seconds. Waking up in 0.9 seconds. snmpd.log // [smux_accept] accepted fd 8 from 127.0.0.1:59629 accepted smux peer: oid enterprises.11344.1.1.1, password verysecret, descr radiusd Do you know if this is a know bug ? Or I missed something. I've tested this behaviour on differents releases (6.3, 6.1 and 7.0) of Freebsd. Seems this is always the same issue (non complete value on 64 bits OS, and behaviour ok on 32 bits. Regards Thomas
Hi,
Do you know if this is a know bug ? Or I missed something. I've tested this behaviour on differents releases (6.3, 6.1 and 7.0) of Freebsd. Seems this is always the same issue (non complete value on 64 bits OS, and behaviour ok on 32 bits.
there are a couple of small SNMP patches you may want to try that change the way SNMP values are handled - particularly apt on eg a 64bit system. alan
Hello,
Do you know if this is a know bug ? Or I missed something. I've tested this behaviour on differents releases (6.3, 6.1 and 7.0) of Freebsd. Seems this is always the same issue (non complete value on 64 bits OS, and behaviour ok on 32 bits.
there are a couple of small SNMP patches you may want to try that change the way SNMP values are handled - particularly apt on eg a 64bit system.
I'm quite new on this mailing list, could you tell me where could I find theses patches ?
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Thomas
Hello, On Wed, 21 May 2008 14:15:29 +0100, A.L.M.Buxey@lboro.ac.uk wrote:
Hi,
Do you know if this is a know bug ? Or I missed something. I've tested this behaviour on differents releases (6.3, 6.1 and 7.0) of Freebsd. Seems this is always the same issue (non complete value on 64 bits OS, and behaviour ok on 32 bits.
there are a couple of small SNMP patches you may want to try that change the way SNMP values are handled - particularly apt on eg a 64bit system.
I've looked for theses patches reading the faq, browsing the tree of the freeradius sources, googling or looking for it in freeradius-devel mailing list but I haven't found it. Could you give me a clue about this ?
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Thanx Thomas
Thomas Fagart wrote:
I've looked for theses patches reading the faq, browsing the tree of the freeradius sources, googling or looking for it in freeradius-devel mailing list but I haven't found it. Could you give me a clue about this ?
Those patches should be in 2.0. A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously. Alan DeKok.
On Wed, 28 May 2008 19:06:30 +0200, Alan DeKok <aland@deployingradius.com> wrote:
Thomas Fagart wrote:
I've looked for theses patches reading the faq, browsing the tree of the freeradius sources, googling or looking for it in freeradius-devel mailing list but I haven't found it. Could you give me a clue about this ?
Those patches should be in 2.0.
Then this does not work for me using FR 2.0.3 and UCD-SNMP 4.2.7 on 64 bits FreeBSD.
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ? Which SNMP agent will you poll to get statistics then ? Thanks for your answer Thomas
Thomas Fagart wrote:
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ?
No.
Which SNMP agent will you poll to get statistics then ?
An SNMP agent could send RADIUS packets to FreeRADIUS to get the statistics it needs. This MAY be simpler than adding an SNMP agent to FreeRADIUS. Alan DeKok.
Alan DeKok wrote:
Thomas Fagart wrote:
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ?
No.
Which SNMP agent will you poll to get statistics then ?
An SNMP agent could send RADIUS packets to FreeRADIUS to get the statistics it needs. This MAY be simpler than adding an SNMP agent to FreeRADIUS.
Ok I get it now, then the question could be, is there any open source software (net-snmp patches or sub programs ?) that could do what you describe (enabling radius packet generation while being polled, waiting for radiusd answer and then response to the get oid). Will that be compliant with radius mibs ?
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Thomas
Thomas Fagart wrote:
Ok I get it now, then the question could be, is there any open source software (net-snmp patches or sub programs ?) that could do what you describe (enabling radius packet generation while being polled, waiting for radiusd answer and then response to the get oid).
FreeRADIUS comes with a RADIUS library. Net-SNMP can generate AgentX code for a MIB. Glue code can be written to make the two work together.
Will that be compliant with radius mibs ?
Uh... why would it be non-compliant? Alan DeKok.
Hi,
Those patches should be in 2.0.
Then this does not work for me using FR 2.0.3 and UCD-SNMP 4.2.7 on 64 bits FreeBSD.
there are a couple of small patches which arent in 2.0 - i have a small collection of diffs that i was goign to go through to check which ones didnt make it.
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ?
Which SNMP agent will you poll to get statistics then ?
I happily use SNMP to poll RADIATOR systems which works fine I should be able to similarly poll FreeRADIUS for stats and believe that people generally feel the same way. its the sort of status/stats function that people are familiar with - even tools such as squid can be SNMP'd alan
A.L.M.Buxey@lboro.ac.uk wrote:
Hi,
Those patches should be in 2.0.
Then this does not work for me using FR 2.0.3 and UCD-SNMP 4.2.7 on 64 bits FreeBSD.
there are a couple of small patches which arent in 2.0 - i have a small collection of diffs that i was goign to go through to check which ones didnt make it.
Ok great I'll wait for that, don't know if I could help you in that task ?
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ?
Which SNMP agent will you poll to get statistics then ?
I happily use SNMP to poll RADIATOR systems which works fine I should be able to similarly poll FreeRADIUS for stats and believe that people generally feel the same way. its the sort of status/stats function that people are familiar with - even tools such as squid can be SNMP'd
I do agree this is most easiest. But If enabling special features to allow snmp to send radius packet is ok, i'll also try that.
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Thomas
Hi On Wed, 28 May 2008 19:47:09 +0100, A.L.M.Buxey@lboro.ac.uk wrote:
Hi,
Those patches should be in 2.0.
Then this does not work for me using FR 2.0.3 and UCD-SNMP 4.2.7 on 64 bits FreeBSD.
there are a couple of small patches which arent in 2.0 - i have a small collection of diffs that i was goign to go through to check which ones didnt make it.
Any news from that check ? Do you think I can report a bug about that issue ?
A better solution is to allow the server to put the statistics into RADIUS packets. That way any SNMP interaction can be in a separate program, which simplifies life enormously.
I don't understand properly, do you mean that you could proxy "statistics packet" to another freeradius ?
Which SNMP agent will you poll to get statistics then ?
I happily use SNMP to poll RADIATOR systems which works fine I should be able to similarly poll FreeRADIUS for stats and believe that people generally feel the same way. its the sort of status/stats function that people are familiar with - even tools such as squid can be SNMP'd
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Regards Thomas
Alan DeKok wrote:
Thomas Fagart wrote:
Do you think I can report a bug about that issue ?
Please don't. The SMUX code is old, and is deprecated by the the net-snmp people. It will NOT be fixed.
It's much better to write new code against the AgentX API, which is supported.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Hello, Ok I'll try to write code. Just before doing that I've try to find out how I can query radius with radclient to get the statistics ? Is there anything special in the configuration that I should enable, to collect statistics ? How could I simply query my test radius to get statistics ? Thanks
Thomas Fagart wrote:
Ok I'll try to write code. Just before doing that I've try to find out how I can query radius with radclient to get the statistics ?
You can't.
Is there anything special in the configuration that I should enable, to collect statistics ?
No. You have to write new code to get the statistics. Alan DeKok.
participants (3)
-
A.L.M.Buxey@lboro.ac.uk -
Alan DeKok -
Thomas Fagart