jueves, 30 de octubre de 2008

Instalar y configurar un servidor DHCP en Ubuntu o Debian

DEFINICIÓN

El protocolo de configuración dinámica de host (DHCP, Dynamic Host Configuration Protocol) es un estándar TCP/IP diseñado para simplificar la administración de la configuración IP de los equipos de nuestra red.

Si disponemos de un servidor DHCP, la configuración IP de los PCs puede hacerse de forma automática sin necesidad de hacerlo manualmente.

Un servidor DHCP es un servidor que recibe peticiones de clientes solicitando una configuración de red IP. El servidor responderá a dichas peticiones proporcionando los parámetros que permitan a los clientes autoconfigurarse. Para que un PC solicite la configuración a un servidor, en la configuración de red de los PCs hay que seleccionar la opción 'Obtener dirección IP automáticamente'.

El servidor proporcionará al cliente al menos los siguientes parámetros:

  • Dirección IP
  • Máscara de subred
Opcionalmente, el servidor DHCP podrá proporcionar otros parámetros de configuración tales como:
  • Puerta de enlace
  • Servidores DNS
  • Muchos otros parámetros más

El servidor DHCP proporciona una configuración de red TCP/IP segura y evita conflictos de direcciones repetidas. Utiliza un modelo cliente-servidor en el que el servidor DHCP mantiene una administración centralizada de las direcciones IP utilizadas en la red. Los clientes podrán solicitar al servidor una dirección IP y así poder integrarse en la red.

Instalación del servidor DHCP

Para instalar los archivos necesarios de nuestro servidor DHCP podemos utilizar apt-get desde una consola de root:

// Instalación del servidor DHCP
# apt-get install dhcp3-server

Configuración del servidor DHCP

Al igual que todas las aplicaciones en Linux, el servidor DHCP dispone
de su propio archivo de configuración. Se trata del archivo:

// Archivo de configuración del servidor DHCP
/etc/dhcp3/dhcpd.conf

Este archivo de configuración consta de una primera parte principal donde se especifican los parámetros generales que definen el 'alquiler' y los parámetros adicionales que se proporcionarán al cliente.

Los rangos de direcciones IP se especifican en secciones que empiezan con la palabra clave 'subnet' seguido de la dirección de red de la subred, continua con la palabra 'netmask' seguido de la máscara de red. A continuación estará la lista de parámetros para dicha sección encerrados entre llaves.

Si además de proporcionar al cliente la dirección IP y la máscara deseamos que le proporcione también la dirección de la puerta de enlace y las direcciones de dos servidores DNS para que pueda navegar por Internet, la sección subnet que debemos crear será:

// Rango de cesión y parámetros adicionales
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
option domain-name-servers 80.58.0.33, 80.58.32.97;
range 192.168.1.60 192.168.1.90;
}

También se pueden hacer reservas de IP para un determinado equipo, en función de la MAC de su tarjeta de red.Para establecer una configuración de equipo es necesario crear una sección host. Ejemplo, si deseamos que el cliente cuya dirección MAC sea 00:0c:29:c9:46:80 se configure siempre (reserva de dirección IP) con la dirección IP 192.168.1.50 y puerta de enlace 192.168.1.254, que su nombre de dominio sea "ieslapaloma.com" y el servidor de nombres netbios sea "192.168.1.250" la sección host que debemos crear será:

// Crear una reserva de dirección IP
host Profesor5 {
hardware ethernet 00:0c:29:c9:46:80;
fixed-address 192.168.1.50;
option routers 192.168.1.254;
option domain.name "ieslapaloma.com";
option netbios-name-servers 192.168.1.250;
}

Cuando el PC cuya dirección MAC sea '00:0c:29:c9:46:80' solicite una dirección IP al servidor DHCP, recibirá la 192.168.1.50.

Archivo dhcpd.conf comentado

A continuación mostramos un sencillo archivo dhcpd.conf comentado línea por línea: (Todas las líneas que comienzan por almoadilla (#) son líneas de comentarios y son ignoradas por el servidor dhcp. Todas las líneas que especifican parámetros deben terminar en punto y coma ';')

// Ejemplo de archivo dhcp.conf
# Sample configuration file for ISC dhcpd for Debian
# $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $

# Opciones de cliente y de dhcp aplicables por defecto a todas las secciones

# Estas opciones pueden ser sobreescritas por otras en cada sección

option domain-name-servers 195.53.123.57; # DNS para los clientes (atenea)
option domain-name "ieslapaloma.com"; # Nombre de dominio para los clientes
option subnet-mask 255.255.255.0; # Máscara por defecto para los clientes
default-lease-time 600; # Tiempo en segundos del 'alquiler'
max-lease-time 7200; # Máximo tiempo en segundos que durará el 'alquiler'

# Especificación de un rango
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.60 192.168.1.80; # Rango de la 60 a la 80 inclusive
option broadcast-address 192.168.1.255; # Dirección de difusión
option routers 192.168.1.254; # Puerta de enlace
option domain-name-servers 80.58.0.33; # DNS (ej: el de telefónica)
default-lease-time 6000; # Tiempo
}

# Configuración particular para un equipo
host aula5pc6 {
hardware ethernet 00:0c:29:1e:88:1d; # Dirección MAC en cuestión
fixed-address 192.168.1.59; # IP a asignar (siempre la misma)
}
Si deseamos consultar las concesiones de direcciones en nuestra red podemos consultar el fichero /var/lib/dhcp3/dhcpd.leases del servidor dónde podrás encontrar algo similar a:
# All times in this file are in UTC (GMT), not your local timezone.   This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.6

lease 172.16.15.239 {
starts 2 2008/10/21 19:01:21;
ends 2 2008/10/21 19:11:21;
tstp 2 2008/10/21 19:11:21;
binding state free;
hardware ethernet 00:0c:29:ba:40:2f;
}
lease 172.16.15.240 {
starts 2 2008/10/21 19:17:29;
ends 2 2008/10/21 19:27:29;
tstp 2 2008/10/21 19:27:29;
binding state free;
hardware ethernet 00:0c:29:24:0d:dc;
}
lease 172.16.15.239 {
starts 2 2008/10/21 19:35:29;
ends 2 2008/10/21 19:45:29;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:ba:40:2f;
client-hostname "profe-desktop";
}



Fuente:


Página del isftic :
Curso: Redes de Área Local. Aplicaciones y servicios en Linux. http://www.isftic.mepsyd.es/formacion/materiales/85/cd/REDES_LINUX/indice.htm
Curso: Redes de Área Local. Aplicaciones y servicios en Linux. http://www.isftic.mepsyd.es/formacion/enred/index_formacion.php
      

4 comentarios:

Anónimo dijo...

Me sale este error y no se como solucionarlo, por que no me marca la lini que hay mal configurada ni nada.
dhcpd self-test failed. Please fix the config file.
The error was:

Gracias

Edyluisrey dijo...

muy buena si funciona

Anónimo dijo...

Muchas gracias por la informacion, muy bien explicada

Saludos.-

Anónimo dijo...

A mi me salia el mismo error, mirate el archivo dhcpd.conf la parte de los rangos