2.61M
Категория: ИнтернетИнтернет

Описание, назначение и структура протокола DHCP

1.

Описание, назначение и
структура протокола DHCP

2.

Протокол DHCP (Dynamic Host Configuration Protocol) относится к числу основных
служб, формирующих инфраструктуру сетей. Он применяется для автоматического
выполнения конфигурации сетевых параметров.
Протокол DHCP был предложен в 1993 г., его развитием занимается специальная
рабочая группа (DHC WG), входящая в состав IETF. Наиболее полное современное
описание DHCP содержится в документе RFC 2131 (март 1997 г.), который пришел на
смену более ранним редакциям RFC 1531 и 1541.

3.

С помощью DHCP решаются две основные проблемы:
• Автоматизация. При наличии в сети DHCP-сервера не требуется производить
настройки на каждом новом клиенте. Достаточно один раз настроить DHCP-сервер и
дальнейшая настройка IP-адресов и прочих сетевых параметров производится
автоматически;
• Централизованное управление. DHCP-сервер осуществляет контроль за
выданными адресами, предотвращает их дублирование, а также своевременно
освобождает неиспользуемые IP-адреса.

4.

Получение настроек
DHCP работает по схеме клиент-сервер. Процесс получения настроек происходит в
несколько этапов и описывается схемой DORA (Discover-Offer-RequestAcknowledge):
Discover (Обнаружение)
Клиент DHCP подключается к сети и приступает к инициализации (состояние INIT).
Первым делом он ищет в сети подходящий DHCP-сервер, для чего отправляет запрос
DHCPDISCOVER на широковещательный адрес 255.255.255.255.
В качестве своего адреса клиент указывает 0.0.0.0, поскольку своего адреса у него
еще нет. Также в запросе клиент указывает свой MAC-адрес. Запрос доставляется
всем компьютерам, находящимся в данном сегменте сети, но отвечают на него только
DHCP-сервера.

5.

Offer (Предложение)
DHCP-сервер, получивший запрос DHCPDISCOVER, анализирует его содержимое,
выбирает подходящую конфигурацию сети и отправляют ее в сообщении
DHCPOFFER. Обычно DHCPOFFER отправляется на MAC-адрес клиента,
указанный в DHCPDISCOVER, хотя иногда может использоваться широковещание.
Если в сети находятся несколько DHCP-серверов, то клиент получает несколько
ответов DHCPOFFER и выбирает из них один, как правило полученный первым.

6.

Request (Запрос)
Получив ответ сервера, клиент отвечает сообщением DHCPREQUEST, в котором
″официально″ запрашивает у сервера предоставленные настройки. В сообщении
DHCPREQUEST содержится та же информация, что и в DHCPDISCOVER, а также IPадрес
выбранного
DHCP-сервера.
DHCPREQUEST
отправляется
на
широковещательный адрес и те DHCP-сервера, чей адрес отсутствует в сообщении,
понимают что их предложение отвергнуто.

7.

Acknowledge (Подтверждение)
DHCP-сервер, адрес которого указан в DHCPREQUEST, получает сообщение и
понимает, что его выбрали. Он фиксирует привязку для клиента и отвечает
сообщением DHCPACK, подтверждая выданные клиенту настройки.
DHCPACK отправляется на MAC-адрес клиента, указанный в DHCPREQUEST.
Клиент получает сообщение DHCPACK, проверяет настройки и применяет
конфигурацию (состояние BOUND), которая была получена в сообщении
DHCPOFFER.

8.

9.

У клиента уже есть назначенный ранее адрес
Если у клиента имеется выданный ранее сетевой адрес и он хочет его использовать,
то можно пропустить некоторые этапы. В этом случае клиент передает
широковещательное сообщение DHCPREQUEST, указывая в сообщении имеющийся
у него адрес. DHCP-cервер, получивший запрос, проверяет корректность сети и
адреса и в случае успешной проверки посылает клиенту подтверждение DHCPACK.
Клиент получает подтверждение и применяет настройки.

10.

Если DHCP-сервер обнаруживает, что клиент находится в неподходящей сети, он
отвечает отказом DHCPNACK. Если сеть корректна, то проверяется наличие записи
для этого клиента и доступность запрошенного адреса.
Если адрес по какой либо причине не подходит (например занят), то сервер отвечает
отказом DHCPNACK. Получив отказ, клиент больше не может пользоваться
сохраненным сетевым адресом и должен запросить новый адрес, начав полную
процедуру инициализации.
Если же на сервере нет записи для этого клиента, то он считает, что адрес был выдан
другим DHCP-сервером и просто оставляет запрос без ответа. Такое поведение
позволяет находиться в одной сети нескольким независимым DHCP-серверам.

11.

У клиента есть адрес, полученный другим способом
Если у клиента уже есть адрес, назначенный любым другим способом (например
вручную), то он может запросить у DHCP-сервера только конкретные параметры
конфигурации (например адреса DNS-серверов) с помощью сообщения
DHCPINFORM.
Сообщение передается на адрес сервера (если он известен) либо широковещанием на
адрес 255.255.255.255. DHCP-сервер, получивший сообщение DHCPINFORM,
отвечает сообщением DHCPACK с требуемыми параметрами конфигурации, но без
проверки аренды и выделения сетевого адреса. Сообщение передается клиенту
напрямую. Клиент принимает ответ и применяет полученные настройки.

12.

Обновление адреса
IP-адрес выдается клиенту на определенное время, которое называется временем
аренды (lease time). Время аренды зависит от настроек сервера и может варьироваться
от нескольких минут до недель и даже месяцев.
По прошествии половины срока клиент пробует обновить аренду. Если сразу обновить
аренду не удается, то клиент будет пытаться сделать это снова вплоть до окончания
срока. В том случае, если все попытки окажутся неудачными, по окончании срока
клиент будет искать другой DHCP-сервер.

13.

Обновление адреса (RENEWING)
Это состояние означает, что клиент может начать процесс обновления аренды. Для
обновления клиент посылает запрос DHCPREQUEST, но не широковещательный, а
адресованный своему DHCP-серверу. Сервер получает запрос, после чего возможно
два варианта:
• Сервер соглашается продлить аренду. Для подтверждения продления аренды он
посылает клиенту сообщение DHCPACK с указанием нового срока аренды и тех
параметров, которые могли измениться с момента создания или последнего
продления аренды;
• Сервер отказывается продлевать аренду. В этом случае он шлет клиенту
сообщение об отказе DHCPNACK.

14.

Обновление конфигурации (REBINDING)
Если клиент сразу не получает ответ от сервера на запрос обновления аренды, то он
ожидает ответ в течение времени (T2 — t)/2 сек (но не меньше 60 сек), где t —
время отправки последнего сообщения DHCPREQUEST, затем отправляет
сообщение повторно.
Пока сервер не ответит, клиент остается в состоянии RENEWING и регулярно шлет
запрос DHCPREQUEST на сервер. В течение этого времени он сохраняет свой
текущий адрес и продолжает нормально работать.

15.

Если ответ от сервера не поступил к моменту T2, клиент переходит в состояние
REBINDING и передает уже широковещательное сообщение DHCPREQUEST со
своим текущим адресом. В этом случае срок повтора запросов DHCPREQUEST
рассчитывается аналогично предыдущему случаю, только вместо T2 используется
полное время окончания срока аренды.
В том случае, если срок аренды завершается до получения клиентом ответа от
сервера, клиент должен прекратить все сетевые операции и перейти в состояние
инициализации (INIT). Если DHCP-сервер все-таки ответит после завершения
аренды, то клиент может возобновить работу с прежним адресом.

16.

Освобождение адреса
Клиент может явно отказаться от аренды сетевого адреса, передав серверу сообщение
DHCPRELEASE. При получении этого сообщения сервер помечает адрес как
свободный, но сохраняет запись с параметрами клиента в базе на тот случай, если
клиент захочет использовать адрес повторно.
Стоит уточнить, что клиент не освобождает аренду при обычном выключении, все
настройки сохраняются локально. Клиент передает DHCPRELEASE только при явной
необходимости отказаться от аренды, например при перемещении в другую подсеть.
Также освободить аренду можно вручную, например с помощью команды ipconfig
/release.

17.

Широковещательный домен (broadcast domain) — область сети, в которой все узлы
могут общаться между собой с помощью широковещания, без участия
маршрутизатора. Обычно широковещательному домену соответствует физическая или
логическая подсеть.

18.

Особенности работы DHCP
Сетевой протокол DHCP работает посредством UDP. Обмен данными между
клиентом и сервером осуществляется через порты 67 UDP и UDP 68. Для передачи
информации от клиента к серверу DHCP протокол задействует порт 67 UDP, а в
обратном направлении — 68 UDP.
По умолчанию запросы протокола DHCP передаются в пределах текущей подсети.
Это
объясняется
использованием
широковещания,
не
пропускаемого
маршрутизаторами за границы широковещательного домена. Такой домен обычно
ограничен пределами логической или физической подсети.
English     Русский Правила