Даже многие системные администраторы, годами работающие с сетевыми устройствами, не всегда могут дать чёткий и внятный ответ — что такое DHCP сервер. Знают что если он работает, то у компьютера появится IP-адрес — и то хорошо.
А ведь это очень важный момент! Этот протокол значительно облегчает жизнь системному администратору при настройке и управлении сетями. Он работает как в обычных домашних сетях на бытовых WiFi-роутерах и модемах, так и в крупных корпоративных сетях и помогает компьютеру, ноутбуку или иному сетевому устройству быстро получить АйПи-адрес и идентифицироваться.
Давайте подробнее рассмотрим основные принципы работы DHCP сервера.
Содержание
Что такое DHCP?
DHCP — Dynamic Host Configuration Protocol — это протокол динамической настройки узла прикладного уровня по модели OSI. Он разработан ещё в 1993 году, но до сих пор не только не потерял актуальности, но и наоборот — получил новую версию для работы с протоколом IPv6. Модель работы — «Клиент-сервер». При этом, у DHCP-сервера есть собственный метод обмена сообщениями между клиентом и сервером. Протокол позволяет выполнить автоматическую настройку протокола IP версии 4, а так же и более новой версии 6, тем самым облегчив процесс настройки сети и исключив вероятность ошибки при ручном вводе данных.
Что делает DHCP-сервер?!
На ДХЦП-сервере системным администратором задаётся определённый диапазон IP-адресов, которые можно выдавать устройствам-клиентам при обращении. При этом дополнительно может настраиваться срок аренды адреса (lease time) в течение которого он закреплён за MAC-адресом компьютера и не может быть занят иным устройством.
У сервера есть три варианта распределения адресов в сети:
1 — Динамическое. Именно этот вариант работает на 95% серверов. Адрес выдаётся компьютеру на определённый срок (время аренды), по истечению которого АйПи будет считаться свободным и может быть назначен иному компьютеру в сети.
2 — Автоматическое. Всё аналогично динамическому распределению, за тем лишь исключением, что IP выдаётся устройство на постоянной основе и более не меняется.
3 — Ручное. В этом случае администратором сервера составляется таблица соответствия IP и MAC-адресов устройств, согласно которой в дальнейшем они и будут получать сетевые параметры. Этот способ практически не используется. Если только в сетях с повышенным уровнем безопасности.
Как работает DHCP сервер
Работа сервера основывается на широковещательных сетевых запросах. Процедура «общения» клиента и сервера выглядить примерно так:
1. Клиент отправляет broadcast-сообщение «Мне нужен IP»
2. Сервер отвечает таким же сообщением «У меня есть адрес xxx.xxx.xxx.xxx. Устроит?»
3. Клиент — «Да устроит!»
4. Сервер — «ОК! Адрес xxx.xxx.xxx.xxx зарезервирован за тобой».
Для представленного «общения» используются следующие специальные широковещательные broadcast-запросы.
Вот, для наглядности, схема диалога клиента и сервера ДХЦП:
Диапазон IP-адресов, предназначенных для распределения между клиентами одной сети с помощью протокола DHCP, рассматривается как единый административный блок. Он называется «область действия» — scope. Если сервер работает с несколькими подсетями, то при настройке службы DHCP, администратор должен создать отдельную область действия для каждой физической подсети.
В идеале, для стабильной работы, для каждого обслуживаемого сегмента сети должно быть как минимум два DHCP-сервера, но для домашнего использования это требование не актуально.
Виды запросов сервера
Схема обмена сообщениями между клиентом и DHCP сервером:
DHCPDISCOVER — Это сообщение отправляется клиентом при подключении к сети для поиска активного DCHP сервера. При этом в качестве исходного IP используется 0.0.0.0, а в качестве адреса доставки — 255.255.255.255.
DHCPOFFER — Ответное сообщение DHCP-сервера на клиентский запрос DHCPDISCOVER, в котором предлагаются определённые сетевые настройки.
DHCPREQUEST — Broadcast-сообщение от клиента в ответ на DHCPOFFER, сообщающее о том, что он принял настройки.
DHCPACK — ответное послание клиенту после получения от него DHCPREQUEST, означающее завершение процесса общения. Оно подтверждает о том, что всё согласовано и ПК может работать в сети.
DHCPRELEASE — Такое широковещательное сообщение отправляется клиентом если он прекращает использования сетевого адреса.
DHCPNAK — Этот ответ будет отправлен клиенту в случае, если невозможно удовлетворить параметры DHCPREQUEST.
DHCPDECLINE — Широковещательный ответ серверу в том случае, когда клиент обнаруживает, что присвоенный ему IP-адрес уже используется.
DHCPINFORM — Сообщение серверу в том случае, если у клиента DHCP прописан статический IP-адрес и он не нуждается в динамическом распределении.
Сообщения протокола DCHP имеют следующие поля:
Поле | Длина (байты) | Описание |
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 на сетевом адаптере
В операционной системе Windows 10 DHCP-клиент включен по умолчанию как служба, а на сетевом адаптере необходимо выставить автоматическое получение IP. Для этого нажимаем комбинацию клавиш Win+R чтобы открыть окно «Выполнить» и вводим команду ncpa.cpl.
Нажимаем на кнопку «ОК». Появится окно с сетевыми подключениями Виндовс 10.
На том адаптере, где хотим включить DHCP, кликаем правой кнопкой чтобы появилось контекстное меню. В меню — выбираем пункт «Свойства».
В следующем окне надо выбрать строчку «IP версии 4(TCP/IPv4)» и нажимаем на кнопку «Свойства» чтобы открыть параметры протокола:
Здесь необходимо поставить галочки на автоматическое получение адресов и нажать на кнопку «ОК».
В операционных системах семейства Linux все настройки прописаны в конфигурационных файлах. Например, в популярной Ubuntu это /etc/network/interfaces. Вот пример конфига, который позволяет включить DHCP на сетевом адаптере eth0:
Здесь:
auto eth0 — автоматическое включение сетевой карты eth0 при загрузке системы.
iface eth0 inet static — этой строчкой мы указываем системе, что интерфейс сетевой карты eth0 находится в диапазоне адресов с динамическим получением ip.
Если в системе работает менеджер соединение Network Manager, то можно включить DHCP на сетевом адаптере и в графическом интерфейсе:
P.S.:
Отдельно стоит отметить что наличие работающего сервиса DHCP является признаком хорошего тона для любой локальной сети. Настройка сервера требует от администратора особых серьёзных знаний! В большинстве современных сетевых устройств (терминалов, роутеров и модемов) он вообще уже настроен по умолчанию и не требует дополнительной конфигурации.
Спасибо! Изложено всё ясно и понятно.