Chapitre 15. Configurer NTP en utilisant Chrony Suite

En informatique, un chronométrage précis est important pour un certain nombre de raisons. Dans les réseaux' par exemple, un horodatage précis des paquets et des journaux est requis. Sur les systèmes Linux, le protocole NTP est implémenté par un démon exécuté dans l'espace utilisateur.
Le démon de l'espace utilisateur met à jour l'horloge système exécutée dans le noyau. L'horloge système garde l'heure en utilisant diverses sources horaires. Habituellement, un compteur d'horodatage (« Time Stamp Counter », ou TSC) est utilisé. TSC est un enregistrement CPU qui compte le nombre de cycles depuis sa dernière réinitialisation. Ce compteur est très rapide, possède une haute résolution, et aucune interruption ne se produit.
Un choix se produit entre les démons ntpd et chronyd, qui se trouvent dans les référentiels des paquets ntp et chrony respectivement. Cette section décrit l'utilisation de la suite d'utilitaires chrony pour mettre à jour l'horloge système sur les systèmes n'entrant pas dans la catégorie conventionnelle des serveurs dédiés, toujours en cours de fonctionnement et sur le réseau de manière permanente.

15.1. Introduction à Chrony Suite

Chrony est composé de chronyd, un démon exécuté dans l'espace utilisateur, et de chronyc, un programme de ligne de commande pour effectuer des ajustements sur chronyd. Les systèmes qui ne sont pas connectés de manière permanente, ou qui ne sont pas alimentés de manière permanente, prennent un temps relativement long à ajuster leurs horloges système avec ntpd. Ceci est dû au fait que de nombreuses petites corrections sont effectuées sur la base des observations de dérive et de décalage des horloges. Les changements de température, qui peuvent être significatives lors du démarrage d'un système, affectent la stabilité des horloges matérielles. Même si les ajustements commencent dès les premières millisecondes du démarrage d'un système, la précision acceptable peut prendre entre zéro et dix secondes pour un redémarrage de type « warm » à plusieurs heures, selon les besoins, l'environnement d'exploitation, et le matériel. chrony est une implémentation du protocole NTP différente de ntpd, et peut ajuster l'horloge système plus rapidement.

15.1.1. Différences entre ntpd et chronyd

L'une des différences principales entre ntpd et chronyd réside dans les algorithmes utilisés pour contrôler l'horloge de l'ordinateur. Ce que chronyd peut faire mieux que ntpd inclut :
  • chronyd peut bien fonctionner lorsque les références horaires externes sont accessibles de manière intermittente, tandis que ntpd a besoin d'interroger les références horaires régulièrement pour bien fonctionner.
  • chronyd peut bien fonctionner même lorsque le réseau est encombré pendant de longues périodes.
  • chronyd peut habituellement synchroniser l'horloge plus rapidement et avec une meilleure précision.
  • chronyd s'adapte rapidement aux changements soudains de vitesse de l'horloge, par exemple lorsque ceux-ci sont dus à des changements de température de l'oscillateur à cristal, tandis que ntpd pourrait nécessiter plus de temps pour se réajuster.
  • Dans la configuration par défaut, chronyd n'arrête jamais l'heure après la synchronisation de l'horloge pendant le démarrage système, afin de ne pas perturber les autres programmes en cours d'exécution. ntpd peut également être configuré de manière à ne jamais arrêter le temps, mais doit utiliser différents moyens pour ajuster l'horloge, ce qui entraîne un certain nombre d'inconvénients.
  • chronyd peut ajuster la vitesse de l'horloge sur un système Linux dans une plage plus importante, ce qui lui permet d'opérer même sur des machines ayant une horloge endommagée ou instable. Par exemple, sur certaines machines virtuelles.
Ce que chronyd peut faire, que ntpd ne peut pas faire :
  • chronyd fournit la prise en charge des réseaux isolés, où l'unique méthode de correction du temps possible est manuelle, comme lorsque l'administrateur regarde l'horloge. chronyd peut examiner les erreurs corrigées lors de différentes mises à jour pour estimer la vitesse à laquelle l'ordinateur gagne ou perd du temps, et utilise ces estimations pour ajuster l'horloge système conséquemment.
  • chronyd fournit la prise en charge pour calculer la quantité de gains ou pertes de temps de l'horloge temps réel, l'horloge matérielle, et maintient l'heure lorsque l'ordinateur est éteint. Ces données peuvent être utilisées lorsque le système démarre pour définir l'heure système à l'aide d'une valeur ajustée de l'heure prise de l'horloge temps réel. Cette fonctionnalité, au moment de la rédaction de ce guide, est uniquement disponible sur Linux.
Ce que ntpd peut faire, que chronyd ne peut pas faire :
  • ntpd prend totalement en charge NTP version 4 (RFC 5905), y compris la diffusion, multidiffusion, et le Manycast des clients et serveurs, ainsi que le mode Orphelin. Il prend également en charge des schémas d'authentification supplémentaires basés sur chiffrement de clé publique (RFC 5906). chronyd utilise NTP version 3 (RFC 1305), qui est compatible avec la version 4.
  • ntpd inclut des pilotes pour de nombreuses horloges de référence, tandis que chronyd repose sur d'autres programmes, comme par exemple gpsd pour accéder aux données des horloges de référence.

15.1.2. Choisir les démons NTP

  • Chrony devrait être pris en considération pour tous les systèmes qui sont fréquemment suspendus ou déconnectés de manière intermittente puis reconnectés à un réseau, comme des systèmes virtuels et mobiles.
  • Le démon NTP (ntpd) doit être considéré pour les systèmes habituellement en cours d'exécution de manière permanente. Les systèmes qui requièrent l'utilisation d'une adresse IP de diffusion ou de multidiffusion, ou qui effectuent l'authentification de paquets avec le protocole Autokey devraient envisager d'utiliser ntpd. Chrony prend uniquement en charge l'authentification de clés symétriques à l'aide d'un code d'authentification de message (MAC) avec MD5, SHA1 ou avec des fonctions de hachage plus robustes, tandis que ntpd prend également en charge le protocole d'authentification Autokey, qui peut utiliser le système PKI. Autokey est décrit dans RFC 5906.