NTP : Serveur de temps

Publié: 8 février 2013 dans Debian, Haute disponibilite, Informatique, Linux
Tags:, , , , , , , , , , , , ,
  1. NTP : C’est quoi ?

Le Network Time Protocol (NTP) est un protocole utilisé pour synchroniser précisément l’horloge locale avec un serveur de temps en réseau. Le réseau NTP est est un réseau hiérarchique ouvert.

La hiérarchie est divisée en niveaux, appelés stratum. Le plus précis est le stratum 0 et est réservé aux horloges atomiques. Le niveau suivant, Stratum 1, est quant à lui réservé aux serveurs NTP locaux : les serveurs horloges atomiques. Les Stratum 2 à 15 sont les serveurs NTP connectés.

Ce manuel montre comment installer et maintenir un service NTP précis.

  1. Pourquoi un serveur de temps ?

Un serveur NTP n’est pas obligatoire. Néanmoins, je vous le recommande fortement. Dans les architectures suivantes :

    • Microsoft Active Directory
    • Messageries réseaux (Micosoft Echange, Postfix, Lotus Notes…)
    • Supervision des serveurs
    • Centralisation des logs (ex : syslog)
  1. Allons-y !!

 

    • Installation du service NTP

#apt-get install ntpd

Le service ntpd est à la fois client ET serveur. Il synchronise votre horloge système et fournit un service de temps.

    • Un peu de réseau avant tout

Le service NTP est un service réseau UDP et utilise le port 123.

Il ne vous reste plus qu’à configurer votre pare-feu pour autoriser le flux UDP entrant et sortant entre Internet et le port 123 de votre tout nouveau serveur NTP.

    • Configuration du service NTP

Le fichier de configuration du service ntpd est /etc/ntp.conf. Mais la configuration par défaut doit être modifiée afin d’optimiser le service.

La première section à modifier est la liste des serveurs de stratum faible sur lesquels vous allez vous synchroniser.

Le site https://www.cru.fr/services/ntp/serveurs_francais vous fournira une liste non exhaustive des serveurs de temps disponibles.

Votre choix doit être pertinent et prendre en compte la distance réseau entre votre serveur NTP et le serveur cible. Pour ce faire, vous utiliserez la commande traceroute et choisirez le serveur accessible avec le moins de rebonds.

#traceroute mon.serveur.ntp.que.je.veux.me.synchroniser

Ok, vous avez choisi votre serveur ?

Alors nous allons l’utiliser pour notre synchronisation primaire, puis passer la main à un pool de serveurs qui ne feront que corriger notre écart de temps.

Ainsi, vous vous synchroniserez non pas sur un seul serveur mais sur un pool de serveurs. En effet, vous devez prendre en considération une éventuelle panne serveur ou encore une éventuelle saturation. Le pool proposé ci-dessous, vous permettra de vous synchroniser avec de multiples serveurs disponibles.

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

La configuration ne s’arrête pas ici. En effet, que faire si votre connexion Internet est coupée …

C’est pourquoi vous indiquez à votre serveur NTP qu’en dernier recours il se synchronise avec son horloge locale et le service NTP ne s’arrêtera pas et attendra le retour à la connexion des serveurs dans l’ordre indiqué.

Votre configuration doit être comme suit :

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

server 127.127.1.0

fudge 127.127.1.0 stratum 10

    • Mon service de temps fonctionne ?

Maintenant que vous avez paramétré votre service de temps, voyons s’il fonctionne correctement et si sa synchronisation est optimale.

Pour cela, on redémarre le service :

#/etc/init.d/ntpd restart

On monitore les messages :

#tail –f /var/log/syslog

Après 10 à 20 secondes (voir minutes si vous avez oublier d’ajouter iburst sur votre serveur préféré), vous devez voir apparaître les messages suivants :

Mar 7 16:50:22 hostname ntpd[22402]: synchronized to xxx.xxx.xxx.xxx, stratum 2

Si ce message n’apparaît pas, alors vous ne vous synchroniser pas avec un quelconque serveur.

Analysons le service NTPD :

#ntpd –c lpeer

Si les colonnes delay, offset ou jitter ne sont pas à 0 et qu’aucun serveur n’est précédé d’une *, alors vous n’êtes pas synchronisé.

Vérifiez que l’iburst est ajouté à votre premier serveur.

Exemple de serveur synchronisé :

remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207

-europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875

-dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804

+smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916

+kechara.flame.o 216.218.254.202  2 u    –   64   77   89.183   68.717   1.713

-host2.kingrst.c 99.150.184.201   2 u    –   64   77   24.306   62.121   2.608

LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002

  • Mes serveurs se synchronisent-il avec mon nouveau serveur de temps ?

 #tcpdump dst <serveur à vérifier s’il se connecte> and port ntp

    • Ouvrons le service NTP sur notre réseau

Une fois que votre serveur est synchronisé, vous pouvez le configurer en tant que fournisseur de temps.

Ajoutez dans /etc/ntp.conf :

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

Vous pouvez ajouter autant d’adresses CIDR que nécessaire.

    • A vos marques, prêt, synchronisez …

Pour ce faire, vous devez tout d’abord installer le service NTPD sur chacun des  serveurs à synchroniser, puis les configurer comme suit :

Sous linux/unix :

Dans le fichier /etc/ntp.conf, ajoutez :

server adresse IP de votre serveur de temps

puis redémarrez votre service NTPD.

Sous Windows :

Les ordinateurs Windows utilisent le protocole SNTP (Simple NTP).

Configuration : double-cliquez sur l’horloge windows et naviguez vers l’onglet « Internet Time »

Ajoutez l’adresse IP de votre serveur de temps.

Sachez que si vous disposez d’un serveur Active Directory, vous n’avez qu’à réaliser cette configuration sur votre serveur racine. En effet, chaque client Active Directory prend par défaut le temps fournit par le serveur maître.

 

  1. Et les sauts dans le temps ?

Il peut arriver que certains systèmes soient très désynchronisés. Que se passe-t-il si un serveur en avance doit reculer son horloge pour se synchroniser ? Vais-je perdre de l’information ? Quid de l’horodatage des informations ?

Le mode de gestion appartenant à chaque OS, les clients NTP se synchronisent progressivement par 1000eme de secondes pour enfin arriver à synchroniser.

  1. Serveur NTP sous Windows ou sous Unix/Linux ?

Cette question peut se poser. Par expérience, je vous conseille un serveur sous Unix/Linux. En effet, la majorité des serveurs de temps sous Windows, bien que gratuits sont de véritables boites noires. A contrario, celui sous Unix/Linux fournit les outils et les informations d’analyse de problèmes.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s