| Предыдущая версия справа и слеваПредыдущая версия | |
| dpi:bras_bng:bras_pppoe:pppoe_pppol2tp_parameters:bras_pppoe_radius [2025/09/29 14:50] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | dpi:bras_bng:bras_pppoe:pppoe_pppol2tp_parameters:bras_pppoe_radius [2025/09/29 14:50] (текущий) – ↷ Страница перемещена из dpi:bras_bng:bras_pppoe:bras_pppoe_radius в dpi:bras_bng:bras_pppoe:pppoe_pppol2tp_parameters:bras_pppoe_radius elena.krasnobryzh |
|---|
| | ====== PPPoE Radius Access-Request ====== |
| | {{indexmenu_n>2}} |
| | |
| | Авторизация PPPoE-сессий производится на Radius-сервере через сервер fastPCRF, |
| | см. [[dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup|настройка fastPCRF]]. FastPCRF входит в СКАТ DPI и является по сути прокси между |
| | fastDPI и сторонним Radius-сервером. |
| | |
| | Запросы Access-Request и ответы Access-Accept и Access-Reject отличаются от тех, что применяются |
| | в [[dpi:bras_bng:general_setup#настройка_bras_l3_в_fastdpi|L3-авторизации]]. |
| | |
| | =====1. Формат Access-Request===== |
| | Запрос Access-Request, формируемый fastPCRF, содержит следующие Radius-атрибуты: |
| | * ''User-Name'' - для PAP/CHAP/MS-CHAPv2: логин абонента. Для авторизации по MAC-адресу этот атрибут содержит MAC-адрес абонента в виде строки, аналогично атрибуту Calling-Station-Id |
| | * ''Password'' - пароль абонента (только для PAP-авторизации) |
| | * ''CHAP-Challenge'' и ''CHAPPassword''- для CHAP-авторизации |
| | * ''MS_CHAP_Challenge'' и ''MS_CHAP2_Response'' (Microsoft VSA) - для MS-CHAPv2 - авторизации |
| | * ''Calling-Station-Id'' - MAC-адрес абонента в виде строки, например, '01:02:e4:55:da:f5'. Используются маленькие буквы для hex-цифр A-F |
| | * ''Acct-Session-Id'' - идентификатор accounting-сессии. Этот атрибут посылается всегда, даже если вы не используете accounting СКАТа. |
| | * ''Service-Type'' = 2 (Framed) |
| | * ''Framed-Protocol'' = 1 (PPP) |
| | |
| | [СКАТ 7.6+] Если Access-Request инициирован |
| | [[dpi:bras_bng:radius_integration:radius_auth_coa|CoA-запросом реавторизации]], |
| | то также добавляется атрибут ''Framed-IP-Address'', содержащий выданный данному абоненту IP-адрес. |
| | |
| | Атрибуты, идентифицирующие NAS (то есть СКАТ): |
| | |
| | ''NAS-IP-Address'', ''NAS-Identifier'' - IP-адрес или идентификатор fastdpi-сервера, задаваемый в параметре [[dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup|fdpi_server]]. Отметим, что по умолчанию в Access-Request добавляется лишь один из атрибутов - NAS-IP-Address или NAS-Identifier, в зависимости от настроек ''fdpi_server'', приоритетным является ''attr_nas_ip''. Параметр ''radius_add_all_nas_ids'' позволяет добавлять в запрос оба этих атрибута: |
| | <code> |
| | # Разрешает добавлять атрибуты NAS-IP-Address И NAS-Identifier |
| | # По RFC, в запросе может присуствовать либо NAS-IP-Address, либо NAS-Identifier. |
| | # Если заданы значения обеих опций, то приоритет отдается опции NAS-IP-Address. |
| | # Значение данного параметра 1 разрешает добавлять оба атрибута в запрос. |
| | #radius_add_all_nas_ids=0 |
| | </code> |
| | |
| | ''VASExperts-Service-Type'' - Vendor-Specific атрибут, содержит число (int32), определяющее тип PPPoE-авторизации: |
| | * VASExperts-Service-Type = 2 - для PAP |
| | * VASExperts-Service-Type = 3 - для CHAP |
| | * VASExperts-Service-Type = 4 - для MS-CHAPv2 |
| | * VASExperts-Service-Type = 5 - для авторизации по MAC-адресу |
| | |
| | ''Message-Authenticator'' - [RFC2869] формируется, если в **fastpcrf.conf** параметр radius_msg_auth_attr=1 |
| | |
| | Если входящий пакет абонента содержит VLAN (то есть если у вас PPPoE-сеть с L2-тегами VLAN): |
| | * ''NAS-Port-Type'' - настраивается в **fastpcrf.conf**, параметр radius_attr_nas_port_type, значение по умолчанию 5 (Virtual) |
| | * ''NAS-Port'' - значение VLAN |
| | |
| | Если входящий пакет абонента содержит QinQ (то есть если у вас PPPoE-сеть с L2-тегами QinQ): |
| | * ''NAS-Port-Type'' - настраивается в **fastpcrf.conf**, параметр radius_attr_nas_port_type, значение по умолчанию 5 (Virtual) |
| | * ''NAS-Port-Id'' - значение VLAN в виде строки формата "outerVLAN/innerVLAN", например, "10/102" |
| | |
| | |
| | ==== Поддержка PPPoE-опций circuit-id и remote-id ==== |
| | |
| | СКАТ начиная с версии 8.2 поддерживает PPPoE-опции circit-id и remote-id согласно [[https://tools.ietf.org/html/rfc4679|RFC 4679]]. |
| | Значения этих опций передаются в Access-Request в VSA-атрибутах ''Agent-Circuit-Id'' и ''Agent-Remote-Id'' соответственно, vendor-id=3561. |
| | |
| | ==== Поддержка Huawei vendor-specific tag 1 ==== |
| | **СКАТ 12.4** — добавлена поддержка Huawei vendor-specific tag 1. |
| | |
| | Значение интерпретируется как ''ADSL-Forum-Circuit-Id''. |
| | |
| | Если PPPoE-пакет содержит ''Circuit-Id'' и ''Huawei tag 1'', то предпочтение отдается ''Circuit-Id'', ''Huawei tag 1'' игнорируется. |
| | |
| | =====2. Формат Access-Accept===== |
| | Ответ Access-Accept означает, что абонент авторизован, баланс достаточен, и ему выдан IP-адрес. Поддерживается dual stack: в одном ответе можно указать как IPv4-адрес и свойства абонента, так и IPv6-адрес, включая PD-префикс. |
| | |
| | <note important>В СКАТ 8.4 реализована поддержка атрибута ''Framed-Pool'': в ответе вместо ''Framed-IP-Address'' может быть указано имя пула, из которого следует выделить IP-адрес абоненту, подробнее см. [[dpi:bras_bng:ip_pool]]. ''Framed-IP-Address'' в нижеследующем описании следует читать так, что он может быть получен из пула, а не быть явно указан в ответе Радиуса</note> |
| | |
| | Атрибуты: |
| | * ''Framed-IP-Address'' - обязательный атрибут: IP-адрес, выданный абоненту. |
| | * ''Idle-Timeout'' - необязательный атрибут: тайм-аут бездействия, в секундах. PPPoE-сессия будет закрыта, если в течение этого времени не было пакетов от/к абоненту. Если этот атрибут не задан, используется значение параметра [[dpi:bras_bng:bras_pppoe:bras_pppoe_conf|bras_ppp_idle_timeout]] из fastdpi.conf |
| | * ''Reply-Message'' - необязательный атрибут: сообщение, которое будет передано абоненту в PPP Auth-Ack ответе |
| | * ''Session-Timeout'' - необязательный атрибут: max время жизни сессии, секунд. |
| | * ''Acct-Interim-Interval'' - необязательный атрибут: период отправки промежуточных данных accounting'а, секунд (не может быть меньше 60). 0 - не отправлять промежуточный accounting.\\ :!: Явное задание ''Acct-Interim-Interval = 0'' в ответе RADIUS отключает отправку Interim-Update. |
| | * ''Class'' - необязательный атрибут: этот атрибут, если задан, будет отправляться "as is" во всех accounting-пакетах |
| | * ''MS-CHAP2-Success'' - VSA-атрибут Microsoft [RFC2548], обязателен для MS-CHAPv2 авторизации |
| | |
| | Поддерживаются следующие VSA-атрибуты Microsoft (vendor-id=311, RFC2548), все они не являются обязательными: |
| | * ''MS-Primary-DNS-Server'' - IP-адрес primary DNS сервера |
| | * ''MS-Secondary-DNS-Server'' - IP-адрес secondary DNS сервера |
| | * ''MS-Primary-NBNS-Server'' - IP-адрес primary NetBios сервера |
| | * ''MS-Secondary-NBNS-Server'' - IP-адрес secondary NetBios сервера |
| | |
| | VSA-атрибуты VASExperts (vendor-id=43823), не являются обязательными: |
| | |
| | [41] ''VASExperts-DHCP-DNS'' - IP-адрес DNS сервера. Может быть не более двух атрибутов VASExperts-DHCP-DNS: для |
| | основного (primary) и резервного (secondary) сервера. |
| | |
| | Адреса DNS-серверов могут быть заданы через Microsoft VSA-атрибуты или VASExperts VSA-атрибут. |
| | |
| | **Поддержка IPv6**: в одном ответе ''Access-Accept'' должны возвращаться как IPv4, так и IPv6-атрибуты. Поддерживаемые IPv6-атрибуты: |
| | - ''Framed-IPv6-Prefix'' - IPv6-префикс, выдаваемый абоненту. Длина префикса должна быть равна [[dpi:dpi_components:platform:dpi_ipv6|ipv6_subnetwork]] |
| | - ''Framed-IPv6-Address'' - IPv6-адрес абонента. СКАТ преобразует этот адрес в префикс, используя параметр [[dpi:dpi_components:platform:dpi_ipv6|ipv6_subnetwork]] |
| | - ''Delegated-IPv6-Prefix'' - PD-префикс, выдаваемый абоненту. Длина префикса должна быть равна [[dpi:dpi_components:platform:dpi_ipv6|ipv6_subnetwork]] |
| | - ''DNS-Server-IPv6-Address'' - IPv6-адрес DNS-сервера. Этих атрибутов может быть несколько - по одному для каждого DNS-сервера. |
| | - [[dpi:bras_bng:ip_pool:ipv6|Framed-IPv6-Pool]] |
| | - [[dpi:bras_bng:bras_l2_options:framed_route|Framed-IPv6-Route]]. |
| | - [[dpi:bras_bng:general_setup#настройка_ipv6|VSA-атрибуты для DHCPv6-опций]] |
| | |
| | Кроме вышеперечисленных атрибутов, Access-Accept должен содержать профиль полисинга абонента и список |
| | подключенных услуг, см. [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response|атрибуты свойств абонента]] |
| | |
| | ==== Время жизни сессии ==== |
| | Если атрибута Session-Timeout в ответе нет, то PPPoE-сессия считается бессрочной и завершается либо по |
| | явному дисконнекту со стороны абонента, либо по тайм-ауту бездействия. |
| | |
| | Если Session-Timeout указан, то СКАТ разорвет PPPoE-сессию по прошествии этого времени. |
| | Разрыв PPPoE-сессии четко описан в спецификациях PPP/PPPoE и заключается в отправке специальных term-сообщений |
| | абоненту; абонент, получив term, может создать новую PPPoE-сессию. |
| | |
| | =====3. Формат Access-Reject===== |
| | Возможно два типа "неавторизованности" абонента: |
| | * абонент наш, но по какой-то причине (нулевой баланс, заблокирован и пр.) ему не может быть выдан полный спектр услуг |
| | * абонент нам неизвестен - в этом случае абонента в сеть пускать нельзя |
| | |
| | В первом случае (наш абонент) абоненту нужно выдать IP-адрес (то есть PPPoE-сессия будет установлена, авторизация успешна), |
| | но следует задать урезанные настройки - специальный профиль полисинга, услугу 5 (белый список + captive portal), - |
| | чтобы абонент смог зайти в сеть и, например, пополнить свой баланс. |
| | То есть Access-Reject должен содержать атрибут Framed-IP-Address для таких абонентов. |
| | |
| | Во втором случае (левый абонент, ошибка в параметрах авторизации) пакет Access-Reject не должен |
| | содержать атрибута Framed-IP-Address, что трактуется как запрет входа в сеть: PPPoE-сессия не устанавливается, |
| | авторизация не проходит. |
| | |
| | Access-Reject содержит следующие атрибуты: |
| | * ''Framed-IP-Address'' - IP-адрес, выданный абоненту. Если абонент "левый", ему не надо выдавать IP-адрес, то есть атрибута Framed-IP-Address в Access-Reject быть не должно. |
| | * ''Idle-Timeout'' - тайм-аут бездействия, в секундах. PPPoE-сессия будет закрыта, если в течение этого времени не было пакетов от/к абоненту. Если этот атрибут не задан, сессия считается бессрочной (пока явно не будет закрыта абонентом) |
| | * ''Reply-Message'' - необязательный атрибут: сообщение, которое будет передано абоненту в PPP Auth-Ack/Auth-Nak ответе |
| | * ''Session-Timeout'' - необязательный атрибут: max время жизни сессии, секунд. |
| | * ''Acct-Interim-Interval'' - необязательный атрибут: период отправки промежуточных данных accounting'а, секунд (не может быть меньше 60). 0 - не отправлять промежуточный accounting.\\ :!: Явное задание ''Acct-Interim-Interval = 0'' в ответе RADIUS отключает отправку Interim-Update. |
| | * ''Class'' - необязательный атрибут: этот атрибут, если задан, будет отправляться "as is" во всех accounting-пакетах |
| | |
| | Для типа авторизации MS-CHAPv2 поддерживается также атрибут ''MS-CHAP-Error'' [RFC2548]. |
| | |
| | Поддерживаются следующие VSA-атрибуты Microsoft (vendor-id=311, RFC2548), все они не являются обязательными: |
| | * ''MS-Primary-DNS-Server'' - IP-адрес primary DNS сервера |
| | * ''MS-Secondary-DNS-Server'' - IP-адрес secondary DNS сервера |
| | * ''MS-Primary-NBNS-Server'' - IP-адрес primary NetBios сервера |
| | * ''MS-Secondary-NBNS-Server'' - IP-адрес secondary NetBios сервера |
| | |
| | VSA-атрибуты VASExperts (vendor-id=43823), не являются обязательными: |
| | |
| | [41] ''VASExperts-DHCP-DNS'' - IP-адрес DNS сервера. Может быть не более двух атрибутов VASExperts-DHCP-DNS: для |
| | основного (primary) и резервного (secondary) сервера. |
| | |
| | Адреса DNS-серверов могут быть заданы через Microsoft VSA-атрибуты или VASExperts VSA-атрибут. |
| | |
| | Если абонент авторизован, то есть ему выдан IP-адрес, то в дополнение к вышеперечисленным атрибутам |
| | **обязательно** следует задать в специальных VASExperts VSA-атрибутах профиль полисинга ''VasExperts-Policing-Profile'' |
| | и профиль услуги 5 (белый список + Captive Portal) ''VasExperts-Service-Profile'', |
| | подробнее см. [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response:radius_auth_access_reject|L3 BRAS]]. |
| | |
| | ==== Зачем для "наших" абонентов нужен Access-Reject?.. ==== |
| | Профиль полисинга и услуги, заданные в Access-Reject, применяются временно. |
| | Если свойства абонента, пришедшие в атрибутах Access-Accept, запоминаются во внутренней базе данных (UDR) |
| | fastDPI и применяются даже после перезагрузки, то свойства из Access-Reject применяются без сохранения в UDR. |
| | То есть при перезагрузке fastDPI восстановятся те свойства абонента, которые пришли последний |
| | раз в Access-Accept, и fastDPI будет их применять до тех пор, пока не получит новые в ответ на Access-Request. |
| | |
| | |
| |