Mi Blog
👉 Cómo instalar y configurar un servidor DHCP en GNU/Linux

Cómo instalar y configurar un servidor DHCP en GNU/Linux

 
(3 votos)

Instalar y configurar un servidor de DHCP es sumamente sencillo gracias al software de ISC. Controlar y configurar las direcciones de nuestra red es muy importante para tener un orden dentro de la red y un correcto funcionamiento.

Seguid leyendo y os enseñaré a instalar y configurar un servidor de DHCP para vuestra red...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES DHCP?

El DHCP es una extensión del protocolo Bootstrap (BOOTP) desarrollado en 1985 para conectar dispositivos como terminales y estaciones de trabajo sin disco duro con un Bootserver, del cual reciben su sistema operativo. El DHCP se desarrolló como solución para redes de gran envergadura y ordenadores portátiles y por ello complementa a BOOTP, entre otras cosas, por su capacidad para asignar automáticamente direcciones de red reutilizables y por la existencia de posibilidades de configuración adicionales.

Tras unas primeras definiciones del protocolo en 1993 en los RFC 1531 y 1541, su especificación definitiva llegó en 1997 con el RFC 2131. La IANA (Internet Assigned Numbers Authority) provee al protocolo de los puertos UDP67 y UDP68 (para IPv6, los puertos 546 y 547), también reservados para el protocolo Bootstrap.

La asignación de direcciones con DHCP se basa en un modelo cliente-servidor: el terminal que quiere conectarse solicita la configuración IP a un servidor DHCP que, por su parte, recurre a una base de datos que contiene los parámetros de red asignables. Este servidor, componente de cualquier router ADSL moderno, puede asignar los siguientes parámetros al cliente con ayuda de la información de su base de datos:

  • Dirección IP única
  • Máscara de subred
  • Puerta de enlace estándar
  • Servidores DNS
  • Configuración proxy por WPAD (Web Proxy Auto-Discovery Protocol)

 

 

ISC DHCP es el principal y más famoso servidor de DHCP de GNU/Linux

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Equipo con GNU/Linux, Debian 9 o superior y/o similar.
  • Conexión a Internet (recomendado)
  • Otro equipo para hacer de cliente del servidor de DHCP

 

 

2.- ESQUEMA DE RED

Para este tutorial, utilizaremos una red muy sencilla siguiendo el siguiente esquema de red o similar. En el servidor la tarjeta enp0s3 será la que se conecta con el router de Internet y la enp0s8 la que escuchará en la red local para servir las direcciones IPs:

Servidor DHCP ISCEsquema de red

 

 

3.- INSTALAR EL SERVIDOR ISC DHCP

Para instalar el servidor de DHCP utilizaremos el siguiente comando si estamos utilizando un GNU/Linux basado en Debian. En otras distribuciones el comando será muy similar:

raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-get install isc-dhcp-server

 

 

Es posible que al instalar el servidor e intentar arrancarlo de error. No debemos preocuparnos, debemos configurarlo correctamente siguiendo los pasos en los siguientes apartados.

 

 

 

 

4.- INTERFAZ DE RED DEL SERVIDOR ISC DHCP

Lo primero que debemos hacer es configurar la interfaz donde escuchará el servidor de DHCP. En nuestro caso tenemos 2 interfaces de red, enp0s3 que está conectada al router de Internet y enp0s8 que será la que asigne IPs por DHCP. Para encontrar las interfaces de red que tiene el equipo, ejecutaremos el siguiente comando:

raul@debian:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:14:2b:4c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.90/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 42704sec preferred_lft 42704sec
inet6 fe80::a00:27ff:fe14:2b4c/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:c7:7b:5b brd ff:ff:ff:ff:ff:ff
inet 172.27.1.1/24 brd 172.27.1.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec7:7b5b/64 scope link
valid_lft forever preferred_lft foreve

 

 

Una vez que tenemos identificada la interfaz de red donde escuchará el servidor de DHCP, debemos editar el siguiente fichero:

raul@debian:~$ sudo nano /etc/default/isc-dhcp-server

 

 

Y añadir la interfaz de red en la línea siguiente:

INTERFACESv4="enp0s8"

 

 

5.- CONFIGURACIÓN BÁSICA DEL SERVIDOR ISC DHCP

Si queremos realizar una configuración básica pero totalmente funcional, debemos editar el fichero /etc/dhcp/dhcpd.conf y añadir el siguiente contenido:

# Opciones Generales
option domain-name "midominio.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;

# Configuración Red Local
subnet 172.27.1.0 netmask 255.255.255.0 {
range 172.27.1.100 172.27.1.254;
option domain-name-servers 8.8.8.8,8.8.4.4;
option routers 172.27.1.1;
default-lease-time 600;
max-lease-time 7200;
}

 

 

Explicación de cada una de las opciones del fichero de configuración:

  • option domain-name: Nombre del dominio en caso de existir
  • option domain-name-servers: Direcciones IPs de los servidores de DNS
  • default-lease-time: tiempo de concesión de una IP por defecto
  • max-lease-time: máximo tiempo de concesión de una IP
  • ddns-update-style none: el servidor DHCP hará actualizaciones DNS del nombre del cliente
  • authoritative: servidor autoritario en la red
  • subnet: subred dentro de un rango de red
  • range: rango de red disponible para entregar IPs
  • option routers: puerta de enlace

 

 

Una vez que hemos hecho los cambios en el fichero principal de configuración, reiniciaremos el servidor de DHCP con el siguiente comando:

raul@debian:~$ sudo  systemctl restart isc-dhcp-server

 

 

Para comprobar el estado del servidor, ejecutaremos este otro comando:

raul@debian:~$ systemctl status isc-dhcp-server

 

 

Podemos comprobar que el servidor de DHCP se encuentra en estado correcto active (running):

* isc-dhcp-server.service - LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Active: active (running) since Sun 2023-02-05 14:07:32 CET; 35s ago
Docs: man:systemd-sysv-generator(8)
Process: 502 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 526)
Memory: 6.8M
CPU: 79ms
CGroup: /system.slice/isc-dhcp-server.service
`-522 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf enp0s8

Feb 05 14:07:29 debian systemd[1]: Starting LSB: DHCP server...
Feb 05 14:07:29 debian isc-dhcp-server[502]: Launching IPv4 server only.
Feb 05 14:07:30 debian dhcpd[522]: Wrote 0 deleted host decls to leases file.
Feb 05 14:07:30 debian dhcpd[522]: Wrote 0 new dynamic host decls to leases file.
Feb 05 14:07:30 debian dhcpd[522]: Wrote 0 leases to leases file.
Feb 05 14:07:30 debian dhcpd[522]: Server starting service.
Feb 05 14:07:32 debian isc-dhcp-server[502]: Starting ISC DHCPv4 server: dhcpd.
Feb 05 14:07:32 debian systemd[1]: Started LSB: DHCP server.

 

 

6.- CONFIGURACIÓN AVANZADA Y RESERVA DE IPs

A continuación realizaremos una configuración un poco más avanzada donde crearemos 3 pools (grupos) de IPs:

  • Pool IPs estáticas: 172.27.1.1 - 172.27.1.99
  • Pool IPs dinámicas: 172.27.1.100 - 172.27.1.200
  • Pool IPs dinámicas reservadas: 172.27.1.201 - 172.27.1.254

 

 

Las IPs estáticas están reservadas para equipos en los cuales se configurarán de manera manual, las IPs dinámicas serán IPs asignadas de forma totalmente dinámica y las IPs reservadas serán IPs fijas pero entregadas por el servidor DHCP a dispositivos concretos. La configuración que debemos hacer es la siguiente: 

# Opciones Generales
option domain-name "midominio.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
ddns-update-style none;
authoritative;

# Configuración Red Local
subnet 172.27.1.0 netmask 255.255.255.0 {
option domain-name-servers 8.8.8.8,8.8.4.4;
option routers 172.27.1.1;
default-lease-time 600;
max-lease-time 7200;

pool {
range 172.27.1.100 172.27.1.200;
}

pool {
range 172.27.1.201 172.27.1.250;
host debian1 {
hardware ethernet 08:00:27:58:a8:d8;
fixed-address 172.27.1.201;
}
host debian2 {
hardware ethernet 08:00:27:59:a9:d3;
fixed-address 172.27.1.202;
}
}
}

 

 

Por ejemplo, para comprobar si el equipo con la MAC 08:00:27:59:a9:d3 está obteniendo bien su IP (172.27.1.202) ejecutaremos el siguiente comando y veremos si tienen la IP bien asignada:

raul@debian2:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:59:a9:d3 brd ff:ff:ff:ff:ff:ff
inet 172.27.1.202/24 brd 172.27.1.255 scope global dynamic enp0s3
valid_lft 418sec preferred_lft 418sec
inet6 fe80::a00:27ff:fe59:a9d3/64 scope link
valid_lft forever preferred_lft forever

 

 

7.- ISC DHCP EOL

ISC DHCP ha llegado a su fin de vida, conocido como EOL (End of Life) según su web oficial. Al ser software libre, no tardará mucho tiempo en que salga un nuevo software basado en ISC DHCP y mantenido por otros desarrolladores:

ISC has announced the end of life for ISC DHCP as of the end of 2022.

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.