Úvod
přesné vedení času je rozhodující pro téměř jakoukoli službu nebo software. E-maily, loggery, systémy událostí a plánovače, mechanismy ověřování uživatelů a služby běžící na distribuovaných platformách vyžadují přesné časové značky pro zaznamenávání událostí v chronologickém pořadí. Tyto služby používají síťový Časový protokol nebo NTP k synchronizaci systémových hodin s důvěryhodným externím zdrojem. Tímto zdrojem mohou být atomové hodiny, přijímač GPS nebo jiný časový server, který již používá NTP.
Zde přichází do hry Projekt NTP Pool Project. Je to obrovský celosvětový shluk časových serverů, který poskytuje snadný přístup ke známému „dobrému času“ pro desítky milionů klientů po celém světě. Je to výchozí časový server pro Ubuntu a většinu dalších hlavních distribucí Linuxu, stejně jako mnoho síťových zařízení a softwarových aplikací.
v této příručce nastavíte NTP na serveru a nakonfigurujete jej tak, aby byl součástí projektu NTP Pool, takže poskytuje přesný čas ostatním uživatelům projektu NTP Pool. Poskytnutí náhradních cyklů CPU a nevyužité šířky pásma je dokonalým způsobem, jak něco vrátit komunitě.
požadovaná šířka pásma je relativně nízká a lze ji upravit v závislosti na částce, kterou můžete poskytnout, a na místě, kde je váš server umístěn. Každý klient bude posílat pouze pár UDP pakety každých 20 minut, takže většina serverů obdrží pouze asi tucet NTP paketů za sekundu, s hroty několikrát denně až sto paketů za sekundu. To se promítá do využití šířky pásma 10-15Kb / sec s hroty 50-120Kb / sec.
před vstupem do projektu NTP Pool musíte splnit tři základní požadavky:
- váš server musí mít statickou IP adresu.
- váš server musí mít trvalé a stabilní připojení k internetu.
- vaše IP adresa se většinou nemění nebo se mění jen zřídka (jednou za rok nebo méně).
u většiny cloudových serverů jsou první dva požadavky obvykle splněny automaticky. Třetí požadavek zdůrazňuje, že připojení k projektu NTP Pool představuje dlouhodobý závazek. Samozřejmě, pokud se vaše okolnosti změní, je v pořádku vyjmout server z bazénu, ale bude to trvat dlouho (většinou týdny, ale někdy měsíce nebo dokonce roky), než provoz úplně zmizí.
Předpoklady
dokončit tento návod, budete potřebovat:
- Jeden Centos 7 server s IPv6 sítě nakonfigurován. Pokud potřebujete nakonfigurovat síť IPv6 na vystupující kapičce, můžete postupovat podle tohoto tutoriálu.
- sudo non-root uživatele a firewall, který můžete nastavit pomocí následujících Nastavení Počátečního Serveru s CentOS 7 tutorial a „Konfigurace Základní brány Firewall“ v části Další Doporučené Kroky pro Nový CentOS 7 Serverů tutorial.
Krok 1-Instalace NTP
balíček NTP není ve výchozím nastavení nainstalován, takže jej nainstalujete pomocí správce balíčků. Nejprve aktualizujte své balíčky:
- sudo yum update
poté nainstalujte NTP:
- sudo yum install ntp
Jakmile se instalace dokončí, spusťte službu a nakonfigurujte ji tak, že se spustí automaticky při každém spuštění serveru:
- sudo systemctl start ntpd
- sudo systemctl enable ntpd
Pokud jste nakonfigurovali firewall, jak je uvedeno v předpoklady, musíte povolit UDP NTP služby k zajištění komunikace s NTP pool:
- sudo firewall-cmd --permanent --add-service=ntp
- sudo firewall-cmd --reload
Pro více informací o FirewallD, viz Jak Nastavit Firewall Pomocí FirewallD na CentOS 7.
NTP je nyní nainstalován, ale je nakonfigurován tak, aby používal výchozí časové servery fondu NTP. Umožňuje místo toho vybrat některé konkrétní časové servery.
2. Krok — Výběr Vhodného Nadřazeného Serveru
NTP Pool projektu žádá subjekty, které chtějí vstoupit do bazénu, aby si vybrat dobrou síť-místní časové servery, spíše než používat výchozí pool.ntp.org
servery. Tím je zajištěno, že projekt NTP Pool zůstává spolehlivý, rychlý a zdravý. Při výběru zdroje času budete chtít stabilní síťové připojení bez ztráty paketů a co nejméně chmele mezi servery.
víceúrovňový a hierarchický protokol NTP odděluje zúčastněné strany na primární servery, sekundární servery a klienty. Primární servery se nazývají Stratum 1 a jsou připojeny přímo ke zdroji času, který se nazývá Stratum 0. Tímto zdrojem mohou být atomové hodiny, přijímač GPS nebo rádiový Navigační systém. Sekundární servery v řetězci se nazývají Stratum 2, Stratum 3 a tak dále.
každý server je také klientem. Klient Stratum 2 přijímá čas z upstream Stratum 1 server a poskytuje čas navazujícím serverům Stratum 3 nebo jiným klientům. Aby členové projektu NTP Pool správně pracovali, potřebuje démon NTP nakonfigurovat alespoň tři servery. Projekt doporučuje minimálně čtyři a ne více než sedm zdrojů.
Projekt NTP Pool poskytuje seznam veřejných časových serverů Stratum 1 a Startum 2. Seznamy označují časové servery NTP dostupné pro veřejný přístup za stanovených omezení. Najdete zde tři typy:
- OpenAccess: tento časový server je otevřen každému klientovi, který splňuje doporučení pro použití fondu NTP.
- RestrictedAccess: tento časový server má kromě doporučení pro použití fondu NTP některá omezení přístupu.
- ClosedAccess: Tento časový server je uzavřen nebo vyžaduje předchozí uspořádání.
Varování: nepoužívejte servery, které nejsou uvedeny jako OpenAccess, pokud jste obdrželi souhlas, aby tak učinily.
navštivte seznam časových serverů Stratum 1. Uvidíte seznam jako následující:
Seřadit seznam podle ISO kód sloupec a najít jeden nebo dva servery, které jsou geograficky blízko k serveru datového centra. Když sloupec zásady přístupu k serveru uvádí OpenAccess, můžete jej použít bez problémů. Pokud se říká „RestrictedAccess“, kliknutím otevřete položku a přečtěte si pokyny uvedené v poli AccessDetails. Často, zjistíte, že NotificationMessage je nastaven na Ano, což znamená, že budete muset sestavit neformální e-mail zaměřena na adresu uvedenou v ServerContact, informuje provozovatel serveru o vaše přání, aby tento čas využít server jako zdroj času pro vaše NTP Pool člena Projektu.
jakmile určíte servery, které chcete použít, klikněte na odkaz pro každý server ve sloupci ISO a zkopírujte jeho název hostitele nebo IP adresu. Tyto adresy použijete v kroku 3.
Dále vyberte tři nebo čtyři servery ze seznamu Stratum 2 podle stejného postupu.
Jakmile vyberete své časové servery, je čas nakonfigurovat klienta NTP tak, aby je používal.
Krok 3 — Konfigurace NTP k Bazénu
použít váš server s NTP pool, a nakonfigurovat váš nový časových serverů, budete muset udělat nějaké změny, aby vaše NTP daemon konfigurace. Chcete-li tak učinit, upravte soubor /etc/ntp.conf
:
- sudo vi /etc/ntp.conf
nejprve se ujistěte, že je nakonfigurován driftfile. A driftfile obchodech frekvenční offset mezi systémové hodiny běží na své nominální frekvenci a frekvence požadováno, aby zůstali v synchronizaci s správnou dobu. Pomáhá dosáhnout stabilního a přesného času. Toto byste měli najít v horní části konfiguračního souboru při výchozí instalaci:
# For more information about this file, see the man pages# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).driftfile /var/lib/ntp/drift...
dále odeberte výchozí položky zdroje času z konfigurace. Hledáte všechny řádky, které mají vzor server 0.centos.pool.ntp.org iburst
. Pokud používáte výchozí konfiguraci, odstraňte zvýrazněné řádky, jak je uvedeno v následujícím příkladu:
...# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).server 0.centos.pool.ntp.org iburstserver 1.centos.pool.ntp.org iburstserver 2.centos.pool.ntp.org iburstserver 3.centos.pool.ntp.org iburst
nahraďte řádky, které jste odstranili, ručně vybranými servery, které jste vybrali v předchozím kroku.
...server ntp_server_hostname_1 iburstserver ntp_server_hostname_2 iburstserver ntp_server_hostname_3 iburstserver ntp_server_hostname_4 iburstserver ntp_server_hostname_5 iburst...
používáme volbu iburst
pro každý server podle doporučení fondu NTP. Tímto způsobem, pokud je server nedostupný, odešle to výbuch osmi paketů místo obvyklého jednoho paketu. Použití volby burst
v projektu NTP Pool je považováno za zneužití, protože odešle těchto osm paketů každý interval hlasování, zatímco iburst
odešle osm paketů pouze poprvé.
dále se ujistěte, že výchozí konfigurace neumožňuje dotazy pro správu. Pokud tak neučiníte, může být váš server použit v odrazových útocích NTP nebo může být zranitelný vůči dotazům ntpq
a ntpdc
, které se pokoušejí změnit stav serveru. Zkontrolujte, zda je do výchozích řádků restrict
přidána volba noquery
. Také ujistěte se, že přidání možnosti kod
a limited
jak se omezit příliš dychtivě ptají klienti a prosazování omezení rychlosti.
...# Permit time synchronization with our time source, but do not# permit the source to query or modify the service on this system.restrict default nomodify notrap nopeer noquery kod limited# Permit all access over the loopback interface. This could# be tightened as well, but to do so would effect some of# the administrative functions.restrict 127.0.0.1restrict ::1
další informace o dalších možnostech naleznete v oficiální dokumentaci.
NTP daemon konfigurační soubor by měl vypadat jako následující, i když váš soubor může mít další připomínky, které můžete bezpečně ignorovat:
driftfile /var/lib/ntp/ntp.driftrestrict default nomodify notrap nopeer noquery kod limitedrestrict 127.0.0.1restrict ::1server ntp_server_hostname_1 iburstserver ntp_server_hostname_2 iburstserver ntp_server_hostname_3 iburstserver ntp_server_hostname_4 iburstserver ntp_server_hostname_5 iburst
uložte soubor a ukončete editor.
nyní restartujte službu NTP a nechte svůj časový server synchronizovat hodiny s předními servery.
- sudo systemctl restart ntpd
po několika minutách zkontrolujte stav svého časového serveru příkazem ntpq
:
- ntpq -p
výstup by měl vypadat podobně:
Output remote refid st t when poll reach delay offset jitter============================================================================== mizbeaver.udel. .INIT. 16 u - 64 0 0.000 0.000 0.000 montpelier.ilan .GPS. 1 u 25 64 7 55.190 2.121 130.492+nist1-lnk.binar .ACTS. 1 u 28 64 7 52.728 23.860 3.247*ntp.okstate.edu .GPS. 1 u 31 64 7 19.708 -8.344 6.853+ntp.colby.edu .GPS. 1 u 34 64 7 51.518 -5.914 6.669
vzdálený sloupec vám řekne název hostitele serverů, které používá démon NTP, a sloupec refid vám řekne zdroj, který servery používají. Takže pro servery Stratum 1 By pole refid mělo zobrazovat GPS, PPS, ACTS nebo PTB a servery Stratum 2 a vyšší budou zobrazovat IP adresu upstream serveru. Sloupec st zobrazuje vrstvu a zpoždění, posun a chvění vám řeknou o kvalitě zdroje času. Nižší hodnoty jsou lepší pro tato tři pole.
váš časový server je nyní schopen sloužit čas veřejnosti. Můžete si to ověřit tím, že volá ntpdate
z jiného hostitele:
- ntpdate -q your_server_ip
výstup by měl vypadat podobně jako tento a to vám řekne, to upravila časový server a posun:
Outputserver your_server_ip, stratum 2, offset 0.001172, delay 0.16428 2 Mar 23:06:44 ntpdate: adjust time server your_server_ip offset 0.001172 sec
nyní Jste připraveni zaregistrovat váš NTP server, NTP Pool Projektu, takže ostatní mohou použít.
Krok 4 — Přidání Serveru NTP Pool
přidat svůj server, takže ostatní mohou použít, navštivte manage.ntppool.org a přihlásit se k účtu. Obdržíte e-mail od NTP Pool [email protected] žádost o ověření vašeho účtu. Potvrďte svůj účet podle pokynů v e-mailu, a pak se přihlásit do manage.ntppool.org.
Jakmile se přihlásíte, uvidíte jednoduché rozhraní pro přidávání serverů:
Zadejte adresu IP vašeho serveru a klikněte na Odeslat.
další obrazovka vás vyzve k ověření, že identifikovala oblast vašeho serveru. Pokud zobrazuje váš server v jiné oblasti, než očekáváte, dejte jim vědět pomocí pole komentářů.
pokud jste spokojeni, potvrďte zadání kliknutím Ano, Toto je můj server, přidejte jej!
váš server je nyní součástí projektu NTP Pool. Navštivte http://www.pool.ntp.org/scores/your_server_ip
a podívejte se na informace, které monitorovací systém fondu NTP shromáždil o vašem serveru. Kontroluje váš server několikrát za hodinu a zobrazuje offset data, alog s skóre vašeho systému. Dokud váš server udržuje dobrý čas a je dosažitelný, skóre se zvýší, dokud nedosáhne 20 bodů. Ve fondu se používají pouze servery se skóre vyšším než 10.
Odstraňování problémů Problémy s Připojením
Pokud máte potíže se dostat váš server pro synchronizaci můžete mít paketů firewall v místě vrácení odchozí pakety na portu 123
. Podívejte se, jak nastavit Firewall pomocí FirewallD na CentOS 7 a dozvíte se, jak zkontrolovat stav brány firewall.
pokud monitorovací stanice projektu NTP Pool nemůže dosáhnout vašeho serveru NTP a skóre serveru klesá, nebo nemůžete použít server k synchronizaci jiných hodin, můžete mít firewall paketů na místě, který upustí příchozí provoz na portu 123
. Zkontrolujte stav brány firewall.
pokud jste si jisti, že nemáte bránu firewall nebo jste otevřeli port 123
pro příchozí i odchozí provoz, váš poskytovatel serveru nebo jiný poskytovatel tranzitu může vaše pakety po cestě stahovat. Pokud nemáte znalosti k řešení těchto problémů sami, je nejlepší se obrátit na komunitu a požádat o pomoc. Fórum projektů NTP Pool je dobrým místem pro začátek. Můžete se také připojit k mailing listu nebo poslat emaill provozovateli projektu NTP Pool. Než požádáte o pomoc, ujistěte se, že můžete zobrazit všechny kroky, které jste se již pokusili vyřešit.
závěr
v tomto tutoriálu jste úspěšně nastavili svůj vlastní časový server a učinili jste jej členem projektu NTP Pool, který slouží komunitě. Zůstat v kontaktu s komunitou udržující čas. připojte se k fóru projektů NTP Pool nebo k mailing listu. Nezapomeňte sledovat skóre vašeho serveru a provést potřebné úpravy.