Tengo dos máquinas Linux (A y B) en una red aislada. Deben estar sincronizados en el tiempo. La máquina A se alimenta de manera intermitente y debe servir el tiempo, ya que está conectada a una fuente de tiempo autorizada (GPS). La máquina B solo está alimentada si la máquina A está alimentada, pero es un dispositivo Linux incorporado y su estado de alimentación cambiará con frecuencia. Ninguna máquina tiene acceso a otros sistemas. Es una red cerrada.
Entiendo que esto es bastante difícil para NTP, ya que NTP generalmente espera tener contacto con varios servidores. Tengo problemas para que esto funcione correctamente en la máquina B. La máquina A se sincroniza bien con el GPS, y la máquina B puede llegar a la máquina A e incluso hacer consultas de tiempo, pero la máquina A no es confiable (¿tal vez por sí misma?). Después de una hora sólida de máquina A, esto cambió repentinamente y la máquina B funcionó. Sin embargo, cuando la máquina A dejó de funcionar (y, por lo tanto, la máquina B), la máquina B no puede encontrar una buena sincronización de tiempo.
Aquí hay información de ntpdate. Tenga en cuenta que incluso cuando el estrato de la máquina A es 1, la operación falla con la misma salida al final.
10.10.10.1: servidor caído: estratos demasiado altos servidor 10.10.10.1, puerto 123 estrato 16, precisión -19, salto 11, confianza 000 reposición [10.10.10.1], demora 0.02614, dispersión 0.00000 transmitido 4, en el filtro 4 tiempo de referencia: 00000000.00000000 jue, 7 de febrero de 2036 6: 28: 16.000 marca de tiempo original: d3a9bdc4.27ebb350 jue, 12 de julio de 2012 21: 19: 00.155 marca de tiempo de transmisión: bc17c803.b42dfffe sáb, 1 de enero de 2000 0: 25: 39.703 Retraso del filtro: 0.02625 0.02614 0.02618 0.02625 0.00000 0.00000 0.00000 0.00000 desplazamiento del filtro: 39544160 39544160 39544160 39544160 0.000000 0.000000 0.000000 0.000000 retraso 0.02614, dispersión 0.00000 offset 395441600.451568 1 de enero 00:25:39 ntpdate [677]: no se encontró ningún servidor adecuado para la sincronización
Supongo que la máquina A simplemente no confía en sí misma para el tiempo de servicio. Después de 51 minutos (puede que haya sucedido antes, no lo sé) de tiempo de actividad y sincronizado su reloj con el GPS, la máquina A comenzó a servir la hora correctamente y la máquina B lo activó. Necesito que esto suceda antes. Me gusta, en segundos si es posible.
Con las siguientes configuraciones (y mucha espera), finalmente tiene éxito.
Máquina A ntp.conf:
el servidor 127.127.28.0 prefiere verdadero minpoll 4 maxpoll 4 dulce de azúcar 127.127.28.0 estrato 1 vez1 0.420 GPS rechazado
Machine B ntp.conf:
servidor 10.10.10.1 prefiere verdadero minpoll 4 maxpoll 4
ntpq -c pares en la máquina B sin una buena corrección de tiempo:
t de reposición remota cuando la demora del alcance de la encuesta compensa la fluctuación de fase ================================================== ============================ 10.10.10.1. PASO. 16 u 9 16 0 0.000 0.000 0.000
ntp1 -c pares en la máquina B con buena corrección de tiempo:
t de reposición remota cuando la demora del alcance de la encuesta compensa la fluctuación de fase ================================================== ============================ * 10.10.10.1 SHM (0) 2 u 7 16 17 0.669 2.597 1.808
Entonces, ahora la pregunta es: ¿cómo hago que Machine A confíe en sí mismo rápidamente?
Algunos resultados de depuración de la máquina A antes y después de la máquina B deciden que la máquina A es lo suficientemente buena para usar.
antes de..
~ # ntpq -c rv associd = 0 status = c418 leap_alarm, sync_uhf_radio, 1 evento, no_sys_peer, version = "ntpd 4.2.6p4@1.2324 Vie 24 de febrero 15:01:45 UTC 2012 (1)", procesador = "armv7l", sistema = "Linux / 2.6.35.14", salto = 11, estrato = 2, precisión = -19, rootdelay = 0.000, rootdisp = 44.537, refid = SHM (0), reftime = d3ab0053.43b44780 viernes, 13 de julio de 2012 20: 15: 15.264, reloj = d3ab0062.e7e03154 viernes, 13 de julio de 2012 20: 15: 30.905, igual = 34819, tc = 4, mintc = 3, offset = 0.000, frecuencia = 0.000, sys_jitter = 3.853, clk_jitter = 36.492, clk_wander = 0.000
después...
~ # ntpq -c rv associd = 0 status = 0415 leap_none, sync_uhf_radio, 1 evento, clock_sync, version = "ntpd 4.2.6p4@1.2324 Vie 24 de febrero 15:01:45 UTC 2012 (1)", procesador = "armv7l", sistema = "Linux / 2.6.35.14", salto = 00, estrato = 2, precisión = -19, rootdelay = 0.000, rootdisp = 41.278, refid = SHM (0), reftime = d3ab0063.43b37856 Vie, 13 de julio de 2012 20: 15: 31.264, reloj = d3ab006d.9ee53ec2 viernes, 13 de julio de 2012 20: 15: 41.620, igual = 34819, tc = 4, mintc = 3, offset = 0.000, frecuencia = 43.896, sys_jitter = 0.762, clk_jitter = 36.953, clk_wander = 0.000
ntp.conf
archivos y la salida dentpq -p
cuando la máquina B NO está obteniendo buen tiempo de la máquina A? Podría ser la máquina de marcado A como un ticker falso o algo así. Cuando la máquina B no confía en la máquina A, ¿la máquina A está sincronizada con el GPS? (Salida de lantpstat
máquina A.)