====== Поддержка IPv4-пулов ======
{{indexmenu_n>10}}
Имя пула IP-адресов задается атрибутом ''Framed-Pool'' в ''Access-Accept''.
Атрибут ''Framed-IP-Address'' является более приоритетным, чем ''Framed-Pool'': при наличии в ответе обоих атрибутов PCRF игнорирует ''Framed-Pool''
Обнаружив в ответе Радиуса атрибут ''Framed-Pool'', PCRF должен:
* обратиться к DHCP-серверу за адресом абонента, передав DHCP-серверу имя пула в одной из DHCP-опций;
* получив ответ DHCP-сервера, сформировать общий ответ авторизации, объединив опции DHCP-ответа и атрибуты ''Access-Accept''
===== Конфигурирование fastPCRF =====
В ''fastpcrf.conf'' должен быть задан как минимум один DHCP-сервер, обслуживающий пулы. Адрес сервера задается в параметре ''dhcp_server'' такого вида:
# - IP-адрес DHCP-сервера
# - с какого локального интерфейса общаться с DHCP-сервером
dhcp_server=%
Каждый DHCP-сервер задается в ''fastpcrf.conf'' отдельным параметром. Например, два сервера могут быть заданы так:
# Основной сервер - на интерфейсе eth1
dhcp_server=192.168.10.10%eth1
# Резервный сервер - на интерфейсе em2
dhcp_server=10.45.78.03%em2
Поддерживается задание до 16 DHCP-серверов. Никакого значения по умолчанию у данного параметра нет - для поддержки ''Framed-Pool'' обязательно нужно в ''fastpcrf.conf'' прописать как минимум один DHCP-сервер.
Помимо DHCP-серверов, следует также указать, в какой опции DHCP-запроса посылать имя пула.
Это делается с помощью параметра ''dhcp_poolname_opt''. Поддерживаются следующие DHCP-опции:
- ''dhcp_poolname_opt=1'' - opt77 User-Class [[https://tools.ietf.org/html/rfc3004|RFC 3004]]. Если опция уже есть, её значение заменяется на имя пула
- ''dhcp_poolname_opt=2'' - opt125 Vendor-Opts (vendorId=43823, subopt=1) [[https://tools.ietf.org/html/rfc3925|RFC 3925]]. Опция всегда добавляется
- ''dhcp_poolname_opt=3'' - opt60 Class-Id [[https://tools.ietf.org/html/rfc2132|RFC 2132]]. Если опция уже есть, её значение заменяется на имя пула
Если ''dhcp_poolname_opt=0'' (default) - имя пула будет добавляться в opt125.
В СКАТ 10.2+ изменен алгоритм добавления opt125: если такая опция уже есть в DHCP-запросе, то СКАТ **добавляет** данные для вендора VAS Experts в уже существующую opt125. Такое изменение связано с тем, что не все реализации DHCP-серверов понимают множественное задание одной и той же опции.\\ \\
В СКАТ 12.4+ opt125 добавлется с названием пула первой опцией. Причина: KEA при определении класса клиента (opt125) разбирает только первого вендора.
FastPCRF обращается к DHCP-серверам под видом релея (с IP-адресом локального интерфейса связи с сервером), чтобы DHCP-трафик был уникастным. Все DHCP-запросы всегда шлются на все сервера, указанне в параметрах ''dhcp_server''. Если сконфигурировано несколько DHCP-серверов, PCRF принимает во внимание первый по времени ответ, ответы от остальных DHCP-серверов игнорируются.
===== Примеры конфигурирования ISC DHCP-сервера =====
DHCP-сервер конфигурируется по-разному в зависимости от того, в какой DHCP-опции будет приходить имя пула (параметр ''dhcp_poolname_opt'').
Ниже даны не полные конфигурационные файлы ''/etc/dhcp/dhcpd.conf'' [[https://www.isc.org/dhcp/|ISC DHCP]], а только выжимки, относящиеся к конфигурированию пула
- [[dpi:bras_bng:ip_pool:ipv4:isc_cfg_opt125|пример для опции 125]] (''dhcp_poolname_opt=2'')
- [[dpi:bras_bng:ip_pool:ipv4:isc_cfg_opt77|пример для опции 77]] ''User-Class'' (''dhcp_poolname_opt=2'')
- [[dpi:bras_bng:ip_pool:ipv4:isc_cfg_opt60|пример для опции 60]] ''Class-Id'' (''dhcp_poolname_opt=3'')
===== Формирование DHCP-запроса в режиме DHCP Radius Proxy =====
В режиме [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_dhcp:bras_l2_vlan_dhcp_proxy|DHCP Radius Proxy]] на DHCP-сервер передается оригинальный DHCP-запрос абонента с добавлением имени пула в соответствии с параметром ''dhcp_poolname_opt''.
Следует быть осторожным, указывая имя пула в опциях opt77 и opt60: если такая опция уже есть в DHCP-запросе абонента, её значение изменяется на имя пула. Если оригинальное значение этих опции важно при конфигурировании DHCP-сервера, следует для имени пула использовать опцию 125, которая всегда добавляется
===== Формирование DHCP-запроса для PPPoE-клиентов =====
Для [[dpi:bras_bng:bras_pppoe|PPPoE]]-абонентов PCRF формирует DHCP-запрос со следующими опциями, идентифицирующими абонента:
* opt61 Client-Id [[http://tools.ietf.org/html/rfc2132|RFC 2132]]- содержит тип "1" (ethernet) и MAC-адрес абонента в бинарном виде;
===== Формирование Access-Accept =====
Получив ответ от DHCP-сервера, PCRF объединяет его с ранее полученным от Радиуса ''Access-Accept''. Напомним, что в ''Access-Accept'' также можно задавать DHCP-опции в виде [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_dhcp:bras_l2_vlan_dhcp_proxy:bras_l2_vlan_dhcp_proxy_vsa|специальных VSA]]. При объединении ответов DHCP-опции, возвращенные DHCP-сервером, считаются более приоритетными, чем эти VSA-атрибуты; например, если и в DHCP-ответе, и в ''Access-Accept'' задается разный список DNS-серверов, то абоненту будет отправлен список DNS-серверов из ответа DHCP-сервера.