|
|
|
Synchronisation d'horloge avec NTP
|
|
|
par Stéphane Le Caër
22 février 2006
|
|
Introduction
NTP (Network Time Protocol) est un protocole qui permet de synchroniser l'horloge
des serveurs et postes de travail présent sur le réseau.
En France, un certains nombre de serveurs dits de strate 1 se synchronisent sur des signaux
radio ou sur des horloges atomiques. Un serveur de strate 2 se synchronise sur un serveur
de strate 1 et ainsi de suite.
Le postes de travail se synchronisent sur le serveur de temps se trouvant sur leur
sous-réseau.
Ce document a pour but de présenter la mise en oeuvre de ce protocole.
|
|
|
|
|
Plan
|
|
Installer un client NTP sous Debian
GNU/Linux
Cette procédure décrit comment installer et configurer le package
ntpdate. Ce package installe le client
ntpdate et les pages de manuel.
Ce client permet de synchroniser à la demande l'horloge avec un serveur NTP. Le
package Debian installe un script permettant de lancer la synchronisation lors de la phase
de boot : /etc/rcS.d/S51ntpdate
Sur un poste client, l'heure peut être maintenue en exécutant
régulièrement cette commande à l'aide du cron.
Le serveur NTP par défaut est en fait un pool de serveurs nommé pool.ntp.org.
Pour plus d'informations, le package ntp-doc
installe une documentation complète (en HTML) sur les paquets ntp et ntpdate dans le
répertoire /usr/share/doc/ntp-doc.
Package utilisé : ntpdate
Procédure :
|
Installer le client ntpdate.
# apt-get install
ntpdate
|
|
|
Synchroniser l'horloge.
# ntpdate
pool.ntp.org
23 Feb 01:34:10 ntpdate[3335]: step time server
192.83.249.31 offset 2.155783 sec
|
|
|
Plannifier la synchronisation.
Une première méthode pour maintenir la machine à
l'heure consiste s'appuyer sur le cron.
Ajouter par exemple un appel au client ntp toutes les 6 heures dans
/etc/crontab.
# m h dom mon dow
command
0 */6 * * * root /etc/init.d/ntpdate start > /dev/null
|
La méthode
recommandée, consiste à utiliser ntpd pour garder votre heure système
synchronisée.
|
|
Modifier
le serveur par défaut.
Le serveur par défaut est définie dans le fichier
/etc/default/ntpdate.
# servers to check.
(Separate multiple servers with spaces.)
NTPSERVERS="pool.ntp.org"
#
# additional options
for ntpdate
#NTPOPTIONS="-v"
NTPOPTIONS="-u"
|
|
|
Désactiver ou activer la synchronisation lors de la phase de
boot.
Il est intéressant de pouvoir désactiver la synchronisation
déclenchée lors de la phase de boot par le script
/etc/rcS.d/S51ntpdate.
Ceci est notamment utile pour les portables non connectés en
permanence sur le réseau. Ceci permet également
d'accélérer le démarrage.
# update-rc.d -f ntpdate
remove
Removing any system startup links for /etc/init.d/ntp
...
/etc/rcS.d/S51ntpdate
|
Ré-activer la synchronisation lors de la séquence de
démarrage :
# update-rc.d ntpdate
start 51 S .
Adding system startup for /etc/init.d/ntpdate
...
/etc/rcS.d/S51ntpdate ->
../init.d/ntpdate
|
|
|
|
|
Configurer NTP sous Windows 2000
Ce chapitre présente comment synchroniser l'horloge d'un poste de travail sous
Windows 2000 avec un serveur de temps.
Le serveur que j'ai retenu est ma Freebox : mafreebox.free.fr.
Dans un premier temps j'avais retenu ntp.free.fr qui s'avère être un site
perso de chez Free. Quasiment tous les serveurs Free offrent un accès NTP. Ces
serveurs se synchronisent sur ns0.proxad.net.
D'autres serveurs de temps sont disponibles : pool.ntp.org, ntp.via.ecp.fr,
ntp1.tuxfamily.net...(cf Liens).
Procédure :
|
Configurer le Service
Horloge pour démarrer en automatique.
Pour ce faire, ouvrir la console d'administration des Services :
Démarrer/Exécuter
Saisir la ligne de commande suivante :
%SystemRoot%\system32\services.msc /s
puis cliquer sur OK
Sélectionner le service Horloge, puis sélectionner
dans le menu : Action/Propriétés
Sélectionner le Type de
démarrage Automatique,
puis cliquer sur Démarrer.
Fermer la fenêtre du service, puis la console d'administration.
Le service de temps
est en fonction.
|
Plan
|
|
Définir le serveur sur lequel le PC va se
synchroniser.
Pour ce faire, ouvrir une Invite de commande :
Démarrer/Exécuter
Saisir la ligne de commande suivante : cmd puis cliquer sur
OK
Configurer le serveur de temps à l'aide de la commande net
time, puis redémarrer le service :
C:\> net time
/setsntp:mafreebox.free.fr
La commande s'est terminée correctement.
C:\> net stop
w32time
Le service Horloge Windows s'arrête.
Le service Horloge Windows a été
arrêté.
C:\> net start
w32time
Le service Horloge Windows démarre.
Le service Horloge Windows a démarré.
|
Remarque: Pour se synchroniser avec plusieurs
serveurs, saisir : net time /setsntp:"mafreebox.free.fr ntp.via.ecp.fr"
En regardant le journal d'évènement système, on peut
voir ceci :
Type de
l'événement :
Informations
Source de
l'événement : W32Time
Catégorie de
l'événement : Aucun
ID de
l'événement : 35
Date :
22/02/2006
Heure :
15:44:23
Utilisateur :
N/A
Ordinateur :
ZEUS
Description :
Le service de temps
synchronise maintenant l'heure système avec la
source de temps mafreebox.free.fr
(ntp.m|0x0|192.168.0.3:123->212.27.63.113:123).
|
Le service Horloge est
configuré
|
Plan
|
|
Modification dans la base de registres.
Clé :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
Period (REG_SZ)
Utilisé pour définir la fréquence de synchronisation
du service de temps.
* "DailySpecialSkew" = toutes les 45 minutes jusqu'à 1
succès, puis chaque jour
* "SpecialSkew" = toutes les 45 minutes jusqu'à 3 succès,
puis une fois toutes les 8 heures [par défaut]
* "Weekly" = une fois par jour (7 jours)
* "Tridaily" = tous les 3 jours
* "BiDaily" = tous les deux jours
|
Plan
|
|
Quelques commandes :
Vérifier sur quel(s) serveur(s) le service horloge se synchronique :
C:\> net time
/querysntp
La valeur SNTP actuelle est :
mafreebox.free.fr
La commande s'est terminée correctement.
|
Resynchroniser l'horloge en vidant toutes les statistiques d'erreur
accumulées.
C:\> w32tm
-s
RPC to local server returned 0x0
|
Afficher les paramètres de fuseau horaire actuels :
C:\> w32tm
-tz
Time zone: Paris, Madrid Paris, Madrid (heure
d'été)
|
|
|
|
|
Configurer NTP sous Windows XP
Sous Windows XP, la procédure à suivre pour configurer la
synchronisation de l'heure est simplifiée.
Procédure :
|
Configurer la
synchronisation de l'heure :
Pour ce faire, double-cliquer sur l'horloge dans la barre des
tâches.
Ou accéder au réglage de la date et de l'heure via le panneau
de configuration.
Dans l'onglet Temps Internet :
- activer le service en activant la case à cocher,
- saisir le nom du serveur,
- cliquer sur Mettre à jour Le service Horloge est
configuré
|
|
|
Quelques commandes
:
Vérifier sur quel(s) serveur(s) le service horloge se synchronique :
C:\> net time
/querysntp
La valeur SNTP actuelle est :
time.windows.com
La commande s'est terminée correctement.
|
Resynchroniser l'horloge en vidant toutes les statistiques d'erreur
accumulées.
C:\> w32tm
/resync
Envoyer la commande de resynchronisation à local
computer...
La commande s'est terminée correctement.
|
Afficher les paramètres de fuseau horaire actuels :
C:\> w32tm
/tz
zone d'horaire : actuel :TIME_ZONE_ID_STANDARD
décalage: -60min (UTC=Heure locale +
décalage)
[Standard name:"Paris, Madrid" Bias:0min Date:(Mois:10
Jour:5 JourSemaine:0)]
[Daylight Name:"Paris, Madrid" Bias:-60min Date:(Mois:3
Jour:5 JourSemaine:0)]
|
|
|
|
Plan
|
Installer un serveur NTP sous Debian
GNU/Linux
Lorsque l'on dispose d'un serveur Linux et que le parc machine est important, il peut
être judicieux de synchroniser toutes les machines avec ce serveur.
Le serveur doit posséder un démon ntpd.
Je vais décrire ici le mode opératoire pour installer ce service sur une
distribution Debian GNU/Linux dans sa version Sarge.
Par défaut le package utilisé se synchronise sur le pool fr.pool.ntp.org.
Packages utilisés : ntp-simple, ntp-doc
Procédure :
|
Installer le serveur
# apt-get install
ntp-simple ntp-doc
|
|
|
Configurer le serveur
La configuration se résume au fichier/etc/ntp.conf dont voici les informations
essentielles :
# /etc/ntp.conf,
configuration for ntpd
# ntpd will use
syslog() if logfile is not defined
logfile /var/log/ntpd
# pool.ntp.org maps
to more than 100 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> ***
server fr.pool.ntp.org
|
logfile : chemin du fichier de
log
server : serveur ntp de strate
supérieur (plusieurs directives server peuvent être
insérées)
|
|
Arrêter le serveur
# /etc/init.d/ntp-server
stop
Stopping NTP server: ntpd.
|
Remarque: avec Red Hat la
commande s'appel ntpd.
|
|
Démarrer le serveur
# /etc/init.d/ntp-server
stop
Stopping NTP server: ntpd.
# /etc/init.d/ntp-server
start
Starting NTP server: ntpd.
|
|
|
Forcer la synchronisation
Ceci doit être fait serveur arrêté.
# ntpdate
fr.pool.ntp.org
2 Mar 03:11:06 ntpdate[3508]: the NTP socket is in
use, exiting
|
|
|
Quelques vérifications
# ntptrace
localhost.localdomain: stratum 16, offset 0.000000, synch
distance 0.002400
# ntpq -c lpeers
localhost
remote
refid st t when poll
reach delay offset jitter
==============================================================================
*ns1.pulsation.f 212.37.192.31 3
u 16 64 377
53.650 46.349 8.809
LOCAL(0)
LOCAL(0) 13
l 18 64 377
0.000 0.000 0.004
# ntpq -c readvar
localhost
assID=0 status=0664 leap_none, sync_ntp, 6 events,
event_peer/strat_chg,
version="ntpd 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 26
10:30:12 UTC 2005 (1)"?,
processor="i686", system="Linux/2.6.14", leap=00,
stratum=3,
precision=-18, rootdelay=60.484, rootdispersion=37.438,
peer=2636,
refid=80.242.32.5,
reftime=c7b0d157.cc1c6088 Thu, Mar 2 2006
3:05:11.797, poll=6,
clock=0xc7b0d186.f3587d6f, state=4, offset=3.834,
frequency=17.937,
noise=1.866, jitter=5.075, stability=57.824
|
|
|
Plan
|
Liens
|
Historique
Version
|
Date
|
Commentaire
|
1.0
|
22/02/2006
|
Version initiale
|
1.1
|
02/03/2006
|
Configurer un serveur NTP sous Debian.
|
1.2
|
13/04/2006
|
Client Linux : utiliser ntpd pour garder votre heure système
synchronisée.
|
1.3
|
06/11/2006
|
Correction sur methode pour forcer la mise à jour d'un serveur.
|
|
|
|
|