Skip to content

Configuración de un servidor y un cliente DHCP con Docker: Guía completa

En esta guía, explicaremos el proceso de configuración de un servidor y un cliente DHCP (Protocolo de Configuración Dinámica de Host) mediante contenedores Docker. Esta configuración es útil para aprender sobre DHCP, probar configuraciones de red o simular entornos de red.

Prerequisitos

  • Docker instalado en su sistema.
  • Conocimientos básicos de Docker y conceptos de redes.

Parte 1: Configuración del servidor DHCP

Paso 1: Extraer la imagen Docker de ubuntu

Usaremos la imagen de ubuntu Linux tanto para nuestro servidor como para nuestro cliente DHCP debido a su pequeño tamaño y simplicidad.

bash
docker pull ubuntu:latest

Paso 2: Creación de una red aislada

Para mantener nuestro entorno DHCP separado de la red de su máquina host, crearemos una red Docker dedicada.

bash
docker network create dhcp-net

Paso 3: Ejecutar el contenedor DHCP Server

Ahora, creemos y ejecutemos nuestro contenedor de servidor DHCP:

bash
docker run --name server --network dhcp-net --cap-add=NET_ADMIN -it --expose 67 ubuntu:latest

Nota: --cap-add=NET_ADMIN sirve para darle al contenedor privilegios de administración de red, que normalmente están bloqueados por seguridad. Linux usa un sistema de capabilities (capacidades) para dividir los privilegios de root.

NET_ADMIN habilita operaciones de red avanzadas.

Paso 4: Instalar en software del DHCP Server

Acceder al contenedor del servidor:

bash
docker exec -it server /bin/bash

Dentro del contenedor del servidor, instale el paquete del servidor DHCP y algunas herramientas útiles:

bash
apt update
apt install isc-dhcp-server nano

Paso 5: Recopilar información de la red

Para configurar correctamente nuestro servidor DHCP, necesitamos conocer los detalles de la red. Abra una nueva terminal y ejecute este comando en su equipo host (fuera del contenedor):

bash
docker network inspect dhcp-net

Busque la información de "Subred" y "Puerta de enlace" en el resultado. La necesitará para el siguiente paso.

Paso 6: Configurar el DHCP Server

Dentro del contenedor del servidor de nuevo, navegue hasta el directorio de configuración DHCP y edite el archivo de configuración:

bash
cd /etc/dhcp
nano dhcpd.conf

Agregue la siguiente configuración, reemplazando la subred y la IP del enrutador con los valores de Subred y Puerta de enlace respectivamente que encontró en el Paso 5:

bash
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 172.18.0.0 netmask 255.255.255.0 {
  range 172.18.0.100 172.18.0.200;
  option routers 172.18.0.1;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Esta configuración:

  • Establece el tiempo de concesión predeterminado en 10 minutos (600 segundos).
  • Establece el tiempo de concesión máximo en 2 horas (7200 segundos).
  • Define la subred y el rango de IP para los clientes DHCP.
  • Especifica la puerta de enlace predeterminada (enrutador) y los servidores DNS.

Paso 7: Iniciar el DHCP Server

Aún dentro del contenedor del servidor, inicie el servidor DHCP:

bash
service isc-dhcp-server restart

Debería ver un resultado que indique que el servidor se ha iniciado correctamente.

Parte 2: Configurando el cliente DHCP

Paso 1: Crear el contenedor del cliente

Abra una nueva ventana de terminal y cree un contenedor de cliente:

bash
docker run --name client1 -it --network dhcp-net --cap-add=NET_ADMIN ubuntu:latest

Paso 2: Instalación del software del cliente DHCP

Dentro del contenedor del cliente, instale el cliente DHCP:

bash
apt update
apt install isc-dhcp-client

Paso 3: Liberar la dirección IP actual

Compruebe la dirección IP actual:

bash
ip a

Verás que Docker ha asignado una dirección IP. Necesitamos liberarla para probar nuestro servidor DHCP:

bash
ip addr flush dev eth0

Verifique que la dirección IP haya sido eliminada:

bash
ip a

Paso 4: Solicitar una IP del servidor DHCP

Ahora, solicitemos una dirección IP de nuestro servidor DHCP:

bash
dhclient -v

Paso 5: Verifycar la nueva dirección IP

Comprueba la nueva dirección IP

bash
ip a

Debería ver una dirección IP en el rango que especificamos en la configuración del servidor DHCP (172.18.0.100 - 172.18.0.200).

Conclusión

¡Felicitaciones! Ha configurado correctamente un servidor y un cliente DHCP con contenedores Docker. Esta configuración demuestra cómo funciona DHCP en un entorno controlado. Puede ampliarla añadiendo más clientes o modificando la configuración de DHCP para explorar diferentes escenarios.

Recuerda limpiar tus recursos de Docker cuando hayas terminado:

bash
docker stop server client1
docker rm server client1
docker network rm dhcp-net

Esta guía proporciona una base para comprender DHCP en entornos de contenedores. Experimente y aprenda más sobre la configuración y administración de red con esta configuración.

Publicado bajo la licencia MIT.