Настройка сервера DHCP в FreeBSD

Установка сервера

# 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

Ссылки