По мере расширения масштабов сети и увеличения ее сложности конфигурация становится все более сложной. Кроме того, резко возрастает количество компьютеров и мобильных устройств (таких как мобильные ноутбуки или беспроводные терминалы), что приводит к частой смене IP-адресов и нехватке IP-ресурсов. Протокол динамической конфигурации хоста (DHCP) используется для динамического распределения IP-адресов между хостами.
Часть I. Что такое DHCP?
Протокол динамической конфигурации хоста (DHCP) – это протокол, который динамически предоставляет параметры конфигурации для интернет-терминалов. Когда терминал подает заявку, сервер DHCP может предоставить терминалу такие параметры, как IP-адрес, шлюз и адрес DNS-сервера. Основной протокол DHCP состоит из трех ролей: DHCP-сервер, DHCP-клиент и DHCP Snooping/relay (опционально).

В сети TCP/IP каждая рабочая станция должна выполнить базовую конфигурацию сети, прежде чем получить доступ к сети и ее ресурсам. Основные параметры, которые необходимо настроить, включают IP-адрес, маску подсети, шлюз по умолчанию и DNS.
В большой сети обеспечение правильной конфигурации всех узлов может быть сложной задачей управления, особенно в динамических сетях, в которых есть перемещающиеся пользователи и ноутбуки. Компьютеры часто перемещаются из одной подсети в другую и удаляются из сети. Ручная настройка или реконфигурация большого количества компьютеров может занять много времени, а ошибки в конфигурации IP-хостов могут привести к сбоям в сетевом взаимодействии.
Поэтому необходимо упростить конфигурирование IP-адресов и реализовать централизованное управление IP-адресами. Для этой цели предназначен протокол динамической конфигурации хоста (DHCP).
1. DHCP позволяет уменьшить количество ошибок конфигурации.
DHCP минимизирует количество ошибок, возникающих при ручной настройке IP-адресов. Например, значительно снижается вероятность присвоения используемого IP-адреса другому устройству.
2. DHCP снижает нагрузку на управление сетью.
Конфигурации TCP/IP выполняются централизованно и автоматически, без ручного вмешательства сетевого администратора. Администратор сети может централизованно определять конфигурации TCP/IP глобальной сети и конкретных подсетей. Опции DHCP могут автоматически распределять все дополнительные значения TCP/IP для клиентов. Адреса клиентов должны часто обновляться. Например, клиент удаленного доступа может перемещаться повсюду и должен быть настроен эффективно и автоматически при перезапуске в новом месте.ln Кроме того, большинство маршрутизаторов могут пересылать запросы конфигурации DHCP, уменьшая необходимость в установке сервера DHCP в каждой подсети, если это не требуется по другим причинам.
Часть II. Как работает DHCP?
● Сервер DHCP
Сервер DHCP обрабатывает запросы на выделение адресов, продление аренды и освобождение от клиентов или снуппинга/реле, а также распределяет IP-адреса и другие сетевые конфигурации между клиентами.

● Клиент DHCP
Клиент DHCP обменивается пакетами с сервером DHCP для получения IP-адреса и других сетевых конфигураций. Протокол DHCP используется для динамического получения параметров, таких как IP-адреса, от сервера DHCP, что облегчает настройку клиента и централизованное управление.

● Процесс применения адреса DHCP

1. Процесс DHCP – обнаружение
Клиент рассылает пакеты DHCP Discover в локальном сегменте сети для обнаружения DHCP-серверов в сети.

Фаза обнаружения:
Клиент DHCP ищет сервер DHCP.
На этапе обнаружения клиент DHCP ищет DHCP-сервер, отправляя пакет DHCP Discover. Поскольку IP-адреса серверов DHCP неизвестны клиенту, клиент DHCP рассылает пакет DHCP Discover по сети. Все серверы DHCP, получившие пакеты DHCP Discover, отправляют пакеты ответа. После этого клиент DHCP может узнать местоположение серверов DHCP в сети.

2. Процесс DHCP – Предложение
Сервер отвечает клиенту доступным IP-адресом. Этот адрес не является реально выделенным и проверяется с помощью пакета ICMP Echo Request (или ARP) перед назначением.

Фаза предложения:
DHCP-сервер предоставляет IP-адрес для DHCP-клиента.
Сервер DHCP, получивший пакет DHCP Discover от клиента DCHP, выбирает соответствующий IP-адрес из своего пула адресов и отправляет пакет DHCP Offer, содержащий IP-адрес, срок аренды IP-адреса и другие параметры конфигурации (например, адрес шлюза и адрес сервера доменных имен) клиенту DHCP.
3. Процесс DHCP – запрос
Если клиент получает несколько пакетов HCP Offer, DHCP-клиент выбирает один из них по содержанию и отвечает на него. Если клиент получил IP-адрес ранее, он записывает его в поле Requested IP Address поля Options пакета DHCP Request и отправляет его на сервер.

Фаза выбора:
Клиент DHCP выбирает IP-адрес.
Если несколько серверов DHCP отправляют пакеты DHCP Offer клиенту DHCP, клиент DHCP получает только тот пакет DHCP Offer, который пришел первым. Затем клиент DHCP передает пакет DHCP Request, содержащий идентификатор сервера (Option54), то есть IP-адрес сервера DHCP, выбранного клиентом.
Пакет запроса DHCP отправляется в широковещательном режиме, чтобы уведомить все серверы DHCP о том, что клиент выбрал IP-адрес, предоставленный сервером DHCP, указанным в опции54. Таким образом, другие DHCP-серверы могут вернуть свои предварительно выделенные IP-адреса.
4. Процесс DHCP – ACK
После получения пакета DHCP Request сервер связывает сетевой адрес (сетевой и аппаратный адреса) клиента с выделенным IP-адресом, а затем отправляет IP-адрес клиенту.

Сервер DHCP подтверждает выделение IP-адреса клиенту DHCP.
После получения пакета DHCP Request от DHCP-клиента DHCP-сервер ищет соответствующую запись аренды по MAC-адресу, указанному в пакете DHCP Request. Если такая запись найдена, DHCP-сервер отправляет клиенту пакет DHCP ACK, содержащий IP-адрес и другие настройки. После получения пакета DHCP ACK клиент DHCP отправляет безвозмездный ARP-пакет, чтобы определить, использует ли другой хост IP-адрес, выделенный сервером. Если в течение определенного периода времени ответ не получен, клиент использует IP-адрес.
5. Процесс DHCP – NAK
После получения пакета DHCP Request, если сервер обнаруживает, что запрошенный адрес недоступен, он отвечает DHCP NAK.

Если сервер DHCP не находит записи аренды после получения пакета DHCP Request или не может выделить IP-адрес по определенным причинам, сервер DHCP отправляет пакет DHCP NAK, чтобы уведомить клиента DHCP об отсутствии IP-адреса. Затем клиенту DHCP необходимо повторно отправить пакет DHCP Discover для подачи заявки на новый IP-адрес После получения IP-адреса клиент DHCP проверяет состояние используемого шлюза перед выходом в сеть. Если адрес шлюза неверен или шлюз неисправен, клиент DHCP запрашивает новый IP-адрес в четырехшаговом режиме.
6. Процесс DHCP – обновление адресов
Когда клиентский адрес достигает 50% срока аренды (T1), клиент отправляет одноадресный пакет DHCP Request для возобновления аренды. Когда клиентский адрес достигает 97,5% срока аренды (T2), клиент отправляет широковещательный пакет DHCP Request для возобновления аренды.

Когда IP-адрес достигает 50%(T1) срока аренды, DHCP-клиент автоматически отправляет пакет DHCP Request на DHCP-сервер для возобновления аренды. Если получен пакет DHCP ACK, аренда успешно возобновлена, если DHCP
● Сетевое применение DHCP
В действующих сетях IP-адреса обычно назначаются из локальных и удаленных пулов адресов. OLT организует адреса IPv4 в пул адресов IPv4 для управления в одном из следующих режимов:
1. Локальный пул адресов управляется OLT. OLT выделяет, обновляет и восстанавливает IP-адреса в локальном пуле адресов.
2. Удаленный пул адресов представляет собой образ внешнего DHCP-сервера. Он не содержит фактического IP-адреса, но указывает DHCP-сервер, соответствующий пулу адресов. Когда используется удаленный пул адресов, OLT может инициировать запросы от имени пользователей или передавать запросы пользователей для подачи, обновления или освобождения IP-адресов от сервера DHCP. Например, DHCP snooping или relay.