NTP – Naprawa synchronizacji oraz poprawa źródeł czasu

NTP – Naprawa synchronizacji oraz poprawa źródeł czasu

Kontynuując dawny artykuł dotyczący synchronizacji czasu: https://mkrzanowicz.pl/synchronizacja-czasu-active-directory/  chciałbym kilka chwil poświęcić na dwa aspekty:

  1. Szybka i prosta procedura naprawy synchronizacji czasu w systemach Windows Server
  2. Poprawne ustawienie źródła czasu w problematycznych przypadkach.

W kwestii procedury naprawy, która jest przydatna zwłaszcza po wykonaniu upgrade in-place do Windows Server 2016 (zawsze rozjeżdża się synchronizacja czasu, ten typ tak ma 😉 ):

Jak więc widać, wystarczy zatrzymać usługę czasu, następnie ją wyrejestrować, zarejestrować i uruchomić. Po tym zabiegu już obserwujemy jak czas jest synchronizowany a różnica czasu zbliża się do zera:

Weryfikacja różnicy czasu pomiędzy serwerem lokalnym a źródłem czasu NTP jest wykonywana poleceniem:

Przykładowy (oczekiwany) output ma postać:

Świat uratowany 😉

Niestety nie zawsze jest tak prosto i czasami okazuje się, że źródłem problemów są niepoprawne ustawienia źródeł czasu w systemie operacyjnym, zwłaszcza jeśli serwer nie jest członkiem domeny Active Directory. Przejdźmy zatem do drugiej części zagadnienia.

W tym wypadku debug proponuję rozpocząć od weryfikacji statusu tj:

Szukamy źródła czasu, które powinno wskazywać na adres IP (względnie nazwę DNS) serwera NTP.

Poprawna konfiguracja wygląda mniej więcej tak (dla członków domeny powinien wyświetlić się adres IP i nazwa kontrolera domeny w site, do którego należy dany komputer):

Niepoprawnym objawem jest pojawienie się wszystkiego innego, czyli m.in: „Free-running System Clock” oraz „Local CMOS Lock”. Jak wybrnąć z takiej sytuacji? Na początek proponuję zresetować ustawienia dotyczące synchronizacji czasu zgodnie z pierwszą procedurą tj:

W kolejnym kroku przejść do jawnego wskazania interesujących nas serwerów NTP:

  • od razu podałem notację z dwoma niezależnymi źródłami czasu NTP – wiadomo wysoka dostępność musi być! 🙂

Następnie wyłączamy synchronizację czasu odpowiadającą za synchronizację czasu maszyny wirtualnej z wirtualizatorem, czyli zmiany wartości klucza: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider\Enabled na „0

-> Dodatkowo należy wyłączyć synchronizację czasu od strony witalizatora lub maszyny fizycznej (w zależności czy pracujemy na VM czy sprzęcie fizycznym).

Dla pewności przestawiamy również typ źródła czasu na NTP w kluczu rejestru: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Parameters\Type na „NTP”

Ostatnim punktem w przypadku serwerów poza domeną może być edycja lokalnych ustawień:

I wstawienie tam wpisów dotyczących źródeł czasu (analogicznych do wcześniejszego polecenia: w32tm /config /syncfromflags:manual /manualpeerlist:”SerwerNTP1,0x9 SerwerNTP2,0x9″)

Przechodzimy do ponownej weryfikacji poprawności synchronizacji czasu:

I cieszymy się zsynchronizowanym środowiskiem 🙂

 

Uwaga – jak wiecie z historycznego wpisu – NTP działa na porcie 123 UDP. Skoro jest to protokół UDP to nie można wykorzystać po prostu telnet’a czy polecenia Test-NetConnection do uzyskania jednoznacznej odpowiedzi, czy pakiety docierają poprawnie do celu i nie są blokowane w sieci. Natomiast w przypadku otrzymania błędu: 0x800705B4 możecie być pewni, że wasze źródło czasu NTP jest nieosiągalne dla systemu operacyjnego.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *