[ntp] Écart de l'heure constaté sur 2 machines avec la même configuration
Le
Francois Lafont

Bonjour à tous,
J'ai deux machines, une Squeeze et l'autre une Ubuntu Precise. Ce sont des OS différents mais je pense que, dans le cas présent, ça n'a pas d'importance. Sur les deux machines, j'ai installé le paquet ntp et j'ai mis la même configuration dans le fichier /etc/ntp.conf à savoir :
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
# Enable this if you want statistics to be logged.
#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
# You do need to talk to an NTP server or two (or three).
server ntp1.proxad.net
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
J'ai redémarré le service ntp sur les deux machines après modification de la configuration.
Au départ, juste après le redémarrage des services ntp, j'ai bien mes deux machines qui ont la même heure (à une dizaine de secondes près). Mais au bout d'un certain temps (pas très longtemps, à peine une heure ou deux), je me retrouve avec un décalage de l'heure entre les deux machines qui peut atteindre 20s voire 30s.
J'ai tenté aussi de mettre dans la configuration de ntp (des deux machines) 4 serveurs de temps (par exemple avec les {0,1,2,3}.fr.pool.ntp.org) mais j'ai aussi le même phénomène qui finit par se produire.
Dans mon esprit, ntp est un truc assez précis et je pensais que j'aurais deux machines à la même heure à la seconde près les doigts dans le nez.
Est-ce que j'en demande trop ?
Ou bien je ne fais pas ce qu'il faut au niveau de la configuration ?
Pour info, sur la Squeeze j'ai :
~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p2
et sur la Precise j'ai :
~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p3
ntpd 4.2.6p3@1.2290-o Tue Jun 5 20:12:08 UTC 2012 (1)
Merci d'avance pour votre aide.
--
François Lafont
J'ai deux machines, une Squeeze et l'autre une Ubuntu Precise. Ce sont des OS différents mais je pense que, dans le cas présent, ça n'a pas d'importance. Sur les deux machines, j'ai installé le paquet ntp et j'ai mis la même configuration dans le fichier /etc/ntp.conf à savoir :
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
# Enable this if you want statistics to be logged.
#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
# You do need to talk to an NTP server or two (or three).
server ntp1.proxad.net
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
J'ai redémarré le service ntp sur les deux machines après modification de la configuration.
Au départ, juste après le redémarrage des services ntp, j'ai bien mes deux machines qui ont la même heure (à une dizaine de secondes près). Mais au bout d'un certain temps (pas très longtemps, à peine une heure ou deux), je me retrouve avec un décalage de l'heure entre les deux machines qui peut atteindre 20s voire 30s.
J'ai tenté aussi de mettre dans la configuration de ntp (des deux machines) 4 serveurs de temps (par exemple avec les {0,1,2,3}.fr.pool.ntp.org) mais j'ai aussi le même phénomène qui finit par se produire.
Dans mon esprit, ntp est un truc assez précis et je pensais que j'aurais deux machines à la même heure à la seconde près les doigts dans le nez.
Est-ce que j'en demande trop ?
Ou bien je ne fais pas ce qu'il faut au niveau de la configuration ?
Pour info, sur la Squeeze j'ai :
~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p2
et sur la Precise j'ai :
~# ntpd --version
ntpd - NTP daemon program - Ver. 4.2.6p3
ntpd 4.2.6p3@1.2290-o Tue Jun 5 20:12:08 UTC 2012 (1)
Merci d'avance pour votre aide.
--
François Lafont
C'est déjà considérablement énorme comme différence.
Tu es sur que les 2 se synchronisent bien avec le serveur ntp ?
ntpq -p sur chaque machine pour voir.
De plus, je ne sais pas pour tes distrib, mais sous gentoo, il y a 2
services à lancer au boot, ntp-client qui synchronise ponctuellement la
machine, et ntpd qui maintient cette synchro.
Parce que si j'ai bien compris, quand ntpd tombe sur un écart trop grand
(mais tout de même pas de cet ordre) il ne synchronise pas.
Bon, je me ferai sans doute corriger par les experts, mais peut-être que
ça peut t'aider à avancer.
NB : ça serait bien que ton soft de news coupe les lignes à une longueur
raisonnable.
Oui, c'est le même serveur, mais apparemment sur la Squeeze le synchronisation ne se fait pas.
~# ntpq -pn # sur la Ubuntu
remote refid st t when poll reach delay offset jitter
============================================================================= *212.27.60.17 91.121.154.174 3 u 118 512 377 20.227 -32.040 8.663
~# ntpq -pn # sur la Squeeze
remote refid st t when poll reach delay offset jitter
============================================================================= 212.27.60.17 91.121.154.174 3 u 49 64 7 20.585 165155. 1913.83
Sur la Squeeze, donc, pas de synchronisation. C'est curieux ?
Au fait, dans "offset" c'est quoi l'unité ? Des millisecondes ?
Sur Squeeze ou Precise, le seul service ntp* que j'ai est ntp, du coup ça ne me dit rien cette histoire de ntp-client.
Ah, c'est peut-être ça qui ce produit alors sur ma Squeeze ? Mais dans ce cas, il faut faire comment pour que ça tourne tout seul sans intervention humaine ? Car sur mes deux distributions je n'ai pas le "ntp-client" dont tu parles.
Merci de ton aide.
Ah, je l'avais paramétré ainsi auparavant mais avec les mobiles etc. ça formait coupures de lignes au mauvais endroit alors maintenant j'ai enlevé ce réglage. Je ne sais pas trop ce qui est le mieux.
--
François Lafont
Ce n'était pas ma question. Je me(te) demandais s'il n'y aurait pas un
"blocage" genre firewall qui empêcherait une des 2 machines de contacter
le serveur ntp, donc de s'y synchroniser.
Même réglage de date / fuseau hoaire sur les 2 machines ?
Que donne la commande date ?
Je ne sais pas/plus. Je ne suis vraiment pas un expert en la matière.
Oui, mais j'ai bien dit "sous gentoo". CE que je voulais dire par là,
c'était qu'il y avait un mécanisme pour mettre la machine à l'heure AVANT
de lancer un service de synchronisation permanente.
A la limite, pour tes tests, mets ta machine à l'heure manuellement comme
l'est l'autre machine, avec le bon fuseau et tout et tout, avant de
lancer ntpd.
Il faudra faire des recherches dans ce sens pour cette distribution. Mais
je ne saurai t'en dire plus.
Mouais, mais bon, scroller 3 ou 4 pages horizontalement pour lire
entièrement tes lignes, je t'avoue que je ne le ferai pas souvent ;).
le 10/05/2013 à 23:30, Christophe PEREZ a écrit dans le message
Je dirai plutôt des microsecondes
Le programme s'appelle ntpdate. De nos jours (ntp-4.x.x), on utilise
ntpd avec « -q », qui est équivalent à ntpdate, ou on le lance avec
« -g » qui fait automatiquement la correction si nécessaire.
--
Benoit Izac
Pas bon de faire un test juste après s'être connecté au wifi. J'avais
des valeurs entre 900 et 1000, ce qui ne pouvait pas être des
millisecondes (la précision de ntp est plus proche de la milliseconde
que de la seconde). Maintenant, c'est bien des millisecondes. ;-)
--
Benoit Izac
Dans ce cas, effectivement.
Effectivement...
En fait si, mais comme je ne l'avais pas utilisé pendant plusieurs
années, j'avais oublié cette option ;)
C'est vrai.
Franchement, aucune piste ne me vient à l'esprit pour l'instant.
Désolé.
Pas assez spécialiste pour répondre à ta question.
J'utilise de mon côté openntp
Visiblement sur l'une des deux machines, ntpd n'arrive pas à élire de
serveur ntp pour servir de référence et du coup n'effectue pas de
synchronisation ; c'est peut-être juste l'horloge locale qui est trop
mauvaise (dérive trop forte) et que ntpd refuse d'utiliser. Pour essayer
d'en connaître la raison tu peux te baser sur ces documents (en Anglais,
j'espère que ça peut convenir), en gros ça utilise ntpq (et
éventuellement ntpdc) avec des options particulières :
http://rags.wordpress.com/2011/10/17/how-to-debug-ntp-issues/
http://www.eecis.udel.edu/~mills/ntp/html/debug.html
Sinon il y a l'option -d à ntpd mais elle est indisponible dans
debian :-(
--
DW
Salut....... Est ce que les appels au serveur NTP sont envoyés
au même moment sur les deux machines ? Parce que si c'est le cas, le
serveur ne répondra pas à l'une des deux ! En fait il ne répondra pas à
celle qui arrive juste en deuxième. Et cela parce que pour lui il s'agit
de la même machine (même adresse IP) !!!
Il faut alors décaler les appels dans le temps sur tes deux
machines!
JM
Ça peut être aussi que l'horloge est trop décalée et que ntpd renonce.
On peut voir ça en relançant ntpd et en regardant les logs
Sous debian on peut installer le paquet ntpdate qui au boot sera exécuté
avant le lancement de ntpd pour donner une heure correcte à la machine,
ntpd se chargeant ensuite de la maintenir
--
Les simplifications c'est trop compliqué