В этой статье мы расссмотрим, как просто развернуть DHCP сервер на FreeBSD.
Получаем доступные версии DHCP-сервера:
pkg search «isc-dhcp.*-server»
Устанавливаем пакет:
pkg install isc-dhcp41-server
Установка ISC DHCP Server из коллекции портов
Если необходимо, DHCP-сервер можно собрать из портов.
Обновляем коллекцию портов:
portsnap fetch update
Если коллекция портов используется впервые, получаем ее актуальную версию:
portsnap fetch extract
Получаем доступные версии DHCP-сервера:
echo /usr/ports/net/isc-dhcp*-server
Устанавливаем:
cd /usr/ports/net/isc-dhcp41-servermake install
Настройка ISC DHCP Server
Редактируем файл конфигурации:
ee /usr/local/etc/dhcpd.conf
В минимальной конфигурации необходимо задать параметры, выделенные жирным шрифтом, примеры удалить или закомментировать.
# DNS серверы
option domain-name-servers 192.168.0.1, 192.168.0.2;
# Время в секундах, по истечению которого клиент должен запросить продление аренды
default-lease-time 600;
# Время аренды IP адреса в секундах
# Клиент должен освободить IP-адрес, если в течение заданного времени аренду продлить не удалось
# Если аренда не продлена, сервер может выдать этот адрес другому клиенту
max-lease-time 7200;
# Выдавать клиенту новый адрес, если запрошенный клиентом адрес не входит в пул сервера
authoritative;
# Источник, который будет указан при отправке сообщений в Sysloglog-facility local7;
# Декларация подсети
subnet 192.168.0.0 netmask 255.255.255.0 {
# Пул динамических адресов
range 192.168.0.129 192.168.0.189;
# Шлюз
option routers 192.168.0.1
;}
# Задать фиксированный IP-адрес для хоста
#host Name {
# hardware ethernet 00:26:5e:66:6c:08;
# fixed-address 192.168.0.190;
#
}
Настройка логов ISC DHCP Server
Редактируем syslog.conf:
ee /etc/syslog.conf
Сохраняем сообщения о присвоении адресов в dhcpd.log, предупреждения и ошибки дублируем в messages.
Добавляем следующие строки:
!dhcpd*.info -/var/log/dhcpd.log!*
Задаем параметры ротации.
Проверяем, поддерживается ли вашей системой newsyslog.conf.d
ls /etc/newsyslog.conf.d && echo ok
Если в вашей системе отсутствует папка newsyslog.conf.d, редактируем newsyslog.conf:
ee /etc/newsyslog.conf
Если папка newsyslog.conf.d имеется, создаем папку с тем же именем в /usr/local/etc:
mkdir /usr/local/etc/newsyslog.conf.d
Создаем файл c правилами ротации логов:
ee /usr/local/etc/newsyslog.conf.d/isc-dhcp-server
Ежедневная ротация в полночь с сохранением логов за неделю:
/var/log/dhcpd.log 600 7 * @T00 JC
Создаем лог-файл:
touch /var/log/dhcpd.log
Перезагружаем конфигурацию syslogd:
service syslogd reload
Запуск ISC DHCP Server
Редактируем rc.conf:
ee /etc/rc.conf
Включаем запуск ISC DHCP Server, и задаем сетевые интерфейсы, обслуживаемые нашим сервером:
dhcpd_enable=»YES»dhcpd_ifaces=»fxp0″
Запускаем dhcpd:
service isc-dhcpd start
В случае успешного запуска видим следующий текст:
Internet Systems Consortium DHCP Server 4.1-ESV-R3
Copyright 2004-2011 Internet Systems Consortium.All rights reserved.For info, please visit https://www.isc.org/software/dhcp/Wrote 1 leases to leases file.
Listening on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24
Sending on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24Sending on Socket/fallback/fallback-net
Если ошибок при запуске не возникло, проверяем, раздаются ли IP-адреса.
Для принудительного обновления IP-адреса в Windows, в командной строке используем команды:
ipconfig /releaseipconfig /renew
Проверяем лог-файл:
cat /var/log/dhcpd.log
В случае проблем, анализируем DHCP трафик:
tcpdump -vni
fxp0
udp port 67