DHCP сервер

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

Притащил как то я свой ноутбук на работу, и понял что в отличии от моего любимого домашнего роутера Dlink DI604 мой сервак не имеет DHCP сервера, мне не улыбалось каждый раз менять сетевые параметры, даже с помощью скрипта и было решено установить DHCP сервер.

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

 # cd /usr/ports/net/isc-dhcp3-server
 # make install

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

Добавляем в /etc/rc.conf:

dhcpd_enable="YES"                          # dhcpd enabled?
dhcpd_flags="-q"                            # command option(s)
dhcpd_conf="/usr/local/etc/dhcpd.conf"      # configuration file
dhcpd_ifaces="fxp0"                             # ethernet interface(s)
dhcpd_withumask="022"                       # file creation mask

Минимальный рабочий конфиг

для того, что бы мой ноут (rrv), у которого MAC-адрес 00:1d:87:73:f0:62 получал все сетевые параметры автоматически и статический ip-адрес 192.168.0.253:

# cat dhcpd.conf | grep -v "^[ ]*#" | grep -v ^$

option domain-name "mydomain.ru";
option domain-name-servers 192.168.0.1, 192.168.10.1; # DNS сервера
option netbios-name-servers 192.168.0.2; # Wins сервер
option routers 192.168.0.1; # Шлюз по умолчанию
default-lease-time 600;
max-lease-time 7200;
authoritative; #Единственный DHCP в сети
ddns-update-style ad-hoc;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
}
host rrv { 
  hardware ethernet 00:1d:87:73:f0:62;
  fixed-address 192.168.0.253;
}

Расширенный конфиг

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

# cat dhcpd.conf | grep -v "^[ ]*#" | grep -v ^$

option domain-name "mydomain.ru";
option domain-name-servers 192.168.0.1, 192.168.10.1; # DNS сервера
option netbios-name-servers 192.168.0.2; # Wins сервер
option routers 192.168.0.1; # Шлюз по умолчанию
default-lease-time 600;
max-lease-time 7200;
authoritative; #Единственный DHCP в сети
ddns-update-style ad-hoc;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.105; # интервалы ip адресов на выдачу клиентам
  range 192.168.0.207 192.168.0.209;
}
host rrv { 
  hardware ethernet 00:1d:87:73:f0:62;
  fixed-address 192.168.0.253;
}

Запускаем как всегда

# /usr/local/etc/rc.d/isc-dhcpd.sh start

Если что то не работает

Останавливаем DHCP-сервер:

# /usr/local/etc/rc.d/isc-dhcpd.sh stop

тогда комментируем в /etc/rc.conf следующую строчку:

#dhcpd_flags="-q"

Запускаем:

# /usr/local/etc/rc.d/isc-dhcpd.sh start

и видим что мы сделали не так, правим и убираем комментарий (#).