Ich habe ungefähr 20 Linux-Server in einem kleinen Netzwerk und ich brauche ihre Uhren anständig nahe beieinander (z. B. innerhalb von 20 ms). Ich habe mit jedem von ihnen begonnen, der mit europe.pool.ntp.org synchronisiert ist, und die Arbeit ist erledigt.
Jetzt habe ich zwei Fragen:
- Bin ich eine spürbare Belastung für den Pool? Dh macht es einen merklichen Unterschied für den Pool, wenn ich von 20 Servern oder von 2 aus treffe?
- Wenn es einen Unterschied macht, wie ist die Einrichtung / Konfiguration, die mein Subnetz synchronisiert und den Pool unter geringer Last hält? Es gibt Richtlinien für große Netzwerke ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ), aber ich habe keine für kleine Netzwerke gefunden.
peer
Beziehung haben. Siehe zum Beispiel ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101Antworten:
Angesichts der Tatsache, dass der Pool seit vielen Jahren ständig Server benötigt (siehe [1]), würde ich sagen, dass Sie immer daran denken sollten, dass Sie nicht allein sind, obwohl 2 oder 20 Server keinen wirklichen Unterschied machen. Denken Sie also besser an 1000 Administratoren. In diesem Fall handelt es sich um 2000 oder 20000 Server, und dies macht einen Unterschied.
Sie müssen zwei [2] Server in Ihrem Netzwerk mit dem Pool synchronisieren (nennen wir sie primäre NTP-Server ) und dann alle anderen Server mit diesen beiden synchronisieren. Diese Methode hat auch den Vorteil, dass die Zeit zwischen all Ihren Servern besser übereinstimmt (innerhalb von weniger als 1 ms). Dies entspricht den Best Practices der IETF .
1) Die Konfiguration für die primären NTP-Server
Ersetzen Sie die
server
undrestrict
-Zeilen Ihrer ntp [d] .conf durch die folgenden und behalten Sie den Rest bei Ihren Verteilungsstandards [3]:Bitte beachten Sie, dass diese Konfiguration auch Hosts aus dem gesamten Internet ermöglicht, Ihre Hostzeit über NTP-Abfragen abzufragen. Verwenden Sie Ihre Firewall, wenn Sie nicht möchten. In meinem Beispiel sind 10.11.12.1 und 10.11.12.2 die IPs der primären NTP-Server (sie haben zwei Netzwerkkarten, eine mit Blick auf das öffentliche Internet und eine mit dem lokalen Subnetz 10.11.12.x). Auf jedem primären NTP-Server ist der andere als Peer deklariert (Peer bedeutet im Grunde sowohl Server als auch Client - Sie verwenden den anderen Host als Zeitquelle und der andere Host verwendet Sie auch als Zeitquelle). So stellen Sie die IP auf der 1. Zeile , so dass die Konfiguration der einzelnen Primary NTP Server verweist auf die andere als Peer. Siehe [4] bezüglich meiner Wahl, 4 Server zu verwenden.
2) Die Konfiguration für alle anderen Server
2A) Wenn Sie zwei Netzwerkschnittstellen haben
Verwenden Sie besser die 2. Schnittstelle, um ein lokales Subnetz (z. B.
10.11.12.0/24
) zu erstellen und dieses für NTP-Abfragen zu verwenden. In diesem Fall können die Begrenzungslinien enger sein. Ersetzen Sie also erneut die Zeilenserver
undrestrict
Ihrer ntp [d] .conf durch die folgenden und behalten Sie den Rest bei Ihren Distributionsstandards [3]:2B) Wenn Sie nicht über zwei Netzwerkschnittstellen verfügen
Sie sollten die folgenden Beschränkungszeilen verwenden (und den Hinweis zur Verwendung Ihrer Firewall zum Blockieren des Zugriffs auf Ihre NTP-Server oben lesen). Ersetzen Sie also erneut die Zeilen
server
undrestrict
Ihrer ntp [d] .conf durch die folgenden und behalten Sie den Rest bei Ihren Distributionsstandards [3]:Anmerkungen
[1] Von 2006 bis 2012 fordern sie ständig weitere Server an: die 2006- Anfrage, die 2009- Anfrage und die 2012- Anfrage . Unter www.pool.ntp.org finden Sie aktuelle Informationen zum aktuellen Status.
[2] Zwei primäre NTP-Server werden nur als einfache Möglichkeit zur Redundanz ohne komplizierte Hochverfügbarkeitsvereinbarungen vorgeschlagen. Sie können sich aus anderen Gründen für 3 oder 4 entscheiden (lesen Sie erneut die Best Practices der IETF ).
[3] In der Praxis und unabhängig von Ihrer Distribution ist das einzige, was Sie in Ihre ntpd-Konfiguration aufnehmen müssen, eine Zeile, die ein Verzeichnis zum Einfügen einer Driftdatei und einen Namen dafür definiert - z
driftfile /var/lib/ntp/ntp.drift
. Ich habe meine Lösung in CentOS, Debian und Ubuntu getestet. Ich denke, es funktioniert in den meisten anderen Distributionen.[4] Ich habe 4 Poolserver gemäß den Best Practices konfiguriert . Das Konfigurieren von mehr als 4 Servern wird technisch akzeptiert, aber Sie erhöhen die Auslastung des NTP-Pools, um einen fragwürdigen Anstieg der Verfügbarkeit zu erzielen. Tun Sie dies also nicht. In den Best Practices sehe ich, dass "ab ntp-4.2.6 die 'pool'-Direktive" genug "Assoziationen aufwirbelt, um einen robusten Zeitdienst bereitzustellen" , wenn Sie also .pool verwenden. Adressen wie hier und ntp> = 4.2.6 Die genaue Anzahl der Serverleitungen spielt wahrscheinlich keine Rolle.
Rant Oh! Ich hasse NTP (außer dass ich es mag, dass es funktioniert). Die offizielle Dokumentation ist voll von veralteten Informationen und sie haben "Wie verwende ich sie?" Informationen gemischt mit wissenschaftlichen Details über die Interna. Und ich hasse es auch, wie es
restrict 127.0.0.1
wirklich bedeutetallow everything for 127.0.0.1
Verlauf der Updates
Ich habe die
iburst
Option aus der Konfiguration der lokalen NTP-Server entfernt, da ihre Freundlichkeit für den Pool umstritten ist. (Zeige Kommentare). Wenn Sie sie entfernen, dauert die erste Synchronisierung nur einige Minuten .Credits
Kommentare und Antworten der SF-Benutzer Marki und Sven lieferten einen guten Ausgangspunkt für diese Antwort. Vielen Dank an beide.
quelle
iburst
ein ärgerlicher Parameter ist, der auf öffentlichen Servern verwendet werden muss. Bitte nicht (obwohl es nicht so ärgerlich ist wieburst
). Pool-Server-Administratoren tun Ihnen einen Gefallen, ohne zu wissen, wer Sie sind, und ohne sich selbst zu belohnen, nur um das Internet besser laufen zu lassen. Wenn Sie durch härteres Arbeiten ihr Leben leichter machen können, sind Sie es ihnen schuldig.burst
,iburst
sagt aber sogar (von derntpd
Manpage) " mit dieser Option wird eine Salve von Nachrichten ausgetauscht, um die Daten zu pflegen und die Uhr in ungefähr 10s einzustellen ". Die Verwendung voniburst
" Meine Uhr schnell einstellen ist wichtiger als die Last auf Ihrem Server niedrig zu halten " ist unhöflich.iburst
ist viel weniger zu beanstanden alsburst
. Mein Punkt ist, dass es ein Argument gibt, wenn Sie die Ressource eines anderen kostenlos nutzen, dass Sie sich nach hinten beugen sollten, um Rücksicht zu nehmen. Nur nicht aktiv rücksichtslos zu sein, kann nicht als ausreichend angesehen werden. Ich bin damit einverstanden, dass dies als bewährte Methode bezeichnet wird. In diesen Dokumenten wird jedoch nicht berücksichtigt, ob die Upstream-Server, mit denen Sie synchronisieren, Teil Ihres Unternehmens sind oder nicht. Sie diktieren eher technische Best Practices (die, wie ich zustimme, zu verwenden sindiburst
) als soziale Best Practices.Der übliche Ansatz hierfür ist die Verwendung eines abgestuften Setups. Sie synchronisieren einen oder zwei Server in Ihrem Netzwerk mit dem Pool und verwenden diese dann als lokale Zeitquelle. Diese Ebenen werden im NTP-Jargon als Schichten bezeichnet .
Denken Sie auch darüber nach: Wenn Sie dies so tun, wie Sie es beschrieben haben, wird es nicht wirklich auffallen, aber wenn 1000 Websites Ihrer Größe damit beginnen, erhalten Sie 20.000 meist unnötige Anfragen und irgendwann wird es auffällig.
Lesen Sie http://en.wikipedia.org/wiki/Network_Time_Protocol
quelle
pool.ntp.org
. Sicherlich übersteigt der DNS-Verkehr den NTP-Verkehr. Müssen Sie DNS auch lokal zwischenspeichern? Selbst der DNS-Verkehr ist im Vergleich zum Rest Ihres Bandbreitenverbrauchs wahrscheinlich winzig.ntp.pool.org
verstößt dies gegen die Poolbedingungen . Wenn sie es richtig gemacht haben, indem sie eine Lieferantenzone beantragt haben (siehe Link), wurde auch erwartet, dass sie proportional zu ihrer Auslastung zum Poolprojekt beitragen (siehe auch Link).