¿Por qué ntp no se recupera después de un inicio sin Internet?

11

Tengo algunos dispositivos Linux (sin chips TOY, por lo que dependen completamente de ntp) que pueden arrancar sin acceso a Internet (el enlace al conmutador está activo). El ntpservicio comenzará, pero obviamente no se contactará a ningún compañero. Luego termino con un ntpservicio que se ejecuta pero no se sincroniza con ningún par ( ntpq -pda un .INIT.estado)

El problema es que esto cambia cuando se establece la conexión a Internet.

Si la conexión está disponible en el momento del arranque, todo funciona bien. Idem si emito manualmente un service ntp restart(se ntpconecta a los pares y la hora se sincroniza correctamente).

¿No debería ntp intentar reconectarse a intervalos regulares?

  • en caso afirmativo: es algo que debo configurar (no vi nada en la configuración)
  • si no: ¿cuál sería una buena manera de manejar el reinicio del servicio o el retraso del inicio del servicio (podría suponer que la conectividad a Internet volverá n minutos después del arranque)

Nota: Según los documentos, parece que el tiempo máximo de la agrupación (que entiendo es el tiempo máximo que ntp intentará conectarse con sus pares antes de darse por vencido) es 1024 segundos = 17 minutos, que es mucho más que el tiempo necesario para establecer Acceso a Internet (alrededor de 2 a 5 minutos, el peor de los casos)

WoJ
fuente

Respuestas:

12

Es posible que haya sido mordido por un caso de borde para ntpd:

Las versiones IIRC ntpd <4.2.4p3 eliminaron cualquier servidor de su lista de sincronización que no se pudo alcanzar en algún momento. Por supuesto, esto es bastante malo en este caso, ya que ntpd podría muy bien "agotar" la lista de sus pares antes de obtener conectividad a Internet.

Uno podría / puede configurar la dynamicopción para que estos servidores ntp.confsolucionen este problema.

Con las versiones más nuevas, esto ya no debería ser necesario (además, la opción dinámica se retiró en algún momento, lo que causó quejas menores para algunas personas con ntp quejándose de repente).

Por lo tanto, puede actualizar su ntpd o configurar la opción.

Como tercera opción, puede crear una dependencia adecuada en su sistema init; haciendo que ntpd confíe en una conexión a internet establecida ( no solo en la red). El resultado sería que también puede reutilizar esto con otros servicios.

romano
fuente
1

El paquete Debian OpenNTPD lo reinicia automáticamente si aparece una interfaz. Esto es comun.

Además, de todos modos (normalmente) necesitará sincronizar un disparo antes de iniciar xntpd de todos modos, por lo que sugiero que este sea el camino a seguir.

mirabilos
fuente
1
La interfaz está activa. Es Internet al que no se puede acceder.
WoJ
Tampoco tuve que sincronizar un solo disparo. Este es claramente un caso posible, pero un reinicio del servicio limpia el estado.
WoJ