Instalación y configuración de un servidor DHCP en Linux.
Documento escrito por: Alejandro Aranda
Puedes ver todos los documentos de este autor aquí.
Introducción
En este articulo veremos cómo instalar y configurar un servidor DHCP en Linux, algo que realmente no es tan difícil como puede parecer. Podrás seguir el articulo tan solo teniendo nociones básicas sobre el funcionamiento de Linux y algunos de sus comandos más básicos (sudo, nano, apt, service).
El protocolo DHCP (Protocolo de configuración dinámica de host) es un protocolo de red que utiliza la arquitectura cliente-servidor y su finalidad podriamos resumirla en asignar de manera dinámica y automática ciertos parámetros de red:
- Dirección IP
- Máscara de subred
- Puerta de enlace (opcional)
- Servidores DNS (opcional)
- Otros parámetros (opcional)
Nuestro servidor DHCP recibirá peticiones de clientes solicitando una configuración de red y el servidor le responderá proporcionando los parámetros durante x tiempo, a esto lo llamamos concesiones.
Instalación del servidor
Te recomiendo que actualices los repositorios antes de iniciar la instalación, para ello puedes ejecutar el siguiente comando:
sudo apt update && sudo apt upgrade
En este primer paso, instalaremos el paquete necesario para montar nuestro servidor DHCP. Para ello, ejecutamos el siguiente comando:
sudo apt install isc-dhcp-server
Configuración de red
Ahora modificaremos nuestra configuración de red para ponerle IPs estáticas (192.168.10.1/25 en mi caso), escribimos el siguiente comando sustituyendo "nombre_fichero.yaml" por el nombre que tenga este archivo en tu maquina:
sudo nano /etc/netplan/nombre_fichero.yaml
Para comprobar la configuración y aplicarla, utilizamos el siguiente comando:
sudo netplan apply
Si estás utilizando una versión relativamente antigua, es posible que tengas que configurar el enrutamiento utilizando el siguiente parametro:
gateway4: dirección_IP
Configuración del servidor
Lo primero que haremos es configurar la interfaz de red en la que escuchará peticiones nuestro servidor. Para ello, ejecutamos el siguiente comando y cuando se nos abra el fichero, escribiremos el nombre de la interfaz de red en la que queremos que escuche el servidor (enp0s3 en mi caso).
sudo nano /etc/default/isc-dhcp-server
El siguiente paso será editar el fichero de configuración principal de nuestro servidor, /etc/dhcp/dhcpd.conf para ello ejecutamos el siguiente comando:
sudo nano /etc/dhcp/dhcpd.conf
Parámetros:
option domain-name [Nombre de dominio]
Establece un nombre de dominio para los clientes.
option domain-name-servers [Dirección IP]
Establece que servidores DNS utilizaran los clientes.
default-lease-time [Tiempo en segundos]
Define el tiempo de concesión por defecto.
max-lease-time [Tiempo en segundos]
Tiempo máximo de concesión para un cliente.
one-lease-per-client [on / off]
Si está habilitado, un cliente podrá como máximo, tener una concesión.
server-identifier [Dirección IP]
Lo usaremos para identificar un servidor (no se recomienda su uso).
option subnet-mask [Dirección de Máscara]
Se usa para especificar la máscara de subred que se le enviará al cliente.
option routers [Dirección IP / Nombre]
La opción routers se usa para enviarle al cliente su puerta de enlace.
shared-network [Nombre de ámbito]
Añadiremos esta línea solo en caso de querer hacer subredes, en caso contrario la podemos omitir.
subnet [Dirección IP de red] netmask [Dirección de Máscara]
Con esta declaración definimos la subred de un segmento de red en el que asignaremos direcciones IP de forma dinámica.
option routers [Dirección IP / Nombre ]
La opción routers se usa para enviarle al cliente su puerta de enlace.
option broadcast-address [Dirección IP broadcast]
La opción broadcast-address se utiliza para enviar al cliente la dirección de broadcast de la subred a la que pertenece.
range [Dirección IP comienzo] [Dirección IP fin]
La declaración range se utiliza para especificar el rango de IP que una subred tiene disponible para asignar a sus clientes.
Tras haber configurado nuestro fichero dhcpd.conf reiniciaremos el servicio para aplicar los cambios:
sudo service isc-dhcp-server restart
Podemos ver el estado del servidor con el parámetro status:
sudo service isc-dhcp-server status
Si has seguido el artículo, en este punto tu servidor debería funcionar correctamente y asignar de forma dinámica direcciones IP a los equipos de la red.
En caso de que no funcione, aseguráte de comprobar la conectividad entre clientes y servidor. También puedes comprobar el fichero dhcpd.conf con el siguiente comando, que mostrara por pantalla los posibles errores del fichero dhcpd.conf:
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf