Назад | Перейти на главную страницу

Резервный FreeRADIUS + MySQL

Я работаю над некоторым веб-сервисом, который реализует AAA с помощью FreeRADIUS + MySQL в Debian.

Проблема, над которой я сейчас работаю, - это высокая доступность и масштабируемость RADIUS. Если машина FreeRADIUS или машина MySQL выходит из строя, она прекращает работу всей службы.

Я проверил следующие технические документы:

http://www.mysql.com/why-mysql/white-papers/mysql_wp_ha_auth_account.php

http://www.mysql.com/why-mysql/white-papers/mysql_wp_scaling_web_databases.php

Теперь у меня следующий набор вопросов:

  1. Насколько я понимаю, два сервера FreeRADIUS могут использовать одну и ту же базу данных MySQL, не «нарушая» ее целостность, верно? Если да, то каковы недостатки производительности такой установки?
  2. Что должно быть избыточным для архивирования высокой доступности? Это сам сервер FreeRADIUS или его хранилище данных MySQL или и то, и другое? Что должно быть избыточным для масштабируемости архива?
  3. Если количество серверов RADIUS увеличится, как можно реализовать балансировку нагрузки для веб-сервера, распределенного через Интернет?
  4. Как я могу распространить кластер MySQL через Интернет? (Следует ли использовать репликацию и оставить оба члена кластера в одной локальной сети?
  1. Использование серверов radius не должно нарушать целостность данных. Только сервер RADIUS, получивший запрос, будет выполнять соответствующие запросы аутентификации / учета. Также при необходимости может использоваться блокировка на уровне БД.
  2. Чтобы обеспечить избыточность, необходимо будет реплицировать и сервер radius, и базу данных mysql.
  3. Перед серверами RADIUS необходимо установить балансировщик нагрузки. Это должен быть балансировщик нагрузки на основе UDP. Другой вариант, который вы можете рассмотреть, - это балансировка нагрузки запросов. вручную из вашей службы (например, вы можете случайным образом выбрать один из нескольких IP-адресов и использовать его в качестве сервера радиуса). Это зависит от реализации вашего сервиса.
  1. Действительно, можно подключить несколько серверов FreeRadius к кластеру MySQL, что даст вам HA с обеих сторон (Radius и SQL).
  2. Что касается вопроса №2. Вам нужно будет создать кластер MySQL как минимум из 2 машин, также вам потребуется минимум 2 машины с установленным FreeRadius. очевидно, что вы можете установить 2 машины с MySQL и FreeRadius на каждой машине, это зависит от размера вашей установки и количества клиентов.
  3. Это очень сильно зависит от того, как реализован ваш Radius-клиент, поддерживает ли он несколько серверов? поддерживает ли он веса или приоритеты?
  4. У MySQL есть несколько вариантов построения кластера, для этого я предлагаю технические документы MySQL Cluster и выбираю вариант, который лучше всего соответствует вашим потребностям.