Tutoriales

PXE: ¿Cómo funciona este protocolo de red?

PXE es un interesante protocolo de red que nos permite hacer algunas cosas muy interesantes con el sistema operativo de forma remota. También se conoce como Preboot eXecution Environment y algunos confunden éste con WOL (Wake On LAN), pero lo cierto es que son cosas totalmente diferentes. Para que no te lleves a confusión, en este artículo te explicaremos todo lo que debes saber sobre esta tecnología para LAN.

¿Qué es el arranque desde la red?

arranque desde la red

El arranque desde la red implica el proceso de encender un ordenador desde una red en lugar de utilizar un medio local donde localizar la imagen del sistema operativo o arranque. Una forma de centralizar todo el proceso y conseguir algunas ventajas que ya veremos.

Para ello, el software de arranque se carga desde un servidor en la red, y en redes basadas en TCP/IP, esto comúnmente se logra mediante TFTP como veremos. El servidor desde el cual se obtiene el software inicial se localiza típicamente a través de una solicitud de Protocolo de Inicio (Bootstrap Protocol) o DHCP realizada mediante transmisiones en difusión o multidifusión (multicast). Por lo general, este software puede ser sencillo, y no tiene por qué incluir la imagen completa del sistema operativo.

Antes de que el Protocolo de Internet (IP) se convirtiera en el protocolo exclusivo de la Capa 3, el protocolo NetWare Core Protocol y el IBM RIPL eran los usados para el arranque desde la red. Pero más tarde llegaría también PXE, que es el que vamos a tratar en este artículo.

El arranque a través de red también se emplea en las instalaciones desatendidas de sistemas operativos. En esta situación, un sistema operativo se cargará desde la red, y mediante un script, la instalación se llevará a cabo según la configuración establecida en dicho script para que se realice sin supervisión. Algo bastante cómodo cuando se necesita instalar un mismo sistema o entorno en múltiples equipos.

Existen implementaciones para distintos sistemas operativos, como MacOS, Windows y Linux, tales como NetInstall, Windows Deployment Services y DRBL respectivamente.

¿Qué es PXE?

PXE

PXE (Preboot Execution Environment) o Entorno de Ejecución Prearranque. Constituye un enfoque para iniciar un ordenador (cliente) utilizando únicamente su tarjeta de red. La noción de PXE surgió en los inicios de los protocolos BOOTP/DHCP/TFTP, y para el año 2015, pasó a ser parte integral del estándar UEFI.

PXELINUX es un sistema que forma parte de SYSLINUX y que sirve para el arranque en sistemas basados en Linux usando el protocolo PXE.

Por otro lado, también tenemos BSDP (Boot Service Discovery Protocol), una extensión desarrollada por Apple para permitir el arranque de los equipos Mac desde imágenes del sistema operativo en red, en lugar de los medios locales.

Esta metodología se fundamenta en estándares y se puede aplicar mediante  software de código abierto, aunque también hay algunos sistemas de proveedores específicos. Dentro de la infraestructura de un centro de datos, PXE ocupa un lugar de relevancia, ya que es capaz de configurar de manera automática servidores o estaciones de trabajo mediante conexiones de red, aunque también en los PCs puede suponer una gran ayuda.

Contar con un conocimiento profundo sobre la estructura de PXE resulta sumamente valioso para cualquier individuo involucrado en la implementación de infraestructuras de servidores bare-metal (sin sistema operativo preinstalado), servidores incorporados y dispositivos de Internet de las cosas (IoT).

Por parte del cliente, es suficiente contar con una tarjeta de interfaz de red (NIC) compatible con PXE, el firmware compatible (BIOS/UEFI), y una arquitectura compatible (IA-32, IA-64, DEC Alpha,…). Además, PXE hace uso de un conjunto limitado de protocolos de red ampliamente reconocidos en la industria, como DHCP y TFTP.

Protocolos de los que se hace uso

Los otros protocolos que intervienen cuando se usa PXE son:

NIC (Network Interface Controller)

Es un controlador de interfaz de red o de tarjeta de red. Existen numerosas tarjetas de red disponibles para consumidores que carecen de funcionalidad PXE. No obstante, en los servidores destinados a centros de datos, las NIC habilitadas para PXE son la norma. Algunas de estas NIC con soporte PXE incluso utilizan un firmware de código abierto para su funcionalidad PXE.

DHCP (Dynamic Host Configuration Protocol)

Es un Protocolo de Configuración Dinámica de Host. En este protocolo, dos roles son esenciales: el servidor DHCP y el cliente DHCP. El protocolo DHCP ofrece una amplia gama de opciones que pueden suministrarse a los clientes en una red.

En términos generales, esto incluye la asignación de direcciones IP para el cliente, la especificación de la puerta de enlace predeterminada y la indicación del servidor DNS para resolver nombres. En el contexto de PXE, una de las opciones contenidas en DHCP proporciona la dirección IP del servidor desde el cual el cliente puede descargar su archivo de inicio.

Se puede prescindir del proxy DHCP, aunque aún así seguirá siendo necesario el servidor TFTP. Esto es gracias al protocolo BOOTP, que puede sustituir a DHCP. Boot strap Protocol es un protocolo de inicio, tipo UDP y empleado por los dispositivos cliente para obtener de forma automática su dirección IP.

Servidor TFTP

TFTP (Trivial File Transfer Protocol) se traduce como Protocolo de Transferencia de Archivos Triviales. Este protocolo sencillo opera sobre UDP para la obtención y envío de archivos. La simplicidad inherente al TFTP lo hace especialmente adecuado para entornos con limitados recursos de firmware.

Debido a su enfoque directo, el TFTP se centra exclusivamente en el intercambio de archivos. No incluye características adicionales, como la navegación de directorios, lo que implica que se debe conocer la ruta precisa del archivo deseado para su descarga. Adicionalmente, carece de autenticación o autorización.

Aunque el TFTP sigue siendo utilizado comúnmente en contextos PXE, la evolución de PXE ha permitido usar otros protocolos más complejos como puede ser el protocolo de almacenamiento ISCSI o el web HTTP.

Ventajas de PXE

Utilizar un servidor PXE puede tener algunos beneficios o ventajas interesantes, aquí voy a exponerlas:

  • No se requiere un sistema operativo ni incluso un disco duro en el equipo cliente. Esto facilita la instalación incluso para personas con conocimientos técnicos limitados.
  • Ante fallas de software o hardware, es posible reiniciar el equipo cliente. Esto posibilita que los administradores diagnostiquen y solucionen problemas, reduciendo los errores gracias a la automatización.
  • La incorporación de nuevos equipos a la red es simple debido a la independencia de proveedores de PXE. Su implementación puede disminuir el tiempo dedicado a cada servidor, ya que las herramientas de instalación están centralizadas y su actualización resulta más sencilla.

Por ejemplo, si deseas mantener o instalar un sistema operativo en múltiples equipos sin recurrir a un CD o una unidad USB de manera individual en cada equipo, puedes probar el arranque PXE para llevar a cabo la instalación del sistema.

Variantes de PXE

Variantes PXE

También podemos encontrar algunas variantes del PXE que son interesantes, como son:

gPXE

El gPXE (anteriormente conocido como Etherboot) es una implementación de código abierto de PXE y un cargador de arranque. Su utilidad radica en permitir que los equipos que carecen de soporte para PXE puedan arrancar desde la red, o bien, ampliar las capacidades de una implementación existente de PXE con soporte para protocolos adicionales.

A diferencia de los clientes PXE convencionales que emplean TFTP para la transferencia de datos, el gPXE agrega la capacidad de recuperar información a través de otros protocolos como HTTP, iSCSI, NFS, FTP, y ATA sobre Ethernet (AoE). Además, tiene la capacidad de funcionar con conexiones Wi-Fi en lugar de depender de conexiones por cable.

También te puede interesar conocer las mejores tarjetas de red Wifi

gPXE puede arrancar algo más que un sistema operativo Linux, FreeBSD, Windows, o multiboot, ya que también permite arrancar imágenes en formato ELF, EFI, y extensiones COMBOOT y COM32 de SYSLINUX. Esto permite obtener un menú gráfico para las opciones de arranque de red.

Aunque en sus inicios el propósito principal del gPXE era implementar un conjunto de funciones PXE, en la actualidad se puede emplear como un completo cargador de arranque en red con todas sus características.

iPXE

iPXE es una implementación de código abierto del software del cliente y cargador de arranque del PXE, creada en 2010 como un fork de gPXE, y que comparte muchas características con él. Puede ser utilizado para permitir que los equipos sin capacidad PXE integrada puedan arrancar desde la red, o para proporcionar características adicionales más allá de las que ofrece PXE integrado. Además, admite los mismos protocolos que gPXE (con la adición de FCoE  o Fibre Channel over Ethernet) y puede arrancar los mismos formatos y sistemas.

Funcionamiento de PXE

BIOS UEFI

Si quieres saber cómo funciona PXE, ahora vamos a ver cómo:

  1. Configuración del DHCP:
    1. El equipo cliente emite un paquete de difusión amplia denominado «discover,» solicitando la configuración de la red. El servidor DHCP recibe este paquete.
    2. En respuesta, el servidor DHCP envía un paquete de «oferta» al cliente. Tras analizar dicho paquete, se asignarán ciertos parámetros de la red al cliente, como la máscara de subred, la dirección IP, entre otros.
  2. Proceso de Arranque PXE:
    1. El cliente notifica al protocolo DHCP que está utilizando un servidor PXE. El servidor, a su vez, proporciona al cliente la dirección IP del próximo servidor de arranque, así como el nombre del archivo de inicio.
    2. El cliente establece comunicación con el servidor de arranque PXE y solicita un archivo de inicio.
    3. El servidor PXE envía el archivo de inicio al cliente mediante el Protocolo de Transferencia de Archivos Triviales (TFTP) o de otros. Y en este archivo podrá estar la imagen de arranque…

Para que PXE funcione, debe estar habilitado en el BIOS/UEFI. Generalmente se encuentra en la pestaña Advanced, aunque según la versión y el fabricante podría estar en otro lugar. Las opciones suelen denominarse algo así como Boot from the network o Boot from PXE.

¡No olvides dejar tus comentarios con dudas o sugerencias!

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba