Outils pour utilisateurs

Outils du site


Ceci est une ancienne révision du document !


Mise en place

Nous allons utiliser le paquetage ntp, mais avant, il est bon de savoir où trouver des serveurs de temps qui nous serviront de référence.

Debian propose de tels serveurs :

$ host 0.debian.pool.ntp.org
0.debian.pool.ntp.org	A	87.106.98.153
0.debian.pool.ntp.org	A	213.186.41.134
0.debian.pool.ntp.org	A	81.93.183.116

$ host 1.debian.pool.ntp.org
1.debian.pool.ntp.org	A	91.121.48.21
1.debian.pool.ntp.org	A	195.5.228.18
1.debian.pool.ntp.org	A	88.191.11.98

$ host 2.debian.pool.ntp.org
2.debian.pool.ntp.org	A	91.121.149.114
2.debian.pool.ntp.org	A	91.121.201.31
2.debian.pool.ntp.org	A	91.194.60.128

$ host 3.debian.pool.ntp.org
3.debian.pool.ntp.org	A	212.85.158.10
3.debian.pool.ntp.org	A	88.191.12.184
3.debian.pool.ntp.org	A	194.57.169.1

Ubuntu en propose un également :

$ host ntp.ubuntu.com
ntp.ubuntu.com      	A	91.189.94.4

Il faut s'intéresser au FQDN plutôt qu'aux adresses IP qui sont susceptibles de changer dans le temps.

Il en existe beaucoup d'autres, mais il est certainement intéressant de visiter le NTP POOL PROJECT. Nous y apprendrons que pour la France, nous pouvons disposer de :

$ host 0.fr.pool.ntp.org
0.fr.pool.ntp.org   	A	91.121.104.170
0.fr.pool.ntp.org   	A	193.55.167.1
0.fr.pool.ntp.org   	A	193.55.167.2

$ host 1.fr.pool.ntp.org
1.fr.pool.ntp.org   	A	88.191.223.200
1.fr.pool.ntp.org   	A	94.23.220.143
1.fr.pool.ntp.org   	A	87.98.188.218

$ host 2.fr.pool.ntp.org
2.fr.pool.ntp.org   	A	91.121.45.45
2.fr.pool.ntp.org   	A	91.121.154.174
2.fr.pool.ntp.org   	A	94.23.33.75

$ host 3.fr.pool.ntp.org
3.fr.pool.ntp.org   	A	188.165.36.97
3.fr.pool.ntp.org   	A	81.93.183.116
3.fr.pool.ntp.org   	A	95.130.9.63

Il en existe d'autres en France, que l'on peut retrouver sur le Comité Réseau des Universités. Ils ne sont généralement pas destinés au « end-user ».

Installation

Sachant tout ceci, lançons nous.

aptitude install ntp

Le service ntpd s'installe et démarre.

Configuration

Debian propose une configuration par défaut qui pourra suffire, mais voyons un peu. Tout se trouve dans /etc/default/ntp et surtout dans /etc/ntp.conf. Commençons par ntp.conf :

# cat /etc/ntp.conf 
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable


# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: 
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic


# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page 
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

Pour l'instant, contentons nous de constater que notre service peut se synchroniser sur l'un des quatre serveurs NTP fournis par Debian. S'il y en a pour 4 il va y en avoir pour 8, nous allons ajouter les serveurs du pool français, ce qui donnera au final :

...
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
server 0.fr.pool.ntp.org iburst dynamic
server 1.fr.pool.ntp.org iburst dynamic
server 2.fr.pool.ntp.org iburst dynamic
server 3.fr.pool.ntp.org iburst dynamic
...

Pourquoi en mettre autant ? NTP va de toutes façons sélectionner le serveur avec lequel il s'entend le mieux et au bout d'un « certain temps » ne discutera plus qu'avec lui, en s'en gardant éventuellement d'autres sous le coude au cas où.

Observation avec « ntpq »

Il est temps de s'intéresser à l'outil ntpq fournit dans le lot, qui permet de contrôler le fonctionnement de notre serveur.

Commençons par lui demander de recharger sa configuration :

# /etc/init.d/ntp restart

Et voyons ce que nous dirait la commande :

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-213.186.39.202  88.191.101.3     3 u   43   64    3   17.127   10.092   1.230
-88.191.208.84   145.238.203.10   3 u   40   64    3   18.941  -45.045   1.139
+88.191.101.34   192.93.2.20      2 u   40   64    3   19.318   11.263   0.996
-213.186.41.134  207.3.130.6      2 u   40   64    3   17.213   15.455   1.118
-91.121.121.160  131.188.3.220    2 u   39   64    3   21.275    6.880   3.824
*91.121.104.170  193.190.230.65   2 u   38   64    3   21.073   12.006   4.265
+94.23.220.143   195.220.94.163   2 u   36   64    3   20.804   12.691   1.020
-87.98.139.226   62.8.242.2       3 u   35   64    3   20.792   -3.948   3.181
Comme prévu, il y a 8 serveurs dans la liste.

  • remote indique ici l'adresse du serveur interrogé. le petit signe qu'il y a à gauche de l'adresse veut bien entendu dire quelque chose, pour l'instant, retenons que le * indique le serveur qui semble le plus fiable ;
  • refid indique la source à laquelle se synchronise le serveur remote ;
  • st indique la strate des serveurs remote. La préférence va d'abord aux strates les plus levées, soit la strate 2. Ceci implique que notre serveur sera au mieux de strate 3.

Les autres informations n'ont pour l'instant pas grande valeur, car notre serveur n'est pas encore bien stabilisé. La preuve, le temps de rédiger ces quelques lignes, la situation a déjà évolué :

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-213.186.39.202  88.191.101.3     3 u   36   64  357   17.217    1.182   3.122
-88.191.208.84   145.238.203.10   3 u   35   64  377   17.565  -51.037   0.975
*88.191.101.34   192.93.2.20      2 u   29   64  377   17.867    3.183   2.149
-213.186.41.134  207.3.130.6      2 u   28   64  377   16.988    9.902   2.725
+91.121.121.160  131.188.3.220    2 u   34   64  377   20.976    2.370   1.816
+91.121.104.170  193.190.230.65   2 u   28   64  377   20.959    6.212   2.228
+94.23.220.143   195.220.94.163   2 u   29   64  377   20.518    4.290   2.148
-87.98.139.226   62.8.242.2       3 u   32   64  377   20.754   -9.506   1.717

Et le temps de se préparer et de boire un thé :

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-213.186.39.202  88.191.101.3     3 u   32   64  377   17.318    1.310   1.510
-88.191.208.84   145.238.203.10   3 u   28   64  377   17.237  -48.239   0.733
-88.191.101.34   192.93.2.20      2 u   13   64  377   17.702    2.224   1.260
+213.186.41.134  207.3.130.6      2 u   13   64  377   17.504    4.112   2.381
-91.121.121.160  131.188.3.220    2 u   22   64  377   21.311    0.590   1.485
*91.121.104.170  193.190.230.65   2 u   12   64  377   21.145    5.391   2.067
+94.23.220.143   195.220.94.163   2 u   16   64  377   21.000    3.879   1.862
-87.98.139.226   62.8.242.2       3 u   15   64  377   20.980   -9.606   0.910

Nous savons ce que * indique. Le + indique que le serveur est encore dans la course, mais non sélectionné pour la synchronisation, l' - indique que le serveur est pour l'instant hors course, mais pas définitivement écarté. Nous constatons que tous les serveurs de strate 3 sont hors-course. Algorithme de sélection du serveur de référence est très fin. Il tient compte de plusieurs paramètres :

  • la strate du serveur de référence ;
  • son accessibilité ;
  • son temps de réponse ;
  • la variation de son temps de réponse au cours du temps ;
Mise en place d'un serveur de référence: Dernière modification le: 30/03/2010 à 17:24 par prof