NTP

Protokół synchronizujący zegary urządzeń w sieci z dokładnym źródłem czasu. Spójny czas jest ważny dla logów i szyfrowania.

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, czy System 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).