www.dansmongrenier.com
Lundi 20 Novembre 2017

Configuration de NTP

Configuration de NTP

Tutoriel de configuration du daemon ntpd (ici sur Mandriva 2007.1 pour le serveur)

Présentation

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.

Principes

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...

Configuration du serveur de temps

Exemple de fichier de configuration /etc/ntp.conf commenté


##############################################################
#
# 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

Configuration des clients

Station Linux

Fichier /etc/ntp.conf commenté de "machinelinux"

##############################################################
#
# 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

Station Windows XP

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".

Démarrage de ntpd sur le serveur et la station Linux

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.

Vérifications et tests

Sur le 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)) :

  • remote : nom du serveur
  • refid : identifiant du serveur père
  • st : strate du serveur
  • t : état du serveur
  • when : temps écoulé en secondes depuis le dernier contact
  • poll : durée en secondes entre chaque contact
  • reach : masque des contacts réussis (en octal)
  • delay : le temps (estimé) en milisecondes que met le paquet UDP à nous parvenir
  • offset : la différence (estimée) entre l'heure de notre horloge interne et celle du peer
  • jitter : la dispersion des valeurs de référence obtenues de ce peer

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

Sur "machinelinux"

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

Références

La page de NTP
Liste des serveurs français
Une autre liste de serveurs

Pensée du jour  |  Livre d'Or  |  Horoscope  |  Notes sur ces pages  |  Plan du site ecoleLa RéserveLe site de Nathan