Fecha y Hora en Dominios Active Directory

En ambientes de Dominio Active Directory es fundamental que la fecha y hora de todas las máquinas que lo forman estén sincronizadas. Por omisión, si la fecha/hora de una máquina difiere en más de 5 minutos con el Controlador de Dominio que debe hacer la autenticación, esta fallará, e inclusive se puede suspender la replicación entre Controladores de Dominio

Lo anterior explica en parte el motivo por el cual no se puede cambiar en forma arbitraria la fecha y hora de un equipo que forma parte de un Dominio. Teniendo además en cuenta, que luego de un tiempo el sistema se sincronizará automáticamente sin aviso

Veremos primero cómo se realiza esta sincronización y si debemos hacer algún cambio en la configuración por omisión

Una consideración importante a tener en cuenta es que el sistema trabaja con el llamado “Tiempo UTC”, que se encarga de tener en cuenta las diferentes zonas horarias del planeta

Por lo tanto es importante que si el Dominio tuviera máquinas ubicadas físicamente en diferentes zonas horarias, cada una esté configurada para usar la correspondiente

Veamos primero cómo se configura el sistema de coordinación de fecha y hora en un ambiente de Dominio. Esta sincronización se hace automáticamente, salvo que la diferencia de tiempo sea muy grande. No he podido encontrar documentación sobre cuánto es “muy grande” pero he visto casos donde se producía este inconveniente

  1. Cada máquina que forma parte de un Dominio Active Directory, durante el arranque sincroniza su fecha y hora con el Controlador de Dominio que autentica la cuenta de máquina
  2. Cada Controlador de Dominio sincroniza su fecha y hora con el Controlador de Dominio del propio Dominio que tiene el rol “Emulador PDC”
  3. Si existe un Bosque de Dominios, cada Controlador de Dominio con el rol “Emulador PDC” sincroniza su fecha y hora con el Controlador de Dominio con el rol “Emulador PDC” del Dominio Raíz

Hasta ahora todo parece lógico, pero ¿Y el Controlador de Dominio con el rol “Emulador PDC” del Dominio Raíz? ¿con qué sincroniza?

Como podemos ver de lo anterior, se hace una sincronización de tipo jerárquico, cada uno con “su superior”, pero el “más superior” queda podríamos decir huérfano :)

Esto hay que configurarlo manualmente

Y es lo único que hay que hacer. En mi experiencia el sistema de sincronización de fecha y hora funciona adecuadamente hasta que alguien con muy buena intención trata de “arreglarlo”

El problema de no configurar con un Servidor de Tiempo externo (“Time Server”) al “Emulador PDC” del Dominio Raíz, es que si por algún problema a este se le cambiara la fecha y hora incorrectamente arrastraría a toda la red. Así que es altamente conveniente que este equipo esté sincronizado con un “Time Server” público de Internet que ofrecen datos confiables

La lista de “Time Servers” en Internet es muy amplia, pero si quieren tomar una referencia consulten “A list of the Simple Network Time Protocol (SNTP) time servers that are available on the Internet

Volviendo al tema que nos quedó pendiente, sobre la sincronización horaria del “Emulador PDC” del Dominio Raíz. Si no cambiamos ningúan valor por omisión y observamos el Visor de Eventos de esta máquina, veremos uno con Origen “Time-Service” e ID 12, que básicamente lo que nos informa es lo que habíamos comentado antes, que por estar en lo más alto de la jerarquía se debería configurar para usar un “Time Server” externo

Hay dos comandos diferentes que permiten hacer la configuración horaria: W32TM.EXE” y NET TIME

Es altamente recomendable usar W32TM.EXE que es el específico de Windows y no el genérico NET TIME. Para el que le interese profundizar el tema puede consultar “NET TIME and w32time

A su vez, la configuración se puede hacer de dos formas diferentes aunque el resultado es el mismo:

  • El comando W32TM.EXE
  • Editando directamente el Registro

La sintaxis del comando W32TM.EXE es muy amplia y a veces compleja, en este caso lo haré mediante línea de comandos, pero además mostraré los cambios en el registro

Para el que le interese ver todas las opciones que permite el comando, puede utilizar “W32TM /?” o directamente consultar “W32tm

Observen la siguente captura de pantalla, que corresponde el “Emulador PDC” de un Dominio Raíz con el evento nombrado anteriormente. En el Registro seleccionemos “HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Parameters”

Como podemos observar, en la variable “Type” está configurado “NT5DS”. Esto implica que está configurado para seguir la jerarquía normal, pero el problema es que esta máquina es lo más alto de esta jerarquía

Podemos sacar una lista de “Time Servers” de Internet, que son confiables, y por país desde el siguiente enlace: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers

En mi caso he seleccionado uno de Argentina «tick.nap.com.ar». Esto lo he hecho mediante el comando:

w32tm.exe /config /manualpeerlist:tick.nap.com.ar /syncfromflags:manual /reliable:yes /update

Lo cual se ve reflejado en el Registro, y observen que el sistema ha cambiado automáticamente la configuración de “Type”, de “NT5DS” a “NTP”

En el resto de las máquinas del Bosque no hace falta hacer ninguna configuración adicional pues por omisión están configuradas para seguir la jerarquía necesaria (NT5DS)

 

Para quien quiera profundizar el tema dejo enlaces con información adicional:

“It’s Simple!” – Time Configuration in Active Directory – NEPA PFE

Configuring your PDCE with Alternate Time Sources | Ask the Directory Services Team

Information on RFC 1305 » RFC Editor (Obsolete)

Information on RFC 5905 » RFC Editor (Proposed Standard)

Information on RFC 7822 » RFC Editor (Proposed Standard Update)

 

Resumiendo:

  • No se puede alterar en forma manual la fecha y hora de una máquina porque producirá problemas de autenticación, y puede sincronizarse automáticamente y sin aviso
  • Cada máquina debe configurarse con la Zona Horaria correspondiente a la misma, el sistema se encarga de usar sincronizar usando UTC
  • Solamente hay que configurar el “Emulador PDC” del Dominio Raíz para evitar posibles problemas
  • Salvo algún problema muy especial, no cambie ninguno de los otros valores por omisión

 

Publica un comentario o deja una referencia: URL de la referencia.

Comentarios

  • federicodeluca  El 12/09/2016 a las 10:09

    Guillermo, muchas gracias por el post.
    Para acá (Uruguay) es muy útil esto, ya que hace poco más de un año todas las empresas se están migrando a «eFactura» (implementación que envía constantemente lo facturado por las mismas a entes gubernamentales) y el tener diferencia horaria con dichos entes genera que el sistema no envié la información.

    • Guillermo Delprato  El 12/09/2016 a las 11:05

      Hola Federico, yo supongo y sin conocer que al ser una notificación en línea el sistema debe hacer un tipo de control horario. Es lógico para que no se puedan ingresar facturas de tiempo atrás :) y supongo que a este te referís
      Lo importante, y es algo que he visto muchas veces que la gente pregunta, es que para poder hacer uso de una aplicación contable, que no permite poner fecha/hora de la transacción, simplemente cambian fecha/hora de la máquina, y así comienzan los «errores extraños» o inclusive se quejan porque el sistema lo corrigió automáticamente y sin avisar
      O inclusive también, hay quien tiene dudas sobre qué hacer cuando tienen máquinas en lugares con diferente zona horaria

  • federicodeluca  El 12/09/2016 a las 18:11

    Los usuarios y sus «errores extraños»…
    No tengo muy claro como es el funcionamiento, porque eso lo maneja la gente del software; pero al implementar «efactura» nos han llamado varios clientes para solucionar diferencias de 2 o 3 minutos con los servidores gubernamentales.
    La configuración que detallás en tu post viene bien para tener a todos los clientes en la hora exacta y evitar este problema

    • Guillermo Delprato  El 12/09/2016 a las 19:34

      Se ve que son bastante estrictos con la diferencia horaria, fijate en los otros parámetros del registro, o en los enlaces externos que puse, que a lo mejor les conviene que la sincronización sea más frecuente que lo normal

  • federicodeluca  El 12/09/2016 a las 23:27

    Pero luego de sincronizado por primera vez esto no debería variar, salvo algún problema de hardware, no?

    • Guillermo Delprato  El 13/09/2016 a las 07:39

      En realidad para que todo funcione bien, hay que hacer que el «PDC Emulator» sincronize con un «time server» externo, y nada nada más :)
      Muchos hacen que todo se complique cuando comienzan a hacer otros cambios
      Sí, salvo por supuesto que tengan problemas con la pila que mantiene fecha y hora, porque he visto en algún caso que cuando la diferencia es muy grande no sincroniza

  • federicodeluca  El 13/09/2016 a las 10:38

    Bárbaro, como siempre muchas gracias Guillermo!
    Hasta el próximo post :)

  • césar  El 30/05/2017 a las 13:52

    Hola Guillermo, ¿hay alguna manera de crear un reporte donde el inicio de sesión de los usuarios quede registrado con fecha y hora? ¿Tienes un post sobre eso?

    • Guillermo Delprato  El 30/05/2017 a las 14:48

      Esa información está o puede configurarse, pero no es tan sencillo como lo imaginas. Hay varios tipos de logon (interactivo, sobre la red, escritorio remoto, etc.)
      En la auditoría hay que habilitar «Account Logon» sobre los Controladores de Dominio, y «logon» en las máquinas. Luego hay que aplicar el filtrado para ver cada uno de los diferentes eventos

      • césar  El 30/05/2017 a las 16:03

        Muchas gracias Guillermo :)

  • Walter  El 16/04/2018 a las 16:53

    Hola Guilltermo, te comento que realize esta configuracion, pero el PDC se desconfigura y se sale de horario. Tenes alguna idea de lo que pueda estar pasando? …otra consulta mi DC tiene que tener salida a internet?

    • Guillermo Delprato  El 16/04/2018 a las 19:08

      Si es virtual revisa que hay una configuración para que no sincronice la hora con el host físico
      Para que el PDC pueda ser «Time server» por supuesto que necesita conectividada a Internet
      Y la última puede que la pila esté dando problemas
      Por supuesto que cada máquina debe estar en su correspondiente zona horaria, el sistema utiliza tiempo universal

  • Richard Ortiz. S  El 12/07/2018 a las 13:03

    Hola Guillermo. Gracias por la información. tengo un caso que es lo contrario. necesito que 3 servidores no sincronicen la hora con el NTP, estan en el dominio pero que pueda cambiarlas para pruebas que requieren en areas de desarrollo.

    En la configuración de “Type”, de “NT5DS” que valor debemos colocar para la exclusión?

    • Guillermo Delprato  El 12/07/2018 a las 16:28

      Hola Richard, eso no funcionará porque la autenticación depende de la coincidencia, menor a 5 minutos, de la fecha y hora entre las máquinas

  • Jorge Chirinos  El 08/10/2018 a las 11:34

    Hola Guillermo si yo quisiera activar el botón de cambio de horario automático en win10 en los equipos del dominio para que un usuario cambie la fecha a voluntad sin que el sistema le sincronice y vuelva a la fecha correcta.Como puedo hacer? Bebemos hacerlo porque e un sistema necesitan realizar algunos procesos con fecha anteriores y luego de varios minutos vuelve nuevamente a la fecha correcta.

    Gracias

    • Guillermo Delprato  El 08/10/2018 a las 12:10

      No se puede hacer. La autenticación usa protocolo Kerberos que es sensibla a fecha y hora. Cualquier diferencia de tiempo de más de cinco minutos hará que la autenticación falle

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: