При вычислении, то Preboot Execution Environment , PXE (наиболее часто произносится как / р ɪ к s ˙I / Пикси ) спецификация описывает стандартизованный клиент-серверной среды, сапоги программного обеспечения сборки, извлекается из сети, на PXE-совместимых клиентов. На стороне клиента требуется только контроллер сетевого интерфейса (NIC) с поддержкой PXE и используется небольшой набор стандартных сетевых протоколов, таких как DHCP и TFTP .
Концепция PXE возникла на заре таких протоколов, как BOOTP / DHCP / TFTP, и с 2015 года [Обновить]она является частью стандарта Unified Extensible Firmware Interface (UEFI). В современных центрах обработки данных PXE является наиболее частым выбором [1] для загрузки, установки и развертывания операционной системы.
Обзор
С самого начала компьютерных сетей существовала постоянная потребность в клиентских системах, которые могут загружать соответствующие образы программного обеспечения с соответствующими параметрами конфигурации, которые загружаются во время загрузки с одного или нескольких сетевых серверов . Эта цель требует, чтобы клиент использовал набор предзагрузочных служб, основанных на стандартных сетевых протоколах . Кроме того, программа сетевой загрузки (NBP), которая изначально загружается и запускается, должна быть построена с использованием уровня прошивки клиента (на устройстве, которое будет загружаться через PXE), обеспечивающего аппаратно-независимый стандартизированный способ взаимодействия с окружающей сетевой загрузочной средой. В этом случае доступность и соответствие стандартам являются ключевыми факторами, необходимыми для гарантии взаимодействия системы процесса сетевой загрузки.
Одной из первых попыток в этом отношении была загрузка начальной загрузки с использованием стандарта TFTP RFC 906, опубликованного в 1984 году, который установил опубликованный в 1981 году стандарт упрощенного протокола передачи файлов (TFTP) RFC 783, который будет использоваться в качестве стандартного протокола передачи файлов для начальной загрузки. Вскоре за ним последовал стандарт протокола начальной загрузки RFC 951 (BOOTP), опубликованный в 1985 году, который позволял бездисковой клиентской машине обнаруживать свой собственный IP-адрес, адрес TFTP-сервера и имя NBP. загружен в память и выполнен. Трудности с реализацией BOOTP, среди прочих причин, в конечном итоге привели к разработке стандарта протокола динамической конфигурации хоста RFC 2131 (DHCP), опубликованного в 1997 году. Новаторский подход TFTP / BOOTP / DHCP не оправдал себя, поскольку в то время он не определял Требуется стандартизированная клиентская часть среды подготовки.
Preboot Execution Environment (PXE) был введен как часть Wired для управления [2] структур по Intel и описан в спецификации , опубликованной Intel и SystemSoft. PXE версии 2.0 был выпущен в декабре 1998 года, а обновление 2.1 было обнародовано в сентябре 1999 года. [3] Среда PXE использует несколько стандартных клиент-серверных протоколов, включая DHCP и TFTP (теперь они определены в опубликованном в 1992 году RFC 1350). В схеме PXE клиентская сторона уравнения обеспечения является неотъемлемой частью стандарта PXE и реализована либо как расширение BIOS сетевой карты (NIC), либо как текущие устройства в коде UEFI . Этот особый уровень встроенного ПО предоставляет клиенту функции базового универсального интерфейса сетевых устройств (UNDI), минималистичного стека UDP / IP , клиентского модуля предварительной загрузки (DHCP) и клиентского модуля TFTP, вместе формирующих программные интерфейсы приложений PXE ( API), используемый NBP при необходимости взаимодействия со службами, предлагаемыми серверным аналогом среды PXE. Низкая пропускная способность TFTP , особенно при использовании по каналам с высокой задержкой , была первоначально смягчена опцией TFTP Blocksize Option RFC 2348, опубликованной в мае 1998 года, а затем опцией TFTP Windowsize Option RFC 7440, опубликованной в январе 2015 года, что позволяет потенциально увеличить доставку полезной нагрузки и, следовательно, повышение пропускной способности.
Подробности
Среда PXE основана на сочетании стандартных Интернет-протоколов, а именно UDP / IP, DHCP и TFTP. Эти протоколы были выбраны потому, что они легко реализуются в микропрограммном обеспечении сетевой карты клиента, что приводит к созданию стандартизированных компактных ПЗУ PXE. Стандартизация, небольшой размер образов микропрограмм PXE и их низкое использование ресурсов - вот некоторые из основных целей проектирования, позволяющие одинаково реализовать клиентскую сторону стандарта PXE в самых разных системах, от мощных клиентских компьютеров до ограниченных ресурсов. одноплатные компьютеры (SBC) и компьютеры с системой на кристалле (SoC).
DHCP используется для предоставления соответствующих сетевых параметров клиента и, в частности, местоположения (IP-адреса) сервера TFTP, готового к загрузке, начальной программы начальной загрузки (NBP) и дополнительных файлов. Чтобы инициировать сеанс начальной загрузки PXE, компонент DHCP клиентского микропрограммного обеспечения PXE передает пакет DHCPDISCOVER, содержащий параметры PXE, на порт 67 / UDP (порт DHCP-сервера); он запрашивает необходимую конфигурацию сети и параметры загрузки по сети. Параметры, специфичные для PXE, идентифицируют инициированную транзакцию DHCP как транзакцию PXE. Стандартные DHCP-серверы (без поддержки PXE) смогут отвечать обычным DHCPOFFER, несущим сетевую информацию (например, IP-адрес), но не параметры, специфичные для PXE. Клиент PXE не сможет загрузиться, если получит ответ только от DHCP-сервера без поддержки PXE.
После синтаксического анализа DHCP-сервера DHCPOFFER с поддержкой PXE, клиент сможет установить свой собственный сетевой IP-адрес, IP-маску и т. Д., А также указать на ресурсы загрузки, расположенные в сети, на основе полученного IP-адреса TFTP-сервера и имени НБП. Затем клиент передает NBP в свою собственную оперативную память (RAM), используя TFTP, возможно, проверяет его (например, безопасную загрузку UEFI ) и, наконец, загружается из него. NBP - это всего лишь первое звено в процессе загрузочной цепочки, и они обычно запрашивают через TFTP небольшой набор дополнительных файлов, чтобы запустить минималистичный исполнитель ОС (например, WindowsPE или базовое ядро Linux + initrd ). Небольшой исполнитель ОС загружает собственные сетевые драйверы и стек TCP / IP. На этом этапе остальные инструкции, необходимые для загрузки или установки полной ОС, предоставляются не через TFTP, а с использованием надежного протокола передачи (например, HTTP , CIFS или NFS ).
Интеграция
Среда PXE Client / Server была разработана таким образом, чтобы ее можно было легко интегрировать с уже существующей инфраструктурой серверов DHCP и TFTP. Эта проектная цель представляла проблему при работе с классическим протоколом DHCP. Корпоративные DHCP-серверы обычно подчиняются строгим политикам, которые предназначены для предотвращения простого добавления дополнительных параметров и правил, необходимых для поддержки среды PXE. По этой причине стандарт PXE разработал концепцию перенаправления DHCP или «proxyDHCP». Идея proxyDHCP заключается в разделении требований PXE DHCP на два независимо запускаемых и администрируемых серверных модуля:
- Классический DHCP-сервер, предоставляющий IP-адрес, IP-маску и т. Д. Всем загружающимся DHCP-клиентам .
- Сервер proxyDHCP предоставляет IP-адрес TFTP-сервера и имя NBP только PXE-идентифицированным загружающим клиентам .
В среде DHCP + proxyDHCP-сервера [3] : 18 клиент PXE первоначально передает один пакет PXE DHCPDISCOVER и получает два дополнительных DHCPOFFER; один от обычного DHCP-сервера без поддержки PXE, а второй от proxyDHCP-сервера. Оба ответа вместе предоставляют необходимую информацию, чтобы позволить клиенту PXE продолжить процесс загрузки. Этот ненавязчивый подход позволяет настроить среду PXE, не затрагивая конфигурацию уже работающего DHCP-сервера. Служба proxyDHCP также может работать на том же хосте, что и стандартная служба DHCP, но даже в этом случае они представляют собой два независимо запускаемых и администрируемых приложения. Поскольку две службы не могут использовать один и тот же порт 67 / UDP на одном хосте, proxyDHCP работает на порту 4011 / UDP. Подход proxyDHCP оказался чрезвычайно полезным в широком диапазоне сценариев PXE, от корпоративных до домашних.
Доступность
PXE был задуман с учетом нескольких системных архитектур. Версия 2.1 спецификации определила идентификаторы архитектуры для шести типов систем, включая IA-64 и DEC Alpha . Однако PXE v2.1 полностью покрывает только IA-32 . Несмотря на эту очевидную неполноту, Intel недавно решила широко поддерживать PXE в рамках новой спецификации UEFI, расширяя функциональность PXE на все среды EFI / UEFI. Текущая спецификация интерфейса унифицированного расширяемого микропрограммного обеспечения 2.4A, раздел 21 Сетевые протоколы - SNP, PXE и BIS определяет протоколы, которые обеспечивают доступ к сетевым устройствам при выполнении в среде служб загрузки UEFI. Эти протоколы включают простой сетевой протокол (SNP), протокол базового кода PXE (PXE) и протокол служб целостности загрузки (BIS). [4] [5] Сегодня в среде PXE определение клиентской архитектуры редко основывается на идентификаторах, изначально включенных в спецификацию PXE v2.1, вместо этого каждый компьютер, который будет загружаться из сети, должен иметь параметр DHCP 93, чтобы указать клиентская архитектура. Это позволяет серверу PXE знать (во время загрузки) точную архитектуру клиента из первого сетевого загрузочного пакета. Значения архитектуры клиентской системы перечислены (среди других параметров PXE) в опубликованном в 2006 году RFC 4578 (Параметры протокола динамической конфигурации хоста (DHCP) для среды Intel Preboot eXecution Environment (PXE)).
С появлением IPv6 DHCP превратился в DHCPv6 ; Потребность в опциях, поддерживающих PXE в рамках нового протокола DHCP, была решена в опубликованном в 2010 году RFC 5970 (Опции DHCPv6 для сетевой загрузки).
Исходное расширение микропрограммы клиента PXE было разработано как дополнительное ПЗУ для IA-32 BIOS , поэтому персональный компьютер (ПК) изначально был совместим с PXE путем установки контроллера сетевого интерфейса (NIC), который предоставлял дополнительное ПЗУ PXE. Сегодня клиентский PXE-код напрямую включен в собственную прошивку сетевой карты или как часть прошивки UEFI на материнской плате.
Даже когда исходная клиентская прошивка PXE была написана Intel и всегда предоставлялась бесплатно в виде связываемого модуля формата объектного кода IA32 , включенного в их Product Development Kit (PDK), мир с открытым исходным кодом создавал на протяжении многих лет нестандартные производные проекты. например, gPXE / iPXE, предлагающие свои собственные ПЗУ. Хотя ПЗУ на базе Intel реализуют клиентскую сторону стандарта PXE более 20 лет, некоторые пользователи были готовы обменять дополнительные функции на стабильность и соответствие стандарту PXE. [6]
Принятие
Принятие PXE начиная с версии 2.1 было повсеместным; Сегодня найти сетевую карту без прошивки PXE практически невозможно. Доступность недорогого оборудования Gigabit Ethernet (сетевые адаптеры, коммутаторы , маршрутизаторы и т. Д.) Сделало PXE самым быстрым из доступных методов установки операционной системы на клиенте по сравнению с классическими альтернативами CD , DVD и USB-накопителям .
За прошедшие годы несколько крупных проектов включали поддержку PXE, в том числе:
- Все основные дистрибутивы Linux.
- HP OpenVMS на оборудовании Itanium .
- Службы удаленной установки Microsoft (RIS)
- Службы развертывания Microsoft Windows (WDS)
- Набор средств развертывания Microsoft (MDT)
- Диспетчер конфигурации Microsoft System Center (SCCM)
Что касается разработки NBP, существует несколько проектов, реализующих менеджеры загрузки, которые могут предлагать расширенные функции меню загрузки, возможности создания сценариев и т. Д .:
- Syslinux PXELINUX
- gPXE / iPXE
Все вышеупомянутые проекты, когда они могут загружать / устанавливать более одной ОС, работают по парадигме «Boot Manager - Boot Loader». Первоначальный NBP - это диспетчер загрузки, способный получить свою собственную конфигурацию и развернуть меню параметров загрузки. Пользователь выбирает вариант загрузки, и загрузчик, зависящий от ОС, загружается и запускается, чтобы продолжить выбранную конкретную процедуру загрузки.
Братья и сестры
Apple разработала очень похожий подход к сетевой загрузке под эгидой спецификации Boot Server Discovery Protocol (BSDP). БСДП v0.1 была первоначально опубликована Apple , в августе 1999 года [7] и его последний v1.0.8 был опубликован в сентябре 2010 года [8] OS X Server включает в себя инструмент под названием системы NetBoot . Клиент NetBoot использует BSDP для динамического получения ресурсов, позволяющих загружать подходящую операционную систему. BSDP создается поверх DHCP с использованием информации от производителя для обеспечения дополнительных функций NetBoot, отсутствующих в стандартном DHCP. Протокол реализован в клиентской прошивке. Во время загрузки клиент получает IP-адрес через DHCP, а затем обнаруживает загрузочные серверы с помощью BSDP. Каждый сервер BSDP отвечает загрузочной информацией, состоящей из:
- Список загрузочных образов операционной системы
- Образ операционной системы по умолчанию
- Текущий выбранный клиентом образ операционной системы (если определен)
Клиент выбирает операционную систему из списка и отправляет на сервер сообщение, указывающее на свой выбор. Выбранный загрузочный сервер отвечает, предоставляя загрузочный файл и загрузочный образ, а также любую другую информацию, необходимую для загрузки и запуска выбранной операционной системы.
Потомки среды
Microsoft создала неперекрывающееся расширение среды PXE со своим уровнем согласования информации о загрузке (BINL). BINL реализован как служба сервера и является ключевым компонентом их стратегий служб удаленной установки (RIS) и служб развертывания Windows (WDS). Он включает в себя определенные подготовительные процессы и сетевой протокол, который можно так или иначе рассматривать как расширение DHCP, созданное Microsoft. BINL - это запатентованная технология Microsoft, использующая стандартную клиентскую микропрограмму PXE. В настоящее время нет общедоступной спецификации BINL.
Документация по стандартам IETF
RFC # | Заголовок | Опубликовано | Автор | Устаревшая и обновленная информация |
---|---|---|---|---|
RFC 783 | Протокол TFTP (Версия 2) | Июнь 1981 г. | К. Соллинз | Устарело - RFC 1350 |
RFC 906 | Загрузка начальной загрузки с использованием TFTP | Июнь 1984 г. | Росс Финлейсон | - |
RFC 951 | Протокол начальной загрузки | Сентябрь 1985 г. | Билл Крофт | Обновлено RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494 |
RFC 1350 | Протокол TFTP (Версия 2) | Июль 1992 г. | К. Соллинз | Обновлено RFC 1782, RFC 1783, RFC 1784, RFC 1785, RFC 2347, RFC 2348, RFC 2349 |
RFC 2131 | Протокол динамического конфигурирования сервера | Март 1997 г. | Р. Дромс | Обновлено RFC 3396, RFC 4361, RFC 5494, RFC 6842 |
RFC 2348 | Вариант размера блока TFTP | Май 1998 г. | Г. Малкин | - |
RFC 4578 | Параметры DHCP для Intel PXE | Ноя 2006 г. | М. Джонстон | - |
RFC 5970 | Параметры DHCPv6 для сетевой загрузки | Сен-2010 | Т. Хут | - |
RFC 7440 | Вариант TFTP Windowsize | Янв-2015 | П. Масотта | - |
Смотрите также
- Бездисковые узлы - бездисковые компьютеры
- Протокол обнаружения службы загрузки - протокол сетевой загрузки Apple
- Удаленная загрузка начальной программы (RIPL или RPL)
- Образ развертывания системы (SDI) - в основном с продуктами Microsoft
- Единый расширяемый интерфейс микропрограмм - загрузка по сети UEFI
- Пробуждение по локальной сети (WOL)
- Службы развертывания Windows - развертывание на основе PXE для Microsoft Windows
Рекомендации
- ↑ Аврамов, Люсьен (31 декабря 2014 г.). Центр обработки данных на основе политик с ACI: архитектура, концепции и методология . Cisco Press. п. 43. ISBN 978-1587144905.
В современных центрах обработки данных администраторы редко устанавливают новое программное обеспечение с помощью съемных носителей, таких как DVD. Вместо этого администраторы полагаются на загрузку PXE (Preboot eXecution Environment) на серверы образов.
- ^ «Wired for Management Baseline - версия 2.0, выпуск» (PDF) . Корпорация Intel. 1998-12-18 . Проверено 8 февраля 2014 .
- ^ а б «Спецификация среды выполнения предварительной загрузки (PXE) - версия 2.1» (PDF) . Корпорация Intel. 1999-09-20. Архивировано из оригинального (PDF) 2 ноября 2013 года . Проверено 8 февраля 2014 .
- ^ «Спецификация унифицированного расширяемого интерфейса микропрограмм» (PDF) . UEFI. 2013-12-02 . Проверено 4 апреля 2014 .
- ^ «Анализ производительности загрузки UEFI PXE» (PDF) . Корпорация Intel. 2014-02-02. Архивировано из оригинального (PDF) 08.08.2014 . Проверено 4 апреля 2014 .
- ^ "Etherboot / gPXE Wiki" . Etherboo.org.
- ^ «NetBoot 2.0: протокол обнаружения загрузочного сервера (BSDP) v0.1» (Док) . Корпорация Apple. 2003-12-02 . Проверено 4 апреля 2014 .
- ^ «NetBoot 2.0: протокол обнаружения загрузочного сервера (BSDP) v1.08» (Док) . Корпорация Apple. 2010-09-17 . Проверено 4 апреля 2014 .
Внешние ссылки
- Спецификация PXE - спецификация среды выполнения перед загрузкой v2.1, опубликованная Intel и SystemSoft
- Спецификация BIS - спецификация Boot Integrity Services v1.0, опубликованная Intel
- Среда выполнения Intel Preboot Execution Environment - Internet-Draft 00 протокола PXE Client / Server, включенного в спецификацию PXE
- Коды ошибок PXE - каталог кодов ошибок PXE