Cuando un servidor DHCP de Windows Server queda sin direcciones disponibles, la conexión de nuevos dispositivos se interrumpe y la productividad de toda la organización se ve comprometida. A continuación encontrarás una guía exhaustiva para recuperar IP inactivas de forma segura, automatizar la limpieza y dimensionar tu ámbito para que la situación no vuelva a repetirse.
Resumen del problema
Un servidor DHCP 2019 agotó el rango configurado y dejó de emitir concesiones. La causa habitual es un número alto de leases expirados o de equipos que han abandonado la red pero siguen “reteniendo” su IP en la base de datos de DHCP. El objetivo es:
- Liberar rápidamente las direcciones huérfanas o vencidas.
- Ajustar parámetros (duración de lease, sincronización horaria, tamaño del ámbito) para evitar nuevos bloqueos.
- Mejorar el monitoreo y las alertas para que el incidente no sorprenda de nuevo al equipo de TI.
Solución y pasos propuestos
Paso | Qué hacer | Objetivo |
---|---|---|
Comprobar el estado de los leases | Administrador DHCP ▸ ámbito ▸ Active Leases. Ordena por Expiry o State para localizar los que ya caducaron. | Identificar rápidamente las IP que se pueden recuperar. |
Limpieza automática | El servicio libera las direcciones cuando vence el lease. Comprueba que la hora del servidor y de los clientes sea correcta y que la duración del lease no sea excesiva (8–24 h en redes de alta rotación). | Evitar saturación futura. |
Forzar una limpieza manual | Opción A: reinicia el servicio connet stop dhcpserver && net start dhcpserver Opción B: consola ▸ Scope ▸ Address Leases ▸ Delete sobre entradas caducadas. Opción C: PowerShell: Get-DhcpServerv4Lease -ScopeId <scope> -State Declined,Expired | Remove-DhcpServerv4Lease | Liberar al instante direcciones que ya no se usan. |
Sincronizar con DNS dinámico | Si utilizas DDNS, ejecuta “Clean Up Expired Registrations in DNS” (hasta Server 2019). En Server 2022:Invoke-DnsServerZoneScavenge -Name <zona> | Evitar registros obsoletos que reasignen IP a nombres incorrectos. |
Medidas a largo plazo | Ampliar el ámbito (más direcciones o nuevo scope). Reducir la duración del lease si el parque de dispositivos fluctúa. Segmentar la red (VLANs o scopes adicionales) para repartir la carga. | Reducir la probabilidad de volver a quedarse sin direcciones. |
Causas más frecuentes del agotamiento DHCP
- Baja rotación de concesiones: Leases muy largos (por ejemplo, 7 días) en redes con usuarios o dispositivos “de paso”.
- Falta de sincronización horaria: Si el reloj del servidor o de los clientes se atrasa, el motor DHCP “cree” que la concesión sigue vigente.
- Equipos desconectados permanentemente: Portátiles o dispositivos IoT que se eliminaron, pero su MAC permanece en la base de datos.
- Exceso de dispositivos no corporativos: BYOD, invitados o laboratorios que crecen sin control.
- Errores de diseño de la subred: Rango demasiado pequeño o reservas estáticas que desperdician direcciones.
Diagnóstico detallado
Auditar el uso actual del ámbito
Abre una consola PowerShell con privilegios y ejecuta:
Get-DhcpServerv4ScopeStatistics -ScopeId <scope>
El comando devuelve cuatro métricas clave:
- InUse: número de IP activas.
- Avail: IP libres.
- Offer: concesiones enviadas pero pendientes de ACK (suele ser 0).
- PendingExpiry: concesiones en periodo de gracia.
Si Avail es 0 o muy bajo, confirma cuántas direcciones están en estado Expired:
Get-DhcpServerv4Lease -ScopeId <scope> -State Expired | Measure-Object
Verificar los relojes NTP
Una causa silenciosa de problemas es la desincronización horaria. El servicio DHCP y el proceso de renovación dependen de sellos de tiempo precisos.
w32tm /query /status
w32tm /resync
Aplica Group Policy para forzar a los clientes a apuntar al mismo servidor NTP que el controlador de dominio.
Detectar colisiones o “IP fantasma”
En redes con switches no gestionados, es posible que un equipo utilice static IP dentro del mismo rango. Ejecuta:
arp -a
Compara las MAC resultantes con las mostradas en la lista de concesiones. Las que no coincidan deben investigarse; quizá necesiten una reserva o moverse a un segmento distinto.
Profundizando en cada paso de la solución
Inspeccionar y ordenar las concesiones caducadas
Desde la MMC (dhcpmgmt.msc) navega a Address Leases y ordena las columnas Expiry/State. Haz clic con el botón derecho en las líneas marcadas como Expired o Declined y selecciona Delete. Cada eliminación libera al instante la dirección.
Si el número de entradas es muy grande (centenares), PowerShell es más rápido:
Get-DhcpServerv4Lease -ScopeId <scope> -State Declined,Expired |
Remove-DhcpServerv4Lease -Confirm:$false
Rearrancar el servicio DHCP
Cuando se reinicia dhcpserver
, el motor vuelve a leer la base de datos JET y descarta de forma interna las filas cuyo tiempo de expiración ya pasó. Este proceso no corta sesiones activas, pero recomiéndase hacerlo en horario de bajo tráfico.
Sincronizar DHCP y DNS
Si la red utiliza Dynamic DNS, los registros de host A/AAAA no se borran automáticamente cuando la IP expira. Esto provoca resoluciones obsoletas y, en el peor de los casos, conflictos de nombre. En Server 2019 se mantiene la opción gráfica (DNS Manager ▸ Action ▸ Scavenge Stale Resource Records). En versiones posteriores:
Invoke-DnsServerZoneScavenge -Name contoso.internal
Ajustar la duración del lease
El valor óptimo depende del comportamiento de tu parque:
- Redes de oficina estándar: 3–5 días.
- Espacios de coworking, aulas o salas de formación: 8–24 horas.
- Salas de exposiciones, eventos temporales: 2–4 horas.
Recuerda que reducir la duración aumenta el tráfico DHCP (DISCOVER/OFFER/REQUEST/ACK), pero es preferible a un scope exhaust que bloquea la red.
Ampliar o redimensionar el ámbito
Cuando la población de clientes supera el 80 % de uso sostenido, Microsoft recomienda:
- Extender el prefijo: Pasar, por ejemplo, de /24 a /23 si la topología lo permite.
- Crear un nuevo scope en la misma LAN: Requiere rediseñar gateways o añadir superScopes.
- Segmentar con VLANs: Otorga un pool independiente a cada departamento o laboratorio.
Automatización avanzada con PowerShell
Para tareas periódicas (por ejemplo, cada madrugada a las 4:00) programa un Task Scheduler que ejecute:
$Scope = '10.20.30.0'
$Expired = Get-DhcpServerv4Lease -ScopeId $Scope -State Declined,Expired
if ($Expired.Count -gt 0) {
$Expired | Remove-DhcpServerv4Lease -Confirm:$false
Add-EventLog -LogName 'Application' -Source 'DHCP Cleanup' `
-EntryType Information -EventId 1001 `
-Message "$($Expired.Count) leases were purged from scope $Scope"
}
Registra un evento 1001 cada vez que se purgan concesiones, facilitando la auditoría posterior.
Sistemas de alertas y monitoreo proactivo
Los controladores de dominio Windows Server integran contadores de rendimiento (Performance Monitor ▸ DHCP Server):
% Free Addresses
Declines/Sec
Discovers/Sec
Configura Data Collector Sets o exporta dichos contadores a soluciones como Azure Monitor, Grafana o PRTG. Establece umbrales: alerta warning al 20 % libre y crítica al 10 %. Así podrás actuar antes de un bloqueo total.
Buenas prácticas de seguridad alrededor de DHCP
- Habilita DHCP Snooping en switches de acceso para evitar rogue servers.
- Asigna reservas a servidores y dispositivos críticos, reduciendo el riesgo de cambios de IP inesperados.
- Restringe el acceso a la consola DHCP mediante Delegation of Control.
- Realiza backups de la base de datos DHCP (
netsh dhcp server export C:\Backup\dhcpexport.txt all
) tras cada cambio masivo.
Preguntas frecuentes
¿Pierden conectividad los equipos actuales si borro concesiones caducadas? No. Las entradas Expired ya no están en uso; el cliente habrá pedido una nueva IP o habrá quedado offline. ¿Cuánto tarda en liberarse una IP tras su expiración? Inmediatamente si los relojes están coordinados. No obstante, la limpieza automática se ejecuta cada 60 min aprox. ¿Puedo cambiar el intervalo de limpieza que hace DHCP? Sí, mediante la clave de Registro DatabaseCleanupInterval
en HKLM\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters
(en minutos). Modifícala solo si comprendes el impacto en la carga del servidor. ¿Es recomendable usar superScopes? Solo en redes planas donde no sea posible re‑segmentar. En entornos modernos se prefiere VLAN + routers con DHCP relay.
Conclusiones
La falta de direcciones en un servidor DHCP rara vez es un “evento sorpresa”: suele gestarse durante semanas de crecimiento no controlado. Con los pasos descritos—auditoría de leases, purgado manual o automatizado, sincronización con DNS y ajuste de parámetros—recuperarás capacidad en minutos y pondrás las bases para un servicio robusto a largo plazo.
Implanta alertas antes de alcanzar el 80 % de ocupación y revisa la duración de los leases cuando preveas picos de dispositivos invitados. Así evitarás interrupciones, mantendrás la reputación de tu departamento de TI y garantizarás una red fluida para usuarios y servicios.