Instalar un servidor PXE en nuestra red local

En esta entrada vamos a explicar paso a paso la instalación de un servidor PXE (Preboot Execution Environment) en nuestra red para que nos sirva de repositorio de imágenes de SSOO con los que poder arrancar ThinClients por red sin que necesiten almacenar el SO en disco. En este caso usaré una máquina virtual con Linux Mint 10 (Julia) que tengo instalada en un server ESXi 3.5 en la que voy a instalar los servicios necesarios para convertirla en server PXE, que básicamente son un servidor DHCP y un servidor TFTP
.
  1. Instalamos el servidor DHCP en nuestra VM Julia:
    root@ricardo:~# apt-get install dhcp3-server

  2. Configuramos el servidor dhcp editando los archivos /etc/default/dhcp3-server y /etc/dhcp3/dhcp.conf:
    • /etc/default/dhcp3-server:
      Editamos este archivo configurando la interfaz de escucha por la que los clientes solicitan una IP:
      ...
      INTERFACES="eth0"
      …
      En mi caso la interfaz es eth0 pero puede ser otra o varias a la vez para servir a varias subredes con el mismo servicio en un solo equipo.
    • /etc/dhcp3/dhcp.conf:

      Editamos este archivo configurando el funcionamiento del servicio:
      …
      subnet 10.0.0.0 netmask 255.255.255.0 {
        range 10.0.0.110 10.0.0.150;
        filename "pxelinux.0";
        next-server 10.0.0.24;
        option routers 10.0.0.20;
        option domain-name-servers 10.0.0.20;
        option broadcast-address 10.0.0.255;
      }
      ...

      En este archivo especificamos la subred a la que van a pertenecer los clientes dhcp (campo “subnet”), el rango de IPs no usadas en la subred y que se usarán por el servidor dhcp para asignarlas a los clientes (campo “range”), el archivo que han de solicitar los clientes para el arranque (con el campo “filename”), la IP del servidor que va a ofrecer las imágenes de arranque de sistema a los clientes (con el campo next-server, que en este caso es la IP de la máquina Julia), la puerta de enlace que se les va a asignar a los clientes (con el campo “option routers”), el servidor DNS que se les va a asignar a los clientes dhcp (con el campo “option domain-name-servers”) y la dirección de broadcast que van a tener (con el campo broadcast-address). Claramente la edición de este fichero habrá que adaptarla a la red sobre la que se quiere dar de alta el servidor PXE.
  3. Instalamos el servidor tftp y el super-server inetd que gestiona el socket de la conexión tftp.
    root@ricardo:~# apt-get install atftpd inetutils-inetd

    Al instalar el servicio “atftpd” nos crea la ruta /srv/tftp que nos servirá como almacén en el que tendremos los archivos necesarios para el arranque de las máquinas que lo soliciten.
  4. Editamos el archivo /etc/default/atftpd para que refleje nuestras necesidades:
    …
    USE_INETD=false
    OPTIONS="--daemon --port 69 --retry-timeout 5 --no-multicast --maxthread 100 --verbose=6 --logfile /var/log/atftpd.log  /srv/tftp/"
    …

  5. Reiniciamos los servicios modificados:
    root@ricardo:~# /etc/init.d/atftpd restart
    root@ricardo:~# /etc/init.d/dhcp3-server restart

  6. Introducir en la ruta /srv/tftp el archivo pxelinux.0, lo podemos descargar desde la última versión de syslinux o de la ruta “netboot” de los repositorios de cualquier distribución de Linux.
  7. Crear en la ruta /srv/tftp una carpeta con el nombre “pxelinux.cfg” y dentro un archivo llamado “default” en el que pondremos la imagen que se sirve por defecto al cliente. En este punto tenemos una amplia posibilidad de configuración, podemos crear un menú de arranque con varias opciones para que el cliente elija la imagen con la que arrancar su máquina; también se pueden crear distintos ficheros con la MAC de cada cliente para asignarle unas características de arranque determinadas, etc.
  8. El siguiente paso sería meter en la ruta /srv/tftp la/s imagen/es de los SSOO que queremos poder arrancar por red desde los clientes. En mi caso esto lo he configurado para hacer pruebas con ThinClients, modificarlos y probar, pero podría instalarse perfectamente como servidor de imágenes de arranque en un entorno en producción de ThinClients, para contenedor de imágenes de pruebas, para contener una imagen que usamos mucho para instalar en máquinas sin lector, etc.

Comentarios

Entradas populares de este blog

Comandos Solaris

MikroTik QoS Script generator

Comando para eliminar saltos de linea en fichero o archivo desde consola Linux