Описание RADIUS Proxy на базе FreeRADIUS и установка

Назначение

В СКАТ BRAS Control Plane реализован через fastPCRF, который имеет возможность работы с RADIUS только в режиме active-standby (fail-over) с группой RADIUS серверов — работа только с одним активным RADIUS-сервером из группы и переключение на следующий активный в случае недоступности текущего.
Для реализации сценариев балансировки (Load-Sharing) и распределения по группе RADIUS серверов используется компонент RADIUS Proxy — пакет FreeRADIUS. При этом для fastPCRF сохраняется единая точка входа — сервер FreeRADIUS, который выступает как proxy-сервер (он балансирует и распределяет по условиям запросы между известными ему другими операторскими RADIUS-серверами). Proxy-сервер запоминает на каком RADIUS-сервере был авторизован абонент и далее направляет аккаунтинг и повторные авторизации на этот же сервер.

Варианты режимов балансировки

fail-over — запрос отправляется на первый живой домашний сервер в списке. Т.е. если первый домашний сервер отмечен как "мертвый", то выбирается второй и т.д.

load-balance — выбирается наименее загруженный домашний сервер, где "наименьшая загруженность" определяется путем определения количества запросов, отправленных на этот домашний сервер, и вычитанием количества ответов, полученных от этого домашнего сервера.
Если существует два или более сервера с одинаково низкой нагрузкой, то один из них выбирается случайным образом. Такая конфигурация наиболее похожа на старый round-robin, хотя это не совсем так.
Обратите внимание, что балансировка нагрузки не очень хорошо работает с EAP, поскольку EAP требует, чтобы пакеты для EAP-взаимодействия отправлялись на один и тот же домашний сервер. Метод балансировки нагрузки не сохраняет состояние между пакетами, что означает, что EAP-пакеты для одного и того же разговора могут быть отправлены на разные домашние серверы. Это не позволит EAP работать.
Для методов аутентификации, отличных от EAP, и для учетных пакетов мы рекомендуем использовать load-balance. Это позволит обеспечить максимальную доступность вашей сети.

client-balance — домашний сервер выбирается путем хэширования IP-адреса источника пакета. Если этот домашний сервер не работает, то используется следующий по списку, как и в случае при fail-over.
Невозможно предсказать, какой IP-адрес источника будет сопоставлен к какому домашнему серверу.
Эта конфигурация наиболее полезна для выполнения простой балансировки нагрузки для сеансов EAP, поскольку сеанс EAP будет всегда будет отправляться на один и тот же домашний сервер.

client-port-balance — выбор домашнего сервера осуществляется путем хэширования IP-адреса и порта источника пакета. Если этот домашний сервер не работает, то используется следующий по списку используется, как и в случае с "fail-over".
Этот метод обеспечивает несколько лучшую балансировку нагрузки для сессий EAP, чем "client-balance". Однако это также означает, что пакеты аутентификации и учета для одного и того же сеанса МОГУТ отправляться на разные домашние серверы.

keyed-balance — выбор домашнего сервера осуществляется путем хэширования (FNV) содержимого атрибута Load-Balance-Key из элементов управления. Затем запрос отправляется на домашний сервер выбранный пользователем:

server = (hash % num_servers_in_pool)

Если в элементах управления отсутствует Load-Balance-Key, метод балансировки нагрузки идентичен "load-balance".
Для большинства не-EAP методов аутентификации атрибут User-Name является хорошим ключом. Политика "unlang" может быть использована для копирования User-Name в атрибут Load-Balance-Key атрибут. Этот метод может не работать для сессий EAP, поскольку имя пользователя вне туннеля TLS часто является статическим статичным, например, "anonymous@realm".

Установка

Шаг 1. Установка FreeRADIUS

Установить основные пакеты для FreeRADIUS:

sudo yum install freeradius freeradius-utils freeradius-mysql

Шаг 2. Добавление словаря vasexperts

В директорию /usr/share/freeradius/ добавить словарь и после включить его в файле dictionary. Если он уже добавлен, рекомендуется перезаписать его, так как не все новые атрибуты могут быть определены в изначальной версии:

cp /usr/share/dpi/dictionary.vasexperts /usr/share/freeradius/
Важно отметить, что freeradius – это название пакета, а radiusd – это имя службы (демона), управляющего им. Директория, где находится конфигурация FreeRADIUS до версии 3, называется /etc/raddb/ /usr/share/dpi/dictionary.vasexperts - этот файл находится на сервере, где установлен fastDPI.

Обновление RADIUS Proxy

Обновление версии производится командой:

sudo yum upgrade freeradius freeradius-utils freeradius-mysql