Obie usługi – NTP i chrony – mają na celu ustawianie czasu z wykorzystaniem protokołu NTP. Który jest lepszy?
Główna różnica między nimi to algorytm kontrolujący zegar.
Usługa „chrony” jest lepszy od „NTP”:
- gdy sieć jest tymczasowo/okresowo niedostępna
- nawet jeśli sieć jest niedostępna przez dłuższy czas
- szybsza i dokładniejsza synchronizacja
- dobra adaptacja do nagłych zmian
- duży zakres zmian czasu, który umożliwia poprawne działanie systemów z niestabilnym lub uszkodzonym zegarem
Chrony lepiej sprawdza się na wirtualnych maszynach, szczególnie jeśli zmieniają często sieci w których działają.
Na maszynach permanentnie włączonych lepszym rozwiązaniem może być usługa NTP.
Instalacja:
# yum install chrony
Domyślna konfiguracja dla CentOS7 to:
# grep '^server' /etc/chrony.conf server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
Zamień lub dopisz serwery czasu z Twojej sieci.
Opcja „iburst” pozwala skrócić czas wstępnej synchronizacje podczas startu usługi.
Restart usługi:
# systemctl restart chronyd.service
Następnie sprawdzamy działanie usługi:
# chronyc sources -v 210 Number of sources = 4 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^+ ntp.ifj.edu.pl 2 6 17 56 -3122us[-3460us] +/- 20ms ^+ 96-7.cpe.smnt.pl 3 6 17 55 +2747us[+2409us] +/- 78ms ^+ 46.175.224.7.maxnet.net.p 2 6 17 56 -1240us[-1578us] +/- 57ms ^* ntp.tktelekom.pl 2 6 17 55 +894us[ +556us] +/- 40ms
Sprawdzamy, czy system operacyjny korzysta z NTP:
# timedatectl Local time: Wed 2016-11-23 12:14:41 CET Universal time: Wed 2016-11-23 11:14:41 UTC RTC time: Wed 2016-11-23 11:14:39 Time zone: Europe/Warsaw (CET, +0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2016-10-30 02:59:59 CEST Sun 2016-10-30 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at Sun 2017-03-26 01:59:59 CET Sun 2017-03-26 03:00:00 CEST
Jeśli chcemy aby nasz serwer był serwerem czasu dla innych, to:
Definiujemy w /etc/chrony.conf interfejs sieciowy (adres IP) oraz sieć, z której będziemy obsługiwać zapytania:
allow 192.168/16 bindcmdaddress 192.168.0.10
Otwieramy zaporę sieciową:
# firewall-cmd --permanent --add-service=ntp # firewall-cmd --reload
I już można pobierać czas z naszego serwera.