Документация по ОС FreeBSD
Воскресенье, 08.03.2026, 05:44
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server [2011]
Рано или поздно каждый системный администратор задумывается о переводе вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol). С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.
Постановка задачи
Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее - DHCP-сервера). Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP. Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).
Исходные данные
Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1. На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101 - 192.168.0.200, а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3. Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local, IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3, а также IP-адрес шлюза по умолчанию 192.168.0.1. DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.
Установка и настройка DHCP-сервера
Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD. Стандартное ядро GENERIC поддерживает устройства bpf, а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:
cd /usr/ports/net/isc-dhcp41-server
make config install clean
В окне конфигурации нужно отменить единственную опцию [X] DHCP_PARANOIA Enable support for chroot. Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd, группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample.
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf. Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего. В рассматриваемом случае файл конфигурации должен иметь такой вид:
option domain-name company.local;
option domain-name-servers 192.168.0.2, 192.168.0.3;
option routers 192.168.0.1;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.100 192.168.0.200;}
host server2 {hardware ethernet 00:1c:c4:a5:07:ca; fixed-address 192.168.0.2;}
host server3 {hardware ethernet d8:d3:85:dc:df:bc; fixed-address 192.168.0.3;}
В данном файле заданы следующие значения параметров: option domain-name..., option domain-name-servers... и option routers... - имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative - признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility... - раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet... - обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range...; host... - узлы с MAС-адресами сетевых карт hardware ethernet, которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5), а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) - в dhcp-options(5).
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:
dhcpd_enable="YES"
dhcpd_flags="-q -4"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="bge1"
dhcpd_withumask="022"
dhcpd_chuser_enable="YES"
dhcpd_withuser="dhcpd"
dhcpd_withgroup="dhcpd"
dhcpd_chroot_enable="YES"
dhcpd_devfs_enable="YES"
dhcpd_rootdir="/var/db/dhcpd"
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 (bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd.
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start, а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status. Если последняя команда выдаст сообщение dhcpd is running as pid ..., все нормально, если же – dhcpd is not running, придется найти и устранить ошибки в файлах конфигурации.
Анализ состояния DHCP-сервера
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf:
dhcpg_flags="-4"
и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart.
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:
Starting dhcpd.
Internet Systems Consortium DHCP Server 4.1.2
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
Listening on BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on Socket/fallback/fallback-net
Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:
... dhcpd: DHCPDISCOVER from 90:21:55:bd:0b:36 via bge1
... dhcpd: DHCPOFFER on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
... dhcpd: DHCPREQUEST for 192.168.0.101 (192.168.0.1) from 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
... dhcpd: DHCPACK on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт - примерно такими:
... dhcpd: DHCPDISCOVER from 00:1c:c4:a5:07:ca via bge1
... dhcpd: DHCPOFFER on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1
... dhcpd: Dynamic and static leases present for 192.168.0.2.
... dhcpd: Remove host declaration server2 or remove 192.168.0.2
... dhcpd: from the dynamic address pool for 192.168.0.0/24
... dhcpd: DHCPREQUEST for 192.168.0.2 (192.168.0.1) from 00:1c:c4:a5:07:ca via bge1
... dhcpd: DHCPACK on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1
Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество "лишней" информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера. Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf:
syslogd_flags="... -l /var/db/dhcpd/var/run/log"
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log, нужно добавить в файл /etc/syslog.conf строку:
local7.* /var/log/dhcpd.log
Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log, а затем перезапустить syslogd командой /etc/rc.d/syslogd restart. Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log.
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:
/var/log/dhcpd.log 644 7 * @T00 JC
Заключение
Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.
Источник:
http://www.sergeysl.ru/freebsd-isc-dhcp-server/
Категория:
Net
| Добавил:
oleg
(11.01.2011) | Автор:
sergeysl
Просмотров:
903
| Рейтинг:
5.0
/
1
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2026