Полный список параметров
Опции командной строки fastPCRF:
-c <conf_file_name>
- задает имя файла конфигурации;-d
– запускать fastPCRF как демон;-h
– вызов справки (help);-v
– печать версии.
Настроечные параметры берутся из файла fastpcrf.conf
, который по умолчанию находится там же, где и fastdpi.conf
— в каталоге /etc/dpi
.
Общие параметры конфигурационного файла:
daemon
— булевый параметр, задающий режим запуска: еслиdaemon=1
— запускать fastPCRF в режиме демона, иначе — как обычную программу. Значение по умолчанию — 0 (запускать как обычную программу). Данный параметр может быть переопределен опцией командной строки–d
.verbose
— булевый параметр, задает подробный уровень логирования: еслиverbose=1
— программа будет подробно логировать свои действия, входящие запросы и исходящие данные; степень подробности задается параметромtrace
(см. далее). Значение по умолчанию — 0.trace
— битовая маска трассировки; задает, какие компоненты требуют подробного логирования. Значение по умолчанию — 0. Значения флагов см. в разделе Журналы fastPCRFrlimit_fsize
— максимальный размер файла при записи, байт. Значение по умолчанию — 1G (1073741824 байт).print_stat_period
— период вывода внутренней статистики в файлfastpcrf_stat.log
. Задается в секундах, значение по умолчанию — 300 (статистика выводится раз в 5 минут).work_thread_count
— количество рабочих потоков, значение по умолчанию — 5. Задавать значение больше 5 не имеет смысла, так как количество рабочих потоков не может быть больше, чем количество внутренних компонентfastpcrf
.async_queue_size
— размер внутренней очереди передачи асинхронных сообщений; значение по умолчанию — 524288 (512K). Этот параметр лучше не трогать и тем более не уменьшать, так как при задании слишком маленького размера возможна потеря внутренних вызовов между компонентами, что равносильно потере работоспособности и/или утечке памяти.
Параметры связи с fastDPI:
fdpi_server
auth_server_port
— номер порта, на котором слушаем входящие соединения. Значение по умолчанию — 29002.auth_server_max_connection
— максимальное число входящих соединений, значение по умолчанию — 16, максимальное значение — 16. Фактически, это число fastDPI-серверов, которые обслуживаются данным fastPCRF сервером.
Задание fastDPI-серверов:
fdpi_server
— задание одного fastDPI-сервера.
Формат:fdpi_server=ip%dev:port[;name=value]*
, гдеip
— IP-адрес сервера fastDPI;dev
— интерфейс, с которого идет соединение;port
— порт обратной связи fastPCRF → fastDPI (обычно 29000 — стандартный портfdpi_ctrl
);name=value
— дополнительные параметры сервера:attr_nas_ip
— IPv4-адрес для атрибута NAS-IP-Address; если не задан — применяется IP-адрес fastDPI (ip
);attr_nas_ipv6
— значение атрибута NAS-IPv6-Address для данного fastDPI;attr_nas_id
— значение атрибута NAS-Identifier для данного fastDPI.
В config-файле можно включать множество параметров fdpi_server
— каждый fastDPI-сервер описывается отдельным параметром. Максимальное количество fastDPI-серверов равно 16.
fdpi_server=127.0.0.1%lo:29000;attr_nas_ip=5.5.5.5 fdpi_server=10.20.30.40%eth1:29000;attr_nas_is=DPI2
Настройки взаимодействия с Radius-серверами:
default_reject_policing
— имя профиля полисинга по умолчанию для неавторизованных пользователей.default_reject_whitelist
— имя профиля услуги 5 (Белый список) по умолчанию для неавторизованных пользователей.radius_revive_period
— периодичность (в секундах) задачи оживления подключения к главному Radius-серверу. Значение по умолчанию – 120 секунд. Radius-сервера в спискеradius_server
неравнозначны: первый считается главным Radius-сервером, остальные – резервными. Если fastPCRF обнаруживает, что главный Radius-сервер слишком долго не отвечает, соединение с ним сбрасывается и fastPCRF подключается к следующему Radius-серверу из списка. При этом производятся периодические попытки подключения к главному Radius-серверу до тех пор, пока главный Radius-сервер не станет доступным (с версии 12.3 удален за ненадобностью).radius_max_pending_requests
— максимальное число ожидающих выполнения запросов от fastDPI-серверов. Значение по умолчанию – 1 000 000. При превышении этого порога входящие запросы от fastDPI-серверов молча отбрасываются.coa_max_pending_requests
— максимальное число ожидающих выполнения CoA-запросов от Radius-серверов. Значение по умолчанию – 100 000. Это значение не должно быть выше, чем значение параметраasync_queue_size
, рекомендуемое значение – не большеasync_queue_size / 2
.
radius_server
— задает адрес Radius-сервера и его конфигурационные параметры. Каждый Radius-сервер в конфигурационном файле описывается отдельным параметром radius_server
. Обычно задается как минимум 2 Radius-сервера — основной и резервный, соответственно, в conf-файле должно быть как минимум 2 строки с параметром radius_server
— для основного и резервного серверов.
Максимальное число Radius-серверов — 16. Radius-сервера не равнозначны: главным считается тот Radius-сервер, который описан в conf-файле первым, остальные считаются резервными.
Резервные сервера используются при недоступности главного и именно в том порядке, как задано в conf-файле.
В каждый момент времени активным является только один Radius-сервер.
Формат задания radius_server
следующий:
radius_server=secret@ip%dev:port{;param=value}*
где:
secret
— секрет Radius-сервера;ip
— IP-адрес Radius-сервераdev
(необязательный) — имя интерфейса, на котором создавать соединение; если не задан — интерфейс выбирается операционной системой;port
— портparam=value
— перечень (через точку с запятой) конфигурационных параметров для данного Radius-сервера.
Конфигурационные параметры Radius-сервера могут быть заданы тремя способами:
- Значения, одинаковые для всех Radius-серверов, задаются как обычные параметры в файле
fastpcrf.conf
(все такие параметры перечислены ниже). Основное условие — они должны быть заданы перед параметрамиradius_server
, — только в этом случае они применяются ко всем Radius-серверам. - Для каждого Radius-сервера может быть создан свой конфигурационный файл, имя которого задается параметром
conf
в строкеradius_server
, например:radius_server=secret@10.10.3.5:1812;conf=radius-main.conf
значения из
radius-main.conf
перекрывают default-значения параметров. - Параметры, уникальные для конкретного Radius-сервера, могут быть заданы прямо в строке
radius_server
, например:radius_server=secret@10.10.3.5:1812;conf=radius-main.conf;msg_auth_attr=1
Здесь параметр
msg_auth_attr
задан для конкретного сервера 10.10.3.5 и перекрывает задание соответствующего параметра в файле конфигурацииradius-main.conf
. Следует учитывать, что порядок перечисления вradius_server
важен: параметры применяются именно в том порядке, как они указаны вradius_server
.
Если в примере выше поменять местамиconf
иmsg_auth_param
и в conf-файлеradius-main.conf
заданоmsg_auth_param=0
, то будет примененmsg_auth_param=0
изradius-main.conf
.
Далее перечислены параметры Radius-серверов, которые могут быть заданы индивидуально для каждого Radius-сервера.
Приводятся имена параметров в основном conf-файле fastpcrf.conf
, в скобках – так, как они задаются в параметре radius_server
и в отдельном conf-файле Radius-сервера:
radius_dead_timeout
(dead_timeout
) — частота пинга Radius-сервера в секундах, когда он в состоянии Dead. В состоянии Dead сервер пингуется раз вradius_dead_timeout
секунд: посылается пинг и сервер переходит в состояние Dead-ping-sent. То есть: еслиradius_dead_timeout=3600
(1 час), то Radius-сервер может перейти в состояние Alive не раньше чем через час после перехода в состояние Dead.radius_max_connect_count
(max_connect_count
) — максимальное число подключений к одному Radius-серверу, значение по умолчанию — 16. Согласно основной спецификации RADIUS (RFC 2865), под идентификатор, позволяющий сопоставить запрос с ответом, отводится поле размером 1 байт, то есть одно соединение может одновременно обслуживать не более 256 запросов. Для преодоления этого ограничения спецификация предлагает создавать несколько подключений к одному Radius-серверу. Фактически этот параметр задает число одновременных запросов к одному Radius-серверу:radius_max_connect_count * 256
.radius_response_timeout
(response_timeout
) — тайм-аут ожидания ответа на запрос Access-Request к Radius-серверу в секундах, значение по умолчанию — 30. Если в течение этого времени ответ на запрос не пришел, запрос считается отброшенным Radius-сервером (например, по причине "слишком много запросов") и fastPCRF пытается послать запрос заново.radius_resend_count
(resend_count
) — максимальное количество попыток повторной отправки запроса, значение по умолчанию — 0 (без повторной отправки). Если число попыток повторной отправки запросов исчерпано и ответ от Radius-сервера не получен, fastPCRF ничего не сообщает fastDPI-серверу. FastDPI в случае отсутствия ответа на авторизацию в течение определенного тайм-аута (параметрauth_resend_timeout
файлаfastdpi.conf
) пошлет повторный запрос на авторизацию.radius_status_server
(status_server
) — булевый параметр, задает, поддерживает ли Radius-сервер запрос Status-Server (RFC 5997); значение по умолчанию — 1 (запрос поддерживается). Данный тип запроса используется fastPCRF для пинга Radius-сервера, особенно в случае временной недоступности основного Radius-сервера. Без поддержки Status-Server сложно понять, восстановился ли основной Radius-сервер.radius_keepalive
— тайм-аут пингования Радиус-серверов в секундах. Если нет никаких запросов авторизации, fastPCRF периодически пингует Радиус-сервера, посылая Server-Status или Access-Request. Если сервер отвечает, то он считается доступным. Значение по умолчанию: 60 секунд.radius_ping_user_name
— User-Name псевдоабонента, используемый в Access-Request для проверки доступности RADIUS сервера.radius_ping_user_password
— пароль псевдоабонента, используемый в Access-Request для проверки доступности RADIUS сервера.radius_user_password
(user_password
) — строка, значение атрибута User-Password запроса Access-Request. Значение по умолчанию:VasExperts.FastDPI
.radius_unknown_user
(unknown_user
) — строка, логин пользователя, если настоящий логин неизвестен fastDPI. Значение по умолчанию:VasExperts.FastDPI.unknownUser
. Это значение атрибута User-Name запроса Access-Request, еслиradius_user_name_ip=0
и логин пользователя неизвестен. Предполагается, что Radius-сервер в ответе Access-Accept сообщит истинный логин пользователя, определенный по его IP-адресу, взятому из атрибутаFramed-IP-Address
. Следует учитывать, что данный параметр тесно связан с параметромradius_user_name_auth
и применяется, только если никакой способ задания атрибута User-Name не применим.radius_unknown_user_psw
(unknown_user_pws
) — строка, значение атрибута User-Password для неизвестного логина пользователя. Применяется только еслиradius_user_name_ip=0
. Значение по умолчанию:VasExperts.FastDPI
.radius_msg_auth_attr
(msg_auth_attr
) — булевый параметр, задает, поддерживает ли Radius-сервер атрибут Message-Authenticator (RFC 2869). Значение по умолчанию — 1 (атрибут поддерживается). Если атрибут поддерживается, fastPCRF будет вычислять и включать Message-Authenticator в каждый запрос Access-Request и Status-Server, а также анализировать этот атрибут в ответах; если в ответе проверка атрибута Message-Authenticator заканчивается ошибкой, то такой ответ отбрасывается.radius_attr_nas_port_type
(attr_nas_port_type
) — число, значение атрибута NAS-Port-Type (RFC 2865) запроса Access-Request; значение по умолчанию — 5 (Virtual).radius_attr_service_type
(attr_service_type
) — число, значение атрибута Service-Type (RFC 2865) запроса Access-Request. Значение по умолчанию — 2 (Framed).radius_attr_cui
(attr_cui
) — булевый параметр, задает, поддерживает ли Radius-сервер атрибут Chargeable-User-Identity (CUI, RFC 4372). Значение по умолчанию — 1 (CUI поддерживается). Если этот атрибут поддерживается, то fastPCRF в запросе Access-Request помещает в этот атрибут логин пользователя; если логин неизвестен, то в атрибут помещается нулевой байт, что означает, согласно RFC 4372, запрос логина у Radius-сервера. В ответе Access-Accept fastPCRF ожидает прихода в этом атрибуте истинного логина пользователя, который Radius-сервер может определить по его IP-адресу (атрибут Framed-IP-Address запроса).radius_coa_port
(coa_port
) — UDP-порт, на который поступают Change-of-Authorization (CoA) оповещения Disconnect-Request, CoA-Request (RFC 5176). Значение по умолчанию: 3799 (определен в RFC 5176); если Radius-сервер не поддерживает CoA, следует задать этому параметру значение 0.radius_coa_resend_timeout
(coa_resend_timeout
) — тайм-аут перепосылки CoA-ответов (Disconnect-ACK, Disconnect-NAK, CoA-ACK, CoA-NAK) в случае проблем с сокетом (обычно переполнение очереди сокета), в секундах. Значение по умолчанию — 1 секунда. Количество повторных попыток задается параметромradius_resend_count
.coa_reauth_ack
— как отвечать на CoA-Request с Service-Type=8 (Authenticate-Only):- 0 (значение по умолчанию) — по RFC5176 p.3.2: отвечать CoA-NAK с Error-Cause=507 (Request Initiated);
- 1 — нестандартное поведение: отвечать CoA-ACK.