Ceci est une ancienne révision du document !
Table des matières
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 :
<html><pre class=“code”>
# 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: <http://www.pool.ntp.org/join.html>
<span class=“hly”>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</span>
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# 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
</pre></html>
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 :
<code>
…
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
…
</code>
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 :
<html><pre class=“code”>
# 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
</pre></html>
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