Для работы сетевого узла ему нужно знать:
Чтобы базово настроить узел, а именно присвоить ему IP-адрес в сети, можно применить один из трех подходов:
Автоконфигурирование:
169.254.0.0/16, сформированный на основе MAC-адресаДля централизованной конфигурации и создали протокол DHCP (Dynamic Host Configuration Protocol), основным назначением которого является управление адресным пространством сети
Чтобы сетевому клиенту выдать узел, в сети должен быть подключен центральный DHCP-сервер, который управляет пулом (то есть пространством) адресов
Протокол DHCP создавался как расширение протокола BOOTP, использовавшегося ранее для IP-конфигурации сетевых узлов, поэтому DHCP-сервер использует порт UDP 67, а DHCP-клиент - 68
Алгоритм работы протокола DHCP таков:
DHCPDISCOVER. В заголовке пакета адрес и порт отправителя указаны как 0.0.0.0:68, а получателя - 255.255.255.255:67DHCPOFFER, в заголовке которого указан адрес сервера как адрес отправителя и 255.255.255.255 как адрес получателяDHCPREQUESTDHCPACK
Всего осуществляется 4 отправки сообщений между узлами вместо 2, чтобы убедиться, что узел работоспособен к моменту пользования адресом
В последнем пакете сервера указано время аренды адреса T. После времени T адрес становится недействительным и его нужно заново запрашивать. Однако его можно продлить:
T/2 можно напрямую обратиться к DHCP-серверу, который выдал адрес, с сообщением DHCPREQUEST7T/8, то после времени 7T/8 клиент отправляет широковещательное сообщение DHCPREQUEST, и любой доступный сервер продлевает текущий адресФормат DHCPv4-пакета выглядит так:

Он имеет следующие поля:
0x01, если это запрос от клиента, либо 0x02, если запрос от сервера клиенту0x010x06)Опции, которые начинаются с магического числа 0x63825363. Опции указываются списком в формате номер опции и данные.
DHCPDISCOVER, 2 - DHCPOFFER, 3 - DHCPREQUEST, 4 - DHCPDECLINE, 5 - DHCPACK, 6 - DHCPNAK, 7 - DHCPRELEASE, 8 - DHCPINFORMПомимо DHCPDISCOVER, DHCPOFFER, DHCPREQUEST и DHCPACK существуют другие сообщения:
DHCPNAK - сообщение сервера клиенту о том, что адрес больше недействителен (например, при смене подсети)DHCPDECLINE - клиент отказывается от адреса, так как он уже используется соседним узлом в подсети, и просит другой адресDHCPRELEASE - отказ клиента от использования адресаDHCPINFORM - просьба клиента о получении дополнительных параметрах сетиВ локальной сети может не оказаться DHCP-сервера, а, так как широковещание не маршрутизируется, используют агенты ретрансляции DHCP (DCHP relay), которые пересылаются пакеты DHCP-серверам
Агенты ретрансляции могут знать про сервера, поэтому адреса в IP-пакете заменяться на те, маршрутизация к которым возможна, поэтому достаточно одного в локальной сети и в маршруте до DHCP-сервера
Для работы в IPv6-сетях протокол DHCP доработали, и появился DHCPv6. В нем:
ff02::1:2ff05::1:3Также появились два режима работы:
Режим сохранения состояния клиента - Stateful DHCPv6
Такой режим аналогичен DHCPv4. В нем цель - это получить арендованный IPv6-адрес, маску сети и опции (DNS-сервера, время с помощью протокола NTP и так далее)
Режим без сохранения состояния клиента - Stateless DHCPv6
Этот режим используется, когда IP-адрес настроен и нужно получить только опции
Также изменились сообщения:
SOLICIT - используется клиентом для поиска серверов (аналог DHCPDISCOVER)ADVERTISE - DHCPv6-сервер сообщает о себе в ответ на SOLICIT (аналог DHCPOFFER)REQUEST - клиент запрашивает параметры у конкретного сервераCONFIRM - клиент подтверждает, что получил адресRENEW - клиент просит сервер, от которого уже получил параметры, продлить время их действияREPLY - ответ сервера с параметрами или подтверждение ранее
выданных параметров (аналог DHCPACK)RELEASE - клиент сообщает серверу об освобождении ранее полученного адресаDECLINE - клиент отклонил предложенный адрес, так как его уже кто-то используетINFORMATION-REQUEST - запрос от клиента к серверу на выдачу
опций, но не адресаТакже помимо SOLICIT -> ADVERTISE -> REQUEST -> REPLY появился механизм ускоренной выдачи адресов (Rapid Commit) SOLICIT -> REPLY, которая включается опцией в заголовке
Как было упомянуто, DHCPv6 позволяет выделять диапазон сети роутеру клиента (то есть Customer Premises Equipment), чтобы сам роутер мог делегировать адреса узлам в подсети
Также в DHCPv6 стало возможным несколькими способами производить конфигурацию: