NTP-Server
|
|
[ NTP-Server ] [ Synchronisation ] [ NTP-Client ]
Im vorliegenden Unterkapitel wird die Konfiguration eines lokalen NTP-Servers beschrieben. Lokale im Netz befindliche NTP-Clients,
können sich anhand des NTP-Servers synchronisieren.
Bei der vorgestellten Konfiguration liefern externe Time-Server im Internet die Referenzzeit für
den lokalen NTP-Server.
In einem späteren Unterkapitel wird auf andere Möglichkeiten zur exakten Ermittelung der Referenzzeit
eingegangen.
Installation
Unter Debian-Linux sollte für einen NTP-Server mit: 'apt-get
install ...' folgende Pakete installiert werden:
- ntp-server
Enthält die gemeinsamen Dateien für einen NTP-Server.
- ntp
NTP-Hilfsprogramme.
- ntp-simple
NTP-Dämon für einfache Zeitserver.
- (ntp-refclock) NTP-Dämon
welcher verschiedene Zeitsignal-Empfänger unterstützt.
- (ntp-doc)
Ausführliche HTML-Dokumentation für das ntp- und ntpdate-Paket.
Das Paket 'ntp-simple' kann sich anhand von andern Zeit-Servern im Internet
synchronisieren, ist kein anderer Server vorhanden, so wird typischerweise die intern CMOS-Uhr
des Servers benutzt. Möchte man einen eigenen Zeit-Empfänger, wie z.B. einen
DCF77-Empfänger zur Synchronisation nutzen, so ist anstatt: 'ntp-simple' das
Paket: 'ntp-refclock' zu verwenden.
Konfiguration
Der NTP-Dämon liest seine
Konfigurationsparameter aus einer Datei: 'ntp.conf' die sich im Verzeichnis:
'/etc'
befindet. Unter Debian ist diese Datei schon vorkonfiguriert (die meisten Zeilen
sind auskommentiert) und kann eigentlich fast unverändert belassen werden:
Konfigurationsdatei für NTP-Server: /etc/ntp.conf |
# /etc/ntp.conf, configuration
for ntpd
# ntpd will use syslog() if logfile is not defined
#logfile /var/log/ntpd
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats
peerstats clockstats
filegen loopstats file
loopstats type day enable
filegen peerstats file
peerstats type day enable
filegen clockstats file
clockstats type day enable
# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server vision.eusterholz.tld
# DCF77 Stratum-1
server
barricade.eusterholz.tld
server joshua.eusterholz.tld
server ptbtime1.ptb.de
# Physikalisch-Technischen Bundesanstalt
# pool.ntp.org maps to more than 100 low-stratum NTP servers.
# Your server will pick a different set every time it starts up.
# *** Please consider joining the pool! ***
# *** <http://www.pool.ntp.org/#join> ***
server de.pool.ntp.org
#server pool.ntp.org
## uncomment for extra reliability
# ... and use the local system clock as a reference if all else
fails
# NOTE: in a local network, set the local stratum of *one* stable
server
# to 10; otherwise your clocks will drift apart if you lose
connectivity.
server 127.127.1.0
fudge 127.127.1.0 stratum 13
# By default, exchange time with everybody, but don't allow
configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1 nomodify
# Clients from this (example!) subnet have unlimited access,
# but only if cryptographically authenticated
#restrict 192.168.123.0 mask 255.255.255.0 notrust
# If you want to provide time to your local subnet, change the next
line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255
# If you want to listen to time broadcasts on your local subnet,
# de-comment the next lines. Please do this only if you trust
everybody
# on the network!
#disable auth
#broadcastclient |
Normalerweise enthält die Datei: 'ntp.conf'
mindestens eine oder mehrere Zeilen mit dem Schlüsselwort: 'server' (gelbe
Markierung). Jede dieser Zeilen
gibt eine Referenzzeitquelle an, die entweder ein anderes Gerät im Netzwerk sein
kann, oder auch eine Funkuhr, die direkt an den Computer angeschlossen ist.
Referenzzeitquellen werden durch eine
IP-Adresse angegeben oder auch durch einen Hostname. Wenn es sich bei einer IP-Adresse um ein real
existierendes Gerät im Netzwerk handelt, geht der NTP-Dämon davon aus, dass
auf dem Gerät mit der IP-Adresse ein weiterer NTP-Dämon läuft, den er
kontaktieren kann. Weiterhin verwendet NTP einige Pseudo-IP-Adressen, die
normalerweise im Netzwerk nicht verwendet werden, um spezielle Zeitquellen wie
z.B. Funkuhren zu adressieren.
Um die eigene Systemuhr (CMOS-Uhr) anzusprechen,
bei NTP wird diese 'local clock' genannt, verwendet NTP die Pseudo-IP-Adresse:
'127.127.1.0'.
NTP synchronisiert nicht einfach alle
beliebigen Zeitquellen untereinander, sondern bildet eine Hierarchie von
Zeitservern und Clients. Eine Hierarchieebene wird als Stratum bezeichnet,
wobei Stratum-0 die höchste Ebene darstellt.
Da die lokale CMOS-Uhr nicht sehr
genau ist, sollte ihr Stratum auf einen hohem Wert gesetzt werden (z.B.
Stratum 13).
Je größer der Wert ist, um so ungenauer
ist die Zeit anzunehmen (grüne Markierung).
In der Datei: '/etc/driftfile' steht die Zeit, die pro
Sekunde zur lokalen Zeit addiert oder subtrahiert wird, damit sich die
Systemzeit langsam der Referenzzeit anpassen kann (orange Markierung).
Mit 'statdir' wird das Verzeichnis festgelegt indem
Statistiken abgelegt werden. Die Einstellungen für die generierten Statistiken
werden in den folgenden Zeilen festgelegt (blaue Markierung).
Wurden Änderungen in der NTP-Konfigurationsdatei gemacht so
ist der Dämon mit: '/etc/init.d/ntp-server
restart' erneut zu starten.
Damit der Rechner im eigenen Netzwerk als Time-Server arbeiten
kann, müssen in der Konfigurationsdatei: '/etc/inetd.conf'
folgende vier Zeilen aktiviert werden (Kommentarzeichen entfernen):
Auszug aus: /etc/initd.conf
(ca. Zeile: 23) |
#:INTERNAL: Internal services
#echo
stream tcp nowait root
internal
#echo
dgram udp wait
root internal
#chargen stream tcp
nowait root internal
#chargen dgram
udp wait root
internal
#discard stream tcp
nowait root internal
#discard dgram
udp wait root
internal
daytime
stream tcp nowait root
internal
daytime dgram
udp wait root
internal
time
stream tcp nowait root
internal
time
dgram udp wait
root internal |
Nach dem Neustart des Super-Dämons: 'inetd'
können Clients den Time-Server nutzen.
Anmerkungen
Um sich alle eingebunden Zeitserver anzeigen zu lassen, bzw.
um die Funktionalität des Timer-Server zu prüfen, können die Kommandos: 'ntpq
-p' bzw. 'ntpdc -p' auf der
Konsole genutzt werden. Hier ein Beispiel mit: 'ntpq
-p':
experimental:~# ntpq -p
remote
refid st t when poll reach delay
offset jitter
==============================================================================
*vision.eusterho .DCFa.
1 u 21 64 37 0.446
327.837 153.523
-barricade.euste LOCAL(0) 11 u
16 64 37 0.335 -44.103
14.003
joshua.eusterho 192.168.0.10 2 u
17 64 37 0.376 12.581
21.500
+ntp1.ptb.de .PTB.
1 u 19 64 37 81.198
296.847 69.238
+81-5-136-18.dsl 152.78.128.61 3 u 19
64 37 93.685 315.367 13.559
LOCAL(0) LOCAL(0)
13 l 20 64 37 0.000
0.000 0.004
In der Spalte: 'remote' sind die abgefragten Time-Server von der obrigen
Konfiguration zu finden. In der Spalte: 'st' ist der jeweilige Stratum-Wert zu
entnehmen. Die erste Zeile repräsentiert einen Time-Server mit DCF77-Empfänger
mit dem Stratum-Wert '0'.
Der NTP-Dämon berichtigt die Zeit nur in kleinen Schritten, dieses geschieht
durch Dehnung, bzw. Stauchung der Systemzeit. Ist die Differenz zwischen
Referenzzeit und Systemzeit zu groß findet eine Korrektur nicht statt, da der
Dämon von einer falschen Referenzzeit ausgeht. In diesem Fall sollte die
Systemzeit ungefähr mit dem Kommando: 'hwclock'
festgelegt werden, alternativ kann auch die Zeit im BIOS des Rechners
eingestellt werden.
Für den Zugriff auf einen Time-Server wird der UDP-Port: '123'
verwendet, hierüber erfolgt der Zeitabgleich. Es darf kein Firewall verwendet
werden der diesen Port filtert.
[ Home ] [ Nach oben ] [ NTP-Server ] [ Synchronisation ] [ NTP-Client ]
letzte Änderung:
24. März 2005 |