В данном приложении описывается синтаксис команды dhcpd и файла настройки dhcpd.conf. Оно является справочником по серверу протокола динамической настройки (Internet Software Consortium Dynamic Host Configuration Protocol) - dhcpd. Чтобы полностью разобраться с настройкой и применением dhcpd в реально существующих сетях, обратитесь к руководству и примерам файлов настройки, приведенным в главе 9.

Информация в этом приложении относится к версии dhcpd, доступной на момент написания книги. Являясь бета-версией, программа, несомненно, будет дорабатываться и изменяться. Информация о наиболее актуальной версии dhcpd доступна по адресу http://www.isc.org/dhcp.html. И помните, другая реализация DHCP, вероятнее всего, настраивается совершенно иным образом.

Сборка dhcpd

Исходный текст dhcpd можно получить на веб-сайте ISC, расположенном по адресу http://www.isc.org, либо с анонимного FTP-сервера по адресу ftp://ftp.isc.org/isc/dhcp. Название сжатого tar-файла изменяется с выпуском новых версий. Однако самый последний вариант пакета должен храниться в файле с именем dhcp-latest.tar.gz. Скопируйте этот файл, распакуйте посредством gunzip и untar:

> ftp ftp.isc.org
Connected to pub1.bryant.vix.com.
220 pub1.bryant.vix.com FTP server ready.
Name (ftp.isc.org:craig): anonymous
331 Guest login ok, send your complete email address as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> cd isc/dhop
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> get dhcp-latest.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for dhcp-latest.tar.gz
226 Transfer complete.
181892 bytes received in 17 sees (10 Kbytes/sec)
ftp> quit
221 Goodbye.
>    gunzip dhcp-latest.tar.gz
>    tar -xvf dhcp-latest.tar
drwxrwxr-x mellon/engsrc 0 2001-10-05 00:22:41 dhcp-3.0/
drwxrwxr-x mellon/engsrc 0 2001-10-05 00:22:32 dhcp-3.0/doc/
-rw-rw-r— mellon/engsrc    150274    2001-08-23    12:25:51 dhcp-3.0/server/failover.с
-rw-rw-r— mellon/engsrc    67711    2001-08-23    12:30:58 dhcp-3.O/server/mdb.с
-rw-rw-r— mellon/engsrc    62087    2001-06-21    22:28:51 dhcp-3.O/server/omapi.с
-rw-rw-r— mellon/engsrc    7612    2001-06-21    22:31:39 dhcp-3.0/server/salloc.с
-rw-rw-r— mellon/engsrc    34248    2001-06-21    22:35:08 dhcp-3.0/server/stables.с
drwxrwxr-x mellon/engsrc    0    2001-10-05    00:22:42 dhcp-3.0/tests/
drwxrwxr-x mellon/engsrc    0    2001-10-05    00:22:42 dhcp-3.0/tests/failover/
-rw-rw-r-- mellon/engsrc    3585    2001-05-31    16:16:05 dhcp-3.0/tests/failover/dhcp-1.cf
-rw-rw-r— mellon/engsrc    3463    2001-05-31    16:16:06 dhcp-3.0/tests/failover/dhcp-2.cf
-rwxrwxr-x mellon/engsrc    537    2001-05-31    16:16:07 dhcp-3.0/tests/failover/new-
failover

Перейдите во вновь созданный каталог и выполните configure, configure определяет тип используемой системы Unix и создает корректные для этой системы файлы сборки. Если configure не может определить вариант Unix, необходимо вручную создать файл сборки Makefile. Наберите make, чтобы выполнить компиляцию демона. Наконец, скопируйте полученный исполняемый файл и страницы руководства в подходящие каталоги:

# cd dhcp-3.0
# ./configure
System Type: linux
# make
cc -g -c dhcpd.c -o dhcpd.o
cc -g -c dhcp.c -o dhcp.o
cc -g -c bootp.c -o bootp.o
nroff -man dhcpd.conf.5 >dhcpd.conf.cat5
tt make install

Демон DHCP должен компилироваться без ошибок. Если вы получаете сообщения об ошибках компиляции либо если configure не может определить конфигурацию системы, следует прервать компиляцию и уведомить группу поддержки. Чтобы подписаться на список рассылки группы поддержки, посетите сайт http://www.fugue.com/dhcp. После регистрации отправьте сообщение на адрес списка рассылки Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.: опишите конфигурацию системы и подробно возникшую проблему. Подписчиками этого списка является большинство пользователей dhcpd. Возможно, вашу проблему уже кто-то решил.

Не исключено, что просто установкой dhcpd дело не кончится. Прочтите очень внимательно файл README, dhcpd работает с широким диапазоном систем, включая OSF/1, большинство современных производных от BSD, Solaris и Linux. Лучше всего демон чувствует себя в OSF/1 и BSD; в прочих системах могут присутствовать определенные ограничения. Например, в Solaris и Linux демон поддерживает работу лишь с одним сетевым интерфейсом. Кроме того, dhcpd может потребовать определенной настройки, специфичной для данной системы. Отличным примером такой ситуации являются старые системы с ядром Linux 2.0.0. Чтобы успешно работать с dhcpd на одной из таких систем, добавьте следующую запись в таблицу /etc/hosts:

255.255.255.255 all-ones

Затем добавьте специальный маршрут для ограниченного широковещательного адреса, 255.255.255.255:

u route add -host all-ones dev eth0

Ограниченный широковещательный адрес следует добавлять в таблицу маршрутизации ядра после каждой загрузки системы, поэтому внесите следующий фрагмент кода в загрузочный сценарий:

# Установить ограниченный широковещательный адрес и запустить DHCP
if [ -f /etc/dhcpd.conf ]; then
echo -n " dhcpd"
route add -host all-ones dev ethO
/usr/sbin/dhcpd fi

Информация, необходимая для выполнения этих действий, явным образом содержится в файле README. Прочтите его, прежде чем приступать к работе с dhcpd. Разумеется, такая настройка не требуется в современных версиях Linux, однако следует иметь в виду, что иногда приходится прибегать к дополнительным мерам.