Принципы работы протокола DHCP

19 Мая 2021

DHCP – протокол, позволяющий в автоматическом режиме получать клиентам IP-адреса. Его часто используют при построении современных сетей. Рассмотрим принцип работы DHCP, схему DORA, основные функции и другие особенности протокола.

Зачем нужен протокол DHCP?

dhcp-1.jpgПользователям IP-адреса могут назначать вручную. Но это затратно по времени, а в больших ЛВС ещё и сопровождается высокой сложностью настроек, следовательно, и множеством ошибок. Поэтому в 1993 года был разработан протокол DHCP. Он позволил автоматизировать настройку IP-адресов, упростить диагностику сетевого соединения и получение доступа из одной подсети в другую.

Принцип работы протокола динамической настройки узла

Работает DHCP по схеме DORA, которая включает 4 этапа: обнаружение (discover), предложение (offer), запрос (request), подтверждение (acknowledge). Рассмотрим каждый этап отдельно.

Обнаружение

При подключении клиента к сети начинается процесс его инициализации. Пользовательский компьютер не имеет IP-адреса, поэтому происходит отправка сообщения DHCPDISCOVER на все устройства в ЛВС. В той же сети обязательно присутствует DHCP server. Его роль не обязательно берет на себя выделенный сервер. Это может быть коммутатор или маршрутизатор.

В крупных организациях обычно несколько DHCP-серверов. Для передачи широковещательного сообщения от клиента всегда используется 67 порт, а для отправки ответного предложения – 68.

Внимание! Отправка сообщения DHCPDISCOVER не всегда является первым шагом по получению IP-адреса. Если у клиента статический IP-адрес и срок его аренды ещё не закончился, инициализация начинается с отправки DHCPREQUEST вместе с уже имеющимся идентификатором сервера. Если DHCP-сервер не отвечает, то тогда уже отправляется пакет DHCPDISCOVER, и процедура получения IP-адреса начинается заново.

Предложение

После получения запроса сервер сообщает клиенту IP-адрес, который может ему подойти. IP DHCP выделяется из диапазона доступных адресов, настроенных администратором сети. Если существуют IP-адреса, которые нельзя назначать DHCP-серверу, то можно задать конкретный диапазон. Например, от 192.0.0.48 до 192.0.0.123.

Другая ситуация – когда пользователи могут использовать любые адреса из доступных, кроме входящих в определенную область. В этом случае администратором задается исключение (excluded-ip-address). Например, клиентам нельзя назначать IP в диапазоне 192.0.0.14 — 192.0.0.45.

Адреса, назначаемые клиентам, являются динамическими, т. е. они постоянно меняются. Например, вчера у пользовательского компьютера был IP 192.0.0.445, а сегодня – 192.0.0.55. Но иногда для доступа к защищенным сервисам или для удобства идентификации клиента в ЛВС за пользователем закрепляют конкретный адрес. В этом случае он становится статическим, а саму процедуру называют резервацией.

В DHCPOFFER, которое получает клиент, содержится IP-адрес из доступной области. Идентификация устройства происходит по MAC-адресу.

Запрос

После получения сообщения от сервера DHCP клиент отправляет пакет DHCPREQUEST. Это сообщение означает, что пользовательский ПК принимает предлагаемый адрес. Если в сети присутствует несколько серверов DHCP, то после получения сообщения DHCPREQUEST все они помечают выбранный адрес занятым.

Подтверждение

Завершается процедура подтверждением передачи IP-адреса с помощью сообщения DHCPACK от сервера. В этом сообщении также указывается и срок использования выбранного клиентом адреса.

Как выбирает DHCP-сервер клиент, если в сети их несколько?

При первом подключении клиент выберет самое первое предложение. Но если ранее устройство уже подключалось к этой ЛВС, при повторном подключении оно выберет предложение от сервера, с которым была установлена связь в первый раз.

Отказ от адреса

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

Удаленный офис
и онлайн-продажи
За 1 день.
С бесплатным тестовым периодом.
Конфигуратор удаленных рабочих мест
Рабочие места для команды за 1 день

Продолжительность аренды

IP имеет ограниченное время действия. Когда сервер DHCP отвечает клиенту и выделяет ему адрес, он также указывает срок аренды. Это может быть 24 часа или 2-3 дня. Этот срок называют lease time. Задается он в настройках сервера DHCP. Предоставление адресов в аренду – разумное решение. Отключившиеся от сети пользователи не резервируют навечно за собой конкретный IP, а новые клиенты смогут быстро получить адрес для работы в выбранной подсети.

Клиент может пользоваться полученным IP конкретное время. Как только проходит половина срока аренды, пользователь может запросить новый адрес или обновить его. При повторном получении IP используется упрощенная схема. Клиент сразу отправляет сообщение DHCPREQUEST, а сервер в ответ с помощью пакета DHCPACK подтверждает запрос.

Если сервер не отвечает, то клиент отправит запрос повторно, когда истечет 25% второй половины срока аренды. В третий раз запрос будет отправлен, когда общий срок аренды составит 87,5%. В этот раз запрос будет широковещательным, т. е. на него сможет ответить любой DHCP-сервер.

Как назначаются адреса клиентам?

dhcp-2.jpgСервер распределяет IP-адреса одним из 3 способов:

  1. Динамическое распределение. IP-адрес назначается на определенное время, которое называют продолжительностью аренды. Этот подход применяется, когда количество адресов изначально ограничено, а пользователей, подключающихся к сети, довольно много, но работают они в разное время. После отключения клиента от сети использованный IP автоматически возвращается в диапазон доступных адресов.
  2. Статическое распределение. Системный администратор вручную задает в настройках DHCP конкретный IP выбранному клиенту по MAC-адресу. IP закрепляется за клиентом даже при условии выхода из сети или при переходе в новую подсеть.
  3. Автоматическое распределение. Здесь функцию распределения IP-адресов берет на себя сервер. Он автоматически выбирает из списка доступных адресов свободные и присваивает их клиентам навсегда. Как и в случае со статическим распределением, при отключении от сети IP сохраняется за конкретным клиентом.

Важный момент! Для нормальной работы протокола и присвоения IP-адреса по запросу нужно убедиться, что брандмауэр не блокирует порты. DHCP для работы нужны порты 67 и 68. Встроенный защитник Windows обычно не блокирует их, но сторонние антивирусные программы могут.

Особые сообщения протокола динамической настройки узла

Кроме работы по схеме DORA сервер DHCP применяет и другие сообщения для взаимодействия с клиентскими устройствами. Их всего 4:

  • DHCPNAK. Отказ в аренде IP. Сервер отправляет это сообщение, если выбранный адрес уже занят или клиент решил перейти в новую сеть.
  • DHCPINFORM. Это сообщение клиент отправляет на порт DHCP для получения локальных настроек. DHCPINFORM применяется после получения IP-адреса для того, чтобы узнать конфигурацию ЛВС. В ответ сервер отправляет сообщение со всеми необходимыми опциями.
  • DHCPRELEASE. При прекращении клиентом аренды IP-адреса отправляется это сообщение. Оно транслируется напрямую серверу, а не по широковещательному каналу.
  • DHCPDECLINE. Если клиент обнаружил, что выбранный IP уже используется, он отправляет это сообщение по широковещательному каналу. После этого получение адреса начинается заново.

Опции Dynamic Host Configuration Protocol

Клиенту для работы в сети кроме IP требуются другие параметры DHCP: шлюз, адрес сервера, маска подсети и т. д. Опции кодируются определенными цифрами. В пакете они отображаются в порядке возрастания. К основным опциям относят:

  • 1. Маска подсети.
  • 3. IP-адреса доступных шлюзов. В сети их может быть 2-3 и более.
  • 6. Адрес DNS-сервера. Перечисляются все доступные серверы.
  • 12. Имя хоста.
  • 26. Задание одинакового MTU всем узлам.
  • 33. Выдача статических маршрутов узлам к удаленным сетям.
  • 51. Срок действия IP-адреса.
  • 55. Список запрашиваемых опций клиентом. Пакет отправляется с 55 опции, а затем идет перечисление числовых кодов нужных опций.

Пакет обязательно завершается опцией 255 End. Она означает, что других опций уже не будет, и это конец пакета. Далее мы разберем другие опции, которые также часто используются системными администраторами для настройки DHCP.

Опция 82 – информация об агенте ретрансляции

Эта опция нужна для того, чтобы сообщить DHCP-серверу о том, через какой ретранслятор и порт отправляются запросы. Она позволяет серверу и клиенту обмениваться сообщениями даже при нахождении в разных подсетях. Альтернативное название опции – DHCP Relay.

По умолчанию широковещательные сообщения отправляются на DHCP порт и доставляются в пределах текущего домена. Но бывают ситуации, когда в сети нет DHCP-сервера. В этом случае на помощь приходит ретранслятор. Это может быть маршрутизатор или сервер. Он получает в своей подсети сообщения от клиентского устройства, а затем перенаправляет его в другой домен, где есть DHCP-сервер. Аналогичным способом он присылает ответ.

Работа сетевых сервисов DHCP и DNS

cloud-provider-1.jpgDNS – система доменных имен. Она нужна для того, чтобы одному IP-адресу соответствовало одно доменное имя. Доменное имя может присваиваться не только сайту, но и клиенту в ЛВС. Например, Buhgalter PC. DNS сопоставляет IP-адреса с доменами.

С проблемой взаимодействия DHCP и DNS сталкиваются пользователи Linux. В этой ОС отсутствует Active Directory, благодаря которой можно создать связь между доменом и IP. Но существуют альтернативные способы настройки этих двух сетевых сервисов в Linux. Использование пакета dnsmasq – один из них.

После установки пакета dnsmasq через терминал необходимо отредактировать файл конфигурации. В файле содержатся комментарии с объяснениями каждой настройки. После завершения редактирования конфигурации можно приступать к настройке фаервола. Удобнее всего это делать через Ubuntu Uncomplicated Firewall. Нужно будет открыть для DNS 53 порт с помощью следующих команд:

  • sudo ufw allow bootps
  • sudo ufw allow 53/udp
  • sudo ufw allow 53/tcp

Заключительный этап – корректировка настроек роутера. В веб-интерфейсе устройства нужно отключить DHCP для ЛВС и изменить настройки DNS таким образом, чтобы все они указывали на настроенный DHCP-сервер. После этого необходимо перезапустить сеть на сервере.

Минусы протокола DHCP

У DHCP имеются определенные уязвимости. По схеме DORA первый откликнувшийся сервер имеет право предложить клиентскому устройству IP. Злоумышленник может использовать собственный сервер для дачи ответа клиенту. И если он успеет сделать это самым первым, то получит доступ к устройству и сможет контролировать его работу в сети.

Использование UDP-протокола – еще один недостаток DHCP. Проблема в том, что у UDP нет шифрования. Это значит передаваемые данные смогут в любой момент «считать» злоумышленники. К тому же протокол UDP не гарантирует доставку информации. При работе этого протокола могут возникать ошибки и потери в передачи пакетов данных. Это отрицательно сказывается на производительности DHCP и скорости загрузки PXE.

Заключение

Протокол DHCP применяется для автоматического назначения статических и динамических IP-адресов и предоставления конфигурационной информации клиентам. Он работает в режиме запрос-ответ и базируется на клиент-серверной архитектуре. Несмотря на все недостатки DHCP, удобной альтернативы этому протоколу не существует. Большинство современных локально-вычислительных сетей проектируется с использованием этого протокола. Для выдачи IP-адреса сервер DHCP должен находиться с клиентом в одной подсети или быть соединенным с ним посредством маршрутизатора.

Популярные услуги
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent