Zeitsynchronisation mit NTP (Client/Server)

Linux Zeitsynchronisation mit NTP

Die Zeit spielt in unserem Leben eine immer größere Rolle. Damit nicht nur Funkuhren richtig ticken, sondern auch die der Rechner in einem Netzwerk, gibt es das "[LFA:WIKI:Network_Time_Protocol]Network Time Protocol[LFA:END]" (kurz: NTP). NTP basiert auf dem Client/Server-Prinzip. Ein Server (oder mehrere) bietet im Netzwerk die Uhrzeit an, und beliebig viele Clients synchronisieren ihre Uhrzeit mit diesem.

Dieses Dokument ist zu einer Zeit entstanden, als ich zur Einwahl ins Internet einen PC unter Debian GNU/Linux 2.2 (Potato) verwendet habe. Mittlerweile benutze ich einen Hardware-DSL-Router und lasse die Uhrzeit meiner Linux-Clients direkt von externen NTP-Servern abgleichen. Die Anleitung sollte aber trotzdem noch gültig sein.

Server-Konfiguration

Auf dem Server installierte ich zunächst die beiden Pakete ntp und ntpdate:

apt-get install ntp ntpdate

Anschließend editierte ich die Konfiguration des NTP-Prozesses, die in der Datei /etc/ntp.conf zu finden ist. In Deutschland ist die [LINK:START:132]Physikalisch-Technische Bundesanstalt[LINK:END] für die gesetzliche Zeit zuständig. Daher habe ich die beiden Zeitserver der PTB als Referenzquelle angegeben. Damit die Last der Zeitserver etwas verteilt wird, sollte besser gleich die Serveradresse "pool.ntp.org" eingetragen werden.

### Server:/etc/ntp.conf ####################################################
 
# Abweichungen
driftfile /var/lib/ntp/ntp.drift
 
# NTP-Server
server ptbtime1.ptb.de
server ptbtime2.ptb.de
 
# Zugriff durch NTP-Server gestatten
restrict ptbtime1.ptb.de
restrict ptbtime2.ptb.de
 
# Zugriff vom localhost gestatten (ntpq -p)
restrict 127.0.0.1
 
# Zugriff aus dem internen Netz gestatten
restrict 192.168.1.0 mask 255.255.255.0
 
# allen anderen Rechnern Zugriff verwehren
restrict default notrust nomodify nopeer
 
#############################################################################

Bevor der NTP-Daemon gestartet wurde, habe ich die Uhrzeit bereits erstmalig synchronisiert:

ntpdate ptbtime1.ptb.de

Wenn dabei eine zu hohe Differenz angezeigt wird, ist möglicherweise die Zeitzone nicht richtig eingestellt. Unter beiden Debian-Versionen muss in der /etc/timezone daher "Europe/Berlin" stehen. Konfigurieren kann man die Zeitzone mit dem Tool tzconfig. Mit dem folgenden Kommando wurde dann der NTP-Prozess und somit die Zeitsynchronisation auf meinem Server angestoßen:

/etc/init.d/ntp start

Client-Konfiguration

Auf meinem Client musste ich ebenfalls die NTP-Pakete installieren. Bei Debian 3.0 sind es jedoch drei Pakete:

apt-get install ntp ntp-simple ntpdate

Die Konfiguration des NTP-Daemons befindet sich auf der Client-Seite auch in der Datei /etc/ntp.conf. Die folgenden Zeilen sorgen dafür, dass sich der Client die Uhrzeit von meinem DSL-Router holt.

### Client:/etc/ntp.conf ####################################################
 
# Abweichungen
driftfile /var/lib/ntp/ntp.drift
 
# NTP-Server im LAN (siehe oben)
server 192.168.1.1
 
# Zugriff durch NTP-Server gestatten
restrict 192.168.1.1
 
# Zugriff vom localhost gestatten (ntpq -p)
restrict 127.0.0.1
 
# allen anderen Rechnern Zugriff verwehren
restrict default notrust nomodify nopeer
 
#############################################################################

Bevor auf dem Client der NTP-Daemon gestartet wurde, wurde die Uhrzeit wie beim Server auch erstmalig synchronisiert:

ntpdate 192.168.1.1

Mit dem folgenden Kommando wurde dann der NTP-Prozess und somit die Zeitsynchronisation mit meinem Server angestoßen:

/etc/init.d/ntp start

Falls das Start-/Stop-Script des NTP-Daemons (Server & Clients) beim Herunterfahren des Rechners die Uhrzeit nicht automatisch in die Realtime Clock (RTC) des Rechners schreibt, kann dieser Vorgang manuell durchgeführt werden:

hwclock --systohc

Um sich alle eingebundenen Zeitserver anzeigen zu lassen, verwendet man üblicherweise einen der beiden folgenden Befehle:

ntpq -p
ntpdc -p

Das wars... Alle Rechner im lokalen Netzwerk haben nun stets die korrekte Uhrzeit.

Artikelbewertung: 
2
Average: 2 (1 vote)
War dieser Artikel hilfreich?