radrelay integration & other issues

Guy Fraser guy at incentre.net
Fri Jul 7 21:52:24 CEST 2006

On Wed, 2006-05-07 at 17:23 -0400, Alan DeKok wrote:
>   I've been looking into the issues surrounding adding radrelay to the
> server.  While it's made some things better, it's made other things
> worse.
>   In the future, I'd like to add tacacs+ to RADIUS gatewaying (bug
> #254), and radsec.  After working on it for a while, it appears to be
> easier and better to do these as separate gateways, rather than
> integrating them into the server.
>   So... maybe pulling radrelay out of the server isn't a bad idea,
> either.  We could take a page from "radzap", and make radrelay into a
> tiny program that runs radclient, and sends the data to a server.  It
> could even start the server itself, and monitor the server for process
> death.  So it could still *look* like one program, even if 3-4 are
> running behind the scenes.
>   That would be simpler and easier to manage.
>   Comments?  Flames?  Other priorities?
While migrating the last 6 months of accounting data to 
FreeRadius from my custom Cistron server, I found radrelay
to be quite helpful, but I also discovered a couple of 
minor issues.

1) I had to change proxy.conf to not proxy the packets to 
the other proxy servers. It might be nice if radrelay could 
be configurable to disable proxying while importing data to 
repopulate the database, especially on a live server.

2) The duplicate entry detection did not work while importing 
data using radrelay. I am using PostGreSQL as a backend so I 
added a "unique constraint" to the radacct table to block the
duplicate entries. The "unique constraint" stops the duplicate
data from being inserted, but causes nasty looking messages 
in the log, that look like this :

Fri Jul  7 13:06:47 2006 : Error: rlm_sql (sql): failed after re-connect
Fri Jul  7 13:06:47 2006 : Error: rlm_sql (sql): Couldn't insert SQL
accounting START record - ERROR:  duplicate key violates unique
constraint "radacct_unique_session"

I prefer having the nasty messages, rather than having 
duplicated accounting data. I noticed this scenario before 
going live, by accident when I was comparing a users time 
usage between the old server and the new server. The 
discrepancy was caused by 6 accounting records that had 
the same Acct-Session-Id but the delay times and 
Unique-Session-Id were different. I cleaned them up 
with a tricky delete statement, but did not want to have 
to regularly delete records.

I am considering an option [log_failed_query = YES|NO] in 
the ...sql.conf file for the rlm_sql module that would 
allow failed SQL queries to be printed in the log.

Since the system is now live I don't want to make too 
many source changes, so I will work towards putting some 
patches together and getting them into CVS.

That's it for now, have a great weekend.

More information about the Freeradius-Devel mailing list