dhcp сервер

Как же полезно иногда писать в бложег, была у меня одна заметочка(гневная) о закупках итд на министерском уровне, не постил, просто написал чтобы выговориться, и в свете недавних событий видать не зря) Оставлю тут милую картиночку

Но хватит уже о политике, у нас впереди настройка своего dhcp сервера на самой правильной ОС FreeBSD

0. Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD.
1. Для начала ставим сервер
Из опций которые нам предоставляет инсталятор я выбрал
Bind_symbols
Paranoia (для запуска в chroot)
Бонусом можно конечно собрать и IPV6

cd /usr/ports/net/isc-dhcp42-server/
make config-recursive
make install clean

Будет созданы пользователь и группа dhcpd

2. Правим конфиг /usr/local/etc/dhcpd.conf

option domain-name "avenue.com.ua"; 
option domain-name-servers 192.168.13.13, 192.168.0.1;
option routers 172.30.13.1;
authoritative;
log-facility local7;
subnet 172.30.13.0 netmask 255.255.255.0 {range 172.30.13.200 172.30.13.210;}
host mac_wifi {hardware ethernet b8:8d:12:19:6e:a8; fixed-address 172.30.13.100;}
host sony_wifi {hardware ethernet 00:1f:4b:9f:12:2f; fixed-address 172.30.13.101;}
host phone {hardware ethernet 00:15:62:c4:95:ed; fixed-address 172.30.13.4;}
host sw1 {hardware ethernet 00:0c:85:e1:4f:85; fixed-address 172.30.13.2;}

option domain-name зона DNS
option domain-name-servers адреса ДНС серверов для данной зоны
option routers адреса шлюзов
Перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей;

authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов);

log-facility — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера;

subnet — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов
range и host — узлы с MAС-адресами сетевых карт(hardware ethernet), которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резолвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Немного больше опций тут man dhcp-options

3. Правим rc.conf

dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="vlan30"
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"

Включаем автозагрузку dhcp
Флаг -q отвечает за вывод в консоль сообщений от сервера
Если собирали с IPv6, но пока не готовы его включать можно добавить флаг -4(если собирали без ipv6 то указание этой опции приведет к краху сервера dhcp при старте)

4. Стартуем сервер
/usr/local/etc/rc.d/isc-dhcpd start
5. Смотрим статус
/usr/local/etc/rc.d/isc-dhcpd status
Если команда выдаст сообщение dhcpd is running as pid …, все нормально, если же – dhcpd is not running, идем в лог читаем и правим ошибки.
6. Настраиваем логи через syslog, поскольку мы работает в chroot то нужно будет немного доработать напильником
в rc.conf добавляем

syslogd_flags="-ss -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

Передергиваем демон syslog

/etc/rc.d/syslogd restart

Включаем ротацию логов

/var/log/dhcpd.log 644 30 * @T00 JC

Если у Вас умные свичи со вкл dhcp snooping не забывайте делать trust порт на котором висит сервак

Будет время напишу свою реализацию других опций, например option82.

Источник:
http://www.sergeysl.ru/freebsd-isc-dhcp-server/

Комментарии: