Среда выполнения перед загрузкой
Эта статья нуждается в дополнительных цитатах для проверки . ( май 2021 г. ) |
В вычислительной технике спецификация Preboot eXecution Environment , PXE (чаще всего произносится как / ˈ p ɪ k s iː / pixie , часто называемая PXE Boot/ pixie boot .) описывает стандартизированную клиент-серверную среду, которая загружает сборку программного обеспечения, полученную из сети на клиентах с поддержкой PXE. На стороне клиента требуется только контроллер сетевого интерфейса (NIC) с поддержкой PXE и используется небольшой набор стандартных сетевых протоколов, таких как DHCP и TFTP .
Концепция PXE зародилась на заре появления таких протоколов, как BOOTP /DHCP/TFTP, а по состоянию на 2015 г. [update] он является частью стандарта Unified Extensible Firmware Interface (UEFI). В современных центрах обработки данных PXE является наиболее частым выбором. [1] для загрузки, установки и развертывания операционной системы.
Обзор
[ редактировать ]С момента появления компьютерных сетей существует постоянная потребность в клиентских системах, которые могут загружать соответствующие образы программного обеспечения с соответствующими параметрами конфигурации, которые извлекаются во время загрузки с одного или нескольких сетевых серверов . Эта цель требует, чтобы клиент использовал набор служб предварительной загрузки, основанных на стандартных сетевых протоколах . Кроме того, программа сетевой загрузки (NBP), которая первоначально загружается и запускается, должна быть построена с использованием уровня микропрограммы клиента (на устройстве, загружаемом через PXE), обеспечивая независимый от оборудования стандартизированный способ взаимодействия с окружающей средой сетевой загрузки. В этом случае доступность и соответствие стандартам являются ключевым фактором, необходимым для обеспечения совместимости систем процесса сетевой загрузки. [ нужна ссылка ]
Одной из первых попыток в этом отношении была начальная загрузка с использованием стандарта TFTP RFC 906, опубликованного в 1984 году, который установил опубликованный в 1981 году стандарт RFC 783 тривиального протокола передачи файлов (TFTP), который будет использоваться в качестве стандартного протокола передачи файлов для начальной загрузки. Вскоре за ним последовал стандарт протокола начальной загрузки RFC 951 (BOOTP), опубликованный в 1985 году, который позволил бездисковой клиентской машине обнаружить свой собственный IP-адрес, адрес TFTP-сервера и имя NBP для загрузки в памяти и выполнено. Трудности реализации BOOTP, среди других причин, в конечном итоге привели к разработке стандарта протокола динамической конфигурации хоста RFC 2131 (DHCP), опубликованного в 1997 году. Новаторский подход TFTP/BOOTP/DHCP не оправдал ожиданий, поскольку в то время он не определял необходима стандартизированная клиентская часть среды подготовки.
Среда выполнения перед загрузкой (PXE) была представлена как часть Wired for Management. [2] framework от Intel и описан в спецификации, опубликованной Intel и SystemSoft. Версия PXE 2.0 была выпущена в декабре 1998 года, а обновление 2.1 было обнародовано в сентябре 1999 года. [3] Среда PXE использует несколько стандартных протоколов клиент-сервер, включая DHCP и TFTP (теперь определенные в опубликованном в 1992 году RFC 1350). В схеме PXE клиентская часть уравнения обеспечения является неотъемлемой частью стандарта PXE и реализуется либо как сетевой карты (NIC) расширение BIOS , либо текущие устройства в 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 в свою собственную оперативную память (ОЗУ) с помощью 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-серверу узнать (во время загрузки) точную архитектуру клиента из первого сетевого загрузочного пакета. [6]
С появлением IPv6 DHCP превратился в DHCPv6 ; Потребность в опциях, поддерживающих PXE в новом протоколе DHCP, была рассмотрена в 2010 году. [7]
Исходное расширение встроенного ПО клиента PXE было разработано как дополнительное ПЗУ IA-32 для BIOS , поэтому персональный компьютер (ПК) изначально стал поддерживающим PXE путем установки контроллера сетевого интерфейса (NIC), который предоставил дополнительное ПЗУ PXE. Сегодня клиентский PXE-код непосредственно включен в прошивку сетевого адаптера или как часть прошивки UEFI на материнской плате.
Даже если исходная прошивка клиента PXE была написана Intel и всегда предоставлялась бесплатно в виде подключаемого модуля формата объектного кода IA32 , включенного в их комплект разработки продуктов (PDK), мир открытого исходного кода на протяжении многих лет создавал нестандартные производные проекты. например gPXE / iPXE, предлагающие свои собственные ПЗУ. Хотя ПЗУ на базе Intel уже более 20 лет реализуют клиентскую часть стандарта PXE, некоторые пользователи были готовы пожертвовать дополнительными функциями ради стабильности и соответствия стандарту PXE. [8]
Принятие
[ редактировать ]Принятие PXE начиная с версии 2.1 стало повсеместным; сегодня практически невозможно найти сетевую карту без прошивки PXE. Доступность недорогого Gigabit Ethernet оборудования (сетевые карты, коммутаторы , маршрутизаторы и т. д.) сделала PXE самым быстрым доступным методом установки операционной системы на клиенте, конкурируя с классическими альтернативами CD , DVD и USB-накопителями .
За прошедшие годы несколько крупных проектов включили поддержку PXE, в том числе:
- Все основные дистрибутивы Linux.
- OpenVMS на оборудовании HPE Integrity и x86-64 .
- Microsoft Службы удаленной установки (RIS)
- Microsoft Службы развертывания Windows (WDS)
- Набор средств развертывания Microsoft (MDT)
- Microsoft Диспетчер конфигурации System Center (SCCM)
Что касается разработки NBP, существует несколько проектов, реализующих диспетчеры загрузки, способные предлагать расширенные функции меню загрузки, возможности создания сценариев и т. д.:
Все вышеупомянутые проекты, когда они могут загружать/устанавливать более одной ОС, работают по парадигме «Менеджер загрузки — Загрузчик». Первоначальный NBP представляет собой диспетчер загрузки, способный получить свою собственную конфигурацию и развернуть меню параметров загрузки. Пользователь выбирает вариант загрузки, и загрузчик, зависящий от ОС, загружается и запускается, чтобы продолжить выбранную конкретную процедуру загрузки.
Родственные среды
[ редактировать ]Apple разработала очень похожий подход к сетевой загрузке под эгидой спецификации протокола обнаружения загрузочного сервера (BSDP). BSDP v0.1 был первоначально опубликован Apple в августе 1999 года. [9] а его последняя версия 1.0.8 была опубликована в сентябре 2010 года. [10] Mac 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
[ редактировать ]- К. Р. Соллинз (июнь 1981 г.). ПРОТОКОЛ TFTP (ВЕРСИЯ 2) . Сетевая рабочая группа. дои : 10.17487/RFC0783 . РФК 783 . Неизвестный. Устарело РФК 1350 .
- Р. Финлейсон (июнь 1984 г.). Начальная загрузка с использованием TFTP . Сетевая рабочая группа. дои : 10.17487/RFC0906 . РФК 906 . Неизвестный.
- Билл Крофт; Джон Гилмор (сентябрь 1985 г.). ПРОТОКОЛ БУТСТРАП (BOOTP) . Сетевая рабочая группа. дои : 10.17487/RFC0951 . РФК 951 . Проект стандарта. Обновлено RFC 1395 , 1497 , 1532 , 1542 и 5494 .
- К. Соллинз (июль 1992 г.). ПРОТОКОЛ TFTP (ОБЗОР 2) . Сетевая рабочая группа. дои : 10.17487/RFC1350 . СТД 33. RFC 1350 . Интернет-стандарт 33. Устарел . RFC 783. Updated by RFC 1782 , 1783 , 1784 , 1785 , 2347 , 2348 и 2349 .
- Р. Дромс (март 1997 г.). Протокол динамической конфигурации хоста . Сетевая рабочая группа. дои : 10.17487/RFC2131 . РФК 2131 . Проект стандарта. Устаревшие RFC 1541. Updated by RFC 3396 , 4361 , 5494 и 6842 .
- Г. Малкин; А. Харкин (май 1998 г.). Опция размера блока TFTP . Сетевая рабочая группа. дои : 10.17487/RFC2348 . РФК 2348 . Проект стандарта. Обновления RFC 1350. Obsoletes РФК 1783 .
- М. Джонстон (июнь 2006 г.). С. Венаас (ред.). Параметры протокола динамической конфигурации хоста (DHCP) для среды Intel Preboot eXecution (PXE) . Сетевая рабочая группа. дои : 10.17487/RFC4578 . RFC 4578 . Информационный.
- Т. Хут; Дж. Фрейманн; В. Циммер; Д. Талер (сентябрь 2010 г.). Параметры DHCPv6 для сетевой загрузки . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC5970 . ISSN 2070-1721 . РФК 5970 . Предлагаемый стандарт.
- П. Масотта (январь 2015 г.). Вариант размера Windows TFTP . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC7440 . ISSN 2070-1721 . РФК 7440 . Предлагаемый стандарт.
См. также
[ редактировать ]- Бездисковые узлы – бездисковые компьютеры
- Протокол обнаружения службы загрузки — протокол сетевой загрузки Apple.
- Удаленная начальная загрузка программы (RIPL или RPL)
- Образ развертывания системы (SDI) — в основном с продуктами Microsoft.
- Унифицированный расширяемый интерфейс прошивки – загрузка по сети UEFI
- Пробуждение по локальной сети (WOL)
- Службы развертывания Windows — развертывание на основе PXE для Microsoft Windows.
Ссылки
[ редактировать ]- ^ Аврамов, Люсьен (31 декабря 2014 г.). Центр обработки данных, управляемый политиками, с ACI: архитектура, концепции и методология . Сиско Пресс. п. 43. ИСБН 978-1587144905 .
В современных центрах обработки данных администраторы редко устанавливают новое программное обеспечение через съемные носители, например DVD-диски. Вместо этого администраторы полагаются на загрузку PXE (Preboot eXecution Environment) с серверов образов.
- ^ «Wired for Management Baseline — выпуск версии 2.0» (PDF) . Корпорация Интел. 18 декабря 1998 г. Архивировано из оригинала (PDF) 22 февраля 2017 г. Проверено 8 февраля 2014 г.
- ^ Jump up to: а б «Спецификация среды выполнения перед загрузкой (PXE) — версия 2.1» (PDF) . Корпорация Интел. 20 сентября 1999 г. Архивировано из оригинала (PDF) 2 ноября 2013 г. Проверено 8 февраля 2014 г.
- ^ «Спецификация унифицированного расширяемого интерфейса встроенного ПО» (PDF) . УЕФИ. 2013-12-02 . Проверено 4 апреля 2014 г.
- ^ «Анализ производительности загрузки UEFI PXE» (PDF) . Корпорация Интел. 02.02.2014. Архивировано из оригинала (PDF) 8 августа 2014 г. Проверено 4 апреля 2014 г.
- ^ М. Джонстон (июнь 2006 г.). С. Венаас (ред.). Параметры протокола динамической конфигурации хоста (DHCP) для среды Intel Preboot eXecution (PXE) . Сетевая рабочая группа. дои : 10.17487/RFC4578 . RFC 4578 . Информационный.
- ^ Т. Хут; Дж. Фрейманн; В. Циммер; Д. Талер (сентябрь 2010 г.). Параметры DHCPv6 для сетевой загрузки . Целевая группа инженеров Интернета (IETF). дои : 10.17487/RFC5970 . ISSN 2070-1721 . РФК 5970 . Предлагаемый стандарт.
- ^ «Etherboot/gPXE Wiki» . Etherboo.org.
- ^ «NetBoot 2.0: Протокол обнаружения загрузочного сервера (BSDP) v0.1» (док) . Корпорация Apple. 02.12.2003 . Проверено 4 апреля 2014 г.
- ^ «NetBoot 2.0: Протокол обнаружения загрузочного сервера (BSDP) v1.08» (Док) . Корпорация Apple. 17 сентября 2010 г. Проверено 4 апреля 2014 г.
Внешние ссылки
[ редактировать ]- Спецификация PXE — спецификация среды выполнения предварительной загрузки версии 2.1, опубликованная Intel и SystemSoft.
- Спецификация BIS — спецификация Boot Integrity Services v1.0, опубликованная Intel.
- Среда выполнения Intel Preboot — Интернет-проект 00 протокола клиента/сервера PXE, включенного в спецификацию PXE
- Коды ошибок PXE — каталог кодов ошибок PXE.