Arranque en red con Linux – PXE

Este artículo tiene cierta relación con el anterior, ya que trata el tema del arranque e instalación de Linux utilizando la red, ya sea local o no. Esta vez trataremos la instalación de Linux sin medios ópticos, disquetes u otros medios removibles, usando sólo la LAN. Se espera que tengas al menos dos ordenadores en tu red, y el cliente necesitará una NIC y una BIOS capaz de usar PXE. Te guiaremos de principio a fin, pero se requieren algunos conocimientos básicos de configuración de redes y de Linux, además del uso de un editor de tu elección. Aprenderás qué es PXE, cómo configurar un servidor DHCP, cómo configurar un servidor TFTP para que el cliente pueda tener acceso a los archivos, además de muchas cosas interesantes, como siempre.

PXE

PXE (se pronuncia «pixie») significa Preboot eXecution Environment y fue introducido por Intel y Systemsoft en 1999. En resumen, es una capacidad que tienen la mayoría de las tarjetas de red y las BIOS modernas que permite al sistema arrancar desde la LAN, igual que lo haría desde el disco duro o el CD-ROM. El soporte de PXE debe estar presente en el firmware de la NIC que, si se configura adecuadamente en la BIOS, obtendrá una dirección IP del servidor PXE y descargará las imágenes de arranque necesarias. Para que una dirección IP esté disponible, el servidor debe ofrecer DHCP. Después de alquilar una dirección IP, el servidor TFTP (que puede ser la misma caja que el servidor DHCP) entrega los archivos necesarios al cliente, para que pueda arrancarlos después de cargarlos. Esa es la idea, así que basta de hablar, vamos a trabajar, ¿de acuerdo?

Instalación de las herramientas necesarias y configuración

Antes de empezar, es importante entender cómo está dispuesta la configuración de la red en la que probamos esto. El servidor es una máquina Debian con dos tarjetas de red, y la distribución que instalaremos también es Debian, concretamente Squeeze, amd64. Puedes usar cualquier otra distribución, pero probablemente algunas ubicaciones de los archivos de configuración serán diferentes. Este artículo no trata de cómo configurar las fuentes de software para la instalación real. Sólo le llevaremos a un instalador de Debian que funcione y eso es todo. Encontrará muchos tutoriales por ahí sobre cómo configurar un repositorio local de Debian o cómo configurar una puerta de enlace en Linux.

Así que, la lista de comprobación: necesitaremos un servidor DHCP, un servidor TFTP y el initrd y la imagen del kernel para ser transferidos al cliente. Elegimos un enfoque bastante inusual en nuestra configuración, y usted verá por qué.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

Así, el router da direcciones DHCP (pequeño, router de casa) en la forma de 192.168.0.x . El servidor, que también repartirá direcciones DHCP, tiene su conexión exterior a través de eth0 y la conexión interior para el cliente a través de eth1. El cliente tiene la única conexión Ethernet directamente al servidor PXE, pero eso no significa que no se pueda configurar el servidor como una puerta de enlace para netinstall o añadir otra NIC al cliente para el acceso exterior. Hay muchas posibilidades, lo importante es arrancar vía PXE. Empecemos por instalar el servidor TFTP.

SUSCRIBIRSE A LA NEWSLETTER & RSS
Suscríbete a la RSS y a la NEWSLETTER y recibe las últimas noticias sobre Linux, trabajos, consejos profesionales y tutoriales.

TFTP

TFTP significa Trivial File Transfer Protocol (Protocolo de Transferencia de Archivos) y es el «lenguaje» de facto cuando se trata de transferir archivos para usar con PXE. En Debian, lo instalamos así:

 # aptitude install tftpd-hpa

Ahora debemos configurarlo adecuadamente. Antes de nada, en nuestro ejemplo vamos a ejecutar tftpd de forma autónoma, es decir, no vamos a utilizar xinetd. La configuración será diferente si planeas usar xinetd, y no lo recomendamos. Ahora todo lo que tenemos que hacer es editar /etc/default/tftpd-hpa :

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Asegurémonos de que el directorio anterior existe y arranquemos el demonio:

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Tenemos que ofrecer al cliente una dirección antes de que comencemos la instalación a través de la red, y esto se hace utilizando el Protocolo de Configuración Dinámica de Host. El servidor DHCP tiene un pool de direcciones del que ofrece IPs cuando se le solicitan. Se instala la parte del servidor con

 # aptitude install dhcp3-server

Ahora debemos configurar la información de red de eth1, que se encuentra en /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Reinicia la red y ya casi hemos terminado:

 # ifdown eth1 # ifup eth1

Configurar PXE

Ahora debemos configurar el fichero que el cliente va a solicitar, un fichero en el que le diremos cómo encontrar lo que necesita. Así que vamos a crear el directorio pxelinux.cfg :

 # mkdir /var/lib/tftpboot/pxelinux.cfg 

y crear un archivo llamado ‘default’ que tendrá el siguiente contenido:

Ves una referencia al archivo boot.txt , así que créalo en /var/lib/tftpboot y añádele la línea «squeeze_amd64_install».

Ahora, a copiar los archivos necesarios en algún lugar para ser encontrado por el cliente:

Ahora, con la esperanza de que todo está bien, sólo puede arrancar su cliente y alterar su ‘configuración de la BIOS para el arranque de red. Antes de terminar, te debemos una explicación para esta configuración de red que elegimos. Probablemente podríamos haberlo hecho más simple, como usar la conexión de nuestro ISP directamente, y poder acceder a la red (Internet) también. La idea es que el servidor PXE en nuestro escenario no puede obtener su dirección IP (eth0) desde DHCP ya que esta configuración no funcionará: si no vas a usar el escenario de dos NIC en el servidor, como hicimos nosotros, necesitas algún tipo de dirección IP fija. Así, las posibilidades serían: ISP conectado directamente, configurar el router para dar sólo IPs estáticas, hacer que el servidor PXE/DHCP/TFTP sea también una puerta de enlace o crear un repositorio local. Elegimos esta última opción porque es la que mejor se adapta a nuestra topología y propósitos, y sólo implica configurar un servidor web en la LAN, en realidad. Si hubiéramos explicado todas las opciones, incluyendo iptables para una pasarela o apache para un servidor HTTP, este artículo habría sido enorme. En su lugar, hemos preferido ceñirnos al título y darte exactamente eso: Arranque en red con Linux.

Recuerda que esto es sólo un ejemplo: al igual que con NetbootCD, puedes añadir tantas distribuciones como quieras, siempre que tengas el espacio necesario en el servidor.

Pensamientos finales

Deja una respuesta

Tu dirección de correo electrónico no será publicada.