3.5.1.2 Базовая настройка DHCP
Скачать документУстановка и первоначальная настройка
Устанавливаем DHCP:
dnf install dhcp-server
Настройки для диапазона адресов IPv4 производятся в файле /etc/dhcp/dhcpd.conf. Пример данного файла можно посмотреть в файле /usr/share/doc/dhcp-server/dhcpd6.conf.example. Ваша версия dhcpd в пути может отличаться.
Вы можете подробнее ознакомиться c базовой настройкой DHCP, просмотрев наши обучающие видео:
на RuTube — Базовая настройка DHCP;
в Яндекс.Дзен — Базовая настройка DHCP;
в VK Видео — Базовая настройка DHCP.
На наших каналах вы также сможете найти много другой полезной информации.
Теперь откроем на редактирование конфигурационный файл:
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-time, max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.
Добавляем правило в firewalld (дополнительную информацию см. в нашей инструкции "Настройка брандмауэра Firewall"):
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";
}
где:
- hardware ethernet — MAC-адрес сетевого интерфейса клиента, используется сервером для идентификации конкретного устройства;
- fixed-address — указывает, какой IP-адрес должен быть назначен клиенту, адрес будет фиксированным для данного клиента, и сервер всегда будет назначать именно его этому устройству;
- filename — указывает путь к загрузочному образу, который клиент должен загрузить.
Дополнительные параметры.
Включение и отключение bootp
С помощью следующих директив можно управлять тем, разрешены ли BOOTP-запросы для сервера:
- allow bootp — разрешает серверу обрабатывать BOOTP-запросы;
- deny bootp — запрещает серверу обрабатывать 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), разделенных двоеточиями. Параметр 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 должен работать только для определенных, открываем на редактирование следующий файл:
nano /etc/sysconfig/dhcpd
И добавляем в него следующее:
DHCPDARGS=enp0s8
* в данном примере сервер будет работать только для интерфейса enp0s8.
Перед запуском убедитесь, что сетевой адаптер enp0s8 настроен для работы в создаваемой сети. Для этого создайте файл /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"
ON BOOT="yes"
Разрешаем автозапуск сервиса:
systemctl enable dhcpd
и запускаем его:
systemctl start dhcpd
Настройка логов
По умолчанию, сервер dhcp ведет лог в файле /var/log/messages, что не очень удобно, так как это общий лог-файл, в котором может находиться много записей.
Для того чтобы сервер сохранял записи в отдельный файл, открываем на редактирование rsyslog.conf:
nano /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:
nano /etc/dhcp/dhcpd.conf
Добавьте строку в конец файла до фигурной скобки.
filename "pxelinux.0";
next-server <имя_сервера>;
}
Параметр next-server используется для указания клиенту адреса сервера, с которого должен быть получен загрузочный файл (тот самый файл, что указан в параметре filename). <Имя_сервера> может быть IP-адресом или доменным именем. Если этот параметр не указан, то используется адрес DHCP-сервера.
Дата последнего изменения: 14.11.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.