Привет, друзья! Сегодня я хочу рассказать что же такое DHCP, для чего это нужно и как всё работает. Почему я поднимаю эту тему? Да просто уже устал объяснять прописные истины. Ко мне постоянно поступает множество вопросов по настройкам модемов и роутеров и я понимаю, что большинство просто не в курсе даже самых-самых основополагающих принципов функционирования локальной сети. Смысл тогда лезть в настройку устройства, если не понимаешь даже что собираешься делать?! Именно для повышения уровня компьютерной грамотности я и написал эту статью.
Напомню сначала, что есть два основных типа вычислительных сетей — локальные (LAN) и глобальные (WAN).
Локальная сеть работает в пределах одной комнаты \ квартиры \ здания \ организации. То есть её размер ограничен одним или несколькими сегментами.
Глобальная сеть — это, конечно же, самая крупная глобальная сеть в мире — Интернет. К какой бы сети Вы не подцепились — Вы должны получить в ней адрес, помогающий идентифицировать любое подключенное устройство. Он будет присвоен на время (динамически) или навсегда (статически). Кроме этого вы получаете маску сети, адрес шлюза и DNS-серверов. Без этого работать ничего нормально не будет. Так вот контролировать этот процесс в автоматическом режиме и призван протокол DHCP. Без него в крупной сети будет полнейший бардак.
Есть такой протокол DHCP….
И вот мы плавно подошли к основной теме статьи. DHCP — Dynamic Host Configuration Protocol— это протокол динамической настройки узла. Он клиент-серверный и предназначен для настройки каждого подключенного хоста с помощью удаленного сервера. На сегодняшний день 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
При работе протокола динамической адресации используются четыре типа сообщений, которыми обмениваются клиент и сервер. Давайте рассмотрим их подробнее.
DHCPDISCOVER
С данного сообщение начинается процесс взаимодействия между клиентом и сервером посредством DHCP. Оно отправляется клиентом (компьютером, телефоном, планшетом, телевизором или устройством), которое подключилось к данной сети. Сообщение широковещательное, то есть в нём используется 255.255.255.255 как IP-адрес доставки, а исходным адресом является 0.0.0.0
DHCPOFFER
Это сообщение отправляется сервером хосту в ответ на полученный ранее DHCPDISCOVER. В нём содержатся все необходимые сетевые настройки, применив которые новое устройство сможет работать в этом сегменте.
DHCPREQUEST
Опять широковещательно сообщение, которое клиент отправляет серверу в ответ DHCPOFFER. Оно означает, что клиент выбрал отправленный ему вариант конфигурации сетевого подключения.
DHCPACK
Финальное сообщение от сервера DHCP клиенту в ответ на DHCPREQUEST. Оно обозначает конец процесса общения, начатого с сообщения DHCPDISCOVER. Получив его, клиент должен применить согласованные ранее настройки сетевого интерфейс, используя предоставленные опции.
Прочие сообщения протокола:
DHCPNAK
Полная противоположность сообщению DHCPACK. Оно означает прекращение общения между сервером, описанного выше. Необходимо начать процедуру заново!
DHCPRELEASE
Сообщение отправляется клиентом в тот момент, когда он завершает процесс использования занимаемого им IP-адреса.
DHCPDECLINE
Если предлагаемый сервером IP-адрес уже занят, то клиент отправляет серверу данное сообщение и после этого процесс их общения перезапускается с самого начала.
DHCPINFORM
Этот вид сообщений отправляется клиентом серверу в тех случаях, когда клиенту присвоен статический IP-адрес, и выделение динамического не требуется. В ответ сразу прилетает DHCPACK.
Механизм общения клиента и сервера
Теперь, когда мы узнали все типы используемых в протоколе DHCP сообщений, давайте посмотрим как на практике происходит общение клиента и сервера.
Этап 1. Клиентское устройство — компьютер, телефон, принтер, телевизор и т.п.- подключается к сети. Он отправляет широковещательный запрос DHCPDISCOVER в поисках сервера. Для этого используется транспортный протокол UDP и порт 67. Начинается процесс авторизации.
Этап 2. Сервер получил запрос DHCPDISCOVER, то в ответ шлёт сообщение DHCPOFFER, где предлагает клиенту варианты настройки сетевого адаптера — IP-адрес, маску подсети, шлюз и DNS-серверы. и информация о шлюзе. Отправка идёт уже не в широковещательном формате а непосредственно хосту, отправившему запрос. Для этого в поле CHADDR прописывается его MAC-адрес. Теперь используется тот же протокол UDP, но порт уже 68.
Этап 3. Клиент просматривает выбранные конфигурации, выбирает приемлемую ему и формирует сообщение DHCPREQUEST, указав в нём какой вариант он выбрал. Если в сети несколько DHCP-серверов и прилетело несколько сообщений DHCPOFFER, то клиент указывает в ответе нужный ему сервер.
Этап 4. Сервер получает от клиента DHCPREQUEST и отправляет в ответ DHCPACK, говоря клиентскому устройству о том, что оно теперь в праве использовать назначенный ему IP-адрес. На этом процесс общения оканчивается и новый хост появляется в сети.
Аренда IP-адресов
Как я уже сказал ранее, IP-адреса выдаются DHCP-сервером на определённое заранее время — Lease Time. Это значение задаётся при настройке сервера обычно в минутах или часах, но в некоторых случаях может быть задано и в секундах. Время аренды периодически обновляется, говоря серверу о том, что данный узел «живой». Как только половина срока аренды пройдёт, DCHP-клиент будет пытаться автоматически продлить время аренды путем обмена сообщениями DHCPREQUEST и DHCPACK.
Когда срок аренды адреса истечёт, а подтверждение не прилетит, либо прилетит пакет DHCPRELEASE, сервер сможет присвоить данный IP-адрес другому компьютеру или устройству, подключающемуся в данный момент времени.
Настройка DHCP на роутере
Первым делом Вы должны попасть в настройки своего WiFi-роутера. Сделать это можно либо с компьютера, введя в браузере его локальный IP (обычно это 192.168.1.1 или 192.168.0.1). После авторизации необходимо в главном меню веб-интерфейса найти раздел, отвечающий за локальную сеть (LAN). В некоторых случаях, как в моём примере, настройка DCHP на роутере выведена в отдельный раздел:
Включение и выключение сервера обычно выполняется с помощью галочек «Включить»/»Отключить» или «Enable»/»Disable». На некоторых моделях это может быть выполнено в виде выпадающего списка.
Как правило, на любом WiFi-маршрутизаторе можно задать пул IP-адресов для клиентов, которые будут выдаваться сервером. При необходимости его можно увеличить, либо убавить, оставив адреса для статических подключений.
Ещё один важный параметр — это время аренды IP-адреса (тот самый Lease Time) о котором я рассказывал выше. По умолчанию на моём роутере он выставлен на 120 минут. Максимальное значение — 2000 минут. После того, как Вы внесёте какие-то изменения в настройки устройства — обязательно не забудьте сохранить настройки. В противном случае, после перезагрузки в силу вступят старые параметры.