RADIUS CoA [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:bras_bng:radius_integration:radius_auth_coa [2024/12/04 15:34] – ↷ Страница перемещена из dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa в dpi:bras_bng:radius_integration:radius_auth_coa elena.krasnobryzhdpi:bras_bng:radius_integration:radius_auth_coa [2024/12/05 15:02] (текущий) elena.krasnobryzh
Строка 1: Строка 1:
-====== Radius CoA ======+====== RADIUS CoA ======
 {{indexmenu_n>2}} {{indexmenu_n>2}}
  
-__[[https://tools.ietf.org/html/rfc5176|CoA]]__ — Change of Authorization — это оповещения от Radius-сервера о том, что свойства пользователя поменялись или что пользователь стал неавторизованным.+__[[https://tools.ietf.org/html/rfc5176|CoA]]__ — Change of Authorization — это оповещения от RADIUS-сервера о том, что свойства пользователя поменялись или что пользователь стал неавторизованным.
 CoA-Request нотификация говорит о том, что пользователь авторизован и, опционально, у него изменились некоторые параметры. Таким образом, CoA-Request может приходить в следующих случаях: CoA-Request нотификация говорит о том, что пользователь авторизован и, опционально, у него изменились некоторые параметры. Таким образом, CoA-Request может приходить в следующих случаях:
   * пользователь перешел из состояния "не авторизован" в состояние "авторизован" (например, пополнил счет) — см. далее;   * пользователь перешел из состояния "не авторизован" в состояние "авторизован" (например, пополнил счет) — см. далее;
Строка 8: Строка 8:
  
 <note important>Если пользователь не авторизован и изменяются его параметры, должен генерироваться  <note important>Если пользователь не авторизован и изменяются его параметры, должен генерироваться 
-[[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa#упрощенная_нотификация_coa-request_запрос_реавторизации|упрощенный CoA-Request]], который фактически инструктирует fastDPI произвести немедленную +[[dpi:bras_bng:radius_integration:radius_auth_coa#упрощенная_нотификация_coa-request_запрос_реавторизации|упрощенный CoA-Request]], который фактически инструктирует fastDPI произвести немедленную 
 реавторизацию абонента, то есть послать Access-Request.</note> реавторизацию абонента, то есть послать Access-Request.</note>
  
 Виды СоА: Виды СоА:
-  - Упрощенный CoA-Request — при получении CoA fastDPI понимает, что атрибуты пользователя изменились и требуется повторная авторизация. Получив такое оповещение, fastDPI шлет обычный запрос ''Access-Request'' на Radius-сервер, как описано [[dpi:bras_bng:radius_integration:radius_auth_server_integration|ранее]].+  - Упрощенный CoA-Request — при получении CoA fastDPI понимает, что атрибуты пользователя изменились и требуется повторная авторизация. Получив такое оповещение, fastDPI шлет обычный запрос ''Access-Request'' на RADIUS-сервер, как описано [[dpi:bras_bng:radius_integration:radius_auth_server_integration|ранее]].
   - Полный CoA-Request — оповещение ''CoA-Request'' может содержать полный список __изменившихся__ атрибутов пользователя.   - Полный CoA-Request — оповещение ''CoA-Request'' может содержать полный список __изменившихся__ атрибутов пользователя.
   - Disconnect-Request — сброс статуса авторизации пользователя.   - Disconnect-Request — сброс статуса авторизации пользователя.
  
 ====== Виды нотификации CoA-Request====== ====== Виды нотификации CoA-Request======
-<note important>Хотя оповещение ''CoA-Request'' может содержать полный список __изменившихся__ атрибутов пользователя, предлагается использовать упрощенный вариант этой нотификации. Такой вариант говорит fastDPI, что атрибуты пользователя изменились и требуется повторная авторизация. Получив такое оповещение, fastDPI шлет обычный запрос ''Access-Request'' на Radius-сервер, как описано [[dpi:bras_bng:radius_integration:radius_auth_server_integration|ранее]].</note>+<note important>Хотя оповещение ''CoA-Request'' может содержать полный список __изменившихся__ атрибутов пользователя, предлагается использовать упрощенный вариант этой нотификации. Такой вариант говорит fastDPI, что атрибуты пользователя изменились и требуется повторная авторизация. Получив такое оповещение, fastDPI шлет обычный запрос ''Access-Request'' на RADIUS-сервер, как описано [[dpi:bras_bng:radius_integration:radius_auth_server_integration|ранее]].</note>
  
 ===== Упрощенная нотификация CoA-Request (запрос реавторизации) ===== ===== Упрощенная нотификация CoA-Request (запрос реавторизации) =====
Строка 43: Строка 43:
  
 ==== Ответ на упрощенную нотификацию ==== ==== Ответ на упрощенную нотификацию ====
-Согласно RFC5176, на CoA-Request с Service-Type=8 (Authenticate-Only) должен быть ответ CoA-NAK с атрибутом Error-Cause=507 (Request Initiated). Это не всегда удобно, так как некоторые утилиты (например, radclient из FreeRadius)+Согласно RFC5176, на CoA-Request с Service-Type=8 (Authenticate-Only) должен быть ответ CoA-NAK с атрибутом Error-Cause=507 (Request Initiated). Это не всегда удобно, так как некоторые утилиты (например, radclient из FreeRADIUS)
 трактуют ответ CoA-NAK как ошибку.  трактуют ответ CoA-NAK как ошибку. 
 FastPCRF имеет настроечный параметр ''coa_reauth_ack'', который определяет, как отвечать на CoA-Request с Service-Type=8: FastPCRF имеет настроечный параметр ''coa_reauth_ack'', который определяет, как отвечать на CoA-Request с Service-Type=8:
Строка 49: Строка 49:
   * 1 — нестандартное поведение: отвечать CoA-ACK.   * 1 — нестандартное поведение: отвечать CoA-ACK.
  
-Этот параметр может быть задан в fastpcrf.conf как глобально, для всех Radius-серверов, так и для каждого Radius-сервера:+Этот параметр может быть задан в fastpcrf.conf как глобально, для всех RADIUS-серверов, так и для каждого RADIUS-сервера:
 <code bash> <code bash>
   # глобальная настройка   # глобальная настройка
Строка 94: Строка 94:
  
   * **0x0001** — ''disable acct stop'', не посылать немедленно ''acct stop'' для ''disconnected'' DHCP-абонента. Позволяет учитывать трафик после PoD. По умолчанию acct-сессия закрывается по PoD, что может привести к неучтенному трафику для DHCP-абонентов от момента PoD до DHCP-реавторизации.    * **0x0001** — ''disable acct stop'', не посылать немедленно ''acct stop'' для ''disconnected'' DHCP-абонента. Позволяет учитывать трафик после PoD. По умолчанию acct-сессия закрывается по PoD, что может привести к неучтенному трафику для DHCP-абонентов от момента PoD до DHCP-реавторизации. 
-  * **0x0002** — ''disable L3 auth'', не выполнять L3-авторизации для ''disconnected'' DHCP-абонента. СКАТ может авторизовать L2-абонента по его IP-адресу при поддержке Radius.+  * **0x0002** — ''disable L3 auth'', не выполнять L3-авторизации для ''disconnected'' DHCP-абонента. СКАТ может авторизовать L2-абонента по его IP-адресу при поддержке RADIUS.
   * **0x0004** — ''block traffic'' — блокируем весь трафик от ''disconnected'' абонента (то есть на пути ''subs -> inet''). Попытка сократить время реавторизации: многие CPE при пропадании соединения в Интернет досрочно шлют DHCP. Но цена этого флага — разрыв всех существующих сессий абонента.     * **0x0004** — ''block traffic'' — блокируем весь трафик от ''disconnected'' абонента (то есть на пути ''subs -> inet''). Попытка сократить время реавторизации: многие CPE при пропадании соединения в Интернет досрочно шлют DHCP. Но цена этого флага — разрыв всех существующих сессий абонента.  
   * **0x0008** — на DHCP Request -> отвечаем NAK. Позволяет сократить время реавторизации путем прерывания аренды IP-адреса.   * **0x0008** — на DHCP Request -> отвечаем NAK. Позволяет сократить время реавторизации путем прерывания аренды IP-адреса.
Строка 187: Строка 187:
  
 ====== Отдельные CoA-клиенты ====== ====== Отдельные CoA-клиенты ======
-В некоторых конфигурациях CoA-клиент, посылающий CoA-запросы Disconnect-Request и CoA-Request, может быть отдельной сущностью, не являющейся Radius-сервером. Например, это может быть некая утилита, умеющая формировать CoA-запросы и применяющаяся в скриптах. FastPCRF поддерживает такие "обособленные" CoA-клиенты. В конфигурационном файле fastpcrf.conf каждый такой CoA-клиент задается отдельным параметром "coa_client", имеющим формат, аналогичный параметру ''radius_server'':+В некоторых конфигурациях CoA-клиент, посылающий CoA-запросы Disconnect-Request и CoA-Request, может быть отдельной сущностью, не являющейся RADIUS-сервером. Например, это может быть некая утилита, умеющая формировать CoA-запросы и применяющаяся в скриптах. FastPCRF поддерживает такие "обособленные" CoA-клиенты. В конфигурационном файле fastpcrf.conf каждый такой CoA-клиент задается отдельным параметром "coa_client", имеющим формат, аналогичный параметру ''radius_server'':
  
 <code bash>coa_client=secret@ip%dev:port{;param=value}*</code> <code bash>coa_client=secret@ip%dev:port{;param=value}*</code>
-  * ''secret'' — секрет Radius;+  * ''secret'' — секрет RADIUS;
   * ''ip'' — IP-адрес CoA-клиента;   * ''ip'' — IP-адрес CoA-клиента;
   * ''dev'' (необязательный) — имя интерфейса, на котором слушать входящие запросы; если не задан — интерфейс выбирается операционной системой;   * ''dev'' (необязательный) — имя интерфейса, на котором слушать входящие запросы; если не задан — интерфейс выбирается операционной системой;
Строка 198: Строка 198:
 Каждый CoA-клиент описывается в conf-файле отдельным параметром ''coa_client'' Каждый CoA-клиент описывается в conf-файле отдельным параметром ''coa_client''
 Всего может быть до 16 обособленных CoA-клиентов. Всего может быть до 16 обособленных CoA-клиентов.
-FastPCRF принимает CoA-запросы только от зарегистрированных (описанных в conf-файле) Radius-серверов и CoA-клиентов. Если Radius-сервер поддерживает CoA, нет необходимости описывать его ещё и параметром ''coa_client'', — достаточно для этого Radius-сервера указать опцию ''coa_port'' в параметре ''radius_server''.+FastPCRF принимает CoA-запросы только от зарегистрированных (описанных в conf-файле) RADIUS-серверов и CoA-клиентов. Если RADIUS-сервер поддерживает CoA, нет необходимости описывать его ещё и параметром ''coa_client'', — достаточно для этого RADIUS-сервера указать опцию ''coa_port'' в параметре ''radius_server''.
  
 ====== Запрос accounting-сессии через CoA ====== ====== Запрос accounting-сессии через CoA ======