PXE Boot: жүйелік серверден жүктеу стандарты. DHCP, TFTP протоколдары арқылы желіден жүктеу, OS орнату және кеңейтуге қолданылады. UEFI стандартының бөлігі.
Standard for booting from a server
an episode of the animated series Adventure Time
Информатикада, Preboot eXecution Environment, PXE (көбінесе /'//p//I//k//s//i:/ pixie деп айтылады, көбінесе PXE Boot/pixie boot деп аталады.) спецификациясы PXE мүмкіндігі бар клиенттерде желіден алынған бағдарламалық жиынды жүктеу үшін стандартталған клиент-сервер ортасын сипаттайды. Клиент тарапында PXE-ге қабілетті желілік интерфейс контроллері (NIC) ғана қажет, және DHCP және TFTP сияқты өнеркәсіптік стандартты желілік протоколдардың шағын жиынтығы қолданылады. PXE тұжырымы BOOTP/DHCP/TFTP сияқты протоколдардың пайда болу кезеңінде қалыптасқан, және 2015 жылдан бері ол Бірыңғай кеңейтілетін микропрограммалық интерфейс (UEFI) стандартының бөлігі болып табылады. Қазіргі заманғы деректер орталықтарында PXE операциялық жүйені жүктеу, орнату және енгізу үшін ең көп қолданылатын таңдау болып табылады.
In computing, the Preboot eXecution Environment, PXE (most often pronounced as /'//p//I//k//s//i:/ pixie, often called PXE Boot/pixie boot.) specification describes a standardized client–server environment that boots a software assembly, retrieved from a network, on PXE enabled clients. On the client side it requires only a PXE capable network interface controller (NIC), and uses a small set of industry standard network protocols such as DHCP and TFTP. The concept behind the PXE originated in the early days of protocols like BOOTP/DHCP/TFTP, and as of 2015 it forms part of the Unified Extensible Firmware Interface (UEFI) standard. In modern data centers, PXE is the most frequent choice for operating system booting, installation and deployment.
Шолу
Компьютерлік желілердің пайда болуынан бері, клиенттік жүйелерге тиісті бағдарламалық жасақтамаларды жүктеуге және бір немесе бірнеше желілік серверлерден жүктеу кезінде алынған тиісті конфигурациялық параметрлерді пайдалануға қабілеттілік қажеттігі туындады. Бұл мақсатқа жету үшін клиентке өндіріс стандартындағы желілік протоколдарға негізделген алдын ала жүктеу қызметтерінің жиынтығы қажет. Сонымен қатар, бастапқыда жүктеп алынып, іске қосылатын Желілік жүктеу бағдарламасы (NBP) клиенттік микропрограммалық қабатты (PXE арқылы жүктелетін құрылғыда) пайдалану арқылы құрылуы тиіс, ол қоршаған желілік жүктеу ортасымен өзара әрекеттесудің аппараттық тәуелсіз, стандартталған тәсілін ұсынады. Мұндай жағдайда, қолжетімділік және стандарттарға сәйкестік желілік жүктеу процесінің жүйелік үйлесімділігіне кепілдік беру үшін маңызды факторлар болып табылады. Бұл бағыттағы алғашқы қадамдардың бірі 1984 жылы жарияланған TFTP стандарты RFC 906 болды, ол 1981 жылы жарияланған Trivial File Transfer Protocol (TFTP) стандарты RFC 783-ті жүктеу үшін стандартты файлдық беру протоколы ретінде пайдалануды белгіледі. Одан кейін 1985 жылы жарияланған Bootstrap протоколы стандарты RFC 951 (BOOTP) пайда болды, ол дискісіз клиенттік машинаға өзінің IP-мекенжайын, TFTP серверінің мекенжайын және жадқа жүктеліп, іске қосылатын NBP-нің атын анықтауға мүмкіндік берді. BOOTP-ті жүзеге асырудағы қиындықтар және басқа да себептер, 1997 жылы жарияланған Динамикалық хост конфигурациялау протоколы стандарты RFC 2131 (DHCP) әзірленуіне әкелді. TFTP/BOOTP/DHCP-нің алғашқы тәсілдері жеткіліксіз болды, себебі ол кезде камтамасыз ету ортасының қажетті стандартталған клиенттік бөлігі анықталмаған еді. Preboot Execution Environment (PXE) Intel компаниясының Wired for Management құрылымының бөлігі ретінде енгізілді және Intel және SystemSoft компаниялары жариялаған сипаттамаларда сипатталған. PXE 2.0 нұсқасы 1998 жылдың желтоқсанында, ал 2.1 жаңартуы 1999 жылдың қыркүйегінде жарияланды. PXE ортасы DHCP және TFTP сияқты бірнеше стандартты клиент-сервер протоколдарын пайдаланады (қазір 1992 жылы жарияланған RFC 1350-де анықталған). PXE схемасында камтамасыз ету процесінің клиенттік бөлігі PXE стандартының ажырамас бөлігі болып табылады және ол Желілік интерфейс картасының (NIC) BIOS кеңейтуі ретінде немесе UEFI кодындағы қазіргі құрылғылар ретінде жүзеге асырылады. Бұл ерекше микропрограммалық қабат клиентке негізгі Универсалды желілік құрылғы интерфейсінің (UNDI), минималистік UDP/IP стегінің, алдын ала жүктеу (DHCP) клиенттік модулінің және TFTP клиенттік модулінің функцияларын қолжетімді етеді, олар PXE ортасының серверлік бөлігі ұсынатын қызметтермен өзара әрекеттесу қажет болғанда NBP қолданатын PXE қолданбалық бағдарламалау интерфейстерін (API) құрайды. TFTP-нің төмен өнімділігі, әсіресе жоғары жауап уақыты бар желілерде пайдаланылған кезде, бастапқыда 1998 жылдың мамырында жарияланған TFTP Blocksize Option RFC 2348, ал кейіннен 2015 жылдың қаңтар айында жарияланған TFTP Windowsize Option RFC 7440 арқылы жеңілдетілді, бұл үлкенірек пайдалы жүктемені жеткізуге және өнімділікті арттыруға мүмкіндік берді.
Since the beginning of computer networks, there has been a persistent need for client systems which can boot appropriate software images, with appropriate configuration parameters, both retrieved at boot time from one or more network servers. This goal requires a client to use a set of pre boot services, based on industry standard network protocols. Additionally, the Network Bootstrap Program (NBP) which is initially downloaded and run must be built using a client firmware layer (at the device to be bootstrapped via PXE) providing a hardware independent standardized way to interact with the surrounding network booting environment. In this case the availability and subjection to standards are a key factor required to guarantee the network boot process system interoperability. One of the first attempts in this regard was bootstrap loading using TFTP standard RFC 906, published in 1984, which established the 1981 published Trivial File Transfer Protocol (TFTP) standard RFC 783 to be used as the standard file transfer protocol for bootstrap loading. It was followed shortly after by the Bootstrap Protocol standard RFC 951 (BOOTP), published in 1985, which allowed a diskless client machine to discover its own IP address, the address of a TFTP server, and the name of an NBP to be loaded into memory and executed. BOOTP implementation difficulties, among other reasons, eventually led to the development of the Dynamic Host Configuration Protocol standard RFC 2131 (DHCP) published in 1997. The pioneering TFTP/BOOTP/DHCP approach fell short, as at the time, it did not define the required standardized client side of the provisioning environment. The Preboot Execution Environment (PXE) was introduced as part of the Wired for Management framework by Intel and is described in the specification published by Intel and SystemSoft. PXE version 2.0 was released in December 1998, and the update 2.1 was made public in September 1999. The PXE environment makes use of several standard client‑server protocols including DHCP and TFTP (now defined by the 1992 published RFC 1350). Within the PXE schema the client side of the provisioning equation is an integral part of the PXE standard and it is implemented either as a Network Interface Card (NIC) BIOS extension or current devices in UEFI code. This distinctive firmware layer makes available at the client the functions of a basic Universal Network Device Interface (UNDI), a minimalistic UDP/IP stack, a Preboot (DHCP) client module and a TFTP client module, together forming the PXE application programming interfaces (APIs) used by the NBP when needing to interact with the services offered by the server counterpart of the PXE environment. TFTP's low throughput, especially when used over high latency links, has been initially mitigated by the TFTP Blocksize Option RFC 2348 published in May 1998, and later by the TFTP Windowsize Option RFC 7440 published in January 2015, allowing potentially larger payload deliveries and thus improving throughput.
Егжей-тегжейлер
PXE ортасы индустриялық стандарттағы Интернет протоколдарының, атап айтқанда UDP/IP, DHCP және TFTP комбинациясына негізделген. Бұл протоколдар таңдалды, себебі оларды клиенттің желілік картасының (NIC) микрокодқа оңай енгізуге болады, нәтижесінде стандартталған, кішкентай көлемді PXE микрокодтары құрылады. Стандарттау, PXE микрокодтарының кішкентай өлшемі және олардың ресурстарды аз қолдануы – PXE стандартының клиенттік бөлігін қуатты клиенттік компьютерлерден бастап, шектеулі ресурстарға ие бір тақталı компьютерлерге (SBC) және чиптегі жүйелік компьютерлерге (SoC) дейін әртүрлі жүйелерде бірдей жүзеге асыруға мүмкіндік беретін негізгі жобалау мақсаттарының бірі. DHCP клиентке қажетті желілік параметрлерді және TFTP серверінің орналасқан жерін (IP-мекенжайын) – бастапқы жүктеу бағдарламасын (NBP) және қосымша файлдарды жүктеуге дайын күйде ұсыну үшін қолданылады. PXE жүктеу сеансын бастау үшін клиенттің PXE микрокодының DHCP компоненті 67/UDP портына (DHCP серверінің порты) PXE-ге тән опцияларды қамтитын DHCPDISCOVER пакетін жібереді; ол қажетті желілік конфигурация мен желілік жүктеу параметрлерін сұрайды. PXE-ге тән опциялар бастамасы берілген DHCP транзакциясын PXE транзакциясы ретінде анықтайды. Стандартты DHCP серверлері (PXE қолдауы жоқ) желілік ақпаратты (мысалы, IP-мекенжайын) қамтитын, бірақ PXE-ге тән параметрлерді емес, қарапайым DHCPOFFER пакетімен жауап бере алады. PXE клиенті PXE қолдауы жоқ DHCP серверінен жауап алса, жүктеле алмайды. PXE қолдауы бар DHCP серверінен алынған DHCPOFFER пакетін талдағаннан кейін клиент өзінің желілік IP-мекенжайын, IP-маскасын және т.б. орната алады, сондай-ақ алынған TFTP серверінің IP-мекенжайы мен NBP атауына сүйене отырып, желіде орналасқан жүктеу ресурстарын көрсетуге болады. Клиент одан кейін NBP-ді TFTP арқылы өзінің жедел жадына (RAM) көшіреді, мүмкін оны тексеріп (мысалы, UEFI Secure Boot) және соңында одан жүктеледі. NBP – жүктеу тізбегі процесінің алғашқы буыны ғана, және олар әдетте TFTP арқылы минималистік операциялық жүйені (мысалы, WindowsPE немесе негізгі Linux ядросы + initrd) іске қосу үшін қосымша файлдардың кішкентай жиынтығын сұрайды. Кішкентай операциялық жүйенің атқарушы механизмі өзінің желілік драйверлерін және TCP/IP стегін жүктейді. Бұл кезде толық операциялық жүйені жүктеу немесе орнату үшін қажетті қалған нұсқаулар TFTP арқылы емес, сенімді деректерді беру протоколын (HTTP, CIFS немесе NFS сияқты) пайдалана отырып беріледі.
The PXE environment relies on a combination of industry standard Internet protocols, namely UDP/IP, DHCP and TFTP. These protocols have been selected because they are easily implemented in the client's NIC firmware, resulting in standardized small footprint PXE ROMs. Standardization, small size of PXE firmware images and their low use of resources are some of the primary design goals, allowing the client side of the PXE standard to be identically implemented on a wide variety of systems, ranging from powerful client computers to resource limited single board computers (SBC) and system on a chip (SoC) computers. DHCP is used to provide the appropriate client network parameters and specifically the location (IP address) of the TFTP server hosting, ready for download, the initial bootstrap program (NBP) and complementary files. To initiate a PXE bootstrap session the DHCP component of the client's PXE firmware broadcasts a DHCPDISCOVER packet containing PXE specific options to port 67/UDP (DHCP server port); it asks for the required network configuration and network booting parameters. The PXE specific options identify the initiated DHCP transaction as a PXE transaction. Standard DHCP servers (non PXE enabled) will be able to answer with a regular DHCPOFFER carrying networking information (i. e. IP address) but not the PXE specific parameters. A PXE client will not be able to boot if it only receives an answer from a non PXE enabled DHCP server. After parsing a PXE enabled DHCP server DHCPOFFER, the client will be able to set its own network IP address, IP Mask, etc., and to point to the network located booting resources, based on the received TFTP Server IP address and the name of the NBP. The client next transfers the NBP into its own random access memory (RAM) using TFTP, possibly verifies it (i. e. UEFI Secure Boot), and finally boots from it. NBPs are just the first link in the boot chain process and they generally request via TFTP a small set of complementary files in order to get running a minimalistic OS executive (i. e. WindowsPE, or a basic Linux kernel+initrd). The small OS executive loads its own network drivers and TCP/IP stack. At this point, the remaining instructions required to boot or install a full OS are provided not over TFTP, but using a robust transfer protocol (such as HTTP, CIFS, or NFS).
Тұқымдық орталар
Microsoft PXE ортасына қатыспайтын кеңейтімді Boot Information Negotiation Layer (BINL) арқылы жасады. BINL серверлік қызмет ретінде жүзеге асырылады және олардың қашықтан орнату қызметтері (RIS) мен Windows Deployment Services (WDS) стратегияларының маңызды бөлігі болып табылады. Ол белгілі бір дайындық процедураларын және Microsoft жасаған DHCP кеңейтім деп санауға болатын желілік протоколды қамтиды. BINL – PXE стандартының клиенттік микробағдарламасын пайдаланатын Microsoft-тың эксклюзивті технологиясы. Қазіргі таңда BINL-дің ашық спецификациясы жоқ.
Microsoft created a non overlapping extension of the PXE environment with their Boot Information Negotiation Layer (BINL). BINL is implemented as a server service and it is a key component of their Remote Installation Services (RIS) and Windows Deployment Services (WDS) strategies. It includes certain preparation processes and a network protocol that could be somehow considered a Microsoft crafted DHCP extension. BINL is a Microsoft proprietary technology that uses PXE standard client firmware. Currently there is not a publicly available BINL specification.