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 manual guía al lector a través de la instalación y configuración de un servidor DHCP (Dynamic Host Configuration Protocol) en sistemas basados en RHEL y ALDOS. El enfoque es pedagógico, con ejemplos prácticos diseñados para ser ejecutados y estudiados.
El DHCP (acrónimo de Dynamic Host Configuration Protocol, que se traduce como Protocolo de Configuración Dinámica de Anfitriones) es un protocolo que permite a los dispositivos de una red obtener su configuración de red —dirección IP, máscara de subred, puerta de enlace, entre otros— de manera automática desde un servidor. Su propósito principal radica en facilitar enormemente la administración de redes de gran tamaño. DHCP es un estándar desde 1993 y se describe en detalle en el RFC 2131.
Sin un servidor DHCP, sería indispensable configurar manualmente la dirección IP de cada equipo (host) en una red local. Un servidor DHCP asigna y supervisa las direcciones IP de la red, proporcionando la configuración necesaria a cualquier anfitrión que se conecte. Por ejemplo, un portátil configurado para usar DHCP recibirá automáticamente los parámetros correctos para unirse a cualquier red local con un servidor disponible.
Existen tres métodos de asignación en el protocolo DHCP:
hardware ethernet combinada con deny unknown-clients.default-lease-time y max-lease-time, permitiendo la reutilización dinámica de las direcciones.El equipamiento lógico utilizado para las funciones de servidor DHCP en este manual es ISC DHCP, desarrollado por la Internet Systems Consortium.
Fundado en 1994, el ISC distribuye un conjunto completo de herramientas para el protocolo DHCP, que incluye el servidor, el cliente y un agente de retransmisión. Dichas herramientas emplean una Interfaz de Programación de Aplicaciones (Application Programming Interface, API) modular, diseñada para funcionar con facilidad en sistemas operativos compatibles con POSIX y otros como Windows.
URL del proyecto: http://isc.org/products/DHCP/. Se trata de software libre distribuido bajo los términos de la licencia ISC.
Para instalar el servidor DHCP en distribuciones basadas en RHEL (como ALDOS, Rocky Linux o AlmaLinux) y Fedora, ejecute el siguiente mandato:
dnf -y install dhcp-server
Para instalar el servidor DHCP en ALDOS, ejecute el siguiente mandato:
yum -y install dhcp-server
Es necesario permitir el tráfico de DHCP en el muro cortafuegos para las redes locales que se quieran gestionar. Por lo general, los puertos 67 y 68 (BOOTPS y BOOTPC) sobre UDP se abren únicamente para la red de área local, jamás hacia redes públicas.
FirewallD es el sistema de muro cortafuegos predeterminado y recomendado para los manuales de Alcance Libre.
Asumiendo que la red de área local se encuentra en la zona home, ejecute lo siguiente para abrir los puertos requeridos:
firewall-cmd --zone=home --add-service=dhcp
Para hacer permanente esta regla, añada la opción --permanent:
firewall-cmd --permanent --zone=home --add-service=dhcp
Si la red local está configurada en la zona internal, simplemente reemplace home por internal en los mandatos anteriores.
Se recomienda encarecidamente mantener SELinux activo con sus políticas de seguridad predeterminadas. Es innecesario realizar cambios en la configuración de SELinux para que el servicio dhcpd funcione correctamente en versiones recientes de RHEL, sus derivados y ALDOS.
Esta sección detalla los pasos prácticos para poner en funcionamiento el servidor DHCP. Se guiará al lector a través de la configuración del servicio, la creación y personalización del archivo de configuración principal con ejemplos basados en el esquema de red 192.168.100.0/24, y la gestión del ciclo de vida del servicio, garantizando un enfoque pedagógico donde cada mandato puede ejecutarse para verificar su resultado.
En ALDOS (que utiliza SysVinit) y sí el servidor dispone de múltiples interfaces de red, es recomendable restringir el servicio dhcpd para que funcione sólo a través de la interfaz conectada a la LAN local. Para este fin, edite el archivo /etc/sysconfig/dhcpd y especifique la interfaz como argumento de la opción DHCPDARGS. Este paso es innecesario en versiones modernas de RHEL y sus derivados, donde el servicio se gestiona de forma diferente.
Edite el archivo:
vim /etc/sysconfig/dhcpd
El siguiente ejemplo considera que eth1 es la interfaz correspondiente a la LAN local:
# Command line options here
DHCPDARGS=eth1
Para mantener coherencia pedagógica con otros manuales de Alcance Libre, todos los ejemplos utilizarán el siguiente esquema de direccionamiento IP del laboratorio virtual:
192.168.100.0255.255.255.0 (24 bits)192.168.100.255192.168.100.1192.168.100.20.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org192.168.100.10 hasta 192.168.100.240🔧 Nota: Es indispensable comprender estos conceptos básicos de redes. Si tiene dudas, se recomienda consultar primero el manual Introducción a IP versión 4.
Puede utilizar el contenido de ejemplo que se presenta a continuación para crear y adaptar un archivo de configuración para su red específica.
El archivo de configuración principal del servidor ISC DHCP es /etc/dhcp/dhcpd.conf. Cree este archivo y añada la configuración básica:
vim /etc/dhcp/dhcpd.conf
Copie y pegue el siguiente contenido de ejemplo dentro del archivo. Luego, personalice todos los valores resaltados según las características de su propia red local.
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, 3.pool.ntp.org;
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;
}
}
Esta configuración corresponde a un servidor DHCP básico y funcional.
Una vez creado el archivo de configuración, inicie el servicio DHCP.
systemctl start dhcpdservice dhcpd startPara supervisar las asignaciones de direcciones en tiempo real, ejecute el siguiente mandato y conecte un cliente a la red:
tail -f /var/log/messages | grep dhcp
Para asignar una dirección IP fija a un equipo específico (por ejemplo, una impresora de red), defina un bloque host dentro de la declaración subnet. Especifique el nombre del anfitrión, su dirección MAC y la IP fija.
Edite nuevamente el archivo /etc/dhcp/dhcpd.conf:
vim /etc/dhcp/dhcpd.conf
A continuación se muestra un ejemplo ampliado que incluye dos reservas:
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, 3.pool.ntp.org;
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;
# Equipos con IP fija (Reservas)
host impresora {
option host-name "epl5900.red-local.net";
hardware ethernet 00:24:2B:65:54:84;
fixed-address 192.168.100.50;
}
host servidor-nas {
option host-name "nas.red-local.net";
hardware ethernet 00:50:BF:27:1C:1C;
fixed-address 192.168.100.51;
}
}
}
Tras modificar la configuración, reinicie el servicio para aplicar los cambios:
systemctl restart dhcpdservice dhcpd restartPara crear una política de seguridad más estricta, puede configurar el servidor para que sólo asigne direcciones a equipos conocidos. Utilice la directiva deny unknown-clients y defina bloques host para cada equipo autorizado, incluso si reciben IP dinámica.
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, 3.pool.ntp.org;
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;
# Lista blanca: sólo los equipos listados podrán obtener IP.
deny unknown-clients;
# Definición de equipos autorizados
host portatil-joel {
hardware ethernet 00:24:2B:65:54:84;
}
host pc-oficina {
hardware ethernet 00:50:BF:27:1C:1C;
}
}
}
Una vez configurado el servidor, la gestión adecuada del servicio es crucial para su operación. Los siguientes mandatos permiten controlar el ciclo de vida del servicio dhcpd, ya sea para iniciarlo por primera vez, aplicar cambios de configuración o detenerlo para mantenimiento. Las instrucciones se presentan para los dos sistemas de gestión de servicios predominantes en el ecosistema de RHEL y ALDOS: systemd y SysVinit.
Para que el servicio se inicie automáticamente al arrancar el sistema:
systemctl enable dhcpdchkconfig dhcpd onLos mandatos para gestionar el estado del servicio son:
| Acción | systemd | SysVinit |
|---|---|---|
| Iniciar servicio | systemctl start dhcpd |
service dhcpd start |
| Detener servicio | systemctl stop dhcpd |
service dhcpd stop |
| Reiniciar servicio | systemctl restart dhcpd |
service dhcpd restart |
| Ver estado | systemctl status dhcpd |
service dhcpd status |
Tras configurar el servidor, los dispositivos clientes sólo requieren configurar su interfaz de red para usar DHCP.
Desde un cliente GNU/Linux, puede realizar pruebas manuales. Asumiendo una interfaz llamada enp0s3, libere la dirección actual y solicite una nueva al servidor DHCP:
sudo dhclient -v -r enp0s3 # Libera (release) la IP actual
sudo dhclient -v enp0s3 # Solicita una nueva IP
Para verificar la configuración obtenida:
ip addr show enp0s3
Para una configuración permanente en el cliente, edite el archivo de configuración de su interfaz de red (por ejemplo, /etc/sysconfig/network-scripts/ifcfg-enp0s3 en RHEL/ALDOS) y asegúrese de que contenga las siguientes directivas clave:
BOOTPROTO=dhcp
ONBOOT=yes
Reinicie el servicio de red o la interfaz para aplicar los cambios.