Questions sur ntpd

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Questions sur ntpd

Messagepar Aneurysm » 19 Juin 2007 22:25

Bonjour à tous

Toujours en quête de personnalisation de mon sme, je m'attaque au service ntp et je bloque un peu.

Tout d'abord, une question toute bête : est-ce bien le même deamon qui fait client ntp et serveur ntp ?

Ensuite, j'aurai en fait besoin d'effectuer les modifications suivantes (dans l'ordre) :

1/ changer le port du serveur : par exemple le mettre sur 8123 au lieu de 123 (ça n'a rien donné en faisant config setprop ntpd UDPPort 8123)
2/ permettre l'accés extérieur au serveur ntp
3/ limiter cet accés à une seule adresse IP connue

En complément de ma question 1 : est-il envisageable que le serveur écoute à la fois sur le port 123 et le port 8123 ?

Pour les questions 1 et 2, l'utilisation de la redirection de port serait une solution. Mais j'ai cru comprendre que ce n'est pas le top question sécurité. D'autre part, je cherchai une solution plus "propre".

Je me demandais aussi si quelqu'un aurait déjà essayé de mettre en place un serveur Time Protocol (TP, traditionellement port 37 UDP ou TCP). L'intérêt dans mon cas est d'utiliser TCP plutôt que UDP.

Je vous remercie d'avance de me faire profiter de vos connaissances.

a+
Aneurysm
Matelot
Matelot
 
Messages: 4
Inscrit le: 19 Juin 2007 22:22

Messagepar jdh » 19 Juin 2007 23:02

Bonsoir.

Voilà des questions un peu surprenantes !

- ntp est un protocole permettant de mettre l'horloge à l'heure (=synchronisée avec un serveur de temps) et, ce, en continue (ou presque).

- ntp utilise généralement udp/123 et parfois tcp/123.

- ntp remplace d'autres anciennes techniques (par exemple time=tcp/37 ou udp/37). La raison de ce remplacement est la très nette supériorité du protocole (efficacité, charge réseau et surtout précision). ntp existe depuis plus de 2 décades !

- ntp est, de façon peu ordinaire, et un client et un serveur (question 1).


Est-il besoin de rappeler l'importance de l'heure et de la synchronisation des horloges entre serveurs ? (nécessaire indispensable pour activedir par exemple !)


Ce qu'il faut faire :

- utiliser ntp sur une seule machine (comme client de serveurs Internet, de préférence fr.pool.ntp.org, europe.pool.ntp.org ou pool.ntp.org),
- utiliser cette machine comme serveur de temps interne (en ajustant "broadcast").

Ce qu'il ne faut pas faire :

- ne pas utiliser ntp (forcément !)
- utiliser ntpdate dans un cron (ntp est bien plus "fin" et plus efficace)
- utiliser ntpdate en même temps que ntp (ne fonctionne pas puisque le port 123 est déjà utilisé !).


J'ajouterais : essayer de changer de port (pourquoi faire ?), ouvrir un accès à "son" ntp (tu as une horloge atomique à ta disposition ? quel intéret puisque les dns que j'indique sont déjà disponibles et fonctionnels).

Enfin, pourquoi essayer de ressusciter de vieux protocoles alors que TOUS les os (windows, linux, mac, unix) disposent de clients ntp ?

Bref un peu de lecture complétera : http://ntp.org
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar jibe » 20 Juin 2007 21:53

Salut,

jdh a écrit:de préférence fr.pool.ntp.org, europe.pool.ntp.org ou pool.ntp.org

Ah bon ? Et pourquoi donc ?

J'utilise pour ma part soit ntp.obspm.fr (vieille tradition que de demander l'heure à l'observatoire :wink: ) ou ntp.metas.ch (l'heure suisse, c'est bien la plus précise :lol: ). J'ai tout faux ? Image
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar jdh » 20 Juin 2007 22:37

Non Jibe, j'ai fait comme toi ... il y a quelques années.

A l'époque, il était même conseillé d'envoyer un mail au responsable (postmaster) de ces serveurs.

Le problème c'est qu'à force de faire des requêtes à des serveurs donnés de strate élevée, le trafic cumulé de tous les clients est devenu assez énorme alors que le nombre de serveurs ntp accessibles s'est accru avec la généralisation de carte de synchronisation horaire de type DCF77 par exemple.

(Pour être plus complet, Windows 2003 suggère d'adopter SNTP le protocole NTP de ... Microsoft).

Aujourd'hui grâce à round-robin, on peut répartir les requêtes ntp sur de nombreux serveurs au travers de noms génériques de ce type fr.pool.ntp.org. Par exemple, fr.pool.ntp.org contient 46 serveurs de temps. Autre exemple, on estimait en Avril 2006 qu'entre 2 et 6 millions de clients accédaient à pool.ntp.org. La bonne page sur le sujet est http://ntp.vuntz.net/ ou http://www.pool.ntp.org/


Je reviens sur ce conseil "ne pas utiliser ntpdate dans un cron". Cela fonctionne mais ce n'est pas idéal. Parce que cela génère un trafic "pic" sur les serveurs cibles : on choisit souvent une heure fixe à 00 et souvent le même serveur (paris meudon ou université de lyon). Le protocole ntp génère les requêtes ntp de façon plus répartie et avec un intervalle qui tient compte des écarts lors des requêtes précédentes. Ce protocole a pour but de limiter les requêtes au plus juste. Il y a un défaut, c'est qu'il est incapable de corriger des grands écarts (par exemple à l'intérieur d'un VMware avant d'appliquer les bons réglages !).


En définitive, il faut préférer ntp et utilisez les serveurs génériques (par pays) de pool.ntp.org.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar jibe » 20 Juin 2007 22:55

Ok, si robin des rondins de bois s'en mêle, je comprends !

Merci pour tes explications claires, détaillées et argumentées :)

Je viens de changer de serveur ntp :wink:

Concernant VMWare et autres VM, est-il raisonnable d'utiliser ntp ? Elles prennent l'heure de la machine hôte et il suffit que cette dernière soit synchronisée, non ? (pas étudié la question, mais ça me semblerait logique...)
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar jdh » 20 Juin 2007 23:05

J'ai (bêtement) installé une Debian Sarge dans un VMware sur un serveur Windows 2003 SBS.

Comme il survenait des problèmes que je ne comprenais pas dans la réception de mails dans le Postfix, j'ai pris ma montre et fait 2 "date" séparés d'une minute chrono : résultat seulement 40" d'écart à l'horloge système Linux !! (Sans que l'horloge Windows ne défaille !)

On trouve, en cherchant un tout petit peu, dans les forums VMware, que le problème est connu. Une histoire d'interruptions insuffisantes. Et 2 solutions sont proposées (à adapter à sa distribution favorite). Ouf !

Donc, malgré un serveur ntp sensé ajuster l'horloge système de l'OS, le manque d'interruptions lié à la virtualisation, l'horloge système (pas celle hardware) est totalement déréglé et peut redevenir parfaitement correcte au prix de légères modifs de paramètres.

En définitive, ce n'est pas parce qu'on utilise un protocole standard et fiable comme ntp que cela fonctionne.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

ET....

Messagepar fabinoff » 02 Juil 2007 11:01

juste par hasard, tu aurais les liens vers les 2 solutions proposées STP, car cela fait 6 mois que je remets mon SME à l'heure trois fois par semaine !! il perd jusqu'à 2 jours en moins de 2 jours !!
Tout vient à temps à qui sait attendre !!!
Avatar de l’utilisateur
fabinoff
Major
Major
 
Messages: 76
Inscrit le: 10 Juil 2003 00:00
Localisation: 71

Messagepar jdh » 02 Juil 2007 17:07

Tu n'as pas du bien cherché ou tu n'as pas utilisé les bons mots clés !

Par exemple :
http://keystoneit.wordpress.com/tag/vmware/ (les 2 solutions)
http://www.trustix.org/forum/showthread.php?t=151 (dernier post GSX=VMware Server)
http://kb.vmware.com/selfservice/viewCo ... nalId=1420 (knowledge base de VMware : le plus complet !)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Franck78 » 02 Juil 2007 18:02

@jdh, le matheux, comment faire pour perdre plus de temps qu'il n'en est passé....?

@fabinoff:
change la pile de la carte mére ou vérifie qu'elle est bien réglée. Le ntpd utilise "fudge 127.127.1.0 stratum 10" qui est l'horloge de la machine. Je ne sais pas si le réglage est conservé sur SME, mais perhaps une source de dérive en l'absence d'autre time source.
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar jdh » 02 Juil 2007 19:31

L'horloge système est en fait un compteur incrémenté par une interruption qui depuis l'AT (80286 en 1984) intervient 18,2 fois par seconde. On parle de "ticks". Les systèmes plus modernes qui permettent de gérer jusqu'à 256 interruptions (au lieu de 16) sont basés sur des circuits apic et lapic (la vitesse des ticks est plus grande me semble-t-il).

Le problème c'est que, un contexte de virtualisation, ces interruptions ne sont plus aussi régulières : il en manque. Si on enlève plus d'un tick sur 2, le compteur avance plus de 2 fois moins vite, donc le temps n'avance de moins de 30 secondes par minute réelle soit plus de 2 fois moins vite. CQFD.

La solution indiquée propose de supprimer la gestion de ces circuits d'interruption apic et lapic ou un obscur paramètre du fichier .vmx de la VM.


Dernier point, NTP n'est pas prévu pour corriger un aussi grand écart. Il est donc totalement illusoire de jouer avec ntp ou ntpdate. (Je rappelle qu'il faut utiliser ntp de préférence et ne pas utiliser ntpdate dans un cron, "c'est mal").


Cela te va, Franck78 ? :lol:


A noter la commande "hwclock --systohc" ou "hwclock --hctosys" qui peut servir à mettre à jour l'une ou l'autre des horloges système et matérielle (à partir de l'autre). (J'ai pas testé de mettre l'heure hardware dans une VM : cela doit mettre le bazar ?).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Franck78 » 02 Juil 2007 19:47

@jdh
"il perd jusqu'à 2 jours en moins de 2 jours " c'est surtout cette phase que je trouve originale ;-)

Pour les ticks et le 18.2 fois par secondes, t'inquiéte pas, je connais. Ca me rappele les routines assembleur des progs résidants de l'époque dos/window ;-)
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar jdh » 02 Juil 2007 20:12

Ah toi aussi, tu te rappelles la nécessité de sauvegarde dans la pile des valeurs des registres avant de rétablir la possibilité des interruptions (NMI ?) !

J'avais déjà cité un tel écart de temps dans un autre fil : 23" pour 1' réelle
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Aneurysm » 09 Juil 2007 19:50

Bonjour

Merci pour votre réponse, vos conseils. Et désolé de ne réapparaitre que maintenant.

Je ne pensais pas que mes questions aménerait à une telle discussion... tant mieux, c'est instructif


jdh a écrit:Bonsoir.

Voilà des questions un peu surprenantes !


N'est-ce pas ? Mais bon, des fois on a des obstacles difficiles à contourner autrement que par des bricolages saugrenus.


jdh a écrit:- ntp est, de façon peu ordinaire, et un client et un serveur (question 1).


Merci de cette précision. C'est bien ce que j'avais cru comprendre, mais un léger doute subsistait.


jdh a écrit:J'ajouterais : essayer de changer de port (pourquoi faire ?), ouvrir un accès à "son" ntp (tu as une horloge atomique à ta disposition ? quel intéret puisque les dns que j'indique sont déjà disponibles et fonctionnels).


non, pas d'horloge atomique dans mon salon :lol:

Je vais essayer d'expliquer pourquoi je pose ces questions :

Je cherche en fait à contourner des restrictions (débiles à mon sens, mais là n'est pas le problème) imposées par un firewall à un PC (notons le PC1). Bien entendu, impossible pour moi de faire évoluer ces restrictions.
Le traffic sortant de PC1 est limité à certains ports distants en TCP et un autre port distant en UDP. Bien entendu, le port 123 n'est pas dans le lot.
Par ailleurs, il est important pour moi que PC1 soit à l'heure (mais pas d'impératif de précision, c'est juste histoire que son décalage ne se compte pas en minutes:))

Mon idée est donc d'utiliser un serveur ntp qui utilise un port non standard. Et donc, d'utiliser mon "propre" serveur ntp : celui de mon ordinateur "maison", notons le PC2. PC2 est sous sme.
PC1 et PC2 ne sont pas sur le même LAN, ils ne peuvent communiquer que via internet. D'où l'intérêt d'ouvrir l'accès public à ce service. PC1 ayant une IP fixe, je cherche aussi à n'autoriser cet accès qu'à PC1.

Si je cherche à changer de port, c'est à cause des restrictions, soumises à PC1, ennoncées ci-dessus.

L'idée de faire écouter le serveur ntp de PC2 sur deux ports à la fois est du au fait que, malgrès ce que je cherche à faire (et en admettant que j'y arrive), je voudrais que les postes du LAN de PC2 puissent continuer à se synchroniser de manière standard (donc sur le port 123 de PC2)

jdh a écrit:Enfin, pourquoi essayer de ressusciter de vieux protocoles alors que TOUS les os (windows, linux, mac, unix) disposent de clients ntp ?


C'est vrai, à priori pas grand intérêt. Cependant :
- D'une part, comme je le disais, utiliser TCP plutôt que UDP pourrait être plus pratique (toujours rapport à ces histoires de firewall)
- D'autre part, avant de passer à SME (j'avais un routeur "matériel" et un "pseudo-serveur" sous XP), c'est cette méthode que j'utilisais. Ca suffisait largement à mon besoin. Du coup, je me demandais "pourquoi ne pas refaire la même ?". Bon, OK, c'est pas bien d'être rétrograde :lol:

A part ca, je suis bien d'accord, je ne vois pas d'intéret à ne pas utiliser ntp.


jdh a écrit:Bref un peu de lecture complétera : http://ntp.org


Bien, j'irai me documenter là bas. En espérant que je trouve une solution satisfaisante et à peu près propre.

Merci encore de vous être penché sur mon problème
Aneurysm
Matelot
Matelot
 
Messages: 4
Inscrit le: 19 Juin 2007 22:22

Messagepar jdh » 09 Juil 2007 21:43

Si le PC en question est sous windows et dans un domaine, un simple "net time \\(domaine controleur) /set" synchronise l'horloge avec celle de référence.

Il suffit alors de voir l'admin réseau, et de lui dire, très perfidement, que son controleur de dmaine n'est pas synchronisée avec une horloge atomique. Et hop, le tour est joué.

Aucun firewall à violenter, pas d'astuces foireuses à inventer, que du simple ...
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Aneurysm » 09 Juil 2007 22:05

Bonsoir

Effectivement, c'est une autre piste, moins "prise de tête". Je vais donc prospecter un peu plus sérieusement de ce coté là (j'avais déjà commencé, mais sans grande conviction).

Merci
Aneurysm
Matelot
Matelot
 
Messages: 4
Inscrit le: 19 Juin 2007 22:22


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité