DHCP (Dynamic Host Configuration Protocol) дает возможность клиенту получать сетевые и административные параметры с центрального сервера, отвечающего за их распространение. Данные параметры клиент получает на некоторое определенное время. Протокол DHCP оперирует понятием «аренды» IP-адреса. По истечении половины срока аренды клиент должен ее продлить. Сервер обязан отслеживать адреса, предоставленные в аренду, и сохранять эту информацию при перезагрузке. Если сервера DHCP нет, то сообщение может быть передано в другие подсети через специальный прокси-сервер, называемый агентом ретрансляции. В ОС Linux сервер DHCP представлен ПО ISC DHCP, которое содержится в пакете dhcp, и использует в качестве своего основного конфигурационного файла /etc/dhcpd.conf. Для конфигурирования DHCP-сервера dhcpd нужно отредактировать файл dhcpd.conf.sample в каталоге /usr/share/doc/dhcp-<версияl> и записать его под именем /etc/dhcpd.conf. Необходимо также создать пустой файл базы данных по арендуемым параметрам, назвав его /var/lib/dhcpd/dhcpd.leases. После этого необходимо убедиться в том, что демон dhcpd имеет право записи в этот файл. Для заполнения файла dhcpd.conf потребуется следующая информация:
адреса подсетей, для которых демон dhcpd должен управлять IP-адресами, и диапазоны выделяемых адресов;
начальный и максимальный сроки аренды в секундах;
конфигурационные параметры клиентов ВООТР, если таковые имеются (им назначаются статические IP-адреса, также должны быть указаны их аппаратные МАС-адреса);
все остальные параметры, которые сервер должен передавать DHCP-клиентам: сетевая маска, стандартный маршрут, домен DNS, адреса серверов имен и т.д.
На страницах руководства man, посвященных демону dhcpd, дан обзор процесса конфигурации. Точный синтаксис конфигурационного файла описан на man странице файла dhcpd.conf.
Демон dhcpd должен автоматически запускаться на этапе начальной загрузки системы. Для этого в ОС Linux присутствует сценарий его автозапуске /etc/init.d/dhcpd.conf. Для задания дополнительных аргументов демону dhcpd в процессе начальной загрузки необходимо отредактировать запись DHCPDARGS= в файле /etc/sysconfig/dhcpd.
В типовом файле dhcpd.conf директива ddns-update-style interim указывает на то, что используется механизм динамического обновления DNS, при котором база DNS имен обновляется после того, как сервер DHCP обновит IP-адрес. Директива ignore client-updates, не позволяет пользователям изменять свои имена хостов. Далее в директиве subnet указывается пул IP-адресов, которые DHCP сервер предоставляет в аренду своим клиентам. Затем следует несколько директив, позволяющих клиенту определить сервер DNS, шлюз по умолчанию и маску подсети. В директиве range выделяется диапазон IP-адресов, которые можно присваивать клиентам. В директивах default-lease-time и max-lease-time указывается, соответственно время аренды IP-адреса (в секундах) и максимальное время аренды IP-адреса (в секундах). В конце файла dhcpd.conf указан сервер DNS, для которого на данном DHCP сервере зарезервирован какой-то IP-адрес. DHCP клиент в ОС Linux не требует особого конфигурирования. Для его работы достаточно установить пакет dhclient и в конфигурационном файле сетевого интерфейса, например, /etc/sysconfig/network-scripts/ifcfg-eth0, добавить следующие записи:
BOOTPROTO='dhcp' ONBOOT='yes"
Файлы с информацией о статусе каждого соединения клиента DHCP хранятся в каталоге /var/lib/dhclient. Имя файла соответствует имени описываемого интерфейса. Например, файл dhclient-eth0.leases будет содержать все сетевые параметры, которые демон dhclient закрепил за интерфейсом eth0.