Mam około 20 serwerów Linux w małej sieci i potrzebuję ich zegarów przyzwoicie blisko siebie (np. W ciągu 20 ms). Zacząłem od synchronizacji każdego z nich z europe.pool.ntp.org i zadanie zostało wykonane.
Teraz mam dwa pytania:
- Czy jestem zauważalnym obciążeniem puli? Czy to robi jakąś zauważalną różnicę w puli, jeśli uderzam z 20 serwerów lub z 2?
- Jeśli to robi różnicę, jaka jest konfiguracja / konfiguracja, która pozwoli zsynchronizować moją podsieć i pule obciążone? Istnieją wytyczne dla dużych sieci ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ), ale nie znalazłem żadnej dla małych sieci.
peer
związek. Patrz na przykład ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101Odpowiedzi:
Biorąc pod uwagę, że pula od wielu lat stale potrzebuje serwerów (patrz [1]), powiedziałbym, że chociaż 2 lub 20 serwerów tak naprawdę nie robi różnicy, zawsze powinieneś pamiętać, że nie jesteś sam. Lepiej więc zastanów się, powiedzmy 1000 administratorów, w którym to przypadku mówimy o 2000 lub 20000 serwerów, a to robi różnicę.
Musisz zsynchronizować dwa [2] serwery w sieci z pulą (nazwijmy je Podstawowymi serwerami NTP ), a następnie zsynchronizuj wszystkie pozostałe serwery z tymi dwoma. Ta metoda ma również tę zaletę, że czas między wszystkimi serwerami będzie ściślej dopasowany (w czasie krótszym niż 1 ms). Jest to zgodne z najlepszymi praktykami IETF .
1) Konfiguracja podstawowych serwerów NTP
Zamień wiersze
server
irestrict
pliku ntp [d] .conf na następujące, a resztę zachowaj do domyślnych ustawień dystrybucji [3]:Należy pamiętać, że ta konfiguracja umożliwia również hostom z całego Internetu sprawdzanie czasu hosta za pomocą zapytań NTP. Użyj swojej zapory ogniowej, jeśli nie chcesz. W moim przykładzie 10.11.12.1 i 10.11.12.2 to adresy IP głównych serwerów NTP (mają dwie karty sieciowe, jedną skierowaną do publicznego Internetu, a drugą do lokalnej podsieci 10.11.12.x). Każdy Podstawowy serwer NTP ma drugi zadeklarowany jako peer (peer w zasadzie oznacza zarówno serwer, jak i klienta - używasz drugiego hosta jako źródła czasu, a drugi host używa Ciebie również jako źródła czasu). Tak ustawić IP na 1 linię tak, że konfiguracja poszczególnych punktów Podstawowa NTP Server do drugiego jako równorzędnego. Zobacz [4] odnośnie mojego wyboru używania 4 serwerów.
2) Konfiguracja dla wszystkich innych serwerów
2A) Jeśli masz dwa interfejsy sieciowe
Lepiej użyj drugiego interfejsu, aby utworzyć lokalną podsieć (np.
10.11.12.0/24
) I użyj jej do zapytań NTP. W takim przypadku linie ograniczające mogą być bardziej ciasne. Więc ponownie zamień wierszeserver
irestrict
twojego ntp [d] .conf na następujące i pozostaw resztę domyślnym ustawieniom dystrybucji [3]:2B) Jeśli nie masz dwóch interfejsów sieciowych
Powinieneś użyć poniższych linii ograniczających (i przeczytać notatkę o używaniu zapory ogniowej do blokowania dostępu do serwerów NTP powyżej). Więc ponownie zamień wiersze
server
irestrict
twojego ntp [d] .conf na następujące i pozostaw resztę domyślnym ustawieniom dystrybucji [3]:Notatki
[1] W latach 2006–2012 stale proszą o przyłączenie większej liczby serwerów: wniosek z 2006 r., Rok 2009 i rok 2012 . Sprawdź www.pool.ntp.org, aby uzyskać informacje na temat aktualnego stanu.
[2] Dwa podstawowe serwery NTP są sugerowane jedynie jako prosty sposób na nadmiarowość bez skomplikowanych uzgodnień dotyczących wysokiej dostępności. Możesz wybrać 3 lub 4 z innych powodów (ponownie przeczytaj najlepsze praktyki IETF )
[3] W praktyce i bez względu na dystrybucję jedyną rzeczą, którą musisz uwzględnić w konfiguracji ntpd, jest linia definiująca katalog do umieszczenia pliku drift i jego nazwę - np
driftfile /var/lib/ntp/ntp.drift
. Przetestowałem swoje rozwiązanie w CentOS, Debian i Ubuntu. Chyba działa w większości innych dystrybucji.[4] Skonfigurowałem 4 serwery puli zgodnie z najlepszymi praktykami . Konfiguracja więcej niż 4 serwerów jest technicznie akceptowana, ale zwiększysz obciążenie puli NTP w celu uzyskania wątpliwego wzrostu dostępności, więc nie rób tego. W najlepszych praktykach widzę, że „poczynając od ntp-4.2.6, dyrektywa„ puli ” rozpali „ wystarczającą ”liczbę asocjacji, aby zapewnić niezawodną obsługę czasu”, więc jeśli używasz .pool. adresy tak jak tutaj i ntp> = 4.2.6 prawdopodobnie dokładna liczba linii serwera prawdopodobnie nie ma znaczenia.
Rant Oh! Nienawidzę NTP (poza tym, że podoba mi się, że to działa). Oficjalna dokumentacja jest pełna przestarzałych informacji i mają one „jak z nich korzystać?” informacje zmieszane ze szczegółami naukowymi na temat elementów wewnętrznych. Nienawidzę także tego, jak
restrict 127.0.0.1
naprawdę to oznaczaallow everything for 127.0.0.1
Historia aktualizacji
Usunąłem tę
iburst
opcję z konfiguracji lokalnych serwerów NTP, ponieważ ich przyjazność dla puli jest dyskusyjna. (Zobacz komentarze). Usunięcie ich dodaje tylko kilka minut oczekiwania na pierwszą synchronizację.Kredyty
Komentarze i odpowiedzi od użytkowników SF Marki i Sven stanowiły dobry punkt wyjścia do tej odpowiedzi. Dzięki obojgu.
źródło
iburst
jest to irytujący parametr do stosowania na serwerach publicznych, więc proszę nie (chociaż nie jest to tak denerwujące jakburst
). Administratorzy serwerów puli wyświadczają ci przysługę, nie wiedząc, kim jesteś i bez żadnej rekompensaty dla samych siebie, wyłącznie w celu lepszego korzystania z Internetu. Jeśli pracując ciężej, możesz ułatwić sobie życie, jesteś im to winien.burst
, ale nawetiburst
mówi (ze strony podręcznikantpd
) „ z tą opcją wymiana salwy wiadomości w celu oczyszczenia danych i ustawienia zegara na około 10 sekund ”. Używanieiburst
mówi „ szybkie ustawienie mojego zegara jest ważniejsze niż utrzymywanie niskiego obciążenia serwera ”, a to nieuprzejme.iburst
jest o wiele mniej budzące zastrzeżeniaburst
. Chodzi mi o to, że kiedy używasz cudzych zasobów za darmo, istnieje argument, że powinieneś pochylać się do tyłu, aby być rozważnym; samo bycie aktywnym bezmyślnym nie może być uważane za wystarczające. Zgadzam się, że mówi się, że jest to najlepsza praktyka, ale dokumenty te nie biorą pod uwagę tego, czy serwery nadrzędne, z którymi synchronizujesz, są częścią twojego przedsiębiorstwa, czy nie; dyktują najlepsze praktyki techniczne (które, jak się zgadzam, należy stosowaćiburst
), a nie najlepsze praktyki społeczne .Zwykle stosuje się do tego konfigurację warstwową - synchronizujesz jeden lub dwa serwery w sieci z pulą, a następnie używasz ich jako lokalnego źródła czasu. Poziomy te nazywane są warstwami w języku NTP.
Pomyśl też: jeśli zrobisz to tak, jak to opisałeś, nie będzie to naprawdę zauważalne, ale jeśli 1000 stron o twoim rozmiarze zacznie to, otrzymujesz 20k przeważnie niepotrzebnych próśb, aw pewnym momencie staje się zauważalne.
Przeczytaj http://en.wikipedia.org/wiki/Network_Time_Protocol
źródło
pool.ntp.org
. Z pewnością ruch DNS przekracza ruch NTP. Czy musisz także buforować DNS lokalnie? Nawet ruch DNS może być niewielki w porównaniu z resztą zużycia przepustowości.ntp.pool.org
, naruszają warunki puli ; jeśli zrobili to poprawnie, składając wniosek o strefę dostawcy (patrz link), wówczas oczekuje się również, że będą uczestniczyć w projekcie puli proporcjonalnie do ich obciążenia (ponownie, patrz link).