У нас есть настройка DHCP для выдачи аренды в следующем диапазоне:
192.168.10.190 - 192.168.10.254 (roughly 65 leases)
В нашей сети малого бизнеса всего около 30 компьютеров, использующих DHCP. Мы заметили, что dhcpd перестал выдавать новую динамическую аренду компьютерам, хотя в сети определенно не 65 компьютеров.
Почему перестали сдавать аренду? Разве это не освобождение старых неиспользованных договоров аренды? Как нам сказать dhcpd отказаться от старых договоров аренды и снова начать раздавать новые?
Это зависит от многих факторов, самая важная из которых - срок аренды. Если вы дадите очень большой срок аренды, dhcpd может перестать выдавать новые, пока не истечет срок аренды.
Проверка журнала (системного журнала), скорее всего, даст вам прямую подсказку о том, что происходит.
«Исправить» это сложно. Вы можете остановить процесс dhcpd и напрямую отредактировать файл аренды. Это рискованно, если вы не уверены, что делаете. Могут быть инструменты, чтобы справиться с этим за вас, или инструменты, по крайней мере, для перечисления содержимого.
Обычно время истечения срока аренды не имеет здесь никакого отношения, если клиенты правильно отправляют пакет DHCPRELEASE в конце связи клиент-сервер DHCP. Кроме того, инструкция check-ping в dhcpd.conf должна помочь решить проблему или, по крайней мере, показать источник. По моему опыту, проблемы с арендой могут возникнуть из-за глючных клиентов - процесс следующий:
grep -i ff:ff:ff $PATH_TO_DHCPD_LEASES_FILE
С другой стороны, помните, что в файле dhcpd.leases также есть просроченные аренды. Таким образом, может показаться, что используются все договоры аренды, но это не так. Вы должны легко проанализировать этот файл с помощью awk и grep (или perl), чтобы узнать, сколько из них используется.Также - вы можете очистить файл аренды и перезапустить сервер. Это может помочь вам увидеть, как выглядит процесс. Но имейте в виду, что если у вас нет клиентов DHCP с ручным управлением (IP-адрес назначается в зависимости от MAC), IP-адреса, предоставленные для рабочих станций, могут и, вероятно, изменятся.
Правильный вариант здесь - использовать one-lease-per-client
вариант. Пример:
#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#
ddns-update-style none;
option domain-name "example.net";
option domain-name-servers 1.1.1.1, 2.2.2.2;
option ntp-servers ntp.example.net;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
deny declines;
deny duplicates;
one-lease-per-client true;
default-lease-time
и max-lease-time
не имеют ничего общего с максимальными записями аренды (только время истечения срока аренды, созданного в то время). deny duplicates
также будет гарантировать, что у вас не может быть дублированных записей аренды для одного и того же Mac, но с другой идентификацией клиента (хост с двойной загрузкой, вероятно, выйдет из строя, если вы загрузите дополнительную ОС, когда у вашей основной ОС еще есть действующая аренда). deny declines
сделаю DHCPDECLINE
запросы, поступающие от клиентов, игнорируются.
Проверьте свои default-lease-time
и max-lease-time
настройки в /etc/dhcpd3/dhcpd.conf
Если параметр истечения срока аренды чрезвычайно высок, возможно, сохраняются очень старые договоры аренды. Если это проблема, уменьшение времени истечения срока аренды должно освободить аренды, срок действия которых превышает новый срок истечения срока аренды.