Page cover

DHCP con Ubuntu

El servicio por defecto de Ubuntu para el dhcp es el isc-dhcp-server que vamos a utilizar en la práctica.

Vamos a montar una práctica donde dos máquinas virtuales, una servidor y otra cliente se den servicio de DHCP la una a la otra.

Requisitos previos

  • Dos MV:

    • Una con Ubuntu Desktop 22.04 y un adaptador de red:

      • red NAT sin DHCP

    • Otra con Sistema operativo cliente y un adaptador de red:

      • Red interna

Actualizar e instalar paquetes

Actualizamos los repositorios de nuestro sistema:

sudo apt update

Una vez hecho esto, procedemos a instalar el paquete isc-dhcp-server:

sudo apt install isc-dhcp-server

En caso de error prueba con un sudo apt upgrade

Configurar DHCP

Planificaremos para nuestra configuración una máquina Ubuntu server con la siguiente información:

Primero revisemos que adaptadores de red tenemos disponibles en nuestra MV, aparecen tres:

  • lo: dirección de loopback 127.0.0.1/8

  • enp0s3: actualmente asignado mediante red NAT pero lo cambiaremos a IP fija.

Configuración de servicio DHCP

Edita el archivo de configuración de la interfaz de red en /etc/default/isc-dhcp-server para especificar en qué interfaz debe escuchar el servidor DHCP. Abre el archivo en un editor de texto:

Asegúrate de que la línea INTERFACESv4 esté configurada para la interfaz que estás utilizando. Por ejemplo:

Configuración de una red en DHCP

La información antes mencionada la dispondremos dentro de los archivos de configuración del servicio, para editar el fichero de configuración de nuestro servidor DHCP:

Antes de editar el archivo procedemos a realizar una copia de seguridad:

Para luego editar el archivo con nano:

Una vez dentro lo escribiremos de tal forma:

Si quiere asegurarte que el archivo de configuración del servidor DHCP (/etc/dhcp/dhcpd.conf) está correctamente configurado y sin errores de sintaxis puedes verificar la sintaxis del archivo con el siguiente comando:

Configuración de varias subredes

El Objetivo ahora es configurar el servidor DHCP para manejar múltiples subredes, útil en redes grandes con diferentes segmentos, para ello seguiremos los mismos pasos que antes pero modificaremos el archivo /etc/dhcp/dhcpd.conf

En el archivo /etc/dhcp/dhcpd.conf, agrega configuraciones para varias subredes:

Ahora debemos configurar un DHCP Relay para reenviar solicitudes DHCP entre subredes cuando el servidor DHCP no está en la misma red que los clientes.

  1. Instala el servicio de retransmisión:

  2. Configura el archivo /etc/default/isc-dhcp-relay con la dirección del servidor DHCP y las interfaces que se usarán para reenviar las solicitudes:

  3. Reinicia el servicio y verifica que las solicitudes DHCP se reenvíen al servidor apropiado desde otra subred.

🚧 Configuración de un servidor DHCP failover (alta disponibilidad)

Vamos a mirar que en caso de fallo de servidor, tener un entorno de alta disponibilidad para DHCP, con dos servidores que puedan operar en modo activo/pasivo.

Primero vayamos a simular la caída del servidor DHCP y luego recuperarlo sin interrumpir a los clientes que ya han recibido una IP:

  1. Apaga el servidor DHCP temporalmente:

  2. Monitoreamos el comportamiento de los clientes que intentan renovar su IP durante el tiempo de arrendamiento.

  3. Reactiva el servidor y verifica que los clientes puedan renovar correctamente sus direcciones IP:

  4. Ahora sí, configuremos el archivo /etc/dhcp/dhcpd.conf en ambos servidores para establecer el modo failover, este código lo pondremos en nuestro servidor primario:

  5. Configura el segundo servidor como secundario con las configuraciones que hemos visto en anteriores puntos.

  6. Verifica que ambos servidores puedan compartir el estado de los clientes DHCP simulando el entorno de nuevo.

Revisar servicios de red

Reinicia el servicio DHCP para aplicar los cambios:

Para asegurarte de que el servicio DHCP se inicie automáticamente al arrancar, ejecuta el siguiente comando:

Además, podemos ver en el servidor si el cliente tiene una dirección DHCP. Esto lo podemos ver en en el archivo de "arrendamientos":

Creación de rangos de exclusiones

Los rangos de exclusión son útiles para, literalmente, excluir IPs de ser ofrecidas, bien por que nos interesa asociarlas a otros dispositivos o bien por que queremos asignarlos a otros pools.

Para hacerlo deberás añadir en el dhcpd.conf mediante pool:

Última actualización