DHCP (significa protocolo de configuración de host dinámico) asigna dinámicamente direcciones IP únicas y otra información a los sistemas cliente. Parte de la información que asigna DHCP incluye el nombre de host, el nombre de dominio, la dirección IP de la puerta de enlace predeterminada y el servidor DNS, etc. Le ahorra al administrador del sistema la molestia de asignar manualmente direcciones IP e información relacionada a cada uno de los sistemas cliente. Por lo general, en la configuración del hogar o de una pequeña empresa, los enrutadores cumplen la función de un servidor DHCP. Sin embargo, en una configuración grande, necesitamos configurar un servidor dedicado para que sirva como servidor DHCP. En Linux, puede configurar fácilmente un servidor DHCP y asignar direcciones IP a los clientes.
En este tutorial, demostraremos cómo configurar DHCP en Linux para asignar automáticamente direcciones IP a los clientes.
Cómo funciona DHCP
Expliquemos un poco cómo funciona DHCP:
Considere un escenario donde el cliente y el servidor DHCP están conectados a la misma red cableada.
- Cuando se enciende una máquina cliente, envía un mensaje de difusión DHCPDISCOVER a todos los dispositivos de la red.
- Cuando este mensaje llega al servidor DHCP, devuelve un DHCPOFFER mensaje con una dirección IP al cliente.
- El cliente luego envía un DHCPREQUEST al servidor DHCP para solicitar esta dirección IP.
- El servidor DHCP luego envía DHCPACK para reconocer la solicitud y concede al cliente una dirección IP.
Requisitos
- Mínimo dos máquinas Linux (para servidor y cliente DHCP)
- Usuario con privilegios sudo
- IP estática configurada en el servidor DHCP
Nota:
Para fines de demostración, hemos utilizado tres máquinas Linux que estaban en la misma LAN. Puede pensar en ellos como si todos estuvieran conectados entre sí a través de un interruptor.
servidor DHCP
Para el servidor DHCP, hemos utilizado:
- Ubuntu 20.04 LTS con IP estática "192.168.9.1" y nombre de host "ubuntu"
Cliente DHCP
Para el cliente DHCP, hemos usado dos máquinas:
- Ubuntu 20.04 con el nombre de host "mypc"
- Mint 20 con el nombre de host "mint"
Instalación del servidor DHCP
Primero, actualice el índice del repositorio del sistema en su sistema. Ejecute el siguiente comando en la Terminal para hacerlo:
$ sudo apt update
Ahora emita el siguiente comando en la Terminal para instalar el servidor DHCP:
$ sudo apt-get install isc-dhcp-server -y
Configuración del servidor DHCP
Antes de configurar un sistema Linux como servidor DHCP, asegúrese de que tenga una dirección IP estática configurada para que los clientes puedan conectarse fácilmente. De lo contrario, será difícil para los clientes encontrar a qué servidor DHCP conectarse.
En el /etc/default/isc-dhcp-server archivo, deberá especificar la interfaz en la que escuchará el servidor DHCP. Ejecute el siguiente comando en la Terminal para editar este archivo:
$ sudo nano /etc/default/isc-dhcp-server
En las INTERFACESv4 e ntry, especifique la interfaz que desea que escuche el servidor DHCP, como ens33, eth0, eth1, etc.
INTERFACESv4="interface_name"
En nuestro escenario, la interfaz es ens33 , por lo que la entrada cambiaría a:
INTERFACESv4="ens33"
Una vez que haya configurado el archivo, guárdelo y ciérrelo.
Ahora configuraremos el servidor DHCP usando su archivo de configuración predeterminado ubicado en /etc/dhcp/dhcpd.conf .
Edite el /etc/dhcp/dhcpd.conf archivo de la siguiente manera:
$ sudo nano /etc/dhcp/dhcpd.conf
Descomente la siguiente línea eliminando el # símbolo anterior.
authoritative;
Además, agregue las siguientes líneas en el archivo:
default-lease-time 600; max-lease-time 7200; # subnet subnet 192.168.9.0 netmask 255.255.255.0 { # range of subnet range 192.168.9.5 192.168.9.15; # gateway address option routers 192.168.9.1; # DNS server address option domain-name-servers 8.8.8.8, 8.8.4.4; }
Una vez que haya configurado el archivo, guárdelo y ciérrelo.
Asigne una dirección IP estática a los clientes desde el servidor DHCP
El servidor DHCP emite direcciones IP dinámicas a los clientes de forma predeterminada. Sin embargo, también puede configurarlo para asignar direcciones IP fijas o estáticas a los clientes. Se requieren direcciones fijas para algunos dispositivos de red como impresoras, enrutadores o cuando necesita conectar un dispositivo de forma remota desde el exterior. Para asignar una dirección IP estática a una máquina específica, necesitará su dirección MAC.
Digamos que queremos asignar un cliente con dirección MAC 00:0c:29:c1:d5:d4 una IP fija 192.168.1.13 cada vez.
Edite el /etc/dhcp/dhcpd.conf archivo y agregue una entrada de host que contenga la dirección MAC del cliente y la dirección IP fija que desea asignar al cliente:
host mint { hardware ethernet 00:0c:29:c1:d5:d4; fixed-address 192.168.9.13; }
Ahora, cada vez que el cliente con la dirección MAC correspondiente (00:0c:29:c1:d5:d4) envíe un mensaje DHCPDISCOVER al servidor DHCP, recibirá la misma dirección IP 192.168.9.13.
Reiniciar el servicio DHCP
Una vez que haya terminado con las configuraciones, reinicie el servicio del servidor DHCP. Ejecute el siguiente comando en la Terminal para hacerlo:
$ sudo systemctl restart isc-dhcp-server.service
Ahora verifique el estado del servidor DHCP usando el siguiente comando:
$ sudo systemctl status isc-dhcp-server.service
El siguiente resultado muestra que el servicio DHCP está activo y funcionando correctamente sin ningún error.
Configuración del cliente DHCP
Ahora configuraremos dos máquinas cliente. A un cliente se le asignará una IP aleatoria del rango de subred definido en el archivo de configuración. Al otro cliente se le asignará la IP estática.
De forma predeterminada, el direccionamiento IP dinámico está configurado en el sistema operativo Ubuntu. Sin embargo, si está utilizando la dirección IP estática, puede configurarlo para obtener una dirección IP del servidor DHCP.
Cliente 1:obtenga la dirección IP dinámica del servidor DHCP
Primero, encuentre el nombre de su interfaz de red usando el siguiente comando:
$ ifconfig
Una vez que haya encontrado el nombre de la interfaz, emita el siguiente comando en la Terminal para configurar la interfaz de red:
$ sudo nano /etc/network/interfaces
Inserte las siguientes líneas en el archivo:
auto <interface_name> iface <interface_name>inet dhcp
En nuestro caso sería:
auto ens33 iface ens33 inet dhcp
Guarde y cierre el archivo y reinicie el servicio del administrador de red usando el siguiente comando en la Terminal:
$ sudo systemctl restart network-manager.service
Ahora ejecute el comando ifconfig para verificar la dirección IP de su cliente.
$ ifconfig
Puede ver en el siguiente resultado que el cliente ha recibido la dirección IP 192.168.9.5 que es del rango de subred definido en la configuración del servidor DHCP.
Para encontrar la dirección IP del servidor DHCP, emita el siguiente comando en la Terminal:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Desde la salida, puede verificar que la dirección IP está asignada por 192.168.9.1, que es la dirección IP de nuestro servidor DHCP.
En caso de que la máquina cliente no obtenga una dirección IP del servidor DHCP, utilice los siguientes comandos para liberar/renovar la dirección IP:
$ sudo dhclient -r
$ sudo dhclient -v
Ahora ejecute ifconfig comando para verificar la dirección IP del cliente. Esta vez, con suerte, el cliente recibirá la dirección IP del servidor DHCP.
Cliente 2:obtenga la dirección IP estática del servidor DHCP
Para nuestra segunda máquina cliente, hemos agregado la entrada de dirección IP estática/fija en el archivo de configuración del servidor DHCP. En la máquina cliente, primero configure la interfaz para adquirir la dirección IP del servidor DHCP.
Encuentre el nombre de su interfaz de red usando el siguiente comando:
$ ifconfig
Una vez que haya encontrado el nombre de la interfaz, emita el siguiente comando en la Terminal para configurar la interfaz de red:
$ sudo nano /etc/network/interfaces
Inserte las siguientes líneas en el archivo:
auto <interface_name>
iface <interface_name>inet dhcp
En nuestro caso sería:
auto ens33
iface ens33 inet dhcp
Ahora guarde y cierre el archivo y reinicie el servicio del administrador de red usando el siguiente comando en la Terminal:
$ sudo systemctl restart network-manager.service
Ahora ejecute el comando ifconfig para verificar la dirección IP de su cliente.
$ ifconfig
Puede ver en el siguiente resultado que el cliente ha recibido la dirección IP fija 192.168.9.13 del servidor DHCP. Esta es la misma dirección IP fija que hemos agregado en el archivo de configuración de DHCP.
Para encontrar la dirección IP del servidor DHCP, emita el siguiente comando en la Terminal:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Desde la salida, puede verificar que las direcciones IP están asignadas por 192.168.9.1, que es nuestro servidor DHCP.
En caso de que la máquina cliente no obtenga una dirección IP del servidor DHCP, utilice los siguientes comandos para liberar/renovar la dirección IP:
$ sudo dhclient –r -v
$ sudo dhclient -v
Ahora ejecute ifconfig comando para verificar la dirección IP del cliente. Esta vez, con suerte, el cliente recibirá la dirección IP del servidor DHCP.
Ver direcciones IP asignadas por servidor DHCP
Desde el servidor DHCP también se pueden verificar las direcciones dinámicas asignadas por éste a los clientes.
En la máquina del servidor DHCP, ejecute el siguiente comando en la Terminal para enumerar las direcciones asignadas por el servidor DHCP:
$ dhcp-lease-list
En el siguiente resultado, verá solo las direcciones IP asignadas dinámicamente por el servidor DHCP a un cliente. Recuerde, no enumerará las direcciones IP estáticas emitidas por el servidor DHCP.
En este artículo, ha aprendido a instalar y configurar el servidor DHCP en el sistema Linux y asignar direcciones IP dinámicas y fijas a los clientes. Solo se necesitan unos pocos pasos para configurar el servidor DHCP en una máquina Linux. Una vez que lo haya configurado, asignará automáticamente las direcciones IP asignadas y la información relacionada a cada máquina en la red.