Задача проста: установить и настроить DHCP сервер на машинке под управлением FreeBSD.
Для выполнения задачи мы воспользуемся ISC-DHCP демоном, причем, как и рекомендуется, он будет работать в chroot среде.
0) Не забудьте обновить порты через portsnap fetch && portsnap update, дабы не столкнуться с ситуацией, когда система портов будет пытаться найти нужные файлы старых версий или на старых местах.
1) Устанавливаем.
$ cd /usr/ports/net/isc-dhcp42-server
$ sudo make install clean
Сразу же у Вас вылезет окошко конфигурирования, в котором следует отметить пункт DHCP_PARANOIA (это именно для того, чтобы DHCP сервер смог работать в chroot режиме).
2) После установки топаем в /usr/local/etc и правим файл dhcpd.conf. Он уже содержит примеры рабочих конфигураций, но для простоты я покажу пример уже почищенного такого файла (очень простой пример):
optio n domain-name-servers 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
range 192.168.0.100 192.168.0.200;
}
Здесь объявлена подсеть 192.168.0.0/24 для раздачи, начиная с IP=192.168.0.100 и заканчивая (включительно) IP=192.168.0.200. Шлюз по-умолчанию указан как 192.168.0.1, DNS-сервер - он же.
3) Теперь правим файл /etc/rc.conf и добавляем в него следующие записи:
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="fxp0"
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"
Строчки с "dhcpd_chuser_enable" и ниже - это указание демону работать через chroot.
Флаг "-q" - указание демону не мусорить сообщениями в консоль (иначе dhcpd будет интенсивно "срать" комментами на все свои действия). Если демон не запускается и ругается - флаг этот можно отключить и поглядеть - что он будет писать, где ошибка.
Интерфейс "fxp0" в строчке "dhcpd_ifaces=" - это указание - на какой сетевой карте слушать DHCP запросы и, соответственно, отвечать. Если карт несколько - перечисляем их через пробел.
4) По сути, все. Теперь только остается запустить dhcpd:
$ sudo /usr/local/etc/rc.d/isc-dhcpd start
5) А если на нескольких сетевых картах?
Ниже конфиг для варианта, когда на сервере несколько сетевых карт, для каждой из которых нужно прописать свой диапазон и свою подсеть. В нашем случае - это VLAN-интерфейсы, но можно использовать любую смесь - хоть 10 физических карт.
option domain-name-servers 10.0.0.1;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
shared-network vlan10 {
subnet 10.0.10.0 netmask 255.255.255.0 {
option routers 10.0.10.1;
option broadcast-address 10.0.10.255;
range 10.0.10.100 10.0.10.200;
}
}
shared-network vlan11 {
subnet 10.0.11.0 netmask 255.255.255.0 {
option routers 10.0.11.1;
option broadcast-address 10.0.11.255;
range 10.0.11.100 10.0.11.200;
}
}
shared-network vlan12 {
subnet 10.0.12.0 netmask 255.255.255.0 {
option routers 10.0.12.1;
option broadcast-address 10.0.12.255;
range 10.0.12.100 10.0.12.200;
}
}
Соответственно конфига выше - на сетевых интерфейсах vlan10, vlan11 и vlan12 должны быть заданы IP из указанных подсетей.
ЗЫ. Не забудте все эти сетевые интерфейсы прописать в /etc/rc.conf в параметре dhcpd_ifaces.
Комментарии
Оставить комментарий
Компьютерные сети
Термины: Компьютерные сети