Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
Este documento describe un procedimiento detallado para configurar un servidor TFTP (Trivial File Transfer Protocol) junto con servicios DHCP y HTTP, con el propósito de realizar instalaciones automatizadas de AlmaLinux 9 sobre red (PXE). Está diseñado como una guía paso a paso tipo manual de procedimientos estilo ISO9000, garantizando que los alumnos puedan replicar la configuración al primer intento. El entorno utiliza el esquema de direccionamiento IP 192.168.100.0/24, donde el servidor asume la dirección 192.168.100.2.
TFTP (Trivial File Transfer Protocol) es un protocolo de transferencia de archivos simple, similar a una versión muy básica de FTP. Resulta ideal para transferir archivos pequeños entre computadoras en una red de área local, como los necesarios para iniciar un sistema desde archivos compartidos por un servidor.
Normalmente se emplea sólo para iniciar estaciones de trabajo sin unidad de almacenamiento (diskless workstations). Dado que ofrece muy poca seguridad, se recomienda mantenerlo deshabilitado y sólo habilitarlo cuando realmente vaya a ser utilizado.
URL de la especificación RFC: https://tools.ietf.org/html/rfc1350
Todos los procedimientos descritos en este documento se deben realizar como root o bien como usuario regular utilizando sudo.
Ejecute lo siguiente en AlmaLinux, Rocky Linux o Red Hat™ Enterprise Linux:
dnf -y install tftp-server syslinux
Active e inicie el servicio tftp:
systemctl enable --now tftp
Para ALDOS (basado en SysVinit):
Ejecute lo siguiente:
yum -y install tftp-server xinetd syslinuxActive el servicio
xinetd:chkconfig xinetd onInicie el servicio
xinetd:service xinetd startFinalmente, active el servicio
tftp:chkconfig tftp on
Es imprescindible contar con un servicio DHCP para difundir la configuración de arranque por red (PXE) a los clientes. Puede elegir entre dos alternativas: el servidor DHCP de ISC (estándar) o DNSMasq (ligero y que combina DNS y DHCP).
Este es el método estándar y recomendado para entornos de producción. Instale el paquete dhcp-server:
dnf -y install dhcp-server
Si utiliza ALDOS, ejecute lo siguiente:
yum -y install dhcp-server
Edite el archivo de configuración principal:
vim /etc/dhcp/dhcpd.conf
Añada el siguiente contenido, reemplazando los valores que correspondan a su red de área local. Asegúrese de que la directiva next-server apunte a la dirección IP de su servidor TFTP (en este ejemplo, 192.168.100.2):
ddns-update-style interim;
ignore client-updates;
authoritative;
default-lease-time 900;
max-lease-time 7200;
option ip-forwarding off;
option domain-name "red-local.net";
option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org;
allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.100.2;
filename "pxelinux.0";
}
shared-network redlocal {
subnet 192.168.100.0 netmask 255.255.255.0 {
option routers 192.168.100.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.100.255;
option domain-name-servers 192.168.100.2;
option netbios-name-servers 192.168.100.2;
range 192.168.100.10 192.168.100.240;
}
}
Para AlmaLinux, Rocky Linux o RHEL, active e inicie el servicio:
systemctl enable --now dhcpd
Para ALDOS, utilice los mandatos de SysVinit:
chkconfig dhcpd on
service dhcpd start
DNSMasq es un servicio que combina DNS y DHCP, ofreciendo una alternativa más ligera y fácil de configurar. Consulte el manual completo de Configuración de DNSMasq para más detalles.
Instale el paquete:
dnf -y install dnsmasq
Si utiliza ALDOS, ejecute lo siguiente:
yum -y install dnsmasq
Cree un archivo de configuración específico para DHCP y TFTP:
vim /etc/dnsmasq.d/dhcp-tftp.conf
Añada el siguiente contenido. Asegúrese de reemplazar enp0s0 por el nombre real de su interfaz de red local y de que la IP del servidor (192.168.100.2) sea correcta:
# Opciones específicas de DHCP
interface=enp0s0
bind-interfaces
domain=red-local.net
dhcp-option=option:router,192.168.100.1
dhcp-option=option:dns-server,192.168.100.2
dhcp-option=option:ntp-server,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org
dhcp-option=option:netmask,255.255.255.0
dhcp-range=192.168.100.3,192.168.100.254,12h
# Opciones específicas de TFTP
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-boot=pxelinux.0
pxe-service=x86PC,"PXELINUX (BIOS)",bios/pxelinux
pxe-service=X86-64_EFI,"PXELINUX (EFI)",efi64/syslinux.efi
Para AlmaLinux, Rocky Linux o RHEL, active e inicie el servicio:
systemctl enable --now dnsmasq
Para ALDOS, utilice los mandatos de SysVinit:
chkconfig dnsmasq on
service dnsmasq start
Es necesario permitir el tráfico de los servicios involucrados. Asumiendo que la zona de FirewallD correspondiente a su red de área local es home, ejecute los siguientes mandatos para abrir los puertos requeridos:
firewall-cmd --zone=home --add-service=tftp --permanent
firewall-cmd --zone=home --add-service=dhcp --permanent
firewall-cmd --zone=home --add-service=http --permanent
firewall-cmd --zone=home --add-service=https --permanent
firewall-cmd --reload
Siga estos pasos de manera estricta para preparar los archivos de arranque y el repositorio de instalación.
Cree el directorio que alojará los archivos de instalación de AlmaLinux:
mkdir -p /var/www/almalinux9
Descargue la imagen ISO de AlmaLinux 9 Minimal (aproximadamente 2.6 GiB) en el directorio de descargas del usuario:
wget -P ~/Descargas https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9-latest-x86_64-minimal.iso
Nota: También puede utilizar la imagen ISO completa (~12 GiB), pero se recomienda la edición Minimal para optimizar el uso de recursos de red y realizar instalaciones más ligeras.
Cree un punto de montaje temporal y monte la imagen ISO descargada:
mkdir -p /mnt/almalinux9
mount -o loop ~/Descargas/AlmaLinux-9-latest-x86_64-minimal.iso /mnt/almalinux9
Copie todo el contenido de la ISO al directorio web creado:
cp -a /mnt/almalinux9/* /var/www/almalinux9/
Configure el servidor web para servir los archivos. Elija sólo una de las dos opciones siguientes:
Con Apache: Cree un archivo de configuración:
vim /etc/httpd/conf.d/almalinux9.conf
Añada esta directiva:
Alias /almalinux9 /var/www/almalinux9
Recargue la configuración:
systemctl reload httpd
Si utiliza ALDOS:
service httpd reload
Con Nginx (recomendado por su eficiencia): Consulte también el manual de Configuración de Nginx. Cree un archivo de configuración:
vim /etc/nginx/default.d/almalinux9.conf
Añada esta directiva:
location = /almalinux9 {
root /var/www;
}
Recargue la configuración:
systemctl reload nginx
Si utiliza ALDOS:
service nginx reload
Prepare el directorio de TFTP. Primero, copie todos los archivos del cargador de arranque Syslinux:
cp -r /usr/share/syslinux/* /var/lib/tftpboot/
Cree un subdirectorio para los archivos específicos de AlmaLinux 9 y copie el núcleo (kernel) y la imagen inicial de RAM (initrd):
mkdir -p /var/lib/tftpboot/almalinux9
cp -a /mnt/almalinux9/isolinux/vmlinuz /var/lib/tftpboot/almalinux9/
cp -a /mnt/almalinux9/isolinux/initrd.img /var/lib/tftpboot/almalinux9/
Desmonte la imagen ISO:
umount /mnt/almalinux9
Configure el menú de arranque PXE. Cree el archivo de configuración por defecto:
vim /var/lib/tftpboot/pxelinux.cfg/default
Añada el siguiente contenido. Reemplace 192.168.100.2 por la dirección IP real de su servidor:
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install AlmaLinux 9 x64 with Local Repo
kernel almalinux9/vmlinuz
append initrd=almalinux9/initrd.img method=http://192.168.100.2/almalinux9 devfs=nomount
Reinicie el servicio TFTP para aplicar todos los cambios (en sistemas con systemd):
systemctl restart tftp
NOTA: En ALDOS, que utiliza
xinetd, este paso es innecesario, ya que el servicio atiende las solicitudes bajo demanda.
Para probar la configuración, proceda a configurar una máquina física o virtual para que inicie desde la red (PXE).
En la programación en firme (firmware, BIOS/UEFI) o en la configuración de la máquina virtual (por ejemplo, VirtualBox), establezca el arranque por red (Network Boot) como la primera opción en el orden de arranque.

Configuración del inicio PXE en una máquina virtual de VirtualBox.
Encienda la máquina cliente. Si la configuración es correcta, obtendrá una dirección IP del servidor DHCP y descargará el cargador de arranque PXE.

Primeras etapas del inicio de sistema utilizando PXE.
Finalmente, deberá cargarse el menú de arranque TFTP configurado, desde donde puede seleccionar la instalación de AlmaLinux 9.

Menú de arranque proporcionado por el servidor TFTP.
Ha configurado exitosamente un servidor TFTP completo con soporte DHCP y un repositorio HTTP local para realizar instalaciones automatizadas de AlmaLinux 9 vía red PXE. Este entorno es ideal para laboratorios informáticos, despliegue rápido de máquinas virtuales o cualquier escenario que requiera la instalación repetible y eficiente de múltiples sistemas.
Para extender la funcionalidad, considere:
Por su naturaleza minimalista, TFTP prescinde de medidas de seguridad avanzadas. Se recomienda encarecidamente habilitar el servicio únicamente durante las ventanas de uso específico en entornos de producción, procediendo a deshabilitar éste inmediatamente después de utilizarlo con systemctl disable --now tftp o chkconfig tftp off.