NTP : Création d'un serveur NTP

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Le serveur NTP est un serveur de temps. Il permet donner l'heure par rapport à l'horloge atomique.

2 Installation

2.1 Debian

Super rapide :

Command apt-get
apt-get install ntp

2.2 Solaris

Sur Solaris, c'est normalement installé de base sinon faites une recherche sur les packages *ntpd.
Il va parcontre falloir copier le fichier serveur :

Command cp
cp /etc/inet/ntp.server /etc/inet/ntp.conf

3 Configuration

Voici quelques informations avant de rentrer dans les fichiers de configuration :

  • stratum : indique que c'est une donnée pas très sûr
  • 127.127.1.0 : heure donnée par la machine (bios)
  • peer : définit un serveur de même strate que serveur (même niveau/même endroit gégraphique), ce qui permet d'être plus fiable. Donc utiliser 1e server + des peer, c'est avoir une configuration plus fine que d'avoir uniquement des serveurs geographiquement distant.

3.1 Debian

Voici le fichier de configuration "/etc/ntp.conf" pour un serveur de temps :

Configuration File /etc/inet/ntp.conf
# /etc/ntp.conf, configuration for ntpd

# ntpd will use syslog() if logfile is not defined
logfile /var/log/ntpd

driftfile /var/lib/ntp/ntp.drift
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
# Servers to use to update
server 0.fr.pool.ntp.org prefer
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org

# ... and use the local system clock as a reference if all else fails
server 127.127.1.0
# fudge 127.127.1.0 stratum 13

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

# Allow local network to synchronize to this server
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

broadcastdelay 0.008

Une fois la configuration effectuée et le service redémarrer il faut attendre quelques minutes pour que le serveur ai pu se synchroniser.

3.2 Solaris

Voici le fichier de configuration /etc/inet/ntp.conf sur Solaris :

Configuration File /etc/inet/ntp.conf
#
# Copyright 1996-2003 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# /etc/inet/ntp.server
#
# An example file that could be copied over to /etc/inet/ntp.conf and
# edited; it provides a configuration template for a server that
# listens to an external hardware clock, synchronizes the local clock,
# and announces itself on the NTP multicast net.
#

# This is the external clock device.  The following devices are
# recognized by xntpd 3-5.93e:
#
# XType Device    RefID          Description
# -------------------------------------------------------
#  1    local     LCL            Undisciplined Local Clock
#  2    trak      GPS            TRAK 8820 GPS Receiver
#  3    pst       WWV            PSTI/Traconex WWV/WWVH Receiver
#  4    wwvb      WWVB           Spectracom WWVB Receiver
#  5    true      TRUE           TrueTime GPS/GOES Receivers
#  6    irig      IRIG           IRIG Audio Decoder
#  7    chu       CHU            Scratchbuilt CHU Receiver
#  8    parse     ----           Generic Reference Clock Driver
#  9    mx4200    GPS            Magnavox MX4200 GPS Receiver
# 10    as2201    GPS            Austron 2201A GPS Receiver
# 11    arbiter   GPS            Arbiter 1088A/B GPS Receiver
# 12    tpro      IRIG           KSI/Odetics TPRO/S IRIG Interface
# 13    leitch    ATOM           Leitch CSD 5300 Master Clock Controller
# 15    *         *              TrueTime GPS/TM-TMD Receiver
# 17    datum     DATM           Datum Precision Time System
# 18    acts      ACTS           NIST Automated Computer Time Service
# 19    heath     WWV            Heath WWV/WWVH Receiver
# 20    nmea      GPS            Generic NMEA GPS Receiver
# 22    atom      PPS            PPS Clock Discipline
# 23    ptb       TPTB           PTB Automated Computer Time Service
# 24    usno      USNO           USNO Modem Time Service
# 25    *         *              TrueTime generic receivers
# 26    hpgps     GPS            Hewlett Packard 58503A GPS Receiver
# 27    arc       MSFa           Arcron MSF Receiver
#
# * All TrueTime receivers are now supported by one driver, type 5.
#   Types 15 and 25 will be retained only for a limited time and may
#   be reassigned in future.
#
# Some of the devices benefit from "fudge" factors.  See the xntpd
# documentation.

# Either a peer or server.  Replace "XType" with a value from the
# table above.
# Servers to use to update
server 0.fr.pool.ntp.org prefer
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
# fudge 127.127.XType.0 stratum 0

broadcast 224.0.1.1 ttl 4

enable auth monitor
driftfile /var/ntp/ntp.drift
statsdir /var/ntp/ntpstats/
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable
filegen clockstats file clockstats type day enable

keys /etc/inet/ntp.keys
trustedkey 0
requestkey 0
controlkey 0

On créer un fichier drift comme indiqué dans la conf :

Command touch
touch /etc/inet/ntp.drift

Puis on active le service :

Command svcadm
svcadm enable svc:/network/ntp:default

4 Clients NTP

4.1 Linux

Pour synchroniser une machine de type Unix/Linux il existe cette commande :

Command ntpdate
ntpdate monserveur_de_temps

4.2 Solaris

C'est assez simple sous Solaris :

Command
cp /etc/inet/ntp.client /etc/inet/ntp.conf
svcadm enable svc:/network/ntp:default

4.3 Windows

Depuis une machine Windows :

Command net
net time /setsntp:monserveur_de_temps
net time /querysntp
net stop w32time && net start w32time

5 FAQ

5.1 Comment changer le fuseau horraire (timezone) ?

Sous debian, il existe la commande tzconfig ! C'est très pratique :

Command tzconfig
tzconfig

Si malgré celà, ça ne fonctionne toujours pas, essayez :

Command dpkg-reconfigure
dpkg-reconfigure tzdata

5.2 no server suitable for synchronization found

Si vous avez cette erreur, c'est qu'il peut y avoir 2 raisons :

  • Votre serveur NTP doit se synchroniser avant de pouvoir donner l'heure à d'autres serveurs. Cela peut prendre parfois un peu de temps (~30 min).
  • Un des serveurs de votre liste n'est pas joignable, ce qui rends indisponible pour les mise à jour votre serveurs. Commentez le temporairement.

Une fois que cette ligne apparaît dans les logs ("clock is now synced"), c'est que tout est OK :

May 24 16:48:05 chronos ntpd[14262]: ntp engine ready
May 24 16:48:24 chronos ntpd[14262]: peer 91.121.45.45 now valid
May 24 16:48:24 chronos ntpd[14262]: peer 81.93.183.116 now valid
May 24 16:48:27 chronos ntpd[14262]: peer 94.23.220.143 now valid
May 24 17:27:13 chronos ntpd[14262]: clock is now synced