Menu Fermer

Le protocole NTP et les serveurs de temps

Un serveur de temps est un serveur qui délivre la date et heure à des clients.
Ces derniers se synchronisent avec le serveur de temps à travers le protocole NTP (Network Time Protocol).
Cela permet de garder des PC à l’heure sur un réseau et éviter des dérives de l’heure.

Cet article vous explique ce qu’est un serveur de temps et le fonctionnement général du protocole NTP.

Le protocole NTP et les serveurs de temps

Pourquoi corriger et synchroniser les heures d’un PC ?

Les PC calcule l’horloge interne à partir d’un oscillateur à quartz.
Mais celle-ci dérive de plusieurs secondes par jour, par rapport à l’heure officielle.
En informatique et surtout dans les réseaux dont internet, beaucoup de protocoles, communications nécessitent que des PC soient synchroniser.
Par exemple :

  • Les journaux et logs qui stockent un horodatage
  • La diffusion de contenu en temps réel, comme une synchronisation de fichiers
  • Beaucoup de protocoles sécurisés ont besoin d’une heure correcte. Par exemple HTTPS nécessitent que le PC soit à l’heure pour vérifier la validité du certificat d’un site internet
  • etc

Sans des PC à l’heure et synchroniser ces éléments ne fonctionneront pas.
Ainsi, les serveurs de temps et le protocole NTP sont devenus essentiels pour permettre aux PC de maintenir leur horloge et synchroniser l’heure.

Bien que chaque ordinateur calcule son horloge à partir d’un oscillateur à quartz, il ne peut atteindre la précision des horloges de référence. Leurs horloges internes ont tendance à dériver jusqu’à plusieurs secondes par jour, par rapport à l’heure officielle.
Ceci rend nécessaire de synchroniser régulièrement l’horloge interne avec une horloge de référence.

Qu’est-ce qu’un serveur de temps

Un serveur de temps est un ordinateur serveur qui lit l’heure réelle à partir d’une horloge de référence et distribue ces informations à ses clients à l’aide d’un réseau informatique.
Le serveur de temps peut être un serveur de temps de réseau local ou un serveur de temps Internet.
Dans un réseau LAN ou d’entreprise, il peut s’agir du contrôle de domaine ou d’un serveur en Linux.
Microsoft possède aussi un serveur de temps time.windows.com disponible sur internet pour synchroniser les PC en Windows.

Les clients interrogent à intervalles réguliers le serveur et corrige l’heure afin que tous les clients soient synchronisées et aient tous la même heure.
On parle alors de correction de décalage ou offset en anglais
Toutefois cela n’inclut aussi les changements d’heure été et d’heure d’hiver.

Cette synchronise et remise à l’heure se fait en général à l’aide du protocole NTP.
Windows et Microsoft utilise son propre système de synchronisation d’heure à travers le service de temps Windows (W32Time) qui supporte NTP.

La synchronisation de l'heure avec le serveur de temps dans Windows vers time.windows.com

L’UTC

L’UTC est le temps universel coordonné est une échelle de temps civil très utilisé en informatique.
Cela permet de synchroniser des ordinateurs dans le monde à la même heure puis appliquer un décalage (offset) pour régler les problèmes de fuseaux horaires.

Par exemple, si mon serveur de New York, États-Unis et mon serveur de Sydney, Australie doivent avoir exactement la même heure UTC.
Cela fonctionne bien pour les ordinateurs tandis que les humains utilisent l’heure locale pour garder l’heure.

Pour simplifier un peu le travail avec les serveurs, utilisez un décalage.

  • New York utilise UTC-4h ou UTC-5h lorsqu’il n’est pas à l’heure d’été.
  • Sydney utilise UTC + 10h et UTC + 11h à l’heure d’été.

Ces décalages affecteront toutes vos actions planifiées. Si vous avez un article de blog prévu pour 8 heures du matin, le serveur utilisera le décalage pour déterminer quand l’article doit être publié.

Le protocole NTP et les serveurs de temps

Le protocole NTP (Network Time Protocol) est un protocole de réseau pour la synchronisation d’horloge dans un réseau informatique.
C’est un protocole client/serveur utilisant le port 123 en UDP ou en TCP.
Mais on trouve des implémentations P2P ou qui utilise la diffusion ou la multidiffusion, où les clients écoutent passivement les mises à jour de l’heure après un premier échange de calibrage aller-retour.
Le serveur NTP agit donc comme serveur de temps pour les clients.

Dimension 4 logiciel pour synchroniser l'horloge de votre PC

Ce protocole dernier utilise le temps universel coordonné (UTC).
De ce fait, il ne gère pas les heures d’été et hiver.

Enfin la dernière version est NTP v4.

Les architectures NTP

Comme évoqué précédemment, on peut distinguer deux types d’architecture NTP.

ArchitectureDescription
client/serverLe client envoie un message au serveur avec son heure locale.
Le serveur répond avec son heure locale.
Ce dernier calcule l’heure correcte moyennant le délai réseau
BroadcastLe client envoie un message avec l’heure courante.
Le récepteur de ce message utilise cette heure comme heure locale en retranchant au préalable le délai estimé de transmission du message
Les architectures du protocole NTP

L’architecture NTP se repose sur une hiérarchie.
Plusieurs niveaux et strates avec des horloges de références, serveurs de temps puis clients et serveurs qui propagent l’heure au sein d’un réseau LAN ou d’entreprise.

  • strate 0 : ce sont les horloges de hautes précisions qui servent de références. Cela peut être des horloges atomiques, es GPS ou d’autres horloges radio
  • strate 1 : Considéré comme des serveurs primaires qui sont synchronisés à synchronisée à quelques microsecondes des horloges de la strate 0
  • strate 2 : Ce sont des clients qui interrogent les serveurs de la strate 1.
  • strate 3 : à leur tour, ils interrogent les serveurs de la strate 2 pour récupérer l’heure et la consoler au sein du niveau. Ainsi de suite

Pour consolider et rendre l’heure plus stable, les clients et serveurs peuvent se jumeler.

Les architectures et strates NTP
inspiré de wikipedia

Structure des messages NTP

La diffusion peut fonctionner dans les deux sens :

  • Un client interroge un serveur pour obtenir l’heure à synchroniser
  • Un serveur peut interroger un client pour connaître son heure

Dans les deux cas, la structure du message est identique.
Il a pour but de calculer le décalage entre le client et le serveur afin de corriger ce dernier.

Structure des messages NTP

Les informations utiles pour synchronisation de l’heure :

  • OT : Originate Timestamp; heure de départ de la requête,
  • RT : Receive Timestamp; heure de réception de la requête,
  • TT : Transmit Timestamp; heure d’émission de la requête et/ou de la réponse.

Les données informatives ou à des fins de gestion :

  • LI : indicateur d’insertion/retrait d’une seconde intercalaire la dernière minute du jour courant,
  • VN : numéro de version,
  • Mode : mode de fonctionnement,
  • Stratum : stratum de l’horloge locale,
  • Poll : intervalle minimum entre deux messages successifs,
  • Precision: précision de l’horloge locale

Les implémentations de NTP

Applications ou implémentationsDescription
chronyNTP par défaut sur Redhat avec des versions pour Ubuntu.
jamnntpdJamNNTPd est un serveur NNTP qui permet d’accéder à une base de messages JAM.
Il existe une version pour Linux et Windows.
ntpsecFork dit sécurisé dont la première version est parue en 2017
openntpdImplémentation pour OpenBSD dite sûre de 2014 qui connaît des version portables pour Linux
sntpSNTP (Simple Network Time Protocol) est une implémentation moins complexe de NTP, utilisant le même protocole mais sans nécessiter le stockage de l’état sur de longues périodes.
Par exemple les systèmes embarqués peuvent utiliser ce protocole dérivé.
W32Time / Windows timeSe synchronise par défaut sur time.windows.com
Dans un domaine, les clients se synchronisent avec le contrôle de domaine
Supporte NTP depuis Windows 10
Les implémentations de NTP
Les implémentations de NTP

Liens

source : https://fr.wikipedia.org/wiki/Network_Time_Protocol#Description_du_modèle_NTP_«_client/