/var/state/dhcp/dhcpd.leases

Хранение информации об объектах аренды протокола DHCP

Синтаксис:

/var/state/dhcp/dhcpd.leases

Платформы:

ЗОСРВ «Нейтрино»

Описание:

При запросе клиентом IP-адреса под протоколом DHCP сервис dhcpd назначает адрес из пула IP-адресов, хранящегося в файле /etc/dhcpd.conf. Перед предоставлением клиенту аренды на этом адресе сервис dhcpd записывает информацию об аренде в базу даных объектов аренды, ASCII-файл свободной формы (/var/state/dhcp/dhcpd.leases), в котором содержатся последовательности объявлений аренды. Сервис dhcpd обеспечивает перенос содержимого файла на жесткий диск; информация о назначенной аренде будет сохранена даже в случае полного отказа системы. При запуске, после считывания данных из файла dhcpd.conf, сервис dhcpd также считывает данные из сохраненного файла dhcpd.leases.

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

Новые объекты аренды добавляются в конец файла dhcpd.leases. Периодически сервис dhcpd удаляет устаревшую информацию для предотвращения неограниченного роста размера файла.

При первой установке сервиса dhcpd база данных объектов аренды отсутствует. Однако поскольку без нее запуск сервиса невозможен, перед предоставлением услуг DHCP необходимо создать пустой файл /var/state/dhcpd/dhcpd.leases.

Для предотвращения неограниченного увеличения размера базы данных объектов аренды сервис dhcpd периодически перезаписывает этот файл. В первую очередь сервис dhcpd создает временную базу данных объектов аренды, в которую выгружает все известные объекты аренды. Затем он переименовывает старую базу данных объектов аренды в /var/state/dhcpd/dhcpd.leases~ для создания резервной копии. Наконец, сервис записывает новую базу данных объектов аренды как /var/state/dhcpd/dhcpd.leases.

У этого процесса действительно есть уязвимость. Если сервис dhcpd уничтожен или произошел полный отказ системы после переименования старой базы данных объектов аренды, но до создания новой, то файл /var/state/dhcpd/dhcpd.leases будет отсутствовать. В этом случае потребуется запустить сервис dhcpd вручную. Если это так, не следует создавать новый файл объектов аренды; в противном случае все старые назначения будут потеряны, и новый файл объектов аренды не будет соответствовать информации объектов аренды, хранящейся на хостах клиентов. Вместо этого переименуйте файл /var/state/dhcpd/dhcpd.leases~ в /var/state/dhcpd/dhcpd.leases, восстановив таким образом старый действительный файл объектов аренды, после чего запустите сервис dhcpd. Выполнение этих инструкций обеспечит восстановление действительного файла объектов аренды.

Описания объектов аренды хранятся в формате, который анализируется тем же самым синтаксическим анализатором с рекурсивным спуском, который используется для чтения файлов /etc/dhcpd.conf. В настоящее время единственным используемым в файле dhcpd.leases объявлением является объявление аренды.

Каждое объявление аренды включает один IP-адрес, который был арендован клиенту. Заключенные в фигурные скобки операторы определяют продолжительность и получателя аренды.

Продолжительность аренды записана операторами starts и ends. Даты указаны следующим образом:

день_недели гггг/мм/дд чч:мм:сс;

День недели приведен для наглядности: он обозначен числом от нуля до шести, где нуль соответствует воскресенью. День недели игнорируется на вводе. Поскольку год указан со столетием, он должен, как правило, включать четыре цифры за исключением действительно длинной аренды. Месяц указан как число, начиная с 1 для января. День месяца указан аналогично, начиная с 1. Час представляет собой число в интервале 0...23, минута – число в интервале 0...59, и секунда – также число в интервале 0...59. Промежутки времени аренды указаны во всемирном скоординированном времени (UCT), а не в местном часовом поясе.

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

Использованный для получения аренды MAC-адрес сетевого интерфейса записывается с оператором hardware:

hardware тип-оборудования MAC-адрес;

Аргумент MAC-адрес указывается как последовательность шестнадцатеричных октетов, разделенных двоеточиями.

Если клиентом для получения адреса был использован идентификатор клиента, то последний записывается с использованием оператора uid следующим образом:

uid идентификатор-клиента;

Переменная идентификатор-клиента записывается последовательностью шестнадцатеричных октетов, независимо от того, указывает ли клиент строку ASCII или использует более новый формат тип оборудования/MAC-адрес.

Если клиент отправляет имя хоста с помощью опции Client Hostname, как указано в некоторых версиях проекта "Взаимодействие DHCP-DNS", имя хоста записывается с использованием оператора client-hostname:

client-hostname "имяхоста";

Если клиент отправляет свое имя хоста с помощью опции Hostname, как, например, Windows 95, оно записывается с использованием оператора hostname:

hostname "имяхоста";

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

abandoned;

Брошенные объекты аренды восстанавливаются автоматически. Когда клиент запрашивает новый адрес, и сервер обнаруживает, что новые адреса отсутствуют, последний проверяет наличие брошенных объектов аренды и выделяет наиболее давно брошенный объект аренды. Поскольку стандартным механизмам проверки конфликтов аренды адреса по-прежнему следуют, если IP-адрес брошенного объекта аренды по-прежнему используется, он будет брошен повторно.

Если клиент запрашивает брошенный адрес, сервер предполагает, что адрес был брошен по причине повреждения файла аренды, и что клиент является компьютером, который ответил при проверке объекта аренды, в результате чего последний был брошен. В этом случае, адрес немедленно присваивается клиенту.

Примеры:

Далее приведен пример типичной записи аренды:

lease 192.168.42.1 { starts 0 2000/01/30 08:02:54; ends 5 2000/02/04 08:02:54; hardware ethernet 00:50:04:53:D5:57; uid 01:00:50:04:53:D5:57; client-hostname "PC0097"; }

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

dhcp.client, dhcpd, /etc/dhcpd.conf, dhcprelay, syslogd

Основано на: RFC 2131, RFC 2132




Предыдущий раздел: Конфигурационные файлы