Posted by & filed under W serwerowni.

Synchronizacja czasu systemowego na komputerach i serwerach pracujących w sieci jest bardzo ważna dla jej sprawnego działania i to nie tylko ze względu na naszych userów, którzy – przy źle ustawionych zegarach w stacjach roboczych mogliby nieopatrznie wyjść wcześniej do domu, ale głównie w celu poprawnego działania usług działających w oparciu o czas. Dlatego warto uzupełnić infrastrukturę w naszej serwerowni o serwer czasu NTP.

Protokół NTP (Network Time Protocol) został zaprojektowany w celu synchronizacji czasu przez Internet. W dużym uproszczeniu – opiera się na sieci serwerów czasu i zegarów atomowych, z którymi możemy uzgadniać czas naszych maszyn. Aby nie nadużywać gościnności administratorów serwerów NTP – tylko jeden komputer w naszej sieci – serwer NTP – będzie synchronizował czas z wzorcowym serwerem, zaś pozostałe skalibrują swe zegary zgodnie ze wskazaniami serwera wewnętrznego.

Instalacja pakietu ntp

Z konsoli serwera wydaj polecenie, które zainstaluje pakiet ntp wraz z koniecznymi zależnościami:

srv01:~# apt-get install ntp

Konfiguracja serwera

Domyślnie, ustawienia serwera NTP zapisane są w pliku /etc/ntp.conf, nie inaczej jest w Debianie. Pierwszy element, który musimy ustawić, to adresy zewnętrznych serwerów NTP, na którym będzie wzorował się nasz. Ponieważ źródłem czasu urzędowego w Polsce jest Główny Urząd Miar, w pliku konfiguracyjnym ustawimy serwery tempus1 i tempus2 z sieci gum.gov.pl oraz dodatkowo, ntp.task.gda.pl:

server tempus1.gum.gov.pl
server tempus2.gum.gov.pl
server ntp.task.gda.pl

Możemy synchronizować się też do innych serwerów. W internecie znajdziesz ich adresy. Do naszego konfigu dodamy też parametr określający położenie pliku, w którym demon ntp będzie przechowywał informację o poślizgu zegara sprzętowego w serwerze. W przypadku ponownego uruchomienia demona ta informacja będzie przydatna do odpowiedniej korekcji częstotliwości zegara. Służy do tego dyrektywa driftfile:

driftfile /var/lib/ntp/ntp.drift

Tyle ustawień na początek wystarczy. Oprócz konfiguracji ntpd sprawdźmy jeszcze opcje naszego firewalla. Protokół ntp zakłada komunikację za pomocą UDP na porcie 123. Powinniśmy pozwolić na tego typu ruch na routerze/firewallu. Na koniec restartujemy ntpd:

srv01:~# /etc/init.d/ntp restart
Stopping NTP server: ntpd.
Starting NTP server: ntpd.

Po czym czekamy parę minut na to, aby lokalny serwer zaczął rozmawiać ze zdalnymi. Na koniec sprawdźmy komendą ntpq -p, czy wszystko działa:

srv01:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*tempus1.gum.gov .PPS.            1 u   34   64   17   42.637    3.554   4.306
 tempus2.gum.gov .PPS.            1 u   33   64   17   42.215    5.101   3.911
 ntp.task.gda.pl 150.254.183.15   2 u   36   64   17   67.371   -5.209   4.531

Widzimy, że nasz serwer połączył się z pierwszym tempusem, tempus1 jest serwerem stratum1, serwer ntp.task.gda.pl – stratum2 itd. Opis wszystkich pozycji znajdziesz w dokumentacji pakietu ntp. To wszystko – od tej chwili mamy działający w lokalnej sieci – własny serwer NTP, wskazujący czas z dokładnością do setnych części sekundy.

Leave a Reply

You must be logged in to post a comment.