Полный список параметров [Документация VAS Experts]

Полный список параметров

Опции командной строки 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. Значения флагов см. в разделе Журналы fastPCRF
  • rlimit_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-сервера могут быть заданы тремя способами:

  1. Значения, одинаковые для всех Radius-серверов, задаются как обычные параметры в файле fastpcrf.conf (все такие параметры перечислены ниже). Основное условие — они должны быть заданы перед параметрами radius_server, — только в этом случае они применяются ко всем Radius-серверам.
  2. Для каждого Radius-сервера может быть создан свой конфигурационный файл, имя которого задается параметром conf в строке radius_server, например:
    radius_server=secret@10.10.3.5:1812;conf=radius-main.conf

    значения из radius-main.conf перекрывают default-значения параметров.

  3. Параметры, уникальные для конкретного 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-сервера в секундах, значение по умолчанию — 60. Если в течение этого периода времени от Radius-сервера не пришло ни одного ответа, а запросы есть, то сервер считается умершим и fastPCRF переключается на другой Radius-сервер из списка (не стоит забывать, что транспортным протоколом для RADIUS является UDP, в котором обрыв «соединения» определить точно невозможно). При этом если умер главный Radius-сервер (тот, который задан первым в fastpcrf.conf), то запускается задача оживления подключения к главному Radius-серверу (см. radius_revive_period выше).
  • 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.