Dinge zu beachten, wenn öffentliche NTP-Server ausgeführt werden

21

Vor kurzem wurde mir klar, dass ich, da ich 3 GPS-Uhren in meinem Netzwerk habe, technisch etwas zurückgeben und dem Rest der Welt Zeit widmen könnte. Bisher habe ich keine Nachteile mit diesen Ideen gesehen, aber ich habe die folgenden Fragen;

  1. Kann ich das virtualisieren? Ich werde dafür kein Geld und keine Zeit aufwenden, um Hardware zu betreiben, daher ist Virtualisierung ein Muss. Da die Server Zugriff auf drei Stratum 1-Quellen haben, kann ich nicht erkennen, wie dies ein Problem sein kann, vorausgesetzt, die ntpd-Konfiguration ist korrekt

  2. Welche Art von Datenverkehr sieht ein öffentlicher NTP-Server (Teil von pool.ntp.org) normalerweise? Und wie große VMs brauche ich dafür? ntpd sollte nicht zu ressourcenintensiv sein, soweit ich das beurteilen kann, aber ich würde es lieber vorher wissen.

  3. Welche Sicherheitsaspekte gibt es dazu? Ich denke, nur NTPD auf zwei VMs in der DMZ zu installieren, nur NTP durch die FW und nur NTP aus der DMZ zu den internen NTP-Servern zuzulassen. Es scheint auch einige NTP-Einstellungen zu geben, die auf der NTP-Pool-Seite empfohlen werden, aber sind sie ausreichend? https://www.ntppool.org/join/configuration.html

  4. Sie empfehlen, den lokalen Uhrentreiber nicht zu konfigurieren. Entspricht dies dem Entfernen der lokalen Zeitquellenkonfiguration aus den Konfigurationsdateien?

  5. Sonst noch etwas zu beachten?

Stuggi
quelle

Antworten:

22

Erstens gut für Sie; Es ist eine hilfreiche und gemeinnützige Sache. Vor diesem Hintergrund haben Sie klargestellt, dass Sie eine oder mehrere DMZ-VMs erstellen möchten, die mit Ihren drei Meinberg GPS-fähigen Stratum-1-Servern (intern) synchronisiert werden und diese für die Öffentlichkeit verfügbar machen:

  1. Bearbeiten : Die Virtualisierung wird von Zeit zu Zeit auf der Pool-Liste diskutiert . Ein letzter war im Juli 2015, der ab dieser E-Mail verfolgt werden kann . Fragen Sie Bjørn Hansen, den Projektleiter, der im Thread gepostet und sich nicht gegen die Virtualisierung ausgesprochen hat. Es ist klar, dass eine Reihe von Pool-Server-Betreibern im Moment virtualisiert, und ich glaube nicht, dass Sie jemand dafür erschießen wird. Und wie ein Poster verdeutlicht, werden Ihre Server, wenn sie unzuverlässig sind, vom Pool-Überwachungssystem einfach aus dem Server entfernt Schwimmbad. KVM scheint die bevorzugte Virtualisierungstechnologie zu sein. Ich habe niemanden gefunden, der speziell VMWare verwendet, daher kann ich nicht beurteilen, wie "ehrlich" eine Virtualisierung ist. Vielleicht hat die beste Zusammenfassung zu diesem Thema gesagt

    Meine Poolserver sind auf meinen eigenen KVM-Hosts mit KVM virtualisiert. Laut Monitoring ist der Server ziemlich genau und bietet eine stabile Zeit für die letzten 2-3 Jahre. Ich würde jedoch keinen Poolserver auf einem geleasten virtuellen Server eines anderen Anbieters einrichten.

  2. Dies ist die tägliche durchschnittliche Anzahl unterschiedlicher Clients pro Sekunde, die ich im letzten Jahr auf meinem Poolserver (der sich in Großbritannien, Europa und weltweit befindet) sehe:

    Anzahl der NTP-Clients

    Dies bedeutet, dass fast keine erkennbare Systemlast vorliegt ( ntpdscheint die meiste Zeit zwischen 1% und 2% einer CPU zu verbrauchen). Beachten Sie, dass die Auslastung zu einem bestimmten Zeitpunkt im Laufe des Jahres kurzzeitig fast tausend Clients pro Sekunde erreichte (max. 849,27). Ich überprüfe, ob zu viel Last vorhanden ist, und es wurden nicht alle Alarme ausgelöst. Daher kann ich nur feststellen, dass selbst diese Last keine Probleme verursacht hat, wenn auch nur kurz.

  3. Die vom Projekt empfohlenen Konfigurationen sind bewährte Methoden und funktionieren für mich. Außerdem beschränke ich iptablesClients in einem fortlaufenden Zehn-Sekunden-Fenster auf zwei eingehende Pakete (es ist erstaunlich, wie viele unhöfliche Clients da draußen sind, die der Meinung sind, dass sie frei sein sollten, um ihre eigenen Uhren schnell einzustellen).

  4. Oder entfernen Sie alle Zeilen, die sich auf Serveradressen beziehen, die mit beginnen 127.127.

  5. In den Best-Practice-Richtlinien werden auch mehr als drei Uhren empfohlen. Daher sollten Sie neben Ihren drei Stratum-1-Servern auch einige andere öffentliche Server oder bestimmte Pool-Server auswählen.

    Wenn Sie beide VMs auf derselben Hosthardware installieren möchten, sollten Sie wahrscheinlich nur die eine ausführen, aber die für den Pool deklarierte Bandbreite verdoppeln (dh doppelt so viele Abfragen akzeptieren, wie Sie es sonst tun würden) ).

MadHatter unterstützt Monica
quelle
1
Viele Linux-Distributionen sind iburstvoreingestellt ...
Michael Hampton
4
iburstEs macht mir nicht so viel aus, da es nur gilt, wenn der Server nicht erreichbar ist. Das Einstellen burstist jedoch ausgesprochen unsozial.
MadHatter unterstützt Monica
1
Danke Kumpel, genau das, was ich wissen wollte! Zur Verdeutlichung starte ich VMware unter diesen und es ist ein verteilter Cluster. Meine internen Uhren sind Meinberg-Geräte und sprechen naiv NTP. Die Auslastung scheint recht vernünftig zu sein, meine internen Uhren sehen ungefähr doppelt so hoch aus (aber andererseits sind sie da, damit meine Geräte so unsozial sein können, wie sie wollen).
Stuggi
@Stuggi Ich habe versucht, die Frage der Virtualisierung durch Durchsuchen der Liste der Poolbetreiber zu klären, hoffentlich ist das eine Hilfe. Nehmen Sie meine Antwort gerne an, wenn Sie der Meinung sind, dass alle Ihre Fragen beantwortet wurden! Und nochmals vielen Dank, dass Sie einen Pool-Server betreiben.
MadHatter unterstützt Monica
1
@MadHatter Cheers Kumpel, das hat einiges aufgeklärt. Ich musste mich zuvor mit vielen Zeitproblemen bei VMware auseinandersetzen und wusste, wie ich mit diesen Problemen umgehen sollte. Ich war nur besorgt, dass die VM auch nach dem Optimieren von allem noch zu schlecht für die Zeitmessung bei NTP sein würde. VMware ist ein Bare-Metal-Hypervisor (der Hypervisor ist das Betriebssystem), während KVM (wenn ich mich recht erinnere) auf einem "normalen" Betriebssystem ausgeführt wird. Daher sollte es in Ordnung sein, es in VMware auszuführen. Ich werde es versuchen und sehen, ob ich aus dem Pool geworfen werde! :)
Stuggi
12

Zunächst herzlichen Glückwunsch zu einer NTP-Frage, die kein Facepalm-Material ist. :-) Ich habe am Ende dieses Beitrags einige Grafiken eingefügt, um Ihnen ein Gefühl für die Dinge zu vermitteln. Die betreffende VM ist in der Pool-Systemsteuerung auf 100 Mbit / s eingestellt und befindet sich in Pools in Großbritannien, Europa und weltweit.

  1. Ich denke, MadHatter hat dies gut abgedeckt - Virtualisierung sollte in Ordnung sein. Wie Sie sagen, sollten sie einigermaßen solide sein, wenn sie von Ihrer GPS-verbundenen Schicht 1s gespeist werden. Nach meiner Erfahrung sind VMs in Bezug auf die Frequenz tendenziell etwas nervöser als Bare Metal (siehe Grafik unten), aber genau das ist zu erwarten - sie haben es mit einer Taktemulationsschicht zu tun (hoffentlich ziemlich effizient) und sind potenziell laut Nachbarn. Wenn Sie diese Art von Nervosität lieber nicht bemerken, verwenden Sie stattdessen ältere Server oder nicht verwendete Desktops als DMZ-Schicht 2s.

  2. Diese VM ist ein 1-Kern-RAM mit 2 GB, auf dem Ubuntu 16.04 LTS ausgeführt wird und der in OpenStack (KVM-Hypervisor) virtualisiert ist. Wie Sie sehen, ist der Arbeitsspeicher etwas zu hoch.

  3. Die empfohlenen Einstellungen - einschließlich der Tatsache, dass der lokale Treiber nicht konfiguriert ist - sind die Standardeinstellungen in Ubuntu 16.04. Ich bin sehr nah an der Bestandskonfiguration, abgesehen von der Peer-Liste.

  4. (siehe oben)

  5. Ich würde wahrscheinlich die Bandbreite auf der niedrigen Seite starten und sie erhöhen, nachdem Sie sie ein wenig überwacht haben. Wenn sich Ihre VMs in Bezug auf die Netzwerklatenz alle in der Nähe befinden und sich in der Nähe Ihrer Schicht 1 befinden, müssen wahrscheinlich alle VMs mit allen Schicht 1-VMs sprechen und sie wahrscheinlich miteinander vergleichen und auch den Waisenmodus aktivieren.

Hier sind die Diagramme - sie decken alle den gleichen Zeitraum von ungefähr 3 Wochen ab, mit Ausnahme des Netzwerks, das aufgrund von Backups einige Spitzen aufwies. Als die Netzwerkspitzen da waren, konnte ich nicht einmal den normalen NTP-Verkehr sehen, also zoomte ich ein wenig hinein, um den üblichen Hintergrund anzuzeigen.

CPU - Zentralprozessor Speicher - Erinnerung Netzwerk Netzwerk Frequency Frequenz Systems OffsetSystemversatz

Paul Gear
quelle
Ooooh, nette Antwort - +1 von mir!
MadHatter unterstützt Monica
1
Danke Kumpel, mehr ist wirklich hilfreich. Ich habe eine Latenz von weniger als 3 ms zwischen den VMs und den physischen NTP-Appliances, die geografisch innerhalb von 80 Kilometern von der VM-Infrastruktur verteilt sind.
Stuggi
3

Einige Dinge, die bei NTP zu beachten sind

Hier gibt es schon so manche gute Antworten. Ich füge der Vollständigkeit halber nur einige Gedanken hinzu, die auf meinen eigenen Erfahrungen beruhen.

Ich würde vorschlagen, die NTP-Protokollierung zu aktivieren und Taktversatz und Korrekturen auf Bare-Metal- und VM-Ebene zu grafisch darzustellen, da dies für diese Diskussion von Belang ist. Ich glaube nicht, dass dies leicht verallgemeinert werden kann, da Hardware und Konfiguration zwischen den Implementierungen variieren. Es ist vielleicht am besten, wenn Sie Ihre eigenen Nummern für diese Nummer haben.

Ich habe den Leuten immer vorgeschlagen, Systemrollen von Servern oder Netzwerkgeräten auszuwählen, die eine relativ konstante CPU-Zeit haben und keine tickless-Kernel sind oder die Energiesparmodi aktiviert haben. Vermeiden Sie vor allem Daemons, die sich auf Geschwindigkeits- oder Geschwindigkeitsverbesserungen stützen, oder die erweiterte Stromersparnis bei NTP-Servern, selbst wenn sie in Ihrer Farm nur Schicht 2 sind. Etwas Stabilität kann erreicht werden, wenn Sie niemals tiefer als in C-State 1 gehen, aber Ihr Stromverbrauch steigt.

Ich versuche auch sicherzustellen, dass die Leute eine Handvoll Stratum-1-Server auswählen, die weniger als 40 ms vom Rand ihres Netzwerks entfernt sind. Dann teile ich sie auf die NTP-Edge-Server auf und stelle sicher, dass keine zwei Server hinter derselben SNAT in Ihrem Netzwerk miteinander kommunizieren auf dem gleichen Stratum 1 Server. Entsprechend burstist es nicht ratsam, mehrere Server hinter demselben SNAT zu haben, die dieselben Upstream-Server verwenden, da es den Anschein hat, als hätten Sie Burst aktiviert, auch wenn Sie dies nicht getan haben.

Sie sollten immer das kodPaket vom Upstream-Server einhalten und Überwachungstools haben, die die Zeitversätze und die Erreichbarkeit der Upstream-Server überprüfen.

Sie können mit Ihren eigenen genauen Zeitquellen in einem paar Ihrer Rechenzentren Peer berücksichtigen wollen oder in dem unwahrscheinlichen Fall zurückfallen , dass GPS SA durch das Militär aktiviert ist. Speziell dafür gibt es kostengünstige Geräte. Selbst wenn Sie sich in einer "Käfig" -Umgebung befinden und kein eigenes Rechenzentrum haben, können einige Hosting-Einrichtungen dies ermöglichen.

Aaron
quelle
Stuggi hat bereits erwähnt, dass das betreffende Netzwerk 3 GPS-Uhren hat.
Paul Gear
Ja. Ich spreche speziell von der Verwendung lokaler Cäsiumuhren, die in dem unwahrscheinlichen Fall, dass GPS deaktiviert ist, nicht driften. Das sollte nur während eines groß angelegten militärischen Ereignisses passieren, aber man weiß es nie.
Aaron
2

Weitere Informationen finden Sie im Dokument zur VMware-Zeitmessung unter http://www.vmware.com/pdf/vmware_timekeeping.pdf

Das Ausführen eines NTP-Daemons in einer VM ist wahrscheinlich keine gute Idee, insbesondere wenn Sie zuverlässige Zeit benötigen.

Nicholas Jeffrey
quelle
3
Obwohl dies keine präzise Antwort ist, wirft dies eine berechtigte Besorgnis auf, beispielsweise "TL; DR: Ja, es gibt Probleme im Zusammenhang mit der Virtualisierung".
Rackandboneman
Ich bin mir der Probleme bewusst, die gelöst werden müssen. Ich überlege, ob es überhaupt möglich ist.
Stuggi
1
Betreff: "Das Ausführen eines NTP-Daemons in einer VM ist wahrscheinlich keine gute Idee, insbesondere wenn Sie zuverlässige Zeit benötigen." - Ich glaube nicht, dass dies für einen modernen Hypervisor zutrifft. In dem von Ihnen verlinkten Dokument wird ausdrücklich darauf hingewiesen, dass die Verwendung von NTP in einer VM eine Option ist. Die in meiner Antwort enthaltenen Grafiken zeigen, dass eine VM auf KVM eine gute Zeit hat, und ich würde erwarten, dass neuere ESXi-Systeme dasselbe tun.
Paul Gear