Servidor DHCP

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.

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.

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 solo asigna direcciones dentro de un rango prefijado. Si por error hemos configurado manualmente una IP estática perteneciente al rango gestionado por nuestro servidor DHCP, podría ocurrir que dicha dirección sea asignada dinámicamente a otro PC, provocándose un conflicto de IP. En ese caso el cliente solicitará y comprobará, otra dirección IP, hasta que obtenga una dirección IP que no esté asignada actualmente a ningún otro equipo de nuestra red.

Cuando arrancamos de nuevo un PC cuya configuración IP se determina por DHCP, pueden darse dos situaciones:

  • Si la concesión de alquiler de licencia ha caducado, el cliente solicitará una nueva licencia al servidor DHCP (la asignación del servidor podría o no, coincidir con la anterior).
  • Si la concesión de alquiler no ha caducado en el momento del inicio, el cliente intentará renovar su concesión en el servidor DHCP, es decir, que le sea asignada la misma dirección IP.

Instalación

Para instalar el servicio DHCP en linux necesitamos el paquete dhcp3-server.

# apt-get install dhcp3-server isc-dhcp-server

Conceptos

  • Ámbito servidor DHCP: Un ámbito es un agrupamiento administrativo de equipos o clientes de una subred que utilizan el servicio DHCP.
  • Rango servidor DHCP: Un rango de DHCP está definido por un grupo de direcciones IP en una subred determinada
  • Concesión o alquiler de direcciones: es un período de tiempo que los servidores DHCP especifican, durante el cual un equipo cliente puede utilizar una dirección IP asignada.
  • Reserva de direcciones IP: Consiste en reservar algunas direcciones IP para asignárselas siempre a los mismos PCs clientes de forma que cada uno siempre reciba la misma dirección IP.

En el servidor se asocian direcciones MAC a direcciones IP.

Configuración del servidor DHCP

Una configuración TCP/IP mínima debe contener al menos la dirección IP y la máscara de subred.

  • Dirección IP
  • Máscara de subred

Opcionales son:

  • Dirección de difusión o broadcast
  • Puerta de enlace
  • Servidores DNS
  • Otros

Además, existen una serie de parámetros que definen las condiciones del 'alquiler' o sesión de la configuración IP hacia un cliente como son:

  • Tiempo de sesión por defecto
  • Tiempo de sesión máximo, y algunos parámetros más.

Esta información compone la configuración del servidor DHCP.

El archivo de configuración del servidor DHCP es /etc/dhcp/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. El resto del archivo de configuración consta de una serie de secciones, en las que se especifica que:

Los parámetros de las secciones deberán ir entre llave (sección subnet).

Rangos de direcciones IPs que serán cedidas a los clientes que lo soliciten.

Rango de sesión:

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.3 192.168.1.100;}

Rango de sesió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 192.168.1.100
    range 192.168.1.60  192.168.1.90;}

Arranque y parada manual del servidor DHCP

Arrancarlo el servidor DHCP con:

    # /etc/init.d/dhcp3-server start

Parar el servidor DHCP con:

    # /etc/init.d/dhcp3-server stop

Reiniciar el servidor DHCP con:

    # /etc/init.d/dhcp3-server restart