Estoy buscando un servidor NTP, preferiblemente gratuito, para Windows Server 2003/2008. Ya hemos probado el Windows Time Server integrado, pero nuestras pruebas mostraron que no es muy preciso, vemos diferencias de tiempo de hasta 500 ms. La diferencia de tiempo máxima que podemos permitir para nuestra aplicación es de ~ 100 ms.
Ahora ya hemos usado el Meinberg NTPd para Windows. Funciona muy bien, excepto que tenemos un gran problema: si hay un problema de conexión de red entre el cliente y el servidor, el servidor ntp está en estado de pánico. No le dará al cliente un nuevo tiempo hasta que reiniciemos el servicio ntp. Este es un gran problema que nos ha causado algunos problemas. Funcionó bien durante meses hasta que hubo un problema de red que no notamos, solo lo notamos después de una semana cuando la diferencia horaria ya era de 30 segundos. en los clientes
Por lo tanto, sugiera un servidor NTP alternativo para Windows. Hice Google pero obtengo muchos resultados de búsqueda no relacionados.
Editar: Hasta ahora, la versión de Windows NTTP era muy precisa y me gustaría seguir con ella. El único problema es el "estado de pánico" después de una desconexión de la red. Quizás algunos sepan aquí cuál es la causa de esto y cómo solucionarlo. Además, olvidé mencionar que tenemos una configuración de servidor / cliente como esta:
Servidor1 -> Servidor2 -> Servidor3 -> Cliente1 -> Cliente2 -> Cliente3
Entonces Server2 obtiene su tiempo de Server1, Server3 obtiene su tiempo de Server2 y los Clientes obtienen su tiempo de Server3. Además, hay clientes conectados directamente a Server2. Es importante que todos los servidores y clientes tengan exactamente el mismo tiempo (dentro de ~ 100 ms)
Ahora había un problema de red con Server3 y sus clientes. Los servidores ejecutan el puerto ntpd para Windows, que actúa como servidor y cliente NTP. Los clientes tienen Dimension4 como cliente NTP. Después del problema de red, el mensaje de error en D4 fue algo como esto (fuera de mi cabeza, no tengo el mensaje de error exacto):
Respuesta del servidor: el servidor está en estado de pánico (no se pudo sincronizar el reloj)
Leí los documentos ntpd, y la única mención de "pánico" es cuando la diferencia horaria es de 10000 segundos, lo que hará que salga del servidor ntpd, pero este no fue el caso. También hay un interruptor de línea de comando "-g" para deshabilitar la salida de emergencia, pero ya está configurado de manera predeterminada.
¿Alguna idea de qué podría causar el estado de pánico y cómo deshacerse de él la próxima vez?
Vemos mucho mejor que 500 ms desde W32time, más como 16 ms, que es la resolución de los temporizadores del sistema de Windows. Esto se mide mediante servidores NTPd Linux stratum-2 reales en la misma LAN gigabit. Google "herramientas y configuraciones del servicio horario de Windows" y lea sobre la configuración del "intervalo de actualización", que puede modificarse mediante la política de grupo o directamente en el registro. No puedo comprobarlo en este momento, pero recuerdo que tenemos ese valor establecido en 100 para todos nuestros servidores, que es el predeterminado para los controladores de dominio pero no para otros miembros del dominio de Windows.
Actualizado: De hecho, tenemos este valor establecido en 100 para todos nuestros servidores. Los detalles de la configuración UpdateInterval:
Como puede ver, por defecto W32time solo "dirige" el reloj una vez cada 30,000 tics para los controladores que no son de dominio, o mucho peor si no son miembros de un dominio. Una marca en Windows suele ser 1/64 de segundo dependiendo del hardware, lo que significa que el reloj solo se ajusta una vez cada 8 minutos en la configuración predeterminada. Esto está bien para la mayoría de las aplicaciones, pero no está bien para las aplicaciones sensibles al tiempo.
Puede encontrar más información aquí: http://technet.microsoft.com/en-us/library/cc773263(v=ws.10).aspx#w2k3tr_times_tools_uhlp
fuente
La lista de referencia de todos los programas de tiempo enumerados por NIST está aquí . El que he usado en el pasado es el servidor de reloj. También le recomendaría que cambie su topología de sincronización. server1 debe ser la fuente de todos los tiempos en la red (con el servidor 2 y 3 como copias de seguridad). Los clientes solo deben sincronizarse entre pares si no hay un servidor disponible.
fuente