Network Time Protocol (NTP) en Macul

Macul está conectado a un time syncronization server a través del protocolo NTP. Este servidor de tiempo (que está en EE.UU.) es un servidor secundario (stratum 2), es decir, el mismo está conectado a otro servidor que es primario (stratum 1) y que le sincroniza su reloj. Macul, al sincronizarse a un servidor secundario, se transforma en un servidor de tiempo ternario (stratum 3). Sincronizar servidores de esta forma jerárquica implica un menor tráfico de red. Macul funciona entonces como nuestro time server local.
Sincronizar el reloj del sistema es muy ventajoso pues implica que la hora es siempre la oficial. Hemos comprobado que el drift típico del reloj de sistema de nuestros computadores es de unos 20 segundos por dia. Los problemas más comunes asociados a un reloj desincronizado es que la fecha y hora de los archivos que se crean o modifican y los e-mails que se envian no corresponden a la fecha y hora real. Cuando el reloj del sistema tiene apenas unos segundos de diferencia con la hora oficial, esto no es mayor problema. Pero al rebootear un computador, el reloj del sistema se ajusta al reloj CMOS. Este reloj es extremadamente incierto y funciona mal en más de algún computador. La solución a este problema es sincronizar el reloj del sistema de un computador con el reloj de Macul y luego ajustar el reloj del CMOS con el del sistema. Al rebootear, el reloj del CMOS estará más o menos cercano a la hora oficial, la hora del sistema será puesta cercana a la hora oficial y el proceso de sincronización será exitoso. Si el reloj CMOS tiene una diferencia de hora demaciado grande con la hora oficial la sincronización fallará.

Instalación de la sincronización de tiempo:

  1. Con dselect instalar el paquete Debian ntp.
  2. En la configuración ingresar el nombre del servidor de tiempo local (macul.ciencias.uchile.cl)

ntp es el daemon que sincroniza el reloj del sistema al servidor que se definió en la configuración.

Como sincronizar el reloj del sistema:

  1. Dar el comando date. Este comando retorna a la pantalla la fecha y hora del reloj del sistema.
    Ejemplo: Wed Jul 12 13:13:01 CLT 2000
  2. Si el reloj del sistema no está cercano a la hora oficial hay que ajustarlo con el comando hwclock que ajusta el reloj del hardware (hay que ser root).
    Ejemplo: hwclock --set --date="07/13/00 14:15:00"
  3. El comando hwclock --hctosys hace que el reloj del sistema sea ajustado al reloj de hardware (que fue ajustado en el paso anterior).
  4. Para que el cambio tenga efecto en el daemon ntp hay que reiniciarlo con el comando
    /etc/init.d/ntp restart.
  5. Al reiniciarse el daemon ntp y al estar la reloj del sistema más o menos cercana la la hora oficial, el reloj del sistema será sincronizado exitosamente. Esto sucede despues de unos minutos pues el daemon no está sincronizando continuamente sino de vez en cuando (para no usar mucho CPU y red). Se puede controlar si hay sincronización usando el comando ntptrace (como root):
    Ejemplo:
        localhost: stratum 4, offset 0.000044, synch distance 1.16098
        macul.ciencias.uchile.cl: stratum 3, offset -0.228400, synch distance 1.43214
        fnbhs.com: stratum 2, offset -1.802178, synch distance 3.00378
        tictoc.tip.CSIRO.AU: stratum 1, offset -0.034734, synch distance 0.00041, refid 'ATOM'

    En este ejemplo: localhost es stratum 4 (servidor cuaternario), Macul es stratum 3 (terciario), etc.

    Si ejecutando el comando ntptrace aparece el mensaje:
        localhost: stratum 16, offset 0.000025, synch distance 0.00002
        0.0.0.0: *Not Synchronized*
    todavía no hay sincronización.

Una vez exitosa la sincronización hay que ajustar el reloj del hardware (CMOS) a la hora del sistema. Lo más simple es reiniciar el daemon del hwclock con el comando /etc/init.d/hwclock.sh restart. Si la operación es exitosa aparecerá la siguente información:
    Saving the System Clock time to the Hardware Clock...
    Hardware Clock updated to Wed Jul 12 13:13:01 CLT 2000


Página de tips