Как же полезно иногда писать в бложег, была у меня одна заметочка(гневная) о закупках итд на министерском уровне, не постил, просто написал чтобы выговориться, и в свете недавних событий видать не зря) Оставлю тут милую картиночку
Но хватит уже о политике, у нас впереди настройка своего 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/