La sincronizacion precisa de la hora es esencial en entornos Windows, particularmente en dominios de Active Directory donde la autenticacion Kerberos requiere que los relojes esten dentro de 5 minutos de diferencia entre si. Si la hora se desfasa demasiado, los usuarios no pueden iniciar sesion, los servicios fallan en la autenticacion y la replicacion puede romperse. Esta guia cubre como funcionan los Servicios de Hora de Windows (W32Time), como configurarlos correctamente en un entorno AD y como solucionar problemas de sincronizacion de hora.

Como funciona la sincronizacion de hora en Windows

La jerarquia NTP en Active Directory

Active Directory usa un modelo jerarquico de sincronizacion de hora:

External NTP Source (e.g., time.nist.gov, pool.ntp.org)
    └── PDC Emulator (Forest Root Domain)
          └── Domain Controllers
                └── Domain Member Computers
  1. Los equipos miembros del dominio sincronizan sus relojes con el controlador de dominio contra el que se autenticaron
  2. Los controladores de dominio sincronizan con el emulador PDC de su dominio
  3. El emulador PDC en el dominio raiz del bosque debe sincronizar con una fuente NTP externa confiable

Si el emulador PDC no tiene configurada una fuente de hora externa, depende de su propio reloj de hardware, que puede desfasarse significativamente con el tiempo, especialmente en maquinas virtuales.

Por que importa la hora

  • La autenticacion Kerberos tiene una tolerancia maxima predeterminada de 5 minutos. Relojes fuera de esta ventana causan fallos de autenticacion.
  • La replicacion de AD usa marcas de tiempo para resolver conflictos. Una hora incorrecta puede causar problemas de replicacion.
  • La correlacion de logs entre servidores requiere hora sincronizada para un analisis preciso de eventos.
  • La validacion de certificados depende de la hora precisa para las verificaciones de expiracion.
  • Las tareas programadas y respaldos se ejecutan a la hora incorrecta si los relojes estan desfasados.

Configuracion del emulador PDC para NTP externo

La configuracion mas critica es el emulador PDC. Esta es la fuente de hora autoritativa para todo el dominio (o bosque).

Identificar el emulador PDC

# Find the PDC Emulator
Get-ADDomain | Select-Object PDCEmulator

# Or use netdom
netdom query fsmo

Configurar la fuente NTP externa

Ejecuta estos comandos en el emulador PDC:

# Configure the NTP peers
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org" /syncfromflags:manual /reliable:YES /update

# Restart the Windows Time service
net stop w32time
net start w32time

# Force an immediate sync
w32tm /resync /rediscover

Parametros explicados:

  • /manualpeerlist — Lista de servidores NTP separados por espacios
  • /syncfromflags:manual — Sincronizar desde la lista manual de peers (no desde la jerarquia del dominio)
  • /reliable:YES — Anunciar este servidor como una fuente de hora confiable
  • /update — Aplicar los cambios de configuracion

Fuentes NTP recomendadas

FuenteDireccionNotas
NTP Pool Project0.pool.ntp.org a 3.pool.ntp.orgPool distribuido, la opcion mas comun
NISTtime.nist.govServidor de hora del gobierno de EE.UU.
Googletime.google.comUsa enfoque de “leap smearing”
Microsofttime.windows.comPredeterminado para Windows sin dominio

Para redundancia, especifica multiples servidores en la lista de peers.

Configuracion de controladores de dominio

Los controladores de dominio distintos al emulador PDC deben sincronizar desde la jerarquia del dominio (el comportamiento predeterminado):

# Reset a DC to sync from the domain hierarchy
w32tm /config /syncfromflags:domhier /update

# Restart the service
net stop w32time
net start w32time

Esta es la configuracion predeterminada. Solo necesitas ejecutar esto si un DC fue previamente configurado con peers manuales.

Configuracion de equipos miembros del dominio

Los miembros del dominio sincronizan automaticamente con su DC de autenticacion. Normalmente no se necesita configuracion. Si necesitas anular:

# Force resync on a client
w32tm /resync

# Check the current time source
w32tm /query /source

Referencia de comandos W32tm

Verificar el estado de sincronizacion

# Show current time source and status
w32tm /query /status

# Verbose status output
w32tm /query /status /verbose

# Show configured peers
w32tm /query /peers

# Show the current configuration
w32tm /query /configuration

Monitorear la hora en todo el dominio

# Monitor all DCs in the domain
w32tm /monitor

# Monitor specific computers
w32tm /monitor /computers:DC01,DC02,DC03

# Stripchart (real-time offset display)
w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly

La salida de /monitor muestra el desfase (en segundos) entre cada DC y el emulador PDC. Cualquier valor superior a 1-2 segundos amerita investigacion.

Forzar resincronizacion

# Force resync
w32tm /resync

# Force resync and rediscover peers
w32tm /resync /rediscover

# Force resync on a remote computer
w32tm /resync /computer:WORKSTATION01

Registrar y desregistrar el servicio

# Re-register the W32Time service (fixes corrupted configurations)
w32tm /unregister
w32tm /register

# Then restart
net start w32time

Configuracion de Directivas de Grupo

Para entornos grandes, configura la sincronizacion de hora a traves de Directivas de Grupo.

Configurar el emulador PDC mediante GPO

Crea un GPO vinculado a la OU de Controladores de Dominio con un filtro WMI que apunte solo al emulador PDC:

Filtro WMI:

SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 5

(DomainRole 5 = Emulador PDC)

Configuracion del GPO:

Navega a:

Computer Configuration > Policies > Administrative Templates > System > Windows Time Service > Time Providers
  • Enable Windows NTP Client: Habilitado
  • Configure Windows NTP Client:
    • NtpServer: 0.pool.ntp.org,0x9 1.pool.ntp.org,0x9 2.pool.ntp.org,0x9
    • Type: NTP
    • CrossSiteSyncFlags: 2
    • SpecialPollInterval: 3600

La bandera 0x9 significa modo NTP con intervalo de sondeo especial.

Configurar todos los demas DCs mediante GPO

Crea un GPO separado para todos los DCs con un filtro WMI que excluya al PDC:

Filtro WMI:

SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 4

(DomainRole 4 = Controlador de dominio, no PDC)

Configuracion del GPO:

  • Configure Windows NTP Client:
    • Type: NT5DS (sincronizar desde la jerarquia del dominio)

Configurar miembros del dominio

Los miembros del dominio sincronizan desde la jerarquia por defecto. Si necesitas un GPO:

  • Type: NT5DS

Solucion de problemas de sincronizacion de hora

La hora se esta desfasando en un controlador de dominio

  1. Verifica si el DC conoce al emulador PDC:

    w32tm /query /source

    Deberia mostrar el nombre del emulador PDC.

  2. Verifica la salud de la replicacion:

    repadmin /replsummary
  3. Fuerza la resincronizacion:

    w32tm /resync /rediscover

“The computer did not resync because no time data was available”

Esto significa que la fuente de hora configurada es inalcanzable:

  • Si estas en el emulador PDC, verifica que el firewall permite el puerto UDP 123 de salida hacia los servidores NTP.
  • Prueba la conectividad: w32tm /stripchart /computer:pool.ntp.org /samples:3
  • Verifica la resolucion DNS de los nombres de los servidores NTP.

La hora esta significativamente desfasada (mas de 5 minutos)

Kerberos puede impedir la autenticacion. Establece la hora manualmente primero:

# Manually set the time
net time /setsntp:time.nist.gov

# Or set it directly
w32tm /config /manualpeerlist:"time.nist.gov" /syncfromflags:manual /update
net stop w32time
net start w32time
w32tm /resync /force

En maquinas virtuales, tambien verifica:

  • Hyper-V: Deshabilita el servicio de integracion de sincronizacion de hora si la hora del host es incorrecta. En Hyper-V Manager > Configuracion de VM > Servicios de Integracion, desmarca Sincronizacion de hora.
  • VMware: Verifica la configuracion de sincronizacion de hora de VMware Tools. En el archivo .vmx, establece tools.syncTime = "FALSE" si usas la sincronizacion de hora de AD.

El servicio W32Time no inicia

# Re-register the service
w32tm /unregister
w32tm /register
net start w32time

Si eso no funciona, verifica el registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time

Asegurate de que el servicio este configurado con el valor Start de 2 (Automatico).

Verificar los registros de eventos

Los eventos del servicio de hora se registran en:

Event Viewer > Applications and Services Logs > Microsoft > Windows > Time-Service

Tambien verifica el registro del sistema para los Event IDs:

  • Event ID 35 — El servicio de hora ahora esta sincronizando con…
  • Event ID 36 — El servicio de hora no ha podido sincronizar…
  • Event ID 129 — El proveedor del cliente NTP no puede alcanzar el servidor…

Consideraciones para maquinas virtuales

Las maquinas virtuales son particularmente susceptibles al desfase de hora:

  • VMs de Hyper-V tienen un servicio de integracion de sincronizacion de hora que sincroniza el reloj del invitado con el host. En entornos AD, deshabilita esto para los DCs para evitar conflictos con la jerarquia de hora de AD.
  • VMs de VMware tienen la sincronizacion de hora de VMware Tools que tambien puede entrar en conflicto con la sincronizacion de hora de AD. Deshabilitala en los DCs.
  • Despues de restaurar una VM desde una instantanea, el reloj puede estar configurado a la hora de la instantanea. Ejecuta w32tm /resync /force inmediatamente despues de la restauracion.

Resumen

Los Servicios de Hora de Windows (W32Time) mantienen la sincronizacion del reloj en todo tu entorno de Active Directory a traves de un modelo jerarquico. El paso mas critico es configurar el emulador PDC para sincronizar con una fuente NTP externa confiable — sin esto, el desfase de hora se propagara a todos los miembros del dominio. Usa w32tm /query /status para verificar la configuracion, w32tm /monitor para comprobar todos los DCs, y Directivas de Grupo para la configuracion a nivel empresarial. En maquinas virtuales, ten cuidado de evitar conflictos entre la sincronizacion de hora del hipervisor y la jerarquia de hora de AD.