Это программное обеспечение является свободным. В различное время разработка происходила в разных организациях, включая ISC и Vixie Enterprises. Разработка третьей версии почти полностью финансируется Nominum, Inc.
На данном этапе разработка контролируется Тедом Лемоном (Ted Lemon) и размещается ISC, но будущее этого проекта зависит от вас. Если у вас есть предложения по улучшению, обратитесь за их реализацией к ним.
Протокол DHCP позволяет назначить хосту, неизвестному сетевому администратору, новый IP адрес из списка свободных адресов этой сети. Для того, чтобы это работало, сетевой администратор определяет список свободных адресов для каждой подсети в файле dhcpd.conf(5).
При запуске dhcpd читает файл dhcpd.conf и хранит список свободных адресов каждой подсети в памяти. При запросе клиентом адреса по протоколу DHCP, dhcpd находит адрес для него. Каждому клиенту назначается аренда (lease), которая истекает по истечении указанного администратором срока (по умолчанию - один день. Перед тем, как срок аренды истечет, клиент должен снова запросить адрес. После истечения срока аренды клиенту запрещается использовать арендованный IP адрес.
Для того, чтобы отслеживать аренду адресов при перезагрузке и рестарте сервера, dhcpd хранит список арендованных адресов в файле dhcpd.leases(5). Перед тем, как dhcpd позволяет аренду хосту, он записывает данные об аренде в файл и убеждается, что файл реально сохранён (буфер сброшен на диск). Это гарантирует даже при сбое системы сохранение информации о выданных адресах. При запуске после чтения файла dhcpd.conf читается файл dhcpd.leases для построения в памяти списка выданных адресов.
Последние выданные адреса записываются в конец файла dhcpd.leases. Для предотвращения распухания файла, время от времени dhcpd создает новый файл dhcpd.leases из свежего списка. Когда новый файл записывается на диск, старый файл переименовывается в dhcpd.leases~, а новый файл переименовывается в dhcpd.leases. При сбое системы во время этого процесса это позволяет сохранить всю информацию в файле dhcpd.leases без дополнительных усилий по восстановлению после сбоев.
Этот сервер также поддерживает BOOTP. В отличие от DHCP, протокол BOOTP не позволяет восстановить динамически назначенные адреса, когда они больше не нужны. Можно динамически назначать адреса клиентам BOOTP, но для утилизации неиспользуемых адресов потребуется некоторый административный процесс. По умолчанию срок аренды адресов клиентами BOOTP бесконечен, хотя сетевые администраторы могут назначить более раннюю дату отсечения и меньший срок аренды, если необходимо.
Клиенты BOOTP могут обслуживаться и в стандартном режиме. В этом случае для каждого клиента BOOTP в файле dhcpd.conf назначается постоянный адрес.
Чтобы изменения, сделанные в файле dhcpd.conf, вступили в силу, dhcpd должен быть перезагружен. Для перезапуска dhcpd, отправьте SIGTERM (сигнал 15) процессу, идентификатор которого находится в файле RUNDIR/dhcpd.pid. Поскольку база данных сервера DHCP не такая маленькая, как база данных BOOTP, dhcpd автоматически не перезапускается при обнаружении изменений в файле dhcpd.conf.
Примечание: мы получили массу недовольных отзывов об этом поведении. Мы понимаем, что будет удобно, когда посылается сигнал SIGHUP серверу и база данных перечитывается. Технически это не невозможно, но потребует большого объема работы, а наши ресурсы сильно ограничены и будет лучше, если они будут потрачены на что-то другое. Поэтому, пожалуйста, не жалуйтесь на это в списке рассылки, если у вас нет для реализации этой возможности финансов или умения.
Имена сетевых интерфейсов, на которых dhcpd должен слушать широковещательные запросы, могут быть указаны в командной строке. Это должно быть сделано на системах, где dhcpd не может определить нешироковещательные интерфейсы, но не требуется на других системах. Если в командной строке не указаны имена интерфейсов, dhcpd будет слушать на всех интерфейсах, поддерживающих широковещательные запросы.
Для изменения стандартного порта для прослушивания (порт 67), используйте опцию -p . После нее должен быть указан номер порта UDP. Это очень полезно для отладки.
Для запуска dhcpd как обычного процесса вместо запуска его как демона в фоновом процессе, укажите опцию -f . Это полезно при запуске dhcpd в отладчике или запуске на системах System V.
Для вывода сообщений dhcpd на стандартный поток ошибок укажите опцию -d . Это полезно для отладки и в случае, когда работа syslogd ненадёжна или невозможна. Обычно, dhcpd выводит все сообщения через функцию syslog(3) с установленной службой LOG_DAEMON. При указании -d автоматически применяется -f (демон на запускается в фоновом режиме).
Dhcpd может читать другой файл конфигурации, указанный после опции -cf , альтернативный файл назначенных адресов, указанный после -lf , или альтернативный файл с идентификатором процесса, указанный после -pf . Поскольку важно использовать одну базу назначенных адресов все время для работающего dhcpd, эти опции должны быть использованы только для тестирования файлов назначенных адресов или файлов баз данных не в реально работающей среде.
При запуске dhcpd из скриптов запуска системы (например, /etc/rc), нежелательно выводить полный текст об авторских правах при запуске. Для того, чтобы подавить вывод этой информации, укажите опцию -q .
Сервер DHCP читает два файла при запуске: файл конфигурации и базу назначенных адресов. Если указана опция -t , сервер только проверит правильность синтаксиса файла конфигурации, но не будет осуществлять никаких операций с сетью. Это может быть использовано для проверки новых файлов конфигурации перед их реальным использованием.
Опция -T используется для проверки синтаксиса файла назначенных адресов таким же способом.
Опции -tf и -play позволяют указать файл, в который заносятся или считываются полное состояние сервера и всех транзакций. Это может быть полезно для сообщений об ошибках: если вы часто получаете сбой программы, запустите сервер с опцией -tf и файл трассировки будет содержать все транзакции, которые привели к сбою, и проблема может быть легко локализована при отладке с опцией -play.
Опция -play должна быть указана с альтернативным файлом назначенных адресов после опции -lf для того, чтобы тестовые данные не переписали реальные. Сервер DHCP не сможет функционировать в этом режиме воспроизведения, если вы не укажите альтернативный файл выданных адресов.
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; }
Если работа подсети обеспечивается только службой BOOTP и не используется динамическое назначение адресов, указывается раздел subnet, но без диапазонов (range).
Например, в офисе, где время от времени (но не так часто) появляются и исчезают компьютеры, можно установить срок от месяца и больше. В производственном отделе, где проходит окончательное тестирование компьютерной техники, не смысла назначать срок более 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 секунд (два часа). Другие употребимые значения: 86400 (один день), 604800 (одна неделя) и 2592000 (30 дней).
Для разных подсетей, обслуживаемых одним сервером DHCP, могут быть указаны совершенно различные сроки аренды (как в случае с офисом и производственным отделом).
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 239.252.197.9; filename "/tftpboot/haagen.boot"; }
Эти опции указываются для подсети или для клиентов BOOTP - для каждого клиента. В случае, если опции указаны и для отдельного клиента и для подсети, в которую он входит, предпочтение отдается опциям, указанным для клиента. Более полная конфигурация DHCP может иметь вид:
subnet 239.252.197.0 netmask 255.255.255.0 { range 239.252.197.10 239.252.197.250; default-lease-time 600 max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 239.252.197.255; option routers 239.252.197.1; option domain-name-servers 239.252.197.2, 239.252.197.3; option domain-name "isc.org"; }
Хост bootp в этой подсети должен быть в другом домене и использовать другой сервер DNS:
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 239.252.197.9; filename "/tftpboot/haagen.boot"; option domain-name-servers 192.5.5.1; option domain-name "vix.com"; }
Полное описание синтаксиса файла dhcpd.conf дано в dhcpd.conf(5).
Пользовательские программы вместо использования протокола OMAPI напрямую предпочитают использовать API dhcpctl или OMAPI. Dhcpctl - программа-обертка, которая поддерживает некоторые действия, автоматизирующие работу с OMAPI. Dhcpctl и OMAPI описаны в dhcpctl(3) и omapi(3).
OMAPI экспортирует объекты, которые могут быть просмотрены или изменены. Сервер DHCP экспортирует следующие объекты: lease, host, failover-state и group. Каждый объект методы работы с ним: lookup, create и destroy. Кроме того, можно просматривать атрибуты этого объекта и в некоторых случаях изменить их.
Объекты аренды имеют следующие атрибуты:
state integer поиск, просмотр
1 = свободен 2 = активен 3 = устарел 4 = возвращен 5 = заброшен 6 = сброшен 7 = резервная копия 8 = зарезервирован 9 = bootp
ip-address data поиск, просмотр
dhcp-client-identifier data поиск, просмотр, изменение
client-hostname data просмотр, изменение
host handle просмотр
subnet handle просмотр
pool handle просмотр
billing-class handle просмотр
hardware-address data просмотр, изменение
hardware-type integer просмотр, изменение
ends time просмотр
tstp time просмотр
cltt time просмотр
Объекты хостов имеют следующие атрибуты:
name data поиск, просмотр, изменение
group handle просмотр, изменение
hardware-address data поиск, просмотр, изменение
hardware-type integer поиск, просмотр, изменение
dhcp-client-identifier data поиск, просмотр, изменение
ip-address data просмотр, изменение
statements data изменение
known integer просмотр, изменение
Именованные группы пока могут быть только привязаны к хостам - это позволяет задавать одинаковые условия сразу для нескольких хостов.
Объекты групп имеют следующие атрибуты:
name data
statements data
При выключении сервера также корректно завершаются все соединения OMAPI. Если соединение не может быть корректно завершено в течение 5 секунд, они закрываются принудительно, поэтому с момента начала выключения сервера до реального выхода из программы проходит более 25 секунд.
Для выключения сервера, откройте объект контроля и установите атрибута state в 2.
name data просмотр
partner-address data просмотр
local-address data просмотр
partner-port data просмотр
local-port data просмотр
max-outstanding-updates integer просмотр
mclt integer просмотр
load-balance-max-secs integer просмотр
load-balance-hba data просмотр
local-state integer просмотр, изменение
1 - партнер выключен 2 - обычная работа 3 - обмен данными прерван 4 - разрешение прервано 5 - потенциальный конфликт 6 - восстановление 7 - восстановление закончено 8 - выключение 9 - пауза 10 - запуск 11 - идет восстановление
partner-state integer просмотр
local-stos integer просмотр
partner-stos integer просмотр
hierarchy integer просмотр
last-packet-sent integer просмотр
last-timestamp-received integer просмотр
skew integer просмотр
max-response-delay integer просмотр
cur-unacked-updates integer просмотр
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |