- Preboot Execution Environment
-
Contenido
Funcionamiento
El firmware del cliente trata de encontrar un servicio de redirección PXE en la red para recabar información sobre los servidores de arranque PXE disponibles. Tras analizar la respuesta, el firmware solicitará al servidor de arranque apropiado el file path de un network bootstrap program (NBP), lo descargará en la memoria RAM del ordenador mediante TFTP, probablemente lo verificará, y finalmente lo ejecutará. Si se utiliza un único NBP para todos los clientes PXE se puede especificar mediante BOOTP sin necesidad de un proxy DHCP, pero aún será necesario un servidor TFTP.
Disponibilidad
PXE fue diseñado para funcionar sobre diferentes arquitecturas. La versión 2.1 de la especificación asigna identificadores de arquitectura a seis tipos distintos de sistemas, incluyendo IA-64 y DEC Alpha. Aunque la especificación sólo soporta completamente IA-32. Intel incluyó PXE en la EFI para IA-64, creando un estándar de-facto con esta implementación.
Protocolo
El protocolo PXE consiste en una combinación de los protocolos DHCP y TFTP con pequeñas modificaciones en ambos. DHCP es utilizado para localizar el servidor de arranque apropiado, con TFTP se descarga el programa inicial de bootstrap y archivos adicionales.
Para iniciar una sesión de arranque con PXE el firmware envía un paquete de tipo DHCPDISCOVER extendido con algunas opciones específicas de PXE al puerto 67/UDP (puerto estándar del servicio DHCP). Estas opciones indican que el firmware es capaz de manejar PXE, pero serán ignoradas por los servidores DHCP estándar.
Proxy DHCP
Si un servicio de redirección PXE (Proxy DHCP) recibe un paquete DHCPDISCOVER extendido, responde con un paquete de difusión DHCPOFFER extendido con opciones PXE al puerto 68/UDP. Este paquete se difundirá hasta que la mayoría de los clientes PXE se autoconfiguren mediante DHCP. Los clientes se identificarán con su GUID/UUID.
Un paquete DHCPOFFER extendido contiene:
- un campo PXE Discovery Control para indicar si se debe utilizar Multicasting, Broadcasting, o Unicasting para contactar con los servidores de arranque PXE
- una lista con las direcciones IP de los servidores de arranque PXE
- un menú en el que cada entrada representa un servidor de arranque PXE
- un prompt que indica al usuario que pulse <F8> para ver el menú de arranque
- un tiempo de espera que lanza la primera opción del menú de arranque cuando expira
El servicio de proxy DHCP debe ejecutarse sobre el mismo servidor que el servicio estandar de DHCP. Puesto que ambos servicios no pueden compartir el puerto 67/UDP, el Proxy DHCP se ejecuta sobre el puerto 4011/UDP y espera que los paquetes DHCPDISCOVER extendidos de los clientes PXE sean paquetes DHCPREQUEST. El servicio estandar DHCP debe enviar una combinación especial de opciones PXE en su paquete DHCPOFFER, de forma que los clientes PXE sepan que deben buscar un proxy DHCP en el mismo servidor, en el puerto 4011/UDP.
Servidor de arranque
Para contactar con cualquier servidor de arranque PXE el firmware debe obtener una dirección IP y el resto de información de un único paquete DHCPOFFER extendido. Tras elegir el servidor de arranque PXE apropiado el firmware envía un paquete DHCPREQUEST extendido mediante multicast o unicast al puerto port 4011/UDP o broadcast al puerto 67/UDP. Este paquete contiene el servidor de arranque PXE y la capa de arranque PXE, permitiendo ejecutar múltiples tipos de servidores de arranque mediante un único daemon (o programa) de arranque. El paquete DHCPREQUEST extendido también puede ser un paquete DHCPINFORM.
Si un servidor de arranque PXE recibe un paquete DHCPREQUEST extendido como el descrito anteriormente y si está configurado para el tipo de servidor de arranque PXE y la arquitectura de cliente solicitados, debe responder devolviendo un paquete DHCPACK extendido son opciones específicas de PXE.
El contenido más importante de un paquete DHCPACK extendido es:
- el file path completo para descargar el NBP vía TFTP
- el tipo de servidor de arranque PXE y la capa de arranque PXE
- la configuración multicast TFTP, si debe utilizarse multicast TFTP
Un servidor de arranque PXE debe soportar Boot Integrity Services (BIS). BIS permite al cliente PXE verificar los NBPs descargados mediante un archivo de checksum que es descargado desde el mismo servidor de arranque que el NBP.
Network bootstrap program
Tras recibir el paquete DHCPACK solicitado, el Network Bootstrap Program es descargado y ejecutado en la RAM del cliente. Tiene acceso a las APIs del firmware PXE (Pre-boot, UDP, TFTP, Universal Network Device Interface, UNDI).
Véase también
- Arranque desde red
- Arranque remoto sin disco en Linux
- Remote Initial Program Load (RIPL)
- System Deployment Image (SDI)
- gPXE (anteriormente Etherboot)
- Cobbler (Programa libre de Linux que asiste con el despliegue de programas en el PXE)
- Windows Deployment Services Una solución para despliegue de programas para Microsoft Windows basada en PXE
- Computador sin disco (Cliente híbrido)
- Cliente ligero
Enlaces externos
- Especificación del protocolo PXE specification versión 2.1 publicada por Intel y Systemsoft.
- Proyecto Etherboot incluye el desarrollo de software de código abierto que permita arranque de un ordenador a través de la red, descargando durante el arranque el sistema operativo.
- PXELINUX
Specifications, RFCs and other documents about PXE:
- PXE specification - The Preboot Execution Environment specification v2.1 published by Intel & Systemsoft.
- BIS specification - The Boot Integrity Services specification v1.0 published by Intel.
- Remote Boot Protocol Draft - draft of the PXE Client/Server Protocol included in the PXE specification.
- Etherboot.org - "...create network booting code that allows computers to load their operating system from a network. Our code can be stored in a number of places, including BIOS Flash, EPROMs, floppy, CD, HD, or other bootable media."
- ##pxe - A PXE channel on freenode.net
- PXE wiki - A PXE wiki to grow with your questions.
- Vamos project PXE page - PXE resources.
- PXE error codes - A catalogue of PXE error codes
- pxelinux - Useful for booting Linux and other OS via PXE
- Mise en place d’un serveur de boot PXE sous Windows (en francés)
- PXE Kickstart HowTo - HowTo for using RedHat KickStart with PXE
- DOS via PXE HowTo - Simple HowTo for booting DOS (or any other bootable floppy) via PXE using PXELINUX and TFTPD32
- Boot via PXE HowTo - Part 1 - Simple HowTo for booting DOS via PXE using TFTPD32
- Boot via PXE HowTo - Part 2 - Simple HowTo for booting Acronis via PXE using TFTPD32
- Add-On PXE Codes - PXE codes for network adapters and LAN-On-Motherboard computers that do not ship with a PXE code
- How To: Debian PXE Install using Serva32
- How To: Ubuntu PXE Install using Serva32
Wikimedia foundation. 2010.