NTP (Network Time Protocol) to protokół, który synchronizuje zegar Twojego urządzenia z dokładnym źródłem czasu po sieci. Brzmi banalnie, dopóki nie zorientujesz się, że zegary sprzętowe dryfują o kilka sekund dziennie, a połowa systemów IT zakłada, że wszyscy mają ten sam czas co do milisekundy. NTP pilnuje, żeby tak było — działa po UDP na porcie 123, a aktualna wersja to NTPv4 (opisana w RFC 5905).
Jak to działa
NTP układa źródła czasu w hierarchię nazywaną stratum. Stratum 0 to fizyczne zegary referencyjne (atomowe, GPS), stratum 1 to serwery podłączone bezpośrednio do nich, a każdy kolejny poziom synchronizuje się od wyższego. Twój komputer zwykle siedzi gdzieś na stratum 3–4 i jest mu z tym dobrze.
Sztuczka polega na tym, że NTP nie pyta po prostu „która godzina”. Klient mierzy, ile czasu pakiet leciał tam i z powrotem, oblicza opóźnienie sieci i odchylenie własnego zegara, a potem stopniowo koryguje czas — przyspiesza albo zwalnia zegar, zamiast brutalnie przeskakiwać. Dzięki temu unikasz sytuacji, w której logi nagle cofają się o sekundę i psują połowę analiz.
Przykład z praktyki
Na nowoczesnym Linuksie najczęściej spotkasz chrony albo systemd-timesyncd (klasyczny ntpd powoli odchodzi). Stan synchronizacji sprawdzisz tak:
timedatectl status— pokaże, czySystem clock synchronized: yes,chronyc tracking— wyświetli aktualny stratum, odchylenie i dryf zegara,chronyc sources -v— listę serwerów, z których ciągniesz czas.
Jako źródło zwykle wskazuje się pulę pool.ntp.org (np. pl.pool.ntp.org), która rozkłada ruch na setki ochotniczych serwerów na świecie.
Na co uważać
Najczęstszy błąd juniora: brak synchronizacji na serwerze i dziwienie się, czemu certyfikaty TLS „wygasły”, uwierzytelnianie Kerberos wywala błędy, a tokeny JWT są odrzucane. Większość tych mechanizmów toleruje rozjazd czasu liczony w sekundach — przekroczysz limit i wszystko się sypie. Drugi klasyk to firewall blokujący port 123/UDP — wtedy demon NTP cicho nie robi nic. Pamiętaj też, że NTP w gołej postaci nie jest uwierzytelniony, więc w krytycznych środowiskach rozważa się NTS (Network Time Security).
Pojęcia powiązane: UTC, stratum, chrony, ntpd, PTP (Precision Time Protocol — dokładniejszy, do zastosowań finansowych i przemysłowych), GPS jako źródło czasu, NTS, RTC (zegar sprzętowy).