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 (que se pronuncia con más frecuencia como / ˈpɪksiː / pixie , a menudo denominada PXE Boot/ pixie boot ) describe un entorno cliente-servidor estandarizado que arranca un conjunto de software, recuperado de una 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 UEFI ( Unified Extensible Firmware Interface ). 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 de computadoras, ha existido una necesidad persistente de sistemas cliente que puedan arrancar imágenes de software apropiadas, con parámetros de configuración apropiados, ambos recuperados en el momento del arranque desde uno o más servidores de red . Este objetivo requiere que un 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 construirse utilizando una capa de firmware de cliente (en el dispositivo que se va a arrancar mediante PXE) que proporcione una forma estandarizada independiente del hardware para interactuar con el entorno de arranque de red circundante. En este caso, la disponibilidad y la sujeción a estándares son un factor clave necesario para garantizar la interoperabilidad del sistema del proceso de arranque de red. [ cita requerida ]

Uno de los primeros intentos en este sentido fue la carga de arranque mediante el estándar TFTP RFC 906, publicado en 1984, que estableció el estándar de Protocolo trivial de transferencia de archivos (TFTP) RFC 783 publicado en 1981 para su uso como protocolo de transferencia de archivos estándar para la carga de arranque. Poco después, le siguió el estándar de 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 para cargarlo en la memoria y ejecutarlo. Las dificultades de implementación de BOOTP, entre otras razones, finalmente llevaron al desarrollo del estándar de protocolo de configuración dinámica de host RFC 2131 (DHCP), 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 de prearranque (PXE) fue introducido como parte del marco de trabajo 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 estándar de cliente-servidor, 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 de BIOS de la tarjeta de interfaz de red (NIC) o 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 básica (UNDI), 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 (API) PXE utilizadas por el NBP cuando necesita interactuar con los servicios ofrecidos por la contraparte del servidor del entorno PXE. El bajo rendimiento de TFTP , especialmente cuando se utiliza en enlaces de alta latencia , se ha mitigado inicialmente mediante la opción TFTP Blocksize RFC 2348 publicada en mayo de 1998, y más tarde mediante la opción TFTP Windowsize RFC 7440 publicada en enero de 2015, lo que permite entregas de carga útil potencialmente mayores y, por lo tanto, mejora el rendimiento. [ cita requerida ]

Detalles

El entorno PXE se basa en una combinación de protocolos de Internet estándar de la industria, a saber, UDP/IP, DHCP y TFTP. Se han seleccionado 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 reducido 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 del cliente del estándar PXE se implemente de forma idéntica en una amplia variedad de sistemas, que van desde potentes computadoras cliente hasta computadoras de placa única (SBC) y computadoras de sistema en un chip (SoC) con recursos limitados.

El DHCP se utiliza para proporcionar los parámetros de red del cliente adecuados 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 arranque 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á arrancar 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 apuntar a los recursos de arranque ubicados en la red, según 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 (es decir, UEFI Secure Boot ) 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 SO minimalista (es decir, WindowsPE o un kernel Linux básico + initrd ). El pequeño ejecutivo de SO carga sus propios controladores de red y pila TCP/IP. En este punto, las instrucciones restantes necesarias para arrancar o instalar un SO completo no se proporcionan a través de TFTP, sino utilizando un protocolo de transferencia robusto (como HTTP , CIFS o NFS ).

Integración

Servidor DHCP vs. proxyDHCP

El entorno cliente/servidor PXE se diseñó para que se pueda integrar sin problemas con una infraestructura de servidor DHCP y TFTP ya existente. Este objetivo de diseño presentó un desafío al trabajar 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 las 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 administradas y ejecutadas de forma independiente:

  1. El servidor DHCP clásico que proporciona dirección IP, máscara IP, etc. a todos los clientes DHCP que arrancan .
  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 transmite un único paquete DHCPDISCOVER PXE y recibe dos DHCPOFFER complementarios; uno del servidor DHCP normal no habilitado para PXE y otro 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á funcionando. 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 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 cubrió completamente IA-32 . A pesar de esta aparente falta de completitud, Intel ha decidido recientemente soportar ampliamente PXE dentro de la nueva especificación UEFI extendiendo la funcionalidad PXE a todos los entornos EFI/UEFI. La Especificación actual de 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 computadora que se iniciará 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 la red. [6]

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

La extensión de firmware del cliente PXE original se diseñó como una ROM opcional para el BIOS IA-32 , por lo que originalmente una computadora personal (PC) se hizo compatible con PXE instalando un controlador de interfaz de red (NIC) que proporcionaba una ROM opcional 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 en la placa base.

Aunque el firmware PXE del cliente original fue escrito por Intel y siempre se proporcionó sin costo como un módulo de formato de código objeto IA32 enlazable 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 hecho que PXE sea 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 unidad flash USB .

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

Respecto al desarrollo de NBP existen varios proyectos que implementan gestores de arranque capaces de ofrecer funciones extendidas del menú de arranque, capacidades de scripting, etc.:

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

Entornos entre hermanos

Apple ha desarrollado 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 fue publicada en septiembre de 2010. [10] Mac OS X Server incluía una herramienta de sistema llamada NetBoot . Un cliente NetBoot usa BSDP para adquirir dinámicamente recursos que le permiten arrancar un sistema operativo adecuado. BSDP se crea sobre DHCP usando información específica del proveedor para proporcionar la funcionalidad NetBoot adicional que no está presente en 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 servidores de arranque usando BSDP. Cada servidor BSDP responde con información de arranque que consiste en:

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

Entornos de 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 patentada de Microsoft que utiliza el firmware de cliente estándar PXE. Actualmente no hay una especificación BINL disponible públicamente.

Documentación de estándares IETF

Véase 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 . Cisco Press. pág. 43. ISBN 978-1587144905En 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 (entorno de ejecución previo al arranque) en servidores de imágenes .
  2. ^ "Wired for Management Baseline - Versión 2.0" (PDF) . Intel Corporation. 18 de diciembre de 1998. 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 de prearranque (PXE) - Versión 2.1" (PDF) . Intel Corporation. 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 2014-04-04 .
  5. ^ "Análisis del rendimiento del arranque PXE de UEFI" (PDF) . Intel Corporation. 2 de febrero de 2014. 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 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: Boot Server Discovery Protocol (BSDP) v0.1" (Documento) . Apple Corporation. 2003-12-02 . Consultado el 2014-04-04 .
  10. ^ "NetBoot 2.0: Boot Server Discovery Protocol (BSDP) v1.08" (Documento) . Apple Corporation. 17 de septiembre de 2010. Consultado el 4 de abril de 2014 .

Enlaces externos