I've been struggling with this problem for a couple of weeks, and I thought I'd pass it along to the mailing list. Basically I'm trying to answer the following question. Given multiple identical dedicated servers each running Linux and MySQL, how can I configure FreeRADIUS for maximum stability, reliability, and performance? The question, it seems, is not as easy as is sounds. I have experience with running a single FreeRADIUS/MySQL server, and the configuration works well. So to move to multiple servers, I started by reading docs/configurable_failover and docs/load-balance.txt. As I was looking for both load-balancing and redundancy, I thought redundant-load-balance seemed like a slam-dunk. The idea was to have each instance of FreeRADIUS be redundant for each other, and for each instance of the MySQL back end to do the same. Therefore, I simply defined a redundant-load-balance block in each place in radiusd.conf where I had previously defined the sql module on each server. This worked for the most part, but now I'm starting to discover accounting issues. Some sessions will be recorded in both databases with the same AcctSessionId and AcctUniqueId, but with different AcctStopTimes. This seemed confusing to me, but given my shoot-from-the-hip first try at a redundant load-balancing configuration, I wasn't surprised to find problems. I looked around and couldn't find any "best practice" example config files or HOWTOs for this situation. That's when I decided to email the mailing list. So my question again, in short, is what would be the preferred method to configure FreeRADIUS/MySQL on multiple redundant servers? Any advise would be very helpful. Thanks. --Aaron
Aaron Paetznick wrote:
I've been struggling with this problem for a couple of weeks, and I thought I'd pass it along to the mailing list. Basically I'm trying to answer the following question. Given multiple identical dedicated servers each running Linux and MySQL, how can I configure FreeRADIUS for maximum stability, reliability, and performance? The question, it seems, is not as easy as is sounds.
I've already setup FreeRADIUS on multiple redundant servers, but never had the time to write a HOWTO. The main guideline is: 1. Use LVS in a "direct routing" setup to dispatch the RADIUS requests. http://www.linuxvirtualserver.org/VS-DRouting.html 2. Use MySQL replication for the authorize database, so each FreeRADIUS server connects to a local, read only database. http://dev.mysql.com/doc/refman/5.1/en/replication.html 3. Use radsqlrelay for the accounting database, so the accounting data is written to a central database without slowing down the RADIUS servers. radsqlrelay is to be found in the FreeRADIUS source tarball, you could read the "rlm_sql_log" and "radsqlrelay" manpages for more details. -- Nicolas Baradakis
participants (2)
-
Aaron Paetznick -
Nicolas Baradakis