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