Skip to main content

NTP

Introducción

Cada uno de los nodos se conectará a un NTP externo para sincronizarse y ofrecerá esta sincronización a nuestra red, para ello deberemos configurar cada servidor para utilizar nuestro NTP y no los que tiene por defecto.

NTP es muy importante para una Raspberry o similar, ya que, al perder la electricidad, no tiene forma de mantener la hora correcta. Después de iniciar, hacen una petición para actualizar su hora, así que durante unos instantes veremos que su hora es incorrecta.

Configuración (Raspbian)

Después de varias pruebas, he decidido modificar el servicio NTP de Raspbian por el que conozco mejor, así que lo primero es instalarlo.

sudo apt update
sudo apt install ntpsec -y

Probamos de hacer una sincronización y revisar que esté conectando a algún servidor (el que empieza por ** * ** es el servidor al que se ha conectado).

sudo ntpd -u pool.ntp.org
ntpq -p

Debemos elegir unos servidores a los que se conectará, por defecto nos crea el pool de Debian, pero es mejor idea utilizar los que tengamos más cercanos, algo que podemos ver en la web oficial. En mi caso utilizo los de Europa.

sudo vi /etc/ntpsec/ntp.conf

Además de indicar el nuevo pool, debemos cambiar el restrict para permitir peticiones de cualquier servidor en la red.

/etc/ntpsec/ntp.conf
pool 1.europe.pool.ntp.org
pool 2.europe.pool.ntp.org
pool 3.europe.pool.ntp.org

#restrict 127.0.0.1
#restrict ::1
restrict 192.168.1.0/24

Después de reiniciar ya estará funcionando el servicio.

sudo systemctl restart ntpsec
important

El servicio de DNS es muy sencillo ya que se aplica automáticamente por DHCP, pero NTP debe ser configurado manualmente en cada uno de nuestros dispositivos.

Configuración (Ubuntu)

Ubuntu dispone de varias opciones, aunque la más sencilla es chrony.

sudo apt install chrony -y

La configuración es similar al resto.

sudo vi /etc/chrony/chrony.conf

Modificar los servidores de origen, añadir el allow para permitir su uso en la red y la directiva local para que sirva hora incluso cuando aún no se ha sincronizado con una fuente externa.

/etc/chrony/chrony.conf
pool 1.europe.pool.ntp.org iburst
pool 2.europe.pool.ntp.org iburst
pool 3.europe.pool.ntp.org iburst
allow 192.168.1.0/24
local stratum 10
  • iburst: Envía 4 peticiones rápidas al arrancar para sincronizarse antes.
  • allow: Permite que los dispositivos de la red consulten la hora.
  • local stratum 10: Permite servir hora usando el reloj local como fallback (stratum 10). Sin esta directiva, chrony rechazará las peticiones de los clientes mientras no esté sincronizado con una fuente externa.

Reiniciar y confirmar que encuentra servidores.

sudo systemctl restart chrony
chronyc sources
info

Los servidores pueden tardar unos minutos en sincronizarse. Inicialmente aparecerán con ^? (estado desconocido). Tras unos minutos, uno debería cambiar a ^* (seleccionado como fuente principal) y otros a ^+ (combinables).