Zeitsyncronisation für Raspberry Pi OS

Permalink

Schon im Jahr 2012 habe ich über das Setzen der Zeit unter Linux geschrieben. Damals habe ich beschrieben wie man mit ntpd unter Debian die lokale Zeit des Servers immer aktuell halten kann. Das Programm ntpd tut allerdings mehr als nur die Zeit zu synchronisieren. Es dient auch gleichzeitig als Server der wiederum anderen Computern die Zeit übermitteln kann.

Eine etwas schmalere Lösung die wirklich nur die Zeit abruft ist mit systemd-timesyncd verfügbar. Für Raspberry Pi OS, einen Ableger von Debian für die namensgebende Platine, ist das auch der vorgesehene Weg.

Die Installation entfällt auf dem genannten Betriebssystem weil es bereits zum grundlegenden System dazu gehört. Lediglich die Konfiguration kann man noch anpassen.

Wenn man prüfen will wie der Status der Zeitsynchronisation auf dem eigenen Server ist kann man den Befehl timedatectl status benutzen. Dieser gibt Auskunft über die Zeit und ob eine Synchronisierung mittels des Protokolls NTP vorliegt.

Konfiguration

Es gibt drei priorisierte Arten über die der NTP-Server ermittelt werden kann. Auf Ebene der einzelnen Netzwerke (zum Beispiel des heimischen WLans) kann ein Server gesetzt sein. Wenn dies nicht der Fall ist wird eine Liste von NTP-Server herangezogen und danach eine zweite Liste von NTP-Servern (Fallback).

Der NTP-Server des Netzwerks wird nicht durch die Konfiguration von systemd-timesyncd eingestellt sondern ist Teil der manuellen oder automatischen (DHCP) Netzwerkeinstellungen.

Die beiden Listen können aber in der Konfigurationsdatei /etc/systemd/timesyncd.conf festgelegt werden. Dort kann in einer Zeile beginnend mit NTP= eine Liste von NTP-Server angegeben werden. Die Einzelnen Einträge werden mit Leerzeichen getrennt. Die zweite Liste beginnt mit FallbackNTP =. Die Einträge hier werden genutzt wenn die Server aus der ersten Liste alle nicht verfügbar sind.

Nach Änderungen kann man diese wirksam werden lassen in dem man timesyncd neu startet:

sudo systemctl restart systemd-timesyncd

Statusinformationen

Mittels timedatectl show-timesync --all kann man sich ausgeben lassen welche NTP-Server in allen drei Prioritätsstufen konfiguriert sind und welcher aktuelle genutzt wird.

Die einfache Nutzung von timedatectl status habe ich ja oben schon angesprochen. Mit timedatectl timesync-status bekommt zusätzliche Informationen aus dem technischen Unterbau des NTP.

Serverwahl

Wenn man eine Fritzbox als Router benutzt kann diese auch als NTP-Server für alle Computer im Netzwerk fungieren. Im Webinterface der Fritzbox links auf Heimnetz und dann auf Netzwerk klicken. Im rechten Bereich anschließend den Tab Netzwerkeinstellungen öffnen und dort im Abschnitt Zeitsynchronisation die gewünschten, externen Server angeben und einen Hacken setzen. Den Namen fritz.box von allen Fritzboxen muss dann wie oben beschrieben in der Konfiguration angeben.

Als externen Zeitserver für die Fritzbox würde ich das NTP Pool Project empfehlen.