Product SiteDocumentation Site

10.7. DHCP

DHCP (расшифровывается как Dynamic Host Configuration Protocol или протокол динамической настройки узла) является протоколом, по которому машина может получать в автоматическом режиме номер IP (и соответственно взаимоувязывать его со своими сетевыми интерфейсами), присваиваемый ей в момент загрузки. Это позволяет централизовать управление настройками сети (компьютеров, подсоединяющихся к данной сети), и быть уверенным, что все настольные машины получат похожие параметры.
Сервер DHCP предоставляет много разных сетевых параметров. Самым распространенным из них является предоставление IP-адреса машине в сети, к которой она подсоединилась, но кроме этого предоставляет и другую информацию, например кто является сервером DNS, серверами WINS, серверами NTP, и так далее.
Главным авторитетным сервером DHCP является The Internet Software Consortium (или "ISC", который также участвовал в разработке bind). Соответствующий пакет в Debian - isc-dhcp-server.

10.7.1. Настройка

Первыми элементами, которые необходимо отредактировать, в настройках файла сервера DHCP (/etc/dhcp/dhcpd.conf) являются доменное имя и сервера DNS. Если этот сервер расположен в локальной сети (как определено широковещательной рассылкой), директива authoritative должна быть также включена (или раскомментирована). Необходимо также создать секцию subnet, описывающую локальную сеть и включающую информацию о настройках. Следующий пример соответствует локальной сети 192.168.0.0/24 с маршрутизатором 192.168.0.1, который одновременно выступает и в роли шлюза. Доступные адреса IP располагаются в диапазоне с 192.168.0.128 до 192.168.0.254.

Пример 10.15. Выдержка из /etc/dhcp/dhcpd.conf

#
# Пример настройки файла ISC dhcpd в Debian
#

# Параметр ddns-updates-style контролирует будет или нет сервер
# пытаться делать обновление DNS когда a lease is confirmed. Мы по 
# умолчанию используем поведение версии 2 пакета ('none', 
# поскольку DHCP v2 не имеет поддержки DDNS.)
ddns-update-style interim;

# параметры, общие для всех поддерживаемых сетей...
option domain-name "internal.falcot.com";
option domain-name-servers ns.internal.falcot.com;

default-lease-time 600;
max-lease-time 7200;

# Если этот сервер DHCP является официальным сервером DHCP для локальной
# сети, то директива "authoritative" должна быть раскомментирована.
authoritative;

# Используется для посылки сообщений, касающихся dhcp, для записи в 
# другой журнал (вы можете использовать журнал syslog.conf для полного 
# перенаправления).
log-facility local7;

# My subnet
subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    range 192.168.0.128 192.168.0.254;
    ddns-domainname "internal.falcot.com";
}

10.7.2. DHCP и DNS

Приятной особеностью является возможность присвоения каждой машиной осмысленного (что-то значащего) имени в момент её регистрации в качестве клиента DHCP в зоне DNS (а не что-то обезличенное, вроде machine-192-168-0-131.internal.falcot.com). Для использования такой возможности необходимо настроить сервер DNS, чтобы он принимал обновления для зоны DNS internal.falcot.com от сервера DHCP, который, в свою очередь, надо настроить таким образом, чтобы при каждом подключении и присвоении адреса какой-то машине, он сразу уведомлял об этом сервер DNS.
В случае с bind, директиву allow-update необходимо добавить в каждую зону, что сервер DHCP редактирует (для домена internal.falcot.com, и обратной зоны). Директива перечисляет адреса IP, для которых позволено делать такое обновление; и поэтому она должна содержать также и перечень возможных адресов серверов DHCP (обоих: локальный адрес и публичный, или внешний, адрес, если это уместно).
allow-update { 127.0.0.1 192.168.0.1 212.94.201.10 !any };
Остерегайтесь! Зоны, что могут быть видоизменены will, изменяются программой bind, и последняя будет перезаписывать конфигурационные файлы через регулярные интервалы (времени). Поскольку эта автоматизированная процедура создает файлы, которые менее удобочитаемые для человеческого восприятия, чем вручную написанные, администраторы Falcot вручную редактируют файл домена internal.falcot.com с делегированием сервера DNS; это значит: что зона файла falcot.com всегда остаётся под их ручным контролем.
Выдержка из файла по настройке сервера DHCP, приведённая выше, включает директивы, необходимые для обновления зоны DNS: это строки ddns-update-style interim; и ddns-domain-name "internal.falcot.com";, расположенные в блоке, описывающем подсеть.