NTP klient/server

Je více než žádoucí, aby stroj měl synchronizovaný čas. V opačném případě je problém zjistit z logů, kdy došlo k události, která nás zajímá. Protože logy by měly být zpracovávané a vyhodnocované, pídit se po tom jaký čas ve skutečnosti byl na serveru před rokem je, mírně řečeno, zvláštní.

FreeBSD má po instalaci možnost použít dva způsoby synchronizace času, ntpd daemon a ntpdate klient. Zatímco ntpdate je pouze klient časového serveru, který se spustí pouze jednou, ntpd je spuštěný jako daemon a má možnost stát se dalším serverem.

Pro konfiguraci obou je nejprve nutné spustit program tzsetup, který má za úkol nastavit časovou zónu. Nejprve se zeptá, zda je aktuální časová zóna UTC (správná odpověď je ne), dále se ve dvou menu zeptá na kontinent a stát. Tím je nastavení hotovo. Pro další nastavení je ale nutné znát něco teorie:

StratumPopis
0fyzické zařízení, hodiny na bázi GPS, radiových hodin (DCF77 a WWVB), atomové hodiny a další.
1server připojený k hardware hodinám, zpravidla pomocí seriového portu. Občas též nazývaný primární časový server.
Požadovaná přesnost: <1ms
Požadovaná dostupnost: 99,99999%
2server synchronizující se po síti s primárním serverem, umožňující vzájemnou synchronizaci na úrovni stratum 2. Občas též nazývaný referenční časový server.
Požadovaná přesnost: <10-100ms
Požadovaná dostupnost:99,999%
3server synchronizující se po síti se stratum 2 servery a umožňující vzájemnou synchronizaci mezi stratum 3 servery. Občas též nazývaný sekundární časový server, slouží pro poskytování času pro další úrovně stratum
Požadovaná přesnost: <100-200ms
Požadovaná dostupnost:99,99%
4server synchronizující se po síti se stratum 3 servery a umožňující vzájemnou synchronizaci mezi stratum 4 servery. V případě provozu se používá jako záložní (backup) časový server.
Požadovaná přesnost: <200ms-300ms
Požadovaná dostupnost: není vyžadována
5 - 16nejčastěji používané stratum level pro klienty. Některé verze protokolu používají stratum level až 255.

Spuštění ntpdate je jednoduché, stačí v souboru /etc/rc.conf povolit ntpdate_enable="YES". Poté je možné tento daemon nastartovat příkazem /etc/rc.d/ntpdate start

Naproti tomu ntpd vyžaduje nejenom v souboru /etc/rc.conf povolit ntpd_enable="YES", ale také ještě konfigurační soubor /etc/ntp.conf. Až po jeho nastavení je možné daemon spustit příkazem /etc/rc.d/ntpd start

Ukázka souboru /etc/ntp.conf. Je zde sada českých NTP serverů a omezení vstupů z rozsahů privátních sítí.
server cz.pool.ntp.org prefer
server ntp.cesnet.cz
server ntp.cgi.cz
server ntp.globe.cz
server ntp.karpo.cz
server ntp1.contactel.cz
server ntp2.contactel.cz
driftfile /var/db/ntp.drift
restrict 10.0.0.0 mask 255.0.0.0 notrust nomodify notrap
restrict 169.254.0.0 mask 255.255.0.0 notrust nomodify notrap
restrict 172.16.0.0 mask 255.240.0.0 notrust nomodify notrap
restrict 192.168.0.0 mask 255.255.0.0 notrust nomodify notrap
restrict 224.0.0.0 mask 240.0.0.0 notrust nomodify notrap
restrict 240.0.0.0 mask 248.0.0.0 notrust nomodify notrap
restrict 255.255.255.255 mask 255.255.255.255 notrust nomodify notrap

Pro složitější konfiguraci, kdy je ve společnosti serverů více, je vhodné vytvořit hierarchii serverů. První server bude brát čas z externího zdroje a bude sloužit jako referenční pro stroje uvnitř. Ty se budou navzájem synchronizovat a teprve poté budou nabízet čas klientům. Zde jsou uvedeny příklady, nejprve pro zdrojový server:
server cz.pool.ntp.org prefer
driftfile /var/db/ntp.drift

Pak úroveň serverů, zajišťující si vzájemně synchronizaci:
server ntpmaster.localnet prefer
peer server1.localnet
peer server2.localnet
peer server3.localnet
peer server4.localnet
peer server5.localnet
driftfile /var/db/ntp.drift

A nakonec vlastní klienti:
server server1.localnet prefer
server server2.localnet
server server3.localnet
server server4.localnet
server server5.localnet
driftfile /var/db/ntp.drift

Podrobnější informace a odkazy je možné najít příkazem man ntp.conf a ve Wikipedii: heslo NTP.

Powered by Drupal - Design by artinet