ntp.conf pool vs server directives

15

Ich bin auf eine ntp.conf-Datei gestoßen, die Pool-Anweisungen enthält:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org

Es enthält jedoch auch Server-Direktiven in derselben Datei, mit denen ich besser vertraut bin.

Wenn ich über Pool lese, sehe ich, dass er anstelle des Servers verwendet werden soll. Sie sollten den einen oder anderen verwenden.

Was passiert jedoch, wenn ntp.conf beides hat? Hat ein Satz Vorrang vor dem anderen oder werden alle verwendet?

Dies ist auf Ubuntu 14.04, ntpd ist Version 4.2.6p5.

user3141592
quelle

Antworten:

8

Soweit ich in den Quellen sehen kann, werden ntpdsowohl ein Mitglied eines Pools als auch einzelne Server ungefähr gleich behandelt: Sie werden der Liste der Peers hinzugefügt.

Alle diese Peers werden von verwendet ntpd.

Die Magie des Poolmechanismus liegt im Round-Robin-DNS: ntpdDa der Poolname über DNS aufgelöst wird, ist die Antwort der DNS-Abfrage ein einzelner Knoten, der bei jeder Auflösungsanfrage unterschiedlich sein kann.

Vincent De Baere
quelle
2
Dies wird in der Datei erwähnt, discover.htmldie meiner Meinung nach mit der ntpd-Dokumentation gebündelt ist. Siehe unten in der Datei
mboehn
@Vincent Ich habe Quelldateien heruntergeladen. Können Sie genau angeben, wo ich nachsehen soll, um dies zu überprüfen?
user3141592
@mboehn In diesem Dokument und der Datei, auf die es verweist, wird nicht erwähnt, was mit neueren Versionen von ntpd passiert, die sowohl Pool- als auch Server-Anweisungen unterstützen, wenn beide angegeben sind. Wenn ich etwas übersehen habe, kläre bitte auf. Vielen Dank.
user3141592
Siehe ntp / ntp_config.c: 3776. Hier findet die Auflösung der Peers aus der Konfigurationsdatei statt. Schauen Sie sich danach ntp / ntp_peer.c: 554 für peer_config und ntp / ntp_peer.c: 730 für new_peer an. Sie werden sehen, dass beide am Ende von new_peer schließlich der Peer-Hash-Tabelle hinzugefügt werden.
Vincent De Baere
Dies hilft niemandem, der nicht weiß, was der Server tut. Können Sie erklären, was der Server macht, damit ich mit Ihrem letzten Satz vergleichen kann, was der Pool macht.
Bakalolo
8

Die Antwort gab mboehn. Weitere Informationen finden Sie im Dokument, das er erwähnt hat . Vor allem die letzten Zeilen:

Das Pool-Schema wird mit einem oder mehreren Pool-Befehlen konfiguriert, deren DNS-Namen den Pool angeben, aus dem gezeichnet werden soll. Der Befehl pool kann mehrmals verwendet werden. doppelte Server werden erkannt und verworfen. Grundsätzlich ist es möglich, eine Konfigurationsdatei zu verwenden, die einen einzelnen Zeilenpool pool.ntp.org enthält. Das NTP-Pool-Projekt bietet Anweisungen zur Verwendung des Pools mit dem Serverbefehl, der suboptimal ist, jedoch mit älteren Versionen von ntpd vor dem Pool-Befehl funktioniert. In ntpd der letzten Zeit sollten Sie in Betracht ziehen, die Befehle für mehrere Server in ihrem Beispiel durch einen einzigen Pool-Befehl zu ersetzen

Meine Konfiguration ist:

# Specify one or more NTP servers.
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst

# Provide your current local time as a default should you temporarly lose Internet connectivity
server 127.127.1.0
fudge 127.127.1.0 stratum 10

Ich habe jetzt mehrere NTP-Server in der Nähe meines geografischen Standorts (Niederlande), wenn ich nachschaue

$ ntpq -4np

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 127.127.1.0     .LOCL.          10 l    -   64    0    0.000    0.000   0.000
-85.255.214.66   193.190.230.66   2 u    5   64  177    6.937    1.588   1.645
-5.39.184.5      91.148.192.49    3 u   64   64   77    8.907    1.197   1.635
-91.198.87.229   193.79.237.14    2 u    5   64  177    8.447   -0.042   0.894
+37.34.57.151    193.79.237.14    2 u    1   64  177    7.463    0.168   0.297
*91.198.87.118   192.87.110.2     2 u    2   64  177    8.593    0.070   0.384
+88.159.1.197    80.94.65.10      2 u    2   64  177   10.497    0.454   0.213
+213.154.236.182 213.136.0.252    2 u   67   64   77    8.793    0.455   2.391
#178.21.23.127   91.121.157.10    3 u   66   64   77    9.129   -0.911   1.541
#213.109.127.195 193.79.237.14    2 u   66   64   77   11.766   -7.330   1.501
+213.154.229.24  80.50.231.226    2 u    4   64  177    8.496    0.121   0.538
-217.77.132.1    213.136.0.252    2 u    2   64  177    7.026   -0.782   1.253
#87.253.148.92   195.13.1.153     3 u    4   64  177    7.338   -3.859   0.964
-94.228.220.14   193.67.79.202    2 u    -   64  177    8.347    2.797   1.019
Woftor
quelle
1

Damit NTP einen Pool von Zeitservern ordnungsgemäß abrufen und die Verfügbarkeit von Zeitservern in einem Failover-Szenario nutzen kann, ntp.confsollte Folgendes konfiguriert werden:

  • Deklarieren Sie den Domänennamen des Pools mit einem poolBefehl (und nicht server)

  • Erlaube dem Pool, eine Assoziation zu mobilisieren (dh füge eine " restrict source..." Zeile hinzu, die die nopeerDirektive nicht enthält )

drgnfr
quelle