Configuration NTP appropriée pour quelques serveurs


9

J'ai environ 20 serveurs Linux dans un petit réseau et j'ai besoin que leurs horloges soient assez proches les unes des autres (par exemple à moins de 20 ms). J'ai commencé avec chacun d'eux synchronisé avec europe.pool.ntp.org et le travail est terminé.

Maintenant, j'ai deux questions:

  1. Suis-je un fardeau notable pour la piscine? Est-ce que cela fait une différence notable pour le pool si je frappe depuis 20 serveurs ou depuis 2?
  2. Si cela fait une différence, quelle est la configuration / configuration qui gardera mon sous-réseau synchronisé et la piscine sous une charge légère? Il existe des directives pour les grands réseaux ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ) mais je n'en ai trouvé aucune pour les petits réseaux.

1
Habituellement, vous devez avoir un ou deux serveurs de temps internes avec lesquels vous synchronisez votre réseau interne. Vos deux serveurs internes peuvent avoir une peerrelation. Voir par exemple ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101
Marki

Merci pour les commentaires et le lien Marki. Concernant le lien il note que c'est pour "un immense réseau" ce qui n'est certainement pas mon cas. Concernant votre suggestion: je ne pense pas qu'un serveur de temps interne soit une bonne idée (point de défaillance unique), mais 2 ressemblent à une bonne idée. Pouvez-vous expliquer ce qu'est une relation entre pairs (ou fournir un lien)?
ndemou

Il faut aussi noter que je ne suis définitivement pas un expert NTP - loin de là :-)
ndemou

Cela ne fera pas de mal si vous cherchez un peu sur Google ce qu'est un pair. Notez que ce site ne sert à rien sur un plateau d'argent lorsque les gens ne font aucune recherche eux-mêmes.
Marki

Ne vous méprenez pas, j'ai fait mes devoirs, mais le NTP est l'un de ces sujets où la plupart de la documentation est soit trop avalée (c'est le ntp.conf - il suffit de l'utiliser) ou trop profonde (50 pages de théorie du fonctionnement à lire avant vous peut commencer à saisir les faits de base).
ndemou

Réponses:


8
  1. Suis-je un fardeau notable pour la piscine? Est-ce que cela fait une différence notable pour le pool si je frappe depuis 20 serveurs ou depuis 2?

Étant donné que le pool a constamment besoin de serveurs pendant de nombreuses années (voir [1]), je dirais que même si 2 ou 20 serveurs ne font pas vraiment de différence, vous devez toujours vous rappeler que vous n'êtes pas seul. Donc, vous feriez mieux de penser à dire 1000 administrateurs, auquel cas nous parlons de 2000 ou 20000 serveurs et cela fait une différence.

  1. Si cela fait une différence, quelle est la configuration / configuration qui gardera mon sous-réseau synchronisé et la piscine sous une charge légère?

Vous devez synchroniser deux [2] serveurs de votre réseau avec le pool (appelons-les serveurs NTP principaux ), puis synchroniser tous les autres serveurs avec ces deux. Cette méthode a également l'avantage que le temps entre tous vos serveurs sera plus proche (en moins de 1 ms). Ceci est conforme aux meilleures pratiques de l'IETF .

1) La configuration des serveurs NTP principaux

Remplacez les lignes serveret restrictde votre ntp [d] .conf par ce qui suit et conservez le reste à vos valeurs par défaut de distribution [3]:

server 10.11.12.1  iburst peer
#      ^^^^^^^^^^^
#      The LAN IP of the _other_ Primary NTP server 
server 0.europe.pool.ntp.org 
server 1.europe.pool.ntp.org 
server 2.europe.pool.ntp.org 
server 3.europe.pool.ntp.org 
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

Veuillez noter que cette configuration permet également aux hôtes de partout sur Internet d'interroger l'heure de votre hôte via des requêtes NTP. Utilisez votre pare - feu si vous ne le souhaitez pas. Dans mon exemple, 10.11.12.1 et 10.11.12.2 sont les adresses IP des serveurs NTP principaux (ils ont deux cartes réseau, l'une face à Internet public et l'autre au sous-réseau 10.11.12.x local). Chaque serveur NTP principal a l'autre déclaré comme homologue (homologue signifie à la fois serveur et client - vous utilisez l'autre hôte comme source de temps et l'autre hôte vous utilise également comme source de temps). Ajustez donc l'IP sur la 1ère ligne pour que la configuration de chaque serveur NTP principal pointe vers l' autre en tant que pair. Voir [4] concernant mon choix d'utiliser 4 serveurs.

2) La configuration de tous les autres serveurs

2A) Si vous avez deux interfaces réseau

Vous feriez mieux d'utiliser la 2ème interface pour créer un sous-réseau local (par exemple 10.11.12.0/24) et l'utiliser pour les requêtes NTP. Dans ce cas, les lignes de restriction peuvent être plus serrées. Remplacez à nouveau les lignes serveret restrictde votre ntp [d] .conf par ce qui suit et conservez le reste à vos valeurs par défaut de distribution [3]:

restrict -4 default ignore
restrict -6 default ignore
restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

# Only use our Primary NTP Servers
server 10.11.12.1 iburst
server 10.11.12.2 iburst
#      ^^^^^^^^^^
#      The IPs of your 2 Primary NTP Servers

2B) Si vous n'avez pas deux interfaces réseau

Vous devez utiliser les lignes de restriction ci-dessous (et lire la note sur l'utilisation de votre pare-feu pour bloquer l'accès à vos serveurs NTP ci-dessus). Remplacez à nouveau les lignes serveret restrictde votre ntp [d] .conf par ce qui suit et conservez le reste à vos valeurs par défaut de distribution [3]:

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

# Only use our Primary NTP Servers
server 10.11.12.1 iburst
server 10.11.12.2 iburst
#      ^^^^^^^^^^
#      The IPs of your 2 Primary NTP Servers

Remarques

[1] De 2006 à 2012, ils demandent constamment plus de serveurs à rejoindre: la demande de 2006 , celle de 2009 et celle de 2012 . Consultez www.pool.ntp.org pour les mises à jour sur l'état actuel.

[2] Deux serveurs NTP principaux sont uniquement suggérés comme un moyen simple d'avoir une redondance sans arrangements compliqués de haute disponibilité. Vous pouvez opter pour 3 ou 4 pour d'autres raisons (lire à nouveau les meilleures pratiques de l' IETF )

[3] Dans la pratique et peu importe votre distribution, la seule autre chose que vous devez inclure dans votre configuration ntpd est une ligne définissant un répertoire pour mettre un fichier de dérive et un nom pour lui - par exemple driftfile /var/lib/ntp/ntp.drift. J'ai testé ma solution dans CentOS, Debian et Ubuntu. Je suppose que cela fonctionne dans la plupart des autres distributions.

[4] J'ai configuré 4 serveurs de pool en suivant les meilleures pratiques . La configuration de plus de 4 serveurs est techniquement acceptée, mais vous augmenterez la charge du pool NTP pour un gain de disponibilité discutable, alors ne le faites pas. Dans les meilleures pratiques, je vois que "à partir de ntp-4.2.6, la directive 'pool' produira" suffisamment "d'associations pour fournir un service de temps robuste", donc si vous utilisez .pool. adresses comme je le fais ici et ntp> = 4.2.6 le nombre exact de lignes de serveur n'a probablement pas d'importance.

Rant Oh! Je déteste NTP (sauf que j'aime que ça marche). La documentation officielle est pleine d'informations obsolètes et ils ont "comment puis-je l'utiliser?" informations mélangées avec des détails scientifiques sur les éléments internes. Et je déteste aussi ce que restrict 127.0.0.1signifie vraimentallow everything for 127.0.0.1


Historique des mises à jour

J'ai supprimé l' iburstoption de la configuration des serveurs NTP locaux car leur convivialité envers le pool est discutable. (voir les commentaires). Les supprimer ne fait qu'ajouter quelques minutes de temps d'attente à la première synchronisation.


Crédits

Les commentaires et réponses des utilisateurs SF Marki et Sven ont fourni un bon point de départ pour cette réponse. Merci à tous les deux.


1
+1 de moi. Je gère un serveur de pool, et je ne peux pas trop insister sur la justesse de ce post, sauf qu'il ibursts'agit d'un paramètre ennuyeux à utiliser sur les serveurs publics, alors ne le faites pas (même si ce n'est pas aussi ennuyeux que burst). Les administrateurs de serveurs de pool vous rendent service sans savoir qui vous êtes et sans aucune récompense pour eux-mêmes, uniquement pour le meilleur fonctionnement d'Internet. Si vous, en travaillant plus dur, pouvez leur faciliter la vie, vous leur devez de le faire.
MadHatter

Merci MadHatter. En ce qui concerne iburst, je pensais que c'était OK pour les serveurs "toujours allumés" typiques. Avez-vous des liens pour soutenir votre conseil de ne pas utiliser cette option? (J'ai vérifié www.pool.ntp.org/en/use.html et également googlé pendant 10 minutes mais je n'ai rien trouvé de concluant)
ndemou

Je partagerai avec plaisir mes statistiques de trafic; un échantillon rapide suggère que les hôtes mal configurés, c'est-à-dire les hôtes qui transmettent plus souvent qu'une fois par minute, représentent environ 45% de mes clients mais sont responsables d'environ 75% du trafic. Cela proviendra principalement de serveurs qui utilisent burst, mais iburstdit même (à partir de la ntpdpage de manuel) " avec cette option, une volée de messages est échangée pour nettoyer les données et régler l'horloge dans environ 10 secondes ". Utiliser iburstdit " régler rapidement mon horloge est plus important que de maintenir une charge faible sur votre serveur ", et c'est impoli.
MadHatter

Vous avez raison à propos de la "volée de messages" mais pour autant que je puisse comprendre, cette rafale ne se produira qu'au démarrage du démon NTP et (peut-être) si le serveur de pool est momentanément inaccessible (je viens de l'initiale). Voici un résumé de la page NTPd d'Arch wiki: "L'option iburst est recommandée, et envoie une rafale de paquets uniquement si elle ne peut pas obtenir de connexion avec la première tentative. L'option rafale le fait toujours, même à la première tentative, et ne doit jamais être utilisé sans autorisation explicite et peut entraîner la mise sur liste noire ".
ndemou

Vous avez raison, ce qui iburstest beaucoup moins répréhensible que burst. Mon point est que lorsque vous utilisez gratuitement les ressources de quelqu'un d'autre, il y a un argument selon lequel vous devriez vous pencher en arrière pour être prévenant; le simple fait de ne pas être activement inconsidéré peut ne pas suffire. Je suis d'accord pour dire qu'il s'agit de la meilleure pratique, mais ces documents ne tiennent pas compte du fait que les serveurs en amont auxquels vous vous synchronisez font partie de votre entreprise ou non; ils dictent les meilleures pratiques techniques (qui, je suis d'accord, à utiliser iburst) plutôt que les meilleures pratiques sociales .
MadHatter

6

L'approche habituelle consiste à utiliser une configuration à plusieurs niveaux - vous synchronisez un ou deux serveurs de votre réseau avec le pool, puis vous les utilisez comme source d'heure locale. Ces niveaux sont appelés strates dans le jargon NTP.

Pensez-y également: si vous faites cela comme vous l'avez décrit, ce ne sera pas vraiment perceptible, mais si 1000 sites de votre taille démarrent cela, vous vous retrouvez avec 20k demandes pour la plupart inutiles et à un moment donné, cela devient perceptible.

Lisez http://en.wikipedia.org/wiki/Network_Time_Protocol


Mais considérons le point de vue alternatif - vingt clients de plus que des millions de clients existants ne sont presque rien.
200_success

2
Comme il l'a dit, si tout le monde commence à penser comme ça ...
Marki

Mais à quel moment vous arrêtez-vous? Pensez à tous les appareils de classe Linksys livrés préconfigurés pour être utilisés pool.ntp.org. Certes, le trafic DNS dépasse le trafic NTP. Devez-vous également mettre en cache DNS localement? Même le trafic DNS est susceptible d'être minuscule par rapport au reste de votre consommation de bande passante.
200_success

@ 200_success: Cela ne vaut pas la peine d'être débattu, mais la plupart de ces appareils de "classe Linksys" mettent en cache le trafic DNS localement, et ils interrogent leur DNS ISP, qui met également en cache ...
Sven

1
Si Linksys expédie des appareils qui se synchronisent, ntp.pool.orgils violent les conditions du pool ; s'ils l'ont fait correctement en postulant pour une zone de fournisseur (voir lien), ils devront également contribuer au projet de pool proportionnellement à leur charge (encore une fois, voir lien).
MadHatter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.