Что такое PXE?
PXE (Preboot eXecution Environment) - это среда для загрузки компьютеров по сети без использования локальных носителей. Ключевые особенности:
- Стандарт Intel (разработан в 1999)
- Работает на клиентских машинах с поддержкой PXE в NIC
- Использует комбинацию DHCP и TFTP
- Позволяет:
- Разворачивать ОС автоматически
- Восстанавливать системы
- Запускать live-образы
- Масштабировать инфраструктуру
Компоненты PXE-инфраструктуры
-
PXE-клиент:
- Сетевая карта с поддержкой PXE ROM
- Активируется через BIOS/UEFI (Boot from Network)
-
DHCP-сервер:
- Предоставляет IP-адрес
- Указывает расположение загрузочных файлов (Option 66/67)
-
TFTP-сервер:
- Хранит и передает:
- Загрузчик (pxelinux.0, grub)
- Конфиги загрузки
- Ядра и initramfs
-
HTTP/NFS сервер (опционально):
- Для передачи больших файлов (образы ОС)
Процесс PXE-загрузки
- Клиент отправляет DHCP-запрос
- DHCP-сервер отвечает с:
- IP-адресом
- Next-Server (TFTP-сервер)
- Bootfile-Name (загрузочный файл)
- Клиент загружает загрузчик по TFTP
- Загрузчик получает конфиг и загружает:
- Система монтирует rootfs по NFS/HTTP или начинает установку
Настройка PXE-сервера
- Установка необходимых пакетов:
sudo apt install -y isc-dhcp-server tftpd-hpa apache2 syslinux
- Настройка DHCP (пример /etc/dhcp/dhcpd.conf):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
filename "pxelinux.0";
next-server 192.168.1.10; # IP TFTP-сервера
}
- Подготовка TFTP-сервера:
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/modules/bios/{ldlinux.c32,pxelinux.0} /var/lib/tftpboot/
- Создание конфига загрузки (/var/lib/tftpboot/pxelinux.cfg/default):
DEFAULT linux
LABEL linux
KERNEL vmlinuz
APPEND initrd=initrd.img root=/dev/nfs nfsroot=192.168.1.10:/nfsroot ip=dhcp
Особенности для DevOps
-
Поддержка UEFI:
- Требует grub/x86_64-efi вместо pxelinux.0
- Использует HTTP вместо TFTP для больших файлов
-
Интеграция с инструментами:
- Cobbler (автоматизация развертывания)
- Foreman (оркестрация)
- Ansible (пост-конфигурация)
-
Безопасность:
- Ограничивайте DHCP scope
- Используйте MAC-фильтрацию
- Реализуйте Secure Boot для UEFI
-
Отладка:
tcpdump -i eth0 port 67 or port 68 or port 69 # Мониторинг PXE-трафика
Альтернативы PXE
-
iPXE:
- Поддержка HTTP, iSCSI, SAN
- Возможность загрузки из интернета
- Скриптование процесса загрузки
-
Virtual Media (для облачных решений)
Резюмируем
-
PXE - критически важная технология для:
- Массового развертывания ОС
- Бессерверных сред
- Автоматизации Data Center
-
Основные компоненты:
-
Ключевые преимущества:
- Независимость от локальных носителей
- Централизованное управление образами
- Полная автоматизация
-
Для DevOps важно:
- Понимать как традиционный BIOS PXE, так и UEFI-варианты
- Уметь интегрировать с системами оркестрации
- Обеспечивать безопасность сетевой загрузки
-
Современные тренды:
- Переход к iPXE
- Использование HTTPS вместо TFTP
- Интеграция с облачными решениями