Contenido
Mostrar
Motivación
Hace unos días tuve problemas con algunos de mis dispositivos, no sé por qué me habían generado archivos con fechas extrañas. Fechas de hace siglos y otras del futuro. Sospeché del servidor NTP que estaba usando, un servidor propio que me estuvo dando bastantes problemas.
El problema es que dicho servidor parecía funcionar correctamente, al menos cuando lo supervisaba con el comando de Windows win32time
, así que debía tratarse de una fallo esporádico.
Cree CheckNTPServer para supervisar de manera continua dicho servidor y así “cazar” cuando fallaba y sobre todo verificar que estaba en lo cierto, que estaba fallando esporádicamente.
Pero… ¿Que es un servidor NTP?
Un servidor NTP es un servidor que supuestamente tiene una fecha y hora fiable, una fecha y hora que está sincronizada correctamente con la fecha y hora actual y real.
Estos servidores sirven la hora a aquellos equipos que se la soliciten, desde dispositivos IoT, ordenadores de sobremesa, televisores inteligentes, etc.. básicamente cualquier equipo digital.
Son super importantes para que los datos que generan dichos equipos tengan consistencia. Imaginemos un equipo de videovigilancia que graba imágenes con una fecha y hora incorrectas, sería muy dificil hacer una búsqueda en las grabaciones o utilizar dichas grabaciones como prueba en un jucio.
NTP significa Network Time Protocol.. facilito, como debe ser.
Vale, entonces, un servidor NTP ¿Donde sincroniza su hora?
Un servidor NTP puede sincronizar su hora a traves de otro servidor NTP, pero también existen otros medios:
- GPS: Un servidor podría estár conectado a una antena GPS para poder recibir la fecha y hora real desde un satélite. Los satélites tienen su hora sincronizada, si no, su funcionamiento sería imposible. Es buena opcíon para la sincronización de hora en los dispositivos de una Red de datos aislada de Internet.
- Reloj atómico: Los relojes atómicos son relojes super precisos que no se retrasan en siglos gracias a sus características como la utilización de la frecuencia de la resonancia atómica. Estos relojes, como podrás imaginar, no se encuentran en cualquier sitio. Afortunadamente, laboratorios físicos que disponen de estos relojes, comparten su hora a través de señales de radio y a través de servidores NTP. Precisamente estos relojes son los utilizados para sincronizar la hora de los GPS.
Servidores de hora conocidos
Estos son algunos de los servidores de hora más conocidos y utilziados:
time.windows.com
hora.roa.es
(España: Real Instituro y Observatorio de la Armada, San Fernando (Cádiz))ntp.i2t.ehu.es
(España: Escuela Técnia Superior de Ingenieria de Bilbao)es.pool.ntp.org
pool.ntp.org
CheckNTPServer
CheckNTPServer es una aplicación de consola y puedes descargar el código fuente y compilarla tu mismx desde aquí.
Puedes ver en la propia página de Github como funciona, pero verás que el funcionamiento es muy sencillo.
La aplicación genera un archivo de registro que anota cuando hay un fallo y cuando se recupera de este.
En consola se muestra la respuesta del servidor con la diferencia en milisegundos local con tu equipo:
Watchdog para la supervision de servicios NTP by Aimarmun 2024.
[01/11/2024 18:55:30] Inicio de la aplicación.
Configuración:
Servidor: time.windows.com
Umbral aceptable: 3000ms
Local: 01/11/2024 18:55:30, Remota: 01/11/2024 18:55:27 OK. 2833ms.
Local: 01/11/2024 18:55:31, Remota: 01/11/2024 18:55:28 OK. 2841ms.
Local: 01/11/2024 18:55:32, Remota: 01/11/2024 18:55:29 OK. 2832ms.
Local: 01/11/2024 18:55:33, Remota: 01/11/2024 18:55:30 OK. 2831ms.
Local: 01/11/2024 18:55:34, Remota: 01/11/2024 18:55:31 OK. 2831ms.
Local: 01/11/2024 18:55:35, Remota: 01/11/2024 18:55:32 OK. 2844ms.
[01/11/2024 18:55:36] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:37] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:38] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:39] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:40] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:41] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:42] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:43] Error en la recuperación de hora: Host desconocido.
Local: 01/11/2024 18:55:44, Remota: 01/11/2024 18:55:42 OK. 2832ms.
[01/11/2024 18:55:44] Se ha recuperado de errores previos
Local: 01/11/2024 18:55:46, Remota: 01/11/2024 18:55:43 OK. 2832ms.
Local: 01/11/2024 18:55:47, Remota: 01/11/2024 18:55:44 OK. 2858ms.
Local: 01/11/2024 18:55:48, Remota: 01/11/2024 18:55:45 OK. 2838ms.
Local: 01/11/2024 18:55:49, Remota: 01/11/2024 18:55:46 OK. 2833ms.
El archivo de registro puede mostrar lo siguiente:
[01/11/2024 18:55:30] Inicio de la aplicación.
Configuración:
Servidor: time.windows.com
Umbral aceptable: 3000ms
[01/11/2024 18:55:36] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:37] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:38] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:39] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:40] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:41] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:42] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:43] Error en la recuperación de hora: Host desconocido.
[01/11/2024 18:55:44] Se ha recuperado de errores previos
Y sí, estaba en lo cierto. Gracias a CheckNTPServer pude comprobar que el servidor de hora fallaba cuando le daba la gana.. cositas..