Установка сервера
# cd /usr/ports/net/isc-dhcp40-server
# make install clean
При установке выбираем следующие опции:
DHCP_PARANOIA add -user, -group and -chroot options
DHCP_JAIL add -chroot and -jail options
OPENSSL_BASE use the base system OpenSSL (required by TLS)
Настройка
# cd /usr/local/etc
# cp dhcpd.conf.sample dhcpd.conf
dhcpd.conf
:
# Настройки, общие для всех поддерживаемых сетей
option domain-name "example.org";
option domain-name-servers 10.0.0.200, 192.168.10.100;
# Параметры времени аренды IP-адреса, выставлены на максимум
default-lease-time 720000;
min-lease-time 720000;
max-lease-time 720000;
# Наш сервер - официальный сервер для нашей сетки, что мы и подтверждаем
authoritative;
# Включаем взаимодействие с Dynamic DNS, важно - по умолчанию стоит ad-hoc схема, но она не работает!
ddns-update-style interim;
# Ведение логов
log-facility local7;
# Различные настройки локальной сети:
subnet 10.0.0.0 netmask 255.255.255.0 { # сеть 10.0.0.0/24
range 10.0.0.1 10.0.0.30; # диапазон выдаваемых IP-адресов
option routers 10.0.0.200; # шлюз
option subnet-mask 255.255.255.0; # маска подсети
option broadcast-address 10.0.0.255; # широковещательный адрес
option ntp-servers 10.0.0.100, 10.0.0.200; # адреса серверов синхронизации времени
}
# Привязка статичных IP к MAC-адресам
host server.example.org {
hardware ethernet 00:aa:bb:cc:dd:ee;
fixed-address 10.0.0.88;
}
Запуск
Сервер DHCP
предоставляет много опций запуска, в основном, связанных с безопасностью, я выбрал запуск в песочнице, с правами ограниченного пользователся dhcpd:dhcpd (который создаётся при установке пакета).
Итак, /etc/rc.conf
:
dhcpd_enable="YES" dhcpd_conf="/usr/local/etc/dhcpd.conf" # указываем конфиг dhcpd_ifaces="bge0" # интерфейс, на котором слушает сервер dhcpd_withuser="dhcpd" # запускать от пользователя dhcpd_withgroup="dhcpd" # запускать от группы dhcpd_chuser_enable="YES" # runs w/o privileges? dhcpd_chroot_enable="YES" # запуск в песочнице dhcpd_devfs_enable="YES" # использовать devfs dhcpd_rootdir="/var/db/dhcpd" # путь к песочнице
Собственно, запуск:
# /usr/local/etc/rc.d/isc-dhcpd start