10.8. DHCP

Текст написал Gregory Sutter , март 2000.

10.8.1. Что такое DHCP?

DHCP, или Dynamic Host Configuration Protocol (Протокол Динамической Конфигурации Хостов), описывает порядок, по которому система может подключиться к сети и получить необходимую информацию для работы в ней. Во FreeBSD используется реализация DHCP от ISC (Internet Software Consortium), так что вся информация, описывающая особенности, зависящие от реализации, относится к дистрибутиву ISC.

10.8.2. Что описывается в этом разделе

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

10.8.3. Как это работает

Когда на клиентской машине выполняется программа dhclient, являющаяся клиентом DHCP, она начинает широковещательную рассылку запросов на получение настроечной информации. По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP 67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как сетевую маску, маршрутизатор и серверы DNS. Вся эта информация дается в форме "аренды" DHCP и верна только определенное время (что настраивается администратором сервера DHCP). При таком подходе устаревшие адреса IP тех клиентов, которые больше не подключены к сети, могут быть автоматически использоваться повторно.

Клиенты DHCP могут получить от сервера очень много информации. Подробный список находится в странице Справочника dhcp-options(5).

10.8.4. Интеграция с FreeBSD

Клиент DHCP от ISC, dhclient, полностью интегрирован во FreeBSD. Поддержка клиента DHCP есть как в программе установки, так и в самой системе, что исключает необходимость в знании подробностей конфигурации сети в любой сети, имеющей сервер DHCP. Утилита dhclient включена во все версии FreeBSD, начиная с 3.2.

DHCP поддерживается утилитой sysinstall. При настройке сетевого интерфейса из программы sysinstall первый вопрос, который вам задается, это "Do you want to try dhcp configuration of this interface?" ("Хотите ли вы попробовать настроить этот интерфейс через dhcp?"). Утвердительный ответ приведёт к запуску программы dhclient, и при удачном его выполнении к автоматическому заданию информации для настройки интерфейса.

Есть две вещи, которые вы должны сделать для того, чтобы ваша система использовала DHCP при загрузке:

  • Убедитесь, что устройство bpf включено в компиляцию вашего ядра. Чтобы это сделать, добавьте строчку pseudo-device bpf в конфигурационный файл ядра и перестройте ядро. Более подробная информация о построении ядер имеется в разделе .

    Устройство bpf уже является частью ядра GENERIC, которое поставляется вместе с FreeBSD, так что, если вы не используете другое ядро, то вам и не нужно его делать для того, чтобы работал DHCP.

    Note: Те, кто беспокоится о безопасности, должны иметь в виду, что устройство bpf является также тем самым устройством, которое позволяет работать программам-снифферам пакетов (хотя для этого они должны быть запущены пользователем root). Наличие устройства bpf необходимо для использования DHCP, но если вы чересчур беспокоитесь о безопасности, то вам нельзя добавлять устройство bpf в ядро для того, чтобы в будущем использовать DHCP.

  • Отредактируйте ваш файл /etc/rc.conf, включив в него следующее:

        ifconfig_fxp0="DHCP"
                

Note: Обязательно замените fxp0 именем интерфейса, который вы хотите настроить динамически.

Если dhclient в вашей системе находится в другом месте или если вы хотите задать дополнительные параметры для dhclient, то также укажите следующее (изменив так, как вам нужно):

    dhcp_program="/sbin/dhclient"
    dhcp_flags=""
        

Сервер DHCP, dhcpd, включен как часть порта isc-dhcp2 в коллекции портов. Этот порт содержит полный дистрибутив ISC DHCP, состоящий из клиента, сервера, агент для перенаправления запросов и документация.

10.8.5. Файлы

  • /etc/dhclient.conf

    dhclient требует наличия конфигурационного файла, /etc/dhclient.conf. Как правило, файл содержит только комментарии, а настройки по умолчанию достаточно хороши. Этот настроечный файл описан в странице Справочника dhclient.conf(5).

  • /sbin/dhclient

    dhclient скомпонован статически и находится в каталоге /sbin. На страница Справочника dhclient(8) дается более подробная информация о dhclient.

  • /sbin/dhclient-script

    dhclient-script является специфичным для FreeBSD скриптом настройки клиента DHCP. Он описан в dhclient-script(8), но для нормального функционирования никаких модификаций со стороны пользователя не требуется.

  • /var/db/dhclient.leases

    В этом файле клиент DHCP хранит базу данных выданных к использованию адресов в виде журнала. На странице dhclient.leases(5) дается гораздо более подробное описание.

10.8.6. Дополнительная литература

Полное описание протокола DHCP дается в RFC 2131. Кроме того, дополнительная информация есть на сервере dhcp.org.