|

|
NTP (Network Time Protocol) es un protocolo de sincronización de relojes a través de una red mediante el puerto 123 UDP. Está diseñado para resistir los efectos de la latencia variable. Hoy en dia, con los procesadores doble núcleo, en muchas ocasiones la hora se desincroniza excesivamente. Si tienes un servidor, es indispensable que se mantenga correcta, ya que sinó se podrian originar grabes problemas en los servicios que haya corriendo. Del mismo modo, también puede ser interesante para tu ordenador personal. A continuación explicaré como instalarlo y configurarlo de la manera más simple.
|
Las entrañas de NTP
El paquete ntp de GNU/Linux consta principalmente de estos programas:
ntpd
Es un demonio que, mediante una lista de servidores, mantiene la hora hora de tu reloj actualizada. Para ello compara la hora local con la de uno o varios servidores, y cuando ésta llega a una cierta desincronización actualiza la hora. El valor máximo de esta desincronización viene dado por un parámetro llamado "stratum". ¡CUIDADO! si el reloj se desvía excesivamente en un momento dado, ntpd NO actualizará la hora, ya que supondrá que hay algún problema en el sistema local o los servidores. Además ntpd puede dar servicio a otros ordenadores de la red.
Aqui podeis ver un mensaje de log de la sincronización de ntpd:
18 Jun 22:48:01 ntpd[1388]: time reset +0.132832 s
18 Jun 22:57:42 ntpd[1388]: synchronized to 130.206.3.166, stratum 2
ntpdate
Es un cliente para la sincronización de la hora en un momento puntual con un servidor de la red.
ntpdc
Es un programa interactivo. Sirve para preguntar a ntpd cuál es su estado actual.
ntp-client
Algunas distros llevan este pequeño script ubicado en /etc/init.d, sirve para sincronizar la hora puntualmente, con ntpdate.
Para todas las distros en general
Instalación y configuración
- Instalamos el paquete ntp (o ntpd según la distro) mediante nuestro gestor de paquetes.
- Editamos el archivo /etc/ntp.conf y configuramos las siguientes opciones:
#Ubicación del archivo de log logfile /var/log/ntpd
#El archivo con la configuración de la frequencia de sincronización y el algoritmo a usar driftfile /var/lib/ntp/ntp.drift
#Directorio donde se guardarán las estadísticas de ntpd statsdir /var/log/ntpstats/
#El/Los servidores de hora que utlizaremos server hora.rediris.es
#Restringimos para que el único que pueda modificar nuestra hora sea el server restrict hora.rediris.es
#Restringimos para que ntp no preste servició de sincronización a otros ordenadores restrict default ignore
#O si queremos que lo preste lo especificamos de la siguiente manera para nuestro rango IP #restrict 172.16.0.0 mask 255.255.255.0 nomodify
#Especificamos el stratum stratum 2 |
- Ahora solo queda iniciar el demonio mediante init.d (/etc/init.d/ntpd start) o manualmente (ntpd). Además de añadirlo en los scripts de inicio para que autoarranque.
Evitando problemas
- Para evitar que en el arranque la hora este excesivamente desincronizada, cosa que causaría que ntpd no la actualizara, es recomendable añadir algún script en el inicio para que mediante ntpdate se sincronice automaticamente. Esto lo podemos hacer con el script ntp-client (si existen en nuestra distro). Y si no creamos un archivo con lo siguiente en /etc/init.d/acthora Lo hacemos ejecutable "chmod +x /etc//init.d/acthora" y lo añadimos a los runlevels con update-rc.d, rc-update o el correspondiente en nuestra distro.
#!/bin/bash echo "Actualizando hora..." ntpdate -u hora.rediris.es |
- Si tras sincronizar la hora recivimos errores con archivos que tienen la fecha de modificación en el futuro, ejecutad el siguiente script para arreglarlo. De producción casera y algo chapuzas XD. Hace un "touch" a todos los ficheros del sistema, si queremos hacerlo solo a un directorio concreto poned "find /directorio" en lugar de "find /".
#!/bin/bash for f in $(find /); do touch $f done
|
Para Gentoo Linux
Instalación y configuración de ntpd
- emerge ntp
- nano /etc/conf.d/clock
CLOCK_SYSTOHC="yes"
TIMEZONE="GMT"
NTPDATE_CMD="ntpdate"
NTPDATE_OPTS="-b hora.rediris.es"
server hora.rediris.es
restrict hora.rediris.es
stratum 2
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
restrict default ignore
- rc-update add ntpd default
- /etc/init.d/ntpd start
Configuración ntpd-client
- nano /etc/conf.d/ntp-client
NTPCLIENT_CMD="ntpdate"
NTPCLIENT_OPTS="-s -b -u hora.rediris.es "
NTPCLIENT_TIMEOUT=30
- rc-update add ntp-client default