Mit der Zeit gehen
NTP und andere Zeit-Server
Zeitverteiler im LAN
Wenn Sie ein eigenes lokales Netzwerk betreiben, wollen Sie die Uhrzeit wahrscheinlich auf alle Rechner weiterverteilen. Freilich könnte jede Workstation selbstständig eine Synchronisation mit einem externen Server durchführen.
Alternativ definieren Sie einfach Ihren Router als primitiven Zeitserver für das alte rdate-Protokoll [5]. Dieses ist immerhin auf Zehntelsekunden genau und sollte für den Hausgebrauch völlig ausreichen. Großer Vorteil: Sie benötigen keinen eigenen Daemon mit eigenen Sicherheitsrisiken, denn die Unterstützung für rdate ist im inetd-Server bereits eingebaut, also jenem Super-Server, der auf fast allen Linux-Computern aktiv ist und die Verteilung ankommender Netzwerkverbindungen zu den ganzen "kleinen" Daemonen erledigt.
Auf Server-Seite aktivieren Sie dieses Protokoll durch einen Eintrag in /etc/inetd.conf oder /etc/xinetd.d. Denken Sie daran: Änderungen in diesen Dateien müssen Sie dem zugehörigen Daemon durch einen Befehl wie killall -HUP inetd mitteilen.
Listing 1
rdate über inetd
# Variante 1: time (rdate)-Eintrag für /etc/inetd.conf time stream tcp nowait root internal
Die Konfiguration in Listing 1 gilt immer dann, wenn Ihr Computer mit inetd arbeitet. Meistens befindet sich eine solche oder ähnliche Zeile bereits in der Konfigurationsdatei /etc/inetd.conf und muss nur noch durch Entfernen des # am Zeilenanfang aktiviert werden.
Listing 2
rdate-Konfiguration für xinetd
# Variante 2: time (rdate)-Eintrag als
# eigene Datei /etc/xinetd.d/time
service time
{
type = INTERNAL
id = time-stream
socket_type = stream
protocol = tcp
user = root
wait = no
disable = no
}
Verwenden Sie ein System mit dem neueren xinetd, zeigt Listing 2 die entsprechende Konfiguration. Hier legt man für jedes gewünschte Protokoll eine eigene Konfigurationsdatei in einem Kontrollverzeichnis an. Und wieder gilt: Wahrscheinlich befindet sich solch eine Datei bereits auf Ihrem Computer und muss nur noch aktiviert werden. Ändern Sie dazu disable = yes zu disable = no, wie im Beispiel gezeigt.
Jeder andere Rechner des Netzwerks kann nun vom so konfigurierten Server die Zeit abfragen. Angenommen, Ihr Router verwendet die private IP-Adresse 172.16.45.1, so lautet der Befehl zum Setzen der lokalen Zeit auf einem Client-Rechner rdate -s 172.16.45.1. Es empfiehlt sich, anschließend auch die Hardware-Uhr zu aktualisieren, zum Beispiel mit dem Dienstprogramm hwclock. Am besten legen Sie auf Ihren Client-Computern einen Eintrag in der crontab von root an, sodass die beiden Befehle einmal in der Stunde automatisch ausgeführt werden:
9 * * * * /usr/bin/rdate -s 172.16.45.1; /sbin/hwclock --systohc --utc
Ausblick
Einmal eingerichtet, sorgt NTP unauffällig und im Hintergrund dafür, dass Ihre Computer immer mit der korrekten Uhrzeit versorgt werden. Wenn Sie sich genauer für die Arbeit der zugehörigen Daemonen interessieren, lesen Sie sich zunächst einmal die Manpages zu ntpd oder auch hwclock durch. Ist Ihr Wissendurst dann noch nicht gestillt, empfehle ich die sehr ausführliche und informative Web-Seite zu NTP [1] (pju).
Glossar
Daemon
Dienst-Programm, das im Hintergrund eines Unix-Systems läuft, ohne die darauf arbeitenden Benutzer zu behelligen.
Paketlaufzeiten
Über's Internet zu übertragende Daten werden auf Absenderseite in Pakete verpackt und vom Empfänger wieder ausgepackt und in einer für die jeweilige Anwendung passenden Form zusammengesetzt. Die Paketlaufzeit gibt an, wie lange ein solches Datenpaket von A nach B braucht. Wenn Hin- und Rückweg nennenswert unterschiedlich lange dauern, spricht man von Asymmetrie.
Syslog
Der System-Logging-Daemon syslogd protokolliert entsprechend seiner Konfiguration in /etc/syslog.conf für das System relevante Fehler- und Statusmeldungen mit, gibt sie auf einer Konsole aus und/oder legt sie in Dateien unterhalb von /var/log ab.
Infos
[1] Web-Seite zum Network Time Protocol: http://www.eecis.udel.edu/~ntp/ (auch unter http://www.ntp.org/ zu erreichen)
[2] Liste öffentlich zugänglicher NTP-Server: http://www.eecis.udel.edu/~mills/ntp/servers.htm
[3] David Mills: RFC 2030, "Simple Network Time Protcol (SNTP) Version 4 for IPv4, IPv6 and OSI", ftp://ftp.isi.edu/in-notes/rfc2030.txt
[4] David Mills: RFC 1305 (STD-0012), "Network Time Protocol (Version 3): Specification, Implementation and Analysis", ftp://ftp.isi.edu/in-notes/rfc1305.txt
[5] Jon Postel und Ken Harrenstien: RFC 868 (STD-0026), "Time Protocol", ftp://ftp.isi.edu/in-notes/rfc868.txt



