DHCP-сервер должен отдавать не только IP-адрес, но и два PXE-специфичных параметра: адрес TFTP-сервера (next-server) и имя файла загрузчика (filename). Важно: для UEFI и Legacy BIOS файлы загрузчика разные.
# /etc/dhcp/dhcpd.conf
authoritative;
default-lease-time 600;
max-lease-time 7200;
# Опция для определения архитектуры клиента
option architecture-type code 93 = unsigned integer 16;
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.100 10.10.1.200; # диапазон для PXE-клиентов
option routers 10.10.1.1;
option domain-name-servers 10.10.1.10, 8.8.8.8;
option domain-name "rudata.internal";
next-server 10.10.1.10; # TFTP-сервер
# Выбор загрузчика в зависимости от типа прошивки
if option architecture-type = 00:07 {
# UEFI x86_64
filename "uefi/grubx64.efi";
} elsif option architecture-type = 00:09 {
# UEFI x86_64 (alternative)
filename "uefi/grubx64.efi";
} else {
# Legacy BIOS
filename "pxelinux.0";
}
}
# Фиксированные адреса для конкретных серверов (по MAC)
host srv-kvm-01 {
hardware ethernet aa:bb:cc:dd:ee:01;
fixed-address 10.10.1.101;
option host-name "srv-kvm-01";
}
host srv-kvm-02 {
hardware ethernet aa:bb:cc:dd:ee:02;
fixed-address 10.10.1.102;
option host-name "srv-kvm-02";
}
# Запуск и включение DHCP-сервера
sudo systemctl enable --now dhcpd
# Проверка синтаксиса конфигурации
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
# TFTP-сервер
sudo systemctl enable --now tftp.socket
# Firewall
sudo firewall-cmd --permanent --add-service={dhcp,tftp,http}
sudo firewall-cmd --reload
Альтернатива ISC DHCP — dnsmasq, который проще в настройке для небольших сетей:
# /etc/dnsmasq.conf — альтернативный вариант
interface=eth0
dhcp-range=10.10.1.100,10.10.1.200,255.255.255.0,1h
dhcp-option=3,10.10.1.1 # gateway
dhcp-option=6,10.10.1.10 # DNS
# PXE boot с автоопределением BIOS/UEFI
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
dhcp-match=set:bios,option:client-arch,0
dhcp-boot=tag:efi-x86_64,uefi/grubx64.efi
dhcp-boot=tag:bios,pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot
Оставить комментарий