Помимо информации о том, авторизован или нет пользователь, fastPCRF необходимы следующие данные в ответ на Access-Request:
User-Name
или VasExperts-UserName
СКАТ поддерживает IPv4 и IPv6-адресацию абонентов. Для IPv4-абонентов в ответе должен быть атрибут Framed-IP-Address
, задающий IPv4-адрес, причем этот адрес должен совпадать с тем, который был указан в Access-Request. Если значения Framed-IP-Address
в запросе и ответе различаются, это считается ошибкой.
Access-Accept
атрибут Framed-IP-Address
в режиме L3-авторизации. Для таких случаев предусмотрена fastpcrf.conf-опция radius_framed_ip_from_request=1
: при таком значении в случае отсутствия в ответе атрибута Framed-IP-Address
fastPCRF берет его из запроса авторизации.
Для IPv6-абонентов в Access-Accept/Reject поддерживаются атрибуты:
Framed-IPv6-Address
— задает IPv6-адрес абонента. Значение данного атрибута в ответе должно совпадать со значением в запросе.Framed-IPv6-Prefix
— задает IPv6-префикс подсети абонента. Размер префикса и его значение в ответе должен совпадать с запросом.Framed-IPv6-Pool
— имя пула. Необязательный атрибут. Если этот атрибут указан в ответе, то он будет передаваться во всех Accounting-Request.
Для IPv6 ответ обязательно должен содержать один из атрибутов Framed-IPv6-Address
или Framed-IPv6-Prefix
(или оба сразу). При этом СКАТ интерпретирует атрибут Framed-IPv6-Address
как префикс подсети, не учитывая младшие биты адреса (напомним, что пока СКАТ умеет работать только с префиксами одинакового размера, задаваемым параметром ipv6_subnetwork
).
Также поддерживаются Dual Stack абоненты: запрос Access-Request всегда идет либо по IPv4, либо по IPv6-адресу, но ответ может содержать оба адреса в атрибутах Framed-IP-Address
и Framed-IPv6-Address
/Framed-IPv6-Prefix
. Это значит, что абоненту назначен как IPv4-адрес, так и IPv6-префикс. При этом такой абонент не считается по умолчанию multi-bind абонентом: в СКАТ с каждым абонентом, даже single-bind, может быть связана пара: IPv4-адрес и IPv6-префикс.
Профиль полисинга и список подключенных услуг передаются в Vendor-Specific атрибуте [26] ответов.
VENDOR VasExperts 43823 BEGIN-VENDOR VasExperts ATTRIBUTE VasExperts-Policing-Profile 1 string ATTRIBUTE VasExperts-Service-Profile 2 string ATTRIBUTE VasExperts-Enable-Service 3 string ATTRIBUTE VasExperts-Multi-IP-User 4 integer ATTRIBUTE VasExperts-UserName 5 string ATTRIBUTE VasExperts-Restrict-User 7 byte или integer END-VENDOR VasExperts
В ответе на Access-Accept должно быть не более одного данного атрибута.
VasExperts-Policing-Profile = "50Mbps"
VasExperts-Policing-Profile = "BV##100000#100000#+++-++++"
BV
--- By Value##100000
--- лимит от Интернета к абоненту в кбит/с#100000
--- лимит от абонента к Интернету в кбит/с#+++-++++
--- cs0 … cs7, rate(cs3)=0, cs3 заблокирован, остальные классы разрешены на скорости root с заимствованием (алгоритм HTB).
Cтроковый параметр, задающий имя профиля для конкретной услуги fastDPI.
Формат строки:
service_id:profile_name
Где:
service_id
--- число, идентификатор услуги fastDPI;profile_name
--- строка, имя профиля по услуге.Пример 1: подключение NAT (11 услуга) с профилем "cgnat":
VasExperts-Service-Profile="11:cgnat"
Пример 2: подключение Белого списка и Captive Portal, HTTP redirect (16 услуга) с указанием параметров страницы для редиректа "http://info.com" и разрешенного списка IP адресов "/var/lib/dpi/ip_list.bin
":
VasExperts-Service-Profile = "16:BV##/var/lib/dpi/ip_list.bin#http://info.com"
VasExperts-Service-Profile
--- по одному атрибуту для каждой услуги.
Cтроковый параметр, задающий включение/отключение конкретной услуги, для которой не требуется профиль. Формат строки:
service_id:flag
где:
service_id
– число, идентификатор услуги fastDPIflag
– признак включения/отключения услуги. Допустимые значения:on
, enabled
– услуга включенаoff
, disabled
– услуга отключена
Пример подключенной услуги: 5:on
Пример отключенной услуги: 5:off
В CoA для отключения услуги следует использовать данный атрибут. Например, отключение услуги 5 выглядит так:
VasExperts-Enable-Service="5:off"
.
Тогда как включение услуги 5 с профилем my_white_list - так: VasExperts-Service-Profile="5:my_white_list"
Важное замечание: для услуг действует правило “что явно не подключается в ответе, то будет отключено”, то есть если услуга явно не помечена как enabled (или не задан профиль услуги), то услуга считается отключенной. Но для услуги 4 (black list, фильтрация запрещенного трафика) действует более строгое правило: эту услугу нужно явно отключать для пользователя, если требуется, то есть для отключения услуги 4 “black-list” в ответе Radius-сервера должен явно присутствовать атрибут VasExperts-Enable-Service="4:off"
.
По умолчанию подключение услуги 4 “black-list” регулируется глобальными настройками fastDPI. Услуга 4 обычно глобально включена, чтобы не нарушать федеральное законодательство.
Признак, связано ли с данным абонентом множество IP-адресов или только один. Данный атрибут может быть либо байтом, либо 32-битовым числом. Значение 1 говорит о том, что данному абоненту может быть сопоставлено несколько IP-адресов (корпоративный клиент), значение 0 – только один IP-адрес. Если в PDU отсуствует атрибут VasExperts-Multi-IP-User, считается, что абоненту сопоставлен только один IP-адрес.
Если абоненту проставлен признак VasExperts-Multi-IP-User=1
, то свойства (подключенные услуги и полисинг) применяются ко всем IP-адресам абонента, ключом выступает логин абонента. Следует учитывать, что СКАТ авторизует каждый IP-адрес абонента: например, если с абонентом связано 10 IP-адресов, то для каждого адреса будет послан запрос авторизации Access-Request. Ожидается, что ответ для каждого IP-адреса multi-IP-абонента будет содержать один и тот же набор подключенных услуг и одни и те же профили. Ответ на авторизацию каждого из 10 IP-адресов будет применен к логину абонента, то есть все IP-адреса данного логина получают один и тот же набор услуг и один и тот же полисинг.
Имя (логин) абонента.
Этот атрибут введен для некоторых биллинговых систем, которые физически не могут отдать в ответе Access-Accept/Reject атрибут User-Name
, но могут отдать любой VSA-атрибут.
User-Name
и VasExperts-UserName
, — то предпочтение отдается значению VasExperts-UserName
.
Признак блокировки абонента.
Для СКАТ ответ Access-Accept означает, что абонент не заблокирован, а для заблокированных абонентов должно возвращаться Access-Reject со специальными атрибутами абонента, задающими ограничения. Но некоторые реализации радиус-клиентов не имеют возможности вернуть в Access-Reject атрибуты абонента. Для таких реализаций предусмотрен атрибут VasExperts-Restrict-User:
В случае VasExperts-Restrict-User=1 СКАТ обрабатывает Access-Accept как Accept-Reject.
Признак разрешения/запрета замыкания локального трафика для абонента.
Данный атрибут относится к L2 BRAS. Если включен режим замыкания локального трафика (local interconnect) bras_terminate_local=1
, L2 BRAS замыкает любых двух локальных абонентов. С помощью данного атрибута можно запретить интерконнект: VasExperts-Enable-Interconnect=0
.
Пакет от одного локального абонента к другому будет дропнут, если хотя бы для одного из абонентов интерконнект запрещен.
По умолчанию VasExperts-Enable-Interconnect=1
и если в fastdpi.conf задано bras_terminate_local=1
, то интерконнект разрешен. Данным атрибутом можно запретить интерконнект для конкретного абонента, указав VasExperts-Enable-Interconnect=0
.
Помимо перечисленных выше VSA, СКАТ поддерживает в Access-Accept/Access-Reject следующие стандартные Radius-атрибуты. Все они являются опциональными.
Задает продолжительность действия авторизации абонента в секундах. По истечении данного времени СКАТ пошлет повторный запрос Access-Request авторизации.
По умолчанию длительность сессии задается в fastdpi.conf, параметр auth_expired_timeout
(в минутах).
Задает интервал времени обновления Accounting-статистики в секундах для данного абонента.
Interim interval по умолчанию задается в fastpcrf.conf, параметр radius_acct_interim_interval
.
Задает интервал неизменности данных аккаунтинга, по истечении которого accounting-сессия считается закрытой из-за неактивности абонента. Idle timeout по умолчанию задается fastpcrf.conf-параметром radius_acct_idle_timeout
.
Как определять неактивность абонента, задается fastpcrf.conf-параметром acct_check_idle_mode
. Описание параметров находится в разделе Настройки fastPCRF.
При наличии этого атрибута, он будет копироваться во все Accounting-Request PDU. СКАТ не анализирует значение этого атрибута.