Поддержка IPv6-пулов [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:bras_bng:ip_pool:ipv6:start [2023/10/13 12:14] – ↷ Страница перемещена из dpi:bras_bng:opt_bras_l2:ip_pool:ipv6:start в dpi:bras_bng:ip_pool:ipv6:start elena.krasnobryzhdpi:bras_bng:ip_pool:ipv6:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1
Строка 1: Строка 1:
-====== Поддержка IPv6-пулов ====== 
-{{indexmenu_n>20}} 
- 
-Имя пула IPv6-адресов задается атрибутом ''Framed-IPv6-Pool'' в ''Access-Accept'' 
- 
-<note warning>Атрибуты, задающие IPv6-адреса абоненту (''Framed-IPv6-Address'', ''Framed-IPv6-Prefix'', ''Delegated-IPv6-Prefix'') являются более приоритетными, чем ''Framed-IPv6-Pool'': при наличии в ответе пула и хотя бы одного из вышеперечисленных атрибутов, задающих IPv6 адрес или префикс,  PCRF игнорирует ''Framed-IPv6-Pool''</note> 
- 
-Обнаружив в ответе Радиуса атрибут ''Framed-IPv6-Pool'', PCRF должен: 
-  * обратиться к DHCPv6-серверу за адресом и/или префиксом абонента, передав DHCPv6-серверу имя пула в одной из DHCPv6-опций; 
-  * получив ответ DHCPv6-сервера, сформировать общий ответ авторизации, объединив опции DHCPv6-ответа и атрибуты ''Access-Accept'' 
- 
-=== Кофигурирование fastpcrf === 
-В ''fastpcrf.conf'' должен быть задан как минимум один DHCPv6-сервер, обслуживающий пулы. Адрес сервера задается в параметре ''dhcp6_server'' такого вида: 
-<code> 
- # Каждый сервер задается отдельным параметром dhcp6_server 
- # Формат: 
- #    dhcp6_server=[ipv6%dev]{:port}{;option}+ 
- # где: 
- #    ipv6 - адрес DHCPv6-сервера 
- #    dev - имя интерфейса, с которого устанавливать соединение 
- #    port - порт, default=547 
- #    options: дополнительные опции: 
- #       source_ip=address - исходный IPv6-адрес, от имени которого идет запрос на DHCPv6-сервер 
- #                 Если source_ip не задан, то: 
- #                 - если адрес сервера link-local - берется link-local адрес интерфейса dev 
- #                 - если адрес сервера глобальный - берется глобальный адрес интерфейса dev 
- #       relay_ip=address - IPv6-адрес релея. Именно этот адрес учитывает DHCPv6-сервер как адрес релея. 
- #                 Если не задан - равен source_ip 
- # Пример: два DHCPv6-сервера: один с глобальным адресом, второй - с link-local адресом 
- #   dhcp6_server=[2001:4860:4860::8888%eth1];source_ip=2a01:a282:3:11:92b1:1cff:fe18:d298;relay_ip=2001::1 
- #   dhcp6_server=[fe80::92b1:1cff:fe18:d298%em2];relay_ip=2001::1 
-dhcp6_server=[fe80::92b1:1cff:fe18:d298%em2];relay_ip=2001::1 
-</code> 
-Каждый DHCPv6-сервер задается в ''fastpcrf.conf'' отдельным параметром. Например, два сервера могут быть заданы так: 
-<code> 
-    # Основной сервер - на интерфейсе eth1 
-dhcp6_server=[fe80::92b1:1cff:fe18:d298%eth1];relay_ip=2001::1 
-    # Резервный сервер - на интерфейсе em2 
-dhcp6_server=[fe80::92b1:1cff:fe18:4509%em2];relay_ip=2001::1 
-</code> 
-Поддерживается задание до 16 DHCPv6-серверов. Никакого значения по умолчанию у данного параметра нет - для поддержки ''Framed-IPv6-Pool'' обязательно нужно в ''fastpcrf.conf'' прописать как минимум один DHCPv6-сервер. 
- 
-Помимо DHCPv6-серверов, следует также указать, в какой опции DHCPv6-запроса посылать имя пула.  
-Это делается с помощью параметра ''dhcp6_poolname_opt''. Поддерживаются следующие DHCP-опции: 
-  - ''dhcp6_poolname_opt=1'' - [15] User-Class. Если опция уже есть, её значение заменяется на имя пула 
-  - ''dhcp6_poolname_opt=2'' - [17] Vendor-Specific (vendorId=43823, subopt=1). Опция всегда добавляется   
-Если ''dhcp6_poolname_opt=0'' (default) - имя пула будет передаваться в Vendor-Specific опции. 
- 
-fastpcrf обращается к DHCPv6-серверам под видом релея, чтобы DHCPv6-трафик был уникастным. Все DHCPv6-запросы всегда шлются на все сервера, указанне в параметрах ''dhcp6_server''. Если сконфигурировано несколько DHCPv6-серверов, PCRF принимает во внимание первый по времени ответ, ответы от остальных DHCPv6-серверов игнорируются. 
- 
-=== Особенности выдачи IPv6-адресов/префиксов в СКАТ === 
-Отметим, что в настоящее время СКАТ требует, чтобы клиенту выдавался префикс длиной, задаваемой параметром [[dpi:dpi_components:platform:dpi_ipv6|ipv6_subnetwork]] в fastdpi.conf (по умолчанию ''ipv6_subnetwork=64''). Это относится как к PD-префиксам, так и к собственно IPv6-адресу, выдаваемому клиенту. То есть по сути клиенту выдается два префикса - PD-префикс и префикс, из которого СКАТ сам формирует полный IPv6-адрес клиента. 
- 
-Большинство DHCPv6-серверов могут выдавать клиенту PD-префикс любой длины, но не умеют - префикс указанной длины в качестве IPv6-адреса клиента. Другими словами, DHCPv6-серверу невозможно указать "выдавай IPv6-адреса клиентам с таким-то шагом" (например, с шагом /64). 
-Чтобы обойти это ограничение, СКАТ использует такой трюк: запрашивается только PD-префикс, а DHCPv6-сервер должен выдать абоненту PD-префикс длиной ''ipv6_subnetwork - 1'' (то есть по умолчанию ''64 - 1 = 63'' - /63 префикс). СКАТ сам делит такой PD-префикс на два ''/ipv6_subnetwork''-префикса: младший префикс - для выделения IPv6-адреса клиенту, а старший - для PD-префикса клиента. 
- 
-=== Примеры конфигурирования DHCPv6-сервера Kea === 
-DHCPv6-сервер конфигурируется по-разному в зависимости от того, в какой DHCPv6-опции будет приходить имя пула (параметр ''dhcp6_poolname_opt'').  
-Ниже даны не полные конфигурационные файлы ''/etc/kea/kea-dhcp6.conf'' [[https://www.isc.org/kea/|Kea DHCP]], а только выжимки, относящиеся к конфигурированию пула 
- 
-  - [[dpi:bras_bng:opt_bras_l2:ip_pool:ipv6:kea_cfg_opt17|пример для опции 17]] (''dhcp6_poolname_opt=2'') 
-  - [[dpi:bras_bng:opt_bras_l2:ip_pool:ipv6:kea_cfg_opt15|пример для опции 15]] ''User-Class'' (''dhcp6_poolname_opt=1'') 
- 
-=== Формирование DHCPv6-запроса в режиме DHCPv6 Radius Proxy === 
-В режиме [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_dhcp:bras_l2_vlan_dhcp_proxy:start|DHCP Radius Proxy]] на DHCPv6-сервер передается оригинальный DHCPv6-запрос абонента с добавлением имени пула в соответствии с параметром ''dhcp6_poolname_opt''. Но у сервера запрашивается **только** PD-префикс, см. выше "особенности выдачи IPv6-адресов/префиксов в СКАТ". 
- 
-<note warning>Следует быть осторожным, указывая имя пула в опции opt15 ''User-Class'': если такая опция уже есть в DHCPv6-запросе абонента, её значение изменяется на имя пула. Если оригинальное значение этой опции важно при конфигурировании DHCPv6-сервера, следует для имени пула использовать опцию 17, которая всегда добавляется</note> 
- 
-=== Формирование DHCPv6-запроса для PPPoE-клиентов === 
-Для [[dpi:bras_bng:opt_bras_l2:bras_pppoe:start|PPPoE]]-абонентов PCRF формирует DHCPv6-запрос, в котором ''Client-Id'' (опция 1, client DUID) строится как DUID-EN (vendorId=43823, 32 бита), далее идут vlan'ы клиента (2 поля по 16 бит, если какого-то vlan нет - его значение равно 0), далее - 6 байт MAC-адрес клиента. Такое построение Client-Id гарантирует неизменность DUID, что важно для DHCPv6-сервера. 
-  
- 
-=== Формирование Access-Accept === 
- 
-Получив ответ от DHCPv6-сервера, PCRF объединяет его с ранее полученным от Радиуса ''Access-Accept''. Напомним, что в ''Access-Accept'' также можно задавать DHCPv6-опции в виде [[dpi:bras_bng:opt_bras_l2:ipv6:dhcpv6_vsa|специальных VSA]]. При объединении ответов DHCPv6-опции, возвращенные DHCPv6-сервером, считаются более приоритетными, чем эти VSA-атрибуты; например, если и в DHCPv6-ответе, и в ''Access-Accept'' задается разный список DNS-серверов, то абоненту будет отправлен список DNS-серверов из ответа DHCPv6-сервера.