Zář 17

NTP (Network Time Protocol)

NTP (Network Time Protocol) je protokol, ktorý slúži na synchronizáciu vnútorných hodín počítača s časovými internetovými servermi. Používa UDP (User Datagram Protocol) na porte 123. Funguje na základe výmeny informácií s jedným alebo viacerými nakonfigurovanými servermi v určitých intervaloch. NTP servery sú klasifikované v hierarchii v niekoľkými úrovňami, ktoré sa nazýva “strata hodín”. Ako stratum 0 sú označované nezávislé zdroje (atómové hodiny). Ako stratum 1 sa označujú počítače, ktorých systémový čas je synchronizovaný so stratum 0 na niekoľko milisekúnd. Ako stratum 2 sú označované počítače, ktoré sú synchronizované so stratum 1. Pre poskytovanie stabilnejšieho a presnejšieho času v celej skupine sa môžu synchronizovať s niekoľkými počítačmi. Ako aj so stratum 1 či stratum 2. Používajú sa na bežnú synchronizáciu. Ako stratum 3 sa označujú počítače ktoré sú synchronizované so stratum 2. Používajú rovnaké algoritmy na peering a vzorkovanie dát ako stratum 2. Taktiež sa môžu fungovať ako servery pre stratum 4. Horná hranica je stratum 15. Ako stratum 16 sa označujú nesynchronizované zariadenia.

 

Inštalácia programu

Program sa nachádza v oficiálnych repozitároch:

sudo pacman -S ntp

Pomoc a manuálová stránka pre daemon:

man ntpd
ntpd --help

Manuálová stránka:

man ntp.conf

Pomoc a manuálová stránka pre query (pomocný) program:

man ntpq
ntpq --help

 

Konfigurácia “klienta”

Základný daemon je ntpd. Jeho konfiguračný súbor je v /etc/ntp.conf.

Pomocný program, ktorý slúži napríklad na monitorovanie operácií je ntpq.

 

Zobrazenie zoznamu nakonfigurovaných peerov a stavu synchronizácie:

ntpq -p
ntpq -pn

  • remote je vzdialený server, s ktorým sa synchronizuje čas. Znak * udáva preferovaný server. Služba NTPd si vždy vyberá najvhodnejší server podľa dlhodobejších štatistík. Znak + označuje záložný sever. Znak – označuje nekvalitný zdroj synchronizácie a nemal by sa vo výpise vyskytovať.
  • refid je zdroj času používaný daným serverom. Rozonávame GPS (podľa navigácie) a PPS (pulse per second), čo je špeciálne zariadenie pripojené k počítaču (napríklad atómové hodiny).
  • St udáva stratum
  • when pool udáva čas nasledujúcej kontroly času
  • reach udáva stav synchronizácie. Hodnota 377 udáva, že synchronizácia je plne funkčná.
  • delay je sieťová latencia vzdialeného serveru
  • offset udáva rozdiel času v ms
  • jitter je odchýlka latencie siete. Ak je latencia konštantná, jitter sa nevyskytuje.

Interaktívny mód pre ntpq:

ntpq

Spúšťanie v termináli sa vykonáva vždy s parametrom -u:

ntpd -u ntp:ntp

 

Úprava konfiguračného súboru:

Od verzie 4.2.7.p465-2 používa Arch Linux vlastný “pool” dodávateľov, ktorý poskytuje NTP Pool Project:

server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst

Možnosť iburst sa odporúča na odosielanie burst paketov, iba v prípadoch, že nie je možné získať spojenie s hneď s prvým pokusom. Možnosť burst to robí vždy, aj pri prvom pokuse, a neodporúča sa používať bez predošlého povolenia, pretože to vedie ku zakázaniu.

 

Ak chceme používať servery prislúchajúce nášmu regiónu, tak si pomocou nejakého textového editoru ako správca otvoríme:

sudo gedit /etc/ntp.conf

Pôvodné riadky zakomentujeme a pre Slovensko pridáme:

server 2.sk.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org

Pre Českú republiku pridáme:

server 0.cz.pool.ntp.org
server 1.cz.pool.ntp.org
server 2.cz.pool.ntp.org
server 3.cz.pool.ntp.org

Všeobecne pre Európu pridáme:

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

 

Spustenie NTP pri štarte:

Potrebujeme povoliť službu s názvom ntpd.service:

sudo systemctl enable ntpd.service

 

Synchronizácia času iba pri štarte:

Ide o alternatívne spustenie, ktoré sa neodporúča na dlhodobejšie spustených strojoch. Vždy je vytvorená iba jedna služba.

Potrebujeme povoliť službu s názvom ntpdate.service:

sudo systemctl enable ntpdate.service

 

Ak chceme, aby sa synchronizovaný čas zapisoval priamo do hardvérových hodín, musíme vytvoriť:

sudo systemctl edit /etc/systemd/system/ntpdate.service.d/hwclock.conf

S obsahom:

[Service]
ExecStart=/usr/bin/hwclock -w

Následne služby znovunačítame:

sudo systemctl daemon-reload

 

2 comments

  1. Microsoft Edge 17.17134 Windows 10 x64 Edition

    Dobrý článok, všimol som si tam však malý preklep, na miesto “ntpq -p” má byť “ntpd -p”. Dík za písanie zaujímavých poučných článkov.

    1. Firefox 64.0 GNU/Linux x64

      To ale nie je preklep. Existuje ntpd aj ntpq. Prvé je daemon a druhé utilitka.

Napsat komentář

Your email address will not be published.

%d blogerům se to líbí: