Настройка PXE

Определения

PXE (Preboot Execution Environment) — сетевой стандарт или протокол, созданный Intel, который определяет способ загрузки операционной системы через сеть, используя сетевую карту компьютера

Примечание

PXE-код, обычно находящийся в ПЗУ сетевой карты, получает из сети по протоколу TFTP (получив адрес TFTP-сервера по BOOTP) исполняемый файл, после чего передаёт ему управление

BOOTP — сетевой протокол прикладного уровня, используемый для автоматического получения клиентом IP-адреса

TFTP — простой пошаговый протокол передачи файлов, который позволяет клиенту получить файл с удаленного хоста или поместить его на удаленный

Wimboot — специальный загрузчик, который позволяет загружать образы Windows в формате WIM (Windows Imaging Format)

Примечание

Wimboot может быть использован для загрузки Windows PE (Preinstallation Environment) или полной версии Windows

Он загружает WIM-образ в память и позволяет запускать его, что особенно полезно для установки Windows через PXE

Этапы работы PXE

  1. Инициализация сети

    При включении компьютера выполняется процедура POST (Power-On Self Test), после чего инициализируется сетевой интерфейс

  2. DHCP-запрос

    Компьютер, настроенный на загрузку через PXE, отправляет DHCP-запрос в локальную сеть для получения IP-адреса и информации о загрузочном сервере. Запрос может быть широковещательным

  3. DHCP-ответ

    DHCP-сервер отвечает на запрос, предоставляя: IP-адрес, Маску подсети, Шлюз, Адрес TFTP-сервера, Имя загрузочного файла (например, pxelinux.0), DHCP Options:

    В ответе DHCP-сервер может также включать различные опции, которые помогают клиенту во время загрузки

    • Option 66 — адрес TFTP-сервера

    • Option 67 — имя загрузочного файла

    • Option 15 — имя домена

    • Option 60 — идентификатор клиента, например: PXEClient

  4. Загрузка загрузчика

    После получения информации о TFTP-сервере и имени файла клиент загружает загрузчик по протоколу TFTP

    Примечание

    Этот загрузчик может быть, например: PXELINUX или iPXE

  5. Загрузка операционной системы

    После загрузки загрузчика, например: wimboot, он может предоставить меню для выбора операционной системы или автоматически загрузить образ ОС, который также может быть получен через TFTP или другие протоколы (HTTP, NFS)

  6. Инициализация ОС

    После завершения загрузки образа операционной системы, он передается в память, и компьютер начинает выполнение кода ОС

Важно

Сервер Rudesktop использует собственный DHCP PROXY

Как работает DHCP proxy

  1. При загрузке PXE-клиента он отправляет в сеть широковещательное сообщение DHCP Discover, которое содержит список информации, которую клиент хотел бы получить от DHCP-сервера, а также некоторые сведения, идентифицирующие его как устройство с поддержкой PXE

  2. Обычный DHCP-сервер отвечает предложением DHCP, которое содержит возможные значения для сетевых настроек, запрашиваемых клиентом. Обычно это возможный IP-адрес, маска подсети, адрес маршрутизатора (шлюза), доменное имя DNS и т.д.

  3. Поскольку клиент идентифицировал себя как PXE-клиент, прокси-сервер DHCP также отвечает предложением DHCP с дополнительной информацией, но без информации об IP-адресе. Он оставляет IP-адрес для назначения обычному серверу DHCP. Прокси-сервер DHCP предоставляет имя следующего сервера и имя загрузочного файла, которые используются клиентом во время предстоящей транзакции TFTP

  4. Клиент PXE отвечает на предложение DHCP запросом DHCP, в котором он официально запрашивает информацию о конфигурации IP-адреса у обычного DHCP-сервера

  5. Обычный DHCP-сервер отвечает подтверждением ACK, сообщая клиенту, что он может использовать запрошенные данные конфигурации IP

  6. Теперь клиент получает информацию о конфигурации IP-адреса, имя сервера TFTP и имя загрузочного файла и инициирует транзакцию TFTP для загрузки загрузочного файла

Загрузочные файлы и конфигурация находятся по пути:

/var/lib/rudesktop/pxe/tftp/

Подсказка

  • wimboot для Windows

  • autoexec.ipxe для Linux

После публикации образа потребуется в настройках DHCP сервера указать опции 66, 67:

  • Option 66 — адрес сервера RuDesktop

  • Option 67 — имя загрузочного файла

Описание PXE

  • Процесс установки записан в файле по пути:

    /usr/share/rudesktop/etc/answers/answers_uefi.xml
    
  • Загрузочный файл находится по пути:

    /var/lib/rudesktop/pxe/tftp/wimboot
    
  • Передача параметров определяется по пути:

    /usr/share/rudesktop/bin/pxe
    
  • Изменить имя и параметры возможно по пути:

    /usr/share/rudesktop/bin/publish
    

Пример для Windows:

После загрузки wimboot на устройство, ОС устанавливается по правилам которые описаны в файле answers_uefi.xml

  1. Форматирование дисков и разделов

  2. Создание диска C:\

  3. Создание пользователя

    Подсказка

    Пользователь указывается при создании образа в веб-интерфейсе на странице Установка OS

  4. Установка приложения RuDesktop

  5. Подключение приложения RuDesktop к серверу, с которого раздавался образ

Изменение конфигурации PXE

Переопределение конфигурации PXE возможно через добавление файла-конфигурации в пользовательскую директорию

  • Основная директория:

    /var/lib/rudesktop/pxe
    
  • Пользовательская директория:

    /var/lib/rudesktop/user/pxe
    

    Важно

    Приоритет выше у пользовательского конфига

    Директория /var/lib/rudesktop/user/ используется для переопределения конфигов, таким образом можно изменить любой конфиг

Пример по изменению ответов для Windows

  1. Cоздать конфиг-файл answers_uefi.xml

  2. Добавить его в директорию по пути:

    /var/lib/rudesktop/user/pxe/overlay/answers_uefi.xml
    
  3. Опубликовать образ повторно в веб-интерфейсе на странице Установка OS

Важно

Аналогичным способом можно осуществлять изменения любых файлов в /var/lib/rudesktop/pxe