Simple 2 Server High Availability

Phil Mayers p.mayers at imperial.ac.uk
Tue Aug 5 18:00:45 CEST 2014


On 05/08/14 16:42, Arran Cudbard-Bell wrote:
>
> On 5 Aug 2014, at 11:33, James Bensley <jwbensley at gmail.com> wrote:
>
>> Hi All,
>>
>> As a follow up to this I am thinking I shall use MariaDB if anyone has
>> any thoughts on that.
>
> What are you actually putting in the database?

This. If you're just reading username/password, you don't need multi-master.

If you're doing accounting, you *might* want that. But you could just 
relay the accounting to a central server and wait for it to replicate 
back out, or use radsqlrelay. Depends on your needs.

If you're doing IP assignment it's a bit trickier, but there are 
solutions if your radius requests are reasonably sticky over long-ish 
timescales (minutes).

We do the following:

  1. SQL DB "users" - master server, read-only replica on radius servers 
via Postgres "Slony"

  2. SQL DB "accounting" - master server only, radsqlrelay from radius 
servers; no local copy on radius servers.

  3. SQL DB "ipassign" - local to each radius server, sqlippool queries 
modified to put update servername/timestamp column on rows, python 
script syncs most-recent IP assignment bi-directionally once a minute.

I think a multi-master approach sounds fragile.

We also use Postgresql rather than MySQL/MariaDB.


More information about the Freeradius-Users mailing list