Inštalácia a konfigurácia časového servera ntp v systéme Linux. Konfigurácia synchronizácie času NTP pomocou protokolu skupiny ntp Time Synchronization Protocol

V operačných systémoch Windows je za synchronizáciu času zodpovedná služba Windows Time Service, alias w32time. Táto služba poskytuje serverovú a klientskú časť. Inými slovami, ten istý počítač môže fungovať súčasne ako server a klient.

Služba Windows Time Service nemá žiadne grafické rozhranie. Konfigurácia sa vykonáva pomocou CMD pomocou obslužného programu w32tm, ručnej úpravy registra alebo prostredníctvom skupinových politík.

Obslužný program w32tm mení parametre v tejto časti

HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time

Skupinové politiky vytvárajú sekciu v

HKLM \ SOFTWARE \ Policies \ Microsoft \ W32Time

Nastavenia vytvorené zásadami skupiny majú prednosť pred predvolenými nastaveniami.

Zvážte obsah podsekcie Parametre počítača umiestneného v pracovnej skupine

a pre doménový počítač

Kľúč NtpServer definuje zoznam časových serverov, s ktorými dôjde k synchronizácii. Predvolená adresa je time.windows.com, 0x9. Pri zadávaní viac ako jedného servera musia byť adresy oddelené medzerami.

Parameter 0x9 je súčet 0x1 a 0x8.

0x1 - SpecialInterval, použitie špeciálneho intervalu výziev.
0x2 - režim UseAsFallbackOnly.
0x4 - SymmetricActive, symetrický aktívny režim.
0x8 - Klient, odosielanie žiadosti v klientskom režime.

Špeciálny interval dotazovania je uvedený v tlačidle

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ NtpClient \ SpecialPollInterval

a je 3 600 sekúnd. To znamená, že synchronizácia prebieha každú hodinu.

Kláves Type definuje typ synchronizácie a má nasledujúci význam:

NoSync - časová služba nie je synchronizovaná s inými zdrojmi.
Časová služba NTP sa synchronizuje so servermi zadanými v položke registra NtpServer.
Časová služba NT5DS vykonáva synchronizáciu na základe hierarchie domén.
Služba AllSync - Time využíva všetky dostupné synchronizačné mechanizmy.

V prípade počítača z pracovnej skupiny sa používa typ NTP, to znamená, že čas sa synchronizuje so serverom time.windows.com uvedeným v kľúči NtpServer.

Doménový počítač používa typ NT5DS. V takom prípade dôjde k časovej synchronizácii s radičom domény, na ktorom je autorizovaný počítač. Radiče synchronizujú svoj čas s radičom, ktorý vlastní rolu emulátora PDC. Vlastník role emulátora PDC tiež používa typ NT5DS a synchronizuje svoj čas s miestnymi hodinami, ktoré dostali čas z obvodu CMOS umiestneného na základnej doske. Nevýhodou je, že čas prijatý z obvodu CMOS sa neustále „posúva“ v porovnaní s tým skutočným. Aby sa tomu nestalo, zmeňte v koreňovom radiči s rolou emulátora PDC typ na NTP a zadajte zoznam externých časových serverov v NtpServer.

Na radiči koreňovej domény s rolou emulátora PDC otvorte CMD a vykonajte príkaz

C: \> w32tm / config /manualpeerlist:"0.ru.pool.ntp.org,0x9 1.ru.pool.ntp.org, 0x9 2.ru.pool.ntp.org, 0x9 3.ru.pool. ntp.org, 0x9 "/ syncfromflags: RUČNE / aktualizácia

/ manualpeerlist - určuje zoznam časových adries zdrojov. Tento zoznam sa pridá k hodnote už známeho kľúča NtpServer.

/ syncfromflags - určuje zdroj synchronizácie. Tento parameter mení hodnotu klávesu Type. Možné možnosti:

MANUAL - synchronizácia s uzlami z ručne určeného zoznamu. Rovnaké ako NTP.
DOMHIER - synchronizácia s radičom domény Active Directory v hierarchii domén. Rovnaké ako NT5DS.
NIE - žiadna synchronizácia. Rovnaké ako NoSync.
VŠETKO - Synchronizácia s manuálnymi uzlami aj s doménovými uzlami. Rovnaké ako AllSync.

/ update - upozorní časovú službu, že sa konfigurácia zmenila, aby sa zmeny prejavili.

To, či počítač môže fungovať ako časový server, určuje nasledujúci kľúč

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ NtpServer \ Enabled

Pre radič má tento kľúč hodnotu 1, pre počítač 0. Inými slovami, akýkoľvek radič domény funguje ako časový server.

Kľúč je zodpovedný za to, ako časová služba upraví čas na klientovi.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config \ MaxAllowedPhaseOffset

Pre počítač v pracovnej skupine sa hodnota kľúča MaxAllowedPhaseOffset rovná 1 sekunde. Počítač domény má 300 sekúnd. Ak je časový rozdiel medzi klientom a časovým serverom väčší ako hodnota kľúča MaxAllowedPhaseOffset, potom časová služba okamžite zmení čas na klientovi na čas nastavený na časovom serveri. Ak je časový rozdiel menší, budú sa hodiny nastavovať postupne. To nezabráni výpadkom časovo citlivých služieb. Na druhej strane je 300 sekúnd pre protokol Kerberos 5 minút alebo maximálny povolený časový rozdiel.

Ak chcete zmeniť nastavenie časovej služby prostredníctvom skupinových politík, musíte vytvoriť filter WMI, aby ste politiku zamerali na radič koreňovej domény s rolou emulátora PDC. Ak to chcete urobiť, otvorte modul snap-in Správa politiky skupiny, kliknite pravým tlačidlom myši na sekciu Filtre WMI a vyberte možnosť Nový. Do názvu poľa musíte napísať názov filtra, napríklad „PDC Emulator“. Ďalej musíte kliknúť na tlačidlo „Pridať“ a vložiť dotaz WMI

Vyberte * z Win32_ComputerSystem, kde DomainRole = 5

Vytvorme politiku, kliknite pravým tlačidlom myši na sekciu „Doménové radiče“ a vyberte možnosť „Vytvoriť objekt skupinovej politiky ...“, nazvime ju „Zdroje času emulátora PDC“. Pravým tlačidlom myši kliknite na vytvorený objekt, zvoľte „Upraviť“. Poďme otvoriť sekciu „Konfigurácia počítača-> Zásady-> Šablóny pre správu-> Systém-> Windows Time Service-> Poskytovatelia času“. Vyberieme možnosť „Konfigurovať klienta Windows NTP“. Do poľa NtpServer vložte adresy časových serverov

0.ru.pool.ntp.org, 0x9 1.ru.pool.ntp.org, 0x9 2.ru.pool.ntp.org, 0x9 3.ru.pool.ntp.org, 0x9

V poli Typ vyberte hodnotu „NTP“, potom kliknite na „OK“ a zatvorte okno „Editor správy skupinovej politiky“.

Potom musíte zvoliť vytvorenú zásadu „Zdroje času emulátora PDC“ a v poli „Filter WMI“ zvoliť predtým vytvorený filter „Emulátor PDC“.

Diagnostika

Príkazom môžete vynútiť synchronizáciu času

C: \> w32tm / resync

Pomocou príkazu môžete zobraziť zdroj aktuálneho času

C: \> w32tm / dopyt / zdroj

Tento príkaz zobrazuje zdroj aktuálneho času, čas synchronizácie a ďalšie informácie.

C: \> w32tm / dopyt / stav

Tento príkaz zobrazuje údaje pre všetky zdroje času

C: \> w32tm / dopyt / kolegovia

Časový rozdiel medzi počítačom a zdrojom času je možné zobraziť pomocou príkazu

C: \> w32tm / monitor

Aktuálnu konfiguráciu zobrazíte pomocou príkazu

C: \> w32tm / dopyt / konfigurácia

Časovú službu môžete reštartovať pomocou príkazu

C: \> net stop w32time && net start w32time

Ak sa niečo pokazí, môžete časovú službu znova zaregistrovať. Týmto sa znovu vytvorí celá vetva registra súvisiaca s časovou službou.

C: \> net stop w32time c: \> w32tm / zrušiť registráciu c: \> w32tm / zaregistrovať c: \> net start w32time

Na rýchlu synchronizáciu času s konkrétnym hostiteľom môžete použiť príkaz

C: \> NET TIME \\ DC1.4SKILL.LOC / SET / Y

Ak spustíte príkaz na počítači domény bez určenia hostiteľa, s ktorým chcete synchronizovať čas, dôjde k synchronizácii s časovým serverom domény.

Na internete nájdete celú škálu manuálov na nastavenie časového servera - ntpd, iróniou však je, že 95% z nich je buď nie celkom správnych, a autori si to ani nevšimnú, alebo nie poskytnúť potrebné informácie. Ďalej vám poviem, ako usporiadať server NTP v systéme Linux v lokálnej sieti, ktorý bude synchronizovať svoj čas so servermi v internete, a zariadenia v miestnej sieti už budú synchronizovať čas s ním.

Trochu pred históriou. Podľa očakávania to všetko začalo neočakávane, server, ktorý som nastavil v noci predtým, pri ďalšom načítaní zamrzol. Pomyslel som si „nádherne“ a dostal som sa do denníkov ... Server sa vďaka tomu previnil službou ntpd, ktorá kvôli nesprávnemu nastaveniu siete nemohla kontaktovať synchronizáciu s externým serverom. Po prezretí štartovacieho skriptu som narazil na zaujímavý záznam:

start () (readconf; if [-n "$ dostep"]; then gprintf $ "Čas synchronizácie pre ntpd:" # skúste to tvrdo, niektoré siete / pomalé stroje / ... chvíľu trvať, kým bude mať DNS local tryleft = 7 while [$ triesleft -gt 0]; do / usr / sbin / ntpdate -s -b $ NTPDATE_OPT $ tickers RETVAL = $? [$ RETVAL -eq 0] && break triesleft = $ (($ triesleft-1)) spánok 1 hotovo zrušiť pokus o zľavu [$ RETVAL -eq 0] && success || zlyhanie echo if [$ RETVAL -eq 0]; then ["$ SYNC_HWCLOCK" = "yes"] && sync_hwclock else OPTIONS = "$ OPTIONS -g" fi else # - g môže nahradiť grep za časové servery #, pretože umožňuje ntpd jednorazovo porušiť jeho limit 1 000. OPTIONS = "$ OPTIONS -g" fi # Start daemons. gprintf $ "Počnúc $ prog:" daemon ntpd $ OPTIONS RETVAL = $? echo [$ RETVAL -eq 0] && touch / var / lock / subsys / ntpd návrat $ RETVAL)

A teraz venujte pozornosť riadku s číslom 8. Toto je začiatok cyklu, v ktorom bude vykonaný pokus až 7-krát o počiatočnú hrubú časovú synchronizáciu. Všetko by bolo v poriadku, ale ak je vaša sieť alebo DNS nesprávne nakonfigurovaný, spôsobí to zastavenie servera na 7 * (1 + čas kontroly dostupnosti DNS, asi 5 sekúnd) sekúnd. Čakanie na minútu mi vo všeobecnosti zjavne nevyhovovalo, tak poďme na to.

Nastavuje sa počiatočná hrubá synchronizácia

V nádhernom súbore / etc / ntp / step-tickers sú uložené názvy serverov, pomocou ktorých sa vykonávajú úvodné hrubé úpravy (stovky milisekúnd). Ak ste si istí, že budete mať vždy prístup na internet, môžete v ňom uviesť názvy serverov, napríklad:

Ak ale v čase úvodného načítania servera nemáte pripojenie k internetu, potom to za určitých podmienok spôsobí, že konzola pomerne dlho zamrzne. Preto som odtiaľ vymazal všetky záznamy. Nakoniec môžem ručne urobiť hrubú úpravu času. K dispozícii je tiež možnosť hrať sa s týmito možnosťami a vylepšiť spúšťací skript, ale to nie je moja cesta. Preto pokračujeme priamo k vytvoreniu plnohodnotného NTP servera, ktorý bude synchronizovať svoj čas s verejnými servermi na internete a v prípade potreby ho poskytne účastníkom miestnej siete.

Úloha: Usporiadajte NTP server v lokálnej sieti, ktorý bude synchronizovať svoj čas s Internetom, a zariadenia v lokálnej sieti už budú synchronizovať čas s ním.
Distribúcia: Mandriva 2010.2 zadarmo Verzia Ntpd: 4.2.4p8

Konfigurácia NTPD

Svet Linuxu je naozaj skvelý, všetky jeho nastavenia sa redukujú na jednoduchú úpravu konfiguračných súborov. ntpd nie je v tomto ohľade výnimkou. Takže ak ešte nemáte server ntpd, nainštalujte si ho:

Tí, ktorí si želajú, môžu kompilovať zo zdroja alebo ho inštalovať iným spôsobom, medzi moje platené patrí ukážka, ako nastaviť tento zázrak, pretože na internete nájdete celú škálu manuálov o nastavení ntpd, ale irónia je že 95% z nich nie je úplne správnych (a autori si to pri volaní statusov ani nevšimnú) alebo neposkytujú potrebné informácie. Takže konfiguračný súbor je uložený v /etc/ntp.conf, minimálne nastavenia sú asi také:

server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org

Každá linka smeruje na server (zoznamy serverov nájdete tu http://www.pool.ntp.org), s ktorým bude prebiehať synchronizácia. Štyri riadky od servera, respektíve štyri servery. Aj keď v skutočnosti to v tomto príklade nie je tak celkom pravda. Každý vstup smeruje na skupinu (skupinu) serverov. Pri kontaktovaní, povedzme, na adrese 2.ru.pool.ntp.org bude vybratá 1 adresa IP servera, s ktorou bude prebiehať synchronizácia. Súlad sa aktualizuje 1 krát za hodinu. Teraz pre jednoduchší príklad. Celkovo máme 4 boxy na hodinky. Vezmeme a náhodne vyberieme 1 hodinky z každého boxu, celkovo dostaneme 4 hodiny, s ktorými si skontrolujeme čas. Do hodiny zakaždým, keď skontrolujeme čas, si vezmeme rovnaké hodinky. O hodinu, keď sa k týmto krabiciam opäť otočíme, vytiahneme ďalšie hodinky. Náš čas teda bude neustále kontrolovaný na základe rôznych hodín, a ak sa niektoré z nich ukážu ako nefunkčné, potom sa nestane nič hrozné, pretože za 1 hodinu nie sú naše miestne hodiny príliš synchronizované. No odbočujeme, pokračujme. Pred spustením servera ntpd musíte vykonať úvodné hrubé nastavenie času. Čas môžete jednoducho nastaviť rukami alebo môžete vykonať príkaz (samozrejme, ak naše pripojenie k internetu funguje správne):

Po zhruba synchronizovanom čase môžete spustiť hlavnú službu (pre každý prípad ju reštartujte):

Potom vykonáme príkaz:

Vo výsledku by sa malo zobraziť niečo také:

vzdialený refid st t keď oneskorenie dosahu oneskorenia offset jitter ========================================= ===================================== mx.kr-pro.ru 62.149.0.30 2 u 26 64 1 22,416 77,711 0,001 phobos.bsys-net 192.36.143.151 2 u 25 64 1 32,994 64,937 0,001 webhost.mitht.r 77,105,134,138 3 u 25 64 1 68,134 37,119 0,001 hornet.itconnec 77,233,172,7 3 u 24 64 1 58,604 38,047 0,001

Malé vysvetlenie čo je čo. remote - FQDN alebo IP adresa servera; refid - IP adresa servera, s ktorým sa server momentálne synchronizuje zo vzdialeného stĺpca; st - vrstva servera; t - prevádzkový režim servera: „u“ - unicast, „m“ - multicast, „b“ - broadcast, „-“ - manycast; kedy - čas uplynul od poslednej odpovede servera v sekundách, alebo „-“ ak server ešte neodpovedal (s najväčšou pravdepodobnosťou „zomrel“ a je čas odstrániť informácie o ňom z konfiguračného súboru); anketa - interval dotazovania servera v sekundách (po spustení má malú hodnotu na rýchlejšiu synchronizáciu, táto hodnota sa časom zvyšuje); dosah - stav posledných ôsmich pokusov o vyžiadanie času od servera v osmičkovej reprezentácii (v prípade úspešného pokusu je nastavený zodpovedajúci bit); oneskorenie - oneskorenie odpovede servera v sekundách; offset - najdôležitejšia hodnota - rozdiel medzi miestnym časom a časom na serveri (časom sa hodnota zmenšuje, pretože čas sa stáva presnejším); jitter - rozptyl, fázový jitter (nižšie hodnoty poskytujú presnejšiu synchronizáciu). Čakáme 10 minút. Zopakujeme príkaz a uvidíme:

vzdialený refid st t keď oneskorenie dosahu oneskorenia offset jitter ========================================= ==================================== * mx.kr-pro.ru 62.117.76.142 2 u 5 64 377 20,558 38,662 19,060 + phobos.bsys-net 192.36.143.151 2 u 6 64 377 17,726 38,447 15,132 -webhost.mitht.r 77,105,134,138 3 u 4 64 377 66,744 13,451 16,257 + hornet.itconnec 77.233.172,7 3 u 11 64 377 57 291 43 556 13 327

Áno, tu to je, objavili sa najrôznejšie ďalšie symboly a to znamená: „*“ - server, s ktorým sa práve vykonáva synchronizácia, „#“ - server je vybraný na synchronizáciu, ale vzdialenosť od neho prekračuje maximálnu možnú mieru, „?“ - server bol vybraný na synchronizáciu a používa signál PPS, „+“ - server bol pridaný do zoznamu serverov vybraných na synchronizáciu, „x“ - server používa nesprávny algoritmus, „.“ - server je vybraný na konci zoznamu serverov vybraných na synchronizáciu, „-“ - server bol odmietnutý zoskupovacím algoritmom, medzera - server má príliš vysokú vrstvu a / alebo ho nemožno overiť; Jednoduchým spôsobom, ak vidíme „+“, „-“, „*“, synchronizácia sa začala. offset - odchýlka nášho času a času vzdialeného servera, ak je hodnota povedzme viac ako 100, potom k synchronizácii naozaj nedošlo. Na niektorých zdrojoch môžete vidieť nasledujúci obrázok:

vzdialený refid st t keď oneskorenie dosahu oneskorenia offset jitter ======================================= = ===================================== 172.22.128.8 93.185.187,89 3 u 142 256 377 3,906 - 450,41 61,937 195.200.216.16 .INIT. 16 u - 64 0 0,000 0,000 0,000 ams1.x31.com .INIT. 16 u - 64 0 0,000 0,000 0,000 mail2.mgts.by .INIT. 16 u - 64 0 0,000 0,000 0,000 * LOKÁLNE (1) .LOCL. 3 l 13 64 377 0,000 0,000 3,906

Vidíme, že polovica serverov (2, 3, 4) nefunguje vôbec a skutočne funguje s lokálnym serverom a so serverom 172.22.128.8. Pozeráme sa na hodnotu posunu, ktorá hovorí, že vôbec neexistuje synchronizácia! Z výpisu môžeme iba konštatovať, že server je synchronizovaný sám so sebou a jeho čas nemá veľa spoločného so skutočným. Buďte opatrní, nenechajte sa naí ... oklamať vás :) Pri tomto by sme sa mohli zastaviť, ale teraz, ako sa hovorí, si úlohu komplikujeme. Potrebujeme, aby náš server bol zdrojom času pre miestnu sieť, ale zároveň by na vašom serveri nemohol nikto urobiť nič zlé. Aký je problém? Faktom je, že pre normálnu synchronizáciu, aj keď nemáte v pláne dať niekomu čas na synchronizáciu s vami, MUSÍTE mať otvorený port udp 123. Po prečítaní mnohých návodov a dni strateného času je to to, čo dostal do /etc/ntp.conf:

01 # Verejné servery NPS, odkiaľ získame čas 02 server 0.ru.pool.ntp.org 03 server 1.ru.pool.ntp.org 04 server 2.ru.pool.ntp.org 05 server 3.ru.pool .ntp.org 06 server 0.europe.pool.ntp.org 07 server 1.europe.pool.ntp.org 08 09 # Pre všetky ostatné odmietnuté prístupy 10 obmedziť predvolené ignorovanie 11 12 # Verejné servery NPS nemôžu ovládať naše miestne server 13 obmedziť 0.ru.pool.ntp.org nomodify notrap 14 obmedziť 1.ru.pool.ntp.org nomodify notrap 15 obmedziť 2.ru.pool.ntp.org nomodify notrap 16 obmedziť 3.ru.pool.ntp. org nomodify notrap 17 obmedziť 0.europe.pool.ntp.org nomodify notrap 18 obmedziť 1.europe.pool.ntp.org nomodify notrap 19 20 # Náš server poskytuje službu NTP pre lokálnu sieť, 21 # a klienti nemôžu „ovládať naše“ lokálny server 22 obmedziť 192.168.0.0 masku 255.255.0.0 nomodify notrap nopeer 23 24 # Potreba spätnej synchronizácie, bez nej nebude fungovať 25 obmedziť 127.0.0.1 nomodify notrap

Opatrne sa do toho ponoríme. Náš server je synchronizovaný so 6 skupinami externých serverov, riadkami 02 až 07. Riadok 10, zakazujeme komukoľvek niečo s našim serverom robiť. Teraz musíme urobiť výnimku pre servery, s ktorými bude náš server synchronizovať, riadky 13 až 18. Parametre nomodify notrap zároveň naznačujú, že je zakázané meniť stav OUR servera a posielať správy o výnimkách na EXTERNÉ servery , to znamená, že žiadny z týchto serverov neurobil nič. Riadok 22 umožňujeme účastníkom lokálnej siete synchronizovať čas s našim serverom, zároveň však zavádzame aj obmedzenie. Teraz je najdôležitejší riadok 25, budeme predpokladať, že ide o lokálnu slučku. Bez toho to nepôjde. Výsledkom je, že náš server je synchronizovaný s externými servermi, hoci je sám o sebe serverom, ale iba v prípade našej lokálnej siete je všetkým ostatným zamietnutý prístup. Reštartujte službu znova:

Poďme si fajčiť, vypiť čaj, kávu (podčiarknite potrebné) a potom vykonáme príkaz:

vzdialený refid st t keď oneskorenie dosahu oneskorenia offset jitter ========================================= ==================================== * mx.kr-pro.ru 62.117.76.142 2 u 5 64 377 20,558 38,662 19,060 + phobos.bsys-net 192.36.143.151 2 u 6 64 377 17,726 38,447 15,132 -webhost.mitht.r 77,105,134,138 3 u 4 64 377 66,744 13,451 16,257 + hornet.itconnec 77.233.172,7 3 u 11 64 377 57 291 43 556 13 327 + zlovestny.wzw.tu 129.69.1.153 2 u 1 64 377 80,064 48,067 14,367 + cas.sunrise.ne 193.192.225,90 3 u 3 64 377 72.448 22,575 14,584

Vidíme, že náš server je synchronizovaný, odchýlka nepresahuje 50ms. Nastavenie NTPD je takmer rovnaké pre všetky systémy Xnix a líši sa v podstate iba spôsobom jeho spustenia. Odporúčam všetkým, aby si prečítali aj článok, kde je popísaná možnosť konfigurácie pre FreeBSD. http://www.sergeysl.ru/freebsd-ntpd/ To je všetko.

Dobrý deň, hostia a pravidelní čitatelia. Postupne prechádzam od základov k hlbšiemu štúdiu systému Linux. Dnes to chcem zvážiť fungovanie protokolu ntp, ako aj nastavenie časové servery v systéme Linux(server NTP)... Začnime teda teóriou.

NTP protokol

Sieťový časový protokol (NTP)- sieťový protokol na synchronizáciu vnútorných hodín počítača pomocou sietí s premenlivou latenciou (čítať „šírka kanálu“ / kvalita).

Na svoju prácu používa NTP UDP protokol a port 123.

Aktuálna verzia protokolu je NTP 4. NTP používa hierarchický systém „Hodinové úrovne“(tiež sa nazývajú Stratum). Úroveň 0 (alebo vrstva 0)- zvyčajne ide o zariadenia, ktoré sú atómovými hodinami (molekulárnymi, kvantovými), hodinami GPS alebo rádiovými hodinami. Tieto zariadenia sa zvyčajne nezverejňujú v celosvetovej sieti, ale sú priamo pripojené k sieti časové servery úrovne 1 pomocou protokolu RS-232 (na ilustrácii sú označené žltými šípkami). Úroveň 1 synchronizované s vysoko presnými hodinkami úroveň 0 zvyčajne fungujú ako zdroje pre servery úroveň 2. Úroveň 2 synchronizované s jedným zo strojov úroveň 1, ako aj možnú synchronizáciu so servermi svojej úrovne. 3. úroveň funguje podobne ako druhá. Spravidla sú v sieti zverejnené servery druhej a nižšej úrovne. NTP protokol podporuje až 256 úrovní. Chcel by som tiež poznamenať, že servery úrovne 1 a 2 a niekedy dokonca aj 3 nie sú vždy prístupné verejnosti. Niekedy, aby ste ich mohli synchronizovať, musíte poslať žiadosť poštou správcom domény.

Aký je účel obmedzenia prístupu k serverom? S prechodom na každú úroveň sa chyba vo vzťahu k primárnemu serveru mierne zvyšuje, ale na druhej strane celkový počet serverov sa zvyšuje a preto.

Priradenie servera NTP v lokálnej sieti

Prečo potrebujeme server NTP? Napríklad v operačných systémoch existujú služby, ktoré môžu závisieť od synchronizovaného času. Najvýznamnejším príkladom takýchto služieb je autentifikačný protokol Kerberos. Aby to fungovalo, je potrebné, aby sa na počítačoch prístupných pomocou tohto protokolu systémový čas nelíšil o viac ako 5 minút. Presný čas na všetkých počítačoch navyše výrazne uľahčuje analýzu bezpečnostných protokolov pri vyšetrovaní nehôd v lokálnej sieti.

Prevádzkové režimy server NTP / klient

Klientsky server

Tento režim je zďaleka najbežnejšie používaný na internete. Schéma práce je klasická. Klient odošle požiadavku, na ktorú server pošle odpoveď na nejaký čas. Klient sa konfiguruje pomocou serverovej smernice v konfiguračnom súbore, kde je zadaný názov DNS časového servera.

Symetrický aktívny / pasívny režim

Tento režim sa používa, keď sa vykonáva synchronizácia času medzi veľkým počtom rovnakých strojov. Okrem toho, že každý stroj je synchronizovaný s externým zdrojom, synchronizuje sa aj so svojimi kolegami, ktorí pre nich fungujú ako klient a časový server. Preto aj keď stroj „stratí“ externý zdroj, stále môže získať presný čas od svojich susedov. Susedia môžu pracovať v dvoch režimoch - aktívnom a pasívnom. Pri práci v aktívnom režime stroj sám prenáša svoj čas na všetky susedné počítače uvedené v sekcii podobných aplikácií v konfiguračnom súbore ntp.conf. Ak v tejto časti nie sú uvedení susedia, potom sa stroj považuje za pasívny. Aby sa zabránilo útočníkovi v kompromise s inými strojmi, ktoré sa vydávajú za aktívny zdroj, je potrebné použiť autentifikáciu.

Režim vysielania

Tento režim sa odporúča v prípadoch, keď malý počet serverov obsluhuje veľký počet klientov. V tomto režime server periodicky odosiela pakety pomocou adresy podsiete broadcast. Klient nakonfigurovaný na synchronizáciu týmto spôsobom prijíma paket vysielania servera a synchronizuje sa so serverom. Zvláštnosťou tohto režimu je, že čas sa dodáva v rámci tej istej podsiete (obmedzenie paketov vysielania). Na ochranu pred votrelcami sa musí navyše použiť autentifikácia.

Režim multicast

Tento režim je veľmi podobný vysielaniu. Rozdiel je v tom, že na doručovanie paketov sa používajú adresy multicastových sietí sietí triedy D v priestore adries IP. Pre klientov a servery je nastavená adresa skupiny multicast, ktorú používajú na synchronizáciu času. To umožňuje synchronizovať skupiny počítačov umiestnených v rôznych podsieťach za predpokladu, že smerovače, ktoré ich pripájajú, podporujú IGMP a sú nakonfigurované na prenos multicastového prenosu.

Režim Manycast

Tento režim je nový pre štvrtú verziu protokolu NTP. Znamená to, že klient vyhľadáva serverov manycast medzi susedmi v sieti, od každého z nich prijíma časové vzorky (pomocou kryptografie) a na základe týchto údajov vyberá tri „najlepšie“ servery manycast, s ktorými sa bude klient synchronizovať. V prípade zlyhania jedného zo serverov klient automaticky aktualizuje svoj zoznam.

Na prenos časových vzoriek používajú klienti a servery pracujúce v režime manycast adresy skupín multicast (siete triedy D). Klienti a servery používajúce rovnakú adresu tvoria rovnaké združenie. Počet asociácií je určený počtom použitých adries multicast.

Čas v systéme Linux

Stručne vám poviem, aký čas v Linuxe existuje a ako ho nastaviť. V systéme Linux, ako aj v iných OS, existujú 2 krát. Prvé sú hardvér niekedy sa volá Hodiny reálneho času, skrátene ( RTC) (sú to tiež hodiny systému BIOS), zvyčajne sú spojené s oscilujúcim kremenným kryštálom, ktorý má presnosť až niekoľko sekúnd za deň. Presnosť závisí od rôznych výkyvov, napríklad od teploty okolia. Druhé hodiny sú interné programové hodiny ktoré bežia nepretržite, a to aj počas prerušenia prevádzky systému. Sú náchylní na výkyvy v dôsledku vysokého zaťaženia systému a prerušenia latencie. Systém však zvyčajne načíta hardvérové ​​hodiny pri štarte a potom použije systémové hodiny.

Dátum a čas operačného systému nastavený pri bootovaní na základe hodnoty hardvérové ​​hodiny, ako aj nastavenie časového pásma... Nastavenia časových pásiem sa preberajú zo súboru / etc / localtime... Tento súbor je prepojením (ale častejšie kópiou) jedného zo súborov v adresárovej štruktúre / usr / share / zoneinfo /.

Hardvérové ​​hodiny systému Linux dokážu ukladať čas vo formáte UTC(analóg GMT) alebo aktuálny miestny čas. Všeobecné odporúčanie týkajúce sa času na inštaláciu (?) Je nasledovné: ak je v počítači nainštalovaných niekoľko operačných systémov a jedným z nich je Windows, je potrebné použiť aktuálny čas (pretože Windows vyžaduje čas od systému BIOS / CMOS. a považuje to za miestne). Ak sa používajú iba operačné systémy UNIX tejto rodiny, je žiaduce ukladať čas v systéme BIOS vo formáte UTC.

Po načítaní operačného systému sú hodiny operačného systému a hodiny systému BIOS úplne nezávislé. Systémové jadro synchronizuje systémové hodiny s hardvérovými hodinami každých 11 sekúnd.

Po chvíli môže byť medzi hardvérovými hodinami a softvérovými hodinami rozdiel niekoľko sekúnd. Ktoré hodiny obsahujú správny čas? Ani jedno, ani druhé, kým sme nestavali synchronizácia času.

Poznámka:

Linuxové jadro vždy ukladá a počíta čas ako počet sekúnd, ktoré uplynuli od polnoci 1. januára 1970 roku, bez ohľadu na to, či sú vaše hodiny nastavené na miestny čas alebo univerzálny čas. Prepočet na miestny čas sa vykonáva počas procesu žiadosti.

Pretože počet sekúnd od 1. januára 1970 UTC je uložený ako podpísané 32-bitové celé číslo (platí to pre systémy Linux / Intel), vaše hodiny prestanú niekde v roku 2038 fungovať. Linux nemá problém s Y2K, ale má problém s Y2K. Našťastie dovtedy budú všetky linuxy bežať na 64-bitových systémoch. 64-bitové celé číslo vydrží naše hodiny až na zhruba 292 271 miliónov rokov.

NTP server Linux

Úvod

Existuje mnoho implementácií pre synchronizáciu času pre OS Linux. Najznámejšie sú Xntpd (NTP verzia 3), ntpd (NTP verzia 4), Crony a ClockSpeed. V našom príklade použijeme ntp server ntpd.

Démon ntpd je časovým serverom aj klientom, v závislosti od nastavení v konfiguračnom súbore /etc/ntpd.conf (niekedy /etc/ntp.conf) dokáže démon „prijímať“ čas zo vzdialených serverov aj distribuovať "čas iným hostiteľom.

Všeobecné obvod synchronizácie času v lokálnej sieti je nasledovný: musíte mať 1 alebo 2 servery s prístupom do globálnej siete, ktoré budú dostávať čas z Internetu. Synchronizujte všetky počítače v lokálnej sieti so zadanými servermi, ktoré prijímajú čas z Internetu.

Inštaluje sa ntpd

Vlastne, inštalácia démona inštalácia nasledujúcich balíkov: ntp(balíček vrátane samotného démona), ntpdate(nástroj na manuálnu synchronizáciu času je zastaraný), ntp-doc(dokumentácia balíka), v niektorých distribúciách si budete musieť nainštalovať to isté ntp-utils(diagnostické pomôcky), niektoré sú súčasťou balíka ntp. Ako som nainštaloval programy v Linuxe, som popísal v. Po inštalácii balíka bude vo väčšine distribúcií už démon nakonfigurovaný ako klient ntp (napríklad v Debiane to bolo). Podľa toho sa automaticky vytvorili hlavné konfiguračné súbory: /etc/ntp.conf a /var/lib/ntp/ntp.drift a démon sa automaticky spustil.

Pred konfiguráciou démona na synchronizáciu s vonkajším svetom by som vám odporučil nastaviť aktuálny systémový dátum na hodnotu, ktorá sa čo najviac blíži reálnemu času. Nastavenie dátumu v systéme Linux vyrobené príkazom: dátum MMDDhhmmCCYY.ss, kde MM - mesiac, DD - deň v mesiaci, hh - hodiny, mm - minúty, CCYY - 4 číslice roku, ss - sekundy. Navyše hodnoty CCYY.ss nie je potrebné špecifikovať.

Ako vidíte, zadaný príkaz nastaví aktuálny dátum a čas na 27. decembra 2010, 20:06:30. Príkaz dátumu bez parametrov zobrazí aktuálny systémový čas. Tento príkaz má veľa parametrov, ktoré nájdete v man date.

Tiež je potrebné správne nakonfigurovať hardvérové ​​hodiny a časové pásmo. Ako už bolo spomenuté vyššie, časové pásmo sa konfiguruje skopírovaním súboru požadovanej zóny z adresára / usr / share / zoneinfo / vyplniť / etc / localtime:

Ntp-server: ~ # cp / usr / share / zoneinfo / Europe / Moscow / etc / localtime

Hardware Nastavil som hodiny na UTC:

# cat / etc / sysconfig / clock | grep UTC # UTC = true označuje, že hodiny sú nastavené na UTC; UTC = skutočný server ntp2: ~ # cat / etc / default / rcS | grep UTC UTC = áno

V prvom príklade je zadaný konfiguračný súbor, ktorý určuje použitie UTC pre RH, druhý - pre distribúcie Deb.

Okrem nastavenia na použitie času UTC musíte nastaviť hardvérový čas... (vo väčšine prípadov to nie je potrebné, pretože zadaný systémový čas je nevyhnutne synchronizovaný s hardvérom silami jadra). Ale napriek tomu, ak máte chuť to urobiť ... Príkaz Hwclock načíta a nastaví hardvérové ​​hodiny na základe parametrov, ktoré sú mu odovzdané. Dostupné možnosti sú popísané na manuálovej stránke príkazu. Tu je niekoľko príkladov použitia hwclock:

Ntp-server # hwclock # číta čas z hardvérových hodín ntp-server # hwclock --systohc --utc # nastaví hardvérové ​​hodiny na # UTC na základe systémového času ntp-server # hwclock --systohc # nastaví hardvérové ​​hodiny # na miestne na základe systémového času ntp-server # hwclock --set --date "22 Mar 2002 13:17" # nastaví hardvérové ​​hodiny # na zadaný reťazec

Ďalšou možnosťou zmeny času v hardvérových hodinách je prístup k systému BIOS pri štarte systému. Pretože čas OS je nezávislý od hodín hardvéru, akékoľvek zmeny v BIOSe sa zohľadnia pri ďalšom zavedení.

Teraz, keď máme všetko pripravené a nainštalované, pokračujeme ďalej na stavenisku.

Správa démona ntpd

Ovládanie démon ntpd sa nelíši od ovládania akýchkoľvek iných démonov. Spustite alebo reštartujte službu ntpd:

# / etc / init.d / ntp štart # / etc / init.d / ntp reštart

Stop:

# / etc / init.d / ntp stop

# / bin / kill `cat / var / run / ntpd.pid`

Démon má nasledujúce možnosti spustenia:

P - PID súbor,
-g - umožní prechod na veľký skok v čase
-c - konfiguračný súbor
-q - vynútená manuálna synchronizácia

Nastavenie servera ntpd

Najskôr by som vám odporučil zmeniť parametre spustenia démona v nasledujúcom konfiguračnom súbore:

Ntp-server: ~ # cat / etc / default / ntp NTPD_OPTS = "- g"

# cat / etc / sysconfig / ntpd # Parametre pre démona NTP. # Ďalšie podrobnosti nájdete na ntpd (8). .... # Určuje ďalšie parametre pre ntpd. NTPD_ARGS = "- g"

Tento parameter vám umožní synchronizovať hodiny, aj keď existuje veľmi veľký časový rozdiel.

Takže, ako som už povedal, konfiguračné informácie démon ntpd leží v spise /etc/ntp.conf. Syntax súboru je štandardná, ako v mnohých iných konfiguráciách: prázdne riadky a riadky začínajúce znakom „#“ sú ignorované. Tu je jednoduchý príklad:

Ntp-server: ~ # cat /etc/ntp.conf server ntplocal.example.com preferuje server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift

Parameter server určuje, ktoré servery sa majú použiť na synchronizáciu, jeden na každom riadku. Ak je server zadaný argumentom radšej, as ntplocal.example.com, potom bude mať tento server prednosť pred ostatnými. Odpoveď z preferovaného servera bude zahodená, ak sa výrazne líši od odpovedí iných serverov, inak bude použitá bez ohľadu na iné odpovede. Argument radšej sa zvyčajne používa pre servery NTP, o ktorých sa vie, že sú veľmi presné, napríklad pri použití vyhradeného časovacieho zariadenia.

Parameter driftfile určuje súbor, ktorý sa používa na uloženie posunu frekvencie hodín systému. Pokiaľ dobre rozumiem, tento súbor neustále ukladá určitú hodnotu, ktorá sa formuje na základe analýzy úprav minulého času, a ak sú externé zdroje času nedostupné, čas sa upraví o hodnotu zo súboru drift. Nemal by sa meniť žiadnym iným procesom. Pred zadaním tohto súboru v konfigurácii je potrebné súbor vytvoriť.

Server NTP je predvolene k dispozícii všetkým hostiteľom na internete. Parameter obmedziť v súbore /etc/ntp.conf umožňuje ovládať, ktoré stroje majú prístup na váš server. Ak chceš zabrániť všetkým strojom v prístupe na váš NTP server, pridajte do súboru nasledujúci riadok /etc/ntp.conf:

obmedziť predvolené ignorovanie

Ak chceš povoliť synchronizujte svoje hodinky iba so serverom vo vašej sieti ale zákaz ich nakonfigurovať server alebo aby ste boli rovnocennými účastníkmi synchronizácie času, potom namiesto označeného pridajte riadok:

obmedziť 192.168.1.0 masku 255.255.255.0 nomodify notrap

kde 192.168.1.0 je adresa IP vašej siete a 255.255.255.0 je jej sieťová maska. /etc/ntp.conf môže obsahovať viac obmedzení.

Pre správnu a presnejšiu prácu démona je vhodné zvoliť servery na úrovni - od vrstvy 2 (môžete samozrejme vrstvu 1, musíte však zabiť čas hľadaním takého servera) a od vybranej vrstvy 2 tie po čo je minimálna „vzdialenosť“. Spravidla tieto servery môže poskytovať váš ISP. Počet vybraných serverov je požadovaný - viac ako 2 3, čím viac, tým lepšie, ale v rozumných medziach. Ak ste príliš leniví na výber najlepších serverov, môžete si odtiaľto vziať zoznam otvorených serverov druhej úrovne: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers.

Výber zoznamu referenčných serverov NTP

Prejdeme na zadanú adresu (http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers) a vyberieme zoznam štartovacích serverov. Z tohto zoznamu vyberte analyzovaním výstupu príkazu servery, ktoré vyhovujú našim požiadavkám ntpdate... Pri vykonávaní príkazu sa použije nasledujúca syntax:

parametre ntpdate space_servers

Aby naša požiadavka nerobila zmeny v systéme, je potrebné použiť parameter -q, ktorý označuje použitie požiadavky bez vykonania zmien. Je tiež možné použiť prepínač -d, ktorý označuje, že príkaz bude vykonaný v režime ladenia s výstupom ďalších informácií bez vykonania akýchkoľvek skutočných zmien (s týmto prepínačom sa zobrazí kopa ďalších odpadkov :), ktoré momentálne nepotrebujeme). Zvyšok parametrov nájdete v man 8 ntpdate. Zo zadaného odkazu som vybral všetky servery Open Access umiestnené v Rusku (RU) + ten, ktorý poskytol poskytovateľ a spustil príkaz, ukázalo sa to asi takto:

Ntp-server: ~ # ntpdate -q ntp2.ntp-servers.net ntp1.vniiftri.ru ntp2.vniiftri.ru ntp4.vniiftri.ru ntp0.ntp-servers.net ntp1.ntp-servers.net ntp3.vniiftri.ru server ntp.corbina.net 88.147.255.85, vrstva 1, posun 0,006494, oneskorenie 0,09918 server 62,117,76,142, vrstva 1, posun 0,002552, oneskorenie 0,06920 server 62,117,76,141, vrstva 1, posun 0,003147, oneskorenie 0,06918 server 62,117,76,140, ​​vrstva 1, posun 0,004823, oneskorenie 0,07350 servera 88,147.254.228, vrstva 1, posunutie -0,002355, oneskorenie 0,12030 servera 88.147.254.229, vrstva 1, posunutie -0 000922, oneskorenie 0,10577 servera 62,117,76,138, vrstva 1, posunutie 0,005331, oneskorenie 0,07401 servera 195,14 .40,141, vrstva 2, posun 0,002846, oneskorenie 0,07188 13 január 19:14:09 ntpdate: upraviť časový server 62,117,76,141 posun 0,003147 s

V tomto príklade naše servery úspešne vrátili úroveň stratum1, čo je dobrá správa (okrem servera poskytovateľa), offset je časový rozdiel s týmto serverom v sekundách, oneskorenie je oneskorenie synchronizácie v sekundách. Spravidla b O TOM Najlepšia presnosť sa dosahuje použitím serverov, ktoré majú nízku latenciu pri paketovom prenose cez sieť. Na identifikáciu je možné použiť. V súlade s tým vyberáme najskôr tých, ktorí majú kratší čas odozvy, a z nich - tých, ktorí majú menej chmeľu. Aby som nestrácal čas, použijem všetky zadané servery a zapíšem ich do konfiguračného súboru. Celkovo, s vedomím všetkého vyššie uvedeného, ​​popíšem môj výsledný súbor /etc/ntp.conf:

Ntp-server: ~ # cat /etc/ntp.conf # Servery lokálnej siete (komentované, nepoužívané - jeden server v sieti) #server 192.168.0.2 #server 192.168.0.5 # servera internetového servera ntp2.ntp- servery.net server server ntp1.vniiftri.ru server server ntp2.vniiftri.ru server ntp4.vniiftri.ru server ntp0.ntp-servers.net server ntp1.ntp-servers.net server ntp3.vniiftri.ru server ntp.corbina.net # Súbory servera driftfile /var/lib/ntp/ntp.drift logfile / var / log / ntpstats # obmedzenie prístupu na server: # štandardne ignorujeme všetko obmedziť predvolené ignorovanie # localhost bez parametrov znamená, že je všetko povolené. Parametre sa používajú iba na zákazy. obmedziť 127.0.0.1 # nasledujúci text popisuje servery, s ktorými synchronizujeme v lokálnej sieti. # Umožnite im všetko okrem pascí a požiadaviek na nás obmedziť 192.168.0.2 noquery notrap obmedziť 192.168.0.5 noquery notrap # pre LAN tiež povoľujeme všetko okrem pascí a úprav obmedziť 192.168.0.1 masku 255.255.255.0 nomodify notrap nopeer # povoliť prístup externých časových zdrojov : obmedziť ntp2.ntp-servers.net obmedziť ntp1.vniiftri.ru obmedziť ntp2.vniiftri.ru obmedziť ntp4.vniiftri.ru obmedziť ntp0.ntp-servers.net obmedziť ntp1.ntp-servers.net obmedziť ntp3.vniiftri.ru obmedziť ntp.corbina.net # a tento hack, ktorý nastavuje úroveň dôveryhodnosti samotného servera (vrstiev) na 3 # v skratke, čím vyššia úroveň, tým nižší počet. 0 sú atómové hodiny, # 1 je s nimi synchronizovaný, 2 sú prvé, atď. server 127.127.1.1 fudge 127.127.1.1 vrstva 3

Pre hlbšie pochopenie a konfiguráciu servera popíšem niektoré konfiguračné parametre ntpd, ktoré som neuviedol:

  • povoliť zakázať auth / monitor / pll / pps / štatistika - zapnúť vypnúť prevádzkový režim:
    • autor- komunikovať s nespomenutými susedmi iba v autentifikačnom režime;
    • monitor- umožniť sledovanie žiadostí;
    • pll- povoliť nastavenie frekvencie miestnych hodín pomocou NTP;
    • štatistiky- umožniť zber štatistík;
  • štatistikaloopstats- s každou úpravou miestnych hodín zapíše riadok do súboru loopstats;
  • štatistikapeerstaty- každá komunikácia so susedom sa zaznamená do protokolu uloženého v súbore peerstaty;
  • štatistikahodiny- každá správa z ovládača miestnych hodín sa zapíše do protokolu uloženého v súbore hodiny;
  • statsdir(katalógový_názov s_statami)- nastaví názov adresára, kde budú umiestnené súbory so štatistikami servera;
  • filegen - definuje algoritmus na generovanie názvov súborov, ktorý pozostáva z:
    • predpona- stála časť názvu súboru, nastavená buď počas kompilácie, alebo špeciálnymi konfiguračnými príkazmi;
    • Názov súboru- pridané k prefixu bez lomítka, dve bodky sú zakázané, je možné ich zmeniť pomocou kľúča súboru;
    • prípona- generované v závislosti na typovom mene;
  • obmedziťčíselná adresa- nastaví obmedzenie prístupu: pakety sú zoradené a maskované, zdrojová adresa je odobratá a porovnaná postupne, príznak je prevzatý z posledného úspešného porovnania prístup:
    • žiadne vlajky- umožniť prístup;
    • ignorovať- ignorovať všetky balíčky;
    • dopyt- ignorovať NTP pakety 6 a 7 (požiadavka a zmena stavu);
    • nomodifikovať- ignorovať NTP pakety 6 a 7 (zmena stavu);
    • obmedzený- slúži iba obmedzenému počtu klientov z danej siete;
    • nopeer- slúži hostiteľovi, ale nie je s ním synchronizovaný;
  • limit klientalimit- pre vlajku obmedzený určuje maximálny počet obsluhovaných klientov (štandardne 3);

Takže sme dostali ntpd-server, ktorý je synchronizovaný s vonkajším svetom, umožňuje získať čas pre klientov z lokálnej siete 192.168.0.1 s maskou 255.255.255.0 a môže sa tiež synchronizovať s lokálnym serverom (ak odkomentujete niekoľko riadkov). Zostáva nám nakonfigurovať klientov a zistiť, ako monitorovať náš server.

Monitorovanie servera ntpd a synchronizácia

Keď máte všetko nastavené. NTP udrží čas synchronizovaný. Tento proces je možné pozorovať pomocou príkazu NTP Query (ntpq):

Ntp-server: ~ # ntpq -p vzdialený refid st t, keď je oneskorenie posunutia oneskorenia dosiahnutia ankety jitter =============================== = ===============================================n3. time1 .d6.hsd .PPS. 1 u 34 64 177 70,162 2,375 8,618 + ntp1.vniiftri.r PPS. 1 u 33 64 177 43,479 -0,020 10,198 * ntp2.vniiftri.r. PPS. 1 u 6 64 177 43,616 -0,192 0,688 + ntp4.vniiftri.r PPS. 1 u 4 64 177 43,623 0,440 0,546 -n1.time1.d6.hsd .PPS. 1 u 53 64 77 92,865 -11,358 38,346 -ns1.hsdn.org. GPS. 1 u 40 64 177 78,057 -3,292 35,083 -ntp3.vniiftri.r. PPS. 1 u 44 64 77 47,667 2,292 2,611 -scylla-l0.msk.c 192,43,244,18 2 u 62 64 77 41,565 -1,564 28,914

Tento príkaz s prepínačom -p vytlačí na štandardný výstup zoznam časových zdrojov s ich charakteristikami (ostatné parametre príkazu sú v man ntpq). Význam každého stĺpca je nasledovný:

Názov vzdialeného servera NTP. Ak zadáte prepínač -n, namiesto mien získate adresy IP servera.

Označuje, odkiaľ v súčasnosti každý server čerpá čas. Môže to byť názov hostiteľa alebo niečo podobné. GPS. Označuje zdroj globálneho pozičného systému.

Stratum (level) je číslo od 1 do 16, ktoré označuje presnosť servera. Jeden znamená maximálnu presnosť, 16 znamená, že server je nedostupný. Vaša úroveň sa bude rovnať úrovni najmenej presného vzdialeného servera plus 1.

Interval medzi anketami (v sekundách). Hodnota sa bude meniť medzi minimálnou a maximálnou rýchlosťou dopytovania. Na začiatku bude interval malý, aby došlo k rýchlej synchronizácii. Po synchronizácii hodín sa interval začne zvyšovať, aby sa znížila prevádzka a zaťaženie na populárnych časových serveroch.

Osmičkové znázornenie 8-bitového poľa predstavujúce výsledky posledných ôsmich pokusov o pripojenie k serveru. Bit je nastavený, ak vzdialený server odpovedal.

Čas (v sekundách) požadovaný na odpoveď na otázku „koľko je hodín?“

Najdôležitejšie pole. Časový rozdiel medzi miestnymi a vzdialenými servermi. Počas synchronizácie by sa táto hodnota mala znižovať (blížiť sa k nule), čo naznačuje, že hodiny miestneho stroja sú čoraz presnejšie.

Odchýlka (Jitter) je mierou štatistickej odchýlky od hodnoty posunu (poľa posunu) v priebehu niekoľkých úspešných párov požiadavka-odpoveď. Výhodnejšia je nižšia hodnota rozptylu, pretože umožňuje presnejšiu synchronizáciu času.

Význam znakov pred názvami serverov

x - falošný zdroj podľa algoritmu križovatky;
... - vylúčení zo zoznamu kandidátov z dôvodu veľkej vzdialenosti;
- - odstránený zo zoznamu kandidátov klastrovým algoritmom;
+ - uvedený na konečnom zozname kandidátov;
# - vybrané na synchronizáciu, ale existuje 6 najlepších kandidátov;
* - vybrané pre synchronizáciu;
o - vybrané pre synchronizáciu, ale je použité PPS;
priestor - príliš vysoká úroveň, slučka alebo zjavná chyba;

Služba Ntpd„inteligentný“ a sám vyraďuje zdroje času, ktoré sú príliš ďaleko za rozumným. Určitý čas po spustení program ntpd vyberie najspoľahlivejšie zdroje údajov a bude ich synchronizovať. Zoznam nami uvádzaných referenčných serverov NTP je službou pravidelne kontrolovaný.

Možnosť synchronizácie je možné skontrolovať lokálne na serveri pomocou príkazu:

Ntp-server: ~ # ntpdate -q localhost server 127.0.0.1, vrstva 2, offset -0,000053, oneskorenie 0,02573 server :: 1, vrstva 2, offset -0,000048, oneskorenie 0,02571 14 január 14:49:57 ntpdate: upraviť časový server :: 1 ofset -0,000048 s

Z výstupu príkazu môžete vidieť, že náš server sa už stal vrstvou úrovne 2. Dosiahnutie tejto úrovne trvá istý čas. Možno počas prvých 10 - 15 minút bude úroveň servera vyššia.

Správnu činnosť servera ntp možno posúdiť aj podľa protokolov démona ntpd:

Ntp-server: ~ # cat / var / log / ntpstats / ntp 13 Jan 20:13:16 ntpd: Počúvanie na rozhraní # 5 eth0, fe80 :: a00: 27ff: fec1: 8059 # 123 Povolené 13 Jan 20:13: 16 ntpd: Počúvanie na rozhraní č. 6 eth0, 192.168.0.8 # 123 Povolené 14. januára 14:31:00 ntpd: synchronizované s 62.117.76.142, vrstva 1 14. januára 14:31:10 ntpd: reset času +10.291312 s 14. januára : 31: 10 ntpd: zmena stavu synchronizácie času jadra 0001 14 január 14:34:31 ntpd: synchronizácia s 88.147.255.85, vrstva 1 14 január 14:36:04 ntpd: synchronizácia s 62.117.76.141, vrstva 1 14 január 15: 04:36 ntpd: synchronizované s 62.117.76.142, stratou 1 14. januára 15:10:58 ntpd: synchronizované s 62.117.76.140, stratou 1 14. januára 15:17:54 ntpd: nie sú dostupné žiadne servery 14. januára 15:31:49 ntpd : synchronizované s 62.117.76.140, vrstva 1 14. januára 15:32:14 ntpd: časový reset +13,139105 s

Nastavenie netfilteru (iptables) pre NTP server

Po nakonfigurovaní servera by bolo dobré ho chrániť. Vieme, že server beží na porte 123 / udp, zatiaľ čo požiadavky sa odosielajú aj z portu 123 / udp. Po prečítaní článku a oboznámení sa s praktickými pravidlami môžete vytvoriť pravidlá filtrovania sieťového prenosu:

Ntp ~ # iptables-save # typické iptables Pravidlá DNS * filter: INPUT DROP: FORWARD DROP: OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate SÚVISIACE, ZISŤOVANÉ -j AKCEPT -A VSTUP - m conntrack --ctstate INVALID -j DROP # povoliť LAN prístup na NTP server: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 123 -m conntrack - - ctstate NOVINKA -j AKCEPT -A VÝSTUP -o lo -j AKCEPT -A VÝSTUP -p icmp -j AKCEPT -A VÝSTUP -p udp -m udp --sport 32768: 61000 -j AKCEPT -A VÝSTUP -p tcp -m tcp --sport 32768: 61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate RELATED, ESTABLISHED -j ACCEPT # povoliť prístup serveru NTP na vykonávanie odchádzajúcich požiadaviek -A OUTPUT -p udp -m udp --sport 123 --dport 123 -m conntrack --ctstate NOVÝ -j AKCEPTOVAŤ ZÁVÄZOK

Toto je typický príklad! Ak chcete nastaviť pravidlá iptables pre svoje úlohy a konfiguráciu siete, musíte si prečítať články uvedené vyššie a pochopiť, ako funguje netfilter v systéme Linux.

Konfigurácia klientskych počítačov

Na synchronizáciu času na počítačoch UNIX lokálna sieť, je vhodné použiť obslužný program ntpdate, ktorý sa spúšťa niekoľkokrát denne, napríklad každú hodinu. Ak to chcete urobiť, pridajte nasledujúci riadok do:

0 * * * * / usr / sbin / ntpdate -s

Prepínač -s usmerňuje výstup príkazu. Ak majú klientske počítače pár ďalších megabajtov pamäte RAM, môžete démona ntpd spustiť ako na serveri pomocou nasledujúcej konfigurácie:

Server obmedziť predvolené ignorovať obmedziť obmedziť 127.0.0.1 nomodify notrap

Myslím si, že v tejto konfigurácii je všetko jasné: zdroj času (server) je lokálny server ntpd, zakázať prístup všetkým, povoliť iba lokálny server ntpd.

Taktiež je na klientoch potrebné správne označiť, do akého formátu sa má čas ukladať, a zvoliť správne časové pásmo.

Konfigurácia klienta Windows NTP, musíte v konzole spustiť nasledujúce príkazy:

C: \> čistý čas / setntp: Príkaz bol úspešne dokončený. C: \> net stop w32time Služba Windows Time sa zastavuje. Služba Windows Time bola úspešne zastavená. C: \> net start w32time Spúšťa sa služba Windows Time. Služba Windows Time bola úspešne spustená. C: \> čistý čas / querysntp Aktuálna hodnota SNTP je: Príkaz bol úspešne dokončený.

Záver

No to je všetko! Objem článku sa ukázal byť enormný ... ani som to sám nečakal. Uvedené zhrniem. Dúfam, že v tomto článku nám bolo jasné, čo je a ako server NTP funguje. Naučili sme sa, ako nakonfigurovať server a klientov na počítačoch UNIX a Windows. Stručne povedané, štruktúra časovej synchronizácie v lokálnej sieti je nasledovná: V lokálnej sieti je 1,2 alebo viac časových serverov, ktoré synchronizujú svoj čas s externými zdrojmi v globálnej sieti. Nastavenia servera a klienta sú založené na /etc/ntp.conf (hlavný konfiguračný súbor démona ntpd), / etc / localtime (súbor aktuálneho časového pásma), ako aj / etc / sysconfig / ntp (pre RH) a / etc / default / ntp (pre Deb) - súbory parametrov spustenia démona. Pre lokálny server ntp určuje konfiguračný súbor externé servery na získanie času a je povolený prístup pre tieto servery s parametrom restrict, ako aj pre počítače v lokálnej sieti, pre klientov je uvedený zdroj času - lokálne servery v lokálnej sieti a prístup pre všetkých je odmietnutý, s výnimkou zdroja času v lokálnej sieti. Všetko. Ďakujem všetkým za pozornosť! Rád by som počul vaše komentáre!

  • (archív článku) popisuje, ako pripojiť GPS k serveru na usporiadanie vášho vlastného časového servera na úrovni Stratum1.
  • popisuje, ako nakonfigurovať autorizáciu na serveri ntp.

Time management je jedným z kľúčových aspektov správy systému. Spravidla všetky klientske servery a pracovné stanice synchronizujú čas s doménou Active Directory, odkiaľ však pochádza presný čas v službe AD? Závisí to od rôznych faktorov. V štandardnej konfigurácii je čas synchronizovaný so servermi Microsoft a virtuálne počítače zvyčajne prijímajú údaje z hostiteľského servera.

Najlepšie je nastaviť jediný zdroj presných časových údajov pre všetky počítače v podnikovej sieti - server (alebo niekoľko serverov), s ktorým sa budú synchronizovať všetky systémy. Môže to byť prostriedok alebo skupina zdrojov na internete alebo lokálny server. Tak či onak, stojí za to rozhodnúť si o zdroji presného času vopred.

Sieťový protokol je zodpovedný za synchronizáciu počítačov a serverov Windows. Sieťový časový protokol (NTP). NTP na svoju prácu používa predvolený port UDP 123. Ak chcete ďalej konfigurovať fungovanie tohto sieťového protokolu, musíte skontrolovať, či tento port blokuje bránu firewall.

Metódy špecifikácie servera NTP.

1) Tím w32tm umožňuje určiť zoznam podobných aplikácií, ktoré poskytujú informácie o presnom čase pre doménu. Ak chcete získať ďalšie informácie o príkaze w32tm, zadajte zadaný príkaz na príkazovom riadku w32tm /?
Prvá vec, ktorú musíte urobiť, je zistiť stav radičov domény v doméne. Za týmto účelom spustite príkaz na príkazovom riadku (ak máte práva správcu domény, môžete spustiť príkazový riadok na svojej pracovnej stanici)
w32tm / monitor- príkaz umožňuje zistiť, s ktorým serverom (servermi) / službou synchronizácia prebieha a aký je časový rozdiel s referenčným severom.
w32tm / config /manualpeerlist:time.windows.com / syncfromflags: manuálne / spoľahlivé: áno / aktualizácia- týmto príkazom označíme, s ktorou službou / serverom bude synchronizácia prebiehať (v tomto príklade s time.windows.com).
Tento príkaz sa vykoná na radiči domény raz a zapíše zadané adresy do registra (pozdĺž cesty HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config \ Parametrs v parametri NTPServer time.windows.com musí byť napísané). Môžete určiť niekoľko serverov súčasne oddelených medzerami.


2) Ďalším spôsobom, ako povedať radiču domény serveru, s ktorým sa bude synchronizovať v čase, sú miestne alebo skupinové politiky. Spustenie registra - Kliknite na tlačidlo Štart, vyberte príkaz Spustiť, zadajte príkazový riadok gpedit.msc a stlačte tlačidlo Ok... Prejdite do časti „Konfigurácia počítača - Zásady - Šablóny na správu - Systém - Časová služba Windows - Poskytovatelia času“ a nastavte politiku. V tomto príklade do hodnoty NTPServer zapíšeme time.windows.com, v Typovej hodnote, ktorú označujeme NTP... Typ - označuje uzly typu peer-to-peer akceptujúce synchronizáciu nasledujúcich typov:
NoSync- Časová služba nie je synchronizovaná s inými zdrojmi.
NTP-Časová služba sa synchronizuje so servermi zadanými v položke registra NtpServer.
NT5DS-Časová služba vykonáva synchronizáciu na základe doménovej hierarchie.
AllSync-Časová služba využíva všetky dostupné synchronizačné mechanizmy.

Hodnota CrossSiteSyncFlags zvoľte 2.

CrossSiteSyncFlags. Určuje, či môže služba vyberať synchronizačných partnerov mimo domény počítača.
Č. 0
Iba 1
Všetky 2

V zmysle ResolvePeerBackoffMinutes predpísať 15

ResolvePeerBackoffMinutes - Určuje počiatočný interval čakania (v minútach) pred začatím vyhľadávania partnerského zariadenia na synchronizáciu. Ak sa služba Windows Time nemôže úspešne synchronizovať so zdrojom času, bude to skúsiť znova pomocou zadaných hodnôt pre parametre ResolvePeerBackoffMinutes a ResolvePeerBackoffMaxTimes.

V zmysle ResolvePeerBackoffMaxTimes predpísať 7

ResolvePeerBackoffMaxTimes - Určuje maximálny počet časov na zdvojnásobenie časového limitu v prípade, že opakované pokusy o nájdenie partnerského uzla pre synchronizáciu zlyhajú. Hodnota nula predpokladá, že interval čakania je vždy rovnaký ako počiatočný interval zadaný v parametri ResolvePeerBackoffMinutes.

V zmysle SpecialPollInterval predpísať 3600

SpecialPollInterval- Určuje špeciálny interval dotazovania (v sekundách) pre manuálne nakonfigurovaných hostiteľov typu peer-to-peer. Ak je povolené vlastné dopytovanie, služba Windows Time použije namiesto dynamickej hodnoty určenej pomocou synchronizačných algoritmov zabudovaných do služby Windows Time svoj interval.

Ak ste vytvorili politiku, potom sa musí použiť na všetky radiče domény.


Operačné systémy rodiny Windows obsahujú časovú službu W32Time. Táto služba je určená na synchronizáciu času v organizácii. W32Time je zodpovedný za fungovanie klientskej aj serverovej časti časovej služby a rovnaký počítač môže byť súčasne klientom aj serverom NTP (NTP - Network Time Protocol).

V predvolenom nastavení je služba Windows Time Service nakonfigurovaná takto:

Po nainštalovaní operačného systému Windows spustí klienta NTP, ktorý sa synchronizuje s externým zdrojom času;

Po pridaní počítača do domény sa typ synchronizácie zmení. Všetky klientske počítače a členské servery v doméne používajú na synchronizáciu svojho času radič domény;

Keď je členský server povýšený na radič domény, spustí sa na ňom server NTP, ktorý ako zdroj času používa radič s rolou emulátora PDC;

Emulátor PDC, ktorý sa nachádza v koreňovej doméne lesa, je primárnym časovým serverom pre celú organizáciu. Zároveň je sám synchronizovaný aj s externým zdrojom času.

Táto schéma funguje vo väčšine prípadov a nevyžaduje zásah. Štruktúra časovej služby v systéme Windows však nemusí zodpovedať hierarchii domén a ako spoľahlivý zdroj času je možné označiť ľubovoľný počítač.

Ako príklad sa pozrime na nastavenie servera NTP v systéme Windows Server 2008 R2. Analogicky môžete nastaviť server NTP v systéme Windows 7.

Spustenie servera NTP

Časová služba v systéme Windows Server nemá GUI a je konfigurovateľný buď z príkazového riadku, alebo priamou úpravou systémového registra. Uvažujme o druhom spôsobe:

Server NTP musí byť spustený. Otvorte vetvu registra:

HKLM \ System \ CurrentControlSet \ services \ W32Time \ TimeProviders \ NtpServer.

Pre povolenie NTP servera musí byť parameter Enabled nastavený na 1. Potom príkazom reštartujeme časovú službu net stop w32time && čistý štart w32time.

Po reštartovaní služby NTP je server už aktívny a môže slúžiť klientom. Môžete to overiť pomocou príkazu w32tm / query / configuration. Tento príkaz zobrazí kompletný zoznam parametrov služby. Pokiaľ sekcia NtpServer obsahuje riadok Enabled: 1, je všetko v poriadku, beží časový server.

Aby server NTP slúžil klientom, musí byť v bráne firewall otvorený port UDP 123 pre prichádzajúcu a odchádzajúcu komunikáciu.

Základné nastavenie servera NTP

Otvorte vetvu registra:

HKLM \ System \ CurrentControlSet \ services \ W32Time \ Parameters.

NoSync - server NTP nie je synchronizovaný so žiadnym externým zdrojom času. Používajú sa systémové hodiny zabudované do čipu CMOS samotného servera (tieto hodiny je zase možné synchronizovať napríklad zo zdroja NMEA cez RS-232);

NTP - NTP server je synchronizovaný s externými časovými servermi zadanými v parametri registra NtpServer;

NT5DS - NTP server vykonáva synchronizáciu podľa hierarchie domén;

AllSync - server NTP používa na synchronizáciu všetky dostupné zdroje.

Predvolená hodnota pre členský počítač domény je NT5DS, pre samostatný počítač NTP.

Parameter NtpServer určuje servery NTP, s ktorými bude tento server synchronizovať čas. Predvolene tento parameter obsahuje server NTP spoločnosti Microsoft (time.windows.com, 0x1), v prípade potreby môžete pridať niekoľko ďalších serverov NTP zadaním ich názvov DNS alebo adries IP oddelených medzerou. Na koniec každého mena môžete pridať príznak (napr. 0x1), ktorý definuje režim synchronizácie s časovým serverom.

Povolené sú nasledujúce hodnoty režimu:

0 × 1 - SpecialInterval, využívajúci časový interval dopytovania;

0 × 2 - režim UseAsFallbackOnly;

0x4 - SymmetricActive, symetrický aktívny režim;

0x8 - Klient, odosielanie žiadosti v klientskom režime.

Ďalší dôležitý parameter AnnounceFlags sa nachádza v kľúči registra:

HKLM \ System \ CurrentControlSet \ services \ W32Time \ Config.

Je zodpovedný za to, ako server NTP tvrdí, že je. Vlajka 5 je povinná na deklaráciu člena servera (nie radiča domény) ako spoľahlivého zdroja času.

Ak je konfigurovaným serverom klient NTP (napríklad prijíma čas z prijímača GPS prostredníctvom NTP), môžete nakonfigurovať interval medzi aktualizáciami. Tento parameter môže byť relevantný aj pre klientske počítače. Za čas aktualizácie zodpovedá kľúč SpecialPollInterval, ktorý sa nachádza vo vetve registra:

HKLM \ System \ CurrentControlSet \ services \ W32Time \ TimeProviders \ NtpClient.

Nastavuje sa v sekundách a predvolene má hodnotu 604800, čo je 1 týždeň. To je teda veľa stojí za to znížiť hodnotu SpecialPollInterval na rozumnú hodnotu - 1 hodinu (3600).

Po nastavení musíte aktualizovať konfiguráciu služby. To je možné vykonať pomocou príkazu w32tm / config / update.


A niekoľko ďalších príkazov na konfiguráciu, sledovanie a diagnostiku časovej služby:

w32tm / monitor - pomocou tejto možnosti môžete zistiť, ako sa líši systémový čas tohto počítača od času na radiči domény alebo na iných počítačoch. Napríklad: w32tm / monitor /počítače:time.nist.gov

w32tm / resync - Pomocou tohto príkazu môžete vynútiť synchronizáciu počítača s časovým serverom, ktorý používa.

w32tm / stripchart - Zobrazuje časový rozdiel medzi aktuálnym a vzdialeným počítačom. Tím w32tm / stripchart /computer:time.nist.gov / samples: 5 / dataonly vykoná 5 porovnaní so zadaným zdrojom a vráti výsledok v textovej podobe.


w32tm / config je hlavný príkaz používaný na konfiguráciu služby NTP. S jeho pomocou môžete nastaviť zoznam použitých časových serverov, typ synchronizácie a oveľa viac. Napríklad na prepísanie predvolených hodnôt a konfiguráciu časovej synchronizácie s externým zdrojom môžete použiť príkaz w32tm / config / syncfromflags: manual /manualpeerlist:time.nist.gov / update


w32tm / dopyt - zobrazuje aktuálne nastavenie služby. Napríklad príkaz w32tm / dotaz / zdroj zobrazí aktuálny zdroj času a príkaz w32tm / dotaz / konfigurácia všetky parametre služby.

net stop w32time - zastaví časovú službu, ak je spustená.

w32tm / unregister - odstráni časovú službu z počítača.

w32tm / register - zaregistruje časovú službu v počítači. V takom prípade sa celá vetva parametrov v registri vytvorí nanovo.

net start w32time - spustí službu.

Funkcie zaznamenané v systéme Windows 7 - Časová služba sa nespustí automaticky pri spustení systému Windows. Opravené v aktualizácii SP1 pre Windows 7.