Servidor DHCP en un entorno de máquinas Vagrant

Configuración de un servidor DHCP en Debian.

DHCP es un protocolo que permite administrar y gestionar automáticamente las redes TCP/IP mediante el uso de un software en un servidor. Las siglas corresponden a Dynamic Host Configuration Protocol y ofrecen mediante un conjunto de reglas configuraciones de red como dirección IP, máscara de red, servidor DNS, puerta de enlace…

Este servicio se mantiene a la escucha de peticiones broadcast (a toda la red) pues, cuando un cliente pide una dirección IP por DHCP, no sabe en qué dirección IP se encuentra el servidor. Si el servidor DHCP está correctamente configurado, la petición sería oída y este servicio respondería con una dirección IP y, de manera opcional, con información adicional sobre otras configuraciones como las antes mencionadas.

La explicación de cómo funciona un servidor DHCP es más extensa en los apuntes ¿Cómo funciona el servidor DHCP? de José Domingo Muñoz.

Escenario de Vagrant

El objetivo es crear un escenario ficticio con máquinas virtuales Vagrant que permitan configurar una red de hasta tres equipos: un servidor y dos clientes. Durante esta configuración se realizarán los ajustes básicos para la concesión de direcciones IP a través del servidor DHCP instalado en un equipo con Debian Jessie.

Este es el fichero de configuración del escenario montado sobre Vagrant. En él se define los nombres de las máquinas virtuales así como las configuraciones de red.

Actualizamos los repositorios y los sistemas de todas las máquinas Vagrant con apt-get update && apt-get upgrade

En los clientes (cliente1 y cliente2) ejecutamos ip r. Observamos la ruta por defecto creada en la eth0, la cual tenemos que borrar y podemos hacerlo con ip r del default Esto impedirá que estas máquinas tengan acceso directo a internet.

Igualmente en la máquina que actuará como servidor DHCP debemos ejecutar ip r del default para borrar la ruta por defecto en el servidor. Además, ejecutamos ip r add default via 172.22.0.1 dev eth1 y ip r default via 172.22.0.1 para encaminar el tráfico por la eth1.

Configuración del servidor DHCP en Debian Jessie

El primer paso será comprobar que nuestra máquina Vagrant ha recibido correctamente la configuración referente a la red, por ello ejecutamos ifconfig. El siguiente paso es instalar un servidor DHCP en nuestra máquina con la instrucción apt-get install isc-dhcp-server

Este servidor DHCP ha de ser configurado para servir la configuración por la interfaz en la que hemos creado nuestra red privada. Por defecto lo hace por la eth0, pero en este caso se trata de la interfaz de red eth2 que posee la dirección IP 192.168.100.1.

Al final del fichero /etc/default/isc-dhcp-server establecemos el valor eth2 en el parámetro INTERFACES=»»

El fichero de configuración principal de DHCP está ubicado en /etc/dhcp/dhcpd.conf. En él estableceremos las configuraciones deseadas para nuestro servidor DHCP, por lo que hacemos una copia de respaldo con cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bk que también puede servirnos para consultar nuevas configuraciones.

Editamos el fichero original para configurar parámetros como el tiempo de concesión, el tipo de log o las configuraciones aplicadas a las subredes.

option routers indicará la puerta de enlace por defecto, option domain-name-servers el servidor DNS que tendrá las máquinas clientes y option broadcast-address la dirección de broadcast.

Mientras, dentro de subnet ponemos la configuración DHCP que recibirá los clientes así como el rango de direcciones IP que el servidor DHCP. Los parámetros anteriores pueden especificarse dentro de la subnet para aplicarse únicamente a esa subnet, o fuera de ella para todas las redes.

Activar el bit de forwarding y añadir regla de iptables para hacer NAT

Igualmente, para realizar NAT y que la red interna tenga conexión con internet a través del servidor DHCP, debemos activar en la máquina servidor el bit de forwarding con echo 1 > /proc/sys/net/ipv4/ip_forward para activar el reenvío de paquetes.

La configuración de este fichero se perderá al reinicio de la máquina, si queremos que sea persistente debemos descomentar la línea #net.ipv4.ip_forward=1 del fichero /etc/sysctl.conf

También es necesario añadir una regla de iptables para que el tráfico llegado a través de la red 192.168.100.0 se encamine por la interfaz de red eth1, que es la que conecta con internet: iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j MASQUERADE

Instalar un servidor DHCP en GNU/Linux.

Comprobación del cliente1 realizando ping a www.EvaristoGZ.com

Crear una reserva de dirección IP

En un servidor DHCP es posible crear una reserva de dirección IP para que siempre sea asignada a una misma tarjeta de red o dirección física (MAC). Por eso, lo correcto no es decir que se le asigna a una máquina, si no a una interfaz ya que si cambiamos la dirección MAC de ésta, será asignada otra dirección IP distinta.

Lo primero es conocer qué MAC tiene el equipo cliente, para ello podemos consultar el fichero /var/lib/dhcp/dhcpd.leases del servidor o ejecutar ifconfig en el mismo cliente.

Esta reserva la realizamos añadiendo el siguiente fragmento al fichero de configuración del servidor DHCP. Igualmente, pueden establecerse otros tipos de configuraciones como la dirección de broadcast, la puerta de enlace o el servidor DNS que serán enviadas al cliente DHCP.

En el código anterior se ha reservado la dirección IP 192.168.100.5 a la dirección MAC 08:00:27:e0:8b:ee. La dirección IP concedida puede estar fuera del rango de direcciones IP que concede del servidor DHCP.

Uso de varios ámbitos DHCP

Un ámbito es una configuración que permite asignar ajustes diferentes a una subred de equipos que reciben configuración por el protocolo DHCP. En él se pueden establecer las configuraciones anteriores para que se apliquen únicamente a esa subred.

De esta manera, es posible asignar un rango específico de direcciones IP u otras configuraciones al igual que en las reservas de direcciones IP como tiempo de concesión, dirección de la puerta de enlace, etc.

Antes es necesario realizar cambios en nuestro escenario editando el fichero Vagrantfile. Debemos añadir una nueva interfaz al servidor, donde se conectará a otra red llamada local y a la cual ahora pertenecerá cliente2.

Con esta configuración, el equipo servidor estará conectado a dos redes: interna con conexión a cliente1 y local con conexión a cliente2.

Configuración del servidor DHCP para varios ámbitos

Realizamos un ifconfig en el servidor DHCP, para comprobar que la nueva tarjeta de red ha sido añadida correctamente. En este caso la interfaz es la eth3, por lo que debemos añadir su uso en el fichero /etc/default/isc-dhcp-server modificando INTERFACES="eth2" por INTERFACES="eth2 eth3"

En el fichero /etc/dhcp/dhcpd.conf hacemos la definición de la nueva subred, añadiéndole los parámetros de configuración y modificando el tiempo de concesión, que será 24 horas.

Por ello, añadimos el siguiente fragmento bajo nuestra configuración y reiniciamos el servicio DHCP.

Desde los clientes, realizamos un ifconfig para comprobar que han recibido las direcciones IP a través del servidor DHCP.
Configurar dos ámbitos de red en DHCP Debian Jessie.

Por último, para que la red 192.168.200.0/24 también tenga acceso a internet a través del servidor, debemos añadir una regla de iptables de la misma forma que para la red 192.168.100.0/24. En este caso sería iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth1 -j MASQUERADE

Para la gestión de los clientes podemos utilizar dhclient -r que reniega la concesión realiza por el servidor DHCP (quedando el cliente sin configuración de red) o dhclient interfaz solicitamos configuración mediante DHCP para la interfaz elegida.

Compartir es agradecer. Si te ha gustado... ¡compartélo!
Comparte con tus amigos










Enviar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.