Debian Jessie: Установка и настройка DHCP сервера (isc-dhcp-server)

Во вводной статье про свою тестовую сеть я перечислял необходимые сервисы, одним из которых является DHCP. Устанавливать и настраивать данный сервис я буду на сервере gw.my.local
Дело это не сложное, перед началом рекомендую полистать предыдущие публикации из моего маленького howto по Debian Jessie.
Для начала необходимо установить пакет isc-dhcp-server

gw:~ $ sudo apt-get install isc-dhcp-server

Сервис не запустится до тех пор пока в настройках не указать интерфейс на котором будет работать DHCP-сервер. Обслуживать он будет нашу локальную сеть, а значит запускать его нужно только на интерфейсе с линком в локальную сеть.

У меня к примеру так:

gw:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:10:18:4d:c1:b5 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:10:18:4d:c1:b4 brd ff:ff:ff:ff:ff:ff
    inet 91.100.100.91/24 brd 91.100.100.255 scope global eth1
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0b:0e:0e:00:77 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever

Линк локальной сети у меня вставлен в сетевушку eth0 и интерфейсу назначен ip адрес 192.168.1.1, маска 255.255.255.0
Значит DHCP сервер будем поднимать на интерфейсе eth0, укажем это в настройках.
Открываем конфиг /etc/default/isc-dhcp-server:

gw:~$ sudo vim /etc/default/isc-dhcp-server

и в самом низу видим настройку INTERFACES=»», приводим ее к такому виду:

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

Теперь нам нужно настроить так называемый range в dhcp, это говоря простыми словами — пространство ip адресов предназначенное для выдачи клиентам. С помощью DHCP планирую роздавать адреса с 192.168.1.30 по 192.168.1.99. Также в секции конфига с range прописывают все основые сетевые настройки, такие как маска подсети, шлюз, имя домена и тп. Одним из важных параметров является время аренды адреса в секундах.
Настраивается это в основном конфиге, открываем:

gw:~$ sudo vim /etc/dhcp/dhcpd.conf

и редактируем согласно своих задач. У меня в итоге получился такой простенький конфиг:

ddns-update-style none;
option domain-name "my.local";
#option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.30 192.168.1.99;
  option ntp-servers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
}

host nb {
  hardware ethernet 00:23:19:11:6e:78;
  fixed-address 192.168.1.17;
}

host ws1 {
  hardware ethernet 00:19:63:43:5d:76;
  fixed-address 192.168.1.21;
}

Внизу конфига вы видите пример резервирования статического адреса для хостов nb и ws1. Мак адрес можно узнать командой ip a или ifconfig.
После сохраниея конфига можно пробовать стартовать сервис:

gw:~$ sudo systemctl start isc-dhcp-server.service

Для просмотра статуса можно воспользоваться вот такой командой:

gw:~$ sudo systemctl status isc-dhcp-server.service

Ну вот както так … если чтото не заработало — смотрите лог файл /var/log/messages Также следует быть внимательным со знаками точка с запятой и дужечками-завитушками — это самая популярная ошибка в настройке DHCP и DNS серверов в Linux 🙂

Хай щастить!

  1. Комментов пока нет

  1. Трэкбэков пока нет.

Why ask?