Kategorie
Linux Ubuntu

Serwer czasu NTP w Ubuntu 12.04

Instalacja serwera czas uw Ubuntu:

root@server:# apt-get install ntp

Program ntpd może w systemie pełnić zarówno funkcję serwera (być wzorcem czasu dla innych maszyn), jak również klienta (synchronizować lokalny zegar z serwerami czasu).

Warto po instalacji ntpd usunąć z systemu poprzedni – przestarzały program do synchronizacji czasy ntpdate.

root@server:# apt-get remove ntpdate

Następnym krokiem jest konfiguracja serwera czasu. Edytujemy plik konfiguracyjny:

root@server:# vim /etc/ntp.conf

Zamiast domyślnych wzorców czasu podajemy własne komentując jednocześnie pozostałe. Najlepiej jest podać kilka serwerów czasu zlokalizowanych blisko nas, do których pingi są najkrótsze.

server tempus1.gum.gov.pl iburst
server tempus2.gum.gov.pl
server ntp1.tp.pl
server ntp2.tp.pl

Powyżej najpopularniejsze serwery czasu w Polsce. Przy jednym z nich (który ma najmniejsze opóźnienie), na końcu warto dodać parametr iburst, który przyspieszy synchronizację czasu z tym serwerem.

Dodanie poniższych linijek na końcu listy serwerów czasu nie będzie powodowało błędów w działaniu naszego ntp w przypadku braku dostępu do Internetu.

server tempus1.gum.gov.pl iburst
server tempus2.gum.gov.pl
server ntp1.tp.pl
server ntp2.tp.pl
server 127.127.1.0
fudge 127.127.1.0 stratum 10

Ostatnia rzecz do ustawienia to pozwolenie naszym maszynom z sieci lokalnej na pobieranie czasu z serwera ntp. Dodajemy poniższą linijkę na końcu pliku konfiguracyjnego.

restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify nopeer noquery

Po zmianie konfiguracji restartujemy serwer czasu:

root@server:#/ service ntp restart

W celu zmiany strefy czasowej w Ubuntu wydajemy z konsoli polecenie:

root@server:# dpkg-reconfigure tzdata

Jeśli chcemy, żeby system używał lokalnego czasu, wydajemy komendę:

root@server:# vim  /etc/default/rcS

i zmieniamy lub dodajemy poniższą sekcję do pliku konfiguracyjnego:

# Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no

Sprawdzamy czy serwer ntp jest uruchomiony:

root@server:# /etc/init.d/ntp status

Sprawdzamy czy system potrafi rozwiązać nazwę serwera czasu na jego adres IP (zamiast ntp1.tp.pl wstawiamy serwery czasy umieszczone w pliku konfiguracyjnym ntp.conf)

root@server:# host ntp1.tp.pl

Sprawdzanie różnic pomiędzy naszym serwerem, a serwerami z konfigu:

root@server:# ntpq --numeric --peer

lub (pomijając parametr „n” adresy IP serwerów czasu  będą rozwiązane na ich nazwy):

root@server:# ntpq -n -p

Najlepiej jak w pierwszej kolumnie są * i dużo + przed adresami IP serwerów czasu natomiast parametr reach (cel) ma wartość 377. W polu when mamy podany czas w s jaki upłynął od ostatniego kontaktu z danym serwerem czasu.

Parametr delay (opóźnienie) jest podany w milisekundach. Dla lokalnej sieci powinien wynosić poniżej 1, serwerów ISP poniżej 10, idealny dla Wi-Fi poniżej 100. offset też jest wyrażony w milisekundach i oznacza bieżącą różnicę pomiędzy serwerami czasu, a naszym serwerem. Im mniejsza różnica tym lepiej. jitter oznacza oszacowany błąd wewnętrznego zegara – im mniej tym lepiej. Jeśli ten parametr jest stosunkowo wysoki może powodować to pływanie zegara systemowego, gdyż server ntp będzie dostosowywał zegar systemowy do czasu wzorcowego zbyt często.

Przydatnymi poleceniami mogą być:

root@server:# ntpdc -c loopinfo

różnica w sekundach pomiędzy zegarem systemowym, a zegarem serwera czasu obliczona podczas ostatniej synchronizacji,

root@server:# ntpdc -c kerninfo

wyświetlenia bieżącej, pozostałej do przeprowadzenia korekty czasu zegara systemowego.