Saltar al contenido principal

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

InstalarDHCP|10

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

InstalarDHCP|10 Para comprobar la configuración y aplicarla, utilizamos el siguiente comando:

sudo netplan apply
CUIDADO

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

InstalarDHCP|10

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

InstalarDHCP|10

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