Cómo forzar el tiempo de actualización de ntpd aislado localmente

Cómo forzar el tiempo de actualización de ntpd aislado localmente

Objetivo

Tenía anfitriones aislados localmente. Me gustaría que todos tuvieran el mismo tiempo. Uno asume el papel del servidor horario, otros se sincronizan con él como clientes.

Todas las máquinas tienen un tiempo de actividad esporádico. Rara vez reciben energía. De modo que podrían obtener una compensación significativa. Todo el conjunto de hosts debería sincronizarse minutos después de configurar manualmente la hora local del servidor.

Para confirmar la confiabilidad, probé la conexión de hosts ntp estableciendo excelentes ajustes manuales (varias horas) y midí qué tan rápido se sincronizaban los clientes.

ntpd - caso ntpd

Intenté usarntpdtanto para los clientes como para el servidor.ntpdToma mucho tiempo ajustar el reloj. Además, se niega a retroceder el tiempo un par de horas.

Si se pudiera arreglar, prefiero usarntpdcomo cliente. Así que estoy buscando opciones de configuración para indicarle a ntpd que está ansioso por aceptar actualizaciones del reloj de la red.

Pero si no hay manera de emplearntpd,ntpdateLa alternativa sigue siendo aceptable.

ntpd - caso ntpdate

ntpdateActualiza perfectamente el reloj sin dudarlo. Lo puse en una tarea cron y obtuve una solución aproximada pero funcional. Lamentablemente la primera impresión fue equivocada. Después de varias pruebas noté que elntpdateEl cliente comenzó a rechazar el servidor. Por algunas razones, el servidor decidió devolver el estrato 16. Lo puse explícitamente fudge 127.127.1.0 stratum 8en elntp.confen el lado del servidor para evitar este comportamiento exacto. Perontpdate-v-del resultado muestra "estrato 16" transmitido desde el servidor.

Entonces veo dos maneras. O obligar antpdEl servidor devuelve el estrato 9 independientemente de la hora local, salta o fuerza elntpdatecliente acepte cualquier servidor, incluso si tiene estrato 16.

Intenté buscar en Google de cualquier manera pero no encontré nada. ¿Alguien podría sugerir opciones de configuración adecuadas?

Respuesta1

Utilice un ntpdservidor único para todos. Todas las PC que se reinician todos los días pueden sincronizar sus relojes al inicio mediante ntpdateun comando. Los relojes de otros servidores se pueden sincronizar mediante ntpdel servicio porque ajusta la hora suavemente.

Para ntpduso del servidor de hora principal:

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log

Respuesta2

Mi principal sugerencia: no hagas esto. Intente cambiar sus requisitos o restricciones para que pueda tener un sistema siempre activo que pueda ser una fuente de tiempo, o para que sus sistemas no estén aislados y puedan obtener tiempo delgrupo NTP global, o ambos.

Hoy en día, puede obtener servidores NTP de bajo consumo con receptores GPS a un precio bastante económico. Si le gusta el bricolaje, BeagleBones y Raspberry Pis se pueden convertir en servidores NTP por menos de 100 dólares, o si quiere algo ya disponible, pruebe unLeoNTP.

Siguiente sugerencia: si ntpdtarda mucho en actualizar el reloj, probablemente necesites verificar tu configuración:

  1. Asegúrese de estar utilizando la -Gbandera de línea de comando; -ges el valor predeterminado en algunas distribuciones de Linux, pero no dará grandes pasos hacia atrás.
  2. Asegúrese de que todos sus servidores/grupos estén configurados con iburst.
  3. Utilice tinker step 0.5y tinker panic 0para maximizar ntpdla capacidad de arreglar grandes compensaciones.
  4. Asegúrese de que se pueda escribir en su archivo de deriva ntpdy que se guarde correctamente cuando se cierre.

Tercera sugerencia (que preferiría a ntpdate): probar chrony: tiene soporte explícito para clientes conectados ocasionalmente (como computadoras portátiles que se suspenden regularmente). La chrony.conf(5)página de manual tiene todos los detalles sobre esto. Si está utilizando una distribución que chronyes la predeterminada (CentOS/Red Hat y Ubuntu después del lanzamiento de 18.04), esta probablemente sería mi segunda sugerencia.

Última sugerencia: si ntpdateinforma que un servidor es de estrato 16, significa que hay algún problema con ese servidor. Intente publicar la configuración del servidor y el resultado de ntpq -npy ntpq -nc rvpara que podamos ayudar a diagnosticarlo.

información relacionada