Servidor NTP y mejores prácticas

norteTP significa "Protocolo de tiempo de red". Es un protocolo que utilizan los dispositivos conectados a Internet para sincronizar la hora de sus sistemas con una referencia de tiempo. Hay varios puntos importantes que explican por qué es importante mantener la hora exacta, y los principios de funcionamiento de NTP son elementales pero asombrosos.

Recientemente presentamos un artículo sobre cómo configurar el servidor y el cliente NTP en distribuciones basadas en Ubuntu. Esto requiere una descripción detallada de cómo funciona exactamente NTP y por qué es importante.

Índice

¿Cuál es el requisito de la hora exacta?

Primero, veamos por qué, en primer lugar, se desarrolló una infraestructura tan profunda para que nuestras máquinas pudieran usar la hora precisa.

Se produce una deriva

Siempre que esté utilizando un sistema informático, es un hecho bien observado que el reloj del hardware comienza a retrasarse con el paso del tiempo. Este efecto puede incluso sumarse a una gran inexactitud en algunos casos. Obviamente, este no es un efecto deseable, por lo que es aconsejable utilizar la sincronización de tiempo.

Gestión de registros

Si hay una red de varios dispositivos, y dicen que ocurre algún problema, eso afecta a varios sistemas en la red. La mejor manera de rastrear el problema y averiguar qué sucedió es verificando los registros del sistema (más información sobre cómo verificar los archivos de registro aquí). Si uno de esos sistemas está atrasado unos segundos, parecerá que se ha efectuado antes que el otro sistema, que en realidad se vio afectado primero. Esto dificulta la resolución de problemas y, en general, la gestión de varios sistemas en una red. Este fue solo un ejemplo, pero hay muchas más y severas posibilidades.

Descripción general del servidor NTP
Descripción general del servidor NTP (cortesía: Siemens)

Actas

Se realizan varios tipos de transacciones a través de Internet. A veces, si el reloj de su sistema se adelanta a la hora real, es posible que en los registros del sistema del pago se muestre que el pago llegó antes de que usted realmente pagara la cantidad. Esto hará que el pago no sea suyo y dará lugar a más problemas.

O en un caso más similar, debido a la inexactitud del tiempo, a menudo puede suceder que su destinatario envíe una respuesta a su correo electrónico incluso antes de que usted envíe el correo electrónico en primer lugar. Como puede imaginar, la precisión del tiempo en dos sistemas diferentes en Internet puede ser la raíz de varias consecuencias potencialmente dañinas.

Ejecución de comandos

En una red, a menudo hay scripts escritos para ejecutar tareas orquestadas en múltiples sistemas. Si tal secuencia de comandos tiene parámetros de tiempo, puede estropearse si un sistema tiene un tiempo inexacto. Algunos comandos se ejecutarán antes de que sea necesario o después de sabotear todo el proceso. Obviamente, esto no es bueno que suceda.

Nuevamente, en una nota más similar, su GPS realmente no funcionaría correctamente si la hora no está sincronizada correctamente entre su sistema y el satélite GPS.

¿Como funciona?

Así, hemos visto varias razones por las que mantener la hora exacta en una red es bastante importante para incorporar escenarios y nuestra vida diaria. Por suerte para nosotros, esto no es muy difícil de lograr. Usando NTP, podemos hacer esto posible. Pero entonces, ¿cómo logra NTP que eso suceda? Dejanos ver.

Fuentes de tiempo

Las últimas fuentes de tiempo tienen que ser extremadamente precisas, por supuesto. Estas fuentes de tiempo son algunas de las mejores científicamente posibles en este momento, la primera de las cuales es Relojes atómicos, que utilizan 9192631770 ciclos de la radiación correspondiente a la transición entre dos niveles de energía del átomo de cesio-133 en estado fundamental como un segundo. Aparte de eso, se puede confiar en los receptores de señales horarias emitidas por algunas agencias nacionales de normalización como la hora precisa.

NTP100-GPS
NTP100-GPS

Se dice que estas fuentes de tiempo están en el Stratum 0 nivel. El concepto de estrato funciona como se describe:

Concepto de estrato

Estrato significa literalmente "uno de una serie de capas, niveles o gradaciones en un sistema ordenado, ”Y así es como se usa también en el contexto de NTP. El nivel del estrato 0 es el tiempo más preciso posible. Si un servidor sincroniza la hora con una fuente de tiempo de estrato 0, es una fuente de tiempo de estrato 1. Y si proporciona tiempo a otro servidor, ese servidor es una fuente de 2 tiempos de estrato. A medida que las capas siguen subiendo, el número de estrato asignado al servidor también suele seguir subiendo. Entonces, cuanto menor sea el número de estrato asignado a un servidor, más preciso será el tiempo.

Los niveles de estrato se consideran hasta el estrato 16, después del cual la diferencia de tiempo es demasiado. En muchos escenarios, solo se recomienda utilizar hasta servidores de estrato 4.

Servidor de estrato 1

Los usuarios habituales como nosotros no pueden utilizar un servidor de nivel estrato 0. Los relojes atómicos y las fuentes de tiempo de las agencias nacionales son administrados directamente por el gobierno.

Yendo más arriba en la línea, un servidor de estrato 1 es un servidor que está conectado directamente a un reloj de hardware, que se encuentra en los niveles de estrato 0. Este es el mejor servidor de fuente de tiempo posible porque el estrato 0 no es en realidad un servidor, sino un reloj. El servidor al que realmente se puede conectar es el servidor de estrato 1, que recibe directamente la hora del reloj del hardware.

Un servidor de estrato 1 debe tener un servicio preciso y bien mantenido. También debe tener una alta disponibilidad, ya que otros sistemas pueden depender de su servicio horario.

Proceso de sincronización de tiempo

En primer lugar, para configurar el NTP en su sistema, debe elegir los servidores que utilizará para sincronizar la hora. Para eso, puede elegir el servidor que desea utilizar y configurar los ajustes en el software de su sistema.

Cómo se sincroniza el tiempo

El proceso de sincronización comienza con el sistema y el servidor NTP intercambiando múltiples paquetes de datos durante bastante tiempo. Lo que realmente está sucediendo es que se calcula el tiempo que tarda el paquete en completar un viaje de ida y vuelta al servidor NTP y viceversa. El servidor NTP envía el tiempo en esos paquetes de datos, y el tiempo de viaje calculado se deduce en consecuencia. Por ejemplo:

El sistema tiene la hora 17:00:05 cuando envía el paquete. El sistema ahora recibe la respuesta del servidor NTP a las 17:00:11. El servidor NTP ha enviado la información de la hora, que en realidad son las 17:05:23 en este momento. Pero cuando miras el tiempo de viaje que tomó el paquete, que es de 6 segundos, significa que tardó 3 segundos en ir al servidor y 3 más en regresar. Esto significa que la hora era 17:05:23 hace 3 segundos, no en este momento. Por lo tanto, la hora se ajusta en consecuencia a las 17:05:26.

(Por supuesto, he ampliado la escala a un grado muy alto, pero eso es solo por el bien de la explicación. Estas diferencias están en milisegundos en realidad, pero la lógica es la misma).

Todo este proceso de intercambio de paquetes continúa durante unos 5 minutos para garantizar la hora correcta y asegurarse de que se haya corregido el desplazamiento. Obviamente, cuanto más cortos, más consistentes y más simétricos sean los intercambios de paquetes, más preciso será el tiempo. El protocolo NTP usa paquetes UDP e IP para este proceso debido a su velocidad y confiabilidad. El puerto utilizado es 123. Se dice que la precisión de tiempo suele estar entre 5 y 100 ms.

Si la diferencia de tiempo entre el servidor NTP y el sistema es lo suficientemente pequeña, la cambiará rápidamente. Si la diferencia horaria es grande, la hora cambia constantemente con pequeñas diferencias hasta que se corrige.

Mejores prácticas

Tener varios servidores

Esta es la práctica más recomendada: tener varios servidores NTP redundantes si uno tiene fallas o se vuelve inexacto por alguna razón. No habrá muchas pérdidas si la red se puede conectar a otro servidor NTP de inmediato. Además, será aún mejor si puede configurar scripts que puedan activar y conectar automáticamente la red a uno de los servidores redundantes cuando se dan ciertas señales obvias (como no recibir paquetes del servidor NTP, etc.).

Considere el diseño de la red

La red debe estar estructurada de modo que los sistemas que requieren una hora más precisa estén físicamente más cerca y conectados directamente al servidor NTP. Si hay subredes, deben usarse para tareas que relativamente no requieren una hora precisa.

Comunicaciones NTP seguras

Dado que NTP se basa en UDP, es un protocolo que se centra en muchas cosas, por lo que, dependiendo de su sistema, podría haber vulnerabilidades potenciales. Siempre es una buena idea asegurar la conexión NTP con autenticación.

Acceso restringido

Proteger la red de atacantes externos es importante, sin duda, pero también lo es prevenir el mal manejo. Al restringir el acceso a los servidores NTP para la cantidad mínima de personas, puede asegurarse de tener la menor cantidad de errores humanos posible, y más que eso, puede estar seguro de que no será manejado por alguien que no tenga el conocimiento técnico realmente para manejar la red.

Evite los bucles de tiempo

Dejando a un lado las perspectivas de ciencia ficción, siempre debe asegurarse de evitar el tiempo en bucle en la estructura de la red. Digamos que A actúa como servidor para B y B para C. Ahora, si C se asigna nuevamente como servidor para A, las cosas pueden complicarse. Obviamente, nadie en su sano juicio haría esto, pero a veces, puede suceder accidentalmente, por lo que verificar el diseño de la red NTP de vez en cuando es una buena idea.

Conclusión

NTP es un protocolo excelente y eficiente para asegurarse de que su sistema siempre tenga la hora correcta. Puede resultar un poco complicado en una red grande o en un entorno de oficina, pero tener un poco de cuidado y tener buenos diseños puede ser de gran ayuda. Esperamos que este artículo le haya resultado útil.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir