Frage Dinge, die beim Ausführen öffentlicher NTP-Server zu berücksichtigen sind


Es dämmerte mir kürzlich, dass ich, da ich 3 GPS-Uhren in meinem Netzwerk habe, technisch etwas zurückgeben und dem Rest der Welt Zeit widmen könnte. Bis jetzt habe ich mit diesen Ideen noch keine Nachteile gesehen, aber ich habe folgende Fragen;

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

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

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

  4. Sie empfehlen, den LOCAL-Takttreiber nicht zu konfigurieren, entspricht das dem Entfernen der LOCAL-Zeitquellenkonfiguration aus den Konfigurationsdateien?

  5. Sonst noch etwas zu beachten?


20
2017-11-01 20:13


Ursprung




Antworten:


Erstens, gut für dich; es ist eine hilfreiche und öffentliche Idee. Nachdem Sie geklärt haben, dass Sie eine oder mehrere DMZ-VMs erstellen möchten, die die Zeit Ihrer drei Meinberg GPS-fähigen stratum-1 (internen) Server synchronisieren und öffentlich verfügbar machen, gehen Sie wie folgt vor:

  1. Bearbeiten: Virtualisierung steht zur Diskussion die Poolliste von Zeit zu Zeit; ein letzter war im Juli 2015, der abgehend verfolgt werden kann diese E-Mail. Bitten Sie Bjørn Hansen, den Projektleiter, tat Beitrag zum Threadund hat sich nicht gegen die Virtualisierung ausgesprochen. Offensichtlich virtualisieren eine Reihe von Pool - Server - Betreibern gerade jetzt, also glaube ich nicht, dass irgendjemand Sie dafür erschießen wird, und wie ein Plakat klarstellt, wenn Ihr Server (die Server) unzuverlässig sind, wird das Pool - Überwachungssystem sie einfach aus dem Server entfernen Schwimmbad. KVM scheint die bevorzugte Virtualisierungstechnologie zu sein; Ich habe niemanden gefunden, der VMWare spezifisch nutzt, also kann ich nicht sagen, wie "ehrlich" eine Virtualisierung ist. Vielleicht die beste Zusammenfassung zu diesem Thema sagte

    Meine Pool-Server werden mit KVM auf meinen eigenen KVM-Hosts virtualisiert.   Überwachung sagt, der Server ist ziemlich genau und bietet stabil   Zeit für die letzten 2-3 Jahre. Aber ich würde keinen Pool-Server auf einem einrichten   geleaste virtuelle Server von einem anderen Anbieter.

  2. Dies ist die durchschnittliche tägliche Anzahl an unterschiedlichen Clients pro Sekunde, die ich auf meinem Pool-Server (in Großbritannien, Europa und weltweit) im letzten Jahr gesehen habe:

    ntp client count

    Dies erzwingt fast keine nachweisbare Systemlast (ntpd scheint die meiste Zeit zwischen 1% und 2% einer CPU zu verwenden). Beachten Sie, dass zu einem bestimmten Zeitpunkt während des Jahres die Last kurzzeitig bei fast 1000 Clients pro Sekunde ihren Höchststand erreichte (Max: 849,27); Ich überwache die übermäßige Last, und die Alarme gingen nicht alle aus, daher kann ich nur feststellen, dass selbst diese Belastung nicht zu Problemen führte, wenn auch nur kurz.

  3. Die vom Projekt empfohlenen Konfigurationen sind bewährte Vorgehensweisen und funktionieren für mich. Ich benutze auch iptables Clients auf zwei eingehende Pakete in einem rollenden Zehn-Sekunden-Fenster zu Rate-Limit (es ist tolle wie viele unhöfliche Kunden gibt es da draußen, die denken, dass sie frei sein sollten zu platzen, um ihre eigenen Uhren schnell zu setzen).

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

  5. Die Best-Practice-Richtlinien empfehlen außerdem mehr als drei Uhren. Daher sollten Sie neben Ihren drei Stratum-1-Servern auch einige andere öffentliche Server oder bestimmte Pool-Server auswählen.

    Ich würde auch bemerken, dass wenn Sie planen, beide VMs auf der gleichen Host-Hardware zu installieren, Sie wahrscheinlich nur die eine, aber doppelte die für den Pool deklarierte Bandbreite ausführen sollten (dh, akzeptieren Sie doppelt so viele Abfragen, wie Sie es sonst tun würden) ).


21
2017-11-01 21:17



Viele Linux-Distributionen eingestellt iburst standardmäßig... - Michael Hampton♦
iburst Es macht mir nicht so viel aus, wie es nur gilt, wenn der Server ist unerreichbar. Rahmen burstist jedoch ausgesprochen unsozial. - MadHatter
Danke Kumpel, genau das, was ich wissen wollte! Zur Klarstellung, ich betreibe VMware unter diesen, und es ist ein verteilter Cluster. Meine internen Uhren sind Meinberg-Geräte, und sie sprechen NTP naiv. Die Last scheint ziemlich vernünftig zu sein, meine internen Uhren sehen ungefähr das Doppelte (aber andererseits sind sie da, damit meine Geräte so asozial sein können, wie sie wollen). - Stuggi
@ Stuggi Ich habe versucht, die Virtualisierungsfrage zu klären, indem ich die Liste der Poolbetreiber durchsuche, hoffentlich hilft das. Fühlen Sie sich frei, meine Antwort zu akzeptieren, wenn Sie denken, dass sie alle Ihre Fragen behandelt hat! Und nochmals vielen Dank für den Betrieb eines Pool-Servers. - MadHatter
@MadHater Prost Kumpel, das hat einiges geklärt. Ich musste mich vorher mit vielen Zeitproblemen auf VMware auseinandersetzen und weiß, wie ich mit diesen Problemen umgehen kann. Ich war nur besorgt, dass selbst nach einer Feinabstimmung der VM die Zeitmessung für NTP immer noch zu schade wäre. VMware ist ein Bare-Metal-Hypervisor (aka. Der Hypervisor ist das Betriebssystem), während KVM (wenn ich mich richtig erinnere) auf einem "normalen" Betriebssystem läuft, also sollte es in VMware laufen. Ich werde es versuchen und sehen, ob ich aus dem Pool geworfen werde! :) - Stuggi


Erstens, Glückwunsch zu einer NTP-Frage, die kein Facepalm-Material ist. :-) Ich habe einige Grafiken am Ende dieses Beitrags eingefügt, um Ihnen ein Gefühl für die Dinge zu geben. Die betreffende VM ist im Poolsteuerungsfeld auf 100 Mbps eingestellt und befindet sich in den Pools für Großbritannien, Europa und den globalen Pool.

  1. Ich denke, MadHatter hat das gut abgedeckt - Virtualisierung sollte in Ordnung sein. Wie Sie sagen, wenn sie von Ihrem GPS-verbundenen Stratum 1s ernähren, sollten sie einigermaßen solide sein. Meiner Erfahrung nach sind VMs in Bezug auf die Frequenz etwas nerviger als Bare Metal (siehe Grafik unten), aber das ist es, was man erwarten würde - sie haben mit einer Clock-Emulationsschicht zu tun (hoffentlich ziemlich effizient) und potenziell laut Nachbarn. Wenn Sie diese Art von Juckreiz lieber nicht sehen möchten, verwenden Sie stattdessen ältere Server oder unbenutzte Desktops als DMZ-Stratum 2s.

  2. Diese VM ist 1 Kern, 2 GB RAM, Ubuntu 16.04 LTS ausgeführt, in OpenStack (KVM Hypervisor) virtualisiert. Wie Sie sehen können, ist der RAM ein wenig übertrieben.

  3. Die empfohlenen Einstellungen - darunter, dass der lokale Treiber nicht konfiguriert ist - sind die Standardeinstellungen in Ubuntu 16.04. Ich bin sehr nahe an der Bestandskonfiguration, außer der Peer-Liste.

  4. (siehe oben)

  5. Ich würde wahrscheinlich Bandbreite auf der niedrigen Seite starten und die Bandbreite hochfahren, nachdem Sie es für ein bisschen überwacht haben. Wenn sich Ihre VMs in Bezug auf die Netzwerklatenz nahe beieinander befinden und sich in der Nähe Ihrer Stratum 1 befinden, würde ich wahrscheinlich alle VMs mit allen Stratum 1 sprechen lassen und sie wahrscheinlich miteinander vergleichen und auch den Waisenmodus aktivieren.

Hier sind die Graphen - sie alle decken den gleichen Zeitraum von ungefähr 3 Wochen ab, mit Ausnahme des Netzwerkes, das aufgrund von Backups ein paar Spikes hatte. Als die Netzwerkspitzen da waren, konnte ich nicht einmal den normalen NTP-Verkehr sehen, also habe ich etwas gezoomt, um den üblichen Hintergrund zu zeigen.

Zentralprozessor CPU Erinnerung Memory Netzwerk Network Frequenz Frequency Systemversatz System Offset


11
2017-11-04 03:26



Ooooh, nette Antwort - +1 von mir! - MadHatter
Danke Kumpel, mehr, das ist wirklich hilfreich, ich habe weniger als 3 ms Latenz zwischen den VMs und den physischen NTP-Appliances, die geografisch innerhalb von 50 Meilen von der VM-Infrastruktur verteilt sind, also denke ich, dass es mir gut geht! - Stuggi


Einige Dinge, die man mit NTP beachten sollte

Hier gibt es bereits gute Antworten. Ich füge nur ein paar Gedanken um der Vollständigkeit halber basierend auf meinen eigenen Erfahrungen.

Ich würde vorschlagen, NTP-Logging und Graph Clock Skews und Korrekturen auf Bare Metal vs. VM zu aktivieren, wie es zu dieser Diskussion gehört, wenn das ein Problem ist. Ich glaube nicht, dass dies leicht verallgemeinert werden kann, da Hardware und Konfiguration zwischen Implementierungen variieren. Es ist vielleicht am besten, wenn Sie Ihre eigenen Zahlen dazu bekommen.

Ich habe immer Leuten vorgeschlagen, Systemrollen von Servern oder Netzwerkgeräten auszuwählen, die eine ziemlich konstante CPU-Zeit haben und die keine Tick-Kernel sind oder die Energiesparmodi aktiviert haben. Vermeiden Sie vor allem Daemon-CPU- oder Speed-Govenoren oder erweiterte Energiesparfunktionen auf NTP-Servern, auch wenn sie nur Stratum 2 in Ihrer Farm sind. Eine gewisse Stabilität kann erreicht werden, indem Sie nie tiefer als 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 40ms vom Rand ihres Netzwerks entfernt sind, dann teilen sie sie über Ihre Edge NTP Server auf und stellen sicher, dass keine 2 Server hinter dem gleichen SNAT in Ihrem Netzwerk sprechen Sie mit demselben Stratum 1 Server. Ähnlich wie burstEs ist unklug, mehrere Server hinter dem gleichen SNAT zu haben, der die gleichen Upstream-Server verwendet, da es so aussieht, als hätten Sie Burst aktiviert, selbst wenn Sie es nicht getan haben.

Du solltest immer die kod Paket vom Upstream-Server und über Überwachungstools, die Zeitversätze und die Erreichbarkeit der Upstream-Server überprüfen.

Sie kann Sie möchten Ihre eigenen genauen Zeitquellen in einigen Ihrer Rechenzentren in Betracht ziehen, mit denen Sie in dem unwahrscheinlichen Fall, dass GPS SA vom Militär aktiviert wird, einen Blick werfen oder darauf zurückgreifen können. Dafür gibt es kosteneffektive Geräte. Selbst wenn Sie sich in einer "Käfig" -Umgebung befinden und kein eigenes Rechenzentrum haben, können einige Hosting-Einrichtungen dies berücksichtigen.


2
2017-11-30 04:48



Stuggi hat bereits erwähnt, dass das fragliche Netzwerk 3 GPS-Uhren hat. - Paul Gear
Ja. Ich spreche speziell über die Verwendung von lokalen Cäsium-Uhren, die im unwahrscheinlichen Fall, dass GPS deaktiviert ist, nicht abdriften. Das sollte nur während eines militärischen Großereignisses geschehen, aber man weiß es nie. - Aaron


Siehe das vmware-Zeitdokument unter http://www.vmware.com/pdf/vmware_zeitung.pdf 

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


1
2017-11-02 06:38



Obwohl dies keine präzise Antwort ist, wirft dies eine berechtigte Besorgnis auf ala "TL; DR: Ja, es gibt Probleme in Bezug auf Virtualisierung zu behandeln". - rackandboneman
Ich bin mir der Probleme bewusst, mit denen umgegangen werden muss, ich denke eher darüber nach, ob es überhaupt möglich ist. - Stuggi
Betreff: "Es ist wahrscheinlich keine gute Idee, einen NTP-Daemon in einer VM auszuführen, besonders wenn Sie zuverlässige Zeit benötigen." - Ich glaube nicht, dass dies für jeden modernen Hypervisor gilt. Das Dokument, mit dem Sie speziell verknüpft haben, besagt, dass die Verwendung von NTP in einer VM eine Option ist. Die Grafiken, die ich in meine Antwort eingefügt habe, zeigen, dass eine VM sich gut mit KVM beschäftigen kann, und ich würde erwarten, dass neuere ESXi-Systeme dasselbe tun. - Paul Gear


Hier ist eine gute KB von VMware mit aktuellen Konfigurationsparametern für verschiedene Linux-Distributionen

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427


0
2018-02-25 01:06