Un servidor NTP
sáb 07 diciembre 2024
Instalando un servidor NTP con chrony
Chrony es una implementación del protocolo NTP que incluye dos programas:
- chronyd es un servicio que puede actuar como cliente y como servidor NTP.
- chronyc es un programa que se ejecuta en línea de comandos y puede interactuar con chronyd.
Para instalarlo basta con ejecutar sudo apt-get install chrony y despues configurar el fichero /etc/chrony/chrony.conf. Aunque este fichero puede tener muchas directivas es posible configurar la mayor parte de casos con solo unas pocas directivas.
La directiva server
La directiva server va seguida siempre de un servidor NTP (en forma de IP o nombre DNS). Este servidor se usará como fuente de hora. Despues de la IP o DNS pueden ir 0 o más de estas opciones:
- minpoll <número> Indica que el intervalo entre consultas será como mínimo de 2 elevado a ese número. Así minpoll 5 indica que pasarán al menos 32 segundos entre consultas.
- maxpoll <número> Indica que el intervalo entre consultas no será mayor de 2 elevado a ese número.
- iburst Indica que chrony arrancará con unas 4-8 consultas para sincronizar el reloj más deprisa.
La directiva pool
Permite indica un conjunto de máquinas que también se usarán como fuente de tiempo, pero permitiendo que chrony cambie dinámicamente y a voluntad entre ellas. Es útil tener varias fuentes y en el caso de pool chrony rotará entre ellos según sea necesario. Las mismas opciones de server se pueden aplicar a pool.
Esta directiva permite además una opción sources <número> que permite indicar cuantas fuentes de tiempo se tomarán como máximo del pool.
La directiva local
Permite a chrony mostrarse como un servidor NTP perfectamente sincronizado incluso aunque eso no sea así. Se puede utilizar en redes locales donde es importante que los relojes están sincronizados incluso aunque no sea con la hora exacta. Acepta, entre otras, las siguientes opciones:
- stratum <número> indica el número de stratum que se indicará a los clientes que se conecten.
La directiva allow
Indica las IP que tienen permiso para hacer consultas a este servidor. Pueden usarse direcciones IPv4 o IPv6
La directiva minsources <número>
Indica cuantas fuentes de tiempo se deben usar como mínimo para considerar el reloj ajustado.
La directiva makestep <umbral> <actualizaciones>
Normalmente chrony actualiza el reloj ralentizándolo o acelerándolo. Con esta directiva, si la diferencia entre nuestro reloj y la hora externa es mayor de un cierto límite, chrony modificará el reloj de una sola vez. Esto no se hará todas las veces sino solo durante las primeras x actualizaciones que indiquemos.
Consideraciones finales
Aunque existen muchas otras directivas, utilizando solamente las indicadas aquí y/o dejando los valores por defecto de otras opciones, podremos construir un servidor NTP. Se indica a continuación un posible fichero de ejemplo:
# Incluye otros ficheros de configuración que pueda haber confdir /etc/chrony/conf.d pool 0.es.pool.ntp.org iburst maxsources 1 pool 1.es.pool.ntp.org iburst maxsources 1 pool 2.es.pool.ntp.org iburst maxsources 2 pool 3.es.pool.ntp.org iburst maxsources 1 server ntp1.uk.uu.net iburst server extntp0.inf.ed.ac.uk iburst server ntp1.vinehost.net iburst local stratum 10 allow 0.0.0.0/0 allow ::/0 makestep 1 3