NTPUn des prérequis fondamentaux d’un ordinateur, c’est qu’il soit à l’heure. Malheureusement, l’horloge intégrée dans notre machine n’est pas suffisamment exacte. Le protocole NTP (Network Time Protocol) permet à notre machine de mettre ses pendules à l’heure. Dans un réseau local, il permet la synchronisation des machines entre elles.

La suite Chrony est utilisée comme outil de gestion NTP par défaut depuis Red Hat Enterprise Linux 7.0 et OpenSUSE Leap 15.0.

Chrony est composé de :

  • chronyd – un démon exécuté dans l’espace utilisateur
  • chronyc – un outil en ligne de commande pour gérer chronyd

Installation

Supprimer ntp et ntpdate s’ils sont installés.

$ sudo yum remove ntp ntpdate

Chrony est fourni par les dépôts de paquets officiels de Red Hat Enterprise Linux et CentOS.

$ sudo yum install chrony

Synchronisation initiale

Chrony peut être invoqué manuellement pour une première synchronisation au cas où l’horloge de la machine est complètement déréglée.

$ sudo date +%Y%m%d -s "20190101"
20190101
$ date
Tue Jan  1 00:00:08 CET 2019
$ sudo chronyd -q 'pool pool.ntp.org iburst'
2018-12-31T23:00:16Z chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK 
+RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
2018-12-31T23:00:16Z Initial frequency 21.836 ppm
2018-12-31T23:00:21Z System clock wrong by 36582389.206088 seconds (step)
2020-02-28T08:46:50Z chronyd exiting
$ date
Fri Feb 28 09:46:51 CET 2020

ImportantCertaines applications digèrent très mal les modifications abruptes de l’horloge système. Ce n’est pas une mauvaise idée de redémarrer la machine après une telle opération.

Configuration initiale

Sauvegarder la configuration existante.

$ cd /etc/
$ cp chrony.conf chrony.conf.orig

Sur les serveurs CentOS 7, Chrony est immédiatement utilisable dans la configuration fournie par défaut.

# /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

Cette configuration mérite quelques remarques.

  • Le paramètre iburst réduit l’intervalle entre les quatre premières requêtes envoyées au serveur spécifié à moins de deux secondes, ce qui permet à Chrony de synchroniser l’horloge immédiatement après le lancement.
  • Le fichier spécifié par la directive driftfile enregistre les dérives de l’horloge.
  • En temps normal, Chrony corrige peu à peu tout décalage horaire, en ralentissant ou en accélérant l’horloge selon les besoins. Dans certaines situations, l’horloge système peut avoir dérivé au point où le processus de correction risque de prendre un long moment avant de corriger l’horloge système. Ici, la directive makestep 1.0 3 force Chrony à modifier l’horloge système si l’ajustement était plus important qu’une seconde (1.0), mais seulement lors des trois (3) premières mises à jour horaires. Une valeur négative peut être utilisée pour désactiver cette limite.
  • La directive rtcsync active la synchronisation de l’horloge système avec l’horloge RTC (Real-Time Clock).
  • Quant à la directive logdir, elle spécifie le répertoire où les fichiers journaux sont écrits.

Mise en service

Activer et démarrer Chrony.

$ sudo systemctl enable chronyd --now

Vérifier si le service fonctionne correctement.

$ systemctl status chronyd

Afficher le suivi de la synchronisation.

$ chronyc tracking
Reference ID    : 5362C986 (ntp1.mediamatic.nl)
Stratum         : 3
Ref time (UTC)  : Sat Feb 29 08:28:52 2020
System time     : 0.000001028 seconds slow of NTP time
Last offset     : +0.001116573 seconds
RMS offset      : 0.010313899 seconds
Frequency       : 21.756 ppm fast
Residual freq   : +0.000 ppm
Skew            : 0.143 ppm
Root delay      : 0.014591943 seconds
Root dispersion : 0.018667171 seconds
Update interval : 516.2 seconds
Leap status     : Normal
  • Reference ID, c’est la référence hexadécimale ainsi que le nom ou l’adresse IP du serveur avec lequel l’ordinateur est actuellement synchronisé.
  • Stratum indique à combien de sauts d’un ordinateur avec une horloge de référence attachée nous nous trouvons.
  • Toute erreur dans l’horloge système (System time) est corrigée en l’accélérant ou en la ralentissant légèrement jusqu’à ce que l’erreur soit résolue, puis celle-ci retourne à la vitesse normale.

Afficher la liste des serveurs auxquels on est connecté.

$ chronyc sources
210 Number of sources = 4
MS Name/IP address     Stratum Poll Reach LastRx Last sample
===========================================================================
^- ntp2k.versadns.com        2   6    17    23  -1162us[  +85us] +/-  127ms
^- reinhardt.pointpro.nl     2   6    17    24  +4042us[+5290us] +/-   33ms
^* 46-243-26-34.tangos.nl    1   6    17    23  -2618us[-1371us] +/- 8551us
^+ debmirror.tuxis.net       2   6    17    24  +3501us[+4749us] +/-   20ms
  • Le petit astérisque * en début de ligne signifie que la machine est correctement synchronisée avec le serveur distant.

Chrony sur un serveur dédié

Sur un serveur dédié, on pourra utiliser la configuration proposée par défaut, en indiquant des serveurs NTP en France.

# /etc/chrony.conf
server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

Chrony sur un serveur LAN

Dans un réseau local, Chrony peut à son tour être configuré comme serveur de temps pour les machines locales.

# /etc/chrony.conf
server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.2.0/24
local stratum 10
logdir /var/log/chrony
  • La directive allow spécifie l’autorisation d’accès pour un hôte ou un réseau particulier.
  • La directive local stratum 10 est utilisée pour que Chrony puisse apparaître comme synchronisé avec le temps réel du point de vue des interrogations des clients, même s’il ne possède pas de source de synchronisation actuellement.

Ouvrir le port 123 en UDP pour autoriser les requêtes des postes clients.

$ sudo firewall-cmd --permanent --add-service=ntp
$ sudo firewall-cmd --reload

Synchronisation avec une source locale

Dans l’exemple qui suit, on connecte un serveur du réseau local à une source NTP du même réseau.

# /etc/chrony.conf
server proxy.microlinux.lan iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

Connecter un poste client OpenSUSE Leap

Pour faire pointer un poste client sous OpenSUSE Leap vers un serveur NTP local, on pourrait très bien éditer /etc/chrony.conf. Au lieu de cela, on va utiliser l’outil de configuration YaST.

  1. Ouvrir Système > YaST.
  2. Services réseau > Configuration NTP.
  3. Saisir le nom d’hôte ou l’adresse IP du serveur et cliquer sur Tester.

Documentation


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Serveur

2 commentaires

Cascador · 2 mars 2020 à 11 h 29 min

Salute,

Tu peux aussi fournir le lien en Français pour le System Administrator’s Guide : https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

Tcho !

    kikinovak · 2 mars 2020 à 11 h 35 min

    Ajouté, merci !

Répondre à kikinovak Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *