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  |