stringtranslate.com

Entorno de ejecución previo al arranque

Una descripción general de PXE de alto nivel

En informática, la especificación Preboot eXecution Environment , PXE (pronunciada más a menudo como / ˈ p ɪ k s / pixie , a menudo llamada PXE Boot/ pixie boot ) describe un entorno cliente-servidor estandarizado que inicia un ensamblaje de software, recuperado de un red, en clientes habilitados para 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 DHCP y TFTP .

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

Descripción general

Desde el comienzo de las redes informáticas, ha existido una necesidad persistente de sistemas cliente que puedan iniciar imágenes de software apropiadas, con parámetros de configuración apropiados, ambos recuperados en el momento del inicio desde uno o más servidores de red . Este objetivo requiere que un cliente utilice un conjunto de servicios previos al arranque, basados ​​en protocolos de red estándar de la industria . Además, el programa Network Bootstrap (NBP) que se descarga y ejecuta inicialmente debe crearse utilizando una capa de firmware del cliente (en el dispositivo que se iniciará a través de PXE) que proporciona una forma estandarizada independiente del hardware para interactuar con el entorno de arranque de la red circundante. En este caso la disponibilidad y sujeción a estándares es un factor clave requerido para garantizar la interoperabilidad del sistema en el proceso de arranque de la red. [ cita necesaria ]

Uno de los primeros intentos a este respecto fue la carga de arranque utilizando el estándar TFTP RFC 906, publicado en 1984, que estableció el estándar RFC 783 del Protocolo Trivial de Transferencia de Archivos (TFTP) publicado en 1981 para ser utilizado como protocolo estándar de transferencia de archivos para la carga de arranque. Poco después le siguió el estándar del protocolo Bootstrap RFC 951 (BOOTP), publicado 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 en el que cargarse. memoria y ejecutado. Las dificultades de implementación de BOOTP, entre otras razones, finalmente llevaron al desarrollo del estándar RFC 2131 (DHCP) del Protocolo de configuración dinámica de host , publicado en 1997. El enfoque pionero TFTP/BOOTP/DHCP se quedó corto, ya que en ese momento no definía el lado del cliente estandarizado requerido del entorno de aprovisionamiento.

El entorno de ejecución previo al arranque (PXE) fue introducido como parte del marco Wired for Management [2] de 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 como dispositivos actuales en código UEFI . Esta capa de firmware distintiva pone a disposición del cliente las funciones de una interfaz de dispositivo de red universal (UNDI) básica, una pila UDP / IP minimalista , un módulo de cliente de prearranque (DHCP) y un módulo de cliente TFTP, que juntos forman las interfaces de programación de aplicaciones PXE ( API) utilizadas por el NBP cuando necesita interactuar con los servicios ofrecidos por el servidor homólogo del entorno PXE. El bajo rendimiento de TFTP , especialmente cuando se utiliza a través de enlaces de alta latencia , ha sido mitigado inicialmente por la opción TFTP Blocksize RFC 2348 publicada en mayo de 1998, y posteriormente por la opción TFTP Windowsize RFC 7440 publicada en enero de 2015, lo que permite entregas de carga útil potencialmente mayores y, por tanto, mejorando el rendimiento. [ cita necesaria ]

Detalles

El entorno PXE se basa en una combinación de protocolos de Internet estándar de la industria, concretamente UDP/IP, DHCP y TFTP. Se seleccionaron estos protocolos porque se implementan fácilmente en el firmware de la NIC del cliente, lo que da como resultado ROM PXE estandarizadas de tamaño reducido . La estandarización, el tamaño pequeño de las imágenes de firmware PXE y su bajo uso de recursos son algunos de los principales objetivos de diseño, lo que permite que el lado cliente del estándar PXE se implemente de manera idéntica en una amplia variedad de sistemas, desde potentes computadoras cliente hasta recursos limitados. Computadoras de placa única (SBC) y computadoras de sistema en un chip (SoC).

DHCP se utiliza para proporcionar los parámetros adecuados de la red del cliente y específicamente la ubicación (dirección IP) del servidor TFTP que aloja, listo para descargar, 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 transmite un paquete DHCPDISCOVER que contiene opciones específicas de PXE al puerto 67/UDP (puerto del servidor DHCP); solicita la configuración de red requerida y los parámetros de inicio de red. 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 contenga información de red (es decir, dirección IP), pero no los parámetros específicos de PXE. Un cliente PXE no podrá iniciarse si solo recibe una respuesta de un servidor DHCP no habilitado para PXE.

Después de analizar un servidor DHCP habilitado para PXE DHCPOFFER, el cliente podrá configurar su propia dirección IP de red, máscara IP, etc., y señalar los recursos de arranque ubicados en la red, según la dirección IP del servidor TFTP recibida y el nombre de el PNB. A continuación, el cliente transfiere el NBP a su propia memoria de acceso aleatorio (RAM) mediante TFTP, posiblemente lo verifica (es decir, UEFI Secure Boot ) y finalmente arranca desde allí. Los NBP son sólo 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 poder ejecutar un sistema operativo minimalista (es decir, WindowsPE , o un kernel Linux básico + initrd ). El pequeño ejecutivo del sistema operativo carga sus propios controladores de red y pila TCP/IP. En este punto, las instrucciones restantes necesarias para iniciar o instalar un sistema operativo completo no se proporcionan a través de TFTP, sino mediante un protocolo de transferencia sólido (como HTTP , CIFS o NFS ).

Integración

Servidor DHCP frente a proxyDHCP

El entorno Cliente/Servidor PXE fue diseñado para que pueda integrarse perfectamente con una infraestructura de servidor DHCP y TFTP ya existente. Este objetivo de diseño presentó un desafío al tratar con el protocolo DHCP clásico. Los servidores DHCP corporativos suelen estar sujetos a políticas estrictas diseñadas para evitar que se agreguen fácilmente 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 PXE en dos unidades de servidor ejecutadas y administradas de forma independiente:

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

En un entorno de servidor DHCP más proxyDHCP [3] : 18,  el cliente PXE inicialmente transmite un único paquete PXE DHCPDISCOVER y recibe dos DHCPOFFER complementarios; uno del servidor DHCP normal 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 inicio. Este enfoque no intrusivo permite configurar un entorno PXE sin tocar la configuración de un servidor DHCP que ya funciona. 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 que van desde entornos corporativos hasta domésticos.

Disponibilidad

PXE fue concebido considerando varias arquitecturas de sistemas. La versión 2.1 de la especificación definió identificadores de arquitectura para seis tipos de sistemas, incluidos IA-64 y DEC Alpha . Sin embargo, PXE v2.1 solo cubrió completamente IA-32 . A pesar de esta aparente falta de integridad, Intel decidió recientemente admitir ampliamente PXE dentro de la nueva especificación UEFI , extendiendo la funcionalidad 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 brindan 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 computadora que arrancará desde la red debería haber configurado la opción 93 de DHCP para indicar la arquitectura del cliente. Esto permite que un servidor PXE conozca (en el momento del arranque) la arquitectura exacta del cliente desde el primer paquete de arranque de la red. [6]

Con la llegada de IPv6 , DHCP evolucionó 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 opcional para el BIOS IA-32 , por lo que una computadora personal (PC) originalmente se hizo compatible con PXE mediante la instalación de un controlador de interfaz de red (NIC) que proporcionaba una ROM opcional de PXE. Hoy en día el código PXE del cliente se incluye directamente dentro del propio firmware de la NIC o como parte del firmware UEFI de la placa base.

Incluso cuando el firmware PXE del cliente original fue escrito por Intel y siempre se proporcionó sin costo alguno como un módulo de formato de código objeto IA32 vinculable incluido en su kit de desarrollo de productos (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 intercambiar características adicionales por estabilidad y conformidad con el estándar PXE. [8]

Aceptación

La aceptación de PXE desde la versión 2.1 ha sido omnipresente; Hoy en día es prácticamente imposible encontrar una tarjeta de red sin firmware PXE. La disponibilidad de hardware Gigabit Ethernet económico (NIC, conmutadores , enrutadores , etc.) ha convertido a PXE en el método más rápido disponible para instalar un sistema operativo en un cliente al competir 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 PXE, entre ellos:

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

Todos los proyectos mencionados anteriormente, cuando pueden arrancar/instalar más de un sistema operativo, funcionan bajo el paradigma "Administrador de arranque - Cargador de arranque". El NBP inicial es un administrador de arranque capaz de recuperar su propia configuración e implementar un menú de opciones de arranque. El usuario selecciona una opción de inicio y se descarga y ejecuta un cargador de inicio dependiente del sistema operativo para continuar con el procedimiento de inicio específico seleccionado.

Entornos hermanos

Apple ha ideado un enfoque de arranque en red muy similar bajo el paraguas de la especificación Boot Server Discovery Protocol (BSDP). BSDP v0.1 fue publicado inicialmente por Apple en agosto de 1999 [9] y su última 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 permitan iniciar un sistema operativo adecuado. BSDP está diseñado sobre DHCP utilizando información específica del proveedor para proporcionar la funcionalidad NetBoot adicional que no está presente en el DHCP estándar. El protocolo se implementa en el firmware del cliente. En el momento del arranque, el cliente obtiene una dirección IP a través de DHCP y luego descubre los servidores de arranque mediante BSDP. Cada servidor BSDP responde con información de inicio que consta de:

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

Entornos descendientes

Microsoft creó una extensión no superpuesta 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 de alguna manera podría considerarse una extensión DHCP diseñada por Microsoft. BINL es una tecnología propiedad de Microsoft que utiliza firmware de cliente estándar PXE. Actualmente no existe una especificación BINL disponible públicamente.

Documentación de estándares IETF

Ver también

Referencias

  1. ^ Avramov, Lucien (31 de diciembre de 2014). El centro de datos impulsado por políticas con ACI: arquitectura, conceptos y metodología . Prensa de Cisco. pag. 43.ISBN 978-1587144905. En los centros de datos modernos, los administradores rara vez instalan software nuevo a través de medios extraíbles como DVD. En cambio, los administradores confían en el arranque PXE (Preboot eXecution Environment) en servidores de imágenes.
  2. ^ "Wired for Management Baseline - Versión 2.0" (PDF) . Corporación Intel. 1998-12-18. Archivado desde el original (PDF) el 22 de febrero de 2017 . Consultado el 8 de febrero de 2014 .
  3. ^ ab "Especificación del entorno de ejecución previa al arranque (PXE): versión 2.1" (PDF) . Corporación Intel. 20 de septiembre de 1999. Archivado desde el 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 4 de abril de 2014 .
  5. ^ "Análisis de rendimiento de arranque UEFI PXE" (PDF) . Corporación Intel. 2014-02-02. Archivado desde el 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 previa al arranque (PXE) de Intel. Grupo de Trabajo de Red. 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 (IETF). doi : 10.17487/RFC5970 . ISSN  2070-1721. RFC 5970. Norma propuesta.
  8. ^ "WikiEtherboot/gPXE". Etherboo.org.
  9. ^ "NetBoot 2.0: Protocolo de descubrimiento del servidor de arranque (BSDP) v0.1" (Doc) . Corporación Apple. 2003-12-02 . Consultado el 4 de abril de 2014 .
  10. ^ "NetBoot 2.0: Protocolo de descubrimiento del servidor de arranque (BSDP) v1.08" (Doc) . Corporación Apple. 2010-09-17 . Consultado el 4 de abril de 2014 .

enlaces externos