Files
varlog/_cache/articles/4c3edad6-b274-42db-87f4-156131a12310.json
T
2026-05-15 10:37:48 +02:00

1 line
17 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"uuid":"4c3edad6-b274-42db-87f4-156131a12310","slug":"ntp-synchronisation-de-l-heure","title":"NTP : Protocole de Synchronisation de l'heure","author":"cedric@abonnel.fr","published":true,"published_at":"2023-02-10 22:48:30","created_at":"2023-02-10 22:48:30","updated_at":"2023-02-10 22:48:30","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# NTP : Protocole de Synchronisation de l'heure\n\nLe **protocole NTP** (Network Time Protocol) est un protocole de réseau utilisé pour synchroniser les horloges des systèmes informatiques à travers un réseau. Il est utilisé pour s'assurer que l'horloge de chaque ordinateur dans un réseau est synchronisée avec une horloge de référence de haute précision, généralement une horloge atomique ou GPS.\nCe protocole utilise un système de hiérarchie de serveurs pour synchroniser les horloges, où les serveurs NTP de niveau supérieur sont synchronisés avec une source d'horloge de référence, et les serveurs de niveau inférieur se synchronisent avec les serveurs de niveau supérieur, et ainsi de suite jusqu'aux clients finaux. Il utilise également des algorithmes de filtrage et de correction pour minimiser les erreurs de synchronisation causées par les délais de transmission et les perturbations réseau.\nLe protocole NTP est largement utilisé sur Internet et dans les réseaux privés pour maintenir une synchronisation précise de l'heure entre les ordinateurs, ce qui est important pour de nombreuses applications, telles que la surveillance réseau, la facturation en ligne, la sécurité, la gestion de réseau, et les applications temps réel.\n\nUn ordinateur de bureau peut utiliser le protocole NTP pour synchroniser son horloge avec une source d'horloge de référence. Il peut utiliser un logiciel NTP comme chronyd ou ntpd pour se connecter à un serveur NTP et obtenir l'heure exacte. Les ordinateurs de bureau peuvent également utiliser leur horloge interne pour synchroniser l'horloge, mais cela peut causer une divergence de temps car les horloges internes sont généralement moins précises que les horloges atomiques ou GPS.\n\n## Choisir un Serveur NTP\nUn **serveur NTP** (Network Time Protocol) est un ordinateur qui utilise le protocole NTP pour synchroniser l'horloge de son système avec une source d'horloge de référence, généralement un horloge atomique ou GPS. Les clients NTP se connectent au serveur NTP pour obtenir l'heure exacte et synchroniser leur propre horloge. Les serveurs NTP peuvent également être utilisés pour fournir une synchronisation de temps pour d'autres serveurs dans un réseau, formant une hiérarchie de serveurs NTP. Les serveurs NTP peuvent être configurés pour fonctionner en mode actif ou passif, les serveurs actifs étant responsables de l'émission de temps, les serveurs passifs ne fournissant que des informations de temps.\n\nIl existe de nombreux serveurs NTP publics disponibles sur Internet que vous pouvez utiliser pour synchroniser l'horloge de votre ordinateur de bureau. Quelques exemples de serveurs NTP publics fiables :\n\n- **pool.ntp.org** : un groupe de serveurs NTP gérés par des bénévoles qui sont disponibles pour une utilisation publique.\n- **time.google.com** : Serveur NTP géré par Google.\n- **time.nist.gov** : Serveur NTP géré par l'Institut national des normes et de la technologie des États-Unis (NIST).\n- **time.windows.com** : Serveur NTP géré par Microsoft.\n\nVous devriez utiliser des serveurs NTP de confiance et les utiliser de manière responsable, en respectant les politiques d'utilisation des serveurs choisis. Il est également bon de **choisir des serveurs NTP proches géographiquement** pour réduire les délais de transmission et améliorer la précision de la synchronisation.\n\nAvec le réseau de serveurs **pool.ntp.org** vous pouvez utiliser un serveur NTP proche géographiquement.\n\n| type de zone | eplication | exemple | |\n| ------------ | ---------- | ---------- |\n| région géographique spécifique | **pool.ntp.org** est divisé en régions géographiques, vous pouvez donc utiliser un serveur NTP de la région géographique spécifique où vous vous trouvez. | Si vous êtes en France, vous pouvez utiliser un serveur **fr.ntp.pool.org** |\n| zone géographique spécifique | **pool.ntp.org** est divisé en zones géographiques, vous pouvez donc utiliser un serveur NTP de la zone géographique spécifique où vous vous trouvez. | Si vous êtes en Europe, vous pouvez utiliser un serveur **europe.ntp.pool.org** |\n| serveur NTP au hasard | Vous pouvez utiliser un serveur NTP au hasard à partir de la liste des serveurs NTP de **pool.ntp.org**. Cela choisira un serveur au hasard pour vous, mais cela n'est pas garanti pour être proche géographiquement. | **pool.ntp.org** |\n\nVoir la répartition des zones sur le site https:*www.pool.ntp.org/zone/@\n\n## Sous FEDORA\nLe résumé pour Fedora :\n\n---\n\n`~/.profile`\n\nDéfinir le fuseau horaire pour un profil\n\n TZ='Europe/Paris'; export TZ\n\n---\n\n`timedatectl`\n\nDéfinir un fuseau horaire pour la machine\n\n timedatectl set-timezone Europe/Paris\n\n---\n\n`/etc/chrony.conf` utilisé avec **chronyd** \n\nModifier la liste des serveurs NTP pour chrony\n\n pool 0.fr.pool.ntp.org iburst\n pool 1.fr.pool.ntp.org iburst\n pool 2.fr.pool.ntp.org iburst\n pool 3.fr.pool.ntp.org iburst\n \n---\n\n`hwclock`\n\nUtilisation du fuseau UTC avec la RTC\n\n sudo hwclock --systohc --utc\n\n---\n\nPlace aux explications afin de mieux appréhender le paramétrage de votre machine.\n\n### Configurer le fuseau horaire sous Fedora\n<u>**Définir le fuseau horaire pour un profil**</u>\n\nVous pouvez utiliser votre fuseau horaire avec la commande `tzselect` sous Fedora. Pour définir un fuseau horaire de votre profil, compléter le fichier `.profile` en ajoutant la ligne suivante :\n TZ='Europe/Paris'; export TZ\n\nLa variable d'environnement `TZ` contient la définition du fuseau horaire. En spécifiant `TZ='Europe/Paris`' dans le fichier `.profile`, vous définissez le fuseau horaire de l'utilisateur à celui de Paris, France.\n\n<u>**Définir un fuseau horaire pour la machine**</u>\n\nUtilisez la commande . Cette commande permet de configurer les paramètres de date et d'heure, y compris le fuseau horaire. Pour définir le fuseau horaire à Paris, utilisez la commande suivante :\n\n timedatectl set-timezone Europe/Paris\n\nLa commande `timedatectl` permet d'afficher les paramètres de date et d'heure du système :\n\n```\n timedatectl\n Local time: sam. 2023-01-28 17:54:43 CET\n Universal time: sam. 2023-01-28 16:54:43 UTC\n RTC time: sam. 2023-01-28 16:54:43\n Time zone: Europe/Paris (CET, +0100)\nSystem clock synchronized: yes\n NTP service: active\n RTC in local TZ: no\n```\n\n### Client NTP sous Fedora\n**Chronyd** est un démon NTP (Network Time Protocol) pour les systèmes Linux. Il est utilisé pour synchroniser l'horloge du système avec un serveur NTP en utilisant le protocole NTP. Il est conçu pour être plus rapide et plus efficace que d'autres implémentations NTP telles que **ntpd**, et peut être utilisé pour synchroniser les systèmes distribués avec une précision de l'ordre de la microseconde. **Chronyd** est également capable de s'adapter automatiquement aux conditions de réseau changeantes et peut fonctionner avec des périphériques GPS pour fournir une synchronisation GPS haute précision. Il est également souvent utilisé pour fournir une synchronisation de temps pour les réseaux locaux et les systèmes embarqués.\n\nComme NTP est entièrement en UTC (Universal Time, Coordinated), les fuseaux horaires et DST (Daylight Saving Time) sont appliqués localement par le système. `/etc/localtime` est un fichier de configuration sur les systèmes Linux et Unix qui contient les informations de fuseau horaire pour la zone géographique où se trouve l'ordinateur. Ce fichier est utilisé pour configurer la date et l'heure locale de l'ordinateur. Il est généralement lié symboliquement au **fichier de données** de fuseau horaire approprié dans `/usr/share/zoneinfo`. Le fichier `/etc/localtime` est utilisé par les programmes système tels que les fonctions de date et d'heure de **glibc**, ainsi que par les applications utilisateur, pour afficher la date et l'heure dans le fuseau horaire local. Lorsque vous modifiez la configuration de fuseau horaire de votre ordinateur, vous devriez également mettre à jour ce fichier pour refléter les modifications. Sous Fedora, le programme qui configure le fichier `/etc/localtime` est généralement `timedatectl`.\n\n<u>**Vérifier le fonctionnement du service chronyd**</u>\n\n sudo systemctl status chronyd\n\nCette commande vous permet de voir le statut actuel du démon **chronyd** (chronyd est un démon NTP pour systèmes Linux qui est utilisé pour synchroniser l'heure du système avec un serveur NTP).\n\nSi **chronyd** est en cours d'exécution, la commande affichera des informations telles que l'état actuel du démon (actif, en cours d'exécution), l'heure de démarrage, la version utilisée, etc. Si **chronyd** ne fonctionne pas, la commande affichera des informations sur les raisons de l'échec et les erreurs éventuelles.\n\n```\n sudo systemctl status chronyd\n● chronyd.service - NTP client/server\n Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; preset: enabled)\n Active: active (running) since Sat 2023-01-28 17:19:03 CET; 1h 0min ago\n Docs: man:chronyd(8)\n man:chrony.conf(5)\n Process: 161575 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)\n Main PID: 161577 (chronyd)\n Tasks: 1 (limit: 19029)\n Memory: 1.0M\n CPU: 49ms\n CGroup: /system.slice/chronyd.service\n └─161577 /usr/sbin/chronyd -F 2\n\njanv. 28 17:19:03 cdcdsk001 systemd[1]: Starting chronyd.service - NTP client/server...\njanv. 28 17:19:03 cdcdsk001 chronyd[161577]: chronyd version 4.3 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCF>\njanv. 28 17:19:03 cdcdsk001 chronyd[161577]: Frequency 3.866 +/- 0.157 ppm read from /var/lib/chrony/drift\njanv. 28 17:19:03 cdcdsk001 chronyd[161577]: Using right/UTC timezone to obtain leap second data\njanv. 28 17:19:03 cdcdsk001 chronyd[161577]: Loaded seccomp filter (level 2)\njanv. 28 17:19:03 cdcdsk001 systemd[1]: Started chronyd.service - NTP client/server.\njanv. 28 17:21:14 cdcdsk001 chronyd[161577]: Selected source 5.196.8.113 (1.fr.pool.ntp.org)\njanv. 28 17:21:14 cdcdsk001 chronyd[161577]: System clock TAI offset set to 37 seconds\n```\n\n<u>** Surveiller l'état de synchronisation **</u>\n\nLa commande `chronyc tracking` permet de surveiller l'état de synchronisation de l'horloge du système avec les serveurs NTP spécifiés dans la configuration de **chronyd**. Elle affiche des informations telles que l'heure actuelle, l'offset (différence) entre l'heure du système et l'heure du serveur NTP, la jitter (variabilité de la latence de réseau) et la qualité de l'horloge du serveur NTP.\n\n```\n chronyc tracking\nReference ID : 05C40871 (vps-3f94841e.vps.ovh.net)\nStratum : 3\nRef time (UTC) : Sat Jan 28 17:24:53 2023\nSystem time : 0.000200679 seconds fast of NTP time\nLast offset : +0.000098416 seconds\nRMS offset : 0.000396241 seconds\nFrequency : 3.828 ppm fast\nResidual freq : +0.006 ppm\nSkew : 0.169 ppm\nRoot delay : 0.045918304 seconds\nRoot dispersion : 0.017629473 seconds\nUpdate interval : 515.0 seconds\nLeap status : Normal\n```\n\n<u>** Serveurs NTP utilisés **</u>\n\nLa commande `chronyc sources` permet d'afficher les informations sur les serveurs NTP utilisés par **chronyd** pour synchroniser l'horloge du système. Cela inclut l'adresse IP, le statut de la synchronisation, l'offset, la jitter, la qualité de l'horloge et d'autres informations. Elle peut aider à identifier les serveurs NTP qui fonctionnent bien et ceux qui ont des problèmes de synchronisation.\n\n```\n chronyc sources\nMS Name/IP address Stratum Poll Reach LastRx Last sample \n# ===================================================================\n| ? ntp.tuxfamily.net 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ------------------------------------------------------------------------------ |\n| ? ip139.ip-5-196-160.eu 2 6 1 0 +806us[ +806us] +/- 21ms |\n| ? 51-158-147-92.rev.poneyt> 2 6 1 0 -1081us[-1081us] +/- 61ms |\n| ? flightplandatabase.com 2 6 1 0 -17ms[ -17ms] +/- 72ms |\n| ? ntp.univ-angers.fr 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ? vps-3f94841e.vps.ovh.net 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ? time.cloudflare.com 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ? vps-7d02b399.vps.ovh.net 2 6 1 2 -9569us[-9569us] +/- 78ms |\n| ? ns2.euskill.com 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ? vps-4fbcd565.vps.ovh.net 2 6 1 1 +4160us[+4160us] +/- 28ms |\n| ? herbrand.noumicek.cz 2 6 1 2 -1527us[-1527us] +/- 61ms |\n| ? 82-64-84-116.subs.proxad> 0 6 0 - +0ns[ +0ns] +/- 0ns |\n| ? y.ns.gin.ntt.net 0 6 0 - +0ns[ +0ns] +/- 0ns |\n```\n\n<u>**Modifier la liste des serveurs pour chrony**</u>\n\nPour modifier la liste des serveurs NTP utilisés par **chronyc**, vous pouvez éditer le fichier de configuration `/etc/chrony.conf` et y ajouter ou supprimer des lignes de serveurs NTP. Il est recommandé de sauvegarder le fichier de configuration avant de l'éditer.\n\nPour ajouter un serveur NTP, ajoutez une ligne commençant par `server` suivi de l'adresse IP ou le nom d'hôte du serveur NTP ou l'adresse d'un pool NTP. Par exemple, pour ajouter les pool de serveurs NTP France de **pool.ntp.org**, ajoutez les lignes suivantes :\n\n```\npool 0.fr.pool.ntp.org iburst\npool 1.fr.pool.ntp.org iburst\npool 2.fr.pool.ntp.org iburst\npool 3.fr.pool.ntp.org iburst\n```\n\n\"pool\" est une commande qui indique au démon NTP de se synchroniser avec un groupe de serveurs NTP plutôt qu'avec un serveur NTP particulier.\n\n\"iburst\" est une option qui indique au démon NTP de faire des demandes de temps plus fréquentes et plus rapides au démarrage pour synchroniser rapidement l'horloge de l'ordinateur.\n\n#### = Fonctionnement avec une RTC\nL'horloge système fonctionne grâce à un composant matériel qui se trouve dans la plupart des ordinateurs et des appareils électroniques. Il se nomme RTC, ce qui signifie \"Real-time Clock\" ou \"horloge temps réel\" en français.\\\\\nLa RTC est souvent utilisée pour maintenir l'heure et la date dans les ordinateurs, les serveurs, les routeurs, les téléphones mobiles, etc. Elle est également utilisée pour générer des événements périodiques pour les tâches de planification et pour enregistrer la date et l'heure des événements dans les journaux système. Il est important de maintenir l'heure et la date de la RTC à jour, car de nombreux systèmes et applications dépendent de l'exactitude de cette horloge pour fonctionner correctement. Il est conseillé de configurer la RTC en UTC.\n\nLe fichier `/etc/adjtime` est utilisé pour configurer la synchronisation de l'horloge système avec la RTC (Real-time Clock) sur les systèmes basés sur Linux.\n\nLes lignes indiquent respectivement :\n\n**1 · ** 3 valeurs successives : a) La correction de décalage de l'horloge en secondes. b) Le signe de la correction de décalage de l'horloge. c)La vitesse de correction de décalage de l'horloge en secondes par jour.\n\n** 2 · ** Le statut de synchronisation. 0 (ou \"no\" ou \"false\") : l'horloge système n'est pas synchronisée avec la RTC. 1 (ou \"yes\" ou \"true\") : l'horloge système est synchronisée avec la RTC. 2 : l'horloge système est en train d'être synchronisée avec la RTC.\n\n** 3 · ** Le fuseau horaire utilisé pour l'horloge système, ici \"UTC\" qui signifie Temps Universel Coordonné, Il est utilisé comme référence pour l'heure légale dans la plupart des pays. Il est conseillé de configurer la RTC en UTC.\n\nExemple : \n\n```\n0.0 0 0.0\n0\nUTC\n```\n\n<u>**Consulter la RTC**</u>\n\nLa commande **hwclock** permet de configurer les paramètres liés à l'horloge matérielle (RTC). Utilisation pour consulter l'horloge RTC par exemple : \n\n```\n sudo hwclock\n2023-01-28 18:05:15.187034+01:00\n```\n\n<u>**Utilisation du fuseau UTC**</u>\n\nPour configurer l'horloge matérielle (RTC) pour utiliser le fuseau horaire **UTC** au lieu de **LOCAL**, vous pouvez utiliser la commande suivante en tant qu'utilisateur administrateur :\n\n```\nsudo hwclock --systohc --utc\n```\n\nCela configurera l'horloge matérielle pour utiliser UTC et synchronisera l'heure de l'horloge matérielle avec l'heure système actuelle, en utilisant UTC.\n\nCela ne va pas changer le fuseau horaire de l'heure système, pour cela vous devrez utiliser la commande `timedatectl` pour changer le fuseau horaire de votre système.\n## Régler NTP sous Raspberry Pi\n> https:*raspberrytips.com/time-sync-raspberry-pi/","featured":false,"tags":[]}