
Bitte beachten Sie die Abbildung.
Ich habe zwei Maschinen in einem LAN, nur eine davon hat eine Internetverbindung (über eine andere Schnittstelle). Server 1 hat eine minderwertige Hardware-Uhr. Server 2 hat eine gute Hardware-RTC.
Leider verfügt Server 1 normalerweise über eine Internetverbindung, während dies bei dem Server mit der guten Hardware-RTC nicht der Fall ist. Daher ist Server 1 je nach Status der Internetverbindung entweder der genaueste oder höchst unzuverlässig.
Es ist von entscheidender Bedeutung, dass beide Maschinen eng miteinander synchronisiert bleiben.
Ist es möglich, einen automatischen Systemwechsel von Szenario 1 zu Szenario 2 herbeizuführen, etwa durch automatische Anpassungen des Stratums jeder einzelnen Maschine?
Antwort1
Erstens ist es sehr unwahrscheinlich, dass Sie Zugang zu einem Stratum erhalten1Server, es sei denn, Sie sind den Stratum 1-Serveradministratoren bekannt und diese haben Ihnen ausdrücklich die Erlaubnis dazu erteilt. Allerdings ist das Stratum dieses Servers für diese Antwort nicht von Bedeutung, daher werde ich diese Maschine der Übersichtlichkeit halber als „Low-Stratum“-Server bezeichnen.
Sie sollten die Konfiguration so konfigurieren server2
, dass die Zeit vom Low-Stratum-Server bezogen wird, nicht von server1
. Dies erfordert, dass (zumindest für NTP) auf die Internetverbindung von zugegriffen werden kann server1
. Wenn server2
keine Internetverbindung besteht, mit der auf den Low-Stratum-Server zugegriffen werden könnte, können Sie dies zulassen, indem Sie die folgenden Befehle auf server1
(als Root) ausführen:
iptables -A FORWARD -s server2 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -s server2 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
Die ersten beiden Zeilen erlauben NTP-Verkehr vom Hostserver2
nur. Hinweis: Ich bin nicht 100 % sicher, ob TCP-Verbindungen erforderlich sind, aber es kann nicht schaden. Sie können -d lowstratumserver
diese beiden Zeilen auch ergänzen, damit dieser Rechner nicht auf andere Server zugreifen kann (nur auf den Low-Stratum-Server). Die nächste Zeile erlaubt den Rückverkehr von hergestellten Verbindungen. Die vierte Zeile aktiviert die Netzwerkadressübersetzung. Die letzte Zeile aktiviert die IP-Paketweiterleitung. Damit server1
ist es jetzt ein (minimaler) Router.
Wenn server2
nicht server1
der Standardrouter ist, müssen Sie auch eine explizite Route für den Low-Stratum-Server hinzufügen:
ip route add lowstratumserver via server1
Damit wird es als Router für die Netzwerkverbindung zu server2
verwendet und als normaler Router für alles andere.server1
lowstratumserver
Konfigurieren Sie dann server2
die Verwendung des Low-Stratum-Servers im Internet als NTP-Quelle, nicht server1
.
Konfigurieren Sie es abschließend server1
so, dass die Verbindung zu server2
und nicht zum Stratum 1-Server im Internet hergestellt wird.
Synchronisiert jetzt server2
mit dem Low-Stratum-Server im Internet, nicht mit server1
; und server1
synchronisiert server2
immer mit , wodurch die Notwendigkeit entfällt, ein Failover-Setup hinzuzufügen (das im besten Fall fehleranfällig wäre).
Dadurch geht aufgrund des zusätzlichen Hops etwas Genauigkeit verloren, es ist jedoch immer besser, die Maschinen in Ihrem lokalen Netzwerk mit einer Maschine mit einer guten Hardware-RTC zu synchronisieren, als mit einer Maschine mit einer minderwertigen.