Porównaj NTPD i ntpdate


23

Jakie są zalety i wady między tymi dwoma sposobami synchronizacji serwera?

Wydaje mi się, że twój serwer prawdopodobnie nie będzie dryfował dłużej niż 1 sekundę każdego dnia, więc ntpdate na crontabie będzie w porządku. Ale słyszałem, że możesz tutaj użyć redundantnych serwerów NTP

http://www.pool.ntp.org/en/use.html

w celu utrzymania zsynchronizowanego czasu w przypadku awarii.

Masz jakieś sugestie?

Odpowiedzi:


26

Algorytm NTP zawiera informacje pozwalające obliczyć i naprawić przesunięcie zegara serwera. NTPD obejmuje możliwość wykorzystania tego do synchronizacji zegara i będzie działał dokładniej niż zegar na komputerze, na którym NTPD nie jest uruchomiony. NTPD będzie również korzystać z kilku serwerów w celu poprawy dokładności.

ntpdate nie utrzymuje żadnego stanu świadczenia tej usługi, więc nie zapewni tego samego rodzaju dokładności. Pozwoli ci to dostarczyć listę serwerów, których użyje, aby zapewnić ci lepszy wynik, ale nie zastąpi to wyrafinowanych algorytmów zawartych w NTPD, które śledzą twój dryf z każdego z serwerów w czasie.

NTPDATE natychmiastowo koryguje czas systemowy, co może powodować problemy z niektórymi programami (np. Niszczenie sesji, która wydaje się teraz stara). NTPD celowo koryguje czas systemowy, unikając tego problemu. Możesz dodać przełącznik -g podczas uruchamiania NTPD, aby umożliwić NTPD dokonanie pierwszej aktualizacji dużej, która mniej więcej odpowiada jednokrotnemu uruchomieniu ntpdate przed uruchomieniem NTPD, co kiedyś było zalecaną praktyką.

Jeśli chodzi o kwestie bezpieczeństwa, serwery NTTP nie łączą się ponownie na niezainicjowanych połączeniach, co oznacza, że ​​zapora sieciowa powinna być w stanie powiedzieć, że zainicjowałeś żądanie NTTP i zezwolić na ruch powrotny. Nie powinno być potrzeby pozostawiania otwartych portów dla dowolnych połączeń, aby NTPD działał.

Ze strony podręcznika ntpdate (8):

Ntpdate można uruchomić ręcznie w razie potrzeby, aby ustawić zegar hosta, lub można go uruchomić ze skryptu uruchamiania hosta, aby ustawić zegar w czasie uruchamiania. Jest to przydatne w niektórych przypadkach, aby ustawić zegar początkowo przed uruchomieniem demona NTP ntpd. Możliwe jest również uruchomienie ntpdate ze skryptu cron. Należy jednak zauważyć, że ntpdate z wymyślonymi skryptami cron nie zastępuje demona NTP, który wykorzystuje zaawansowane algorytmy w celu maksymalizacji dokładności i niezawodności przy jednoczesnym zminimalizowaniu zużycia zasobów. Wreszcie, ponieważ ntpdate nie dyscyplinuje częstotliwości zegara hosta, podobnie jak ntpd, dokładność przy użyciu ntpdate jest ograniczona.


Lepsze niż używanie ntpdate przed uruchomieniem ntpd: po prostu użyj -g!
Alex J

8

ntpd jest lepsze niż ntpdate, ponieważ dostajesz płynną korektę czasu zamiast skakać w czasie. Jaki sens mają twoje dzienniki, kiedy skaczą w nich czas wstecz? ntpdate będzie także w sposób przezroczysty przełączać między serwerami w razie potrzeby.

Jeśli chodzi o wymaganie otwartych portów (jak wspomniał Kyle), nowsze wersje ntpd (np. 4.2.4 na moim serwerze Debian) można skonfigurować do emisji / multiemisji do sieci LAN, z uwierzytelnianiem kryptograficznym.

Edycja: patrz także to pytanie .


5

Ogólnie zalecamy uruchomienie NTPD i zsynchronizowanie serwerów z wyznaczonym serwerem czasu w organizacji. Ten wewnętrzny serwer zazwyczaj synchronizuje się z jednym z publicznych serwerów NTP (jak się łączysz).

Użyłem metody ntpdate bez żadnego problemu, ale wydaje się to bardziej hackerskie niż uruchamianie prawdziwego demona ntpd.


3

Słyszałem o problemach z przesunięciem zegara na maszynach wirtualnych z uruchomionym NTTP. Słyszałem również o ludziach rozwiązujących ten problem, uruchamiając regularne zadania cron, które wywołują ntpdate na kilku serwerach puli. Nie miałem tych problemów, ale słyszałem o nich kilka razy.


1
Będą chcieli uruchomić bezczynne jądro na maszynie wirtualnej
goo

1
Oprogramowanie narzędzi VMware na maszynach wirtualnych ESX zajmuje się synchronizacją czasu, więc nie używaj ntpd na maszynach wirtualnych z narzędziami VMware. Zamiast tego skonfiguruj NTPD na hostach i pozwól narzędziom VMware zrobić resztę.
dunxd

3

Jak wspomniano w innym miejscu, NTP zapewnia płynną korektę czasu. Jeśli aplikacje na twoim serwerze nie przeszkadzają, że tracą całe sekundy lub powtarzają te same sekundy od nowa, to ntpd nie zyskuje dużo więcej niż ntpdate.

Z drugiej strony, jeśli masz aplikacje wrażliwe na czas, które są wrażliwe na sekundy lub nawet gorzej na częściowe sekundy, to ntpd jest zdecydowanie lepszym wyborem. Aktualizacje znaczników czasowych Novell eDirectory do obsługi aktualizacji i kolizji stają się krytyczne, jeśli aktualizacje przychodzą bardzo szybko (na przykład podczas porannego logowania). Serwer syslog musi mieć dokładny czas co najmniej do połowy sekundy, aby zachować rozsądne dzienniki.

W przypadku mojego urządzenia MythTV w domu zauważam, że jest to nawet kilka sekund wolnego od tego, co mój dostawca telewizji kablowej uważa za czas, więc używam na nim NTP. Na działający serwer monitorów UPS używam crontabbed ntpdate z tych samych powodów, na które zwrócił uwagę Kyle Hodgson, ponieważ jest to host bastionowy, nie chcę, aby ten port był otwarty, nawet jeśli zablokowałem aplikację; ponieważ ta aplikacja jest sekundą prawdy, nie jest straszna.

Jeśli chodzi o redundancję, utrzymujemy co najmniej dwa hosty czasowe w naszej sieci i wskazujemy wszystkim naszym hostom wewnętrznym te dwa. Ci dwaj następnie śledzą różnych internetowych hostów NTP. Co więcej, są skonfigurowane w układzie równorzędnym, dzięki czemu mogą zachować czas między sobą w sposób konsensusowy, jeśli nasz link internetowy przestanie działać. Solidne NTP jest zdecydowanie możliwe do zaprojektowania.


1

Na serwerze, na którym kluczowy jest dostęp i hartowanie, wykorzystałem argumentację, że xntpd, wersja ntpd, na której polegałem, wymagał otwartego portu UDP 123. Ponieważ wolałem mieć otwarte tylko tcp 22 i 80, użyłem ntpdate zamiast tego w crontab. Nigdy nie słyszałem dobrego powodu, dla którego było to potrzebne, ani żadnego takiego, który pamiętam.

Jedną z wad używania wywołanego przez crontab'at wywołania ntpdate jest to, że nie może on elegancko obsłużyć korekcji znoszenia. ntpdate, iirc, aktualizuje zegar, gdy tylko może stwierdzić, że jesteś nieaktualny - demony ntp zwykle poprawiają dryfowanie delikatnie. Ma to tę zaletę, że twoje logi są przy zdrowych zmysłach - na przykład na zajętym serwerze internetowym możesz sobie wyobrazić, że jeśli RTC dryfowałby przez kilka minut, to czytanie dzienników internetowych następnego dnia może wywnioskować, że ludzie byli w stanie trafić bezpiecznie Adresy URL przed zalogowaniem, ponieważ działania w sieci byłyby nieczynne.


1

ntpdate jest przeznaczony do jednorazowych aktualizacji, jeśli chcesz regularnie synchronizować czas, skorzystaj z usługi w tym celu, ntpd.

O ile mi wiadomo, nie ma ważnego powodu, aby nie używać ntpd


0

Nie musisz używać crontab, po to jest ntpd.

Początkowo, gdy czas się kończy, jednym ze sposobów jest po prostu zatrzymać ntpd, następnie uruchomić, ntpdate ntp.server.comaby przywrócić go do synchronizacji, a następnie ponownie uruchomić ntp.

Jeśli jednak masz dużą sieć, prawdopodobnie skonfiguruję kilka lokalnych serwerów NTTP i zachęcę wszystkie hosty do korzystania z nich.


0

Zobacz tę dyskusję, aby dowiedzieć się, dlaczego „ntpdate” jest nadal pożądany i używany.

Podsumowując: ntpd jest powolny w porównaniu przy dokonywaniu ogromnej korekty czasu, nawet z opcją -g.


-3

Do użytku domowego, ntpdate nie jest tak naprawdę biggie .. Jest powód, dla którego jest „wolniejszy”. Każdy, kto używa crona z ntpdate w środowisku PRODUKCJI PRZEDSIĘBIORSTWA, jest po prostu idiotą.


2
Istnieją zastosowania. Na przykład serwer z potrzebą posiadania minimalnych otwartych portów dowolnego rodzaju i wymaganiem rozdzielczości około +/- 1000 ms, cron + ntpdate jest doskonale poprawnym sposobem na utrzymanie synchronizacji czasu.
sysadmin1138
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.