• Mise en place d'un serveur NTP

    Lorsque l'on dispose de plusieurs équipements informatiques dans un réseau, ces équipements ne sont parfois pas synchronisés au niveau de la date et l'heure et lorsque ceux-ci partagent des ressources entre elles ( fichiers, logs, mails...), il est important que ces équipements soient synchronisés sur une date/heure commune... 

    Le Network Time Protocol (NTP) ( protocole de diffusion du temps en réseau ) est un protocole permettant de synchroniser via le réseau informatique, l'heure locale d'un ou de plusieurs ordinateurs sur une horloge de référence.

    En savoir plus sur le « NTP »

     

    Mise en place d'un serveur NTP

      (cliquer sur l'image pour l'agrandir)

     

    Dans ce tutoriel, je vais installer NTP sur un serveur Debian afin que celui-ci puisse diffuser l'heure aux clients et que celui-ci puisse mettre sa propre horloge à jour auprès de serveurs de temps.

    Mon serveur sera alors à la fois serveur et client...

    Pour installer NTP (GNU/LInux Debian /Ubuntu) utiliser la commande suivante :

    sudo apt-get install ntp ntpdate

    Pour synchroniser mon serveur NTP, je vais utiliser ces serveurs :

    Pool de serveurs NTP français 

    Les serveurs de temps NTP français

    Editez ensuite le fichier de configuration avec la commande :

    sudo nano /etc/ntp.conf

    Voici mon fichier tel que je l'ai configuré, libre à vous de modifier les options par la suite.

    Télécharger « ntp.conf(serveur)

    Une fois le fichier de configuration modifié et enregistré, redémarrez le service NTP :

    sudo /etc/init.d/ntp restart

    Pour terminer, nous allons vérifier que la synchronisation fonctionne correctement avec la commande :

    ntpq -p

    -p pour afficher une liste des peers connus du serveur ainsi qu'un résumé de leur état.

    En retour, un tableau va s'afficher avec plusieurs valeurs.

    remote : détermine le nom du serveur.

    refid : la source à laquelle se synchronise ce serveur

    st : détermine la strate du serveur ( plus la valeur de la strate est faible, meilleure sera la synchronisation, le nombre de strats allant de 1 à 16 ).

    when : nombre de secondes écoulées depuis la dernière réponse

    poll :  intervalle entre 2 requêtes (en secondes).

    reachindique si les dernières requêtes vers la référence ont été effectuées avec succès, que l’on a bien reçu des donnés et que le temps était synchronisé. La valeur commence par la valeur 0 et à chaque requête réussie on décale de 1 vers la gauche. La séquence depuis le début est donc 0, 1, 3, 7, 17, 37, 77, 177, 377

    La valeur 377 signifie que les 8 dernières requêtes ont été effectuées avec succès.Le serveur se considère synchronisé si la colonne reach atteint 177

    delay : temps de réponse du serveur (en ms).

    offset : retard mesuré entre l’horloge système et le serveur de temps (en ms).

    jitter : fluctuation du temps de réponse (en ms).

    Une * devant le nom du serveur indique que c'est le serveur utilisé actuellement pour la synchronisation.

    Un + devant le nom du serveur indique que ce serveur sera pris en compte si le serveur utilisé actuellement pour la synchronisation ne répond plus.

    Un - devant le nom du serveur indique que celui-ci n'est pour le moment pas pris en compte sans être définitivement rejeté.

    Une devant le nom du serveur indiquerait que le serveur serait définitivement rejeté car non fiable.

    PS : la 1ère synchronisation peut être longue ( 20 mn dans mon cas ).

     

    Mise en place d'un serveur NTP

      (cliquer sur l'image pour l'agrandir)

     

    Quelques minutes plus tard, vous pouvez voir que la synchronisation s'effectue depuis un autre serveur.

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

    La partie serveur étant terminée, nous allons maintenant nous intéresser à la partie client.

    Pour synchroniser l'heure sur votre client Linux, il existe 2 méthodes :

    - La méthode avec ntupdate qui sera utilisé pour des synchronisations manuelles.

    Cette méthode est idéale pour une 1ère synchronisation

    L'inconvénient de ntpdate est qu'il corrige l'heure du système instantanément et de manière "brutale".

    Ici je vais lancer une 1ère synchronisation sur mon client avec la commande :

    sudo ntpdate -d 192.168.1.41

    Vous pouvez voir que le contact client / serveur a bien été établi et que le serveur va choisir parmi les 4 offsets, celui qui offre la meilleure synchronisation.

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

     - La seconde méthode est avec le démon ntpd

    ntpd va fonctionner contrairement à ntpdate en permanence sur votre PC pour synchroniser l'heure du système. 

    Contrairement à ntpdate, ntpd va corriger l'heure du système de manière permanente, linéaire et graduelle.

    Pour vérifier que le démon ntp fonctionne sur votre PC, utilisez la commande :

    ps aux | grep ntp

    Mise en place d'un serveur NTP

        (cliquer sur l'image pour l'agrandir)

     

    Editez ensuite le fichier de configuration avec la commande :

    sudo nano /etc/ntp.conf

    Voici mon fichier tel que je l'ai configuré, libre à vous de modifier les options par la suite.

    Télécharger « ntp.conf(client) »

    Une fois le fichier de configuration modifié et enregistré, redémarrez le service NTP :

    sudo /etc/init.d/ntp restart

    Nous allons maintenant vérifier que la synchronisation client /serveur fonctionne.

    Pour cela, nous allons utiliser la commande :

    ntpq -p

    -p pour afficher une liste des peers connus ainsi qu'un résumé de leur état.

    Vous pouvez voir en retour que le serveur interrogé pour la synchronisation est mon serveur NTP, serveur qui se synchronise à la source 178.33.43.248 et que le temps de réponse en de 0,292 secondes.

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

    Il existe une seconde méthode pour observer l'état d'un serveur NTP qui est d'utiliser la commande ntpdc.

    Pour cela, il suffit d'entrer dans votre terminal la commande :

    ntpdc -c sysinfo

    En retour, vous saurez que le client se synchronise ici sur srvdebian, serveur qui est de niveau 4 et que la gite est de 5ms

    leap indicator va indiquer si un saut de secondes a été inséré / supprimé dans la dernière minute.Ici il est à 00 donc tout va bien.

    Pour en savoir plus je vous invite à voir :

    « rfc1305 »

    Définitions relatives à NTP

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

     Ici, mon serveur NTP se synchronise sur ntp1.dillydally.fr qui est un serveur de niveau 3 et que la gite est de 2ms.

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

    Pour synchroniser l'heure sur votre client Windows, il suffit d'aller dans les propriétés de la date et l'heure, de renseigner l'adresse du serveur NTP.

    ici, la synchronisation avec mon serveur a bien été effectuée à 15h51.

     

    Mise en place d'un serveur NTP

      (cliquer sur l'image pour l'agrandir)

     

    Nous allons nous intéresser aux statistiques peerstats et loopstats ( cf fichiers ntp.conf ).

    Statistiques NTP

    Le fichier peerstats (Chaque paquet NTP ou horloge de référence mise à jour reçue ajoute une ligne au fichier ) :

    - 56679 représente la date au format julien

    « Définition jour julien »

    - 509.649 représente les secondes écoulées depuis minuit

    - 37.187.7.160 représente l'IP source 

    - 9014 représente le champ d'état au format héxadimal défini selon la RFC 1305 NTP.

    - 0.001878015 représente le décalage de l'horloge en secondes

    - 0.045523508 représente le délai aller-retour en secondes

    - 7.937501414 représente la dispersion en secondes

    - 0.000001907 représente la gigue en secondes

     

    Mise en place d'un serveur NTP

        (cliquer sur l'image pour l'agrandir)

     

    Le fichier loopstats ( Chaque mise à jour de l'horloge système ajoute une ligne au fichier ) :

     - 56679 représente la date au format julien

    « Définition jour julien »

    - 1550.737 représente les secondes écoulées après minuit

    - 0.000000000 représente le décalage de l'horloge en secondes

    - -0.299 représente le décalage de la fréquence en partie par millions

    - 0.000001907 représente la gigue en secondes

    - 0.000001 représente la fréquence de la gigue en partie par millions

    - 6 représente la dérive de l'horloge en Allan

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

    Pour finir, nous allons voir le fichier ntp.drift 

    Ce fichier permet de stocker le décalage de fréquence de l’horloge. Ntpd l’utilise pour compenser automatiquement la dérive naturelle de l’horloge, permettant de maintenir un réglage raisonnablement correct même s’il est coupé du serveur.

    Sa valeur est en PPM

    1 PPM = 1 partie par million = 1 microseconde par seconde = 3.6ms par heure = 86.4ms par jour

    Ici, j'ai une valeur de 1,913 PPM donc une dérive de l'horloge de 165,2832ms par jour.

     

    Mise en place d'un serveur NTP

       (cliquer sur l'image pour l'agrandir)

     

    Conclusion

    Ce tutoriel n'est qu'une partie des possibilités d'un serveur NTP.

    Si vous voulez configurer votre serveur NTP de manière plus poussée, je vous invite à lire cette documentation qui m'a aidé à comprendre le fonctionnement d'un serveur NTP.

    Protocole NTP

     

     

    « Mise en place d'un serveur FTP avec ProFTPDScript de surveillance serveur linux »

  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :