NTP Protocolo Del Tiempo de Red
NTP Protocolo Del Tiempo de Red
NTP Protocolo Del Tiempo de Red
(Network Time
Protocol)
Vicente Javier Benedicto
Requena
REDES 2000 - 01
INTRODUCCIÓN
El estándar de escala de tiempo usado por muchos países es el UTC (Coordinated
Universal Time), que esta basado en la rotación de la tierra alrededor de su eje, y el
calendario Gregoriano, que esta basado en la rotación de la tierra alrededor del sol. La
escala de tiempo UTC esta en concordancia al TAI (International Atomic Time)
insertando saltos de segundos en intervalos de 18 meses aproximadamente. La hora
UTC esta divulgada de diferentes maneras, incluyendo sistemas de navegación por
radio y satélite, módems, relojes portátiles, etc.
El propósito de estos receptores es estar disponible para muchos de los servicios de
divulgación incluyendo el Global Position System (GPS) y otros servicios utilizados por
los gobiernos de los países. Por razones de coste y conveniencia, no es posible que
equipar cada computador con uno de estos receptores. Sin embargo, es posible equipar
un numero de computadores actuando como servidores primarios para sincronizar a la
mayoría de servidores secundarios y clientes conectados por una red común. Para hacer
esto, es necesario un protocolo de red de sincronización de tiempo, que pueda leer un
servidor de hora, transmita la lectura a uno o mas clientes y ajuste el reloj de cada
cliente como sea necesario. Se pueden encontrar varios protocolos que hagan esto entre
ellos el NTP(Network Time Protocol) y el DTSS (Digital Time Synchronization
Protocol), pero nos vamos a central sobre el NTP.
Por tanto podemos decir que el NTP (puerto 123 UDP y TCP) sirve para sincronizar
relojes de hosts y routers en Internet. Este protocolo se estableció en los años 80 y era
para Unix y después salió uno similar SNTP (Short Network Time Protocol ) para
Windows, cuyo objetivo era poder sincronizar los relojes de 2 computadores. La
arquitectura, protocolo y algoritmos de NTP han ido evolucionando durante los últimos
20 años hasta llegar al ultima versión NTP4 que es la utilizada actualmente.
En las primeras versiones de NTP se podía establecer una precisión de milisegundos,
pero actualmente los PC, módems, redes, estaciones de trabajo, etc. son mas rápidas por
lo que es necesaria una mayor precisión. Por ello en la ultima versión de NTP se
proporcionan precisiones de décimas de milisegundos en WANS (redes extensas), y
milisegundos en LANS(redes locales) y microsegundos usando como fuente de
precisión de tiempo un oscilador de cesio o un receptor GPS.
Las configuraciones NTP típicas utilizan múltiples servidores redundantes y diversos
caminos de red, con tal de obtener la máxima precisión y fiabilidad. Algunas
configuraciones incluyen autenticación criptográfica para prevenir ataques accidentales
o maliciosos del protocolo.
El protocolo de sincronización determina la diferencia entre la hora del reloj del
servidor en relación a la hora del cliente. Bajo petición, el servidor envía un mensaje
incluyendo el valor de la hora en ese momento (timestamp), y el cliente almacena esto
en su timestamp. Para mayor precisión, el cliente necesita medir el retraso de la
propagación desde el servidor al cliente para determinar su offset relativo al servidor.
Pero como no es posible determinar el retraso de un camino, a menos que el offset
actual sea conocido, el protocolo mide el retraso total en dar toda la vuelta y asume que
los tiempos de propagación son estáticamente iguales en cualquier dirección. En general
esto es una aproximación útil, sin embargo en Internet hoy en día, las rutas en la red y
los retrasos asociados pueden diferir significativamente debido a el servicio individual
de los proveedores.
Primer objetivo: mejorar la precisión para las necesidades de hoy en día
Como ya hemos visto antes por el incremento de las velocidades en la actualidad hace
imprescindible una mayor precisión en la hora del reloj local para ello se incorporan los
siguientes aspectos:
Mejoras en los modelos de reloj que predicen con mas precisión la fase y
frecuencia del ruido para cada fuente de sincronización y ruta de red.
Algoritmos que reducen el impacto del retraso y de las imprecisiones del reloj.
Rediseño de los algoritmos de disciplina del reloj que pueden operar con
bloqueos de frecuencia, fase o un modelo híbrido.
Encapsulado ntp
El demonio nntpd
NNTPD es un demonio del sistema operativo que establece y mantiene la hora del
sistema en sincronía con los servidores horarios estándar de Internet. Ntpd es una
implementación completa del Protocolo de Hora de Red (NTP) versión 4, pero mantiene
también la compatibilidad con la versión 3.
El demonio puede operar en varios modos, incluyendo activo/pasivo simétrico,
retransmisión/multirretransmisión cliente/servidor y transmisión múltiple. Un cliente de
transmisión múltiple o retransmisión/multirretransmisión puede descubrir servidores
remotos, calcular los factores de corrección por el retardo de la propagación entre
cliente y servidor, y configurarse a sí mismo de forma automática. Esto hace posible
desplegar una flota de estaciones de trabajo sin especificar detalles específicos de
configuración al entorno local.
Normalmente, ntpd lee el archivo de configuración ntp.conf al iniciarse, para determinar
las fuentes de sincronización y los modos de operación. También es posible especificar
una configuración válida, aunque limitada desde la línea de comandos, obviando la
necesidad de un archivo de configuración. Esto puede ser particularmente apropiado
cuando el host local debe configurarse como cliente retransmisión/multirretransmisión o
cliente de retransmisión múltiple, con todos los pares a determinar escuchando las
retransmisiones al arrancar.
Pueden mostrarse varias variables internas de ntp y pueden alterarse opciones de
configuración mientras el demonio está en ejecución, usando los programas de utilidad
"ntpq! y "ntpdc".
1
jitter: variación en la cantidad de latencia entre paquetes de datos recibidos.
Configuraciones ntp
El protocolo NTP puede trabajar en uno o mas modos de trabajo, uno de ellos es el
modo cliente/servidor, también llamado maestro/esclavo. En este modo, un cliente se
sincroniza con un servidor igual que en el modo RPC convencional.
NTP también soporta un modo simétrico, el cual permite a cada uno de los dos
servidores sincronizarse con otro, para proporcionarse copias de seguridad mutuamente.
NTP también soporta el modo broadcast por el cual muchos clientes pueden
sincronizarse con uno o varios servidores, reduciendo el trafico en la red cuando están
involucrados un gran número de clientes.
En NTP, el multicast IP también puede ser usado cuando la subred se abarca múltiples
redes de trabajo.
La configuración puede ser un serio problema en grandes subredes. Varios esquemas
están en bases de datos publicas y servicios de directorios en red que son usados para
descubrir servidores. NTP usa el modo broadcast para soportar grandes cantidades de
clientes pero para los clientes que solo escuchan es difícil calibrar el retraso y la
precisión puede sufrir. En NTP, los clientes determinan el retraso a la vez que buscan
un servidor en modo cliente/servidor y luego cambian a modo solo escucha. Además,
los clientes NTP pueden hacer un broadcast de un mensaje especial para solicitar
respuestas de servidores cercanos y continuar en modo cliente/servidor con los que le
respondan.
Aquí tenemos un esquema de las diferentes configuraciones.
Proceso de descomposición
ε = ∑ |θ j − θ 0| v j ,
j= 0
donde v es un factor de ajuste.
La dispersión de la frecuencia ε f
representa la lectura del reloj y la frecuencia de tolerancia a errores-usado en métrica de
distancia.
La distancia de sincronización λ = ε f + δ / 2 -
usada como distancia métrica y máximo limite de error, hasta que la hora correcta θ 0
este en el rango:
θ − λ ≤ θ 0≤ θ + λ
Este algoritmo reduce en 10 el error estándar
2)Algoritmo de intersección
El algoritmo NTS (de intersección) requiere que el punto medio del intervalo este en la
intersección.
Inicialmente, pone a 0 f (falsotick), los contadores c y d
Lee del mas lejano de la izquierda: añade uno a c para cada final de punto
bajo, y le resta uno para cada final de punto alto, añade uno a d para cada
punto medio
Si c ≥ m − f y d ≥ m − f,
declara éxito y sale del procedimiento.
Hace lo mismo empezando por la parte mas lejana de la derecha.
Si no hay éxito, se incrementa f en uno y se intenta de nuevo
Si f ³ m/2,
error
3)Algoritmo de clustering:
El algoritmo de clustering nos va a servir para seleccionar el mejor subconjunto de
servidores y combinar después sus diferencias para determinar el ajuste del reloj. Sin
embargo, los diferentes servidores muestran diferentes diferencias sistemáticas, así que
la mejor estadística no es obvia. Varias clases de algoritmos de clustering han sido
encontrados en para este propósito. El que usa NTP se basa en ordenar las diferencia
por una cualidad métrica, entonces calcula la varianza de todos los servidores en
relación a cada servidor separadamente. El algoritmo repetidamente deprecia al que
tiene la mas amplia varianza hasta que permanezcan el mínimo numero de servidores.
El ajuste final del reloj se computa como una media de los supervivientes.
ε j = ∑ |θ j − θ k| w k
k= 0
Algunas universidades ofrecen este servicio por ejemplo la de Alicante, que posee
servidores de tiempo instalados en la universidad y que a su vez están sincronizados con
un reloj atómico que nos ofrece la hora con gran precisión.(precisión de milisegundos).
La hora exacta la obtienen porque el reloj atómico del cual obtienen la hora es el patrón
nacional de tiempo, del cual cuelgan varios servidores que distribuyen el tiempo a
través de internet siguiendo el protocolo NTP (versión 3) y que son el punto de
referencia para la infraestructura de tiempo de RedIRIS a la cual esta conectado en este
caso la Universidad de Alicante. Las razones por las que a una universidad le puede ser
útil utilizar este servicio es :
Correo electrónico: Fiabilidad en la fecha y hora de los mensajes.
Proxy-cache: En el intercambio de documentos entre servidores es muy
importante que los tiempos que cada servidor asocia al documento (última
modificación, tiempo en la cache, etc...) sean precisos para el correcto
funcionamiento de la política de refresco y expiración de documentos de la
cache.
Seguridad en la red: La detección de problemas de seguridad frecuentemente
exige poder comparar datos de los acceso de máquinas diferentes, para lo que es
imprescindible la coincidencia horaria de las mismas.
En el caso de un usuario cualquiera le puede ser útil :
Para tener todos nuestros documentos (correo, archivos word, ...) con la fecha
correcta.
Seguridad
En cuanto a la seguridad vamos a hacer una breve explicación, ya que siendo un
servicio de red una parte importante es que se eviten los ataques maliciosos o
accidentales tanto en los servidores como en los clientes.
NTP incluye un modelo revisado para la seguridad y el esquema de autentificación
soportando tanto la criptografía simétrica como la de clave-publica. En cuanto a la clave
publica, esta orientada a reducir el riesgo de intrusión, minimizando el consumo de
recursos del procesador y minimiza la vulnerabilidad de un ataque de hackers
APENDICE I:
La capa de aplicación del protocolo NTP
El NTP se utiliza para sincronizar los servidores con una precisión de nanosegundos.
Formato del mensaje.
El mensaje NTP esta formado por los siguientes campos:
• Indicador de Ajuste (Leap Indicator)(LI): Es un campo de 2
bits que indica el ajuste debido al periodo de rotación de la Tierra. (Ver
Tabla 4)
Tabla 4.
Indicador de Ajuste
Valor Significado
00 Sin advertencias
01 -1 segundo
10 +1 segundo
11 Condición de alarma (Reloj no sincronizado)
• Numero de Versión (Version Number) (VN): Es un campo de 3
bits que indica el numero de versión.
• Reservado (Reserved): Es un campo de 3 bits, que tienen valor
cero.
• Estrato (Stratum): Este campo tiene una longitud de 8 bits, y se
utiliza para indicar el estrato local del reloj. (Ver Tabla 5)
Tabla 5.
Estrato del reloj local
Valor Significado
0 Sin especificar
1 Referencia primaria
2..n Referencia secundaria (vía NTP)
• Poll: Este campo tiene una longitud de 8 bits. Indica el intervalo
máximo de tiempo entre mensajes.
• Precisión: Este campo tiene una longitud de 8 bits y indica la
precisión del reloj local.
• Distancia de sincronía (Sincronize distance): Este es un campo
de 32 bits, que indica el retraso aproximado de la primera ruta de
sincronización.
• Nivel de velocidad aproximado (Estimated Drift Rate): Es un
campo de 32 bits que indica el nivel de velocidad del reloj local.
• Identificador del reloj de referencia (Reference Clock
Identifier): Campo de 32 bits que indica una reloj de referencia
particular. (Ver Tabla 6)
Tabla 6.
Identificador de reloj de referencia
Valor Código Significado
0 DCN Determinado por el algoritmo DCN
1 WWVB Radio Reloj WWVB (60 KHz)
1 GOES Reloj de satélite GOES (450 MHz)
1 Radio Reloj WWV WWV (5/10/15 MHz)
• Fecha y Hora (Timestamps) :Existen 3 Timestamps (Fecha y
hora) de 64 bits cada uno.
Figura 4.
Formato del NTP
Octet +0 Octet +1 Octet +2 Octet +3
7654321076543210765432107654321 0
+0 LI VN 0 0 0 Statum Poll Precision
+4 Synchronizing Distance
+8 Estimated Drift rate
+12 Reference clock Identifier
+16 Reference clock Timestamp
+24 Originate Timestamp
+32 Receive Timestamp
+40 Transmit Timestamp
Bibliografía:
• www.eecis.udel.edu/~ntp
• www.eecis.udel.edu/~ntp/ntp_spool/html/exec.htm
• Mills, D.L. Internet time synchronization: the Network Time Protocol. IEEE
Trans. Communications COM-39, 10 (October 1991), 1482-1493. PostScript |
PDF. Also in: Yang, Z., and T.A. Marsland (Eds.). Global States and Time in
Distributed Systems. IEEE Computer Society Press, Los Alamitos, CA, 1994,
91-102.
• segurinet.com/gsal/ntp.htm
• www.ua.es/es/servicios/si/ntp
• www.ujaen.es/sci/redes/ntp/concepto.html
• www.utc.uam.es/ntp/ntp.html
• members.es.tripod.de/izariel/