Descubre qué es el servicio DHCP y para que sirve, por qué es tan importante y tan ampliamente usado por empresas y proveedores de servicio de todo el mundo.
¿Qué es el servicio DHCP y para qué sirve?
¿Qué es DHCP?
El servicio de DHCP (Dynamic Host Configuration Protocol) o Protocolo de Configuración Dinámica de Host es uno de los servicios fundamentales en los que se cimentan las redes empresariales y domésticas y por tanto tiene una entidad suficiente como para que dediquemos un artículo a su comprensión.
Comúnmente, los administradores de redes de tipo TCP/IP necesitan proveer de al menos una dirección IP para cada uno de los elementos conectados a una red. Estas configuraciones, inicialmente, se hacían de manera manual, siendo el administrador el que tenía que planificar el reparto de direcciones IP y configurarlas en cada uno de estos dispositivos de manera manual.
Este modo de trabajar puede ser sostenible cuando disponemos de unos pocos elementos conectados a la red, o cuando los elementos que conectan no varían, pero, ¿qué sucede cuando tenemos cientos de máquinas conectadas? ¿Y qué sucede cuando las máquinas conectadas varían continuamente? En estos casos, el mantenimiento de este modelo es difícilmente sostenible, ya que implica un gran esfuerzo administrativo y por tanto muy poca eficiencia.
Además debemos pensar que la operativa diaria de un operador humano puede desembocar en problemas como errores en las concesiones, pudiéndose producir el solapamiento de direcciones o, lo que es lo mismo, conceder una dirección que ya está en uso, errores en la configuración, etc. Y ojo, porque hasta ahora hemos hablado de la asignación de direcciones IP, pero un equipo necesita más información para poder conectar a una red. Información como:
- Dirección IP.
- Máscara de red.
- Puerta de enlace.
- Servidores DNS.
- Y otros datos que por no extendernos no vamos a comentar ahora, pero sí que trataremos más adelante, junto a la información detallada de cada uno de los listados.
Ahora pensemos brevemente, ¿qué sucederá si el técnico que hace esta configuración comete un error al configurar cualquiera de estos datos? Bien se producirá un error de solapamiento, con el clásico mensaje de IP duplicada, o bien se producirán errores de funcionamiento porque el equipo no es capaz de alcanzar el Gateway, no es capaz de hacer traducciones de IP, etc.
Y eso no es lo peor, porque al fin y al cabo, en caso de cometer un error, este error debería cometerse solo sobre una máquina, pero pongámonos en lo peor: supongamos que un servidor de DNS es reemplazado y hay que cambiarlo en todas las máquinas. Esto supondría que debemos recorrer todas las máquinas para cambiar este parámetro, lo cual puede ser una molestia cuando tenemos 10 máquinas, pero es una absoluta locura si tenemos, 100, 1000, etc.
¿Cuáles son los orígenes de DHCP?
Para resolver el problema que pueden acarrear la asignación, configuración, administración y mantenimiento del espacio de direcciones IP, especialmente en empresas grandes, un grupo de empresas y expertos trabajó para definir un protocolo que permitiera realizar estas tareas de manera dinámica, el cual terminó siendo el estándar abierto definido en el RFC 2132 de la asociación IETF (Internet Engineering Task Force) que define los fundamentos del servicio de DHCP.
Tal como hemos comentado, DHCP solventa el problema de la asignación y administración de direcciones IP, asignándolas de manera automática y manteniendo igualmente su concesión, encargándose de las altas, bajas y actualizaciones sin que el administrador tenga que verse involucrado en las operativas del día a día.
En realidad, tal y como se puede ver en el RFC 2132, el protocolo DHCP en realidad tiene sus orígenes en BOOTP. BOOTP fue un protocolo diseñado para funcionar en los equipos sin disco (terminales tontos) que pasaban configuraciones a los equipos en base a su dirección física (dirección MAC), que es una dirección única para cada uno de los elementos de red existentes en el mundo.
El BOOTP pasaba la configuración a los clientes que lo solicitaban usando para ello un servidor TFTP (Trivial File Transfer Protocol). Tras recibir esta información, los clientes quedaban preparados para operar normalmente.
Como podemos ver en lo que se acaba de relatar, el servicio de BOOTP permitía resolver la necesidad de configurar manualmente el equipo cliente, lo cual se traducía en un menor coste administrativo.
Pero esto realmente era solo una parte de la solución, porque pasaba la información de manera automática, pero las asignaciones de direcciones IP realmente tenía que seguir haciéndolas el administrador, que tenía que almacenar en el servidor TFTP la configuración de cada una de las máquinas.
Otro de los problemas que presentaba BOOTP es que no era capaz de detectar errores, como por ejemplo la duplicidad de direcciones IP, por lo que se podía configurar por error la misma IP a dos clientes y el servidor no hacía nada por solventarlo.
Es para solventar estos problemas para lo que apareció el protocolo DHCP, que no solo hace estas configuraciones, sino que además es capaz de repartir las IP de manera automática, sin que el administrador tenga que hacer más gestiones que la de asignar un rango de direcciones IP válidas. Además es el propio DHCP el que se encarga de evitar el solapamiento, que solo se producirá si el administrador configura una cuenta de manera manual y comete un error al configurarla.
¿Cuáles son las capacidades reales de DHCP?
Hasta ahora, hemos hablado de lo maravilloso que es DHCP, pero solo hemos comentado que sirve para configurar de manera automática algunos parámetros, pero vamos a profundizar un poquito más.
Para empezar, debemos decir que cuando hablamos de que configurar las IP de manera automática no estamos siendo completamente sinceros, o mejor dicho, no estamos siendo realmente fieles a la realidad. DHCP es capaz de otorgar las direcciones IP de tres maneras diferentes:
- Mediante la Asignación Manual: Este método consiste en asignar una vinculación de una IP del pool de concesiones que tiene el servidor a la dirección física del equipo (MAC). Esta queda disponible únicamente para este equipo y no puede ser usada por ningún otro cliente. Es un funcionamiento similar al que hacía BOOTP.
- Mediante la Asignación Dinámica: Este es el método mediante el que un servidor asigna una IP a un cliente y ésta queda asignada a ste por un tiempo. Transcurrido ese tiempo, si el cliente sigue conectado, la concesión de esa IP se renueva por otro periodo de tiempo equivalente. Si el cliente sigue conectado indefinidamente, es como si esta IP fuera fija, ya que no se va a cambiar en ningún momento a menos que el administrador así lo desee.
- Mediante la Asignación Automática: Este es el método mediante el que un servidor asigna una IP a un cliente y ésta queda asignada a este equipo de manera indefinida, convirtiéndose en valores permanentes.
Ahora la duda que puede surgirle al lector es si necesitamos elegir uno de estos tres modos para el servidor, y la respuesta es no, no es necesario elegir uno de los modos, sino que, por lo general, los tres modelos coexisten en el ecosistema de DHCP de una empresa.
Por poner un ejemplo, podemos usar la asignación manual para equipos de los técnicos, la asignación dinámica para los clientes que visitan ocasionalmente las instalaciones y la asignación automática para los equipos de los empleados que trabajan siempre en la empresa.
Y la siguiente pregunta que puede surgirle al lector es una que hemos comentado por encima al hacer la introducción: ¿Qué datos configura DHCP? Bien, antes, en la presentación hemos comentado algunos de ellos, pero no hemos comentado todos ya que los queríamos detallar más adelante, cuando se tuviera una idea más clara de que es y que hace este servicio.
Los datos que facilita un servidor DHCP son básicamente los siguientes:
- Dirección IP: Dirección que identifica a la máquina de manera única.
- Máscara de red: La máscara se utilizará para operaciones de red y poder identificar la red a la que pertenece este dispositivo.
- Puerta de enlace: También conocida como Gateway por su traducción inglesa, se trata de la puerta de enlace predeterminada a la que enviará el equipo los paquetes para que viajen fuera de la red.
- Servidores DNS: Son los servidores del Servicio de Resolución de Nombres de Dominio (Domain Name Server) a los que consultará la máquina para saber qué IP corresponde a un servidor o a qué servidor corresponde una IP.
- Nombre de dominio: Es básicamente el nombre de dominio completo de la organización de la que depende. Normalmente es el FQDN (Fully Qualified Domain Name), o lo que es lo mismo, el nombre más la extensión, como por ejemplo “jotelulu.com”.
- Dirección WINS: Dirección IP de los servidores WINS que consultará el cliente para la resolución de nombres NetBIOS.
Además, pueden existir otros parámetros menos comunes en los que no entraremos en esta ocasión.
¿Cómo se produce una concesión de dirección IP?
A continuación, vamos a ver muy brevemente cómo se produce una solicitud por parte de una máquina cliente y cómo se realiza la concesión por parte del servidor.
Primero, un cliente que se conecta a una red y necesita asignación de una dirección IP mediante DHCP lanza una petición de tipo DHCP DISCOVER, o lo que es lo mismo, una solicitud de descubrimiento de servidores DHCP, como el cliente no sabe quién puede darle esta IP, lanza la solicitud a la dirección 255.255.255.255, o lo que es lo mismo hace una petición de tipo broadcast (a todas las direcciones IP de la red), poniendo como dirección de origen la dirección 0.0.0.0. Aunque esta petición la hace sin tener una IP asociada, este se identifica mediante la dirección física de su tarjeta (MAC).
Proceso de DHCP DISCOVER
En ese momento, el servidor de DHCP que está a la escucha responde enviando un paquete DHCPOFFER. De esta manera, el servidor se muestra como disponible para hacer una oferta de dirección IP y del resto de configuraciones para la máquina cliente. Además, curiosamente, es posible que más de un servidor pueda responder con una oferta, lanzando cada uno su DHCPOFFER.
Proceso de DHCP OFFER
Ahora, tanto cliente como servidor se han identificado el uno al otro y el cliente responde con un paquete DHCPREQUEST. En este momento, la dirección del cliente sigue siendo 0.0.0.0 porque aún no tiene una concesión por parte del servidor. Cuando se lanza esta petición, ya va etiquetada hacia uno de los servidores, por lo que el resto liberarán la comunicación y la dirección que hubieran reservado para este cliente.
Proceso de DHCP REQUEST
El servidor responde al DHCPREQUEST con un paquete DHCPACK (Acknowledgement), cerrándose así el ciclo de inicialización y facilitando la información solicitada. Es decir: la IP, máscara, puerta de enlace predeterminada, servidores DNS, etc., por lo que el cliente ya puede operar sobre la red sin problemas.
Proceso de DHCP ACK
A continuación, podemos ver el proceso en una sola imagen con los flujos de comunicación completos.
Concesión de direcciones IP mediante DHCP
Cuando el cliente quiere desconectarse, liberar la IP, declinar la concesión, etc., hará uso de los paquetes DHCPDECLINE o DHCPRELEASE.
Proceso de DHCP RELEASE
Además, tenemos que recordar que las concesiones normalmente tienen un tiempo asignado y, pasado este tiempo, el cliente tendrá que pedir una renovación de concesión. Normalmente cuando ha transcurrido un 50% del tiempo asignado empieza el proceso de renovación.
Es por este motivo que cuando el cliente ve que se le agota el tiempo de concesión, se lanzan paquetes DHCPREQUEST para hacer patente ante el servidor su disposición para la renovación. En principio, el servidor debería responder con un paquete DHCPACK, pero si el cliente no renueva la concesión vuelve a lanzar una petición cuando el 87.5% de la duración la concesión haya expirado. Si aun así no obtiene respuesta, lanzará un DHCPDISCOVER para buscar otro servidor de DHCP que pueda darle servicio.
Proceso de DHCP INFORM
Para ampliar la información aquí contenida y ver un detalle de las comunicaciones que se producen durante este periodo se puede consultar el siguiente enlace Conceptos básicos de DHCP (protocolo de configuración dinámica de host) dentro de Microsoft Learn.
Problemas típicos del servicio de DHCP
El servicio de DHCP no está exento de problemas, como no podía ser de otra manera. Aunque operemos correctamente el servicio, podemos encontrarnos con un problema puntual o con una configuración que debamos modificar en el servidor.
Problemas típicos del servicio DHCP en la parte del cliente
Por un lado, de la parte del cliente, es posible que se produzca algún error de registro, por lo que puede ser necesario que pidamos un cambio de configuración lanzando nuevamente los comandos que posibilitan el registro de la máquina cliente frente al servidor.
Los comandos que se usan para realizar una solución de problemas serán:
- ipconfig /release: El comando libera de manera manual la asignación de IP del protocolo IPv4 de la tarjeta sobre la que se hace la operativa, o de todas en caso de no especificar nada. Para ello lanza un mensaje DHCPRELEASE al servidor que proporciona DHCP. En caso de trabajar sobre IPv6 el comando a ejecutar será “ipconfig /release6”.
- ipconfig /renew: El comando hacer una solicitud de renovación de la concesión de IP para el protocolo IPv4. Afectará a todos los interfaces en caso de no haber puesto una interfaz en concreto. En caso de trabajar sobre IPv6, el comando a ejecutar será “ipconfig /renew6”.
Liberamos la asignación de IP del cliente Windows
Otro problema típico de los clientes es cuando se hace una solicitud DHCP pero, por cualquier motivo, no recibe una concesión. En estos casos, el sistema asigna lo que se llama una dirección APIPA (Automatic Private Internet Protocol Addressing), que consiste en una dirección reservada del espacio de direcciones 169.254.x.x (169.254.0.0 – 169.254.255.255).
La solución típica a este problema suele ser relanzar los comandos vistos para el caso anterior, para así forzar una nueva petición. Esto suele funcionar, aunque lo más recomendable es comprobar que los medios físicos están correctamente conectados (comprobar el cable de red) antes de lanzar estos comandos.
Problemas típicos del servicio DHCP en la parte del servidor
Por otro lado, tenemos los problemas que pueden haberse generado en la parte del servidor. Estos son ocasionados comúnmente por pequeños problemas de configuración o por tiempo de uptime (tiempo encendido o tiempo encendido) del servidor.
La mayoría de los problemas que puede producir un servidor de DHCP en el mundo Microsoft son derivados básicamente del tiempo de funcionamiento, ya que el servicio puede quedarse tonto, por lo que será necesario reiniciarlo.
Esto mismo puede sucederle a el servicio de DHCP, que puede necesitar un reinicio o bien reiniciar un ámbito de concesiones, etc.
Otro tema es que es una buena práctica disponer de más de un servidor de DHCP, ya que en caso de caer el servidor DHCP, durante el tiempo que esté offline no se van a poder conceder nuevas direcciones IP, lo cual puede ser un drama en según qué infraestructuras.
Por ejemplo, supongamos que tenemos un servidor DHCP sirviendo concesiones IP en un hotel. Si el servidor DHCP queda fuera de servicio, los clientes que intenten validarse en la Wifi del hotel no podrán recibir una IP y por tanto no podrán conectar a internet, consultar el correo, hablar con sus familias por videoconferencia, etc.
Visto esto, podemos decir que un servidor de DHCP no tiene que estar nunca solo, sino que tiene que formar parte de un clúster de DHCP en el que haya más de un servidor DHCP, todos los clientes apunten a una dirección VIP (dirección única para el clúster) y, en caso de caída del servidor que está dando servicio, que retome el testigo un segundo servidor.
Otro problema típico es derivado del tiempo de concesión de las direcciones IP a los clientes que se conectan. Esto suele darse porque en los servidores DHCP de Microsoft, el tiempo de concesión es de 8 días por defecto y esto no es lo idóneo para todos los usos. Tenemos que pensar que el espacio de concesiones IP es finito, pudiendo darse por ejemplo 254 concesiones a repartir entre todos los clientes. Y cuando una concesión es asignada a un cliente, ésta no se libera hasta que pase el tiempo asignado para dicha concesión, a menos que el cliente la libere manualmente.
Si miramos, por ejemplo, una empresa en la que se va a dar servicio a estaciones de trabajo, el tiempo que viene configurado por defecto puede ser correcto, ya que no va a haber cambios sustanciales; pero si pensamos en el hotel del que hablábamos antes, conceder las IP por 8 días es una muy mala idea, porque seguramente los clientes se alojarán una sola noche, quedando la reserva bloqueada por 7 días adicionales.
Conclusión:
Como hemos comentado en el artículo, el servicio de DHCP (Dynamic Host Configuration Protocol) o Protocolo de Configuración Dinámica de Host es uno de los servicios fundamentales de toda red empresarial o doméstica que cuente con gran número de host o en la que se quiera fomentar una gestión ágil de los equipos conectados.
Su funcionamiento es relativamente sencillo de comprender, la configuración en clientes es tremendamente sencilla y la configuración en servidores es bastante fácil de llevar a cabo, sin contar con que el coste administrativo es ínfimo en comparación con el coste de mantener una infraestructura con direcciones IP fijas.
Por último, hemos visto que el servicio no está exento de averías o problemas, pero éstas son fácilmente solucionables en casi todos los casos posibles.
Esperamos que este artículo haya resultado del agrado del lector y que sigas leyendo otros artículos existentes en este blog como por ejemplo Qué hacer cuando el Servidor DNS no responde.
¡Gracias por acompañarnos!