Поддержка IPv4-пулов
Имя пула 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
такого вида:
# <address> - IP-адрес DHCP-сервера # <dev> - с какого локального интерфейса общаться с DHCP-сервером dhcp_server=<address>%<dev>
Каждый 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 RFC 3004. Если опция уже есть, её значение заменяется на имя пулаdhcp_poolname_opt=2
- opt125 Vendor-Opts (vendorId=43823, subopt=1) RFC 3925. Опция всегда добавляетсяdhcp_poolname_opt=3
- opt60 Class-Id RFC 2132. Если опция уже есть, её значение заменяется на имя пула
Если dhcp_poolname_opt=0
(default) - имя пула будет добавляться в opt125.
В СКАТ 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
ISC DHCP, а только выжимки, относящиеся к конфигурированию пула
- пример для опции 125 (
dhcp_poolname_opt=2
)
Формирование DHCP-запроса в режиме DHCP Radius Proxy
В режиме DHCP Radius Proxy на DHCP-сервер передается оригинальный DHCP-запрос абонента с добавлением имени пула в соответствии с параметром dhcp_poolname_opt
.
Формирование DHCP-запроса для PPPoE-клиентов
Для PPPoE-абонентов PCRF формирует DHCP-запрос со следующими опциями, идентифицирующими абонента:
- opt61 Client-Id RFC 2132- содержит тип "1" (ethernet) и MAC-адрес абонента в бинарном виде;
Формирование Access-Accept
Получив ответ от DHCP-сервера, PCRF объединяет его с ранее полученным от Радиуса Access-Accept
. Напомним, что в Access-Accept
также можно задавать DHCP-опции в виде специальных VSA. При объединении ответов DHCP-опции, возвращенные DHCP-сервером, считаются более приоритетными, чем эти VSA-атрибуты; например, если и в DHCP-ответе, и в Access-Accept
задается разный список DNS-серверов, то абоненту будет отправлен список DNS-серверов из ответа DHCP-сервера.