%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Das Netdate-Paket}

    Dieses Paket wurde initial von Gilbert Forkel (E-MAIL \kmail{gforkel@web.de})
    zusammengestellt und wurde von J"urgen Edner (E-MAIL \kmail{juergen@eisfair.org})
    "uberarbeitet.


\section{Die Einleitung}

    Jeder Computer besitzt zwei Uhren, eine Hardware- und eine Software-Uhr. Die
    Hardware-Uhr befindet sich auf der Systemplatine des Rechners (Motherboard)
    und l"auft auch bei ausgeschaltetem Rechner weiter. Eine Batterie sorgt f"ur
    die Spannungsversorgung im ausgeschalteten Zustand.
    Startet man nun den Linux-Server, so nimmt die Software- oder auch Systemuhr,
    nachdem sie ihre initiale Zeit und das Datum von der Hardware-Uhr bezogen hat,
    ihren Dienst auf. Da die Systemuhr der Prozessorlast unterliegt f"uhrt dies
    zwangsweise dazu, dass nach einiger Zeit beide Uhren nicht mehr synchron laufen.

    An dieser Stelle kommt das Netdate-Paket ins Spiel.

    Beim Rechnerstart, manuell, oder in regelm"a"sig Intervallen "uber einen Cron-Job
    gesteuert, wird nun die Systemuhr mit einem Zeitserver im Internet oder im lokalen
    Netzwerk abgeglichen. Anschlie"send wird die Hardware-Uhr nach diesen Vorgaben
    eingestellt.


\section{Die Funktionen}

    Das Netdate-Paket besteht aus folgenden Komponenten:

    \begin{itemize}
        \item Netdate - wird zum Zeitabgleich mit einem Zeitserver genutzt.

        \item Hwclock - wird zum Stellen der Hardware-Uhr verwendet.\\
    \end{itemize}

\section{Die Voraussetzungen}

    Dieses Paket ben"otigt zum Zeitabgleich Zugriff auf einen Zeitserver
    im Internet oder lokalen Netzwerk (Intranet). Standardm"a"sig wird
    f"ur den Abgleich das UDP-Protokoll verwendet.


\section{Die Installation}

    Das Netdate-Paket wird "uber das Setup-Men"u installiert. Wird eine "altere
    Paketversion vorgefunden, so wird diese deinstalliert bevor die neuen
    Programmdateien installiert werden. Nach dem Installieren der Programmdateien
    wird direkt der Konfigurations-Editor gestartet um die Konfiguration anzupassen.
    Nach Beendigung dieses Schrittes werden die Konfigurationsdateien generiert
    und alle ben"otigten Programme gestartet.


\section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \begin{itemize}
        \item Netdate administration
        \begin{itemize}
            \item View documentation: Anzeigen der Dokumentation
            \item Edit configuration: Bearbeiten der Konfiguration
            \item Advanced configuration file handling: Konfigurationen verwalten
            \item Show current time [hw/sw]: Anzeigen der aktuellen Zeit\\
            (Hardware- und Software-Uhr)
            \item Syncronize time: Zeitabgleich manuell durchf"uhren
        \end{itemize}
        \item Return: Untermen"u verlassen
    \end{itemize}

    Die Men"upunkte d"urften selbsterkl"arend sein, da sie keinerlei weitere
    Eingabe erwarten. Deshalb wird auf deren Funktion nicht weiter eingegangen.


\section{Die "Anderung der Konfiguration}

    Die Konfiguration kann "uber den Men"upunkt 'Edit configuration' ge"andert
    werden. Standardm"a"sig wird der Editor aufgerufen, der in der Environment-
    Konfiguration "uber die Variable 'EDITOR' festgelegt wurde. Wird dies
    best"atigt, werden "uber ein Skript die Anpassungen umgehend wirksam gemacht.


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    sie unter /etc/config.d/netdate.


\section{Die Parameter}

\begin{description}
%%  JED - show this description only in the help file
 %  \config{NETDATE\_DO\_DEBUG}{NETDATE\_DO\_DEBUG}{NETDATEDODEBUG}
 %      Optionaler Parameter: Um den Debug-Modus zu aktivieren muss diese
 %      Variable lediglich auf den Wert `yes' gestellt werden. Die Einstellung
 %      `no' deaktiviert den Debug-Modus.
 %
 %      G"ultige Werte: yes, no
 %
 %      Standardeinstellung: \texttt{NETDATE\_DO\_DEBUG='no'}

    \config{START\_NETDATE}{START\_NETDATE}{STARTNETDATE}
        F"ur die Aktivierung des Netdate-Programms muss diese Variable lediglich
        auf den Wert 'yes' gestellt werden. Die Einstellung 'no' deaktiviert das
        Netdate-Programm.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{START\_NETDATE='yes'}

    \config{NETDATE\_LOGGING}{NETDATE\_LOGGING}{NETDATELOGGING}
        Wird dieser Parameter auf 'yes' gestellt, so wird bei jedem Zeitabgleich
        eine Meldung in die System-Logdatei geschrieben, bei 'no' wird dies
        unterlassen.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{NETDATE\_LOGGING='yes'}

     \config{NETDATE\_SYNC\_TIME\_ON\_STARTUP}{NETDATE\_SYNC\_TIME\_ON\_STARTUP}{NETDATESYNCTIMEONSTARTUP}
        Wird dieser Parameter auf 'yes' gestellt, so wird bei jedem Neustart des
        Rechners ein Zeitabgleich durchgef"uhrt. Wird der Parameter auf 'no'
        gesetzt, so wird diese Funktion deaktiviert.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{NETDATE\_SYNC\_TIME\_ON\_STARTUP='yes'}

    \config{NETDATE\_TIMESERVER}{NETDATE\_TIMESERVER}{NETDATETIMESERVER}
        "Uber diese Parameter wird der Zeitserver definiert, der f"ur einen
        Zeitabgleich genutzt werden soll. Dabei ist es m"oglich auch mehrere
        Zeitserver anzugeben, mit denen gleichzeitig ein Zeitabgleich
        durchgef"uhrt werden soll. Die Server m"ussen dann jeweils durch ein
        Leerzeichen von einander getrennt werden. Optional kann vor einem
        Server das Protokoll 'tcp' oder 'udp' angegeben werden. Wird kein
        Protokoll angegeben, so wird automatisch 'udp' verwendet.

        \achtung{Bei der Zeitsynchronisation treten in letzter Zeit vermehrt
        Probleme auf, weil von den Zeitservern das standardm"a"sige f"ur den
        Zugriff verwendete 'udp'-Protokoll gesperrt wurde. Dies kann, in
        Kombination mit einer nicht optimalen Timeout-Behandlung des
        netdate-Programms, dazu f"uhren, dass der Zeitabgleich z.B. beim
        Systemstart scheitert. Falls das beschriebene Fehlerbild auftritt,
        sollte man versuchen dem Zeitserver ein 'tcp' voranzustellen.}

        G"ultige Werte: Name eines Zeitservers

        Standardeinstellung: \texttt{NETDATE\_TIMESERVER='tcp ptbtime1.ptb.de tcp ptbtime2.ptb.de'}

    \config{NETDATE\_CRON}{NETDATE\_CRON}{NETDATECRON}
        Wird dieser Parameter auf 'yes' gestellt, so erfolgt ein automatisierter
        Zeitabgleich in dem "uber die Variable \jump{NETDATECRONSCHEDULE}{NETDATE\_CRON\_SCHEDULE}
        vorgegebenen Zeitintervall. Die Einstellung 'no' deaktiviert den
        automatischen Zeitabgleich.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{NETDATE\_CRON='yes'}

    \config{NETDATE\_CRON\_SCHEDULE}{NETDATE\_CRON\_SCHEDULE}{NETDATECRONSCHEDULE}
        Hier wird festgelegt zu welchem Zeitpunkt bzw. in welchem Intervall
        ein automatisierter Zeitabgleich erfolgen soll. Dieser Parameter wird
        nur verwendet, wenn \jump{NETDATECRON}{NETDATE\_CRON} auf 'yes' gesetzt
        wurde. Die f"unf Teilparameter haben dabei folgende Bedeutung:\\

        1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 - Wochentag.\\

        D.h. bei Verwendung der Standardeinstellung wird st"undlich, um 8 Minuten
        nach der voller Stunde, ein Zeitabgleich durchgef"uhrt. Wer N"aheres "uber
        die verwendete Befehlssyntax erfahren m"ochte, sollte "uber eine
        Internet-Suchmaschine nach 'man' und 'crontab' suchen.

        G"ultige Werte: Crontab-spezifischer Parametereintrag

        Standardeinstellung: \texttt{NETDATE\_CRON\_SCHEDULE='8 0-23/1 * * *'}
\end{description}


\section{Weitere Informationen}

    Wer mehr "uber Zeiten, Zeitabgleich oder Zeitserver erfahren m"ochte kann 
	"uber die folgende URL weitere Informationen im Internet abrufen:

    \url{http://www.bldrdoc.gov/timefreq/service/time-servers.html}
