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

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 определяет два основных режима, а также третий — комбинированный.

  • Stateful DHCPv6 (с сохранением состояния) — сервер отслеживает все выданные адреса и параметры, ведёт их базу и продлевает время аренды (lease). Клиент получает от сервера не только адрес, но и все необходимые опции. Используется в управляемых корпоративных сетях и провайдерами.
  • Stateless DHCPv6 (без сохранения состояния) — сервер не выдаёт IP-адрес; адрес клиент получает через SLAAC (от маршрутизатора), а DHCPv6 используется только для получения дополнительных параметров (опций). Этот режим снижает нагрузку на сервер и упрощает конфигурирование, особенно в больших сетях.
  • Stateful + Stateless (гибридный) — сервер может работать в обоих режимах одновременно, отвечая на разные типы запросов.

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

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

  • SOLICIT — запрос клиента на поиск сервера (широковещательный, на multicast-адрес ff02::1:2).
  • ADVERTISE — ответ сервера, предлагающего конфигурацию.
  • REQUEST — подтверждение выбора конкретного сервера.
  • REPLY — окончательная конфигурация от сервера.
  • RENEW/REBIND — продление времени аренды.
  • RELEASE — освобождение адреса.
  • INFORMATION-REQUEST — запрос только опций (используется в stateless режиме).

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

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

  • NDP (Neighbor Discovery Protocol) — протокол обнаружения соседей, входящий в состав IPv6. Через NDP клиент получает префикс сети для SLAAC.
  • SLAAC (Stateless Address Autoconfiguration) — механизм автоматической генерации адреса без DHCPv6. В режиме Stateless они взаимодополняют друг друга.
  • ICMPv6 — протокол управления, используемый для ошибок и сообщений об изменении конфигурации.

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

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)

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

  • Option 1: Client Identifier (DUID)
  • Option 2: Server Identifier (DUID)
  • Option 3: Identity Association for Non-temporary Addresses (IA_NA)
  • Option 4: Identity Association for Temporary Addresses (IA_TA)
  • Option 5: IA Address (адрес)
  • Option 6: Option Request Option (ORO)
  • Option 7: Preference
  • Option 8: Elapsed Time
  • Option 17: Vendor-specific Information
  • Option 23: DNS Recursive Name Server (RDNSS)
  • Option 24: Domain Search List (DNSSL)
  • Option 31: SNTP Servers
  • Option 32: Information Refresh Time
  • Option 52: Status Code

Общее количество опций достигает нескольких сотен, многие из них определены дополнительными 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-LLT (Link-Layer + Time) — на основе MAC-адреса и времени.
  • DUID-EN (Enterprise Number) — на основе номера организации.
  • DUID-LL (Link-Layer) — только на основе MAC-адреса.
  • DUID-UUID (Universally Unique Identifier) — на основе UUID.

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

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

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

  • У провайдеров доступа: для выдачи адресов и префиксов абонентам (поддержка CPE-устройств).
  • В корпоративных сетях: для централизованного управления конфигурацией компьютеров, телефонов, принтеров, точек доступа.
  • В глобальных сетях: для настройки маршрутизаторов, DNS-серверов, NTP-серверов.
  • В IoT-инфраструктуре: для шестисетей низкой мощности (6LoWPAN), где DHCPv6 может работать с ограниченными ресурсами.

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

  • Избыточность при stateless режиме: при совместной работе с SLAAC появляется необходимость в двух различных механизмах для получения разных частей конфигурации, что увеличивает сложность.
  • Зависимость от DUID: при изменении DUID (например, при замене сетевой карты) сервер может не опознать клиента и выдать новый адрес.
  • Протокол относительно сложен: количество опций и типов сообщений больше, чем в DHCPv4.
  • Расширение адреса: использование 128-битного адреса иногда усложняет задачу при отладке.
  • Поддержка в некоторых старых устройствах: часть сетевого оборудования не поддерживает DHCPv6 должным образом.

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

  • В отличие от DHCPv4, DHCPv6 не имеет встроенного механизма «автономного выделения адреса» (как APIPA в IPv4). При неудаче может произойти отказ в доступе к сети.
  • DHCPv6 может работать без сервера: в режиме DHCPv6 Client without Server клиент может запрашивать адрес через relay-агента, даже если сервер временно недоступен.
  • Для радиосетей (Wi-Fi) DHCPv6 часто работает по протоколу DHCPv6 over UDP, но некоторые реализации могут использовать TCP (в основном для управления).

Источники

  • RFC 8415 — Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
  • RFC 3315 — Original DHCPv6 standard
  • RFC 3633 — IPv6 Prefix Options for DHCPv6
  • RFC 3646 — DNS Configuration options for DHCPv6
  • RFC 3736 — Stateless DHCPv6
  • RFC 7610 — DHCPv6-Shield: Protecting against rogue DHCPv6 servers
  • DNS and BIND, Fifth Edition (O’Reilly Media)
  • IPv6 Essentials, Second Edition (O’Reilly Media)

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

На главную BFOmetr →