En este tutorial, configuramos nuestro propio servidor DHCP en Ubuntu. El Protocolo de configuración dinámica de Host (DHCP) es un servicio de red para asignar automáticamente direcciones IP a los clientes de una red. Sigue una arquitectura servidor-cliente en la que el cliente solicita a un servidor DHCP que obtenga una dirección IP. La mayoría de los routers tienen un servidor DHCP incorporado, pero también podemos usar nuestro propio servidor DHCP.
Tabla de Contenidos
- ¿Cómo funciona DHCP?
- Métodos de asignación para DHCP
- Pasos para configurar un Servidor DHCP en Ubuntu
- 1. Instalar servidor DHCP
- 2. Configurar el servidor DHPC
- Copia de seguridad del archivo de configuración original
- Crear y editar el nuevo archivo de configuración
- Asignar direcciones IP aleatorias de un grupo
- Asignar una dirección IP estática a un cliente
- 3. Enlazar el servidor DHCP a una interfaz
- 4. Reinicie el servidor DHCP
- 5. Compruebe el estado del servidor DHCP
- Solución de problemas
- Conclusión
¿Cómo funciona DHCP?
Cuando la computadora arranca, no tiene una dirección IP (Suponiendo que no tenga configurada una dirección IP estática, que la mayoría de las máquinas no tienen). Envía una transmisión (en la dirección MAC con todas las F) llamada DHCP Discover. Los servidores DHCP están diseñados para responder a dichas transmisiones.
A continuación, envían tráfico unicast conocido como Oferta DHCP al cliente solicitante. Esta oferta DHCP normalmente contiene la Dirección IP asignada, la Dirección IP de la Puerta de enlace Predeterminada y la dirección IP del Servidor DNS.
El cliente al recibir la Oferta envía una Solicitud DHCP al Servidor DHCP reconociendo que ha aceptado la información que le ha proporcionado el servidor.
Los servidores DHCP mantienen un registro de las direcciones IP asignadas para evitar asignaciones dobles o colisiones de direcciones IP.
Dado que los servidores DHCP responden a la transmisión, deben estar presentes en la red local y no debe haber más de 1 servidor DHCP en una red local.
Métodos de asignación para DHCP
A continuación se presentan los dos métodos de asignación para un servidor DHCP:
- Manual: En este método, la dirección IP se da sobre la base de la dirección MAC. Esto garantiza que una máquina en particular obtenga una dirección IP fija, ya que su dirección IP se vincula a su dirección MAC. El servidor DHCP envía una configuración constante al cliente en función de su dirección MAC en este tipo de asignación.
- Automático: En este método, el servidor DHCP asigna automáticamente las direcciones IP por orden de llegada de un grupo de direcciones. Se puede dividir en dos categorías según el Tiempo de arrendamiento, el tiempo durante el cual se asigna una dirección IP a un cliente.
- Tiempo de arrendamiento fijo: Cuando un cliente DHCP ya no está en la red durante un período especificado, la configuración caduca y se devuelve al grupo de direcciones para que la usen otros clientes DHCP. El cliente tiene que renegociar para mantener la dirección IP anterior.
- Tiempo de arrendamiento infinito: Esto tiene el efecto de asignar permanentemente una dirección IP a un cliente.
Pasos para configurar un Servidor DHCP en Ubuntu
Ahora vamos a ver cómo configurar un Servidor DHCP en Ubuntu.
1. Instalar servidor DHCP
Puede instalar el servidor DHCP utilizando el comando apt de la siguiente manera:
sudo apt install isc-dhcp-server
Nota: Puede instalar un servidor DHCP incluso en una edición de escritorio en lugar de la edición de servidor de Ubuntu. Consulte esta respuesta de StackOverflow para ver cómo las ediciones de escritorio y servidor son diferentes/similares.
2. Configurar el servidor DHPC
El archivo de configuración principal del servidor DHCP ISC es /etc/dhcp/dhcpd.conf
.
Copia de seguridad del archivo de configuración original
Siempre es una buena idea hacer copias de seguridad de los archivos de configuración originales. En caso de que algo salga mal, la configuración original se puede restaurar fácilmente. Puede usar el comando cp o el comando mv para crear una copia de seguridad.
sudo mv /etc/dhcp/dhcpd.conf{,.backup}#Expands to sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
El comando anterior crea un archivo dhcpd.conf.backup
utilizando la función de expansión {}
de bash.
Crear y editar el nuevo archivo de configuración
Puede utilizar el editor de su elección. Usaré el nano editor:
sudo nano /etc/dhcp/dhcpd.conf
Las opciones del archivo de configuración dependen de la complejidad de la red.
Asignar direcciones IP aleatorias de un grupo
Lo más común que hace un servidor DHCP es asignar direcciones aleatoriamente. Los ajustes para el mismo serían los siguientes:
# a simple /etc/dhcp/dhcpd.confdefault-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2;#option domain-name "mydomain.example";}
De acuerdo con esta configuración:
- El tiempo de arrendamiento predeterminado para un cliente es de 10 minutos(600 segundos) y el tiempo máximo de arrendamiento es de 2 horas(7200 segundos).
- Este servidor DHCP es el servidor oficial de la red local. (indicado por
authoritative
). - El Servidor entregará la dirección IP del rango 192.168.1.100 a 192.168.1.200.
- El servidor también «aconsejará» al cliente que use 192.168.1.254 como puerta de enlace predeterminada y 192.168.1.1 y 192.168.1.2 como sus servidores DNS.
también puede incluir un nombre de dominio.
Asignar una dirección IP estática a un cliente
Para garantizar que un cliente en particular siempre obtenga la misma dirección IP, el Servidor DHCP necesitará la Dirección MAC de ese cliente. Este sería el modo de asignación Manual del que se habló anteriormente en este artículo.
Para obtener la dirección MAC de un cliente, podemos usar el comando ip en la máquina cliente:
ip a
(Deberá seleccionar la dirección MAC de la interfaz desde la que planea conectarse a la red. He elegido el inalámbrico.)
Ahora que tenemos la dirección MAC, podemos ponerla en el archivo de configuración:
host archmachine {hardware ethernet e0:91:53:31:af:ab;fixed-address 192.168.1.20;}
Esto reservará la Dirección IP 192.168.1.20 para el cliente con la Dirección MAC e0:91:53:31:af:ab
.
Finalmente, el archivo de configuración se ve así:
Puede omitir la parte de Configuración de IP estática si desea asignar direcciones automáticamente.
3. Enlazar el servidor DHCP a una interfaz
El servidor DHCP puede tener muchas interfaces. Es necesario definir la interfaz que debe escuchar. Puede ver las interfaces en el servidor usando ip a
igual que el cliente.
La interfaz con la que enlazar se define en el archivo /etc/default/isc-dhcp-server
. Ábrelo usando el editor de tu elección. La interfaz de mi servidor es eth0
. Puede ser diferente para su servidor. Editar el archivo como:
INTERFACESv4="eth0"
4. Reinicie el servidor DHCP
Ahora que se han realizado cambios en la configuración, necesitamos reiniciar el servicio para habilitar esos cambios. Para ello usaremos el comando systemctl
:
sudo systemctl restart isc-dhcp-server.service
5. Compruebe el estado del servidor DHCP
Esto se puede hacer de nuevo utilizando el comando systemctl
:
sudo systemctl status isc-dhcp-server.service
Un estado activo indica que el servidor DHCP ha recogido correctamente la configuración y está listo para entregar direcciones IP.
Solución de problemas
El servidor DHCP escribe sus registros en el Syslog. Si encuentra que el estado del servicio está inactivo, debe buscar en el archivo /var/log/syslog
. A partir de ahí, puede buscar el problema específico mencionado en el Syslog en Internet.
Conclusión
En este artículo, aprendimos sobre DHCP y cómo instalar un servidor DHCP en una máquina Ubuntu. Tener un servidor DHCP automatiza la asignación de Direcciones IP, lo que es mucho mejor que la configuración manual de cada cliente.