OpenNTPD
OpenNTPD ist eine freie Implementation des Network Time Protocols und wird im Rahmen des OpenBSD Projektes entwickelt. Der Daemon kann sowohl dazu verwendet werden die Systemzeit abzugleichen als auch selbst die Zeit bereitzustellen.
Installation
OpenNTPD kann aus dem [community] Repo installiert werden:
# pacman -S openntpd
Die Standardkonfiguration kann dazu genutzt werden die Zeit des lokalen Rechner mit verfügbaren NTP-Servern zu synchronisieren. Die Konfigurationseinstellungen finden üblicherweise in /etc/ntpd.conf
statt.
Um eine Sychronisation mit einem definierten Server zu konfigurieren wird die "server" Direktive innerhalb verwendet. Es können alle NTP-Server verwendet werden, die entsprechend konfiguriert wurden. Eine Liste mit Servern in der Nähe kann unter www.pool.ntp.org/zone/@ eingesehen werden.
server ntp.example.org
Sollte ein DNS Eintrag mehrere IP-Adressen beinhalten, so kann abstatt "server" "servers" verwendet werden. In diesem Fall werden alle IP-Adressen zur Synchronisation verwendet. Standardmäßig ist pool.ntp.org konfiguriert, welches in den meisten Fällen ausreichend sein sollte. Hier verbergen sich immer multiple NTP-Server IP-Adressen hinter dem DNS-Record.
pool.ntp.org
Die Anzahl der "server" bzw. "servers" Direktiven ist nicht begrenzt, so dass multiple Quellen konfiguriert werden können.
Sollten der Server auf dem sich OpenNTPD befindet gleichzeitig als Zeitserver für andere Clients dienen, so kann dies mit Hilfe der "listen" Direktive konfiguriert werden.
Zum Beispiel würde:
listen on *
OpenNTPD dazu bringen auf allen angeschlossenen Interfaces zu lauschen und mit
listen on 127.0.0.1
würde er nur am loopback interface horchen.
Der Zeitserver startet mit der Auslieferung der eigenen Zeit an seine Clients erst nachdem er selbst die korrekte Zeit besitzt. Die Synchronisation kann dabei einige Zeit in Anspruch nehmen, je nachdem wie genau ihr System ist. Ein manuelles setzen der korrekten Systemzeit vor dem Start von OpenNTPD kann diese Wartezeit merklich verringern.
OpenNTPD über systemd aktivieren
Sollte auf dem Zielsystem systemd eingesetzt werden, so muss der OpenNTPD dienst noch aktiviert werden. Dies geschieht zum einen mit:
# systemctl enable openntpd
und zum anderen über:
# systemctl start openntpd
Ein Neustart ist dabei nicht erforderlich. Sollte das "enable" vergessen werden, so wird die Systemzeit nach dem nächsten Reboot sehr wahrscheinlich auf dem 1.1.1970 stehen.
Fehlerbeseitigung
Error adjusting time
Sollte sich die Zeit nicht korrekt synchronisieren und im Log folgendes stehen:
openntpd adjtime failed: Invalid argument
Versuchen Sie:
ntpd -s -d
Damit lässt sich das System manuell synchronisieren und man sieht evtl. auch den Grund für die nicht Erreichbarkeit der Zielserver. Eine weiteren Hinweis kann die Ausgabe von:
# systemctl status openntpd
liefern. Der korrekte Start sollte in etwa folgendes ausgeben:
openntpd.service - OpenNTP Daemon Loaded: loaded (/usr/lib/systemd/system/openntpd.service; enabled) Active: active (running) since Sa 2013-11-09 01:27:57 CET; 17h ago Process: 140 ExecStart=/usr/bin/ntpd -s (code=exited, status=0/SUCCESS) CGroup: /system.slice/openntpd.service ├─146 /usr/bin/ntpd -s └─159 /usr/bin/ntpd -s