Articulo de referencia

Arranque PXE

Descripción general de alto nivel de PXE En informática, el Entorno de Ejecución de Prearranque ( PXE ; a menudo pronunciado como / ˈ p ɪ k s iː / pixie ), también conocido como...

Descripción general de alto nivel de PXE

En informática, el Entorno de Ejecución de Prearranque ( PXE ; a menudo pronunciado como / ˈ p ɪ k s / pixie ), también conocido como arranque PXE ( arranque pixie ), es una especificación que describe un entorno cliente-servidor estandarizado que inicia un software, obtenido de una red, en clientes compatibles con PXE. En el lado del cliente, solo requiere un controlador de interfaz de red (NIC) compatible con PXE y utiliza un pequeño conjunto de protocolos de red estándar de la industria, como el Protocolo de Configuración Dinámica de Host (DHCP) y el Protocolo de Transferencia de Archivos Trivial (TFTP).

El concepto detrás del PXE se originó en los primeros días de protocolos como BOOTP /DHCP/TFTP, y a partir de 2015forma parte del estándar Interfaz de Firmware Extensible Unificada (UEFI). En los centros de datos modernos, PXE es la opción más frecuente [ 1 ] para el arranque, la instalación y el despliegue del sistema operativo.

Descripción general

Desde los inicios de las redes informáticas, ha existido una necesidad constante de sistemas cliente capaces de arrancar imágenes de software apropiadas, con los parámetros de configuración adecuados, ambos obtenidos durante el arranque desde uno o más servidores de red . Este objetivo requiere que el cliente utilice un conjunto de servicios de prearranque, basados ​​en protocolos de red estándar de la industria . Además, el Programa de Arranque de Red (NBP), que se descarga y ejecuta inicialmente, debe estar compilado utilizando una capa de firmware del cliente (en el dispositivo que se va a arrancar mediante PXE), proporcionando una forma estandarizada e independiente del hardware para interactuar con el entorno de arranque de red circundante. En este caso, la disponibilidad y el cumplimiento de los estándares son factores clave para garantizar la interoperabilidad del sistema de arranque de red.

Uno de los primeros intentos en este sentido fue la carga de arranque utilizando el estándar TFTP RFC 906, publicado en 1984, que estableció el estándar TFTP ( Trivial File Transfer Protocol ), RFC 783, publicado en 1981, para ser utilizado como protocolo de transferencia de archivos estándar para la carga de arranque. Poco después, se publicó el estándar Bootstrap Protocol (BOOTP), RFC 951, en 1985, que permitía a una máquina cliente sin disco descubrir su propia dirección IP, la dirección de un servidor TFTP y el nombre de un NBP para cargarlo en memoria y ejecutarlo. Las dificultades de implementación de BOOTP, entre otras razones, llevaron finalmente al desarrollo del estándar DHCP ( Dynamic Host Configuration Protocol ), RFC 2131, publicado en 1997. El enfoque pionero TFTP/BOOTP/DHCP resultó insuficiente, ya que en ese momento no definía el lado del cliente estandarizado requerido para el entorno de aprovisionamiento.

El entorno de ejecución de prearranque (PXE) fue introducido como parte del marco Wired for Management [ 2 ] por Intel y se describe en la especificación publicada por Intel y SystemSoft. La versión 2.0 de PXE se lanzó en diciembre de 1998 y la actualización 2.1 se hizo pública en septiembre de 1999. [ 3 ] El entorno PXE utiliza varios protocolos cliente-servidor estándar, incluidos DHCP y TFTP (ahora definidos por el RFC 1350 publicado en 1992). Dentro del esquema PXE, el lado del cliente de la ecuación de aprovisionamiento es una parte integral del estándar PXE y se implementa como una extensión del BIOS de la tarjeta de interfaz de red (NIC) o dispositivos actuales en código UEFI . Esta distintiva capa de firmware pone a disposición del cliente las funciones de una interfaz básica de dispositivo de red universal (UNDI), una pila UDP / IP minimalista, un módulo cliente de prearranque (DHCP) y un módulo cliente TFTP, que en conjunto forman las interfaces de programación de aplicaciones (API) PXE utilizadas por el NBP cuando necesita interactuar con los servicios ofrecidos por el servidor contraparte del entorno PXE. El bajo rendimiento de TFTP , especialmente cuando se utiliza sobre enlaces de alta latencia , se mitigó inicialmente mediante la opción de tamaño de bloque TFTP RFC 2348 publicada en mayo de 1998, y posteriormente mediante la opción de tamaño de ventana TFTP RFC 7440 publicada en enero de 2015, lo que permite entregas de carga útil potencialmente mayores y, por lo tanto, mejora el rendimiento.

Detalles

El protocolo PXE se basa en una combinación de protocolos de Internet estándar de la industria, concretamente UDP/IP, DHCP y TFTP. Estos protocolos se han seleccionado por su fácil implementación en el firmware de la tarjeta de red del cliente, lo que da como resultado ROM PXE estandarizadas y de tamaño reducido . La estandarización, el tamaño reducido de las imágenes de firmware PXE y su bajo consumo de recursos son algunos de los objetivos de diseño principales, lo que permite que el lado del cliente del estándar PXE se implemente de forma idéntica en una amplia variedad de sistemas, desde potentes ordenadores cliente hasta ordenadores de placa única (SBC) y sistemas en chip (SoC) con recursos limitados.

DHCP se utiliza para proporcionar los parámetros de red adecuados al cliente y, específicamente, la ubicación (dirección IP) del servidor TFTP que aloja, listo para su descarga, el programa de arranque inicial (NBP) y los archivos complementarios. Para iniciar una sesión de arranque PXE, el componente DHCP del firmware PXE del cliente difunde un paquete DHCPDISCOVER que contiene opciones específicas de PXE al puerto 67/UDP (puerto del servidor DHCP); solicita la configuración de red y los parámetros de arranque de red necesarios. Las opciones específicas de PXE identifican la transacción DHCP iniciada como una transacción PXE. Los servidores DHCP estándar (no habilitados para PXE) podrán responder con un DHCPOFFER normal que contiene información de red (es decir, la dirección IP), pero no los parámetros específicos de PXE. Un cliente PXE no podrá arrancar si solo recibe una respuesta de un servidor DHCP no habilitado para PXE.

Después de analizar una oferta DHCPOFFER de un servidor DHCP habilitado para PXE, el cliente podrá configurar su propia dirección IP de red, máscara de IP, etc., y apuntar a los recursos de arranque ubicados en la red, basándose en la dirección IP del servidor TFTP recibida y el nombre del NBP. A continuación, el cliente transfiere el NBP a su propia memoria de acceso aleatorio (RAM) mediante TFTP, posiblemente lo verifica (por ejemplo, arranque seguro UEFI ) y, finalmente, arranca desde él. Los NBP son solo el primer eslabón en el proceso de la cadena de arranque y generalmente solicitan a través de TFTP un pequeño conjunto de archivos complementarios para ejecutar un ejecutivo de sistema operativo minimalista (por ejemplo, WindowsPE o un kernel de Linux básico + initrd ). El pequeño ejecutivo de sistema operativo carga sus propios controladores de red y pila TCP/IP. En este punto, las instrucciones restantes necesarias para arrancar o instalar un sistema operativo completo se proporcionan no a través de TFTP, sino mediante un protocolo de transferencia robusto (como HTTP , CIFS o NFS ).

Integración

Servidor DHCP frente a servidor proxy DHCP

El entorno cliente/servidor PXE se diseñó para integrarse sin problemas con una infraestructura de servidores DHCP y TFTP ya existente. Este objetivo de diseño supuso un reto al trabajar con el protocolo DHCP clásico. Los servidores DHCP corporativos suelen estar sujetos a políticas estrictas diseñadas para impedir la fácil adición de los parámetros y reglas adicionales necesarios para admitir un entorno PXE. Por este motivo, el estándar PXE desarrolló el concepto de redirección DHCP o "proxyDHCP". La idea detrás de un proxyDHCP es dividir los requisitos de DHCP de PXE en dos unidades de servidor que se ejecutan y administran de forma independiente:

  1. El servidor DHCP clásico proporciona dirección IP, máscara IP, etc. a todos los clientes DHCP que se inician .
  2. El servidor proxyDHCP proporciona la dirección IP del servidor TFTP y el nombre del NBP solo a los clientes de arranque identificados por PXE .

En un entorno de servidor DHCP más proxyDHCP [ 3 ] : 18 el cliente PXE inicialmente difunde un único paquete PXE DHCPDISCOVER y recibe dos DHCPOFFER complementarios; uno del servidor DHCP regular no habilitado para PXE y un segundo del servidor proxyDHCP. Ambas respuestas juntas proporcionan la información necesaria para permitir que el cliente PXE continúe con su proceso de arranque. Este enfoque no intrusivo permite configurar un entorno PXE sin tocar la configuración de un servidor DHCP que ya esté en funcionamiento. El servicio proxyDHCP también puede ejecutarse en el mismo host que el servicio DHCP estándar, pero incluso en este caso son dos aplicaciones que se ejecutan y administran de forma independiente. Dado que dos servicios no pueden usar el mismo puerto 67/UDP en el mismo host, el proxyDHCP se ejecuta en el puerto 4011/UDP. El enfoque proxyDHCP ha demostrado ser extremadamente útil en una amplia gama de escenarios PXE, desde entornos corporativos hasta domésticos.

Disponibilidad

PXE fue concebido considerando varias arquitecturas de sistema. La versión 2.1 de la especificación definió identificadores de arquitectura para seis tipos de sistema, incluyendo IA-64 y DEC Alpha . Sin embargo, PXE v2.1 solo cubría completamente IA-32 . A pesar de esta aparente falta de completitud, Intel ha decidido recientemente brindar un amplio soporte a PXE dentro de la nueva especificación UEFI , extendiendo la funcionalidad de PXE a todos los entornos EFI/UEFI. La especificación actual de la Interfaz de Firmware Extensible Unificada 2.4A, Sección 21 Protocolos de Red — SNP, PXE y BIS define los protocolos que proporcionan acceso a dispositivos de red mientras se ejecutan en el entorno de servicios de arranque UEFI. Estos protocolos incluyen el Protocolo de Red Simple (SNP), el Protocolo de Código Base PXE (PXE) y el Protocolo de Servicios de Integridad de Arranque (BIS). [ 4 ] [ 5 ] Hoy en día, en un entorno PXE, la detección de la arquitectura del cliente rara vez se basa en los identificadores incluidos originalmente con la especificación PXE v2.1. En cambio, cada equipo que vaya a arrancar desde la red debe tener configurada la opción DHCP 93 para indicar la arquitectura del cliente. Esto permite que un servidor PXE conozca (en el momento del arranque) la arquitectura exacta del cliente a partir del primer paquete de arranque de red. [ 6 ]

Con la llegada de IPv6 , DHCP ha evolucionado a DHCPv6 ; la necesidad de opciones que admitan PXE dentro del nuevo protocolo DHCP se abordó en 2010. [ 7 ]

La extensión de firmware del cliente PXE original se diseñó como una ROM de opción para la BIOS IA-32 , por lo que un ordenador personal (PC) se hacía compatible con PXE instalando un controlador de interfaz de red (NIC) que proporcionaba una ROM de opción PXE. Actualmente, el código del cliente PXE se incluye directamente en el firmware del propio NIC o como parte del firmware UEFI de la placa base.

Aunque el firmware original del cliente PXE fue escrito por Intel y siempre se proporcionó sin costo alguno como un módulo de código objeto IA32 enlazable incluido en su Kit de Desarrollo de Producto (PDK), el mundo del código abierto ha producido a lo largo de los años proyectos derivados no estándar como gPXE / iPXE que ofrecen sus propias ROM. Si bien las ROM basadas en Intel han estado implementando el lado del cliente del estándar PXE durante más de 20 años, algunos usuarios estaban dispuestos a sacrificar funciones adicionales a cambio de estabilidad y conformidad con el estándar PXE. [ 8 ]

Aceptación

La compatibilidad con PXE se ha generalizado desde la versión 2.1; hoy en día es prácticamente imposible encontrar una tarjeta de red sin firmware PXE. La disponibilidad de hardware Gigabit Ethernet económico (tarjetas de red, conmutadores , enrutadores , etc.) ha convertido a PXE en el método más rápido para instalar un sistema operativo en un cliente, compitiendo con las alternativas clásicas de CD , DVD y unidades flash USB .

A lo largo de los años, varios proyectos importantes han incluido soporte para PXE, entre ellos:

En lo que respecta al desarrollo de NBP, existen varios proyectos que implementan gestores de arranque capaces de ofrecer funciones extendidas en el menú de arranque, capacidades de scripting, etc.:

Todos los proyectos mencionados anteriormente, cuando pueden arrancar o instalar más de un sistema operativo, funcionan bajo el paradigma de "Gestor de arranque - Cargador de arranque". El NBP inicial es un gestor de arranque que recupera su propia configuración y despliega un menú de opciones de arranque. El usuario selecciona una opción de arranque y se descarga y ejecuta un cargador de arranque específico del sistema operativo para continuar con el procedimiento de arranque seleccionado.

Entornos de hermanos

Apple ha desarrollado un enfoque de arranque de red muy similar bajo el paraguas de la especificación del Protocolo de descubrimiento de servidores de arranque (BSDP). Apple publicó inicialmente BSDP v0.1 en agosto de 1999 [ 9 ] y su última versión, v1.0.8, se publicó en septiembre de 2010. [ 10 ] Mac OS X Server incluía una herramienta del sistema llamada NetBoot . Un cliente NetBoot utiliza BSDP para adquirir dinámicamente recursos que le permiten arrancar un sistema operativo adecuado. BSDP se basa en DHCP utilizando información específica del proveedor para proporcionar la funcionalidad adicional de NetBoot que no está presente en el DHCP estándar. El protocolo se implementa en el firmware del cliente. Al arrancar, el cliente obtiene una dirección IP a través de DHCP y luego descubre los servidores de arranque utilizando BSDP. Cada servidor BSDP responde con información de arranque que consiste en:

  • Una lista de imágenes de sistemas operativos de arranque
  • La imagen del sistema operativo predeterminada
  • La imagen del sistema operativo seleccionada actualmente por el cliente (si está definida).

El cliente selecciona un sistema operativo de la lista y envía un mensaje al servidor indicando su selección. El servidor de arranque elegido responde proporcionando el archivo de arranque, la imagen de arranque y cualquier otra información necesaria para descargar y ejecutar el sistema operativo seleccionado.

Entornos descendientes

Microsoft creó una extensión independiente del entorno PXE con su Capa de Negociación de Información de Arranque (BINL). BINL se implementa como un servicio de servidor y es un componente clave de sus estrategias de Servicios de Instalación Remota (RIS) y Servicios de Implementación de Windows (WDS). Incluye ciertos procesos de preparación y un protocolo de red que podría considerarse una extensión DHCP desarrollada por Microsoft. BINL es una tecnología propietaria de Microsoft que utiliza el firmware de cliente estándar PXE. Actualmente no existe una especificación de BINL disponible públicamente.

Véase también

Referencias

  1. Avramov, Lucien (31 de diciembre de 2014). El centro de datos basado en políticas con ACI: arquitectura, conceptos y metodología . Cisco Press. pág.  43. ISBN 978-1587144905En los centros de datos modernos , los administradores rara vez instalan software nuevo mediante medios extraíbles como DVD. En su lugar, utilizan el arranque PXE (Preboot eXecution Environment) para acceder a servidores de imágenes.
  2. "Wired for Management Baseline - Versión 2.0" (PDF) . Intel Corporation. 18 de diciembre de 1998. Archivado del original (PDF) el 22 de febrero de 2017. Consultado el 8 de febrero de 2014 .
  3. 1 2 "Especificación del entorno de ejecución previa al arranque (PXE) - Versión 2.1" (PDF) . Intel Corporation. 20 de septiembre de 1999. Archivado del original (PDF) el 2 de noviembre de 2013. Consultado el 8 de febrero de 2014 .
  4. "Especificación de interfaz de firmware extensible unificada" (PDF) . UEFI. 2013-12-02 . Consultado el 2014-04-04 .
  5. "Análisis del rendimiento del arranque UEFI PXE" (PDF) . Intel Corporation. 2 de febrero de 2014. Archivado del original (PDF) el 8 de agosto de 2014. Consultado el 4 de abril de 2014 .
  6. M. Johnston (junio de 2006). S. Venaas (ed.). Opciones del Protocolo de configuración dinámica de host (DHCP) para el entorno de ejecución de prearranque (PXE) de Intel . Grupo de trabajo de redes. doi : 10.17487/RFC4578 . RFC 4578 .Informativo.
  7. T. Huth; J. Freimann; V. Zimmer; D. Thaler (septiembre de 2010). Opciones de DHCPv6 para arranque en red . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC5970 . ISSN 2070-1721 . RFC 5970 . Norma propuesta.
  8. "Wiki de Etherboot/gPXE" . Etherboo.org.
  9. "NetBoot 2.0: Protocolo de descubrimiento del servidor de arranque (BSDP) v0.1" (Doc) . Apple Corporation. 2 de diciembre de 2003. Consultado el 4 de abril de 2014 .
  10. "NetBoot 2.0: Protocolo de descubrimiento del servidor de arranque (BSDP) v1.08" (Doc) . Apple Corporation. 17 de septiembre de 2010. Consultado el 4 de abril de 2014 .

Lecturas adicionales

  • KR Sollins (junio de 1981). EL PROTOCOLO TFTP (REVISIÓN 2) . Grupo de trabajo de redes. doi : 10.17487/RFC0783 . RFC 783 .Estado desconocido. Obsoleto según RFC 1350 . 
  • R. Finlayson (junio de 1984). Carga de arranque mediante TFTP . Grupo de trabajo de redes. doi : 10.17487/RFC0906 . RFC 906 .Estado desconocido.
  • Bill Croft; John Gilmore (septiembre de 1985). PROTOCOLO BOOTSTRAP (BOOTP) . Grupo de trabajo de redes. doi : 10.17487/RFC0951 . RFC 951 .Borrador de norma. Actualizado por RFC 1395 , 1497 , 1532 , 1542 y 5494 . 
  • K. Sollins (julio de 1992). EL PROTOCOLO TFTP (REVISIÓN 2) . Grupo de Trabajo de Redes. doi : 10.17487/RFC1350 . STD 33. RFC 1350 .Estándar de Internet 33. Deja obsoleto el RFC 783. Actualizado por los RFC 1782 , 1783 , 1784 , 1785 , 2347 , 2348 y 2349 .  
  • R. Droms (marzo de 1997). Protocolo de configuración dinámica de host . Grupo de trabajo de redes de la IETF . doi : 10.17487/RFC2131 . RFC 2131 .Borrador de norma. Sustituye a RFC 1541. Actualizado por RFC 3396 , 4361 , 5494 y 6842 .  
  • G. Malkin; A. Harkin (mayo de 1998). Opción de tamaño de bloque TFTP . Grupo de trabajo de redes. doi : 10.17487/RFC2348 . RFC 2348 .Borrador de estándar. Actualiza RFC 1350. Deja obsoleto RFC 1783 .  
  • M. Johnston (junio de 2006). S. Venaas (ed.). Opciones del Protocolo de configuración dinámica de host (DHCP) para el entorno de ejecución de prearranque (PXE) de Intel . Grupo de trabajo de redes. doi : 10.17487/RFC4578 . RFC 4578 .Informativo.
  • T. Huth; J. Freimann; V. Zimmer; D. Thaler (septiembre de 2010). Opciones de DHCPv6 para arranque en red . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC5970 . ISSN 2070-1721 . RFC 5970 . Norma propuesta.
  • P. Masotta (enero de 2015). Opción TFTP Windowsize . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC7440 . ISSN 2070-1721 . RFC 7440 . Norma propuesta.
  • Especificación PXE : la especificación del entorno de ejecución de prearranque v2.1 publicada por Intel y SystemSoft. 
  • Especificación BIS : la especificación de servicios de integridad de arranque v1.0 publicada por Intel. 
  • Entorno de ejecución de prearranque de Intel : borrador de Internet 00 del protocolo cliente/servidor PXE incluido en la especificación PXE. 
  • Códigos de error PXE : un catálogo de códigos de error PXE