Ponemos en hora nuestro sistema (conceptos y ntp)


¿Os suena GMT? ¿UTC, Z, CEST, CET? ¿cuando cambia la hora de verano a invierno, cambiamos de GMT+1 a GMT+2, pero no cambiamos de zona horaria? ¿rdate, ntpd, ntpate, stratum? ¿Qué significa todo eso? ¿Cómo dejamos bien la hora del sistema?

Cuando se habla de qué hora es, hay muchas siglas en medio que nos pueden confundir. Es importante tener la hora del sistema “a la hora”. Por ejemplo, si tenemos varios servidores con sus respectivos ficheros de log, necesitamos saber de forma precisa qué eventos sucedieron antes o después en cada servidor.
Ver como funcionan programas que sincronizan la hora es fácil, pero a veces tantas siglas y conceptos nos pierden y perdemos el mundo de vista.
En este artículos veremos los diferentes “conceptos” y una breve guia con la cual configurar el cliente ntp y poder mantener la hora de nuestro sistema correctamente.
Conceptos y acrónimos
Hay varios conceptos y acrónimos que necesitaremos para entender qué hacemos (hay más acrónimos…):

  • GMT (Greenwich Mean Time). Es la hora del meridiano de Greenwich, población cercana a Londres. Se usó esa porque fué la usada por la “Britain’s Royal Navy” durante el sigo XIX. El meridiano también pasa por España.
  • UTC (Universal Time Coordenated). Básicamente lo mismo que la hora GMT, pero ya sincronizado con relojes atómicos. Es estándard y ya no hace referencia a un sitio en concreto.
  • Zulú o Z. En la segunda guerra mundial abreviaban “GMT” por “Z”, y según el alfabeto internacional de comunicaciones la Z se pronuncia Zulú
  • CET (Central European Time). Hora Central Europa, es UTC+1. Donde está España excepto las Canarias.
  • CEST (Central European Summer Time). Hora central Europea en verano, UTC+2. Donde está España excepto las Canarias.
  • WET (Western European Time). Hora de Europa del Oeste, donde están las Canarias. Es la misma que UTC.
  • WEST (Western European Summer Time). Hora de Europa del Oeste en verano, donde están las Canarias. Es UTC+1
  • DST (Daylight Summer Time). Así se llama el periodo que estamos en ahorro de luz de verano.
  • NTP (Network Time Protocol). El protocolo de red que usaremos para sincronizarnos con los otros servidores.
  • Es decir, en España (excepto Canarias) estamos en invierno a UTC+1 (CET) y en verano pasamos a UTC+2 (CEST). La hora UTC no cambia, sinó que cambia nuestra referencia a ella.

    Cuando se habla de servidores, veremos que hay servidores “Stratum 1”, “Stratum 2”, etc. Eso es el nivel de precisión que tienen esos servidores. Los Stratum 1 se sincronizan con fuentes de tiempo externas (relojes atómicos o radio-antenas). Los Stratum 2 se sincronizan con los Stratum 1, etc. Normalmente nos sincronizaremos con servidores Stratum 2 o Stratum 3 para no saturar aún más a los Stratum 1. Puede ser más preciso un Stratum 2 que tengamos “cerca” que un Stratum 1 más lejos.
    Instalar y configurar ntp
    Hay dos protocolos de sincronización. Uno es el rdate pero no ofrece una precisión tan ajustada como ntp. Sincronizaremos nuestra hora con el protocolo ntp. En primer lugar tendremos que instalar el paquete (o desde el código fuente). En Debian haríamos:

    apt-get install ntp

    (en otras distribuciones será algo parecido)
    Y nos pedirá algunos servidores NTP. Podemos usar, p. ej.:

    chronos.bulma.net ntp.obspm.fr ntp.cs.strath.ac.uk

    En esta página podemos ver varios servidores públicos. Por cuestiones evidentes es conveniente que estén “cerca” de nosotros (como mínimo en cuestión de latencia de red).
    Él mismo nos iniciará el demonio ntpd, que es el encargado de ir haciendo pequeños ajustes en nuestro reloj.

    En algunos casos no genera bien el fichero /etc/ntp.conf y tendremos que volver a ejecutar dpkg-reconfigure ntp-simple para que nos ponga correctamente los servidores (o bien los ponemos a mano).
    El fichero nos quedará de una forma parecida a la siguiente (los directorios pueden variar de una distribución a otra):

    logfile /var/log/ntpd
    driftfile /var/lib/ntp/ntp.drift
    statsdir /var/log/ntpstats/

    #statistics loopstats peerstats clockstats
    filegen loopstats file loopstats type day enable
    filegen peerstats file peerstats type day enable
    filegen clockstats file clockstats type day enable

    server chronos.bulma.net
    server ntp.obspm.fr
    server ntp.cs.strath.ac.uk

    Varios ficheros de esos los puede usar ntp para “auto-regular” la frecuencia del reloj en base a los desajustes que suele llevar.

    Por defecto, ntp sincronizará la hora en intervalos mínimos de 64 segundos y máximos de 1024 segundos, aunque se puede cambiar en el fichero de configuración pero normalmente no hace falta (es mediante minpoll y maxpoll). Como sincroniza cada cierto tiempo, e intenta no hacer saltos bruscos de hora es posble que estemos un rato con el ntpd ejecutandose y el sistema aún no haya sincronizado la hora (de hecho si son saltos pequeños intenta cambiar ligeramente la frecuencia del reloj del Kernel).
    Verificación
    El paquete ntp incorpora varios comandos, uno de los cuales es ntptrace. Si lo ejecutamos podemos tener esa salida:

    pinux.info: stratum 3, offset 0.000012, synch distance 0.26268
    nic.lth.se: stratum 2, offset -0.007485, synch distance 0.05026
    swisstime.ee.ethz.ch: stratum 1, offset -0.139188,\
    synch distance 0.00082, refid ‘DCFa’

    Así podemos ver que realmente estamos sincronizando con los servidores. El offset es la diferencia estimada con el tiempo correcto y la distancia de sincronización es con una estimación de error aleatorio.
    Varios
    Recordar que ntpd nos habre el puerto 123 udp (a veces el tcp también, así que si lo queremos cerrar por cuestiones de seguridad podemos hacer:

    iptables -I INPUT -p udp –destination-port 123 -j REJECT
    iptables -I INPUT -p tcp –destination-port 123 -j REJECT

    En caso que no tengamos siempre el sistema siempre encendido, o no queremos el demonio ntpd siempre corriendo, podemos usar el ntpdate. Se encuentra en el paquete ntpdate. Por defecto deja en /etc/init.d/ntpdate un script, que tan sólo se ejecuta (no deja ningún demonio cargado). Coge los servidores ntp donde sincronizarse de /etc/default/ntp-servers:

    pinux:~# cat /etc/default/ntp-servers
    NTPSERVERS=”hora.rediris.es ntp.obspm.fr ntp.cs.strath.ac.uk”
    pinux:~#

    Es importante seleccionar correctamente nuestra zona horaria para poder usar ntp (el servidor ntp puede estar en otra zona horaria, pero el protocolo ntp hará los ajustes necesarios). Para seleccionar nuestra zona horaria usaremos tzsetup o bien tzselect.
    Al ejecutar el comando date debemos fijarnos que nos diga correctamente la zona en que nos encontremos situados.

    Hay mucha información en la página de ntp con un fantástico apartado de documentación.

    Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1778 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.