Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

Протокол DHCP

Александр Бархатов
Александр Бархатов
Технический писатель
15 мая 2024 г.
394
9 минут чтения
Средний рейтинг статьи: 2

В компьютерных сетях существует большое количество разнообразных сетевых протоколов. Одни протоколы предназначены для передачи гипертекстовой информации (HTTP), другие используются для доступа к удаленным системам (SSH, RDP). Сегодня речь пойдет о сетевом протоколе прикладного уровня под названием DHCP.

Что такое DHCP

DHCP расшифровывается как Dynamic Host Configuration Protocol — протокол динамической настройки узла. DHCP предназначен для того, чтобы устройства могли автоматически получать IP-адрес для доступа в сеть. Помимо автоматической выдачи IP-адреса, DHCP также назначает такие параметры, как маска подсети и шлюз по умолчанию.

История появления протокола DHCP

Протокол DHCP впервые был представлен в октябре 1993 года. Текущая версия протокола описана в стандарте RFC2131. Предшественником DHCP считается протокол BOOTP (bootstrap protocol). DHCP был создан с целью заменить существовавший до 1993 года способ назначения IP-адресов, при котором каждой машине назначался свой уникальный IP-адрес вручную. Это значительно усложняло процесс назначения — необходимо было вести учет не только выданных IP-адресов, но и свободных. К тому же, в 1991 году сеть Интернет стала общедоступной, и количество устройств значительно увеличивалось. DHCP удалось автоматизировать процессы назначения IP-адресов.

Для чего используется протокол DHCP

Как уже было упомянуто ранее, основная цель DHCP заключается в автоматическом распределении IP-адресов для устройств. Каждое устройство, будь то компьютер, ноутбук, смартфон, сетевой принтер, которое находится в сетях TCP/IP, должно иметь уникальный идентификатор — IP-адрес, с целью идентификации устройства в сети и обмена информацией между хостами. Однако в больших сетях бывает затруднительно назначать IP-адреса вручную, и для упрощения и автоматизации процесса используют протокол DHCP.

Способы назначения IP-адресов

Существуют три способа назначения IP-адресов:

  • Статическое назначение. Применяется в тех случаях, когда IP-адрес устройства не должен меняться. В этом случае IP-адрес закрепляется за определенным устройством и останется у устройства даже в том случае, если клиент выйдет из сети, отключится от сети или сменит сеть на новую. Идентификация устройства происходит по его MAC-адресу. Данный способ назначения имеет смысл использовать только в небольших сетях, в которых присутствует не так много устройств. Статическое назначение также иногда называют ручным. 

  • Динамическое назначение. Для динамического назначения IP-адресов используется протокол DHCP. При таком подходе используется DHCP-сервер, который назначает любой IP-адрес из диапазона свободных адресов. IP-адрес предоставляется на определенное время (на срок аренды). Назначенные IP-адреса не привязываются к конкретным устройствам.

  • Автоматическое назначение. При автоматическом назначении выделяется специальный диапазон IP-адресов. Когда устройство подключается к сети, оно получает необходимые сетевые настройки из этого диапазона. Главное отличие от динамического назначения IP-адресов заключается в том, что время аренды IP-адреса не ограничивается по времени. В этом случае прекратить использование предоставленного IP-адреса сможет сам клиент. Так же, как и в статическом назначении, IP остается за клиентом.

Архитектура протокола DHCP

Протокол DHCP использует архитектуру «клиент-сервер».

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

Сервер DHCP может находиться как в локальной сети, так и у интернет-провайдера. Можно использовать более одного DHCP-сервера.

Клиент DHCP — любое устройство в сети, которому необходимо автоматически получить IP-адрес и прочие сетевые настройки.

Агенты ретрансляции DHCP

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

Агенты настраиваются на коммутаторах или маршрутизаторах, которые в свою очередь должны иметь сетевое соединение до DHCP-сервера.

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

Алгоритм работы DHCP обычно называют DORA, по первым буквам используемых четырех этапов:

  • Discovery

  • Offer

  • Request

  • Acknowledgement

Рассмотрим каждый этап более подробно.

Discovery

Первый этап — это этап обнаружения. На данном этапе у устройства еще нет своего IP-адреса. Устройство подключается к сети при помощи беспроводной WI-FI-сети или интернет-кабеля и начинает поиск DHCP-сервера путем отправки широковещательного (broadcasting) сообщения DHCPDISCOVER со своего MAC-адреса, так как IP-адрес у клиента пока отсутствует. Широковещательное сообщение означает, что отправляемое сообщение от клиента смогут получить все устройства в сети. Сообщение DHCPDISCOVER фактически означает «присутствует ли DHCP-сервер в сети?». Для получения сообщений от клиента сервер DHCP использует 67 порт, а клиент получает ответ от сервера уже на 68 порт.

Offer

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

Request

Третий этап — это этап запроса. После того как клиент получил предложение об аренде IP-адреса, он принимает его путем отправки сообщения DHCPREQUEST. Когда отправленное сообщение было доставлено до DHCP-сервера, он сообщает всем устройствам в сети, что адрес занят.

Acknowledgement

Четвертый и завершающий этап — это этап подтверждения. Клиент отправляет DHCP-серверу сообщение DHCPREQUEST, а сервер отправляет ответ с финальным сообщением DHCPACK, тем самым окончательно подтверждая, что выделенный IP-адрес присвоен клиенту. Помимо присвоения самого IP-адреса сервер также назначает срок (время аренды), в течение которого клиент может использовать выданный IP-адрес.

По истечении времени аренды IP-адреса процесс DORA начинается заново.

Также существуют дополнительные типы сообщений, которые могут встретиться при работе с протоколом DHCP.

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

Срок аренды IP-адреса

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

Существуют случаи, когда время аренды заканчивается, а клиент продолжает использовать ранее назначенный IP-адрес. В таком случае клиент формирует и отправляет запрос на продление срока действия IP-адреса.

Реализация DHCP-сервера в различных операционных системах

В операционных системах Windows Server присутствует стандартный компонент под названием «DHCP-сервер», при помощи которого вы можете развернуть DHCP-сервер в вашей сети. На обычных (домашних и профессиональных) версиях Windows по умолчанию отсутствует возможность создания своего DHCP-сервера, но вы можете воспользоваться средствами виртуализации для создания виртуальной машины с ОС Linux/Unix и установить одну из существующих реализация DHCP-сервера (см. ниже).

В операционных системах Linux и Unix основной реализацией DHCP-сервера является программа с открытым исходным кодом под названием ISC DHCP, разработанная некоммерческой организацией Internet Systems Consortium, которая занимается поддержкой инфраструктуры всемирной глобальной сети Интернет. Пакет называется isc-dhcp-server для Debian-based-дистрибутивов и dhcp-server для дистрибутивов, основанных на Red Hat. Также для Linux- и Unix-систем можно использовать сторонние программы, такие как dhcpy6d (только для IPv6-адресов), Dnsmasq (несмотря на то, что он является DNS-сервером, также имеет поддержку DHCP-сервера), Kea DHCP. Все перечисленные программы бесплатны и имеют открытый исходный код.

Достоинства и недостатки протокола DHCP

Среди достоинств протокола DHCP можно выделить следующие:

  • Упрощение администрирования сети путем использования автоматического назначения IP-адресов и, как следствие, сокращения числа возможных ошибок со стороны администратора.

  • Протокол DHCP можно использовать в сетях любых масштабов, начиная от домашней локальной сети и заканчивая сетью предприятия.

  • Возможность «бесшовного» использования сетевого подключения благодаря поддержке использования протокола DHCP в разных подсетях — при смене подсети на другую назначенный ранее IP-адрес может использоваться без разрыва соединения.

К недостаткам протокола DHCP относят следующие:

  • При использовании одного DHCP-сервера существует возможность его недоступности. В этом случае новые клиенты не смогу получать IP-адреса, а уже получившие смогут использовать их до конца срока аренды.

  • Если используемая сеть поделена на подсети, то необходима дополнительная настройка в виде конфигурации агентов ретрансляции. Это связано с тем, что по умолчанию трафик DHCP не проходит между подсетями.

Заключение

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

15 мая 2024 г.
394
9 минут чтения
Средний рейтинг статьи: 2
Комментарии 2
Marat •
Marat •
17.05.2024, 13:27

> DHCPINFORM. Данный тип сообщения отправляется от клиента к серверу и означает, что был получен статический IP-адрес, в то время когда конфигурация клиента требует динамического IP-адреса. Разве для этого не используется DHCPRELEASE?

Timeweb
Timeweb
20.05.2024, 06:42

Добрый день! DHCPRELEASE — это запрос на отказ от адреса; сообщением такого типа клиент уведомляет сервер о том, что он освобождает используемый IP-адрес. Другими словами, это досрочное окончание аренды.