Открыть сервис

DHCPv6

DHCPv6 (Dynamic Host Configuration Protocol for IPv6, протокол динамической настройки узла для IPv6) — это сетевой протокол прикладного уровня, предназначенный для автоматического назначения параметров конфигурации (IP-адреса, префиксов, DNS-серверов и других опций) узлам, работающим в сети на основе протокола IPv6. Является наследником протокола DHCP (DHCPv4) для IPv4, но учитывает особенности и расширенные возможности стека IPv6. В отличие от DHCPv4, DHCPv6 может взаимодействовать с механизмом Stateless Address Autoconfiguration (SLAAC), что приводит к наличию двух режимов работы: stateful (с отслеживанием состояний) и stateless (без отслеживания состояний).

История и предпосылки появления

С расширением использования IPv6, начавшимся в середине 2000-х годов, стало очевидно, что протокол IPv4 DHCP (RFC 2131) не может быть напрямую адаптирован для новой версии IP из-за принципиальных отличий в способах получения адресов. В IPv6 был встроен механизм SLAAC, позволяющий узлу автономно сгенерировать адрес на основе префикса, полученного от маршрутизатора, и собственного MAC-адреса. Однако SLAAC не обеспечивает передачу дополнительных параметров, таких как DNS-серверы, домен поиска, NTP-серверы и т.д.

Первая версия протокола DHCPv6 была стандартизирована в 2003 году в документе RFC 3315. Впоследствии протокол уточнялся и расширялся дополнительными RFC (например, RFC 3646 для DNS-реквизитов, RFC 3736 для stateless режима, RFC 3633 для делегирования префиксов). Наиболее существенная ревизия произошла в 2018 году с выходом RFC 8415, который объединил и уточнил предыдущие спецификации, заменив RFC 3315.

Архитектура и принцип работы

DHCPv6 функционирует по модели «клиент-сервер». Сервер DHCPv6 отвечает на запросы клиентов, которые могут быть как обычными узлами (компьютерами, смартфонами), так и сетевыми устройствами (маршрутизаторами, точками доступа).

Режимы работы

DHCPv6 определяет два основных режима, а также третий — комбинированный.

Формат сообщений

DHCPv6 использует UDP-порты: клиент прослушивает порт 546, сервер — порт 547. Сообщения делятся на несколько типов:

Протоколы, взаимодействующие с DHCPv6

DHCPv6 тесно связан с другими элементами IPv6-стека:

Сообщения и последовательность процедуры

Stateful получение адреса

  1. SOLICITADVERTISE (возможен пропуск этого этапа — Rapid Commit).
  2. REQUESTREPLY.

При первом подключении клиент отправляет SOLICIT, и сервера, имеющие для него конфигурацию, отвечают ADVERTISE. Клиент выбирает одного сервера и шлёт REQUEST, после чего получает REPLY с адресом и опциями.

Stateless получение опций

Клиент, уже имеющий адрес от SLAAC, отправляет INFORMATION-REQUEST. Сервер отвечает REPLY, содержащим только опции (DNS, домен и т.д.).

Rapid Commit (быстрый ответ)

Опциональный механизм (RFC 3315), при котором сервер может сразу ответить REPLY на SOLICIT, минуя стадию ADVERTISE/REQUEST. Это ускоряет инициализацию.

Типы опций (DHCPv6 Options)

Опции — это поля переменной длины, несущие дополнительную информацию. Наиболее распространённые:

Общее количество опций достигает нескольких сотен, многие из них определены дополнительными RFC.

Делегирование префиксов (Prefix Delegation)

Специфическая для DHCPv6 возможность — делегирование префиксов (Prefix Delegation, RFC 3633). Провайдер через DHCPv6 может выдать клиентскому маршрутизатору (Customer Edge, CE) не один адрес, а целый блок IPv6-префиксов (например, /48 или /56). Маршрутизатор затем разделяет этот блок на меньшие подсети (/64) и раздаёт их своим локальным сетям. Это ключевая технология для построения IPv6-сетей у провайдеров (интернет-провайдеры, крупные предприятия). Для передачи запроса на префикс используется опция IA_PD (Identity Association for Prefix Delegation).

DHCPv6 Relay Agent (ретранслятор)

Если клиент и сервер находятся в разных широковещательных доменах (L2-сегментах), прямое взаимодействие невозможно. Для этого используется агент ретрансляции (relay agent). Он принимает DHCPv6-запросы от клиента и пересылает их серверу, инкапсулируя в новое сообщение RELAY-FORW. Ответ сервера передаётся обратно через RELAY-REPL. Агент работает на маршрутизаторе или коммутаторе 3-го уровня.

DUID (DHCP Unique Identifier)

Каждый DHCPv6-клиент и сервер идентифицируется с помощью DUID — уникального идентификатора длиной до 128 бит. Существует несколько типов DUID:

DUID не меняется при смене сетевого интерфейса и используется как внутренний ключ для базы данных сервера.

Применение в сетях

DHCPv6 применяется:

Критика и ограничения

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →