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

 

Post a comment or leave a trackback: Trackback URL.

Comentarios

  • federicodeluca  On 12/09/2016 at 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  On 12/09/2016 at 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  On 12/09/2016 at 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  On 12/09/2016 at 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  On 12/09/2016 at 23:27

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

    • Guillermo Delprato  On 13/09/2016 at 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  On 13/09/2016 at 10:38

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

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: