Установка и настройка DHCP сервера на Linux CentOS 7

Обновлено Обновлено: Опубликовано Опубликовано:

Тематические термины: DHCP, IP-адрес, MAC-адрес

Быстрый старт
Определенный интерфейс
Резервирование IP
Подключение конфигурационных файлов
Список арендованных адресов
Настройка логов

Базовая настройка

Устанавливаем DHCP:

yum install dhcp

Теперь откроем на редактирование конфигурационный файл:

vi /etc/dhcp/dhcpd.conf

И внесем в него, примерно, следующее:

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.200;
  option domain-name-servers 192.168.0.10, 192.168.0.11;
  option domain-name "dmosk.local";
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  default-lease-time 600;
  max-lease-time 7200;
}

* где

  • subnet обозначает сеть, в области которой будет работать данная группа настроек; 
  • range — диапазон, из которого будут браться IP-адреса; 
  • option domain-name-servers — через запятую перечисленные DNS-сервера; 
  • option domain-name — суффикс доменного имени; 
  • option routers — шлюз по умолчанию; 
  • option broadcast-address — адрес сети для широковещательных запросов; 
  • default-lease-timemax-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.

** все примеры настроек можно увидеть в файле /usr/share/doc/dhcp*/dhcpd.conf.example (вместо * будет версия установленного dhcp).

Проверить корректность конфигурационного файла можно командой:

dhcpd -t -cf /etc/dhcp/dhcpd.conf

Разрешаем автозапуск сервиса:

systemctl enable dhcpd

и запускаем его:

systemctl start dhcpd

Добавляем правило в firewalld:

firewall-cmd --permanent --add-service=dhcp

firewall-cmd --reload

Определенный интерфейс для работы

Если в системе присутствует несколько сетевых адаптеров, а сервер DHCP должен работать только для определенных, открываем на редактирование следующий файл:

vi /etc/sysconfig/dhcpd

И добавляем в него следующее:

DHCPDARGS=ens32

* в данном примере сервер будет работать только для интерфейса ens32.

Перезапускаем сервис:

systemctl restart dhcp

Резервирование IP

Резервирование создается по MAC-адресу сетевого адаптера.

Пример настройки dhcpd.conf:

vi /etc/dhcp/dhcpd.conf

host host1 {
    hardware ethernet 28:10:7B:27:C2:A0; fixed-address 192.168.0.101;
}
host host2 {
    hardware ethernet 28:10:7B:27:C2:A1; fixed-address 192.168.0.102;
}

* где host1 — имя узла, для когорого резервируем адрес (не обязательно должен совпадать с реальным); 28:10:7B:27:C2:A0 — mac-адрес; 192.168.0.101 — IP, который будет назначать узлу. Аналогичо, для второго узла.

Подробнее, процесс описан в статье Резервирование IP-адреса на сервере DHCP.

Подключение конфигурационных файлов

Для удобства, некоторые блоки с настройками можно вынести в отдельные файлы и подключить их в основном конфигурационном файле:

vi /etc/dhcp/dhcpd.conf

include "/etc/dhcp/conf.d/subnets.conf";

Список арендованных адресов

Для просмотра списка адресов, которые были выданы DHCP-сервером вводим команду:

cat /var/lib/dhcpd/dhcpd.leases

Настройка логов

По умолчанию, сервер dhcp ведет лог в файле /var/log/messages, что не очень удобно, так как это общий лог-файл, в котором может находиться много записей.

Для того, чтобы сервер сохранял записи в отдельный файл, открываем на редактирование rsyslog.conf:

vi /etc/rsyslog.conf

И добавляем следующее:

local6.*       /var/log/dhcp.log

Далее открываем конфигурационный файл dhcp:

vi /etc/dhcp/dhcpd.conf

И добавляем:

log-facility                    local6;

Перезапускаем сервисы:

systemctl restart dhcpd

systemctl restart rsyslog

# CentOS # Linux # UNIX # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет