¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Sincronice su red con NTP
NTP ( Network Time Protocol ) permite la sincronización de reloj entre sistemas informáticos. El siguiente HOWTO describe:
- configurando un servidor NTP en Slackware Linux;
- Sincronizar PCs cliente con su servidor NTP local.
Introducción
Cuando varios usuarios manipulan datos compartidos en diferentes PC clientes en una red, es importante que todas estas máquinas estén sincronizadas. Esto es especialmente importante si comparte archivos a través de NFS, o si usa NIS para la autenticación centralizada. Obtendrás todo tipo de errores extraños si tus relojes no están sincronizados. Desafortunadamente, los relojes a bordo de los clientes no son lo suficientemente precisos.
Ahí es donde NTP ( Network Time Protocol ) es útil. Permite que las máquinas en red ajusten sus relojes para estar perfectamente sincronizados. Una serie de servidores de hora públicos en Internet permiten la recepción de la hora exacta. Desde este punto, podemos usar NTP de varias maneras.
- El comando
ntpdate
realiza una corrección inicial del reloj del BIOS. - Este ajuste de una sola vez no es suficiente para un servidor que se supone que funciona 24/7, ya que su reloj se alejará gradualmente de la hora exacta. En ese caso, tenemos que configurar el daemon
ntpd
(envío con el paquetentp
). Este demonio se pone en contacto con los servidores de hora públicos a intervalos regulares y procede con correcciones incrementales del reloj local. - El daemon
ntpd
puede a su vez configurarse como un servidor de tiempo para las máquinas cliente locales.
Es una buena práctica usar ntpdate
para el ajuste inicial y ntpd
para la sincronización de tiempo regular.
Consideraciones de Firewall
Los servicios NTP utilizan el puerto UDP 123. Abra este puerto si desea permitir que las máquinas remotas se conecten a su servidor NTP.
Sincronice un servidor LAN o un servidor público con un servidor NTP en Internet
Crear un archivo de registro vacío:
# touch /var/log/ntp.log
Visite http://www.pool.ntp.org y elija una lista de servidores de acuerdo a su país.
Configure el servicio NTP editando /etc/ntp.conf
. Puede hacer una copia de seguridad del archivo ntp.conf
existente y comenzar desde cero.
En el siguiente ejemplo, la lista de cuatro servidores se elige para la ubicación de mi empresa (Francia):
# /etc/ntp.conf driftfile /etc/ntp/drift logfile /var/log/ntp.log server 0.fr.pool.ntp.org server 1.fr.pool.ntp.org server 2.fr.pool.ntp.org server 3.fr.pool.ntp.org server 127.127.1.0 fudge 127.127.1.0 stratum 10 restrict default nomodify nopeer notrap restrict 127.0.0.1 mask 255.0.0.0
Aquí hay una pequeña explicación para algunas opciones:
- La orden
fudge 127.127.1.10 stratum 10
es un servidor “ficticio” que actúa como IP de reserva en caso de que la fuente de tiempo externa se vuelva momentáneamente inaccesible. Cuando esto suceda, NTP continuará trabajando y se basará en este servidor “interno”. - NTP tiene su propio arsenal de reglas para limitar el acceso al servicio, que se puede usar independientemente de un firewall. Las ordenes
restrict
en la configuración anterior evitan que las computadoras distantes cambien la configuración de los servidores (primera declaraciónrestrict
), y la máquina está configurada para confiar en sí misma (segunda declaraciónrestrict
). - Una declaración de “restrict” sin ningún argumento, pero seguida del nombre de host se reduce a “permitir todo”.
Gestiona el servicio NTP
Antes de iniciar el servicio, proceda a un ajuste inicial del reloj de su sistema:
# ntpdate pool.ntp.org
ntpdate
normalmente se considera obsoleto, pero aún así es útil cuando se realizan ajustes de tiempo importantes. La forma “ortodoxa” sería utilizar el comando ntpd -g
, el reemplazo oficial de ntpdate
, pero su uso fallará si el reloj de su sistema está apagado durante más de media hora..
Activar el servicio NTP:
# chmod +x /etc/rc.d/rc.ntpd
Gestionar el servicio NTP:
# /etc/rc.d/rc.ntpd start|stop|restart|status
Ahora muestre la lista de servidores a los que está conectada su máquina:
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *panopea.unstabl 213.251.128.249 2 u 30 64 377 56.136 -249.48 80.680 +88-190-17-126.r 145.238.203.14 2 u 29 64 377 77.571 -205.94 94.278 +62.210.255.117 192.93.2.20 2 u 29 64 377 77.097 -249.57 85.641 -ntp.univ-poitie 145.238.203.10 3 u 29 64 377 57.747 -191.58 107.002 LOCAL(0) .LOCL. 10 l 164 64 374 0.000 0.000 0.001
El pequeño asterisco *
que precede a una de las líneas anteriores significa que su máquina está efectivamente sincronizada con el servidor NTP correspondiente.
Sincronice su (s) PC (s) cliente (s) con su servidor NTP local
En una LAN, se considera una buena práctica sincronizar solo una máquina, el servidor, con un servidor público NTP, y las PC cliente con el servidor local. Esto ahorra ancho de banda y quita cierta carga de los servidores NTP públicos.
Como arriba, proceder a un ajuste inicial del reloj del sistema:
# ntpdate pool.ntp.org
Crear un archivo de registro vacío:
# touch /var/log/ntp.log
Ahora configure NTP para sincronizar con el servidor LAN. Reemplace la IP del ejemplo ( 192.168.2.1
) con la IP de su servidor real:
# /etc/ntp.conf driftfile /etc/ntp/drift logfile /var/log/ntp.log server 192.168.2.1 server 127.127.1.0 fudge 127.127.1.0 stratum 10 restrict default ignore restrict 127.0.0.1 mask 255.0.0.0 restrict 192.168.2.1 mask 255.255.255.255
- Las tres declaraciones “restrict” significan que estamos bloqueando todo el tráfico NTP, excepto el cliente y el servidor.
Activar e iniciar el servicio NTP:
# chmod +x /etc/rc.d/rc.ntpd # /etc/rc.d/rc.ntpd start
Como se indicó anteriormente, use el comando ntpq -p
para verificar si la sincronización fue correcta:
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *192.168.2.1 81.19.16.225 3 u 916 1024 377 0.367 7.897 2.552 LOCAL(0) .LOCL. 10 l 10h 64 0 0.000 0.000 0.000
Monitor the performance of ntpd
You will notice that the logfile /var/log/ntp.log
does not contain any information about the actual accuracy of your system clock. If it's important to you, you can log the statistics of time corrections applied by NTP daemon to the system clock. To do this, add the following lines to /etc/ntp.conf
:
statsdir /var/log/ntp/ statistics loopstats filegen loopstats file loops type day link enable
You have to create the statsdir manually. Once the configuration changes are in effect, ntpd
will create files named loops.YYYYMMDD
in that directory. Below is an example line from one of these files:
56690 3950.569 0.001199636 2.297 0.001830770 0.571576 10
The first and second number are the UTC time (expressed as Modified Julian Date and seconds elapsed since midnight). The third and fourth number are the offsets of time (in seconds) and of frequency (in parts per million). The fifth and sixth number are their respective uncertainties.
To monitor the performance of ntpd
, you can examine the plot of clock offset or frequency offset vs. time:
$ awk '{printf("%f %f %f\n", $1+$2/86400, $3, $5)}' /var/log/ntp/loops.* > time $ awk '{printf("%f %f %f\n", $1+$2/86400, $4, $6)}' /var/log/ntp/loops.* > freq $ gnuplot gnuplot> set xzeroaxis gnuplot> plot 'time' with yerror gnuplot> plot 'freq' with yerror
Given enough data, visual examination of the plots will allow you to see peculiarities in ntpd
performance, should they arise. For example, in the case illustrated by the figure below, the rapid decrease of the frequency offset was caused by replacing the power supply unit of the machine.
Sources
- Originally written by Niki Kovacs
- Performance monitoring section contributed by Dominik Drobek