Тариф успешно добавлен в корзину
В корзину
url image

Что такое DHCP-протокол?

DHCP-протокол

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

Для чего нужен протокол DHCP

Dynamic Host Configuration Protocol (DHCP) — это сетевой протокол, который позволяет автоматически назначать подключаемым к сети устройствам IP-адреса и другие параметры конфигурации. Он упрощает управление и снижает вероятность конфликтов — назначения двум устройствам одного и того же адреса.

IP-адрес — это идентификатор ресурса в сети стандарта TCP/IP. Он состоит из четырёх блоков (октетов) цифр, разделённых точками: например, 98.139.100.15 — адрес сайта yahoo.com. Ресурсы в этом контексте — это сетевые устройства и веб-страницы.  

Компьютеры, телефоны и т.д. могут отправлять и получать данные внутри локальной сети, если их адрес уникален внутри этой сети. Для обмена данными в Интернете у устройства-отправителя в соответствующем поле IP-пакета должен быть указан адрес, уникальный в масштабах Интернета. Его также называют публичным или «белым». 

Он может быть как присвоен непосредственно устройству, так и преобразован из локального адреса. Преобразование осуществляет маршрутизатор или брандмауэр методом NAT.

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

Стандарт для протокола DHCP

Принципы, правила и функции протокола DHCP зафиксированы в документе RFC 2131, выпущенном в 1997 году (русский перевод). Он заменил документ RFC 2141 от 1993 года. 

RFC (Request for comments, запрос на комментарии) — это серия публикаций об основных стандартах и протоколах Интернета. Например, существуют RFC о протоколе IPконцепциях и объектах инфраструктуры DNSуникальном идентификаторе ресурса URL.  

Такие документы с 1969 года выпускает IETF (Инженерный совет Интернета, Internet Engineering Task Force) и другие организации по техническому развитию и разработке стандартов для Интернета. Некоторые RFC приняты IETF в качестве стандартов Интернета.

Ещё раньше, в 1985 году, появился предшественник DHCP — протокол BOOTP (Bootstrap Protocol, RFC 951).

Как работает DHCP

Когда устройство подключается к сети, в которой есть DHCP-сервер, оно запрашивает у него IP-адрес. 

На этом сервере хранится список IP-адресов для выдачи, который называется пулом. В него входит один или несколько диапазонов последовательных адресов. 

Сервер назначает новому устройству IP-адрес и другие параметры сетевой конфигурации — адрес шлюза по умолчанию, время аренды и прочие (эти параметры подробно описаны в разделе Опции DHCP).

Время аренды

IP-адреса выдаются на определённый промежуток времени, который называется временем аренды (lease time). Его длительность определяет администратор сети. 

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

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

При этом в корпоративной сети Wi-Fi срок аренды может составлять 8-12 часов, так как в течение всего рабочего дня внутри здания остаются одни и те же сотрудники со своими телефонами и ноутбуками. 

А для служебных компьютеров, постоянно подключённых к сети по Ethernet-кабелю, разумно устанавливать сроки аренды от одной недели — если в организации десятки или сотни таких рабочих мест, частое обращение клиентов за продлением аренды увеличит сетевой трафик и замедлит работу в сети. 

Архитектура DHCP

Протокол DHCP использует клиент-серверную модель взаимодействия. В неё входят DHCP-сервер, клиенты и иногда агенты ретрансляции.

Архитектура DHCP

Архитектура DHCP

DHCP-сервер

Так называют и программу, при помощи которой адреса автоматически выдаются клиентам, и оборудование в локальной сети, на котором эта программа работает: компьютер или маршрутизатор в организации или у Интернет-провайдера.

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

Большая часть пула выделена для динамического назначения (способы назначения подробно описаны в разделе Способы назначения адресов): устройства подключаются к сети на ограниченный период, который после завершения может продлеваться.

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

Некоторые адреса или диапазоны могут быть исключены из пула — например, если администратор уже назначил их определённым устройствам вручную.

DHCP-клиент

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

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

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

Таким агентом служит программа, размещённая на коммутаторе или маршрутизаторе, имеющем доступ к DHCP-серверу настроенном для приёма запросов на подключение к сети. 

Опции DHCP

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

Стандартные опции

  • Опция 001: маска подсети

Значение этого параметра определяет размер подсети, которой управляет DHCP-сервер, то есть количество устройств, которые могут получить адрес. От этого зависит, на какое сетевое оборудование — коммутатор или маршрутизатор — будут отправляться данные от клиента.

Чтобы обратиться к ресурсу за пределами подсети — например, в Интернете, — устройству нужен маршрутизатор. А если он обращается к узлу в своей подсети — например, к торрент-серверу, —  то их связывает коммутатор.

  • Опция 003: маршрутизатор (шлюз по умолчанию)

Шлюз — это узел, служащий точкой доступа к другой сети для сетевых устройств. Обычно это маршрутизатор.

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

  • Опция 006: DNS-сервер

Эта опция позволяет указать адрес DNS-сервера, чтобы устройства в локальной сети могли обращаться к нему для разрешения (преобразования) доменных имён в IP-адреса. Здесь можно указать основной и резервный адреса. Такой сервер может находиться внутри этой сети либо за её пределами.

  • Опция 051: время аренды

В этой опции указывается максимальный промежуток времени в секундах, в течение которого клиент может использовать адрес до продления аренды.

  • Опция 082: информация для настройки агента ретрансляции

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

Самые важные подопции в ней:

  • 082.1 Идентификатор порта — информация для идентификации порта, к которому подключён удалённый клиент;
  • 082.2 Идентификатор удалённого клиента.

Менее распространённые опции

Ниже приведены примеры опций, которые реже назначаются подключаемым клиентским устройствам.

  • Опция 012: имя хоста клиента

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

Значение этого параметра — например, galaxywatch — указывают при изготовлении устройства (позже пользователь может изменить hostname по своему усмотрению). Устройство может отправлять его серверу в запросе на подключение: «Мне нужен IP-адрес на имя galaxywatch». 

Не все серверы поддерживают эту опцию. Кроме того, она может быть отключена из соображений безопасности.

  • Опция 015: доменное имя

Эта опция позволяет передать устройству имя домена, которое будет автоматически добавляться при обращении к ресурсам, имя которых не содержит доменной части. Таким образом можно использовать простые имена ресурсов без указания полного имени домена. 

Например, если компьютер получает от DHCP-сервера опцию, в которой указан домен firstvds, то при обращении с хоста, допустим, на ресурс blog, DNS-запрос автоматически будет идти по адресу blog.firstvds. 

  • Опция 042: список NTP-серверов в порядке предпочтения

NTP — сетевой протокол для синхронизации внутренних часов компьютера с эталонными часами — такими считаются часы на NTP-серверах. Опция 42 используется для синхронизации времени на DHCP-клиенте со временем на таком сервере точного времени.

  • Опция 101: часовой пояс в виде строки

В этом параметре указывается часовой пояс, в котором находится локальная сеть. Он обозначается по стандарту базы данных часовых поясов (tz database): например, Asia/Tokyo.

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

DHCP-сервер назначает клиентам IP-адреса одним из трёх способов:

Динамическое назначение

Это самый распространённый способ назначения адресов. IP-адрес и другие параметры сетевой конфигурации назначаются каждому клиенту по запросу на срок аренды, определяемый администратором. Когда этот срок истекает, клиент снова запрашивает у сервера эту конфигурацию. 

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

Статическое (ручное) назначение

Когда адрес устройства не должен меняться — например, если это сетевой принтер, — обычно используют статическое назначение.

Администратор создаёт на DHCP-сервере таблицу распределения: вносит в неё MAC-адреса, которым нужен статический адрес, и назначает каждому IP-адрес.

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

За МАС-адресом такого клиента закрепляется постоянный IP-адрес в этой сети. При последующих подключениях он всегда будет получать именно этот адрес. 

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

Автоматическое назначение

Для этого способа администратор выделяет специальный диапазон IP-адресов. При первом подключении к сети устройство получает из этого диапазона первый свободный адрес и другие сетевые настройки. На сервере создаётся таблица соответствий IP- и MAC-адресов, и в дальнейшем все устройства в таблице получают те адреса, которые им были назначены при первом подключении. При этом время аренды не ограничивается. 

От статического назначения этот способ отличается тем, что администратор не участвует в составлении этой таблицы — она создаётся на сервере автоматически по мере подключения новых устройств.

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

Процедура назначения IP-адреса

Подключение клиента к сети, или инициализация, состоит из четырёх основных этапов, начальные буквы названий которых составляют аббревиатуру DORA — таким сокращением эти четыре этапа обычно и называют.

Взаимодействие клиентского устройства с сервером продолжается на этапе продления аренды и завершается отключением от сети. 

Последовательность обмена DHCP-сообщениями

Последовательность обмена DHCP-сообщениями 

1. DHCPDISCOVER — обнаружение

Новое устройство пытается подключиться к сети (например, по кабелю или Wi-Fi). У него пока нет IP-адреса, поэтому оно отправляет сообщения со своего МАС-адреса. Его первое широковещательное (адресованное всем MAC-адресам в локальной сети) сообщение — DHCPDISCOVER: «Мне нужен IP-адрес. Есть ли здесь DHCP-серверы?».

2. DHCPOFFER — предложение

Путём такой же широковещательной рассылки один или несколько серверов отправляют новому клиенту сообщение DHCPOFFER, предлагая в аренду один из IP-адресов этой сети: «Вот IP-адрес и другие параметры конфигурации».

3. DHCPREQUEST — запрос

Клиент выбирает предложение от одного из серверов (как правило, первое полученное) и отправляет всем серверам сообщение DHCPREQUEST о принятом адресе: «Я выбрал IP-адрес от этого DHCP-сервера».

4. DHCPACK — подтверждение

Выбранный сервер отправляет всем устройствам в сети сообщение DHCPACK: «Устройство с этим MAC-адресом получило такую сетевую конфигурацию». В этом сообщении указаны IP нового клиента, время аренды, адрес шлюза, с которого начинается обращение к внешним адресам, и адрес DNS-сервера для разрешения доменных имён в Интернете.

С полученным адресом новый клиент может обращаться как к устройствам в локальной сети, так и к ресурсам в Интернете.

5. DHCPREQUEST, DHCPACK и DHCPNAK — продление

Когда истекает половина срока аренды (T1), клиент отправляет серверу сообщение DHCPREQUEST — запрос на продление аренды.

Если сервер принимает запрос, он посылает клиенту в ответ сообщение DHCPACK, и отсчёт его времени аренды начинается заново. 

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

Сервер может отклонить запрос о продлении сообщением DHCPNAK. После этого клиент заново рассылает широковещательное сообщение DHCPDISCOVER.

Когда время аренды заканчивается, клиент начинает процесс DORA заново.

6. DHCPRELEASE — завершение

Клиент завершает аренду, отправляя на сервер сообщение DHCPRELEASE. После этого IP-адрес отключённого клиента возвращается в пул.

Преимущества и недостатки протокола DHCP

Преимущества

Использование протокола DHCP имеет значительные преимущества перед ручным назначением IP-адресов.

  • Cетевые подключения обрабатываются без участия администратора на одном устройстве — DHCP-сервере, что снижает трудозатраты по администрированию сети.
  • Допускается гораздо меньше ошибок — например, опечаток или конфликтов адресов, — чем при ручной настройке:  
  • Переносные устройства, подключённые к сети Wi-Fi — например, ноутбуки студентов, переходящих из одной аудитории в другую, — при перемещении в другие сегменты сети мгновенно меняют адрес, и пользователи практически не замечают разрывов связи.

Недостатки

С использованием протокола DHCP связаны и некоторые сложности, которые нужно учитывать.

  • Если в сети настроен только один DHCP-сервер, он может быть единой точкой отказа: новые клиенты не смогут получить IP-адреса. Клиенты, которые уже получили свои адреса, будут использовать их до окончания срока аренды. 
  • Если администрируемая сеть разделена на подсети, а сервер установлен только в одной из подсетей, то в остальных необходимо настроить агенты ретрансляции, так как DHCP-пакеты не проходят из одной подсети в другую.
  • Для сети, где настроен DHCP-сервер, существуют угрозы безопасности. Злоумышленник может настроить в локальной сети свой DHCP-сервер с неверной сетевой конфигурацией, чтобы клиентские устройства потеряли доступ к сети, либо организовать поток поддельных сообщений DHCPREQUEST, чтобы быстро исчерпать пул адресов на сервере. Нужно учитывать возможность таких атак и принимать меры по защите локальной сети. 

Взаимодействие протоколов DHCP и DNS

DNS (Domain Name System, система доменных имён) — это иерархическая  децентрализованная система именования компьютеров, сервисов и других объектов в сети, подключённых к Интернету или частной сети. DNS работает как телефонный справочник: он позволяет соотносить доменные имена, которые удобно запоминать людям, и числовые IP-адреса, которые удобно использовать для управления при помощи компьютеров. Например, IP-адрес firstvds.ru — 37.230.118.233.  

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

Для поиска нужных ресурсов по их доменным именам устройства обращаются к DNS-серверу. Его адрес входит в набор сетевых параметров, которые они получают от DHCP-сервера при подключении. DNS-сервер — это программа, как и DHCP-сервер, и может работать на одном с ним компьютере или маршрутизаторе. 

Для обращения к внешним адресам DNS-сервер не обязательно должен располагаться внутри локальной сети, можно пользоваться и внешним сервисом. Часто в качестве внешнего DNS-сервера используют публичный бесплатный сервер — например, от Google или CloudFlare.

 

Что такое DNS-сервер и зачем он нужен

 

Протокол DHCP, без сомнения, упрощает управление сетью. У него есть и недостатки; особенного внимания требуют угрозы безопасности. При этом базовые принципы и архитектура DHCP не меняются, и современные сети редко обходятся без применения этого протокола.

 

Автор статьи: Клара Суботэ.

Этот материал был полезен?

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!