DHCP (sigla en inglés de Dynamic Host Configuration Protocol - Protocolo de configuración dinámica de host) es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después.
DHCP reduce la complejidad y el trabajo de administración relacionado con la reconfiguración de equipos en redes basadas en TCP/IP. Cuando movemos un equipo de una subred a otra, debemos cambiar su dirección IP para reflejar el nuevo ID de red. DHCP nos permite asignar automáticamente una dirección IP a un host, denominado también cliente DHCP, desde una base de datos asignada a una subred. Además, cuando un equipo está sin conexión durante un determinado periodo de tiempo, DHCP puede reasignar su dirección IP.
El DHCP es una alternativa a otros protocolos de gestión de direcciones IP de red, como el BOOTP (Bootstrap Protocol). DHCP es un protocolo más avanzado, pero ambos son los usados normalmente.
Básicamente el servicio DHCP funciona de la siguiente forma:
El plazo del “contrato” o renta es el tiempo en que un cliente DHCP mantiene como propios los datos que le otorgó un servidor. Este se negocia como parte del protocolo entre el cliente y el servidor. Una vez vencido el plazo del contrato el servidor puede renovar la información del cliente, fundamentalmente su dirección IP, y asignarle otra nueva o extender el plazo, manteniendo la misma información. El cliente puede solicitar también la renovación o liberación de sus Datos.
DHCP consta de dos componentes:
IP requiere la configuración de muchos parámetros dentro del software de implementación del protocolo. Debido a que IP utilizar en muchas clases distintas de hardware de red, no se puede suponer o adivinar que los valores de esos parámetros tienen valores correctos por defecto. El uso de un sistema de asignación de direcciones distribuidas basado en un mecanismo de consulta/defensa, para descubrir direcciones de red que ya están en uso, no garantiza direcciones de red unívocas porque puede que los host no sean siempre capaces de defender sus direcciones de red.
Cada equipo de una red TCP/IP debe tener un nombre y una dirección IP únicos. La dirección IP, junto con su máscara de subred relacionada, identifica al equipo host y a la subred a la que está conectado, de modo que al mover un equipo a una subred diferente, se debe cambiar la dirección IP asignada a dicho equipo. DHCP permite asignar dinámicamente una dirección IP a un cliente, a partir de una base de datos de direcciones IP de servidor DHCP de la red local, reduciendo la complejidad y cantidad de trabajo que debe realizar el administrador para reconfigurar los equipos.
DHCP alquila o asigna dinámicamente direcciones IP durante un tiempo, conocido como duración del alquiler, a las estaciones de trabajo, distribuyendo además otros parámetros de configuración entre clientes de red autorizados, tales como la puerta de enlace o el servidor DNS.
El servicio DHCP proporciona una configuración de red TCP/IP segura, confiable y sencilla, evitando conflictos de direcciones y ayudando a conservar el uso de las direcciones IP de clientes en la red, para lo cual utiliza un modelo cliente-servidor en el que el servidor DHCP mantiene una administración centralizada de las direcciones IP utilizadas en la red.
Si deseamos que a determinados equipos el servidor les sirva siempre la misma dirección IP, podemos llegar a forzar la asignación de la dirección IP deseada a equipos concretos a través de la dirección MAC de su tarjeta de red. Además también pueden excluirse del rango de direcciones IP que va a servir nuestro servidor, aquellas que deseamos que estén asociadas de forma estática a determinados equipos o periféricos de red.
Si por error algún equipo de la red estuviera configurado con un direccionamiento IP estático del rango gestionado por nuestro servidor DHCP, podría ocurrir que cuando nuestro servidor DHCP alquilase una dirección IP a la estación de trabajo solicitante, dicha dirección IP fuera la que estuviera siendo utilizada por el equipo con direccionamiento estático, provocándose un conflicto de direccionamiento IP; en ese caso el cliente DHCP solicitará otra dirección IP y la probará, hasta que obtenga una dirección IP que no esté asignada actualmente a ningún otro equipo de la red. Por cada conflicto de direcciones IP, el cliente volverá a intentar configurarse automáticamente hasta con 10 direcciones IP.
Las estaciones de trabajo solicitan al servidor DHCP su dirección IP y demás configuraciones para este protocolo, el cual les va asignando direcciones del rango que sirve, de entre aquellas que le quedan libres.
Sin DHCP, cada dirección IP debe configurarse manualmente en cada dispositivo y, si el dispositivo se mueve a otra subred, se debe configurar otra dirección IP diferente. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si fuera el caso en el dispositivo es conectado en un lugar diferente de la red.
La asignación de direcciones IP a los clientes es la tarea más fundamental que realiza un servidor de DHCP. El protocolo DHCP incluye tres métodos de asignación de direcciones IP:
El Protocolo de configuración dinámica de host (DHCP) es un estándar de TCP/IP que simplifica la administración de la configuración IP haciéndola automática.
DHCP se deriva del protocolo Bootstrap (Bootp). Bootp fue uno de los primero métodos para asignar de forma dinámica direcciones IP a otros equipos (ordenadores, impresoras, etc.) Al ser las redes cada vez más grandes, BootP ya no era adecuado y DHCP fue creado para cubrir nuevas demandas; Ya que es un protocolo diseñado principalmente para ahorrar tiempo gestionando direcciones Ip en una red grande. El servicio DHCP está activo en un servidor donde se centraliza la gestión de las direcciones IP de la red.
DHCP permite además configurar parámetros como puede ser, la máscara de subred, la puerta de enlace, los servidores DNS, WINS, etc.
Es un protocolo que permite que un equipo conectado a una red pueda obtener su configuración (principalmente, su configuración de red) en forma dinámica (es decir, sin intervención particular). Sólo tiene que especificarle al equipo, mediante DHCP, que encuentre una dirección IP de manera independiente. El objetivo principal es simplificar la administración de la red.
El protocolo DHCP sirve principalmente para distribuir direcciones IP en una red, pero desde sus inicios se diseñó como un complemento del protocolo BOOTP (Protocolo Bootstrap), que se utiliza, por ejemplo, cuando se instala un equipo a través de una red (BOOTP se usa junto con un servidor TFTP donde el cliente encontrará los archivos que se cargarán y copiarán en el disco duro). Un servidor DHCP puede devolver parámetros BOOTP o la configuración específica a un determinado host.
Desde el punto de vista del cliente, DHCP es una extensión del mecanismo BOOTP. Este comportamiento permite a los clientes del BOOTP interoperar con servidores DHCP sin requerir ningún cambio en el software.
DHCP es un protocolo diseñado principalmente para ahorrar tiempo gestionando direcciones IP en una red grande. El servicio DHCP está activo en un servidor donde se centraliza la gestión de la direcciones IP de la red. Hoy en día, muchos sistemas operativos incluyen este servicio dada su importancia.
DHCP funciona sobre un servidor central (servidor, estación de trabajo o incluso un PC) el cual asigna direcciones IP a otras máquinas de la red. Este protocolo puede entregar información IP en una LAN o entre varias VLAN. Esta tecnología reduce el trabajo de un administrador, que de otra manera tendría que visitar todos los ordenadores o estaciones de trabajo uno por uno. Para introducir la configuración IP consistente en IP, máscara, gateway, DNS, etc.
El funcionamiento DHCP se basa en la arquitectura cliente / servidor (como casi todos los servicios de Internet), por lo que debe haber un servidor DHCP (dhcpd) y el cliente DHCP para su funcionamiento. En el caso más simple es un servidor DHCP en la subred a la que el cliente solicite la asignación de dirección IP (y el resto de los parámetros de configuración).
Si no existe un servidor DHCP de la subred se necesitará un agente (normalmente un router) que sabe la dirección del servidor DHCP.
El protocolo funciona en los siguientes pasos:
Un servidor DHCP puede proveer de una configuración opcional al dispositivo cliente. Dichas opciones están definidas en RFC 2132 Lista de opciones configurables:
El primer paso al configurar un servidor DHCP es crear el archivo de configuración que almacena la información de red para los clientes. Se pueden declarar opciones globales para todos los clientes, o bien opciones para cada sistema cliente. Este archivo es: dhcpd.conf
El archivo de configuración puede contener tabulaciones o líneas en blanco adicionales para facilitar el formato. Las palabras clave no distinguen entre mayúsculas y minúsculas, y las líneas que empiezan con una almohadilla o símbolo numeral (#) se consideran comentarios. El archivo de configuración dhcpd.conf posee dos tipos de información:
Algunas opciones configuran DHCP y los parámetros definen valores no opcionales o que controlan el comportamiento del servidor DHCP.
Los parámetros (incluidas las opciones) declarados antes de una sección encerrada entre paréntesis ({ }) se consideran parámetros globales. Los parámetros globales se aplican a todas las secciones situadas debajo de ellos.
El fichero dhcpd.conf se compone de un conjunto de declaraciones que hacen referencia a máquinas y a subredes. Esto se entenderá mejor mediante el siguiente ejemplo:
option domain-name "ejemplo.com"; Esta opción especifica el dominio que se proporciona a los clientes y que dichos clientes utilizan como dominio de búsqueda por defecto. option domain-name-servers 192.168.4.100; especifica la lista de servidores de DNS (seperados por comas) que deben utilizar los clientes. option subnet-mask 255.255.255.0; La máscara de red que se proporciona a los clientes. default-lease-time 3600; Un cliente puede solicitar un determinado tiempo de vida para el préstamo. En caso contrario el servidor asigna un tiempo de vida por defecto mediante este valor (expresado en segundos). max-lease-time 86400; Este es el máximo tiempo que el servidor puede utilizar para realizar préstamos a los clientes ddns-update-style none; Esta opción especifica si el servidor de DHCP debe intentar actualizar el servidor de DNS cuando se acepta o se libera un préstamo subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; indica qué direcciones IP se pueden utilizar para ser prestadas a los clientes que las soliciten option routers 192.168.4.1; Declara cúal es la pasarela por defecto que se proporcionará a los clientes } host mailhost { hardware ethernet 02:03:04:05:06:07; Especifica la dirección MAC de una máquina fixed-address mailhost.ejemplo.com; Especifica que la máquina cliente debería obtener siempre la misma dirección IP. Recuerde que se puede utilizar un nombre de máquina para esto ya que el servidor de DHCP resolverá el nombre por sí mismo antes de devolver la información al cliente. }
Estructura del archivo dhcpd.conf: Parámetros globales: Significado de los parámetros:
7. Servidor DHCP a varias redes. Agente relay DHCP.
El Agente Relay DHCP es una equipo o router configurado para escuchar broadcast DHCP/BOOTP de clientes DHCP y reenviar esos mensajes a los DCHP Servers en diferentes subredes. DHCP/BOOTP Relay Agents es parte de los estándares DHCP y BOOTP, y funciona según los documentos estándar Request for Comments (RFCs) que describen el diseño del protocolo y el comportamiento relacionado. Los clientes DHCP utilizan broadcasts para obtener el lease del DHCP Server.
Los Routers normalmente no pasan broadcasts excepto que estén configurados específicamente para dejarlos pasar. Por lo tanto, sin configuración adicional, los DHCP Servers solo proveen direcciones IP a clientes en su subred local. Para que se puedan asignar direcciones a clientes en otros segmentos, se debe configurar la red para que los DHCP broadcasts puedan llegar desde el cliente al DCHP Server. Esto se puede hacer de dos maneras: configurando los routers que conectan las subnets para dejar pasar DHCP broadcasts, o configurando Agente Relay DHCP.
El DHCP Relay Agent soporta el proceso Lease Generation entre el cliente DHCP y el DHCP Server, cuando se separan por un router. Esto habilita al cliente DHCP para recibir una dirección IP del DHCP Server. Los siguientes pasos describen el funcionamiento del Agente Relay DHCP: 1. El cliente DHCP envía un paquete broadcast DHCPDISCOVER. 2. El DHCP Relay Agent, desde la subnet del cliente, reenvía el mensaje DHCPDISCOVER al DHCP Server usando unicast. 3. El DHCP Server usa unicast para enviar el mensaje DHCPOFFER al DHCP Relay Agent. 4. El DHCP Relay Agent envía un paquete broadcast DHCPOFFER al cliente DHCP en su subnet. 5. El cliente DHCP envía un paquete broadcast DHCPREQUEST. 6. El DHCP Relay Agent, desde la subnet del cliente, reenvía el mensaje DHCPREQUEST al DHCP Server, usando unicast. 7. El DHCP Server usa unicast para enviar el mensaje DHCPACK al DHCP Relay Agent. 8. El DHCP Relay Agent envía un paquete broadcast DHCPACK al cliente DHCP en su subnet.
DHCP Failover Protocol es un protocolo diseñado para permitir que una copia de seguridad del servidor DHCP para hacerse cargo de un servidor principal, si el servidor principal se toma fuera de la red por cualquier razón.
Puede utilizar la conmutación por error de DHCP para configurar dos servidores DHCP para que funcionen como un par redundante.
Los escenarios de conmutación por error Hay tres escenarios de conmutación por error de base:
9. Problemas asociados a DHCP. Seguridad.
Los principales problemas asociados a la seguridad de DHCP son:
Cuando un usuario se conecta a una red no necesita proporcionar credenciales para obtener una concesión. Por tanto, es posible que un usuario no autenticado obtenga una concesión para cualquier cliente DHCP siempre que haya un servidor DHCP disponible para proporcionarla. Así, el usuario no autenticado podrá disponer de todos los valores de opción que el servidor DHCP proporcione con la concesión, como la dirección IP del servidor WINS o del servidor DNS. Si el cliente DHCP se identifica como miembro de una clase de usuario o de una clase de proveedor también dispondrá de las opciones asociadas a dicha clase. Esto permite que usuarios malintencionados que tengan acceso físico a una red habilitada para DHCP puedan realizar un ataque de denegación de servicio en los servidores DHCP si solicitan muchas concesiones al servidor, lo que reduciría el número de concesiones disponibles para otros clientes DHCP.
Recomendaciones:
Recomendaciones:
A continuación, se enumeran las amenazas comunes a los servidores DHCP:
A continuación, se enumeran algunas medidas básicas de seguridad para garantizar la función de servidor DHCP:
BOOTP son las siglas de Bootstrap Protocol. Es un protocolo de red UDP utilizado por los clientes de red para obtener su dirección IP automáticamente.
Normalmente se realiza en el proceso de arranque de los ordenadores o del sistema operativo.
Originalmente está definido en el RFC 951. Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado.
Históricamente ha sido utilizado por las estaciones de trabajo sin disco basadas en UNIX (las cuales también obtenían la localización de su imagen de arranque mediante este protocolo) y también por empresas para introducir una instalación preconfigurada de Windows en PC recién comprados (típicamente en un entorno de red Windows NT).
Originalmente requería el uso de un disquete de arranque para establecer las conexiones de red iniciales, pero el protocolo se integró en la BIOS de algunas tarjetas de red (como la 3c905c) y en muchas placas base modernas para permitir el arranque directo desde la red.
DHCP es un protocolo basado en BOOTP, más avanzado, pero más difícil de implementar. Muchos servidores DHCP también ofrecen soporte BOOTP. Bootp el predecesor del protocolo DHCP y comparte con éste algunas características funcionales.
BOOTP es una manera de descargar configuraciones de dirección e inicio para estaciones de trabajo sin disco. Una estación de trabajo sin disco no tiene unidad de disco duro ni sistema operativo. Por ejemplo, muchos sistemas de cajas registradoras automatizadas de los supermercados son estaciones de trabajo sin disco. Tanto DHCP como BOOTP se basan en la relación cliente/servidor y utilizan los puertos UDP 67 y 68. Estos puertos todavía se conocen como puertos BOOTP. El proceso BOOTP involucra los siguientes pasos: 1. El cliente determina su propia dirección de hardware; esta dirección está normalmente en una ROM en el hardware. 2. Un cliente BOOTP envía su dirección hardware en un datagrama UDP al servidor. Si el cliente sabe su dirección IP y/o la dirección del servidor, debería usarlos, pero en general los clientes BOOTP no tienen datos de configuración IP del todo. Si el cliente no sabe su propia dirección IP, usa 0.0.0.0. Si el cliente no sabe la dirección IP del servidor, usa la dirección broadcast limitada (255.255.255.255). El número de puerto UDP es el 67. 3. El servidor recibe el datagrama y busca la dirección hardware del cliente en su fichero de configuración, que contiene la dirección IP del cliente. El servidor rellena los campos restantes en el datagrama UDP y lo devuelve al cliente usando el puerto UDP 68. 4. Cuando recibe la respuesta, el cliente BOOTP grabará su propia dirección IP (permitiendo que responda a las peticiones ARP) y comenzará el proceso de bootstrapping