Arbre de dépendance NTP : qui suit qui, et sur quelle horloge

Par Richard DEMONGEOT · Campagne du 2026-08-07 · Reconstitution mesurée, depuis six réseaux autonomes · Données CC BY 4.0

Chaque serveur NTP publie, dans chacune de ses réponses, un champ de quatre octets appelé refid. Un stratum 1 y met le nom de son horloge ; un stratum 2 ou plus y met l'adresse de l'amont qu'il suit. C'est la seule façon publique de reconstituer qui dépend de qui — et donc de voir si la diversité affichée d'un pays est réelle ou si tout le monde suit la même pendule.

Cette page reconstitue une photo, pas une architecture. Elle ne dit pas comment un serveur est configuré : elle dit quel amont il suivait à l'instant précis où il nous a répondu. Pour les décomptes par pays et la concentration des opérateurs, voir la carte du NTP et du NTS.

4039
serveurs joignables
759
à horloge locale
3289
dont l'amont est visible
80
dépendants du plus suivi

Ces nombres sont des ordres de grandeur : le refid ne révèle qu'un amont par serveur, et le décompte est reconstitué depuis la base — à une ou deux unités près du jeu de données publié.

Cette page ne détaille que les dix amonts les plus suivis, et il faut lire ce qu'elle ne montre pas : sur 1 095 amonts distincts observés, 55,3 % (605) n'ont qu'un seul serveur NTP qui les suit.

Autrement dit : la concentration n'est pas là. Les dix plus gros ne portent que 13,2 % des 3 292 dépendances visibles — le reste est une poussière d'amonts à un ou deux suiveurs. Le risque systémique, s'il existe, ne se lit pas ici : il se lirait dans les horloges, où quelques étiquettes couvrent la majorité des stratum 1.

Les amonts les plus suivis

C'est ici que se lit une concentration que la carte ne montre pas : un pays peut afficher quarante opérateurs distincts dont trente-huit suivent la même horloge. Le premier de cette liste concentre 2.4 % des dépendances visibles.

Ce pourcentage est une proportion des sources ÉLUES — pas des sources configurées, et pas une part de marché. Le refid ne dit pas sur quoi un serveur est configuré : il dit laquelle de ses sources il avait élue à l'instant de sa réponse. Un serveur qui en déclare quatre n'en montre qu'une, et le dénominateur de ce tableau ne compte que des élections, une par serveur.

Tout y est sous-estimé, et des deux côtés à la fois. La part de l'amont de tête minore sa participation réelle dans le temps : il sert aussi l'heure aux instants où nous ne l'avons pas surpris élu. Et la part des autres amonts minore la leur encore davantage : ceux qui n'étaient pas élus à cet instant n'apparaissent pas du tout. Aucun chiffre de cette page ne peut donc être lu comme un maximum.

Si l'amont de tête tombait, ses suiveurs basculeraient sur des machines qui n'apparaissent nulle part sur cette page — et un serveur de repli peut d'ailleurs faire remonter directement le stratum 1 dans son refid, changeant la forme de l'arbre sans qu'aucune dépendance nouvelle soit née. Une mesure unique ne voit qu'une élection ; c'est l'accumulation de campagnes qui verra les basculements et approchera le vivier plutôt que l'élu. La question « qui suit qui aujourd'hui » n'est pas encore « qui peut suivre qui », qui est celle du risque.

Amontstratedépendantspartadresse suivieson horloge
ntp.ix.ru stratum 1 (relevé antérieur) 80 2.4 % 194.190.168.1 pas d'horloge locale : il suit un autre serveur
ptbtime1.ptb.de stratum 1 (relevé antérieur) 76 2.3 % 2001:638:610:be01::108
suivi en IPv6, condensé cassé
pas d'horloge locale : il suit un autre serveur
ntp2.rrze.uni-erlangen.de stratum 1 (relevé antérieur) 50 1.5 % 131.188.3.222 pas d'horloge locale : il suit un autre serveur
ntp-p1.obspm.fr stratum 1 (relevé antérieur) 40 1.2 % 145.238.80.80 pas d'horloge locale : il suit un autre serveur
80.72.67.48
refid non résolu
jamais sondé par nous 36 1.1 % 80.72.67.48 non mesurée ici
anon-70176311 stratum 1 (relevé antérieur) 36 1.1 % 82.35.162.146 pas d'horloge locale : il suit un autre serveur
anon-2a83ae6a stratum 1 (relevé antérieur) 31 0.9 % 82.43.52.28 pas d'horloge locale : il suit un autre serveur
ntp1.rrze.uni-erlangen.de stratum 1 (relevé antérieur) 30 0.9 % 131.188.3.221 pas d'horloge locale : il suit un autre serveur
ntp0.rrze.uni-erlangen.de stratum 1 (relevé antérieur) 29 0.9 % 131.188.3.220 pas d'horloge locale : il suit un autre serveur
ntp1.nl.uu.net stratum 1 (relevé antérieur) 28 0.9 % 193.79.237.14 pas d'horloge locale : il suit un autre serveur

Les 10 amonts les plus suivis, sur 1095 distincts. Ils portent 436 des 3292 dépendances visibles. Le reste n'est pas une queue négligeable : plus de la moitié des amonts n'ont qu'un seul dépendant. Le jeu complet est dans le JSON de cette campagne.

Ce qui n'est pas nommé ici ne l'est pas par accident. Un serveur que notre inventaire marque comme non publié paraît sous un pseudonyme stable et sans son adresse ; un amont découvert par le seul refid d'un tiers n'est nommé que si son nom porte un mot de service et qu'une liste publique le cite déjà. Sinon, seule l'adresse paraît — elle est ce que le refid contient, et quiconque interroge le même serveur la lit aussi.

Les horloges déclarées

Un stratum 1 ne suit personne : il met dans son refid une étiquette de quatre caractères qui nomme sa référence physique. Il la déclare — rien dans le protocole ne l'atteste, et un serveur mal configuré affichera GPS avec la même assurance qu'un serveur relié à un récepteur.

Étiquetteserveurspartce que c'estobservée chez
PPS 236 31.7 % Impulsion par seconde — un signal électrique, sans indication de la date
GPS 180 24.2 % Récepteur GPS, avec ou sans PPS
GNSS 38 5.1 % Récepteur multi-constellations (GPS, Galileo, GLONASS, BeiDou)
MRS 36 4.8 % Source multi-références — gamme Meinberg « Multi Reference Source », qui combine plusieurs signaux
GPSs 22 3 % Étiquette propre à l'opérateur ou à son matériel — le protocole ne la normalise pas
PHC0 21 2.8 % Étiquette propre à l'opérateur ou à son matériel — le protocole ne la normalise pas
MBGh 20 2.7 % Matériel Meinberg
PPS0 18 2.4 % Impulsion par seconde, entrée 0
NIST 16 2.2 % National Institute of Standards and Technology, métrologie américaine
SHM 10 1.3 % Étiquette propre à l'opérateur ou à son matériel — le protocole ne la normalise pas
ATOM 9 1.2 % Horloge atomique locale, ou signal PPS qualifié comme tel
PZF 9 1.2 % Récepteur Meinberg DCF77 à phase
DCF 8 1.1 % DCF77, l'émetteur allemand en ondes longues
TMNL 7 0.9 % Étiquette propre à l'opérateur ou à son matériel — le protocole ne la normalise pas
kPPS 6 0.8 % Impulsion par seconde traitée par le noyau, plus stable qu'en espace utilisateur
NICT 5 0.7 % Étiquette propre à l'opérateur ou à son matériel — le protocole ne la normalise pas

Les amonts IPv6, et pourquoi ils faillirent nous tromper

Le champ refid fait quatre octets. Une adresse IPv6 en fait seize. Quand un serveur suit un amont en IPv6, la RFC 5905 lui fait donc publier les quatre premiers octets du condensé MD5 de l'adresse. Le résultat ressemble à une adresse IPv4 et n'en est pas une.

Notre campagne en contient : huit serveurs semblaient dépendre de 29.88.99.4, une adresse du ministère de la défense américain qui n'a jamais servi l'heure à personne. Compter ça comme une dépendance aurait fabriqué un point de concentration inexistant.

On les résout, et sans force brute. Chercher l'adresse derrière un condensé demanderait de balayer l'espace IPv6 ; calculer le condensé des adresses que nous connaissons déjà ne coûte qu'une résolution DNS par nom. Vérification indépendante : chronyc tracking affiche lui-même la correspondance, sous la forme Reference ID : ED11CC5F (2001:638:610:be01::108).

Le piège n'est pas là où on l'attendait. Un condensé n'est pas tenu de tomber dans une plage réservée : 84.138.115.198 est une adresse Deutsche Telekom qui porte un nom inverse d'abonné, et c'est le condensé de 2001:2035:0:1a34::3 — l'un de nos propres serveurs. Tant que le dictionnaire n'était consulté que pour les adresses invraisemblables, ces refids-là passaient pour de vraies dépendances et fabriquaient des points de concentration qui n'existaient pas. Il est désormais consulté pour tout refid, et chaque résolution est confrontée à un second témoin indépendant : un suiveur se tient exactement un cran au-dessus de son amont.

Tout ce qui n'est pas adressable n'est pas un condensé. Certains serveurs publient une adresse privée parce qu'ils suivent réellement un amont interne — 169.254.169.123 chez AWS, 10.219.8.4 chez Cloudflare, 192.168.33.131 au LAAS. Ce n'est pas une énigme à résoudre, c'est un renseignement : ces opérateurs tiennent leur propre référence et ne dépendent publiquement de personne.

Ce que cet arbre ne dit pas

  • Ce n'est pas une configuration. Le refid donne l'amont suivi à l'instant de la réponse. Un serveur configuré avec quatre sources n'en montre qu'une, et il en changera à la prochaine resélection. L'arbre est un minorant des dépendances réelles.
  • Une horloge déclarée n'est pas une horloge vérifiée. GPS dans un refid est une affirmation de l'opérateur, pas une preuve.
  • Un amont hors de notre inventaire reste sans nom. Et cela n'a rien de propre aux stratum 2 : nous ne mesurons pas tous les stratum 1 du monde non plus. Un amont que nous n'avons jamais sondé paraît donc par son adresse, sans strate ni horloge — ce qui ne dit rien contre lui.
  • Le pair mutuel restera hors d'atteinte. En association symétrique (peer, et non server), deux machines de même strate se citent l'une l'autre. Nous ne pouvons pas vérifier la réciprocité depuis l'extérieur : quand un condensé désigne une machine de MÊME strate, nous ne créons pas de lien et nous inscrivons une anomalie. C'est un angle mort assumé, pas une limite qu'une mesure supplémentaire lèverait.
  • Ce qui ne tient que par le condensé, et combien. 0 liens sur 3289 viennent d'un condensé cassé ; parmi eux 0 sont corroborés par la strate, et 0 reposent sur le seul condensé. Le risque de collision sur quatre octets ne se juge pas dans l'absolu mais par rapport à notre corpus : c'est là qu'il faudrait deux accidents simultanés pour tromper le premier groupe, et un seul pour tromper le second.
  • Une zone du pool n'est pas une machine. hu.pool.ntp.org rend un membre au hasard à chaque résolution : la strate relevée et le refid lu peuvent venir de deux machines différentes. Ces noms sont écartés de l'arbre — 0 pour cette campagne — parce que leur dépendance n'est attribuable à aucun serveur nommable.
  • Le périmètre est le nôtre. Nous mesurons l'Europe en priorité ; un arbre construit sur un autre inventaire aurait d'autres racines. Voir la méthode de la carte.

Les données

Tout ce qui est affiché ici se recalcule depuis ce fichier, publié sous CC BY 4.0 :

Votre serveur manque ? Déclarez-le dans notre dépôt ouvert : plus l'inventaire est large, moins il reste d'amonts anonymes dans cet arbre.

Outils NTP gratuits

Trois outils indépendants pour diagnostiquer votre synchronisation de temps :

Ce que ces chaînes impliquent

Cet arbre dit qui suit qui. Il ne dit pas si ce lien est authentifié — le refid nomme une source, jamais un transport. Ce que cette limite change pour l'audit et la traçabilité est traité à part : le NTS doit-il se prouver de bout en bout ?