dhcpd

Секция: Maintenance Commands (8)


 

ЧТО ЭТО
КРАТКО
ОПИСАНИЕ
ПРИНЦИП ДЕЙСТВИЯ
КОМАНДНАЯ СТРОКА
КОНФИГУРАЦИЯ
Подсети
Сроки
Поддержка BOOTP
Параметры
ФАЙЛЫ
СМОТРИТЕ ДОПОЛНИТЕЛЬНО
АВТОР
ПЕРЕВОД

 

NAME

dhcpd - Сервер DHCP (DHCP - протокол динамической конфигурации хоста)  

КРАТКО

dhcpd [-p port] [-f] [-d] [-q] [-cf config-file] [-lf lease-file] [if0[...ifN]]  

ОПИСАНИЕ

В программном продукте ISC - dhcpd, реализована поддержка протоколов DHCP и BOOTP. Протокол DHCP позволяет хосту в TCP/IP сети запросить и получить от сервера IP-адрес, а также дополнительную информацию о сети к которой он подсоединен. BOOTP предоставляет примерно ту же функциональность с некоторыми ограничениями.  

ПРИНЦИП ДЕЙСТВИЯ

Протокол DHCP позволяет хосту автоматически получить IP-адрес, из специального пула адресов. Что бы это работало, администратор сети должен зарезервировать диапазоны адресов для раздачи клиентам в каждой подсети путем правки конфигурационного файла dhcpd.conf(5).

При старте dhcpd читает файл dhcpd.conf и сохраняет списки доступных аресов для каждой подсети в памяти. Когда клиент запрашивает адрес, используя используя протокол DHCP, сервер выдает ему свободный адрес. Обычно адрес предоставляется на ограниченный срок - назначается администратором, по умолчанию на сутки. Когда срок использования адреса подходит к концу, клиент предпринимает попытку продлить срок и при удачном исходе продолжает использовать выделенный ему адрес. В случае если срок истек, клиенту не разрешается использовать ранее полученный адрес.

Для сохранения информации о выданных адресах, на случай перезагрузки системы или рестарта dhcpd, список уже занятых адресов хранится в файле dhcpd.leases(5). Перед тем как выдать адрес хосту, dhcpd записывает его в этот файл и принудительно сбрасывает буфера на диск, что бы гарантировать сохранность информации даже с случае неожиданного краха системы. При старте, после чтения файла конфигурации, dhcpd читает dhcpd.leases что бы выяснить какие адреса свободны, а какие заняты клиентами.

Новые записи добавляются в конец файла, для предотвращения разрастания, время от времени dhcpd создает новый файл dhcpd.leases состоящий только из актуальных записей, а старый удаляет.

Протокол BOOTP так же поддерживается сервером. Но в связи с тем что он мало кому теперь нужен, я не перевожу части связанные с BOOTP. Желающие могут обратиться к оригинальной документации.

После того как в конфигурацию были внесены изменения, dhcpd должен быть перезапущен. Для этого можно послать процессу сигнал SIGTERM (сигнал 15), идентификатор процесса содержится в файле /var/run/dhcpd.pid, а затем запустить dhcpd еще раз.  

КОМАНДНАЯ СТРОКА

Имена сетевых интерфейсов на которых dhcpd должен ожидать запросы клиентов могут быть указаны в командной строке. Это может понадобиться в системах где dhcpd не сможет определить non-broadcast интерфейсы, но не других системах не требуется. Если имен интерфейсов не указаны, dhcpd определяет все "поднятые" интерфейсы, по возможности исключает non-broadcast, и ожидает широковещательных запросов на всех оставшихся.

Если dhcpd должен слушать на порту отличном от стандартного (port 67), нужно использовать параметр -p new_port , где new_port - udp порт на котором должен слушать dhcpd. Обычно это используется в отладочных целях. Если указан параметр -p, датаграммы которые должны пройти через relay-агентов, посылаются на порт указанный в -p, так что если есть желание использовать не стандартные порты, то придется также переконфигурировать relay-агентов на использование соответствующих портов.

Что бы заставить dhcpd выполняться передним планом, а не фоновым процессом, используется параметр -f Это используется когда например нужно запустить dhcpd под отладчиком или when running it out of inittab on System V systems.

Что бы направить всю отладочную информацию на устройство стандартной ошибки, укажите параметр -d. Это можно использовать при отладке или в тех случаях, когда необходимо сохранять информацию о работе dhcpd, но syslog по каким-то причинам не может быть использован. Обычно, dhcpd ведет логи используя стандартное средство - syslog, со значением log facility = LOG_DAEMON.

Dhcpd можно выполнить с альтернативным файлом конфигурации, с помощью параметра -cf , или альтернативным файлом dhcpd.leasas, используя опцию -lf. В виду того, что очень важно использовать всегда одну и туже базу данных занятых адресов в рабочем(производственном) режиме работы, то опция -lf должна использоваться только только в тестовых целях и в тестовом окружении.

В случае когда dhcpd запускается из системных стартовых скриптов, может быть полезным параметр -q, который подавляет вывод сообщений о копирайте.  

КОНФИГУРАЦИЯ

Синтаксис файла конфигурации dhcpd.conf(5) обсуждается отдельно. Этот раздел лишь краткий обзор процесса настройки сервера DHCP.

 

Подсети

Серверу dhcpd необходимо знать адреса и маски подсетей для которых он предоставляет свой сервис. Кроме того для нормальной работы - динамического выделения адресов, необходимо определить один или несколько диапазонов адресов из которых адреса будут назначаться клиентам. Очень простой пример конфигурации может выглядеть так:

        subnet 239.252.197.0 netmask 255.255.255.0 {
          range 239.252.197.10 239.252.197.250;
        }

Несколько диапазонов можно указать следующим образом:


        subnet 239.252.197.0 netmask 255.255.255.0 {
          range 239.252.197.10 239.252.197.107;
          range 239.252.197.113 239.252.197.250;
        }

Если в подсети не используется динамическое назначение адресов, то параметр range можно опустить, но секция subnet должна присутствовать.

 

Сроки

Адреса сервером DHCP могут быть назначены на любой срок, от 0 секунд до неограниченного срока. Сроки в основном определяются спецификой хостов, обслуживаемых dhcpd. К примеру, в офисе где большинство хостов перемещаются / добавляются / изымаются редко можно назначать адреса на месяц или даже больше, напротив в тестовой лаборатории, где компьютеры проходят процедуру проверки, а затем упаковываются и отправляются дальше, уместно установить срок в 30 минут.

Существует возможность задать два значения срока: значение по умолчанию - для клиентов не требующих адрес на конкретно указанный срок и максимальное значение. В файле конфигурации это выглядит так:


        subnet 239.252.197.0 netmask 255.255.255.0 {
          range 239.252.197.10 239.252.197.107;
          default-lease-time 600;
          max-lease-time 7200;
        }

В данном случае в описании подсети задается значение срока по умолчанию равное 600 секундам (10 минут), и максимальное значение срока - 7200 секунд (2 часа). Другими часто используемыми значениями являются 86400 (один день), 604800 (одна неделя) и 2592000 (30 дней).

 

Поддержка BOOTP

Каждый BOOTP клиент должен быть описан в файле dhcpd.conf. В описании BOOTP клиента указываются: аппаратный адрес сетевого интерфейса, IP адрес назначаемый клиенту, в случае если клиент использует для своей загрузки файл с сервера - необходимо указать имя файла. Описание BOOTP клиента может выглядеть следующим образом:

        host haagen {
          hardware ethernet 08:00:2b:4c:59:23;
          fixed-address 239.252.197.9;
          filename "/tftpboot/haagen.boot";
        }
 

Параметры

Протокол DHCP предоставляет механизм, с помощь которого сервер может предоставлять клиентам информацию о конфигурации сетевых интерфейсов, а так же о наличии и возможности доступа к различным сетевым сервисам.

Параметры задаются в файле конфигурации и могут быть как глобальными, так и относиться только к одной подсети или даже только к одному хосту. Более подробно о всех возможных параметрах можно прочитать в руководстве по dhcpd.conf(5) и dhcpd-options(5)  

ФАЙЛЫ

/etc/dhcpd.conf, /var/state/dhcp/dhcpd.leases, /var/run/dhcpd.pid, /var/state/dhcp/dhcpd.leases~.  

СМОТРИТЕ ДОПОЛНИТЕЛЬНО

dhcrelay(8), dhcpd.conf(5), dhcpd.leases(5), RFC2132, RFC2131.  

AUTHOR

Сервер dhcpd (8) написан Тедом Лемоном (Ted Lemon) <mellon@vix.com> по контракту с Vixie Labs. Финансирование осуществлялось ISC. Информацию об ISC можно найти их сайте в интернет: http://www.isc.org/isc.  

ПЕРЕВОД

Перевод выполнен Лаптевым Андреем - lantan@chat.ru
йЮПРЮ яЮИРЮ