Tutoriel de configuration du daemon ntpd (ici sur Mandriva 2007.1 pour le serveur)
L'architecture est la suivante :
Un serveur "serveur_ntp" ayant accès à Internet se synchronise sur des serveurs de temps publics et des stations clientes ("machinelinux" tournant sous Linux, "machinewindows" sous Windows XP) sur un réseau local ayant accès à ce serveur se synchronisent sur lui.
Sur le serveur on configure le daemon ntpd ainsi que sur le client linux "machinelinux". Sur la machine windows "machinewindows", la configuration est un peu différente mais très simple.
Le protocole NTP utilise le port UDP 123.
Le serveur doit donc avoir accès au port UDP 123 des serveurs de temps Internet (qu'on appelle peers dans la configuration de ntpd) et les clients doivent avoir accès au port UDP 123 de "serveur_ntp".
Il existe des serveurs de temps sur Internet, les serveurs de strate 1 sont ceux qui sont directement synchronisés sur un dispositif matériel leur donnant l'heure. Les serveurs de strate 2 sont ceux qui sont synchronisé sur ceux de strate 1, ceux de strate 3 sur ceux de strate 2, etc.
Sur une machine Linux, on dispose du daemon ntpd pour cela, il peut servir de serveur et/ou de client. ntpd lit la configuration dans /etc/ntp.conf où il trouve notamment les noms des serveurs de temps à contacter. Il les contacte tous, d'abord fréquemment et puis moins (quand il a eu assez d'infos) pour leur demander l'heure. Il estime également la distance (temps) entre lui et eux, la dispersion des réponses et d'autres paramètres qui lui permettent de choisir le meilleur serveur. Bien entendu, si un serveur devient meilleur que celui retenu en cours, il en change...
##############################################################
#
# Fichier /etc/ntp.conf de serveur_ntp
#
# Les commentaires commencent par #
#
##############################################################
# On déclare l'Horloge locale non synchronisée (stratum de 10)
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# Serveurs de temps (peers) sur lesquels se synchroniser (exemples)
# > En choisir plusieurs pour palier les pannes
# > Listes de serveurs NTP dans le § "Références"
server ntp.univ-lyon1.fr
server ntp.imag.fr
server ntp.uvsq.fr
server ntp.laas.fr
server ntp.unilim.fr
server ntp.univ-tln.fr
server ntp0.oleane.net
server ntp.internet-fr.net
server ntp.obspm.fr
server ntp.via.ecp.fr
server ntp.kamino.fr
server ntp.tuxfamily.net
# Fichier drift
driftfile /etc/ntp/drift
# On autorise les machines du réseau local à se synchroniser
# > Ici le réseau exemple 192.168.1.0/24 de classe C
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
##############################################################
#
# Fichier /etc/ntp.conf de machinelinux
#
# Les commentaires commencent par #
#
##############################################################
# On déclare l'Horloge locale non synchronisée (stratum de 10)
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# Le serveur de temps est "serveur_ntp"
server serveur_ntp
# Fichier drift
driftfile /etc/ntp/drift
Dans le panneau de configuration, cliquer sur "Date et heure" : une fenêtre nommée "Propriétés de Date et heure" s'ouvre.
Cliquer sur l'onglet "Temps Internet".
Cocher "Synchroniser automatiquement avec un serveur de temps Internet".
Saisir le nom du serveur (ici "serveur_ntp") dans la zone de texte "Serveur:".
Fermer la fenêtre par le bouton "OK".
On démarre le daemon ntpd sous root par la commande /etc/init.d/ntpd start
On arrête le daemon ntpd sous root par la commande /etc/init.d/ntpd stop
On configure les répertoires de démarrage rcX.d pour démarrer automatiquement ntpd au démarrage du serveur.
La commande ntptrace permet de connaitre l'état de synchronisation de ntp.
Juste après le lancement de ntpd :
localhost: stratum 16, offset 0.000073, root distance 0.00000
0.0.0.0: *Not Synchronized*
Un peu plus tard (on est passé en strate 3 et on n'a pas le droit de joindre le peer de strate 1) :
localhost: stratum 3, offset 0.000073, synch distance 0.086313
imag.imag.fr: stratum 2, offset 0.000976, root distance 0.020400
192.93.2.20: time out, nothing received
***Request timed out
On peut connaître l'état des contacts avec les peers par la commande ntpq -p
Elle donne un tableau avec 10 champs (une ligne par peer + l'horloge local LOCAL(0)) :
Le serveur se considère synchronisé si la colonne reach atteint 177. Une connexion de qualité et stable voit la colonne reach à 377.
Le serveur précédé d'une astérisque (*) est celui qui est utilisé, ceux précédés d'un - sont actuellement éliminés par l'algorithme de choix des serveurs. Ceux dont le nom est précédé d'un + sont des candidats possibles à la synchronisation. Un serveur qui est précédé d'un espace est un serveur qui est soit inaccessible, soit trop éloigné.
Juste après le lancement de ntpd :
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l - 64 0 0.000 0.000 4000.00
dns.univ-lyon1. .INIT. 16 u - 64 0 0.000 0.000 4000.00
imag.imag.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
soleil.uvsq.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp1.laas.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp.unilim.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
mail.univ-tln.f .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp0.oleane.net .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp.internet-fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
lptfpc46.obspm. .INIT. 16 u - 64 0 0.000 0.000 4000.00
krishna.via.ecp .INIT. 16 u - 64 0 0.000 0.000 4000.00
kam02.kamino.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
edony.tuxfamily .INIT. 16 u - 64 0 0.000 0.000 4000.00
Le serveur à commencé à contacter les peers :
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 4 64 1 0.000 0.000 0.002
dns.univ-lyon1. 192.93.2.20 2 u 3 64 1 63.866 2.074 0.002
imag.imag.fr 192.93.2.20 2 u 2 64 1 66.058 1.973 0.002
soleil.uvsq.fr 134.157.254.19 2 u 1 64 1 56.434 3.353 0.002
ntp1.laas.fr 134.157.254.19 2 u - 64 1 66.554 2.551 0.002
ntp.unilim.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
mail.univ-tln.f .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp0.oleane.net .INIT. 16 u - 64 0 0.000 0.000 4000.00
ntp.internet-fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
lptfpc46.obspm. .INIT. 16 u - 64 0 0.000 0.000 4000.00
krishna.via.ecp .INIT. 16 u - 64 0 0.000 0.000 4000.00
kam02.kamino.fr .INIT. 16 u - 64 0 0.000 0.000 4000.00
edony.tuxfamily .INIT. 16 u - 64 0 0.000 0.000 4000.00
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 16 64 1 0.000 0.000 0.002
dns.univ-lyon1. 192.93.2.20 2 u 15 64 1 63.866 2.074 0.002
imag.imag.fr 192.93.2.20 2 u 14 64 1 66.058 1.973 0.002
soleil.uvsq.fr 134.157.254.19 2 u 13 64 1 56.434 3.353 0.002
ntp1.laas.fr 134.157.254.19 2 u 12 64 1 66.554 2.551 0.002
ntp.unilim.fr CHU_AUDIO(1) 2 u 11 64 1 69.328 5.920 0.002
mail.univ-tln.f 0.0.0.0 16 u 10 64 0 0.000 0.000 4000.00
ntp0.oleane.net 213.56.0.14 2 u 9 64 1 55.262 -1.627 0.002
ntp.internet-fr 193.49.205.18 2 u 8 64 1 55.983 0.125 0.002
lptfpc46.obspm. 195.220.94.163 2 u 7 64 1 58.171 -0.067 0.002
krishna.via.ecp 157.99.64.66 2 u 6 64 1 56.398 -0.341 0.002
kam02.kamino.fr 193.52.184.106 2 u 5 64 1 179.645 -8.247 0.002
edony.tuxfamily 194.2.0.58 3 u 4 64 1 67.249 -1.302 0.002
Ca y est, on est synchronisé sur ntp0.oleane.net :
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 19 64 377 0.000 0.000 0.002
dns.univ-lyon1. 192.93.2.20 2 u 212 256 17 63.307 0.733 1.678
imag.imag.fr 192.93.2.20 2 u 212 256 17 66.058 1.973 3.557
soleil.uvsq.fr 134.157.254.19 2 u 210 256 17 56.138 2.152 0.951
ntp1.laas.fr 134.157.254.19 2 u 211 256 17 66.554 2.551 1.522
+ntp.unilim.fr CHU_AUDIO(1) 2 u 208 256 17 69.328 5.920 1.672
mail.univ-tln.f 134.157.254.19 2 u 12 512 35 69.332 -3.049 2.767
*ntp0.oleane.net 213.56.0.14 2 u 210 256 17 55.262 -1.627 1.413
ntp.internet-fr 193.49.205.18 2 u 203 256 17 54.947 -0.720 1.012
lptfpc46.obspm. 195.220.94.163 2 u 208 256 17 58.020 -3.437 2.589
krishna.via.ecp 157.99.64.66 2 u 201 256 17 56.398 -0.341 1.693
kam02.kamino.fr 193.52.184.106 2 u 203 256 17 179.006 -11.434 2.556
edony.tuxfamily 194.2.0.58 3 u 200 256 17 66.565 -4.371 2.371
Sur mag.imag.fr maintenant :
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 29 64 377 0.000 0.000 0.002
-dns.univ-lyon1. 192.93.2.20 2 u 466 1024 37 62.556 9.619 4.782
*imag.imag.fr 192.93.2.20 2 u 614 1024 37 66.560 10.319 0.205
+soleil.uvsq.fr 195.220.94.163 2 u 465 1024 37 56.372 10.109 4.368
-ntp1.laas.fr 134.157.254.19 2 u 645 1024 37 66.997 15.852 1.064
-ntp.unilim.fr CHU_AUDIO(1) 2 u 114 128 377 68.892 13.928 6.189
mail.univ-tln.f 134.157.254.19 2 u 859 1024 3 68.638 11.822 0.632
-ntp0.oleane.net 213.56.0.14 2 u 567 1024 37 55.666 8.522 0.824
-ntp.internet-fr 193.49.205.18 2 u 632 1024 37 75.545 2.332 9.592
+lptfpc46.obspm. 195.220.94.163 2 u 588 1024 37 59.682 11.357 0.973
+krishna.via.ecp 157.99.64.66 2 u 708 1024 37 57.538 11.207 17.109
-kam02.kamino.fr 193.52.184.106 2 u 663 1024 37 178.856 2.117 1.133
-edony.tuxfamily 194.2.0.58 3 u 463 1024 37 67.221 6.268 4.643
Au bout d'un certain temps, la commande ntpq -p devrait donner le resultat semblable au suivant, avec une étoile devant la ligne "serveur_ntp" :
On est synchronisé sur le serveur :
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 16 64 377 0.000 0.000 0.004
*serveur_ntp LOCAL(0) 11 u 111 256 377 0.550 -0.242 0.357
La page de NTP
Liste des serveurs français
Une autre liste de serveurs