Co należy wziąć pod uwagę podczas uruchamiania publicznych serwerów NTP

21

Niedawno przyszło mi do głowy, że skoro mam w swojej sieci 3 zegary GPS, technicznie mogę trochę oddać i oddać czas reszcie świata. Jak dotąd nie widziałem żadnych wad tego pomysłu, ale mam następujące pytania;

  1. Czy mogę to zwirtualizować? Nie zamierzam poświęcać na to pieniędzy i czasu na stawianie sprzętu, więc wirtualizacja jest koniecznością. Ponieważ serwery będą miały dostęp do trzech źródeł warstwy 1, nie widzę, jak może to stanowić problem, pod warunkiem, że konfiguracja ntpd jest poprawna

  2. Jakiego rodzaju ruch widzi zwykle publiczny serwer NTP (część pool.ntp.org)? A jak duże maszyny wirtualne są do tego potrzebne? O ile mogę zebrać, ntpd nie powinien pochłaniać zbyt dużo zasobów, ale wolałbym wiedzieć wcześniej.

  3. Jakie są w tym aspekty bezpieczeństwa? Myślę, że po prostu instaluję ntpd na dwóch maszynach wirtualnych w strefie DMZ, zezwalam tylko na ntp przez FW i tylko na ntp z DMZ na wewnętrzne serwery ntp. Wydaje się, że istnieją pewne ustawienia NTTP, które są zalecane zgodnie ze stroną puli NTP, ale czy są one wystarczające? https://www.ntppool.org/join/configuration.html

  4. Zalecają, aby nie mieć skonfigurowanego sterownika zegara LOCAL, czy jest to równoważne z usunięciem konfiguracji źródła czasu LOCAL z plików konfiguracyjnych?

  5. Masz jeszcze coś do rozważenia?

Stuggi
źródło

Odpowiedzi:

22

Po pierwsze, dobre dla ciebie; jest to pomocna i publiczna rzecz do zrobienia. To powiedziawszy i biorąc pod uwagę wyjaśnienie, że planujesz utworzyć jedną lub więcej maszyn wirtualnych DMZ, które zsynchronizują się i udostępnią publicznie czas z twoich trzech (wewnętrznych) serwerów Meinberg z obsługą GPS:

  1. Edycja : Wirtualizacja pojawia się od czasu do czasu w celu dyskusji na liście basenów ; ostatni z nich miał miejsce w lipcu 2015 r. Można go śledzić, zaczynając od tego e-maila . Zapytaj Bjørna Hansena, kierownika projektu, napisał post na wątku i nie wypowiedział się przeciwko wirtualizacji. Najwyraźniej wielu operatorów serwerów puli wirtualizuje teraz, więc nie sądzę, aby ktokolwiek Cię zastrzelił, a ponieważ jeden plakat wyjaśnia, jeśli twój serwer (serwery) są zawodne, system monitorowania puli po prostu usunie ich z basen. KVM wydaje się być preferowaną technologią wirtualizacji; Nie znalazłem nikogo specjalnie używającego VMWare, więc nie mogę wypowiedzieć się na temat tego, jak „uczciwa” jest wirtualizacja. Być może najlepsze streszczenie na ten temat powiedział

    Moje serwery puli są wirtualizowane za pomocą KVM na moich własnych hostach KVM. Monitorowanie mówi, że serwer jest dość dokładny i zapewnia stabilny czas przez ostatnie 2-3 lata. Ale nie ustawiłbym serwera puli na dzierżawionym serwerze wirtualnym od innego dostawcy.

  2. Jest to średnia dzienna liczba różnych klientów na sekundę, którą widzę na moim serwerze puli (który znajduje się w Wielkiej Brytanii, Europie i na całym świecie) w ciągu ostatniego roku:

    liczba klientów ntp

    To nie powoduje prawie żadnego wykrywalnego obciążenia systemu ( ntpdwydaje się, że zużywa od 1% do 2% procesora przez większość czasu). Zauważ, że w pewnym momencie roku obciążenie chwilowo osiągnęło szczyt prawie blisko tysiąca klientów na sekundę (Max: 849,27); Monitoruję nadmierne obciążenie, a alarmy nie wszystkie się uruchomiły, więc mogę tylko zauważyć, że nawet ten poziom obciążenia nie spowodował problemów, choć krótko.

  3. Konfiguracje zalecane przez projekt są najlepszą praktyką i działają dla mnie. Używam również iptablesdo ograniczania prędkości klientów do dwóch pakietów przychodzących w kroczącym dziesięciosekundowym oknie (to niesamowite, ilu jest niegrzecznych klientów, którzy uważają, że powinni mieć swobodę rozerwania, aby szybko ustawić własne zegary).

  4. Lub usuń wszystkie wiersze odnoszące się do adresów serwerów zaczynających się od 127.127.

  5. Wytyczne dotyczące najlepszych praktyk zalecają również więcej niż trzy zegary, więc możesz chcieć wybrać kilka innych serwerów publicznych lub określonych serwerów puli oprócz trzech serwerów warstwy 1.

    Chciałbym również zauważyć, że jeśli planujesz umieścić obie te maszyny wirtualne na tym samym sprzęcie hosta, prawdopodobnie powinieneś po prostu uruchomić tę, ale podwoić przepustowość zadeklarowaną w puli (tzn. Zaakceptować dwa razy więcej zapytań niż w innym przypadku ).

MadHatter obsługuje Monikę
źródło
1
Wiele dystrybucji Linuksa ustawionych iburstdomyślnie ...
Michael Hampton
4
iburstNie przeszkadza mi tak bardzo, jak to ma zastosowanie tylko wtedy, gdy serwer jest un osiągalne. Ustawienie burstjest jednak wręcz aspołeczne.
MadHatter obsługuje Monikę
1
Dzięki kolego, dokładnie to, co chciałem wiedzieć! Aby to wyjaśnić, korzystam z VMware pod nimi i jest to rozproszony klaster. Moje wewnętrzne zegary to urządzenia Meinberga i mówią naiwnie NTP. Obciążenie wydaje się całkiem rozsądne, moje zegary wewnętrzne widzą to około dwa razy (ale z drugiej strony są tam, aby moje urządzenia były tak aspołeczne, jak chcą).
Stuggi,
@Stuggi Próbowałem wyjaśnić pytanie dotyczące wirtualizacji, przeszukując listę operatorów puli, mam nadzieję, że to pomoże. Nie wahaj się zaakceptować mojej odpowiedzi, jeśli uważasz, że została rozwiązana wszystkie Twoje pytania! I jeszcze raz dziękuję za uruchomienie serwera puli.
MadHatter obsługuje Monikę
1
@MadHatter Pozdrowienia kolego, to trochę wyjaśniło. Wcześniej miałem do czynienia z wieloma problemami związanymi z czasem na VMware i wiem, jak sobie z nimi poradzić, po prostu martwiłem się, że nawet po poprawieniu wszystkiego maszyna wirtualna nadal byłaby zbyt zła w pomiarach czasu dla NTP. VMware to hiperwizor bez systemu operacyjnego (inaczej hypervisor to system operacyjny), podczas gdy KVM (o ile dobrze pamiętam) działa na „normalnym” systemie operacyjnym, więc uruchomienie go w VMware powinno być w porządku. Spróbuję i zobaczę, czy zostanę wyrzucony z basenu! :)
Stuggi,
12

Po pierwsze, gratuluję pytania NTP, które nie jest materiałem na twarz. :-) Dołączyłem kilka wykresów na dole tego postu, aby dać ci poczucie rzeczy. Wspomniana maszyna wirtualna jest ustawiona na 100 Mb / s w panelu sterowania puli i znajduje się w Wielkiej Brytanii, Europie i pulach globalnych.

  1. Myślę, że MadHatter dobrze to opisał - wirtualizacja powinna być w porządku. Jak mówisz, jeśli karmią się z twojej warstwy 1 połączonej z GPS, powinny być dość solidne. Z mojego doświadczenia wynika, że ​​maszyny wirtualne są nieco bardziej nerwowe niż nagi metal pod względem częstotliwości (patrz wykres poniżej), ale tego można się spodziewać - mają do czynienia z warstwą emulacji zegara (mam nadzieję, że całkiem wydajną) i potencjalnie hałaśliwą sąsiedzi Jeśli wolisz nie widzieć tego rodzaju zawirowań, możesz zamiast tego użyć starszych serwerów lub nieużywanych komputerów jako warstwy DMZ.

  2. Ta maszyna wirtualna to 1 rdzeń, 2 GB pamięci RAM, działający pod kontrolą Ubuntu 16.04 LTS, zwirtualizowany w OpenStack (hypervisor KVM). Jak widać, pamięć RAM jest nieco przesadzona.

  3. Zalecane ustawienia - w tym brak skonfigurowania lokalnego sterownika - są domyślne w Ubuntu 16.04. Pracuję bardzo blisko konfiguracji magazynu, innej niż lista równorzędna.

  4. (patrz wyżej)

  5. Prawdopodobnie zacznę od niskiej przepustowości i zwiększę przepustowość po tym, jak ją trochę monitorujesz. Jeśli wszystkie maszyny wirtualne znajdują się blisko siebie i w pobliżu warstwy 1 pod względem opóźnienia sieci, prawdopodobnie wszystkie maszyny wirtualne będą rozmawiać ze wszystkimi warstwami 1 i prawdopodobnie zobaczą je ze sobą, a także włączy tryb osierocony.

Oto wykresy - wszystkie obejmują ten sam okres około 3 tygodni, z wyjątkiem sieci, która miała kilka skoków z powodu kopii zapasowych. Kiedy występowały gwałtowne wzrosty sieci, nie widziałem nawet normalnego ruchu NTP, więc powiększyłem trochę, aby pokazać zwykłe tło.

Przesunięcie systemu częstotliwości procesor pamięci Pamięć sieci procesoraSiećCzęstotliwośćPrzesunięcie systemu

Paul Gear
źródło
Ooooch, ładna odpowiedź - +1 ode mnie!
MadHatter obsługuje Monikę
1
Dzięki kolego, bardziej to jest naprawdę pomocne, działam z opóźnieniem mniejszym niż 3 ms między maszynami wirtualnymi a fizycznymi urządzeniami NTP, które są rozproszone geograficznie w obrębie 50 mil od infrastruktury maszyny wirtualnej, więc myślę, że wszystko będzie dobrze!
Stuggi
3

Kilka rzeczy do rozważenia przy NTP

Tutaj są już dobre odpowiedzi. Właśnie dodam kilka przemyśleń dla kompletności w oparciu o własne doświadczenia.

Sugerowałbym włączenie rejestrowania NTP i odchyleń zegara wykresu i poprawek na gołym metalu w porównaniu do VM, ponieważ dotyczy to tej dyskusji, jeśli jest to problem. Nie wierzę, że można to łatwo uogólnić, ponieważ sprzęt i konfiguracja różnią się w zależności od implementacji. Być może najlepiej będzie uzyskać na nim własne numery.

Zawsze sugerowałem ludziom, aby wybrali role systemowe serwerów lub urządzeń sieciowych, które mają dość stały czas procesora i które nie są jądrami bez tykania lub mają włączone tryby oszczędzania energii. Szczególnie unikaj linii demonów cpuspeed lub speed govenors lub zaawansowanego oszczędzania energii na serwerach NTP, nawet jeśli są to tylko warstwy 2 w twojej farmie. Pewną stabilność można uzyskać, nie wchodząc głębiej niż C-State 1, ale zużycie energii wzrośnie.

Staram się również upewnić, że ludzie wybierają garść serwerów warstwy 1, które znajdują się w odległości poniżej 40 ms od krawędzi ich sieci, a następnie dzielą je na krawędzie serwerów NTP i upewniają się, że nie rozmawiają 2 serwery za tym samym SNAT w sieci do tego samego serwera warstwy 1. Zgodnie z tymi samymi liniami co burst, nierozsądne jest posiadanie wielu serwerów za tym samym SNAT przy użyciu tych samych serwerów nadrzędnych, ponieważ będzie im wydawać, że masz włączoną serię, nawet jeśli nie masz.

Zawsze powinieneś honorować kodpakiet z serwera nadrzędnego i mieć narzędzia monitorujące sprawdzające przesunięcia czasowe i osiągalność serwerów nadrzędnych.

Państwo może warto rozważyć posiadające własne dokładnych źródeł czasu w kilku swoich centrach danych na każdym z lub spadnie z powrotem w mało prawdopodobnym przypadku, że GPS SA jest włączona przez wojsko. Istnieją specjalnie do tego opłacalne urządzenia. Nawet jeśli jesteś w środowisku „klatkowym” i nie masz własnego centrum danych, niektóre usługi hostingowe mogą to umożliwić.

Aaron
źródło
Stuggi wspomniał już, że dana sieć ma 3 zegary GPS.
Paul Gear,
Tak. Mówię konkretnie o używaniu lokalnych zegarów cezu, które nie będą dryfować w mało prawdopodobnym przypadku wyłączenia GPS. Powinno to nastąpić tylko podczas wielkiej imprezy wojskowej, ale nigdy nie wiadomo.
Aaron,
2

Zobacz dokument pomiaru czasu vmware na stronie http://www.vmware.com/pdf/vmware_timekeeping.pdf

Uruchamianie demona NTP na maszynie wirtualnej prawdopodobnie nie jest dobrym pomysłem, szczególnie jeśli potrzebujesz niezawodnego czasu.

Nicholas Jeffrey
źródło
3
Chociaż nie jest to dokładna odpowiedź, budzi to uzasadnione obawy ala „TL; DR: tak, istnieją problemy z wirtualizacją”.
rackandboneman,
Zdaję sobie sprawę z tych problemów, które należy rozwiązać, bardziej zastanawiam się, czy to w ogóle możliwe.
Stuggi,
1
Re: „Uruchamianie demona NTP na maszynie wirtualnej prawdopodobnie nie jest dobrym pomysłem, szczególnie jeśli potrzebujesz niezawodnego czasu”. - Nie sądzę, że dotyczy to każdego nowoczesnego hiperwizora. Dokument, do którego prowadzisz link, wyraźnie mówi, że używanie NTP na maszynie wirtualnej jest opcją. Wykresy, które zawarłem w odpowiedzi, pokazują, że VM może utrzymywać dobry czas na KVM i oczekiwałbym, że nowsze systemy ESXi zrobią to samo.
Paul Gear,