Time Services

von Martin Gräff (Ausgabe 96/2, Juni 1996)

 

Seit mehreren Jahren ist eine Uhrenfunktion ein fester Bestandteil jedes Arbeitsplatzrechners. Dieses wird mittels einer internen Uhr realisiert, die eine eigene netzunabhängige Stromversorgung hat und daher auch bei ausgeschaltetem Rechner weiterläuft. Das Betriebssystem kann die Uhrzeit (Systemzeit) dieser Uhr auslesen bzw. stellen. Abhängig vom Betriebssystem läuft die Uhr entweder in Lokalzeit oder in UTC-Zeit (Universal Time Coordinated), die früher auch GMT-Zeit (Greenwich Mean Time) genannt wurde.

Das Verhältnis zwischen Lokalzeit und UTC-Zeit wird durch die Zeitzone und durch die Regeln für die Umschaltung zwischen Normalzeit und Sommerzeit bestimmt. Bei korrekter Definition dieser Zeitzone und der Umschaltregeln ("Repräsentation") kann ein Programm auf einem Rechner über das Netzwerk eine Zeitquelle nach der UTC-Zeit befragen und die Uhrzeit auf dem lokalen Rechner korrigieren. Die dem Benutzer angezeigte Uhrzeit wird aus Systemzeit und Repräsentation gebildet; Timeserver helfen die Systemzeit genau zu halten; für eine korrekte Konfiguration der Repräsentation ist der Benutzer verantwortlich. Beim Studium von Uhren in einem Rechnerverbund stoßen wir auf drei unabhängige Begriffe:

  • Die Uhr auf einem Rechner kann akkurat sein, das heißt sie zeigt jetzt gerade die richtige Zeit.
  • Die Uhr kann präzise sein; in diesem Fall wird die richtige Zeit auch in ein paar Stunden noch verfügbar sein.
  • Und zuletzt können zwei Uhren synchron sein und daher jederzeit dieselbe Zeit anzeigen.

Dieser Beitrag beschäftigt sich mit Time Services und damit mit der Aufgabe, Uhren, die weder richtig noch genau sind, mit einer akkuraten und präzisen Zeitquelle synchron zu halten. Die Referenzzeit der Timeserver der Universität Wien wird mittels einer Funkuhr gebildet, die ihre Zeitinformation vom PTB-Sender DCF77 in Mainflingen bei Frankfurt erhält und in die Timeserver einspeist. Auch bei gestörtem Empfang oder vorübergehendem Senderausfall liefert das Empfängermodul durch die eingebaute Quarzuhr sehr genaue Zeitinformationen. Zusätzlich werden mehrere Timeserver gegeneinander synchron gehalten, um die Fehleranfälligkeit zu minimieren.

Die folgenden Szenarios sollen beispielhaft erklären warum eine genaue und richtige Uhr auf einem Arbeitsplatzrechner sinnvoll ist.

Ich suche die Datei die ich Freitag um 8 Uhr ...

...aber wie spät war es Freitag um 8 Uhr auf meinem Rechner? Aha, zwei Tage, 6 Stunden und 11 Minuten muß ich abziehen ... Jetzt sollte ich aber die Uhr wohl richtigstellen, da läutet das Telefon ...

Workgroup

Bei Anwendungen für Arbeitsgruppen sind korrekt arbeitende Uhren eine leicht verständliche Voraussetzung. Ein elektronischer Terminkalender sollte zuverlässig einen Termin zur richtigen Zeit ankündigen; die Terminvereinbarungen müssen in unserer Notation der Zeit eingegeben werden und die Berücksichtigung von Sommerzeitumstellungen sollte der Computer durchführen: "Zumindest rechnen sollte er doch können".

Client-Server-Anwendungen

Bei der Kommunikation zwischen Servern und Klienten muß der Server die Berechtigung des Klienten überprüfen. Einfache Protokolle sind anfällig auf sogenannte Replay-Attacken, hier hört der Angreifer die Kommunikation zwischen Server und Klient ab und verwendet diese Pakete später, um sich die Identität und die Zugriffsrechte des belauschten Klienten zu verleihen. Viele Protokolle verwenden daher heute Zeitstempel und Pakete mit einer Gültigkeitsdauer von wenigen Minuten, um derartige Angriffe zu erschweren. Klarerweise funktioniert die Anwendung nicht, wenn die Uhren von Klient und Server zu stark differieren, denn der Klient schickt dann entweder nicht mehr oder noch nicht gültige Pakete an den Server.

Timeserver und ihre Kunden

Timeserver haben entweder direkten Zugang zu genauen Zeitquellen oder sie synchronisieren ihre Systemzeit durch ein Protokoll, das hohen Genauigkeitsanforderungen genügt und die Verzögerungen durch den Transport der Nachrichten im Netzwerk kompensiert. Die Systemzeit eines Timeservers darf durch die Synchronisierung nicht sprunghaft verändert werden, sonst wird das System der Uhren nie zu einem eingeschwungenen Zustand konvergieren. Korrekturen der Systemzeit müssen daher durch Verlangsamung oder Beschleunigung der Systemzeit durchgeführt werden.

Die Klienten beziehen die Zeitinformation von den Timeservern im LAN und können entsprechend einfachere Protokolle verwenden. Der Klient erhält vom Timeserver die aktuelle Uhrzeit und setzt die Systemzeit; ein kleiner Sprung in der Systemzeit bereitet dem Betriebssystem in der Regel keine Probleme.

Protokolle

Die Synchronisierung der Uhrzeit in Rechnernetzwerken ist ein Problem, für das viele Lösungen geschaffen wurden. Drei Protokolle finden in inhomogenen Netzwerken breitere Verwendung:

  • das Time Protocol nach RFC 868,
  • das Network Time Protocol (NTP) nach RFC 1305,
  • das Simple Network Time Protocol (SNTP) nach RFC 1769.

Das NTP-Protokoll wurde zur Synchronisation von Rechneruhren im globalen Internet geschaffen. Es bietet umfangreiche Mechanismen zur Organisation der Zeitsynchronisation und korrigiert die Verzögerungen durch den Nachrichtentransport im WAN-Bereich. NTP bietet im Internet typischerweise Genauigkeiten von 1 bis 50ms. Eine volle Implementierung des NTP-Protokolls wird natürlich nicht auf jedem Arbeitsplatzrechner benötigt. Diese Erkenntnis führte zur Entwicklung des abgemagerten SNTP-Protokolls. Das SNTP-Protokoll erlaubt ähnlich wie das wesentlich ältere Time-Protokoll die Abfrage der Uhrzeit von einem Time-Server; in einem Netzwerk werden daher nebeneinander verschiedene Protokolle Anwendung finden:

  • NTP-Protokoll zur Synchronisation von Time-Servern
  • NTP-Protokoll auf Klienten
  • Time-Protokoll bzw. SNTP-Protokoll auf Klienten

Konfiguration von Timeservern an der Universität Wien

Für Klienten an der Universität Wien stehen zwei Timeserver zur Verfügung:

  • ts1.univie.ac.at (IP-Adresse: 131.130.1.11)
  • ts2.univie.ac.at (IP-Adresse: 131.130.1.12)

die beide Anfragen mittels NTP- und Time-Protokoll erlauben. Diese Server liefern bei Anfrage die Uhrzeit in UTC-Zeit, die Übersetzung in lokale Zeit und die Berücksichtigung der Sommerzeit müssen durch die Systemsoftware durchgeführt werden. Der Offset der Zeitzone für Österreich wird generell als GMT-1 und bei Microsoft-Betriebssystemen als GMT+1 angegeben (Ende der Sommerzeit 1996: letzter Sonntag im Oktober, d.h. 27.10. um 3.00 Uhr MESZ).

Zeitsynchronisationsprogramme

Die Konfiguration von UNIX-Rechnern als Klient wird am besten durch regelmäßigen Aufruf in einem cron-Job durchgeführt. Typische Namen für Zeitsynchronisationsprogram-me unter UNIX sind setclock und ntpdate. Wenn Ihr UNIX-Rechner kein solches Programm zur Verfügung stellt, können Sie auf den Quellcode eines einfachen setclock-Programms zurückgreifen, der am FTP-Server der Universität Wien abgelegt ist.

Unter DOS mit PC/TCP-Software oder OnNet-Software kann die Systemzeit mit dem Programm SETCLOCK.EXE gesetzt werden. Durch Eintragung des Befehls

setclock ts1.univie.ac.at

in der Datei AUTOEXEC.BAT wird die Systemzeit des Rechners bei jedem Neustart gesetzt. Diese Vorgehensweise wird natürlich nur dann Erfolg haben, wenn vor dem Aufruf von SETCLOCK.EXE der TCP-Kernel gestartet wird.

Unter OnNet 2.0 steht das Programm zum Setzen der Systemzeit hinter dem Icon Network Time in der Programmgruppe OnNet 2.0. Es kann zwischen den beiden Operationsmodi Setzen der Systemzeit und Periodisches Anpassen gewählt werden.

OnNet 2.0 Programmgruppe

Unter Windows 3.x, Windows 95 und Windows NT kann die Uhr mit dem Programm NETDATE.EXE auf Takt gebracht werden, das auf Windows Sockets aufsetzt. Die FreeWare Programme sind auf dem FTP-Server der Universität Wien in Versionen für Windows 3.x bzw. Windows 95 und Windows NT archiviert.

Setzen der Systemzeit mit "Network Time"
Konfiguration von "Netdate"

Hinweise zur Konfiguration von Klienten zur Zeitsynchronisation

Das EDV-Zentrum der TU Wien stellt nähere Informationen zur Konfiguration von PC-Klienten zur Zeitsynchronisation auf einem FTP-Server zur Verfügung. Sie finden dort Hinweise für folgende Software:

  • PCs mit der TCP/IP Software OnNet 2.0
  • PCs mit der TCP/IP Software PC/TCP 2.3
  • PCs mit der TCP/IP Software PC/TCP 3.0
  • PCs unter Windows 95
  • PCs unter Windows NT

Für die Unix-Systeme AIX, HP-UX, Solaris, SunOS, Linux und Irix befinden sich ähnliche Hinweise im selben Verzeichnis. In der Datei timeserver wird unter anderem die Zeitsynchronisation von Novell Servern unter Netware 4 besprochen.