Network Time Protocol |
||
|
Dans un premier temps je ne présente que la configuration d'un
serveur NTP linux qui utilise son horloge système comme horloge
de référence sans synchronisation avec une horloge externe,
je présente aussi la configuration d'un client linux du réseau
privé sur ce serveur NTP pour lancer une synchronisation toutes
les heures.
Dans un second temps je configurerai le serveur NTP pour qu'il se synchronise
à chaque connexion à un serveur extérieur sur le net.
Dans un dernier temps je présenterai des clients NTP du réseau
privé sous Windows 9.X.
Je compte aussi détailler le fichier de config de NTP ainsi
que les commandes qui vont avec.
On supposera que votre serveur se nomme obelix avec pour adresse IP 192.168.13.11 et que votre domaine privé est armoric.bz.
gunzip ntp-4_0_99b_tar.tar.gz
puis à l'endroit où vous voulez récupérer le répertoire des sources de NTP:
tar xvf ntp-4_0_99b_tar.tar
Ca va vous créer un répertoire ntp-4.0.99b, dans lequel vous pourrez taper successivement
./configure
make
make install
NOTE: Les exécutables sont installés par défaut dans /usr/local/bin, si vous voulez les installer ailleurs dans /usr/sbin par exemple vous devrez taper:
./configure --prefix=/usr
Accessoirement pour plus d'infos sur les options de configure, tapez auparavant:
./configure --help
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Ceci indiquera à votre serveur qu'il doit se synchroniser sur l'horloge locale.
ATTENTION: Vous devez mettre strictement les mêmes adresses IP
ntp
123/tcp
ntp
123/udp
# Network Time Protocol
On les trouve par défaut sur une Red Hat, je pense pas que la ligne ntp en mode tcp soit nécessaire.
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc0.d/K01ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc1.d/K01ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc2.d/K01ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc3.d/S94ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc4.d/S94ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc5.d/S94ntpd
ln -s /etc/rc.d/init.d/ntpd /etc/rc.d/rc2.d/K01ntpd
ATTENTION: Par défaut dans le fichier ntpd on suppose que les exécutables sont dans /usr/local/bin à modifier éventuellement suivant votre config.
/etc/rc.d/init.d/ntpd start
ou
/usr/local/bin/ntpd -l /var/log/ntp.log
Pour info l'option "-l" permet de créer un fichier de log /var/log/ntp.log
ntpq -p
Vous devrez voir:
remote
refid
st t when poll reach delay offset
jitter
==============================================================================
*LOCAL(0) LOCAL(0)
10 l 54 64
377 0.000 0.000 0.000
server obelix
ntptrace obelix
Vous devrez avoir comme sortie:
obelix.armoric.bz: stratum 11, offset 1.074315, synch distance 0.01132
On a outre le nom du serveur, son niveau (stratum), la différence en seconde entre l'horloge du client et celle du serveur et une estimation de l'erreur "aléatoire" (en seconde).
ntpdate -dv obelix
Les options d et v permettent d'obtenir un max d'info. Voici ce que vous pouvez obtenir
26 Jan 18:11:16 ntpdate[768]: ntpdate 4.0.99b lun jan 24 18:44:56
CET 2000 (1)
transmit(192.168.13.11)
receive(192.168.13.11)
transmit(192.168.13.11)
receive(192.168.13.11)
transmit(192.168.13.11)
receive(192.168.13.11)
transmit(192.168.13.11)
receive(192.168.13.11)
transmit(192.168.13.11)
server 192.168.13.11, port 123
stratum 11, precision -18, leap 00, trust 000
refid [127.127.1.0], delay 0.02632, dispersion 0.00000
transmitted 4, in filter 4
reference time: bc39a8d6.9458dde7 Wed, Jan
26 2000 18:09:42.579
originate timestamp: bc39a903.2363e4ab Wed, Jan 26 2000 18:10:27.138
transmit timestamp: bc39a935.06ca57a7 Wed, Jan 26 2000
18:11:17.026
filter delay: 0.02647 0.02634 0.02632 0.02632
0.00000 0.00000
0.00000 0.00000
filter offset: -49.8887 -49.8887 -49.8887 -49.8887
0.000000 0.000000
0.000000 0.000000
delay 0.02632, dispersion 0.00000
offset -49.888749
26 Jan 18:11:17 ntpdate[768]: step time server 192.168.13.11 offset -49.888749 sec
On peut observer que votre horloge est à 18h10'27.138'' celle du serveur à 18h11'17.206'' soit un retard de 49.888749 secondes par rapport à ce dernier.
NOTE Visiblement avec les options d et v l'heure n'est pas synchronisée, pour avoir une synchronisation effective, il faut taper simplement:
ntpdate obelix
0 * * * * /usr/local/bin/ntpdate obelix
NOTE Je compte rajouter prochainement une page cron
/usr/local/bin/ntpdate obelix
ntptrace -vd obelix
Les options v et d permettent d'obtenir un max d'infos. Voici une idée du résultat:
DoTransmit(192.168.13.11)
DoTransmit to 192.168.13.11
ReceiveBuf(192.168.13.11, 192.168.13.11)
server 192.168.13.11, port 123
stratum 11, precision -18, leap 00
refid 127.127.1.0 delay 0.00087, dispersion 0.00000 offset -49.745512
rootdelay 0.00000, rootdispersion 0.01178, synch dist 0.01178
reference time: bc39ab1c.94588a04
Wed, Jan 26 2000 18:19:24.579
originate timestamp: bc39ab56.22921ccd Wed, Jan 26 2000 18:20:22.135
transmit timestamp: bc39ab87.e14306e5 Wed, Jan 26 2000
18:21:11.879
Vous voyez ici un offset de 49.745512 secondes.