Что такое DHCP и как он работает? (Объяснение основных принципов)
Навеянно очень слабой подготовкой кандидатов на должность системного администратора, может быть чем больше информации будет в сети, тем гугл будет быстрее направлять специалистов на нужную информацию?! =))
Компьютерные сети бывают разных видов и конфигураций: локальные (LAN), глобальные (WAN) и т.д. Если вы подключаетесь к локальной LAN сети или интернету, компьютеру присваивается собственный IP адрес. Он помогает идентифицировать любое устройство, подключенное к сети. В большинстве случаев, когда вы подключаетесь к LAN или интернету, вы можете заметить, что IP и другая информация, например маска подсети, присваиваются автоматически. Задумывались вы, как это происходит? В этой статье мы попробуем разобрать концепцию DHCP, на которой основываются принципы данного процесса.
Что такое DHCP?
DHCP - это протокол динамической настройки узла.
Как можно понять из названия, DHCP предназначен для настройки хоста через удаленный сервер. DCHP поддерживается по умолчанию большинством современных операционных систем, и этот протокол выступает в качестве отличной альтернативы рутинной ручной настройке параметров сети для сервера или подключаемого устройства.
Данный протокол работает на основе модели "Клиент-сервер". Являясь протоколом, DHCP имеет свой собственный метод обмена сообщениями между клиентом и сервером. Ниже представлен состав сообщения DHCP:
Поле |
Длина (байты) |
Описание |
op |
1 |
Тип сообщения |
htype |
1 |
Тип адреса аппаратной части |
hlen |
1 |
Длина адреса аппаратной части |
hops |
1 |
Используемое количество агентов ретрансляции. Клиенты устанавливают значение на 0. |
xid |
4 |
ID (уникальный идентификационный номер) транзакции используемой клиентом и серверов во время сессии |
secs |
2 |
Прошедшее время (в секундах) с момента запроса клиентом начала процесса |
flags |
2 |
Значение флагов |
ciaddr |
4 |
IP-адрес клиента (если имелся ранее). |
yiaddr |
4 |
IP-адрес, предложенный сервером клиенту |
siaddr |
4 |
IP-адрес сервера |
giaddr |
4 |
IP-адрес relay-агента (агента ретрансляции) |
chaddr |
16 |
Адрес аппаратной части клиента (в основном MAC). |
sname |
64 |
Имя сервера. |
file |
128 |
Название загрузочного файла. |
options |
изменяемая |
Дополнительные опции |
Знание основ DHCP помогает в устранении различных проблем с сетью. В следующей части статьи мы затронем принципы работы протокола.
Как работает DHCP?
Перед изучением самого процесса, с помощью которого достигается поставленная цель, необходимо понять различные принципы обмена информацией, которые используются в данном процессе.
DHCPDISCOVER
Это сообщение обозначает начало DHCP взаимодействия между клиентом и сервером. Данное сообщение отправляется клиентом (компьютером или устройством), подключенным к сети. В этом сообщении используется 255.255.255.255 как IP-адрес доставки, тогда как исходным адресом является 0.0.0.0
DHCPOFFER
Это сообщение отправляется в ответ на DHCPDISCOVER от сервера DHCP для подключенных клиентов. В этом сообщении содержатся необходимые сетевые настройки.
DHCPREQUEST
Данное сообщение является ответом на DHCPOFFER, и обозначает, что клиент принял отправленные настройки.
DHCPACK
Данное сообщение отправляется на сервер протокола DHCP в ответ на DHCPREQUEST от клиента. Сообщение обозначает конец процесса, начатого с сообщения DHCPDISCOVER. Т.е. DHCPACK - это не что иное, как подтверждение от сервера начала авторизации клиента и принятие параметров конфигурации, полученных в самом начале от сервера.
DHCPNAK
Данное сообщение является противоположностью DHCPACK, описанного выше. Оно отправляется на сервер в случае, если невозможно удовлетворить параметры DHCPREQUEST клиента.
DHCPDECLINE
Сообщение отправляется клиентом на сервер в случае, если IP-адрес, присваиваемый в DHCP уже используется.
DHCPINFORM
Сообщение отправляется серверу в том случае, если клиенту DHCP присвоен статический IP-адрес, а по настройкам конфигурации необходим динамический адрес.
DHCPRELEASE
Сообщение отправляется клиентов в том случае, если он завершает процесс использования сетевого адреса.
Теперь, когда мы познакомились с различными сообщениями в DHCP, можно изучить весь процесс работы, чтобы получить более полное представление. Шаги ниже описываются исходя из того, что все настройки установлены по умолчанию.
Шаг 1.
Когда клиент (компьютер или устройство) загружается или подключается к сети, серверу отправляется сообщение DHCPDISCOVER. Если нет никаких дополнительных данных о конфигурации, то сообщение отправляется с адреса 0.0.0.0 к 255.255.255.255. Если сервер DHCP находится в локальной подсети, то она напрямую получает сообщение, если он находится в другой подсети, то используется агент ретрансляции для передачи запроса к серверу DCHP. Используется протокол передачи UDP через порт 67. Клиент на данном этапе начинает стадию авторизации.
Шаг 2.
В тот момент как сервер получил запрос DHCPDISCOVER, то он отправляет в ответ сообщение DHCPOFFER. Как говорилось ранее, в этом сообщении содержатся все необходимые параметры конфигурации, запрашиваемые клиентом. Например, IP-адрес, необходимый клиенту, а также значение маски подсети и информация о шлюзе. Также сервер сразу заполняет значения MAC-адреса в поле CHADDR. Сообщение отправляется клиенту от адреса 255.255.255.255 напрямую, а если сервер находится в другой подсети, то используются агенты ретрансляции, который отвечает за то, чтобы сообщение было доставлено. В этом случае для передачи применяется протокол UDP через порт 68. На этом этапе клиент начинает подбирать параметры.
Шаг 3.
Клиент формирует сообщение DHCPREQUEST, которое служит ответом на DHCPOFFER от сервера, указав, что он принимает параметры конфигурации, отправленные ему. Если бы было несколько серверов DCHP, то клиент бы получил также несколько сообщений DHCPOFFER, но клиент отвечает только одному серверу, заполняя параметры конфигурации для настройки. Таким образом, он проходит авторизацию с получением IP-адреса от одного конкретного сервера DHCP. Все сообщение от других серверов блокируются. Сообщение DHCPREQUEST по-прежнему будет содержать адрес источника 0.0.0.0, если клиенту все еще нельзя использовать IP-адреса, полученные в сообщении DHCPOFFER. В течение этого этапа клиент получает ответы на свои запросы.
Шаг 4.
Как только сервер получает DHCPREQUEST от клиента, он посылает DHCPACK сообщение о том, что теперь клиент может использовать IP-адрес, назначенный к нему. Клиент окончательно подключается к сети и с настроенными параметрами.
Концепция аренды
В дополнении к остальной необходимой информации о том, как работает DHCP, следует также знать IP-адрес, назначенный в DHCP сервером в аренду клиенту. После истечения срока аренды сервер DHCP может свободно присвоить этот IP-адрес другому компьютеру или устройству, запрашивающему то же самое. Например, сохранение срока аренды 8-10 часов полезно для компьютеров, которые обычно выключают в конце дня. Поэтому аренда должна продлеваться время от времени. После истечения половины срока аренды, DCHP клиент обычно пытается автоматически продлить данный срок. Это делается путем обмена DHCPREQUEST и DHCPACK сообщениями. Благодаря этому начинается стадия обновления данных для клиента.
Комментарии
Вопрос
Скажите пожалуйста, а передаётся ли имя компьютера во время работы протокола DHCP?
Ошибка в тексте
Измените пару ошибок в тексте, например, вот здесь Что такое DCHP?
Спасибо за замечание,
Спасибо за замечание, исправил
ошибка
dhcpoffer отправляется не от 255.255.255.255, srcip будет сам адрес dhcp-сервера, если dhcp-сервер в одной сети с клиентом, то offer отправляется на 255.255.255.255, а если в другой сети, то будет отправляться юникастом до шлюза сети, в которую нужно ip выдать
Оставить комментарий