Ebben a bejegyzésben megnézzük, hogy a debian alapú linux rendszereken hogyan tudjuk megoldani a pontos idő beállítását. Erre több mód is létezik, mi a timedatectl
és a systemd-timesyncd.service
szolgáltatással fogunk megismerkedni.
Alapfogalmak
UTC (Universal Time Coordinated)
Egyezményes koordinált világidő, mely a korábbi, 1961-ig alkalmazott Greenwitch-i GMT középidőt váltotta. A világidő alapját egy nagyon pontos atom óra adja.
RTC (Real Time Clock)
Informatikai eszközök általában saját hardveres órával is rendelkeznek. Általában egy kis elem látja el a hardveres órát, a működéséhez szükséges energiával.
NTP (Network Time Protocol)
A hálózati időprotokoll arra szolgál, hogy azok a csomópontok, melyek támogatják az NTP-t olyan számítógépek rendszeróráihoz szinkronizálják magukat, melyek atomórákhoz vannak beállítva.
LT (Local Time)
Az UTC-ből származtatott idő, melynek alapját az időzónák határozzák meg. Érdekesség, az UTC nullás zónát „Z” -vel jelölik, a NATO ZULU-nak mondja. Az UTC+1 az Alpha time, az UTC+2 a Bravo time és így tovább.
Idő szinkronizálás
Beállítások lekérdezése
Először is ellenőrízzük le, hogy a jelenlegi beállítások milyenek:
timedatectl
Egy lehetséges kimenet így néz ki:
Local time: h 2020-06-29 19:21:38 CEST Universal time: h 2020-06-29 17:21:38 UTC RTC time: h 2020-06-29 17:21:38 Time zone: Europe/Budapest (CEST, +0200) Network time on: yes NTP synchronized: no RTC in local TZ: no
A kimenetből az derül ki, hogy ez a csomópont nem egy NTP szervertől kéri le az időt, hanem a hálózaton keresztül egy dedikált csomópontról. Ami itt nem derül ki, hogy az általam használt csomópont egy dhcp szervertől kapja az ip címet, illetve azt is, hogy a lokális hálózatban mely dedikált szerver szolgáltatja a pontos időt. Amennyiben a TZ (Time Zone) nem a megfelelő zónára van állítva, azt az alábbiak szerint tudjuk orvosolni.
Időzóna beállítása
A lehetséges időzónák lekérdezéséhez az alábbi parancsot futtassuk:
timedatectl list-timezones
A kimenetben látható a lehetséges időzónák listája. Válasszuk ki a megfelelőt és állítsuk be:
timedatectl set-timezones Europe/Budapest
Szinkronizálás jelenlegi státusza
Kérdezzük le, a jelenlegi beállításokat:
systemctl status systemd-timesyncd.service
A lehetséges kimenetre egy példa:
systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/systemd-timesyncd.service.d └─disable-with-time-daemon.conf Active: active (running) since Mon 2020-06-29 22:21:38 CEST; 2s ago Docs: man:systemd-timesyncd.service(8) Main PID: 902 (systemd-timesyn) Status: "Connecting to time server 172.16.10.1:123 (172.16.10.1)." Tasks: 2 (limit: 9830) CGroup: /system.slice/systemd-timesyncd.service └─902 /lib/systemd/systemd-timesyncd jún 29 22:21:38 dbs systemd[1]: Starting Network Time Synchronization... jún 29 22:21:38 dbs systemd[1]: Started Network Time Synchronization.
A kimenetből látszik, hogy ez a csomópont a 172.16.5.1 ip című dedikált csomópontról kéri le a pontos időt.
NTP Szerver beállítása
Amennyiben azt szeretnénk, hogy egy NTP szerverről frissüljön a csomópontunkon az idő, a következő módon tehetjük meg. Nyissuk meg az alábbi konfigurációs állományt:
nano /etc/systemd/timesyncd.conf
Számunkra a következő sorok lényegesek:
[Time] NTP= #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
Alapértelmezetten a NTP=
szekcióban nincs megadva egyetlen NTP szerver sem. Itt megadhatunk egy NTP szervert, akár DNS névvel is. Amennyiben kikommentezzük a második sort, úgy másodlagos NTP szervereket adhatunk meg, itt már előre meg van adva néhány. Ezután adjuk ki a követekező parancsot:
systemctl daemon-reload systemctl restart systemd-timesyncd.service
Amennyiben ismét lekérjük a státuszt, látható, hogy a megadott NTP szervertől kéri le a csomópont a pontos időt. Ez esetben a timedatectl
kimenete is megváltozik az alábbiak szerint:
Local time: h 2020-06-29 19:21:38 CEST Universal time: h 2020-06-29 17:21:38 UTC RTC time: h 2020-06-29 17:21:38 Time zone: Europe/Budapest (CEST, +0200) Network time on: yes NTP synchronized: Yes RTC in local TZ: no
Konklúzó
Lokális hálózat időbeállításait úgy elegáns konfigurálni, hogy egy csomópontot konfigurálunk olyan módon, hogy az egy külső NTP szerverről kérje le a pontos időt, és a többi eszközt pedig olyan módon állítsuk be, hogy ettől a kitüntetett eszköztől kérjék a pontos időt.