Moje doświadczenie dotyczy raczej ntp niż openntpd.
Powinieneś wiedzieć, że protokół NTP zwykle zaczyna się od wysyłania pakietów co minutę (64 sekundy), ale zwykle ustala się, wysyłając i odbierając jeden pakiet co 17 minut dla każdego serwera, który masz w pliku /etc/ntp.conf. Awarie sieci lub niestabilny zegar w urządzeniu mogą to jednak zwiększyć. Każdy pakiet ma pojemność około 68 bajtów, więc jest to prawdopodobnie nieco ponad 100 bajtów w jedną stronę na sondę.
Rdate i ntpdate w czasie konfiguracji sieci są dobrym pomysłem na ustawienie czasu. A jeśli to wszystko, czego potrzebujesz, powinno dobrze dla ciebie działać.
Jeśli jednak chcesz zsynchronizować czas przez dłuższy czas, protokół NTTP został tak zaprojektowany. Zegar w twoim urządzeniu będzie działał trochę szybko lub wolniej, w zależności od tego, jak będzie ciepło lub zimno, mimo że prawdopodobnie ma zegar sterowany kryształem - a ciągłe mierzenie czasu ma to na celu.
Oto kilka sugestii, jeśli potrzebujesz ciągłego pomiaru czasu i chcesz zmniejszyć używane pasmo. Odnoszą się do elementów w ntp.conf.
Nie używaj iburst. (Ale ustawienie czasu zajmie więcej czasu).
Zwiększ minpoll w górę z 6 (2 ^ 6 sekund to 64 sekund). Zmniejsza to ruch, gdy protokół uruchamia się po uruchomieniu sieci.
Zwiększ maxpoll w górę z 10 (2 ^ 10 sekund to 1024 sekundy lub co około 17 minut. Możesz przejść do 17, aby sondować co 36 godzin. Sam tego nie próbowałem.
Używaj tylko minimalnej liczby serwerów, jeśli masz taki, na którym można w wiarygodny sposób uzyskać dostęp z urządzeń wbudowanych, byłoby świetnie. Im więcej serwerów, tym bardziej wiarygodne może być mierzenie czasu, ale ruch rośnie, więc jest to kompromis.
Jeśli dobrze pamiętam, interwał sondowania NTTP można ustawić na maksymalnie 1024 sekundy. Być może najprostszym rozwiązaniem byłoby uruchomienie ntpdate przy każdym rozruchu, a później co jakiś czas z crontab.
Jeśli twój zegar zaczyna się od losowego czasu przy każdym uruchomieniu, prawdopodobnie i tak nie będziesz w stanie uruchomić ntpd i będziesz musiał najpierw użyć ntpdate. NTTP nie odmawia synchronizacji czasu, jeśli różnica między zegarem a zegarem serwerów jest zbyt duża.
źródło
ntpd
których lepiej będzie obsługiwać ten przypadek użycia niżcron
może eecis.udel.edu/~mills/ntp/html/ntpdate.htmlNTP, podobnie jak TCP, ma wbudowaną w protokół głębszą teorię i praktyczne doświadczenie; jeśli zmienisz jego podstawowe parametry, przestanie mieć właściwości synchronizacji, dla których został zaprojektowany.
Jeśli twoje urządzenie jest sporadycznie podłączone, być może stary dobry RDATE będzie ci najlepiej służył. Nie radzi sobie z obrotem zegara, ani uśrednianiem rówieśników, ani nie można go zabezpieczyć przed różnymi subtelnymi hackami, w które człowiek pośrodku mógłby zagrać, gdyby było warto. Po prostu pobiera datę referencyjną ze zdalnego serwera i uderza młotkiem lokalny zegar. Ale robi to, kiedy tego chcesz, a jego zachowanie jest deterministyczne.
Dokładność RDATE jest znacznie gorsza niż zapewnia NTP, nie ufałbym temu dłużej niż ± 1 sekundę, ale jeśli jesteś tylko sporadycznie przywiązany, dokładniejszy czas nie ma znaczenia; w rzeczywistości, zgodnie z teorią względności , może to nawet nie mieć znaczenia.
źródło
Aby uwzględnić
minpool
/,maxpool
należy uwzględnić, a następnie dodać na serwer w swoimntp.conf
.Nie jest zalecane, aby zadzierać z demonem NTP (ma wbudowaną matematykę w celu optymalizacji częstotliwości), ale musisz dodać te opcje w następujący sposób:
Tutaj, jeśli ustaw minimalną częstotliwość na 2 ^ 12 sekund, a maksimum na 2 ^ 17 sekund.
Domyślnie dowiedziałem się, że NTP będzie składać żądanie co około minutę. To zdecydowanie za dużo. Tutaj zmniejszyłem częstotliwość z raz na godzinę do raz dziennie (ostrożnie).
źródło