1 DHCP Radius Proxy

Общее описание режима DHCP Radius Proxy

Режим DHCP Radius Proxy предназначен для построения сервиса BRAS без выделенных DHCP-серверов. Вместо DHCP-серверов используется Radius-сервер, а FastDPI в связке с FastPCRF выступает в роли DHCP-сервера.

Преимущества DHCP Radius Proxy

Более простое управление услугами Абонентов, так как вся информация о них хранится в базе данных Radius-сервера, которая является единственным источником информации об Абонентах.

Меньшее количество компонентов решения по авторизации Абонентов и как следствиее лучшая надежность. Отсутствует необходимость в отдельных DHCP-серверах.

Более простая диагностика.

Особенности DHCP Radius Proxy

Со стороны FastDPI отсутствует необходимость в отдельном запросе авторизации клиента, так как ответ на Access-Request содержит как DHCP-параметры, так и FastDPI-профили пользователя и набор подключенных ему FastDPI-услуг. Это поведение можно изменить через параметр bras_dhcp_auth_mix. Различить запрос авторизации в режиме «DHCP Radius proxy» можно по значению атрибута VasExperts-Service-Type.

CoA-оповещения в режиме DHCP Radius Proxy поддерживаются. Следует учитывать, что CoA-оповещение никак не связано с изменением DHCP-параметров, - оно сигнализирует только об изменении параметров авторизациипользователя, DHCP-сессия остается той же самой.

То же самое относится и к оповещению Disconnect-Request: это оповещение говорит только о том, что пользователь стал неавторизованным (кончились деньги, например), его IP-адрес и остальные DHCP-атрибуты остаются без изменений. Disconnect-Request не приводит к пересозданию DHCP-сессии.

Алгоритм взаимодействия

FastDPI принимает DHCP-запросы от оборудования пользователей и направляет в сторону FastPCRF;

FastPCRF преобразует DHCP-запрос в Radius Access-Request и направляет его Radius-серверу;

По событию приема ответа Access-Accept/Access-Reject АastPCRF преобразует его во внутренний формат и отсылает на FastDPI. Radius-ответ должен содержать как атрибуты, необходимые для DHCP, так и профили пользователя, необходимые FastDPI;

FastDPI формирует DHCP-ответ и отправляет его пользователю, а также запоминает профили пользователя и набор подключенных услуг.

FastDPI, получив запрос DHCP-Discover от пользовательского оборудования, направляет его «как есть» в FastPCRF для обработки. В случае успешного выделения IP-адреса FastPCRF отвечает DHCP-Offer, попутно оповещая Radius-сервер о старте сессии Accounting Start. FastDPI сохраняет параметры всех DHCP-Offer у себя во внутренней базе данных UDR. В течение времени bras_dhcp_request_delay все дальнейшие запросы DHCP-Request от пользовательского оборудования на подтверждение или продление лизинга IP-адреса FastDPI обрабатывает сам, возвращая в DHCP-Ack сохраненные параметры из DHCP-Offer.

Тайм-аут (в секундах) ответа от FastPCRF на DHCP-Discover задается в fastdpi.conf параметром bras_dhcp_timeout, значение по умолчанию - 7 секунд.

По запросам DHCP-Release/DHCP-Decline FastDPI отмечает в UDR, что лизинг данного IP-адреса закончился и через FastPCRF направляет оповещение Radius-серверу о завершении сессии в виде Accounting Stop. После завершения сессии все пакеты от данного абонентского IP-адреса дропаются.

FastDPI так же следит за длительностью сессии заданой в DHCP-Offer. Если сессия устарела, а Абонент не продлил лизинг, не прислав DHCP-Request, то сессия считается просроченной и все пакеты от данного пользовательского IP-адреса дропаются.

Основную нагрузку на Radius-сервер создают запросы DHCP-Discover, отправляемые через FastPCRF.

Ограничение длительности DHCP сессии Абонента

Длительность DHCP-сессии Абонента может быть фактически неограниченной, если оборудование пользователя исправно шлет запросы DHCP-Request на продление лизинга IP-адреса. Это может быть проблемой для Оператора, поэтому FastDPI имеет конфигурационный параметр bras_max_session_duration, задающий максимальную длительность сессии Абонента в секундах. По умолчанию значение этого параметра равно 604800 секунд (1 неделя). При превышении максимальной длительности сессии FastDPI на запрос DHCP-Request продления лизинга отвечает отказом DHCP-Nak, тем самым вынуждая оборудование Абонента начать новую сессию, послав DHCP-Discover.

Включение DHCP Radius Proxy

Режим DHCP Radius Proxy включается заданием в fastdpi.conf параметра bras_dhcp_mode в значение 2:

bras_dhcp_mode=2

Также необходимо указать виртуальный IP-адрес FastDPI, - этот адрес будет указываться как адрес DHCP-сервера в DHCP-пакетах, - и виртуальный MAC-адрес, пример:

bras_arp_ip – задает IPv4-адрес BRAS’а. Этот IP-адрес должен быть уникальным, никакому пользователю он не должен быть сопоставлен. Пример:

bras_arp_ip=192.168.1.255
bras_arp_mac=a0:00:b1:01:4e:cc

Взаимодействие FastPCRF с Radius в варианте DHCP Radius Proxy

Radius-запрос Access-Request имеет следующие атрибуты:

User-Name - MAC-адрес из DHCP-запроса в формате XX:XX:XX:XX:XX:XX. Для Q-in-Q-сетей в качестве User-Name возможно использовать QinQ-теги, см. ниже.

User-Password - значение fastpcrf.conf-параметра dhcp_user_psw. Этот параметр задает пароль именно для DHCP Radius proxy режима. Если параметр не задан - используется параметр user_password Radius-сервера

NAS-IP-Address - если DHCP-запрос содержит IP-адрес Relay-агента, то в данный атрибут подставляется этот адрес. Если Relay-агента нет - атрибут содержит виртуальный IP-адрес СКАТ из fastdpi.conf-параметра bras_arp_ip. По значению данного атрибута можно определить, из какой подсети пришел Radius-запрос (от какого Relay-агента)

NAS-Port-Type - содержит значение fastpcrf.conf-параметра radius_attr_nas_port_type для данного Radius-сервера.

NAS-Port - только для VLAN-сетей (с одним VLAN): номер VLAN

NAS-Port-Id: только для QinQ-сетей (с двойным VLAN): содержит VLAN-ы в строковом виде через '/', например: «123/67»

Framed-IP-Address - этот атрибут содержит IP-адрес абонента, присутствует только если IP-адрес абонента известен

VSA (Vendor-Specific Attributes) для VendorId=43823 (VASExperts):

[6] VasExperts-Service-Type - содержит значение 1. По значению данного атрибута можно определить, какой Access-Request пришел: 0 - запрос авторизации, 1 - DHCP

[37] VasExperts-DHCP-Request - тип DHCP-запроса: 0 - DHCP-Discover, 1 - DHCP-Inform, 2 - DHCP-Request

[38] VasExperts-DHCP-RelayRemoteId - значение cубопции Relay Remote Id опции 82 (Relay Agent Info) DHCP-запроса (binary)

[39] VasExperts-DHCP-RelayCircuitId - значение cубопции Relay Circuit Id опции 82 (Relay Agent Info) DHCP-запроса (binary)

[36] VasExperts-DHCP-Client-IP - желаемый IP-адрес пользователя. Берется из опции 50 DHCP-Discover (Requested Client IP address), может использоваться только как подсказка (hint) при обработке. Для DHCP-Inform это тот же IP-адрес, что и в атрибуте Framed-IP-Address

[32] VasExperts-DHCP-Hostname - значение опции 12 (hostname) DHCP-запроса (binary)

[33] VasExperts-DHCP-ClientId - значение опции 61 (client id) DHCP-запроса (binary)

[34] VasExperts-DHCP-ClassId - значение опции 60 (vendor class id) DHCP-запроса (binary)

[35] VasExperts-DHCP-RelayInfo- значение опции 82 (relay agent info) DHCP-запроса (binary)

Атрибуты, соответствующие значениям опций DHCP, добавляются в Access-Request только если соответствующая опция есть в DHCP-запросе.

Ответ на Radius-запрос Access-Request в режиме DHCP Radius proxy должен содержать как выдачу IP-адреса абоненту, так и параметры авторизации абонента в fastDPI - профили полисинга и подключенные услуги СКАТ (тонкости совместимости режимов см. DHCP Proxy и L3-авторизация). Следует учитывать, что даже в случае, когда абонент заблокирован (например, по причине нехватки средств на счете), ему нужно выдать валидный IP-адрес. Фактически, мы должны получить ответы на два вопроса:

для DHCP: IP-адрес пользователя и настройки сети;

авторизация: авторизован или нет пользователь, его профиль полисинга и подключенные услуги.

С точки зрения DHCP, если любой ответ - Access-Accept или Access-Reject - содержит атрибут Framed-IP-Address, то такой ответ интерпретируется как успешное выделение IP-адреса пользователю. Помимо IP-адреса, поддерживается задание следующих DHCP-опций:

Маска подсети (opt1) - берется из Radius-атрибута [9] Framed-IP-Netmask.

Размер MTU (opt26) - берется из Radius-атрибута [12] Framed-MTU

Длительность лизинга IP-адреса (opt51) - берется из Radius-атрибута [27] Session-Timeout

Адрес шлюза по умолчанию (opt3) - берется из VSA-атрибута VasExperts-DHCP-Gateway (vendor-id = 43823, attr-id=42).

Статическая таблица маршрутизации (opt121) - берется из Radius-атрибута [22] Framed-Route. Radius-ответ может содержать до 16 атрибутов Framed-Route, формат атрибута - 'CIDR-netmask gateway-IP <прочие данные>', например, '5.128.0.0/16 192.168.10.1' - шлюзом для сети 5.128.0.0/16 является 192.168.10.1 ('прочие данные' игнорируются)

DNS-сервера (opt6) - берется из VSA-атрибутов VasExperts-DHCP-DNS (vendor-id = 43823, attr-id=41). Может быть задано несколько (не более 16) атрибутов VasExperts-DHCP-DNS

Прочие опции DHCP могут быть заданы через специальные VSA-атрибуты.

Общие для всех пользователей параметры DHCP могут быть заданы в конфигурационном файле fastpcrf.conf.

Принцип конвертации атрибутов Radius в опции DHCP-ответа прост: если Radius-ответ не содержит соответствующего атрибута, то берется его значение из fastpcrf.conf, если же и в fastpcrf.conf не задан соответствующий параметр - DHCP-опция в ответ не добавляется.

Если Radius-ответ содержит атрибут Framed-IP-Address, то есть пользователю выдан IP-адрес, то далее анализируется тип ответа - разрешение доступа Access-Accept или запрет Access-Reject - и из ответа извлекаются атрибуты, описывающие профиль полисинга абонента и список подключенных услуг, как описано в разделе BRAS-L3-авторизация.

Если Radius-ответ не содержит атрибут Framed-IP-Address, то считается, что аренда IP-адреса для пользователя невозможна. Оборудованию пользователя не посылается никакого ответа, что с точки зрения DHCP равносильно отказу в выдаче IP-адреса. Параметры авторизации полностью игнорируются.

Подробнее о взаимодействии FastPCRF с Radius можно ознакомится в соответствующе статьях справочника, Параметры запросов FastPCRF к Radius-серверам и Параметры ответов от Radius-серверов к FastPCRF.