Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 13. Подключение к сети | Вперед |
Пакет Пакет DHCP-4.2.3
Знакомимся с пакетом DHCP
В пакете DHCP находятся клиентская и серверная программы DHCP. Программа dhclient (клиентская) используется для подключения вашего компьютера к сети, в которой для назначения сетевых адресов применяется DHCP. Программа dhcpd (сервер) используется для назначения сетевых адресов в вашей частной сети.
Известно, что пакет правильно собирается и работает на платформе LFS-7.0.
Информация о пакете
- Загрузка (HTTP): http://www.isc.org/software/dhcp/423/download/dhcp-423targz?download=
- Загрузка (FTP): ftp://ftp.isc.org/isc/dhcp/4.2.3/dhcp-4.2.3.tar.gz
- Контрольная сумма MD5: a06649ec5336d284fc86a0232c0edd63
- Размер загружаемого пакета: 9,1 MB
- Оценочный размер требуемого дискового пространства: 185 MB (клиент и сервер), 140 MB — только клиент, 172 MB — только сервер
- Оценочное время сборки: : 0,7 SBU (клиент и сервер, либо сервер), 0.6 SBU — только клиент
Дополнительные загрузки
- Рекомендованный патч (для клиента): http://www.linuxfromscratch.org/patches/blfs/svn/dhcp-4.2.3-iproute2-1.patch
- Дополнительный патч: http://www.linuxfromscratch.org/patches/blfs/svn/dhcp-4.2.3-missing_ipv6-1.patch
Зависимости пакета DHCP
Обязательные
Если вы не используете патч iproute2, то во время выполнения программы dhclient требуется пакет Net-tools-1.60
Конфигурирование ядра
У вас в ядре должна быть включена поддержка Packet Socket (Networking Support => Networking Options => Packet Socket - Поддержка сетей => Сетевые настройки => Packet Socket). Если у вас не скомпилирована поддержка протокола IPv6 (Networking Support => Networking Options => The IPv6 Protocol - Поддержка сетей => Сетевые настройки => Протокол IPv6), то вы должны использовать патч missing_ipv6.
Установка пакета DHCP
Если у вас в ядре не откомпилирована поддержка протокола IPv6, то примените патч missing_ipv6
patch -Np1 -i ../dhcp-4.2.3-missing_ipv6-1.patch
Если вы устанавливаете клиентскую программу и к тому времени, когда вы будете ее использовать,у вас не будет установлен пакет net-tools, то примените патч iproute2:
patch -Np1 -i ../dhcp-4.2.3-iproute2-1.patch
Установите пакет DHCP с помощью следующих команд:
sed -i 's%\(^sbindir =\).*%\1 @prefix@@sbindir@%' server/Makefile.in && ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --sbindir=/sbin \ --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \ --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases \ --with-cli-lease-file=/var/state/dhclient.leases \ --with-cli6-lease-file=/var/state/dhclient6.leases && sed -i 's/-Werror//' {client,common,dst,omapip,relay,server,tests}/Makefile
Если вы хотите собрать только сервер, введите:
sed -i 's/ client//' Makefile
Если вы хотите собрать только клиентскую программу, введите:
sed -i 's/ dhcpctl relay server//' Makefile
Соберите выбранный вами вариант с помощью следующей команды:
make
Чтобы проверить результаты, выполните команду make check.
Теперь в роли пользователя root
выполните:
make install
В файлах /etc/dhcpd.conf
(сервер) и /etc/dhclient.conf
(клиент) приведены примеры настроек для конкретной системы BSD. Маловероятно, что они вам подойдут, но будет правильно, если вы их просмотрите перед тем, как их удалять или перемещать в другое место.
Теперь создайте рабочий директорий (директории).
Для сервера:
mkdir -pv /var/state/dhcp
Для клиентской программы:
mkdir -pv /var/state
Пояснение команд
sed -i 's%\(^sbindir =\).*%\1 @prefix@@sbindir@%' server/Makefile.in: Эта команда перемещает программу dhcp в директорий /usr/sbin
вместо директория /sbin
, поскольку она не нужна во время загрузки сервера.
--sbindir=/sbin: Программа dhclient перемещается в директорий /sbin
вместо директория /usr/sbin
, поскольку она должна быть доступна во время загрузки, например, если в /usr
монтируется сетевая файловая система nfs
.
--with-*-lease-files=...: По умолчанию, рабочие файлы помещаются в директорий /var/db
, что является анахронизмом
sed -i 's/-Werror//' {client,common,...}/Makefile: В этом пакете для файлов Makefile в переменную CFLAGS
добавляется параметр -Werror
. В последних версиях компилятора gcc добавлено много нового, в том числе выдача предупреждений в случае, если переменные не используются. Флаг -Werror
указывает выдавать предупреждения, что прервет сборку пакета, поэтому мы удаляем его там, где он не нужен.
sed -i 's/ something//' Makefile: Эта команда останавливает сборку пакета из-за того, что требуется ввести имя директория (директориев).
rm -v /usr/lib/lib{dhcpctl,dst,omapi}.a
: Предотвратить сборку этих статических библиотек непросто, но они нужны только во время сборки этого пакета. Библиотека libdhcpctl.a
устанавливается только в том случае, если вы собираете сервер.
Конфигурирование пакета DHCP
Конфигурационные файлы
/etc/dhclient.conf
и /etc/dhcpd.conf
Подробнее о конфигурировании
Информацию о настройке клиентской программы DHCP можно найти в следующем разделе.
Обратите внимание, что если вы хотите только раздавать адреса LAN в вашей сети, вам нужен только сервер DHCP. В этом скрипте не нужно использовать клиентскую программу DHCP. Также обратите внимание, что этот скрипт закодирован для интерфейса eth1, который, возможно, потребуется изменения для вашей аппаратной конфигурации.
Установите скрипт начальной загрузки /etc/rc.d/init.d/dhcp
, который находится в пакете blfs-bootscripts-20111226.
make install-dhcp
Рабочий файл должен существовать при запуске системе. С помощью следующей команды можно удовлетворить это требование:
touch /var/state/dhcp/dhcpd.leases
С помощью следующих команд будет создан файл базовой конфигурации для сервера DHCP. Есть несколько параметров, которые вы можете добавить (информация будет передана обратно клиенту DHCP) и которые описаны в страницах man для dhcp.conf
.
cat > /etc/dhcpd.conf << "EOF" default-lease-time 72000; max-lease-time 144000; subnet <192.168.5.0> netmask <255.255.255.0> { range <192.168.5.10> <192.168.5.240>; option broadcast-address <192.168.5.255>; option routers <192.168.5.1>; } EOF
Все адреса следует изменить в соответствии с вашей конкретной ситуацией.
Описание пакета
Установленные программы: dhcpd, dhcrelay, dhclient, dhclient-script и omshell
Установленные библиотеки: libbdhcpctl.a, libdst.a, libomapi.a
Установленные директории: /var/state/dhcp, /usr/include/omapip и /usr/include/isi-dhcp
Краткое описание
dhclient | реализация клиентской программы DHCP |
dhclient-script | используется программой dhclient для (пере) конфигурирования интерфейсов. С его помощью можно выполнить дополнительные изменения с использованием dhclient-{entry,exit}-hooks |
dhcpd | реализует протокол запросов Dynamic Host Configuration Protocol (DHCP) и Internet Bootstrap Protocol (BOOTP) сетевых адресов |
dhcrelay | предоставляет средство доступа запросов DHCP и BOOTP для подсети, не имеющих сервера DHCP, и перетрансляции их на сервер DHCP, находящийся в другой подсети |
omshell | предоставляет интерактивный способ подключения, запросов, и, возможно, изменения состояния сервера ISC DHCP через OMAPI (Object Management API - API управления объектами). |
Перевод сделан с варианта оригинала, датированного 2011-12-01 05:09:32 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет dhcpcd-5.2.12 | Конфигурирование клиента DHCP-4.2.3 |