DHCP или Dynamic Host Configuration Protocol — это используемый в сетях протокол посредством которого сетевое устройство может автоматически получать сетевые настройки необходимые для связи с другими устройствами во время загрузки. Использование DHCP-сервера в вашей локальной сети значительно упрощает администрирование сетевых устройств, а также позволяет централизовать точку управления сетей.
DHCP-сервер может предоставить IP-адрес устройства, маска сети, DNS-серверы, IP-адрес шлюза, широковещательный адрес сети, к которой вы принадлежите, адреса серверов точного времени и другие более экзотические настройки.
Если у вас всего 2-3 компьютера обычно предпочтение отдается ручной настройке сети. Но в настоящее время появилось множество сетевых устройств для каждого из которых настройка сетевых параметров может оказаться очень сложной, а иногда и невозможной вовсе. Это является основным фактором, который мы должны учитывать в пользу установки и настройки DHCP-сервера в нашей сети. DHCP-сервер может существенно упростить настройку сетевых устройств.
Однако ручное назначение IP-адресов всегда необходимо, если вы развертываете в своей сети серверы . Серверы всегда должны иметь статическимй IP-адрес.
Теперь давайте посмотрим, как работает DHCP-сервер в сети.
Сетевое устройство, которому необходимо назначить статический адрес, отправляет в сеть широковещательный запрос с сообщением «DHCP Discover». Отправленное сообщение от клиентского устройства также включает в себя его MAC-адрес. Клиенты отправляют это сообщение, чтобы определить, имеется ли сервер DHCP где-то в сети.
Слушающий DHCP-сервер принимает широковещательный кадр и отвечает клиенту сообщением «DHCP Offer»: ответ содержит сетевые настройки, необходимые для регистрации клиента в сети. Обычно это IP-адрес, маска подсети, шлюз по умолчанию и другие сетевые параметры.
После получения ответа от сервера клиент, если он удовлетворен полученными настройками, отправляет сообщение «DHCP Request» обратно на сервер DHCP и сообщает, что он согласен с формальными настройками сети. Сервер, отправивший предложение, фиксирует запрошенный IP-адрес за данным клиентом. Опять же, отправляется широковещательной запрос т.к. в сети могут быть другие DHCP-серверы и они должны быть в курсе появления нового устройства.
Наконец, сервер DHCP отвечает одноадресным сообщением «DHCP ACK». На этом этапе IP-адрес и все другие параметры сети отправляются на наше сетевое устройство, поскольку теперь они одобрены для использования клиентом.
Internet Software Consortium является основным автором и разработчиком самого распостраненного DHCP-сервера в Linux, который обычно называют сервером ISC DHCP. В Ubuntu / Debian соответствующий двоичный пакет называется isc-dhcp-server . Рассмотрим как установить и настроить DHCP-сервер.
Установка сервера ISC DHCP
Установим пакет.
sudo apt install isc-dhcp-server
На всякий случай сделаем резервную копию конфигурационного файла
cp /etc/dhcp/dhcpd.conf{,.backup} cat /dev/null > /etc/dhcp/dhcpd.conf
Настройка DHCP
nano /etc/dhcp/dhcpd.conf
subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.100 192.168.38.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.38.255; option domain-name-servers 8.8.8.8, 8.8.4.4; option domain-name "workgroup"; option routers 192.168.38.1; default-lease-time 7200; max-lease-time 480000; }
Все строки параметров в файле конфигурации dhcp заканчиваются точкой с запятой (;). Некоторые параметры могут иметь не одно значение, например, domain-name-servers, у которого два IP-адреса, разделенные запятой. Строки, начинающиеся с ‘#’, являются комментариями и не обрабатываются сервером dhcp.
Некоторые общие параметры сервера DHCP:
subnet— Параметр объявляет подсеть (в нашем случае 192.168.38.0 с маской 255.255.255.0)
range — Диапазон выдаваемых адресов ( от 192.168.38.100 до 192.168.38.254).
option subnet-mask — Маска сети. ( 255.255.255.0)
option broadcast-address — Широковещательный адрес. (192.168.38.255)
domain-name-servers — Адреса серверов DNS. (8.8.8.8, 8.8.4.4)
option domain-name — Доменное имя.(workgroup)
option routers — Определяет IP-адрес вашего шлюза или точки выхода в сеть.(192.168.38.1)
После того как вы отредактировали основной файл конфигурации и объявили диапазоны IP, откройте файл /etc/default/isc-dhcp-server и замените параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя воспользуйтесь командами ipconfig или ip.
INTERFACESv4 = "enp1s8"
Наконец, после внесения всех изменений перезапустите сервер dhcp, чтобы применить новую конфигурацию и проверить статус службы, выполнив следующие команды:
systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server
Настройка DHCP-сервера с резервированием IP-адреса.
Часто возникает необходимость зарезервировать за устройством (сервером, принтером и т.д.) постоянный IP-адрес. В этом случае вам нужно знать его MAC- адрес.
nano /etc/dhcp/dhcpd.conf
Пример резервирования IP-адреса 192.168.38.5 за компьютером SERVER:
subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.100…. .......................................... host SERVER { hardware ethernet 08:60:6e:d6:5e:ff; fixed-address 192.168.38.5;} }
После того, как вы внесли изменения в конфигурационный файл, перезапустите сервер DHCP следующей командой:
systemctl restart isc-dhcp-server
Это все! Вы успешно установили и настроили DHCP-сервер.