Servidor DHCP3


Todo el que ha trabajado en un entorno de red o esté familiarizado con la Administración de red debe conocer el funcionamiento del servidor DHCP. Este servicio es de gran importancia ya que permite la gestión de las direcciones ip en una red y agiliza el trabajo del Administrador de red a la hora de configurar las direcciones ip de las estaciones de trabajo en medianas y grandes empresas. Una de las aplicaciones para Linux para implementar este servicio es dhcp3-server. Les propongo experimentar y configurar este servicio con sus principales parámetros en un servidor Ubuntu Server 12.04.4 LTS.

Para realizar este laboratorio podemos hacer uso de las bondades de la virtualización y emplear una herramienta como VMWare Workstation. Podemos crear dos máquinas virtuales, una con Ubuntu Server y otra con Windows la cual haría función de cliente. Ya con esto podemos comenzar a instalar el servidor DHCP, para esto instalamos el paquete dhcp3-server con el comando apt-get install dhcp3-server. Antes de comenzar con el proceso de instalación siempre aconsejo tener una configuración ip fija en el servidor, acceso a un repositorio y tener en una partición independiente /var. Ya con esto estaríamos listos para comenzar a configurar nuestro servidor.

El fichero de configuración se encuentra en /etc/dhcp/dhcpd.conf, al final de este fichero declaramos los parámetros que se ajusten a la configuración que deseemos darles a nuestros clientes. Es una buena práctica realizar una salva de este fichero antes de comenzar la configuración. Con este comando realizamos una copia del mismo cp -v /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original, luego de esto si podemos comenzar. El nombre del servicio después de instalado es isc-dhcp-server, con el comando service isc-dhcp-server start iniciamos el servicio, y cada vez que hagamos alguna modificación al fichero de configuración debemos reiniciar el servicio, esto lo hacemos con el comando service isc-dhcp-server restart.

La principales parámetros a configurar son los siguientes: subnet, netmask, range, option-domain-name-servers, option-domain-name, option-routers, default-lease-time, max-lease-time, estos son solo algunos de los parámetros que podemos configurar. Por supuesto, debemos buscar la configuración que se ajuste a lo que queremos configurar. Podemos configurar una rango de direcciones ip a distribuir con los parámetros que deseemos y también podemos asignar ip fijas atendiendo a la mac de nuestros clientes. Cuando comecemos a configurar el fichero debemos comentarear los parámetros: option domain-name “example.org”, ption domain-name-servers ns1.example.org, ns2.example.org, default-lease-time 600, max-lease-time 7200. Nuestro fichero debe quedar similar al siguiente, siguiendo la lógica del mismo:

	#################
	# DHCP Server   #
	#################

	# Rango IP a distribuir
	subnet 192.168.0.0 netmask 255.255.255.0 {
	range 192.168.0.50 192.168.0.100;
	option domain-name-servers 192.168.0.2, 192.168.0.3;
	option domain-name "lab.net";
	option netbios-name-servers 192.168.0.2, 192.168.0.3;
	option routers 192.168.0.1;
	option broadcast-address 192.168.0.255;
	default-lease-time 600;
	max-lease-time 7200;
	}

	# Reservaciones
	host reinier-pc {
	   hardware ethernet 00:0c:29:3b:82:21;
	   fixed-address 192.168.0.20;
	}

Otra situación que se nos pudiera presentar es que contemos con varias subredes, para lo cual implementaríamos varias subredes en nuestro servidor DHCP. En la práctica este fichero de configuración llega a ser más extenso y con muchas más reservaciones. Una buena práctica es declarar ip fijas a estaciones de trabajo de administración o que por sus funciones tengan acceso a determinados servicios en nuestra red o fuera de ella. Por lo general estas ip las declaramos en el firewall que tengamos en nuestra red por lo que no deben variar. En este caso nuestro servidor DHCP debe tener presencia en cada una de las subredes, quedando el fichero de configuración similar al siguiente:

	#################
	# DHCP Server   #
	#################
        
	# Rangos IP a distribuir
	
	# Subred 192.168.0.0	
	subnet 192.168.0.0 netmask 255.255.255.0 {
	range 192.168.0.50 192.168.0.100;
	option domain-name-servers 192.168.0.2, 192.168.0.3;
	option domain-name "lab.net";
	option netbios-name-servers 192.168.0.2, 192.168.0.3;
	option routers 192.168.0.1;
	option broadcast-address 192.168.0.255;
	default-lease-time 600;
	max-lease-time 7200;
	}

	# Subred 192.168.1.0	
	subnet 192.168.1.0 netmask 255.255.255.0 {
	range 192.168.1.2 192.168.1.200;
	option domain-name-servers 192.168.0.2, 192.168.0.3;
	option domain-name "lab.net";
	option netbios-name-servers 192.168.0.2, 192.168.0.3;
	option routers 192.168.1.1;
	option broadcast-address 192.168.1.255;
	default-lease-time 600;
	max-lease-time 7200;
	}

	# Subred 192.168.2.0	
	subnet 192.168.2.0 netmask 255.255.255.0 {
	range 192.168.2.2 192.168.2.200;
	option domain-name-servers 192.168.0.2, 192.168.0.3;
	option domain-name "lab.net";
	option netbios-name-servers 192.168.0.2, 192.168.0.3;
	option routers 192.168.2.1;
	option broadcast-address 192.168.2.255;
	default-lease-time 600;
	max-lease-time 7200;
	}

	# Reservaciones 
	# Subred 192.168.0.0

	# Administracion
	host reinier-pc {
	   hardware ethernet 00:0c:29:3b:82:21;
	   fixed-address 192.168.0.20;
	}

	# Aplicacion Contable
	host contabilidad-pc {
	   hardware ethernet 00:0c:29:3c:83:26;
	   fixed-address 192.168.0.25;
	}

	# Reservaciones 
	# Subred 192.168.1.0

	# Aplicación Web
	host web-server {
	   hardware ethernet 00:0d:15:3b:70:15;
	   fixed-address 192.168.1.230;
	}


	# Reservaciones 
	# Subred 192.168.2.0

	# Jefe de Grupo
	host carlos-pc {
	   hardware ethernet 00:1d:15:3e:90:11;
	   fixed-address 192.168.2.220;
	}

Después de configurado el servidor es momento de iniciar la máquina virtual de Windows y solicitar una dirección ip de forma automática. Existen formas de comprobar el resultado en dependencia del sistema operativo, en el caso de Windows abriendo un cmd y ejecutando el comando ipconfig -all sería suficiente para comprobar el resultado. También podemos declarar una dirección ip fija tomando la mac de la interfaz del cliente.

Las ip asignadas podemos verlas en la ruta /var/lib/dhcp/dhcpd.leases, ejecutamos el comando less /var/lib/dhcp/dhcpd.leases. Podemos seguir la pista de lo que está ocurriendo con este servicio ó en caso de que falle al iniciarlo en los log del sistema en la ruta /var/log/syslog, con el comando less /var/log/syslog podemos verlos. Siguiendo estos pasos tendríamos un servidor DHCP listo para ponerlo en funcionamiento.

Esta es una solución para implementar este servicio, pero existen otras en Linux y otras configuraciones posibles, les invito a que investiguen otras variantes. Espero que les haya servido a los que se inician en Linux o los que no conocían este servicio.