PXE (Preboot Execution Environment, произносится "пикси") — спецификация Intel 1999 года, описывающая процедуру сетевой загрузки компьютера. Сетевая карта с поддержкой PXE содержит встроенный клиент, который запускается до загрузки операционной системы и получает загрузочный образ по сети. В дата-центрах PXE — стандартный метод массового развёртывания ОС на серверах без физического доступа к каждой машине.
Как работает
Последовательность PXE-загрузки:
- DHCP Discovery — клиент рассылает DHCPDISCOVER с PXE-опцией (option 60 = PXEClient) на порт 67/UDP.
- DHCP Offer — DHCP-сервер возвращает IP-адрес, маску подсети и PXE-опции: option 66 (адрес TFTP-сервера) и option 67 (имя загрузочного файла, например
pxelinux.0илиgrubx64.efi). - TFTP Transfer — клиент скачивает Network Bootstrap Program (NBP) с TFTP-сервера по UDP/69. Затем загружает ядро ОС и initrd.
- Загрузка — NBP запускается в RAM и инициирует установку или загрузку ОС из сети (NFS, HTTP, FTP).
Современные реализации используют UEFI PXE (HTTP Boot) вместо традиционного BIOS PXE: скачивание по HTTP(S) вместо TFTP, поддержка Secure Boot. HTTP Boot поддерживается в UEFI 2.5+ (2015).
Стек технологий PXE-сервера: DHCP-сервер (ISC DHCP или dnsmasq), TFTP-сервер (tftpd-hpa), загрузчик (PXELINUX, GRUB2, iPXE), репозиторий образов (NFS, HTTP через Nginx). Для автоматизации: Kickstart (RHEL/CentOS/AlmaLinux), Preseed (Debian/Ubuntu), AutoYAST (SUSE). В связке с Ansible PXE становится частью fully-automated bare-metal provisioning.
История
PXE разработан Intel совместно с Systemsoft и включён в спецификацию Wired for Management (WfM) 2.0 в 1999 году. Первоначально распространялся как ROM-расширение сетевых карт. iPXE (форк gPXE) в 2010 году добавил загрузку по HTTP, iSCSI, Wi-Fi. UEFI HTTP Boot стандартизирован в 2015 году. Сегодня PXE/iPXE — стандарт в автоматизированном провижнинге датацентров и инструментах типа Cobbler, Foreman, Metal as a Service (MAAS).
На что обращать внимание
TFTP медленный (нет управления потоком, 512 байт/блок по умолчанию). Для ускорения настраивайте блок 1468 байт или переходите на iPXE с загрузкой по HTTP — скорость в 10–100 раз выше. Для Secure Boot обязательна подписанная версия загрузчика (Shim + GRUB2). При развёртывании bare-metal серверов в связке с IPMI PXE позволяет полностью автоматизировать процесс — от включения питания до готовой ОС. Изолируйте PXE-трафик в отдельный VLAN: загрузочные запросы рассылаются broadcast-ом и не должны попадать в продуктивный сегмент.
История PXE Boot
PXE (Preboot eXecution Environment) разработан Intel и опубликован в 1999 году как спецификация. Основан на DHCP и TFTP. iPXE — улучшенный open-source вариант (2010), поддерживает HTTP, HTTPS, iSCSI, FCoE. UEFI SecureBoot с PXE появился в 2012 году. PXE активно используется в дата-центрах для массового развёртывания серверов без физического доступа к каждому. Cobbler, FAI (Fully Automatic Installation), Foreman — инструменты управления PXE-бутом парка серверов.
Как работает PXE Boot
- Сервер отправляет DHCP Discover с опцией PXE.
- DHCP-сервер возвращает IP + адрес TFTP-сервера + путь к bootloader.
- Сервер загружает bootloader (pxelinux.0 или ipxe.efi) по TFTP.
- Bootloader загружает ядро Linux (vmlinuz) и initrd по TFTP/HTTP.
- Запускается установщик (Preseed для Debian, Kickstart для RHEL/Alma).
Практическое применение
В дата-центрах хостинг-провайдеров PXE используется для переустановки выделенных серверов через панель управления: клиент нажимает «Переустановить ОС», сервер перезагружается в PXE-среду и автоматически устанавливает выбранный дистрибутив. На VPS-хостинге аналог — ISO-монтирование через KVM/IPMI консоль.
Типичные ошибки
- PXE-сервер без аутентификации в корпоративной сети — любое устройство может перехватить загрузку.
- TFTP без firewall — открытый порт 69/UDP уязвим к усилению DDoS-трафика.
- Конфликт двух DHCP-серверов — клиенты получают неверный адрес PXE-сервера.