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

Установка и первоначальная настройка

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

yum install dhcp

Настройки для диапазона адресов IPv4 производятся в файле/etc/dhcp/dhcpd.conf. Пример данного файла можно посмотреть в файле /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example. Ваша версия dhcpd в пути может отличаться.

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

nano /etc/dhcp/dhcpd.conf

Подсети обозначаются блоками, пример такого блока представлен ниже:

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

* где

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

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

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

Некоторые дополнительные параметры

option domain-name string;

Параметр задает доменное имя, которое клиенты используют при запросах к DNS, при разрешении имен.

option netbios-name-servers ip-address [, ip-address…];

Задает список серверов имен NetBIOS (NBNS), соответствующих RFC 1001/1002 Сервера должны быть перечислены в порядке предпочтительности. Сервера имен NetBIOS так же известны как сервера WINS.

option netbios-dd-server ip-address [, ip-address…];

Опция сервера распределения данных NetBIOS (NBDD) указывает список серверов RFC 1001/1002 NBDD. Серверы должны быть перечислены в порядке предпочтения.

option netbios-node-type INT;

Параметр позволяет сконфигурировать тип узла, т.е. способ разрешения имен клиентами NetBIOS поверх TCP/IP.

Возможные значения параметра:

1

B-node (Broadcast): Разрешение имен с помощью широковещательных запросов, WINS не используется.

2

P-node (Peer): Используется только WINS.

4

M-node (Mixed): Смешанный тип, сначала используется широковещательный запрос, затем в случае неудачи — WINS

8

H-node (Hybrid): Смешанный наоборот. WINS, а затем broadcast.

option netbios-scope string;

Опция области NetBIOS указывает параметр NetBIOS через TCP/IP для клиента, как указано в RFC 1001/1002. См. RFC1001, RFC1002 и RFC1035 для ограничения набора символов.

BOOTP

Каждый клиент BOOTP может быть настроен отдельно в файле dhcpd.conf. Самая простая конфигурация состоит из адреса сетевой карты и IP адреса, назначаемого этому клиенту. Если клиент должен быть загружен с сервера, указывается загрузочный образ. Простая конфигурация для клиента BOOTP может выглядеть так:

        host haagen {
          hardware ethernet 08:00:2b:4c:59:23;
          fixed-address 239.252.197.9;
          filename "/tftpboot/haagen.boot";
        }

Дополнительные параметры.

Включение и отключение bootp

allow bootp;
deny bootp;

Параметр bootp сообщает серверу dhcp обрабатывать или нет bootp-запросы. По умолчанию bootp-запросы разрешены.

Параметр dynamic-bootp в секции range указывается в случае если предполагается назначать адреса из диапазона клиентам по протоколу BOOTP.

Необходима хотя бы одна секция host
для каждого BOOTP клиента, обслуживаемого сервером. Так же host может быть указана для DHCP клиентов, хотя это и не обязательно, если только не требуется раздача адресов только определенным клиентам.

Если требуется обеспечить выдачу фиксированных адресов и конфигурацию клиентов по протоколам DHCP или BOOTP в более чем одной подсети, то можно указать несколько адресов с помощью параметра fixed-address или указать несколько секций host

Если клиентские параметры меняются в зависимости от сети к которой подключен клиент, то необходимо использовать множественные записи host

имя_хоста
— имя идентифицирующее хост. Если в описании хоста опция hostname не указана, то используется значение имя_хоста.

Объявления Host сопоставляются с реальными DHCP или BOOTP клиентами путем сравнения опции dhcp-client-identifier указанной в секции host со значением предоставленным клиентом, или если клиент не предоставляет dhcp-client-identifier, то путем сравнения опции hardware
и  аппаратного (mac) адреса клиента. Клиенты BOOTP нормально не предоставляют dhcp-client-identifier, так что при работе по протоколу BOOTP необходимо использовать mac-адреса.

hardware тип_железа аппаратный_адрес;

Для того что бы BOOTP клиент был опознан сервером, его mac-адрес должен быть объявлен с помощью параметра hardware в секции host Параметр тип_железа
— тип физического интерфейса. В настоящее время используются только ethernet
и token-ring
и возможно скоро будет реализованы другие типы, особенно  fddi аппаратный_адрес
— записывается как набор шестнадцатеричных значений ( от 0 до ff ) разделенных двоеточиями. should be a set of hexadecimal octets (numbers from 0 through ff) seperated by colons. Параметр hardware можно использовать и для DHCP клиентов.

Параметр dynamic-bootp-lease-cutoff

dynamic-bootp-lease-cutoff дата;

Параметр dynamic-bootp-lease-cutoff устанавливает момент времени в который все адреса назначенные клиентам BOOTP должны быть освобождены. Так как клиенты BOOTP не имеют возможности продлить срок использования полученных адресов и не могут определить что срок аренды истек, то по умолчанию клиентам BOOTP адреса выделяются на неограниченный срок. Однако в некоторых случаях оказывается полезным установить параметр dynamic-bootp-lease-cutoff, например в учебном заведении при окончании семестра или в ночное время когда предприятие не работает а все компьютеры выключены.

дата
— срок окончания действия всех адресов выделенных BOOTP клиентам. Дата указывается  в следующем формате: W ГГГГ/ММ/ДД ЧЧ:ММ:СС

W — день недели в виде числа от 0 (воскресенье) до 6 (суббота). ГГГГ — год ММ — месяц 1..12 ДД — день месяца 1..31 ЧЧ — часы 0..23 ММ — минуты 0..59 СС — секунды 0..59 Время указывается в GMT, а не местное.

Параметр dynamic-bootp-lease-length

dynamic-bootp-lease-length время_в_секундах;

Параметр dynamic-bootp-lease-length используется для указания срока на который выделяется адрес BOOTP клиенту. В некоторых организациях возможна ситуация что по прошествии определенного времени можно быть уверенным что выделенный адрес уже не используется. Период задается числом секунд. Если клиент перезагружается в момент когда срок указанный в этом параметре еще не истек, то период аренды адреса заново устанавливается в указанное значение. Таким образом часто перезагружаемые BOOTP клиенты могут постоянное удерживать свой адрес. Необходимо заметить что при настройке параметра, следует быть осторожным.

always-reply-rfc1048 on/off;

Некоторые BOOTP клиенты ожидают ответа от сервера в стиле RFC1048, но сами не следуют RFC1048 при посылке запросов. Если в вашей сети имеется такой проблемный клиент, который не воспринимает параметры передаваемые ему сервером и если в логах появляется сообщение "(non-rfc1048)" , то можно воспользоваться этим параметром.

Если у вас все клиенты требуют работы в стиле RFC1048, то можно использовать параметр always-reply-rfc1048 Параметр может быть указан в любом объявлении в этом случае воздействует только на тех клиентов, которые соответствуют указанной зоне действия.

Резервирование ip адреса за клиентом

Хост с именем myhost у которого сетевая карта имеет MAC  08:45:32:00:00:23 должен иметь постоянный адрес 192.168.1.121

host myhost {
        hardware ethernet 08:45:32:00:00:23;
        fixed-address 192.168.1.121;
}

 

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

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

vi /etc/sysconfig/dhcpd

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

DHCPDARGS=enp0s8

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

Перед запуском убедитесь, что сетевой адаптер enp0s8 настроен для работы в создаваемой сети. Для этого создайте файл nano /etc/sysconfig/network-scripts/ifcfg-enp0s8 со следующим содержимым.

TYPE="Ethernet"
BOOTPROTO="none"
DNS1="192.168.0.1"
IPADDR0="192.168.0.1"
PREFIX0=24
GATEWAY0=192.168.0.1
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s8"
DEVICE="enp0s8"
ONBOOT="yes"

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

systemctl enable dhcpd

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

systemctl start dhcpd

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

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

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

vi /etc/rsyslog.conf

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

local6.*       /var/log/dhcp.log

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

nano /etc/dhcp/dhcpd.conf

И добавляем:

log-facility local6;

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

systemctl restart dhcpd
systemctl restart rsyslog

Настройка DHCP-сервера для работы с сервером PXE.

Отредактируйте файл /etc/dhcp/dhcpd.conf ,

# vi /etc/dhcp/dhcpd.conf

Добавьте строку в конец файла до фигурной скобки.

filename "pxelinux.0";
}

next-server имя_сервера;

Параметр next-server используется для указания клиенту адреса сервера с которого должен быть получен загрузочный файл (тот самый файл что указан в параметре filename). Имя_сервера может быть IP адресом или доменным именем. Если этот параметр не указан, то используется адрес DHCP сервера.

 

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email