Home | Linux | Réseaux | Developpement | Divers | FAQ | Forum | Guestbook | Musique |

 

NTP - Network Time Protocol

1 - Introduction

Tout élément informatique et électronique dispose d'une horloge interne, mais a tendance à se dérégler de plusieurs secondes au fil du temps. Vous pouvez faire l'experience avec votre montre et la régler avec l'horloge parlante (3699) et comparer deux semaines plus tard et vous constaterez que les valeurs ont changées. Concernant les systèmes d'information, d'une entreprise on ne peut pas se permettre d'avoir un décalage dans le temps surtout lorsque les utilisateurs travaillent avec des outils de versioning tel que CVS (Concurrent Versions System) ou Visual Source Safe. C'est pourquoi l'installation d'un serveur de temps s'impose. Nous allons utiliser ntpd qui est le programme que l'on retrouve sur toutes les distributions Linux. Personnellement je préfere linstaller à partir des sources car il manque quelques fois les commandes de base telles que celles qui seront utilisées .

2 - Installation

Tout d'abord, vous devez vous procurer les sources à l'adresse suivante : http://www.ntp.org. La version utilisée dans cet exemple est la 4.1.1 ; il n'y a rien de particulier à utiliser une autre version.


$ tar zxvf ntp-4.1.1.tar.gz
$ cd ntp-4.1.1
$ ./configure
$ make
$ make install

Vous devez ensuite créer le fichier /etc/ntp.conf pour indiquer sur quels serveurs se synchroniser. Vous trouverez, à cette adresse, la liste des serveurs de temps francais http://www.cru.fr/NTP/serveurs_francais.html.

La syntaxe, pour définir quels serveurs de temps utiliser est la suivante - /etc/ntp.conf:

server canon.inria.fr
server ntp.univ-lyon1.fr

Il est de nature courtoise d'informer l'établissement que l'on utilise ses services de temps.

Le fichier /etc/services doit contenir les lignes suivantes :

ntp	123/tcp
ntp	123/udp

Pour démarrer le serveur :

$ /usr/local/bin/ntpd -l /var/log/ntp.log

Pour un démarrage automatique du serveur, créer un fichier /etc/init.d/ntp.sh tel que :

#!/bin/sh

/etc/init.d/ntp start
/usr/local/bin/ntpdate canon.inria.fr
echo Ntp daemon started et clock set

Puis après vous devez faire un lien :

$ ln -s /etc/init.d/ntp.sh /etc/rc2.d/S90ntp

3 - Test et mise en application

Pour tester le fonctionnement de la synchro vous pouvez faire comme ceci :

$ ntpq -p
 remote          refid            st t  when poll  reach  delay  offset  jitter
==============================================================================
 ns1.tuxfamily.o horlogegps.rese  2 u   11   64    3      55.445 -64.251 0.475
 canon.inria.fr  .GPS.            1 u   25   64    3      70.942 -62.431 3.264

Pour synchroniser l'horloge vous devez taper la commande suivante :

$ ntpdate -dv ntp.tuxfamily.net
31 Mar 17:29:53 ntpdate[1463]: ntpdate 4.1.1@1.786 Wed Mar 31 12:54:43 CEST 2004 (1)
transmit(80.67.179.45)
receive(80.67.179.45)
transmit(80.67.179.45)
receive(80.67.179.45)
transmit(80.67.179.45)
receive(80.67.179.45)
transmit(80.67.179.45)
receive(80.67.179.45)
transmit(80.67.179.45)
server 80.67.179.45, port 123
stratum 2, precision -18, leap 00, trust 000
refid [192.93.2.20], delay 0.08345, dispersion 0.00137
transmitted 4, in filter 4
reference time:    c051a2d6.2feac42e  Sun, Mar 31 2002 16:59:34.187
originate timestamp: c051a9f2.55f676ea  Sun, Mar 31 2002 17:29:54.335
transmit timestamp:  c051a9f2.459e6256  Sun, Mar 31 2002 17:29:54.271
filter delay:  0.08583  0.08430  0.08542  0.08345
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.037171 0.036212 0.036764 0.034916
         0.000000 0.000000 0.000000 0.000000
delay 0.08345, dispersion 0.00137
offset 0.034916

31 Mar 17:29:54 ntpdate[1463]: adjust time server 80.67.179.45 offset 0.034916 sec

Pour synchroniser tous les jours à 10h00, vous devez entrer cette ligne dans votre contab :

0 10 * * * /usr/local/ntpdate ntp.tuxfamily.net

Pour connaitre son retard par rapport à l'hôte principal :

$ ntptrace -d canon.inria.fr
Site hébergé officiellement chez Linux France - © 1999 2005