HTTP Boot замена PXE
Ранее в блоге был пост про PXE загрузку. Установка Windows по сети. За подробностями можно перейти почитать. Если вкратце. Настроив DHCP сервер можно указать клиенту сетевое расположение установочного образа системы (NBP
).
Прогресс не стоит на месте и на место PXE приходит HTTP Boot. Про сравнение двух подходов и пойдет речь.
Первое, что нужно знать про HTTP Boot - он работает только на системах UEFI
версии 2.5 и выше. Поэтому если у вас по-прежнему используется BIOS возможно следует обновиться. Тем более что крупнейший производитель чипов Intel собирается прекратить поддержку BIOS после 2020.
Напоминание, что переключение с BIOS на UEFI загрузку требует изменения в установленной ОС.
Дальше вспомним про работу PXE.
Загрузка в PXE
Процесс загрузки PXE использует несколько протоколов.
-
DHCP
- Клиент передает опцию PXEClient
- Сервер передает опцию сервера загрузки и опцию имени файла загрузки
-
TFTP Клиент скачивает образ Network Bootstrap Program (NBP)
- Запуск исполняемого образа Передача управления ему. Дальнейшая загрузка использует протоколы, реализованные в самом образе. Так для Windows это SMB протокол.
NBP файл
Следует напомнить, что система UEFI требует определенный файл NBP. Он не совместим с файлом для BIOS.
Например, для загрузки Windows Deployment Sever (WDS) в опции DHCP следует указать следующий файл:
- Для BIOS системы:
wdsnbp.com
- Для UEFI системы:
wdsmgfw.efi
HTTP до внедрения HTTP Boot
Загрузка по HTTP была доступна и раньше с использованием сторонних PXE загрузчиков.
Пример iPXE
Например, можно заменить Windows Deployment Server (WDS), DHCP и веб сервер одной программой. И использовать только Microsoft Deployment Toolkit (MDT). В таком дизайне используется следующие компоненты:
- Tiny PXE Server DHCP и HTTP сервер.
- iPXE загрузчик С поддержкой WIM файлов.
- Файлы MDT
Boot\BCD
,Boot\boot.sdi
,Sources\Boot.wim
Процесс в этом случае такой:
- Клиент выбирает загрузку UEFI NIC
-
Запускается UEFI PXE загрузка
- Клиент получает свой IP адрес от Tiny PXE Server
- Клиент получает IP адрес сервера загрузки от Tiny PXE Server
- Клиент получает имя файла NBP от Tiny PXE Server
- Клиент загружает NBP файл
- Клиент запускает NBP файл
-
Выводится меню iPXE с выбором вариантов загрузки:
- Загрузка WIM через HTTP
- Загрузка WIM через TFTP
-
Выбирается загрузка через HTTP
- Загружаются файлы
BCD
,boot.sdi
,boot.wim
- Запускается MDT Task Sequence и ему передается управление
Сравним с HTTP Boot.
HTTP Boot
Что поменялось в сравнении с загрузкой PXE? Поддержка HTTP протокола с самого старта. Самый первый NBP образ в PXE загружается по TFTP протоколу. В HTTP Boot это изменилось. HTTP используется для загрузки после выбора UEFI NIC. Это позволяет загружать многомегабайтные файлы быстрее и проще масштабировать.
Опция эксклюзивная. Т.е. в настройках UEFI можно выбрать либо HTTP Boot, либо PXE. Однако в сети встречаются упоминания, когда DHCP сервер отправляет клиенту опцию vendor-class-identifier
HTTPClient
. И тогда клиент понимает, что для загрузки NBP образа надо использовать HTTP Boot.
Какие возможности дает HTTP Boot? Быстрее передача данных. Шифрование передачи данных.
Как и раньше для загрузки по сети требуется DHCP сервер и опционально DNS. В HTTP Boot к ним добавился HTTP сервер (веб сервер). Клиенты подключаются по HTTP к веб серверу и скачивают NBP образ загрузки. В сети встречаются упоминания, что поддерживается загрузка ISO образа.
Загрузка в HTTP Boot
Процесс загрузки HTTP Boot похож на PXE.
-
DHCP
- Клиент передает опцию HTTPClient
- Сервер передает опцию HTTPClient и URI загрузки. URL содержит протокол (HTTP/HTTPS), имя сервера и имя файла.
-
HTTP Клиент скачивает образ NBP
- Запуск исполняемого образа Передача управления ему.
Заключение.
Вероятно, со временем системы полностью перейдут на UEFI. А для загрузки по сети будет использоваться HTTP Boot. Использование стандартных компонентов должно способствовать этому процессу.