Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:bras_bng:ip_pool:ipv4:start [2023/10/13 12:14] – ↷ Операцией перемещения обновлены ссылки elena.krasnobryzh | dpi:bras_bng:ip_pool:ipv4:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 |
---|
==== Поддержка IPv4-пулов ==== | |
{{indexmenu_n>10}} | |
| |
Имя пула IP-адресов задается атрибутом ''Framed-Pool'' в ''Access-Accept''. | |
| |
<note warning>Атрибут ''Framed-IP-Address'' является более приоритетным, чем ''Framed-Pool'': при наличии в ответе обоих атрибутов PCRF игнорирует ''Framed-Pool''</note> | |
| |
Обнаружив в ответе Радиуса атрибут ''Framed-Pool'', PCRF должен: | |
* обратиться к DHCP-серверу за адресом абонента, передав DHCP-серверу имя пула в одной из DHCP-опций; | |
* получив ответ DHCP-сервера, сформировать общий ответ авторизации, объединив опции DHCP-ответа и атрибуты ''Access-Accept'' | |
| |
=== Кофигурирование fastpcrf === | |
В ''fastpcrf.conf'' должен быть задан как минимум один DHCP-сервер, обслуживающий пулы. Адрес сервера задается в параметре ''dhcp_server'' такого вида: | |
<code> | |
# <address> - IP-адрес DHCP-сервера | |
# <dev> - с какого локального интерфейса общаться с DHCP-сервером | |
dhcp_server=<address>%<dev> | |
</code> | |
Каждый DHCP-сервер задается в ''fastpcrf.conf'' отдельным параметром. Например, два сервера могут быть заданы так: | |
<code> | |
# Основной сервер - на интерфейсе eth1 | |
dhcp_server=192.168.10.10%eth1 | |
# Резервный сервер - на интерфейсе em2 | |
dhcp_server=10.45.78.03%em2 | |
</code> | |
Поддерживается задание до 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. | |
| |
<note tip>В СКАТ 10.2+ изменен алгоритм добавления opt125: если такая опция уже есть в DHCP-запросе, то СКАТ **добавляет** данные для вендора VasExperts в уже существующую opt125. Такое изменение связано с тем, что не все реализации DHCP-серверов понимают множественное задание одной и той же опции</note> | |
| |
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:start|DHCP Radius Proxy]] на DHCP-сервер передается оригинальный DHCP-запрос абонента с добавлением имени пула в соответствии с параметром ''dhcp_poolname_opt''. | |
| |
<note warning>Следует быть осторожным, указывая имя пула в опциях opt77 и opt60: если такая опция уже есть в DHCP-запросе абонента, её значение изменяется на имя пула. Если оригинальное значение этих опции важно при конфигурировании DHCP-сервера, следует для имени пула использовать опцию 125, которая всегда добавляется</note> | |
| |
=== Формирование DHCP-запроса для PPPoE-клиентов === | |
Для [[dpi:bras_bng:opt_bras_l2:bras_pppoe:start|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-сервера. | |
| |