NTP - Emmanuel de Castro
Transcription
NTP - Emmanuel de Castro
Emmanuel De Castro Xavier Perrin Systèmes distribués Mars 2005 Master 2 TIIR NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Sommaire So mma ire ..... .... .... .... .... .... ..... .... .... .... . ... .... ..... .... .... ... 2 Int ro du ct io n . .... .... .... .... .... ..... .... .... .... . ... .... ..... .... .... ... 3 I L a def i nit io n du t e mps ... ..... .... .... .... .... .. .. ..... .... .... ... 4 1) Le temps ................................................................................. 4 2) Le transport du temps............................................................... 5 3) Les besoins en informatique....................................................... 6 II Le s pro to co les de sy nc hro nis at io n du t emps . .... .... ... 7 1) TP .......................................................................................... 7 A) Présentation....................................................................... 7 B) Mécanisme. ........................................................................ 7 C) Les limites de ce protocole. .................................................. 7 2) NTP ........................................................................................ 8 A) Présentation....................................................................... 8 i) Bref historique.................................................................... 8 ii) Les évolutions de NTP....................................................... 8 B) Les modes d’utilisation ........................................................ 8 C) Architecture ..................................................................... 10 i) Généralités ...................................................................... 10 ii) L’architecture réseau ...................................................... 10 iii) L’architecture système .................................................... 12 D) La mise à l’heure .............................................................. 13 i) Gestion des messages ....................................................... 13 ii) Réglage de l'horloge ....................................................... 14 3) SNTP .................................................................................... 15 II I Le s o ut il s dis po nibl es . ..... .... .... .... .... .. .. ..... .... .... . 16 1) Les différents type de serveurs primaire .................................... 16 A) Serveur par horloge GPS.................................................... 16 B) Serveur par horloge atomique ............................................ 16 C) Serveur rackable par horloge GPS....................................... 16 D) Serveur rackable par horloge atomique ............................... 17 2) Un exemple de serveur primaire: chronos.univ-rennes1.fr ........... 17 A) Présentation..................................................................... 17 B) Architecture ..................................................................... 18 3) Les clients ............................................................................. 18 C) Pour Windows................................................................... 18 D) Pour Linux ....................................................................... 18 4) Quelques utilitaires en detail .................................................... 19 A) ntptrace........................................................................... 19 B) ntpq ................................................................................ 19 Co nc lus i o n ... .... .... .... .... ..... .... .... .... .... . ... ..... .... .... .... . 20 Page 2 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Introduction De nos jours, la plupart des équipements électroniques possèdent une horloge ; l’informatique n’échappant pas à cette règle, les ordinateurs disposent d’horloges matérielles et logicielles. Ces horloges, bien que conçues autour d'un oscillateur à quartz, dérivent comme toutes montres ordinaires. Ceci est d'autant plus gênant lorsque les machines sont interconnectées entre elle pour former un réseau ; en effet, lors de leurs diverses communications, elles sont amenées à estampiller leurs messages avec l’heure et il peut apparaître que les messages arrivent avant qu’ils ne soient partis si les horloges des différentes machines ne sont pas synchronisées ! D’autres problèmes peuvent survenir si ces machines partagent des ressources communes comme des systèmes de fichiers ; certains outils de développement, comme la commande Unix "make", basent leur travail sur la comparaison des dates de modification de fichiers. Si les horloges ne sont pas synchronisées des messages étranges peuvent apparaître ! xavier@tuxy /mnt/boutique $ make compil make: Warning: File `Makefile' has modification time 52 s in the future gcc -o hello test.c make: warning: Clock skew detected. Your build may be incomplete. De même, la cohérence et la comparaison de messages de "logs" de plusieurs systèmes deviennent très difficiles s'ils ne sont pas à la même heure. La nécessité de synchroniser des équipements en réseau paraît alors évidente. C'est le but du protocole Network Time Protocol (NTP) ; il synchronise les horloges des machines le plus précisément possible. Afin de mieux comprendre la technique de synchronisation des horloges des machines nous allons dans une première partie définir ce qu’est exactement le temps, et quel référentiel adopter, puis nous verrons dans une seconde partie comment fonctionne le protocole NTP et enfin nous ferons un tour d’horizons sur les différents outils disponibles. Page 3 sur 20 Mars 2005 NTP Network Time Protocol I Xavier Perrin – Emmanuel De Castro La L a d e finition du temps 1) Le temps Afin de mesurer le temps, nous avons besoin d’une échelle, d’une origine et d’une unité. L’astronomie en fournis plusieurs : rotation de la terre sur ellemême ou autour du soleil. On attend d’une échelle quelle soit universelle (utilisée par le plus grand nombre de personnes possibles), pérenne (il faut que cette échelle ne puisse être interrompue, et créer des trous dans la mesure du temps), accessible (chacun doit pouvoir accéder à la lecture du temps sans difficulté), précise (la lecture doit avoir la meilleure précision possible) et uniforme (la valeur des mesures ne doit pas dépendre du temps ou du lieu où l'on fait les mesures) Si on prend comme oscillateur la rotation de la terre sur elle-même, on s'aperçoit que cette rotation n'est pas uniforme sur quelques jours, ce qui conduit à l'élaboration du temps solaire moyen basé sur un soleil moyen fictif dont les passages au méridien sont séparés par des intervalles égaux subdivisés en périodes de 24 heures ou 86400 secondes. Le temps solaire moyen du point de l'observatoire de Greenwhich augmenté de 12 heures est appelé temps universel (TU). Or ce temps universel n'est pas à son tour uniforme à cause de diverses irrégularités physiques dont le déplacement des pôles. On aboutit à un temps universel corrigé nommé TU2. Si on prend comme oscillateur la rotation de la terre autour du soleil, on définit un temps appelé temps des éphémérides (TE). Ce temps est connu avec moins de précision que TU, mais a l'avantage d'être plus uniforme. Ces temps obtenus sont différents; la seconde universelle n'est pas la même que la seconde des éphémérides. Depuis 1955 avec l'apparition des horloges atomiques on s'est aperçu de la dérive des secondes définies au moyen des horloges naturelles. On utilise maintenant des oscillateurs artificiels plus précis que sont les horloges à quartz et les horloges atomiques. Celles-ci sont utilisées plus comme étalon de fréquences ou garde temps que comme mesure directe du temps. Les horloges à quartz sont des oscillateurs mécaniques basés sur la vibration d'un cristal de quartz taillé suivant une certaine forme. Deux cristaux de quartz ne sont jamais taillés de la même manière et ne sont donc pas exactement tous à la même fréquence. Les horloges atomiques sont elles basées très schématiquement par la fréquence émise lors du changement de transition d'un atome de gaz excité. Il existe deux catégories d'horloges atomiques. Les unes sont des garde temps beaucoup plus stable que les horloges à quartz; les autres constituent des étalons absolus de fréquences et sont à la base de la définition moderne de la seconde, c'est ce qu'on appelle le temps atomique (TA). Naturellement ce temps atomique va dépendre du type de gaz dont on va mesurer la fréquence de transition. Page 4 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Le petit tableau ci-dessous donne les différentes précisions des temps définis ci-dessus: TEMPS TU TE TA césium PRECISION 10^-3 10^-1 10^-13 UNIFORMITE 10^-7 10^-9 10^-13 Le temps légal défini par la seconde légale a été basé Sur le temps universel (TU) jusqu'en 1956 Sur le temps des éphémérides (TE) de 1956 à 1967 Sur le temps atomique à jet de césium à partir de 1967 Jusqu'en 1956 la seconde légale était définie comme la 86400ème partie du jour solaire moyen. A partir de 1956 la seconde des éphémérides a été définie par le comité international des poids et mesure comme étant la fraction 1/31556925.9747 de l'année tropique pour 1900 janvier 0 à 12 heures de temps des éphémérides. Depuis 1967 la seconde légale est définie comme la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l'état fondamental de l'atome de césium 133. 2) Le transport du temps La mesure du temps ne suffit pas pour pouvoir utiliser le temps, car les oscillateurs choisis, naturels ou artificiels, ne sont pas directement utilisables par le commun de mortels. C'est pourquoi on distingue les horloges primaires et les horloges secondaires. Les horloges primaires, naturelles ou artificielles, servent d'étalon sur lesquels on va se synchroniser. Les horloges secondaires sont synchronisées sur les horloges primaires et servent à transporter le temps. C'est le cas classique est très utilisé des montres et autres réveils. Avec l'apparition des télécommunications il est maintenant possible de transporter le temps au moyen de signaux radios. Et l'on sait synchroniser les différents étalons de fréquence entre eux sur la planète pour obtenir un temps moyen coordonné appelé temps universel coordonné (TUC). Naturellement ce temps est moins précis que celui des horloges atomiques puisqu'il faut tenir compte des délais de transmission des signaux. Il y a à travers le monde plusieurs sites officiels de transmission du temps par des tops radio. En France c'est l'émetteur de TDF qui est chargé de la transmission. Les différents temps que l'on vient de mettre en évidence, temps solaire moyen, temps universel, temps des éphémérides, temps atomique et temps Page 5 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro universel coordonné, sont tous différents et ne sont pas utilisés pour le même usage. L'usage du temps qui nous intéresse ici est celui du service de l'heure pour la vie quotidienne, c'est donc le temps universel (TU). Mais comme la seconde est définie à partir des étalons atomiques il faut réajuster l'heure régulièrement afin que le soleil passe toujours au méridien de Greenwich à midi. Ce réajustement a lieu si nécessaire fin juin ou fin décembre, et l'on ajoute ou enlève une seconde à la minute courante. C'est ainsi que de temps en temps il y a des minutes qui font 61 secondes ou parfois 59 secondes 3) Les besoins en informatique L’informatique possède de nombreuses applications nécessitant que les horloges entre les machines du réseau soient synchronisées ; voici une liste non exhaustive mais représentative de certaines de ces applications. Bases de données distribuées Transactions Journalisation Logs estampilles de documents sécurisés certification et cryptographie Aviation Programmation télévision et radio synchronisation pour les téléconférences en temps réel Gestion des réseaux On peut également généraliser à toutes applications distribuées. Page 6 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro II Les protocoles de synchronisation du temps Comme nous l’avons vu, il est important, en informatique, de synchroniser les horloges des différents éléments actifs d’un réseau. Pour cela, plusieurs protocoles sont apparus, chacun étant défini par une RFC. 1) TP A) Présentation. Time Protocol (TP) est le protocole de synchronisation du temps le plus ancien. Il date de 1983 et est défini par la RFC 868. Etant donné l’utilité d’un tel mécanisme, il a rapidement été populaire, notamment sur les systèmes Unix par le biais du démon timed et de la commande rdate. B) Mécanisme. Le mode fonctionnement de TP est simple. Un client fait une requête à un serveur sur le port 37. Le serveur répond au client par l’envoi d’un entier contenant le nombre de secondes écoulé depuis le premier janvier 1900 à 0h. Le client utilise cette valeur pour mettre à jour son horloge. C) Les limites de ce protocole. Le fonctionnement TP est beaucoup trop simple. On peut le résumer à l’envoi de l’heure (sous forme de secondes) par un serveur vers un client. L’heure ainsi transmise et l’heure du serveur au moment de la réponse. On se rend bien compte qu’il est impossible d’obtenir une précision supérieure à la seconde. De plus, cette valeur du temps n’est pas précise car elle ne prends pas en compte le temps mis par le paquet pour transiter sur le réseau. Cela n’a toutefois pas d’influence car la durée du transport est, en principe, inférieure à la seconde. Page 7 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro 2) NTP A) Présentation i) Bref historique Pour résoudre les problèmes soulevés par le protocole TP, un autre protocole de synchronisation des horloges est développé sous le nom d’Internet Clock Service. Ce n’est qu’en 1988 qu’apparaît la première version de NTP. La version de NTP la plus récente actuellement est la version 4. Elle est basée sur NTP version 3 (qui était basé sur la version 2 et sur le Digital Time Synchronisation Service (DTSS) de DEC) et y ajoute un certain nombre d’améliorations. Elle est apparue en 1994. ii) Les évolutions de NTP Les principales évolutions de NTP concernent les algorithmes de mise à jour des horloges locales, cela dans le but d’augmenter la précision (on atteint une précision de 10-3 seconde en LAN) D’autres fonctionnalités sont implémentées telles que le chiffrement des paquets ou la gestion de IP v6. Voyons plus précisément les améliorations apportées par la version 4 : Augmentation de la précision (précision 10 fois plus forte). Fourni un nouveau modèle de gestion de l’horloge locale. L’augmentation significative de la précision, permet d’augmenter les délais entre les synchronisations. Cela permet de diminuer le nombre de requêtes sur le serveur et une utilisation moindre de la bande passante du réseau. B) Les modes d’utilisation Sauf dans le mode broadcast, une association est créée quand deux machines échangent des messages. Une association peut fonctionner dans un des cinq modes suivants : Mode symétrique actif: Un serveur fonctionnant dans ce mode envoie périodiquement des messages, sans se soucier de l'état de ses voisins (joignables, serveurs primaires ou secondaires, clients). Il indique ainsi sa « volonté » de synchroniser d'autres serveurs et d'être synchronisé par eux. Page 8 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Mode symétrique passif: Ce type d'association est généralement créé lors de l'arrivée sur le serveur d'un message d'un autre serveur (en mode symétrique actif). Le serveur annonce son intention de synchroniser et d'être synchronisé. Seulement il ne le fait qu'après avoir été sollicité par un autre serveur. Mode client: La machine envoie des messages régulièrement, sans se préoccuper de l'état de ses voisins. La station (typiquement, elle appartient à un réseau LAN) indique ainsi sa « volonté » d'être synchronisée. Mode serveur: L'association de ce mode est créée lors de la réception d'une requête (un message) d'une station en mode client. Mode broadcast: Destiné aux réseaux locaux, il se limite à une diffusion d'informations horaires pour des clients pouvant être soit passifs, soit découvrant ainsi les serveurs avec lesquels ils vont se synchroniser. Les simples clients se synchronisent en mode client/serveur s'ils sont isolés, ou en mode multicast s'ils font partie d'un réseau (ex : machines universitaires se synchronisant sur plusieurs serveurs de strate 3, comme les serveurs des départements universitaires). Une station en mode client envoie de temps en temps un message NTP à une station en mode serveur, généralement peu de temps après avoir redémarré. Le serveur n'a pas besoin d'enregistrer des informations sur l'état du client, puisque c'est le client qui décide quand envoyer une requête, en fonction de son état en local. Dans ce mode, le fonctionnement pourrait être simplifié en un mécanisme de RPC sans perdre de précision ni de robustesse, surtout dans le cadre d'un réseau LAN à haut débit. Dans les modes symétriques, la distinction client/serveur disparaît. Le mode passif est destiné aux serveurs de temps qui se trouvent près de la racine du système de synchronisation (les serveurs de la strate 1 ou 2). Le mode symétrique actif est destiné aux serveurs de temps qui se trouvent près des feuilles du réseau de synchronisation, sur les strates les plus élevées. La fiabilité du service de temps peut être généralement assurée avec deux stations sur le niveau au-dessus (strate plus petite) et une station sur le même niveau. Normalement, une station fonctionne en mode actif (symétrique, client ou broacast) avec une configuration donnée au démarrage, alors que les autres sont en mode passif (symétrique ou serveur) sans configuration préalable. Cependant une erreur intervient lorsque deux stations qui communiquent sont dans le même mode, sauf pour le mode symétrique actif. Dans ce cas, Page 9 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro chaque station ignore les messages de l'autre et l'association créée par cet échange n'est rompue qu'en cas de coupure de réseau entre les deux stations. Le mode broadcast est surtout destiné aux réseaux locaux avec beaucoup de stations et où la précision requise n'est pas très importante. Le déroulement classique est le suivant : un ou plusieurs serveurs de temps du réseau envoie régulièrement des broacasts aux stations, pour déterminer l'heure, avec une latence de l'ordre de quelques millisecondes. Comme dans le mode client/serveur, le protocole utilisé peut être simplifié. Ainsi, un système basé sur l'algorithme de sélection d'horloge peut être utilisé dans le cas où on dispose de multiples serveurs de temps, afin d'optimiser la fiabilité. NTP intègre un système d'exploration du réseau pour découvrir automatiquement de nouveaux serveurs NTP, par différentes méthodes : Multicast : 1. Les serveurs inondent périodiquement le réseau local par un message multicast. 2. Les clients utilisent le mode client/serveur lors du premier contact pour mesurer le temps de propagation puis restent en écoute. Manycast : (mode plus précis) 1. Les clients inondent le réseau local par un message multicast. 2. Les serveurs répondent en multicast. 3. Les clients communiquent ensuite avec les serveurs comme s'ils avaient été configurés en unicast. Des contrôles de time-out et de TTL garantissent le bon déroulement de la configuration. C) Architecture i) Généralités NTP est un protocole basé sur UDP pour le transport et sur IP pour l’adressage. Il est disponible sur le port 123. ii) L’architecture réseau L’architecture réseau de NTP a deux caractéristiques principales : la hiérarchisation des serveurs et leurs redondances. Nous allons les présenter dans les deux parties qui suivent. Page 10 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro a) La structure en strate de NTP Les serveurs NTP suivent une hiérarchisation bien définie. En théorie, nous pouvons observer jusqu’à 15 niveaux de couche différente. En pratique, nous ne dépasserons rarement la 5ème couche. Chaque couche n’est pas libre d’agir à sa guise. Tout est réglementé : Un serveur NTP de couche 1 se synchronise sur une source de référence, dites sources primaires (récepteur GPS, horloge atomique, …). Ces serveurs sont déclarés officiellement. Il en existe très peu sur le réseau. Un serveur de strate 2 se synchronise sur un serveur de strate 1. Ils sont également déclarés officiellement. Un serveur de strate supérieur à 2 se synchronise sur un serveur de strate inférieur. Ils ne sont pas déclarés. Ainsi, tout site informatique peut installer un serveur NTP de strate 3 sur son réseau et synchroniser l’ensemble de son parc de machine avec. Ils ont toutefois l’obligeance de prévenir les administrateurs du serveur sur lequel il se connectera. Source primaire Serveur (1) Serveur (2) Serveur (3) Serveur (2) Serveur (3) Serveur (1) Serveur (2) Serveur (3) Serveur (5) Page 11 sur 20 Serveur (4) client Serveur (2) Serveur (3) Serveur (3) client client Serveur (4) Serveur (1) client Serveur (2) Serveur (3) client Serveur (4) client client Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Notons qu’un simple client n’est pas autorisé à se connecter sur des serveurs de couche inférieure à 3. Ce principe permet de bien répartir la charge des serveurs. De plus, en choisissant un serveur de synchronisation proche, on réduit la distance et on diminue ainsi les erreurs dues au temps de transport de l’heure. b) La redondance du protocole A la vue du schéma précédent, apparaît un problème : lorsque qu’un serveur de couche basse ou qu’une source primaire est indisponible, toutes les machines se synchronisant sur cette branche ne sont plus à l’heure. Pour palier cela, la structure réseau de NTP est redondante. En effet, il est possible de configurer les serveurs de telle façon à ce qu’ils utilisent plusieurs sources de référence. Par exemple, un serveur de strate 1 se synchronisera à l’aide de plusieurs sources primaire. Il est même possible d’utiliser des serveurs de même niveau en mode symétrique. iii) L’architecture système Maintenant que nous avons vu comment l’heure est transmise de la source primaire vers les serveurs, nous allons nous intéresser aux opérations effectuées en interne par le serveur après réception des réponses par les sources de synchronisation. Comme nous l’avons vu, un serveur se connecte sur un ou plusieurs serveurs de strate inférieure ou égale à la sienne. Il est donc susceptible de recevoir plusieurs heures différentes. Les réponses sont donc dans un premier temps analysé afin de ne prendre en compte que les valeurs conforment aux attentes du protocole. On estime que cette phase permet déjà de réduire les erreurs par un facteur de 10. Ce premier filtrage est suivi par une sélection qui détecte les données erronées afin d’éliminer les valeurs faussées envoyées par des serveurs aux comportements byzantin. Après cette phase, on suppose que les valeurs restantes sont valides et peuvent être prises en compte pour le calcul du décalage de l’horloge locale. Un algorithme permet de calculer ce décalage et ensuite, celui-ci est appliqué. Un schéma peut résumer ces différentes phases : Page 12 sur 20 Mars 2005 NTP Network Time Protocol Serveur NTP Xavier Perrin – Emmanuel De Castro Serveur NTP Serveur NTP Filtrage Sélection Combinaison Décalage Remarque : selon le décalage constaté (plus ou moins importante), les méthodes de recalage peuvent varier. Nous étudions cela dans la partie concernant les mécanismes de mise à l’heure. D) La mise à l’heure i) Gestion des messages Comme beaucoup de systèmes distribués sur un réseau, les hôtes NTP (clients ou serveurs) utilisent des messages pour communiquer. Voici les champs contenus dans un paquet NTP : Page 13 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro La synchronisation d'un client nécessite plusieurs échanges de messages afin d'améliorer à chaque fois l'estimation du temps. Dans la pratique, il faut à peu près cinq minutes pour que l'horloge du système devienne fiable. Une fois cette synchronisation effectuée, le client pourra devenir à son tour un système de référence. De plus, plus le client échange des messages avec ses serveurs de référence, plus il est capable de discerner, parmi eux, ceux qui amènent une certaine part d'erreur dans la détermination du temps. Le cas échéant, il peut décider de ne plus faire appel à ces systèmes appelés « falsetickers ». L'échange de messages conduisant à la synchronisation suit la procédure suivante : Le système désirant être synchronisé envoie d'abord un paquet dans lequel il initialise le champ « Originate timestamp » avec sa propre heure système. Le serveur stocke ensuite l'heure de réception du paquet dans le champ « Receive timestamp » du même paquet. Ensuite il effectue un contrôle de validité du paquet pour s'assurer qu'il doit bien effectuer le traitement (vérification du stratum du client, authentification, ...). Avant de retourner le paquet à l'expéditeur, le champ « Transmit timestamp » est renseigné avec l'heure courante du serveur. Le client enregistre l'heure de réception de la réponse afin de pouvoir estimer le temps de trajet du paquet. En supposant que les délais de transmission des messages sont symétriques, le temps de trajet correspond à la moitié du temps d'attente total moins le temps de traitement sur la machine distante. (NTP implémente un algorithme de Huff&Puff pour compenser les délais de transmission asymétriques) Le client lui aussi vérifie la validité de la réponse pour savoir si elle doit être prise en compte. Le système client peut alors estimer le décalage de son horloge avec le système de référence. ii) Réglage de l'horloge Une fois que le décalage a été déterminé, il faut agir sur l'horloge pour se synchroniser. Plusieurs possibilités d'action s'offrent alors au processus qui interagit avec l'horloge: Il peut changer brutalement l'heure système. Cette technique est à éviter car elle perturbe les applications utilisant l'horloge du système et peut même engendrer une certaine instabilité. Page 14 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Le processus peut aussi faire varier la fréquence d'horloge: la ralentir si elle est en avance ou inversement, l'accélérer pour lui faire rattraper son retard. Cette technique permet un contrôle plus fin de l'heure locale et a l'avantage de préserver l'intégrité du système. Le choix de l'action à entreprendre dépend en fait de l'importance du décalage constaté : Pour un décalage minuscule, la fréquence d'horloge est modifiée. Si ensuite on constate des décalages plus grands (de l'ordre de la seconde), le processus ne tient pas compte de la réponse des serveurs et préfèrera faire des calculs statistiques sur les anciens décalages afin de déterminer la marche à suivre. Au bout d'un moment, si des décalages encore importants sont constatés, ils seront pris en compte : pour les plus petits d'entre eux, la fréquence d'horloge sera modifiée tandis que pour les plus grands (sans toutefois être énormes), l'horloge est réinitialisée brutalement. Dans le cas d'un décalage vraiment très important, la réponse des serveurs est rejetée et le processus NTP s'arrête car il pense que ses systèmes de référence sont entrés dans un état non fiable. 3) SNTP En dernier lieu, une version simplifiée du protocole NTP est développée en parallèle. Il s'agit du Simple Network Time Protocol (SNTP) spécifié dans la [RFC2030] et qui en est déjà à sa quatrième version. SNTP est destiné à des réseaux où la précision de l'ordre de la seconde est suffisante (exemple : workstations). A la base, SNTP amène un allègement des algorithmes de traitement des paquets NTP (Elle est dépourvue des mécanismes de sélection), ce qui permet d'envisager SNTP sur des systèmes embarqués où la capacité de calculs, notamment à virgule flottante, est généralement très limité. L'objectif de ce nouveau protocole est de faciliter l'implémentation d'un client NTP n'ayant pas besoin de beaucoup de précision tout en étant capable de dialoguer avec des serveurs NTP standards. Cependant, l'utilisation de SNTP doit rester limitée pour ne pas perturber et fausser le réseau NTP. En fait, il est vivement recommandé de n'utiliser SNTP qu'en bout de chaîne dans les échanges NTP, c'est à dire directement sur les systèmes clients. On doit ainsi éviter de faire d'un système réglé par SNTP, une référence pour un autre système. Page 15 sur 20 Mars 2005 NTP Network Time Protocol III Xavier Perrin – Emmanuel De Castro Les outils disponibles 1) Les différents type de serveurs primaire A) Serveur par horloge GPS L'antenne GPS est reliée au boîtier qui est capable de déterminer l'heure de façon très précise. Le boîtier est en générale branché par le port série mais il existe des modèles utilisant une interface ethernet. Ce boîtier est ensuite relié à une machine ou s'exécute un serveur NTP qui utilisent les informations délivrées par le boîtier pour recaler sa propre horloge. Voici un exemple de boîtier GPS: B) Serveur par horloge atomique L'antenne reçoit des ondes radios qui sont ensuite interprétées par le boîtier qui est capable de déterminer l'heure de façon très précise. Le boîtier est en générale branché par le port série mais il existe des modèles utilisant une interface ethernet. Ce boîtier est ensuite relié à une machine ou s'exécute un serveur NTP qui utilisent les informations délivrées par le boîtier pour recaler sa propre horloge. C) Serveur rackable par horloge GPS Ce type de serveur a un fonctionnement similaire avec les serveurs par horloge GPS à la seule différence que le serveur et le boîtier forment une seule et même machine. Sur ce type de serveur, seule l'interface Ethernet est disponible. Page 16 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro D) Serveur rackable par horloge atomique Ce type de serveur a un fonctionnement similaire avec les serveurs par horloge atomique à la seule différence que le serveur et le boîtier forment une seule et même machine. Sur ce type de serveur, seule l'interface Ethernet est disponible. 2) Un exemple de serveur primaire: chronos.univ-rennes1.fr A) Présentation Ce serveur a été financé et mis sur pied par la cellule technique du Comité Réseau des Universités afin d'offrir le service NTP à la communauté enseignement/recherche française qui ne disposait, début 1995, que d'un seul serveur primaire sur Renater: le serveur de l'Inria. Page 17 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro B) Architecture Ce serveur, construit autour d'une SparcStation 10 sous SunOS Release 4.1.3_U1 avec l'extension multicast, s'appuie sur un récepteur GPS SVeeSix Trimble pour sa synchronisation. L'utilisation d'un signal PPS pris en compte directement, par interruptions, dans le noyau de l'OS. Cela lui confère une excellente précision (de l'ordre de la dizaine de micro-secondes). 3) Les clients C) Pour Windows Windows XP dispose par défaut d’un outil de synchronisation de son horloge. Il est toutefois possible d’installer un client NTP (ou SNTP) ; en voici une liste non exhaustive : AboutTime (SNTP) WinSNTP 32-bit (SNTP) SocketWatch (NTP) Dimension 4 (SNTP) ntpdate (NTP) Tardis Automachron (NTP) NTPTime Client (NTP) D) Pour Linux Il existe 2 grands clients sous linux : ntpd ntpdate Les deux ont des méthodes de fonctionnement différent. Alors que ntpd est un démon, ntpdate est un simple programme. Il ne tourne donc pas en tâche de fond. En général, nous le configurons pour qu’il soit exécuté à chaque démarrage de la machine. Nous pouvons d’ailleurs le vérifier facilement : >>:/home # ls /etc/rcS.d/ | grep ntpdate S51ntpdate Evidemment, il est possible d’exécuter ntpdate en ligne de commande à la demande ou dans un cron de telle façon à ce que l’horloge se synchronise à heure régulière. Page 18 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro ntpd, quant à lui, est un démon. Il tourne constamment et synchronise l’horloge locale de façon régulière et transparente. 4) Quelques utilitaires en detail A) ntptrace ntptrace permet d'afficher le chemin de la synchronisation vers le serveur de strate 1 en partant de l'ordinateur 'machine'. Exemple: $ ntptrace lptfpc19.obspm.fr lptfpc19.obspm.fr: stratum 3, offset -0.008014, synch distance 0.05196 opdaf2.obspm.fr: stratum 2, offset -0.000648, synch distance 0.03754 ntp-p1.obspm.fr: stratum 1, offset -0.002420, synch distance 0.00000, refid '1PPS' B) ntpq La commande host 'serveur' permet de changer le destinataire des commandes. peer affiche la liste des serveurs qui participent à la synchronisation: une étoile en première colonne indique celui qui est utilisé actuellement, 'St' est le strate (16 est une machine non disponible pour une synchro, c'est le cas entre autres pour tout serveur NTP pendant les quelques minutes qui suivent son démarrage) et 'reach' est normalement à 377. L'offset est donné en millisecondes. Autre commande intéressante: rv (ou rl), elle donne diverses informations sur le serveur ntp. $ ntpq ntpq> host ntp-p ntpq> current host set to opdaf2.obspm.fr ntpq> peer remote refid st t when poll reach delay offset disp ============================================================================== *ntp-p1.obspm.fr .1PPS. 1 u 667 1024 377 7.08 0.149 1.10 +lip.curie.fr .GPS. 1 u 832 1024 377 93.15 -16.340 10.50 +sancerre.jussie canon.inria.fr 2 u 624 1024 377 15.40 -7.300 1.77 -soleil.uvsq.fr brahma.jussieu. 2 u 35 1024 377 28.26 6.294 20.77 -joliot.net.espc chronos.cru.fr 2 u 769 1024 377 28.29 7.837 9.51 ntpq> rv status=06c4 leap_none, sync_ntp, 12 events, event_peer/strat_chg system="OpenVMS AXP", leap=00, stratum=2, rootdelay=7.08, rootdispersion=18.22, peer=60828, refid=ntp-p1.obspm.fr, reftime=bc9855a4.a185d000 Fri, Apr 7 2000 14:40:04.630, poll=10, clock=bc985896.ace06000 Fri, Apr 7 2000 14:52:38.675, phase=0.660, freq=-13682.74, error=27.16 Page 19 sur 20 Mars 2005 NTP Network Time Protocol Xavier Perrin – Emmanuel De Castro Conclusion NTP est le protocole de synchronisation du temps le plus utilisé à travers le monde. Son succès est dû à sa facilité d’utilisation, sa fiabilité et sa précision (10-3 secondes en LAN). NTP évolue constamment. Il est aujourd’hui en version 4. Ces évolutions successives permettent à NTP de tenir compte des nouveautés technologiques (IPv6, cryptage, …). Derrière sa simplicité d’utilisation, NTP cache un fonctionnement bien plus complexe. Il fait appelle à de nombreux principes et algorithmes dans le but d’offrir un service de qualité. Une version simplifiée de NTP existe. Il s’agit du protocole SNTP. Ce protocole permet une synchronisation allant jusqu’au dixième de seconde. Cette précision est bien souvent suffisante. Il est ainsi possible d’utiliser SNTP au niveau des clients. Page 20 sur 20 Mars 2005