Что такое DHCP – как включить и настроить
В статье описывается протокол DHCP, и приводятся примеры конфигурирования в операционных системах семейства Windows 7 — 10, Windows Server 2008 R2 – 2016, CentOS/RHEL, Ubuntu.
DHCP – это протокол динамической конфигурации хостов (Dynamic Host Configuration Protocol) разработан для передачи сетевых настроек. Основывается на клиент-серверной архитектуре, применяется для автоматической настройки сетевых интерфейсов компьютерного и сетевого оборудования, а также для устройств поддерживающих загрузку по сети. К основным передаваемым параметрам относятся – IP-адрес, маска, шлюз, DNS. Сервер DHCP может передавать дополнительные опции в зависимости от требований клиента и сетевого окружения.
Распределение адресов
В службе DHCP предусмотрены ручной, автоматический и динамический способы выдачи адресов. Ручной метод основан на резервировании одного IP клиента для конкретного физического адреса (MAC). Удобство состоит лишь в том, что настройка интерфейса клиента происходит автоматически и IP выдается на постоянное использование. В случае автоматического выделения – сервер назначает IP уже из заданного пула адресов. При динамическом – сетевой адрес выдается на определенное время, при этом служба гарантирует, что до истечения установленного интервала времени этот адрес не будет выдан другому клиенту. В этом случае период времени называется временем аренды (lease time).
Принцип работы
По архитектуре, работа протокола основана на взаимодействии сервера и клиента посредством обмена сообщений. Все сообщения делятся на специальные поля:
Поле | Байты (октеты) | Пояснение |
---|---|---|
Op | 1 | Код сообщения. 1 = запрос, 2 = ответ |
Htype | 1 | Тип адреса устройства — физический, сетевой. |
Hlen | 1 | Длина адреса устройства. |
Hops | 1 | Число узлов с ретранслятором между хостами. |
Xid | 4 | Идентификатор соответствия запроса и ответа. |
Secs | 2 | Время в секундах. Отсчет от начала запроса. |
Flags | 2 | Флаги. |
Ciaddr | 4 | IP клиента. |
Yiaddr | 4 | В документации RFC 2131 — « (клиент) IP «. |
Siaddr | 4 | IP очередного DHCP сервера. |
Giaddr | 4 | IP ретранслятора. |
Chaddr | 16 | MAC-address клиента. |
Sname | 64 | Серверное имя (не обязательное). |
File | 128 | Наименование файла загрузки. |
Options | переменный | Опциональные параметры. |
Формат сообщений во многом унаследован от предшествующего протокола BOOTP, при отправке используются транспортный протокол UDP, порты DHCP 67, 68.
Протокольный обмен между клиентом и сервером происходит по следующим сообщениям:
- запрос параметров с одного сервера и отказ на предложения других серверов;
- подтверждает корректность ранее предоставленного адреса (например, после перезагрузки);
- продление аренды сетевого адреса.
Есть еще одно интересное свойство службы – работа в режиме ретранслятора (relay). Когда клиент и сервер находятся в разных подсетях, возникают проблемы при передаче конфигурационных параметров (маршрутизатор не принимает широковещательную рассылку), в этом случае можно использовать службу в качестве ретранслятора. Тогда ретранслятор для клиентской сети будет локальным сервером, а запрашивать параметры будет у основного сервера.
Включение DHCP
Для включения протокола динамической конфигурации узлов в среде Windows необходимо запустить службу DHCP-клиент и включить автоматическое получение IP в свойствах сетевого подключения. Подобные действия необходимы, если Windows сообщает, что DHCP не включен на сетевом адаптере. Выполняется поэтапно:
- Открыть «Панель управления» (в командной строке набрать команду «control» или воспользоваться меню «Пуск»).
- Выбрать «Администрирование».
- Запустить ярлык «Службы».
- Служба должна быть в статусе «Выполняется». Тип запуска «Автоматически».
- Используя «Панель управления», открыть «Центр управления сетями и общим доступом».
- Выбрать сетевой адаптер, к которому необходимо применить автоматические настройки.
- Установить переключатель IP и DNS сервера – получать автоматически.
Чтобы включить сервер в операционной системе семейства Linux необходимо:
BOOTPROTO=dhcp (CentOS/RHEL) auto «имя интерфейса» (для Ubuntu)
sudo systemctl restart networking – для CentOS/RHEL последовательно ifdown «имя интерфейса», ifup «имя интерфейса» - для Ubuntu.
Настройки на сервере
Для изменения параметров в операционной системе Windows Server, необходимо выполнить следующее:
- Добавить роль DHCP Server.
- Настроить группу безопасности DHCP Administrators.
- В консоли управления «Server Manager» открыть соответствующую оснастку.
- В оснастке задать параметры:
- наименование области (scope) и диапазон IP для раздачи;
- исключения в диапазоне;
- временной период аренды (lease);
- в качестве опций задать шлюз (gateway) и сервер DNS.
После активации области сервис будет готов к работе и начнет выдавать адреса клиентам.
В операционной системе семейства Linux следует выполнить следующие шаги:
- установить пакет «DHCP» или «isc-dhcp-server» из репозитория (в зависимости от дистрибутива CentOS/RHEL или Ubuntu);
- задать в конфигурации сервиса DHCP следующие параметры:
- subnet – сеть для которой применяются настройки;
- range – диапазон IP для раздачи;
- option routers – шлюз;
- max-lease-time – максимальное время аренды;
- default-lease-time — время аренды;
- option domain-name-servers – указываются DNS;
DHCP в роутере
Службу можно настроить и в маршрутизаторе, чтобы распределять IP для оборудования в локальной сети. Например, в роутере Zyxel Keenetic Lite III настройку службы DHCP можно произвести следующим образом (на других маршрутизаторах настраивается аналогично):
- Перейти в раздел домашней сети, сегменты.
- Выбрать необходимый сегмент сети, прокрутить до раздела «DHCP сервер» и задать необходимые параметры.
Возможности сервера
На стадии проектирования протокола, разработчики стремились решить следующие задачи:
- возможность контроля системными администраторами конфигурирования параметров сетевых устройств;
- минимальное участие клиентского хоста и помощи администратора;
- использование функции ретрансляции;
- гарантированно выдавать свободный IP;
- сохранять параметры при перезагрузке клиента.
Среди этих возможностей протокола следует отметить также важные функции, повышающие качество сервиса:
- резервное копирования хранилища сетевых настроек;
- задание альтернативной конфигурации (перемещение узлов между подсетями);
- достижение высокой доступности.
Эти возможности вместе с развитием серверных технологий операционных систем (кластеризация, отказоустойчивость) помогают свести к минимуму сбои в работе службы протокола динамической конфигурации узлов.
Преимущества и недостатки
К преимуществам протокола относятся:
- надежность назначения IP-адреса. Минимум ошибок при конфигурировании;
- сокращение издержек при администрировании сети;
- возможность использовать центральное расположение при конфигурировании;
- обеспечение эффективности работы, при частом изменение конфигурационных параметров клиентов;
- использование ретранслятора, что исключает необходимость установки DHCP-сервера в каждой подсети.
Недостатки, на которые необходимо обратить внимание при развертывании сервиса:
- DHCP работает на основе протоколов UDP и IP, которые в принципе не защищены;
- сложность фильтрации по IP-адресам;
- проблемы при настройке мониторинга интерфейса.