La sincronización NTP se queda sin alcance

La sincronización NTP se queda sin alcance

Por lo general, cuando una máquina pierde la conexión por completo, ntpd pierde un par de encuestas y marca todas las fuentes como de cordura fallida. Lo cual parece bastante lógico. Pero me encontré con una situación en la que un servidor permanece marcado como fuente de tiempo actual mientras su alcance era 0.

El servidor se implementa en la misma subred que la máquina de destino y proporciona muy bajos retrasos, desplazamientos y fluctuaciones. La situación se modeló cerrando físicamente la conexión: simplemente desconectando un cable de una máquina cliente. Intenté recrear esto, pero desde entonces la misma máquina siempre pierde el estado de sincronización después de 5 o 6 encuestas fallidas.

La verdadera pregunta es: ¿qué determina exactamente el estado de sincronización cuando se pierde la conexión?

Respuesta1

Hay una explicación definitiva sobre el registro de alcance en RFC-1305:

El registro de accesibilidad se desplaza una posición hacia la izquierda y el cero reemplaza el bit vacante. Si todos los bits de este registro son cero, se llama al procedimiento de borrado para purgar el filtro de reloj y volver a seleccionar la fuente de sincronización, si es necesario. Si la asociación no fue configurada mediante el procedimiento de inicialización, la asociación se desmoviliza.

Sin embargo, RFC-1305 queda obsoleto por RFC-5905, que no es tan distintivo:

A continuación, se utiliza el registro de desplazamiento p.reach de 8 bits en el proceso de sondeo descrito en la Sección 13 para determinar si se puede acceder al servidor y si los datos están actualizados. El registro se desplaza un bit hacia la izquierda cuando se envía un paquete y el bit más a la derecha se establece en cero. A medida que llegan paquetes válidos, el bit más a la derecha se establece en uno. Si el registro contiene bits distintos de cero, el servidor se considera accesible; de lo contrario, es inalcanzable.

No se menciona ningún procedimiento claro en la Sección 13. Pero aun así parece que un par irrealizable debería perder su estado de sincronización en algún momento.

Logré recrear el estado sincronizado con una situación de alcance 0 para garantizar que sea poco común y no permanente. Fue necesario deshabilitar la "ráfaga" en la configuración de los servidores e interrumpir la conexión inmediatamente después de la sincronización.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 91.198.10.4     194.190.168.1    2 u   20   64  177   51.137   -2.192  11.049
 192.168.1.1     193.67.79.202    2 u   65   64   77    0.459   -1.818   0.922
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*91.198.10.4     194.190.168.1    2 u   21   64  177   51.137   -2.192  11.049
+192.168.1.1     193.67.79.202    2 u    -   64  177    0.449   -3.192   1.828

El alcance fue 177, que es 01111111 en binario. Así que fueron necesarias 7 encuestas para establecer la sincronización.

La sincronización se perdió entonces en esta posición:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+91.198.10.4     194.190.168.1    2 u  574   64    0   63.846   -9.652   0.756
*192.168.1.1     193.67.79.202    2 u  553   64    0    0.449   -3.192   0.505
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 91.198.10.4     194.190.168.1    2 u  575   64    0   69.871  -10.409   0.002
 192.168.1.1     193.67.79.202    2 u  554   64    0    0.449   -3.192   0.505

Cuando los números son un poco extraños como 64*9 = 576, no 575, pero supongo que la representación puede tener una imprecisión de 1 segundo. Considerando esto, fueron necesarias 9 encuestas fallidas para romper el estado de sincronización.

Entonces, considerando tanto la teoría como la práctica, parece que el estado en el que una fuente con alcance 0 podría considerarse fuente de tiempo actual es posible, pero también raro y temporal.

información relacionada