Instalación de un servidor DHCP

Antes de instalar servidor DHCP, vamos a definir el problema y la solución adoptada. De esta forma, será más fácil comprender los pasos realizados y adaptarlos a cualquier instalación de un servidor DHCP que necesitemos hacer en entornos Linux.

Se nos solicita la instalación de un servicio DHCP en una distribución Linux. En nuestro caso usaremos Ubuntu, aunque la configuración es válida para otras distribuciones. La red dispondrá de un servidor Ubuntu y dos clientes uno Linux y otro Windows.

Utilizamos un entorno de prueba virtualizado con el software gratuito VirtualBox, para realizar la instalación del servidor y los clientes.

Aunque en nuestro caso, hemos hecho la instalación sobre máquinas virtuales. Los pasos de instalación del servidor DHCP pueden realizarse directamente sobre un equipo con distribución Linux instalada (Ubuntu, Debian…)

Si queremos hacer pruebas virtualizando, podemos familiarizarnos con la instalación de máquinas virtuales viendo el siguiente video:

Pasos previos a la configuración del servicio DHCP

Una vez instaladas las máquinas virtuales que vamos a necesitar, tenemos que pensar en la configuración de la red. En este caso, va a ser la siguiente:

configuración de la red, servidor DHCP

En mi caso estoy trabajando en un portátil conectado a Internet por Wifi. Dada la dificultad de configurar una conexión wifi en VirtualBox, se decide usar dos adaptadores de red en el servidor: NAT para la conexión a Internet y adaptador puente para simular la red local.

Nat es una forma que tiene Virtualbox de simular una red virtual, aunque toma el acceso a Internet del equipo principal, esta red no es visible por otros equipos. Por su parte, el adaptador puente si nos va a hacer visibles a cualquier equipo de nuestra red.

Por otra parte, la configuración del cliente estará en adaptador puente.

Para lograr dar acceso a Internet al equipo cliente, tendremos que conectar con el servidor a través de la red local. Por su parte, el servidor tendrá que redireccionar las peticiones recibidas a través de la red local a Internet, redireccionado el tráfico recibido al adaptador conectado en NAT.

configurar VirtualBox Nat y adaptador puente
Como podemos observar, el equipo Ubuntu Servidor, actúa de puente entre nuestra conexión a internet (NAT) y la red local virtualizada. Por su parte la máquina virtual mantiene conectada la red virtual NAT con la conexión local inalámbrica de mi portatil, que es la que realmente dispone de acceso a Internet a través del router de Telefónica.

La red local será 192.168.3.0/24, el servidor tendrá la Ip 192.168.3.1, reservamos desde la 192.168.3.2 a la 192.168.3.49 para IPs fijas y el servidor DHCP dará IPs entre 192.168.3.50 y 192.168.3.254.

Nombrar los equipos y establecer el dominio

Vamos a cambiar en nombre del equipo y vamos a poner servidor, además vamos a situarlo dentro del domino asirfp.

Para ello, abrimos el terminal y nos conectamos como usuario root.
Escribimos nano /etc/hostname

servidor

nano /etc/hosts

127.0.0.1           localhost
127.0.1.1            servidor.asirfp     servidor
192.168.3.1       servidor.asirfp servidor
# Las siguientes líneas son usadas para configurar hosts con capacidad IPv6.
::1     ip6-localhost ip6-loopback
fe00::0  ip6-localnet
ff00::0  ip6-mcastprefix
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

editar archivo hosts en Ubuntu

Posteriormente, podemos cambiar el nombre de las interfaces a eth0 y eth1.

Para que los cambios se hagan efectivos, reiniciamos:

reboot

Realizar la configuración IP del servidor DHCP

Vamos a establecer la dirección IP fija 192.168.3.1 para la interfaz eth1 del servidor DHCP y IP dinámica para la tarjeta de red eth0.
Para ello, nos conectamos como root y escribimos nano /etc/network/interfaces

#Interfaz loopback
auto lo
iface lo inet loopback 

#Interfaz ETH0
auto eth0 
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
broadcast 192.168.2.255

#Interfaz ETH1 
auto eth1 
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255

#Interfaz enp0s3
#auto enp0s3
#iface enp0s3 inet static
#address 192.168.2.2
#netmask 255.255.255.0
#gateway 192.168.2.1
#broadcast 192.168.2.255

#Interfaz enp0s8 
#auto enp0s8 
#iface enp0s8 inet static
#address 192.168.3.1
#netmask 255.255.255.0
#network 192.168.3.0
#broadcast 192.168.3.255

Es muy importante tener en cuenta el nombre de la interfaz, lo podemos ver con el comando:

ifconfig

Si no hemos cambiado los nombres, en Ubuntu tendremos que poner enp0s3 donde pone eth0 y enp0s8 donde pone eth1.

#Interfaz loopback
auto lo
iface lo inet loopback 

#Interfaz enp0s3
auto enp0s3
iface enp0s3 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
broadcast 192.168.2.255

#Interfaz enp0s8
auto enp0s8 
iface enp0s8 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255

Para que los cambios sean efectivos, reiniciamos el servicio:

/etc/init.d/networking restart

Redirección de las peticiones de los clientes

Tenemos que redirigir las peticiones que los clientes envían a eth1 a eth0 para proporcionarles conexión a Internet. Para ello usamos las Iptables, escribimos los siguientes comandos en consola:

iptables -F
iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT

IMPORTANTE: Recuerda que si has decidido no cambiar el nombre de las interfaces de red, tendrás que modificar eth0 por el nombre de la tarjeta conectada a NAT y eht1 por el nombre de la interfaz conectada como adaptador puente.

Las iptables se borran al reiniciar el servidor, por lo que necesitamos crear un script de inicio que los ejecute.

Instalación del servicio DHCP

Finalizada la configuración inicial, procedemos a instalar el servicio DHCP.
Abrimos la consola, nos conectamos como superusuario y escribimos los siguientes comandos:

apt update
apt upgrade
apt install isc-dhcp-server

Configuración del servidor DHCP

Finalizada la instalación del servicio, procedemos a configurar el servidor DHCP.

Para ello, editamos /etc/dhcp/dhcpd.conf

nano /etc/dhcp/dhcpd.conf
subnet 192.168.3.0 netmask 255.255.255.0 { # Red para la que se crea el servicio
     range 192.168.3.50 192.168.3.254; # Rango de direcciones que va a asignar el servidor
     option domain-name-servers 192.168.3.1, 1.0.0.1; #IP del servidor/es DNS 
     option domain-name "asirfp"; # Nombre del dominio
     option routers 192.168.3.1; # Puerta de enlace
     option broadcast-address 192.168.3.255; #Dirección de broadcast
     default-lease-time 600; # Tiempo de alquiler por defecto
     max-lease-time 7200; # Tiempo máximo de alquiler
}

Para finalizar, reiniciamos el servicio DHCP:

/etc/init.d/isc-dhcp-server restart

Ya tenemos nuestro servidor DHCP operativo, ahora tenemos que probar que los clientes obtienen la IP de forma dinámica.

Comprobar funcionamiento del servidor DHCP

El servidor DHCP se encarga de dar direcciones IPs a los equipos que se conectan a la red. Para obtener la IPs, los equipos que se encuentran configurados para obtener la Ip de forma dinámica, lanzan a la red un DHCP Discovery. Si hay varios servidores DHCP en la misma red, el primero que responda a la petición, será el que nos proporcione la dirección IP. Normalmente el servidor más cercano será el que nos de la Ip, sin embargo, si queremos dar prioridad a un servidor DHCP sobre otro, resulta más efectivo retardar las respuestas del servidor secundario.

En este caso, al tener configurado un solo DHCP y no existir routers dentro de la virtualización, servidor.asirfp será el que nos de la Ip.

Para verificar el funcionamiento nos conectamos con los clientes y comprobamos que nos ha dado Ips dentro del rango 192.168.3.50 y 192.168.3.254

Cliente Ubuntu:

Cliente Ubuntu conectado al servidor DHCP

Cliente Windows:

Cliente Windows conectado al servidor DHCP

 

Deja un comentario