Prin ce diferă protocolul de sincronizare a timpului NTP de SNTP? NTP – ceas atomic pe fiecare masă Protocolul Ntp

NTP folosește protocolul UDP pentru a funcționa. Sistemul NTP este extrem de rezistent la schimbările latenței media.

NTP folosește algoritmul Marzullo (propus de Keith Marzullo de la Universitatea din California, San Diego), inclusiv caracteristica de sincronizare a transmisiei. În versiunea 4, este capabil să atingă o precizie de 10 ms (1/100 s) atunci când lucrează pe Internet și până la 0,2 ms (1/5000 s) și mai bună în rețelele locale.

NTP este unul dintre cele mai vechi protocoale utilizate. NTP a fost dezvoltat de David L. Mills de la Universitatea din Delaware în 1985 și este în prezent îmbunătățit. Versiunea actuală este NTP 4.

NTP folosește un sistem ierarhic de „niveluri de ceas” (strat). Nivelul 1 este sincronizat cu un ceas de înaltă precizie, de exemplu, cu un sistem GPS, GLONASS (Unified State Time Scale a Federației Ruse) sau un standard de timp atomic. Nivelul 2 se sincronizează cu una dintre mașinile de la Nivelul 1 și așa mai departe.

Timpul este reprezentat în sistemul NTP ca un număr de 64 de biți (8 octeți), constând dintr-un numărător de secunde de 32 de biți și un numărător de secunde fracționale de 32 de biți, permițând transmiterea timpului în intervalul 2-32 de secunde, cu o precizie teoretică de 2-32 de secunde. Deoarece scala de timp în NTP se repetă la fiecare 2 32 de secunde (136 de ani), destinatarul trebuie să cunoască cel puțin aproximativ ora curentă (cu o precizie de 50 de ani). De asemenea, rețineți că timpul se măsoară de la miezul nopții de 1 ianuarie 1900, nu 1970, așa că aproape 70 de ani (inclusiv anii bisecți) trebuie scăzuți din timpul NTP pentru a se potrivi corect ora cu sistemele Windows sau Unix.

Protocolul NTP este utilizat pe scară largă pentru implementarea serverelor de timp precise. Pentru a obține o precizie maximă, este de preferat funcționarea continuă software NTP în modul serviciu de sistem. În familia de sisteme de operare Microsoft Windows, acesta este serviciul W32Time (modulul w32time.dll care rulează în svchost.exe), Linux - serviciul Ntpd.

O implementare mai simplă a acestui algoritm este cunoscută sub numele de SNTP - sincronizare simplă protocol de rețea. Folosit în sisteme și dispozitive încorporate care nu necesită precizie ridicată, precum și în programe de timp personalizate.

Implementarea detaliată a protocolului și a sistemului în ansamblu este descrisă în:

NTP nu trebuie confundat cu protocolul de zi RFC 867 sau cu protocolul de timp RFC 868 (win program FG Time Sync).

Straturi de oră

NTP utilizează un sistem ierarhic, cu mai multe niveluri de surse de timp. Fiecare nivel al acestei ierarhii se numește strat, fiecărui strat i se atribuie un număr, începând cu 0 (zero) în partea de sus. Nivelul de strat definește distanța față de ceasul de referință și există pentru a preveni dependențele ciclice în ierarhie. Este important de reținut că stratul nu este un indicator al calității și fiabilității, înseamnă că sursa stratul 3 poate da un semnal mai mult Calitate superioară decât unele surse straturi 2. Practic, straturile servesc la distribuirea încărcăturii și pentru a oferi o zonă mai mare de acoperire. Această definiție a unui strat diferă și de conceptul de straturi de ceas utilizat în sistemele de telecomunicații.

Stratul 0

Stratul 0 este un dispozitiv de înaltă precizie care servește ca standard de timp, cum ar fi ceasurile atomice (moleculare, cuantice), ceasurile radio sau analogii acestora. De obicei, aceste dispozitive nu sunt conectate la o rețea; în schimb, acestea sunt conectate la computerul local (de exemplu, printr-o interfață RS-232) și transmit semnale PPS pentru sincronizare.

Stratul 1

Acesta este un computer la care ceasul de referință este conectat direct. Acesta acționează ca un server de timp de rețea și răspunde la solicitările NTP trimise de computerele de nivel 2.

Stratul 2

Acestea sunt computere care primesc timp de la serverele primului strat folosind protocolul NTP. De obicei, computerele din al doilea strat contactează mai multe servere din primul strat și, folosind algoritmul NTP, obțin cea mai bună mostră de date, eliminând serverele cu timpi evident incorecți. Calculatoarele își pot compara datele cu alte computere din stratul lor pentru a obține date stabile și consecvente pe toate computerele din strat. Calculatoarele din al doilea strat, la rândul lor, acționează ca servere pentru computerele din al treilea strat și răspund la solicitările NTP.

Stratul 3

Calculatoarele din al treilea strat funcționează exact în același mod ca și computerele din al doilea strat, singura diferență fiind că serverele lor sunt computere din al doilea strat de deasupra. Ele pot acționa și ca servere pentru stratul de bază. NTP (în funcție de versiune) acceptă până la 256 de straturi.

Vezi si

Legături

  • - lista de servere NTP ale standardului de timp și frecvență de stat (STSE) al Federației Ruse
  • Proiect Network Time Protocol - un proiect public de dezvoltare a protocolului și serviciilor NTP
  • Proiectul Serviciilor Publice NTP - Proiectul serverelor publice NTP și Grupul de lucru IETF NTP
  • pool.ntp.org este o resursă care reprezintă un cluster virtual mare de servere NTP pentru milioane de utilizatori. Începând cu 29 decembrie 2010, 2078 de servere sunt înregistrate pe pool.ntp.org. Este posibil să selectați servere regionale.
  • ntp.mobatime.ru - din 2005, un server NTP public gratuit Mobatime din primul strat (Rusia, Sankt Petersburg).
  • time.bakulev.ru - server NTP public gratuit al primului strat (Rusia, Moscova).

Fundația Wikimedia. 2010.

Vedeți ce este „NTP” în alte dicționare:

    NTP- este o inițială de trei litere care poate reprezenta: Conținut 1 Calcul 2 Politică 3 Știință 3.1 Chimie 3.2 Medicină … Wikipedia

    NTP-abrev. temperatura normală și presiunea aerului: fost termen pentru STP * * * NTP abre. temperatura si presiunea normala. * * * …Universalium

    NTP- NTP, Abk. pentru Network Time Protocol... Universal-Lexikon

    NTP- (Network Time Protocol) (Internet) protocol care programează ceasul intern al computerului cu ceasurile atomice sau ceasurile radio de pe Internet... Dicționar englez contemporan

    NTP-abrev. temperatura normală și presiunea aerului: fost termen pentru STP... Dicționar mondial englez

    NTP- Această pagină a omonimii repertorie a diferitelor subiecte și articole partajate cu același nume. Sigles d’une unique letter Sigles de deux lettres > Sigles de trei scrisori Sigles de quatre lettres … Wikipédia en Français

    NTP

    Ntp- Die Abkürzung NTP steht für: Network Time Protocol, ein Protokoll zur Zeitsynchronization zwischen Computern Normal Temperature and Pressure, die englische Bezeichnung für die physikalischen Normalbedingungen Nukleosidtriphosphat in der… … Deutsch Wikipedia

    NTP- Abreviere pentru nucleozida 5′ trifosfat. * * * program de tratament narcotic; Programul Național de Toxicologie; nitroprusiat; purpură nontrombopenică; temperatura și presiunea normală; 5' nucleotidază; nitroprusiat de sodiu * * * NTP abbr normal… … Dicționar medical


Sincronizarea timpului este o sarcină importantă, deși nu mulți oameni s-au gândit la asta. Ei bine, ce e în neregulă cu trecerea timpului pe un server? Știați că multe probleme de ceas afectează protocoalele legate de criptografie? Din acest motiv în Director activ O diferență de ceas mai mare de 5 minute va cauza probleme de autentificare Kerberos.

Niveluri orare. Strate.

Pentru a înțelege dispozitivul NTP, trebuie să cunoașteți conceptul straturi sau strat. Surse de timp autorizate, cum ar fi sateliți GPS, ceasuri atomice cu cesiu, unde radio WWVB - toate acestea stratul 0. Sunt autoritari pe baza faptului că au o modalitate de a menține o cronometrare foarte precisă. Puteți folosi, desigur, un ceas obișnuit cu quartz, dar știind că este ușor să pierdeți 15 secunde cu ele într-o lună, este mai bine să nu le folosiți ca măsură a timpului. Stratul 0 Acesta este momentul în care o secundă nu se pierde în 300.000 de ani!

Calculatoare de la care direct (nu prin rețea!) iau timp stratul 0- Acest stratul 1. Deoarece există întotdeauna întârzieri din cauza transmisiei semnalului și costurilor pentru setarea orei, calculatoarelor stratul 1 nu la fel de precis ca stratul 0, dar în viata reala diferența ajunge la câteva microsecunde (1 μs = 10 -6 s), ceea ce este o abatere complet acceptabilă.

Următorul nivel de computere care iau timp prin rețea stratul 1- acesta este... ruliu de tobe... intriga... stratul 2! Din nou din cauza diverselor întârzieri (întârzieri de rețea cu siguranță), stratul 2 putin in urma stratul 1 si cu siguranta de la stratul 0. În practică, aceasta este o diferență de la câteva microsecunde (1 μs = 10 -6 s) la câteva milisecunde (1 ms = 10 -3 s). Mulți oameni doresc să nu se sincronizeze mai departe cu stratul stratul 2.

După cum reiese din diagramă, stratul 4 ia timp de la un superior stratul 3. stratul 5 la stratul 4și așa mai departe. stratul 16 este considerat cel mai de jos strat și timpul se numără acolo nesincronizate.

Pentru a sincroniza ora folosind NTP, trebuie mai întâi să setați manual ora. Nu trebuie să existe o diferență de mai mult de 1000 de secunde între ora dvs. exactă și ceasul dvs. Dacă serverul de timp pe care îl utilizați stă mai mult de 1000 de milisecunde (1 secundă), acesta va fi exclus din listă și alții vor fi utilizați în schimb. Acest mecanism vă permite să filtrați sursele de timp proaste.

Client de timp.

În fișierul /etc/ntp.conf, liniile Server sunt importante pentru client. Pot fi mai multe dintre ele - până la 10 bucăți!

Cât de adăugat? Vă rugăm să rețineți:

  • Dacă aveți un singur server (server cu o linie), atunci dacă acest server începe să mintă, atunci îl veți urmări orbește. Dacă timpul lui expiră cu 5 secunde și alergi după el.
  • Dacă sunt adăugate 2 servere (2 linii de server), atunci NTP le va marca pe ambele ca tickere false. Dacă unul dintre ei minte, atunci NTP nu poate înțelege cine minte, deoarece nu există cvorum.
  • Dacă sunt adăugate 3 sau mai multe servere de timp, atunci poate fi identificat un mincinos tickere false. Dacă există 5 sau 6 servere de timp, atunci puteți găsi 2 mincinoși tickere false. Dacă există 7 sau 8 servere, atunci 3 tickere false. Dacă există 9 și 10 servere, atunci 4 tickere false.

Proiectul NTP Pool.

Există un proiect numit NTP Pool la care adresa pool.ntp.org/zone/ru/ puteți găsi servere de timp recomandate utilizatorilor ruși.

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

Sistemele de operare precum Debian și Ubuntu oferă utilizatorilor propriile servere de timp.

server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server3.debian.pool.ntp.org

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

Dacă executați comanda ntpq -pn pe computerul dvs. Linux care utilizează NTP

Refișare de la distanță atunci când întârzierea sondajului de compensare ========================================== ============================================ +93.180.6.3 77.37.134.150 2 u 62 1024 377 53.658 -0.877 1.174 +85.21.78.23 193.190.230.65 2 u 1027 1024 377 54.651 0.167 1.582.913 * 1.539.130.65 24 2 u 940 1024 377 52.796 -0.143 1.001 +91.206.16.3 194.190.168.1 2 u 258 1024 377 93.882 -0.680 2.196 -91.189.94.4 193.79.237.14 2 u 596 1024 377 100.219 1.562 1.482

Ce spun numele coloanelor:

  • la distanta- servere la distanță cu care sincronizați ora.
  • refid- strat superior pentru acest server.
  • Sf- nivelul stratului. De la 0 (nu este disponibil pentru noi) la 16 (nu este de dorit pentru noi). Ideal - 2.
  • t- tipul conexiunii. " u" - unicast sau manycast, " b" - difuzare sau multidifuzare, " l" ceas de referință local, " s" - nod simetric, " A" - server manycast, " B" - server de difuzare, " M" - server multicast.
  • când- ora la care serverul ne-a răspuns ultima dată. Parametrul afișează numărul în secunde, dar poate afișa în minute dacă numărul este cu m sau în ore dacă h.
  • sondaj- frecvența de sondare. Minim 16 secunde, maxim 32 de ore. Numărul trebuie să fie 2n. De obicei, acest parametru afișează fie 64 de secunde, fie 1024.
  • a ajunge- 8 biți ai unui octet care indică starea comunicării cu un server de timp la distanță: reușit sau eșuat. Dacă biții sunt setați, atunci este succes, altfel este un eșec. Valoarea 377 este binară 0000 0000 1111 1111.
  • întârziere- valoarea în milisecunde arată timpul dintre trimiterea și primirea unui răspuns (timpul dus-întors - RTT).
  • decalaj- decalajul în milisecunde între dvs. și serverele de timp. Poate fi un număr pozitiv sau negativ.
  • frământare- valoarea absolută în milisecunde care indică abaterea standard a offset-ului dvs.

Există un simbol înaintea adresei IP a serverului NTP - acesta este cod de numărare. feluri cod de numărare:

  • " " - aruncat ca invalid. De exemplu, nu există nicio legătură cu el sau este offline, este de rang prea înalt și nu servește oameni ca tine.
  • "X"- respins de algoritmul de intersecție. Algoritmul de intersecție pregătește o listă de parteneri candidați care pot deveni surse de sincronizare și calculează un interval de încredere pentru fiecare dintre ei.
  • "." - aruncat din cauza preaplinării mesei.
  • "-" - eliminate de algoritmul cluster. Algoritmul de grupare sortează lista de candidați după nivel și coduri de distanță de sincronizare.
  • "+" - serverul este pornit de „algoritmul de combinare”. Acest server este un candidat excelent dacă serverul actual de timp începe să vă defecteze.
  • "#" - serverul este un excelent server de timp alternativ. Serverul cu # poate fi văzut numai dacă aveți mai mult de 10 intrări de server în /etc/ntp.conf
  • "*" - serverul de timp curent. Citirile sale sunt folosite pentru a vă sincroniza ceasul.
  • "o"- Server Puls pe secundă (PPS). Acest lucru înseamnă de obicei că serverul de timp în cauză utilizează surse de timp, cum ar fi sateliții GPS și alte semnale de timp precise. Dacă este desenat O, atunci alte tipuri de cod de numărare nu vor mai fi afișate.

În câmp refid poate avea următoarele valori:

  • Adresă IP - adresa serverului de timp la distanță.
  • .ACST.- Server NTP manycast.
  • .ACTS.- Automated Computer Time Service de la Institutul Național American de Standarde și Tehnologie.
  • .AUTH.- eroare de autentificare.
  • .AUTO.- eroare în secvențele Autokey.
  • .BCST.- Server de difuzare NTP.
  • .CHU.- Receptor radio cu unde scurte de la postul CHU din Ottawa, Ontario, Canada.
  • .CRYPT.- Eroare de protocol Autokey.
  • .DCFx.- Receptor radio LF de la postul DCF77 din Mainflingen, Germania.
  • .DENY.- Acces refuzat.
  • .GAL.- Receptor satelit european Galileo.
  • .GOES.- Receptor American Geostationary Operational Environmental Satellite.
  • .GPS.- Receptor American Global Positioning System.
  • .HBG.- Receptor radio LF de la postul HBG din Prangins, Elveția.
  • .INIT.- Asocierea peer a fost inițializată.
  • .IRIG.- Inter Range Instrumentation Group cod de timp.
  • .JJY.- Receptor radio LF de la stația JJY din Muntele Otakadoya, lângă Fukushima sau Muntele Hagane de pe insula Kyushu, Japonia.
  • .LFx.- Receptor radio LF obișnuit.
  • .LOCL.- ceas gazdă locală.
  • .LORC.- Receptor radio LF de la Long Range Navigation (LORAN-C).
  • .MCST.- Server multicast NTP.
  • .MSF.- Stația de radio Anthorn lângă Anthorn, Cumbria.
  • .NIST.- Institutul Naţional American de Standarde şi Tehnologie.
  • .PPS.- Ceas puls pe secundă.
  • .PTB.- Physikalisch-Technische Bundesanstalt din Brunswick și Berlin, Germania.
  • .RATE.- Pragul de sondare NTP a fost depășit.
  • .STEP.- schimbați pasul NTP. Părtinire decalaj mai puțin de 1000 de milisecunde, dar mai mult de 125 de milisecunde.
  • .TDF.- Receptor radio LF de la postul TéléDiffusion de France din Allouis, Franța.
  • .TIME.- Timp de asociere NTP.
  • .USNO.- Observatorul Naval al Statelor Unite.
  • .WWV.- Receptor radio HF de la postul WWV din Fort Collins, Colorado, Statele Unite.
  • .WWVB.- Receptor radio LF de la postul WWVB din Fort Collins, Colorado, Statele Unite.
  • .WWVH.- Receptor radio HF de la postul WWVH din Kekaha, pe insula Kauai din Hawaii, Statele Unite.

În primul rând, scăpați de ideea cum să obțineți timp de la stratul 1, ei spun că sunt cel mai aproape de ora exactă. Sunt mai aproape de cea mai precisă oră de pe planetă, dar ei înșiși sunt supraîncărcați și au întârzieri mari RTT pentru serverele obișnuite. Mai bine găsește unul normal stratul 2și nu-ți face griji pentru asta. Nu uitați că vorbim de microsecunde și milisecunde, ceea ce este destul de suficient în viața obișnuită.

În al doilea rând, rețineți că conectarea la cel mai apropiat server de timp nu este întotdeauna ideală. Ceea ce este mai important nu este proximitatea teritorială, ci nivelul stratului. Proiectul NTP Pool publică o listă de servere numai de nivel stratul 1Și stratul 2și este mai bine să luați până la 10 servere de timp de la această listă, care va fi pur și simplu minunat.

În al treilea rând, dacă sunteți un simplu utilizator-client acasă, atunci serverele recomandate pentru dvs. în sistemul dvs. de operare vor fi varianta ideala, care nu necesită mișcări inutile.

Pentru birourile mari, cea mai bună opțiune ar fi să-și configureze propriul server de timp pentru computerele de serviciu. Acest server va primi ora exactă de la serverele de timp de pe Internet și o va furniza calculatoare locale. Pe serverele Debian și Ubuntu, pur și simplu decomentați linia

Restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

în fișierul de configurare al demonului ntpd - /etc/ntp.conf

Utilizatorii din rețeaua 192.168/16 vor putea lua citiri precise ale ceasului de pe serverul dvs. Pentru serverele interne bazate pe Linux care nu sunt servere de timp și sunt angajate în propriile sarcini, în loc să ruleze demonul ntpd în modul client, este suficient să îl specificați în fișierul /etc/cron.daily/syncntpd. Este recomandat să citiți diferențele dintre ntpdate și ntp și să decideți singur.
#!/bin/sh
/usr/sbin/ntpdate IP.address.of.your.server > /dev/null 2>&1
iesirea 0

iar o dată pe zi, datorită comenzii ntpdate, se va efectua sincronizarea orei. Pentru a evita neînțelegerile, nu fi leneș înainte de a implementa un server de timp și de a sincroniza totul prin protocolul NTP - setați manual ora corectă pe toate serverele și stațiile de lucru disponibile pentru dvs. Dacă timpul dvs. nesincronizat este prea diferit de cel corect, atunci puteți crea o mulțime de probleme inutile la început.

În al patrulea rând, NTP nu are nimic de-a face cu ce țară și ce fus orar sunt utilizate și cu modul în care are loc trecerea la ora de vară și de iarnă și dacă o astfel de tranziție se face într-o anumită țară. Această responsabilitate revine sistemului de operare, pe care trebuie să-l actualizați dacă apar modificări în ceasornicarie din țară. Pe sistemele Debian și Ubuntu, pachetul tzdata este responsabil pentru acest lucru și trebuie să fie actualizat.

În al cincilea rând, este mai bine să nu rulați serverul NTP pe un sistem foarte încărcat.

MSK-IX NTP Server este un server de timp public acceptat de MSK-IX. Serverul de timp exact este conceput pentru a sincroniza ceasurile interne ale computerelor și echipamentelor de rețea (servere, routere, smartphone-uri etc.) cu sursa de referință folosind protocolul NTP.

Serverul MSK-IX NTP aparține celui mai înalt nivel de precizie (Stratum One Time Servers) din sistemul ierarhic al nivelurilor de timp. Semnalul global este folosit ca semnal temporal de referință. sisteme prin satelit navigație GLONASS (prioritate) și GPS.

MSK-IX NTP Server este implementat ca o grupare de servere situate în Moscova, Sankt Petersburg, Ekaterinburg și Novosibirsk. Aplicație tehnologie de rețea anycast asigură fiabilitate ridicată și răspuns rapid al sistemului în toată țara.

Serverele MSK-IX sunt de asemenea incluse în pool-ul internațional de servere NTP POOL.NTP.ORG, utilizate pe scară largă în setările sistemului de operare.

Cum să începeți să utilizați serviciul NTP Server?

Utilizați următorii parametri când vă configurați hardware-ul:

Numele serverului ntp.msk-ix.ru
adresa IPv4 194.190.168.1
adresa IPv6 2001:6d0:ffd4::1

Cum se stabilește peering-ul cu rețeaua de servere MSK-IX NTP?

Pentru a scurta ruta rețelei la serverul MSK-IX NTP, utilizați serviciul Route Server sau stabiliți peering direct cu rețeaua MSK-IX DNS Cloud. Interacțiunea peer-to-peer se stabilește pe baza unei cereri suplimentare în cadrul contractului de conectare la MSK-IX fără plată suplimentară.

Bună ziua, invitați și cititori obișnuiți. Trec treptat de la elementele de bază la un studiu mai aprofundat despre Linux. Astăzi vreau să iau în considerare funcţionarea protocolului ntp, precum și setarea server de timp pe Linux(server ntp). Deci, să începem cu teoria.

Protocolul NTP

Network Time Protocol (NTP)- un protocol de rețea pentru sincronizarea ceasului intern al unui computer folosind rețele cu latență variabilă (a se citi „lățimea canalului”/calitate).

NTP este folosit pentru munca sa Protocolul UDP și portul 123.

Versiunea actuală a protocolului - NTP 4. NTP utilizează un sistem ierarhic "niveluri orare"(se mai numesc Strat). Nivelul 0 (sau Stratul 0)- acestea sunt de obicei dispozitive care sunt ceasuri atomice (moleculare, cuantice), ceasuri GPS sau ceasuri radio. Datele dispozitivului nu sunt de obicei publicate în retea mondialași conectați-vă direct la servere de timp de nivel 1 prin protocolul RS-232 (indicat prin săgeți galbene în ilustrație). Nivelul 1 sincronizat cu ceas de înaltă precizie nivelul 0, funcționează de obicei ca surse pentru servere nivelul 2. Nivelul 2 sincronizat cu una dintre mașini nivelul 1, iar sincronizarea cu servere de nivelul dvs. este, de asemenea, posibilă. Nivelul 3 funcționează similar cu cel de-al doilea. De obicei, serverele de nivelul doi și mai jos sunt publicate în rețea. Protocolul NTP suportă până la 256 de niveluri. De asemenea, aș dori să remarc că serverele de nivel 1 și 2, și uneori chiar 3, nu sunt întotdeauna deschise accesului public. Uneori, pentru a vă sincroniza cu ele, trebuie să trimiteți o solicitare prin e-mail administratorilor de domeniu.

De ce există o restricție privind accesul la servere? Odată cu trecerea la fiecare nivel, eroarea relativă la serverul primar crește ușor, dar numărul total de servere crește prin urmare .

Atribuirea unui server NTP în rețeaua locală

De ce am putea avea nevoie de un server NTP? De exemplu, există servicii în sistemele de operare care pot depinde de ora sincronizată. Cel mai proeminent exemplu de astfel de servicii este protocolul de autentificare Kerberos. Pentru ca acesta să funcționeze, este necesar ca pe computerele accesate folosind acest protocol, timpul de sistem să difere cu cel mult 5 minute. În plus, ora exactă pe toate computerele face mult mai ușoară analiza jurnalelor de securitate atunci când investighează incidentele de securitate. retea locala.

Moduri de operare server/client NTP

Client server

Acest mod este de departe cel mai des folosit pe Internet. Schema de lucru este clasică. Clientul trimite o cerere, la care serverul trimite un răspuns într-un interval de timp. Clientul este configurat folosind directiva server din fișierul de configurare, unde este specificat numele DNS al serverului de timp.

Mod activ/pasiv simetric

Acest mod este utilizat dacă sincronizarea timpului este efectuată între un număr mare de mașini similare. Pe lângă faptul că fiecare mașină se sincronizează cu o sursă externă, se sincronizează și cu vecinii săi (peers), acționând ca client și server de timp pentru aceștia. Deci, chiar dacă o mașină „pierde” o sursă externă, va putea în continuare să obțină ora exactă de la vecinii săi. Vecinii pot lucra în două moduri – activ și pasiv. Lucrând în modul activ, mașina în sine își transmite timpul către toate mașinile învecinate listate în secțiunea peers din fișierul de configurare ntp.conf. Dacă vecinii nu sunt indicați în această secțiune, atunci mașina este considerată a funcționa în modul pasiv. Pentru a preveni ca un atacator să compromită alte mașini prin prezentarea drept sursă activă, trebuie utilizată autentificarea.

Modul de difuzare

Acest mod este recomandat pentru utilizare în cazurile în care un număr mic de servere deservesc un număr mare de clienți. Când operează în acest mod, serverul trimite periodic pachete folosind adresa de difuzare a subrețelei. Un client configurat să se sincronizeze în acest mod primește pachetul de difuzare al serverului și se sincronizează cu serverul. O caracteristică a acestui mod este că timpul este livrat într-o subrețea (limitând pachetele de difuzare). În plus, autentificarea trebuie utilizată pentru a proteja împotriva atacatorilor.

Modul multicast

Acest mod este în multe privințe similar cu difuzarea. Diferența este că adresele multicast ale rețelelor de clasă D ale spațiului de adrese IP sunt folosite pentru a livra pachete. Pentru clienți și servere, este specificată adresa grupului de multicast, pe care o folosesc pentru sincronizarea orei. Acest lucru face posibilă sincronizarea grupurilor de mașini situate pe diferite subrețele, cu condiția ca routerele care le conectează să accepte protocolul IGMP și să fie configurate să transmită trafic multicast.

Modul Manycast

Acest mod este o inovație în cea de-a patra versiune a protocolului NTP. Implică clientul să caute servere manycast printre vecinii săi de rețea, să primească mostre de timp de la fiecare dintre ele (utilizând criptografia) și, pe baza acestor date, să selecteze cele trei „mai bune” servere manycast cu care clientul se va sincroniza. Dacă unul dintre servere eșuează, clientul își actualizează automat lista.

Pentru a transmite mostre de timp, clienții și serverele care operează în modul multicast folosesc adrese de grup multicast (rețele de clasa D). Clienții și serverele care folosesc aceeași adresă formează aceeași asociere. Numărul de asocieri este determinat de numărul de adrese multicast utilizate.

Timp în Linux

Vă voi spune pe scurt ce oră există în Linux și cum să o setați. În Linux, ca și în alte sisteme de operare, există de 2 ori. Primul - hardware , numit uneori Ceas în timp real, prescurtat ( RTC) (alias ceasul BIOS) sunt de obicei asociate cu un cristal de cuarț oscilant care are o precizie de câteva secunde pe zi. Precizia depinde de diverse fluctuații, cum ar fi temperatura ambiantă. Al doilea ceas este intern ceasul programului , care apar continuu, inclusiv in timpul intreruperilor in functionarea sistemului. Acestea sunt supuse variațiilor din cauza încărcării mari a sistemului și a latenței întreruperii. Cu toate acestea, sistemul citește de obicei ceasul hardware la pornire și apoi îl folosește.

data si ora sistem de operare setat la pornire pe baza valorii ceas hardware, și setări de fus orar. Setările de fus orar sunt preluate din fișier /etc/localtime. Acest fișier este un link (dar mai adesea o copie) a unuia dintre fișierele din structura de directoare /usr/share/zoneinfo/.

Ceasurile hardware Linux pot stoca ora în format UTC(analog cu GMT) sau ora teritorială actuală. Recomandarea generală cu privire la ce oră să setați (?) este următoarea: dacă pe computer sunt instalate mai multe sisteme de operare și unul dintre ele este Windows, atunci trebuie să utilizați ora curentă (deoarece Windows ia timpul din BIOS/CMOS și îl consideră local). Dacă se folosesc numai cele de operare sisteme UNIX familie, este indicat să stocați ora în BIOS în format UTC.

Odată ce sistemul de operare pornește, ceasul sistemului de operare și ceasul BIOS-ului sunt complet independente. Nucleul sistemului sincronizează ceasul sistemului cu ceasul hardware la fiecare 11 secunde.

După un timp, poate exista o diferență de câteva secunde între ceasul hardware și cel software. Ce ceasuri păstrează ora corectă? Nici una, nici alta până nu-l punem la punct sincronizare de timp.

Notă:

Nucleul Linux stochează și calculează întotdeauna timpul ca număr de secunde de la miezul nopții 1 ianuarie 1970 al anului, indiferent dacă ceasul este setat la ora locală sau universală. Conversia la ora locală se face în timpul procesului de solicitare.

Deoarece numărul de secunde de la 1 ianuarie 1970 UTC este stocat ca un întreg semnat pe 32 de biți (acest lucru este valabil pe sistemele Linux/Intel), ceasul tău va înceta să funcționeze cândva în 2038. Linux nu are o problemă cu anul 2000, dar are o problemă cu anul 2038. Din fericire, până atunci toate sistemele Linux vor rula pe sisteme pe 64 de biți.Un număr întreg pe 64 de biți va conține ceasul nostru până în aproximativ al 292271-lea an.

Server NTP Linux

Introducere

Există multe implementări pentru sincronizarea timpului pentru sistemul de operare Linux. Cele mai cunoscute sunt Xntpd (NTP versiunea 3), ntpd (NTP versiunea 4), Crony și ClockSpeed. În exemplul nostru vom folosi serverul ntpd.

Daemonul ntpd este atât un server de timp cât și un client, în funcție de setările fișierului de configurare /etc/ntpd.conf (uneori /etc/ntp.conf), demonul poate „primi” timp de la servere la distanță și „distribuie” timp pentru alte gazde.

General circuit de sincronizare a timpului pe rețeaua locală este după cum urmează: trebuie să aveți 1 sau 2 servere cu acces la rețeaua globală, care vor primi timp de la Internet. Toate computerele din rețeaua locală sunt sincronizate cu serverele specificate care primesc timp de pe Internet.

Instalarea ntpd

De fapt, instalarea demonului se rezumă la instalarea următoarelor pachete: ntp(pachetul care include demonul însuși), ntpdate(utilitatea pentru sincronizarea manuală a orei este depășită), ntp-doc(documentația pachetului), în unele distribuții va trebui să instalați același lucru ntp-utils(utilități de diagnostic), în unele sunt incluse în pachetul ntp. Am descris cum se instalează programe pe Linux în. După instalarea pachetului, în majoritatea distribuțiilor, demonul va fi deja configurat ca client ntp (de exemplu, acesta a fost cazul în Debian). În consecință, principalele fișiere de configurare au fost create automat: /etc/ntp.conf și /var/lib/ntp/ntp.drift și demonul a fost lansat automat.

Înainte de a configura demonul să se sincronizeze cu lumea exterioară, aș recomanda să setați data curentă a sistemului la o valoare cât mai apropiată de timp real posibil. Setarea datei în Linux produs de comanda: data MMDDhhmmCCYY.ss, unde MM - luna, DD - ziua lunii, hh - ore, mm - minute, CCYY - 4 cifre ale anului, ss - secunde. În același timp, valorile CCYY.ss nu este necesar să se indice.

După cum puteți vedea, comanda specificată va seta data și ora curentă la 27 decembrie 2010, 20:06:30. comanda data fără parametri, afișați ora curentă a sistemului. Această comandă are o mulțime de parametri, care pot fi găsiți în data man.

De asemenea, este necesar să configurați corect ceasul hardware și fusul orar. După cum sa menționat mai sus, fusul orar este configurat prin copierea fișierului de zonă necesar din director /usr/share/zoneinfo/ la dosar /etc/localtime:

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

Hardware Am setat ceasul la UTC:

# cat /etc/sysconfig/clock | grep UTC # UTC=true indică faptul că ceasul este setat la UTC; UTC=true ntp2-server:~# cat /etc/default/rcS | grep UTC UTC=da

Primul exemplu specifică un fișier de configurare care definește utilizarea UTC pentru RH, al doilea pentru distribuțiile Deb.

Pe lângă setarea setărilor pentru a utiliza ora UTC, trebuie să specificați timp hardware. (în cele mai multe cazuri acest lucru nu este necesar, deoarece ora de sistem specificată este inevitabil sincronizată cu hardware-ul, de către kernel). Dar totuși, dacă ai dorința să o faci... comanda hwclock citește și setează ceasul hardware pe baza parametrilor trecuți acestuia. Opțiunile disponibile sunt descrise în pagina de manual a comenzii. Iată câteva exemple de utilizare a hwclock:

Ntp-server# hwclock # citește ora de la ceasul hardware ntp-server# hwclock --systohc --utc # setează ora ceasului hardware la # UTC pe baza orei sistemului ntp-server# hwclock --systohc # setează ora ceasului hardware # la local ora bazată pe ora sistemului ntp-server# hwclock --set --date "22 Mar 2002 13:17" # setează ora ceasului hardware # la șirul specificat

O altă opțiune pentru modificarea orei din ceasul hardware este accesarea BIOS-ului atunci când sistemul pornește. Deoarece ora sistemului de operare este independentă de ceasul hardware, orice modificare a BIOS-ului va fi luată în considerare la următoarea pornire.

Acum că avem totul pregătit și instalat, să trecem la la un șantier de construcții.

Gestionarea demonului ntpd

Control demonul ntpd nu este diferit de controlul oricăror alți demoni. Porniți sau reporniți serviciul ntpd:

#/etc/init.d/ntp start #/etc/init.d/ntp restart

Stop:

#/etc/init.d/ntp stop

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

Daemonul are următorii parametri de lansare:

P - fișier PID,
-g - permite tranziția la mare salt
-c - fișier de configurare
-q - forță sincronizarea manuală

Configurarea serverului ntpd

În primul rând, vă sfătuiesc să modificați parametrii de lansare a demonului în următorul fișier de configurare:

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

# cat /etc/sysconfig/ntpd # Parametrii pentru demonul NTP. # Vezi ntpd(8) pentru mai multe detalii. .... # Specifică parametri suplimentari pentru ntpd. NTPD_ARGS="-g"

Acest parametru vă va permite să sincronizați ceasul, chiar dacă există o diferență de timp foarte mare.

Deci, după cum am spus, informațiile de configurare demonul ntpd este în dosar /etc/ntp.conf. Sintaxa fișierului este standard, ca în multe alte configurații: liniile goale și liniile care încep cu caracterul „#” sunt ignorate. Iată un exemplu simplu:

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

Parametru Server specifică ce servere vor fi folosite pentru sincronizare, câte unul pe fiecare linie. Dacă serverul este dat cu argument prefera, Cum ntplocal.example.com, atunci acest server are preferință față de celelalte. Răspunsul de la serverul preferat va fi eliminat dacă diferă semnificativ de răspunsurile altor servere, în caz contrar va fi folosit fără a ține cont de alte răspunsuri. Argument prefera Utilizat în mod obișnuit pentru serverele NTP despre care se știe că sunt foarte precise, cum ar fi cele care utilizează echipamente dedicate de timp de precizie.

Parametru driftfile specifică fișierul care este utilizat pentru a stoca offset-ul ceasului de sistem. Din câte am înțeles, acest fișier stochează permanent o valoare, care se formează pe baza analizei ajustărilor de timp trecute, iar dacă sursele externe de timp devin indisponibile, atunci ajustarea timpului are loc în funcție de valoarea din fișier. derivă. Nu trebuie modificat prin alte procese. Și înainte de a specifica acest fișier în configurație, fișierul trebuie creat.

În mod implicit, serverul NTP va fi accesibil tuturor gazdelor de pe Internet. Parametru restrângeîn dosar /etc/ntp.conf vă permite să controlați ce mașini pot accesa serverul dvs. Dacă doriți să împiedicați toate mașinile să vă acceseze serverul NTP, adăugați următoarea linie la fișier /etc/ntp.conf:

restrictioneaza implicit ignora

Dacă doriți să permite sincronizați ceasul numai cu serverul dvs mașinile din rețeaua dvs, Dar interzice lor configura serverul sau fiți participanți egali la sincronizarea timpului, apoi în loc de cele de mai sus, adăugați linia:

restrictioneaza 192.168.1.0 masca 255.255.255.0 nomodify notrap

unde 192.168.1.0 este adresa IP a rețelei dvs. și 255.255.255.0 este masca de rețea. /etc/ntp.conf poate conține mai multe directive de restricție.

Pentru o funcționare corectă și mai precisă a demonului, este recomandabil să selectați servere de nivel - din stratul 2 (puteți, desigur, stratul1, dar va trebui să pierdeți timpul căutând un astfel de server) și din stratul selectat. 2 cele la care există o „distanță” minimă. De obicei, astfel de servere pot fi furnizate de ISP-ul dumneavoastră. Numărul de servere selectate este de dorit - mai mult de 2 până la 3, cu atât mai multe, cu atât mai bine, dar în limite rezonabile. Dacă ești prea lene să alegi cele mai bune servere, apoi puteți lua lista de servere deschise de nivel al doilea de aici: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers.

Selectarea unei liste de servere NTP de referință

Mergem la adresa specificată (http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers) și selectăm o listă de servere inițiale. Din această listă selectăm servere care îndeplinesc cerințele noastre analizând rezultatul comenzii ntpdate. La executarea comenzii, se folosește următoarea sintaxă:

ntpdate parametri servers_separated by_space

Pentru a ne asigura că interogarea noastră nu aduce modificări sistemului, trebuie să folosim parametrul -q, care specifică utilizarea interogării fără a face modificări. De asemenea, este posibil să folosiți comutatorul -d, indicând că comanda va fi executată în modul de depanare, cu ieșirea de informații suplimentare, fără a face modificări reale (cu acest comutator, se afișează o grămadă de alte gunoiuri :), pe care le-am nevoie acest moment nu e necesar). Alți parametri pot fi găsiți în man 8 ntpdate. Din linkul specificat, am selectat toate serverele Open Access situate în Rusia (RU) + cel furnizat de furnizor și am rulat comanda, sa dovedit cam așa:

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 ntp.corbina.net server 88.147.255.85, stratul 1, offset 0.006494, întârziere 0.09918 server 62.117.76.142, stratul 1, offset 0.002552, întârziere 0.06920 0.06920 server 0.06920, offset 0.636.11 4. 4 7, întârziere 0.06918 server 62.117.76.140, stratul 1, offset 0.004823, întârziere 0.07350 server 88.147.254.228, stratul 1, offset -0.002355, întârziere 0.12030 server 88.147.254.229, stratul 1, offset -1.21.0.005 76.138 , stratul 1, offset 0.005331, întârziere 0.07401 server 195.14 .40.141, stratul 2, offset 0.002846, întârziere 0.07188 13 ian 19:14:09 ntpdate: ajustați serverul de timp 62.117.76.141 offset 0.003147 sec

În exemplu, serverele noastre au emis cu succes nivelul stratum1, ceea ce este o veste bună (cu excepția serverului furnizorului), offset este diferența de timp cu acest server în secunde, întârzierea este întârzierea sincronizării în secunde. De obicei, b DESPRE O precizie mai mare se obține atunci când se utilizează servere care au o latență scăzută în transmiterea pachetelor prin rețea. Pentru a identifica acest lucru, puteți utiliza . În consecință, mai întâi selectându-i pe cei cu timpi de răspuns mai scurti și dintre aceștia, pe cei cu mai puține hopuri de atins. Pentru a nu pierde timpul, voi folosi toate serverele specificate și le voi introduce în fișierul de configurare. În total, știind toate cele de mai sus, voi descrie fișierul rezultat /etc/ntp.conf:

Ntp-server:~# cat /etc/ntp.conf # Servere de rețea locală (comentate, neutilizate - există un server în rețea) #server 192.168.0.2 #server 192.168.0.5 # Server de internet server ntp2.ntp- servers.net server ntp1.vniiftri.ru 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 # Fișierele server driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntpstats # restricționarea accesului la server: # implicit ignorăm totul restricționează implicit ignore # localhost fără parametri - asta înseamnă că totul este permis. Parametrii se aplică numai interdicțiilor. restricționează 127.0.0.1 # În continuare sunt descrise serverele cu care ne sincronizăm în rețeaua locală. # Le permitem totul, cu excepția capcanelor și solicitărilor către noi restricționați 192.168.0.2 noquery notrap restrict 192.168.0.5 noquery notrap # pentru local, permitem și totul, cu excepția capcanelor și modificărilor restrict 192.168.0.1 mask 255.255.255.0 nomodify surse externe nomodify acces: restricționează ntp2.ntp-servers.net restricționează ntp1.vniiftri.ru restricționează ntp2.vniiftri.ru restricționează ntp4.vniiftri.ru restricționează ntp0.ntp-servers.net restricționează ntp1.ntp-servers.net restricționează ntp3.vniiftri.ru restricționează ntp.corbina.net # și acesta este un hack care stabilește nivelul de încredere al serverului (stratele) la el însuși egal cu 3 # pe scurt, cu cât nivelul este mai mare, cu atât numărul este mai mic. 0 este ceasul atomic, #1 este sincronizat cu acesta, 2 este cu primul și așa mai departe. server 127.127.1.1 fudge 127.127.1.1 stratul 3

Pentru o înțelegere și o configurare mai aprofundată a serverului, voi descrie câțiva parametri de configurare ntpd pe care nu i-am menționat::

  • permite dezactivarea auth/monitor/pll/pps/stats - Porniți, opriți mod de operare:
    • auth- comunica cu vecinii nemenționați doar în modul de autentificare;
    • monitor- permite monitorizarea cererilor;
    • pll- permite setarea frecvenței ceasului local prin NTP;
    • statistici- permite colectarea de statistici;
  • statisticiloopstats- cu fiecare modificare a ceasului local, scrie o linie într-un fișier loopstats;
  • statisticipeerstats- fiecare comunicare cu un vecin este înregistrată într-un jurnal stocat într-un fișier peerstats;
  • statisticiceasuri- fiecare mesaj de la driverul de ceas local este scris într-un jurnal stocat într-un fișier ceasuri;
  • statsdir(nume_catalog_cu_statistici)- specifică numele directorului în care vor fi amplasate fișierele cu statistici server;
  • filegen - definește un algoritm pentru generarea numelor de fișiere, care constau în:
    • prefix- parte constantă a numelui fișierului, setată fie în timpul compilării, fie prin comenzi speciale de configurare;
    • nume de fișier- adăugat la prefix fără bară oblică, două puncte sunt interzise, ​​pot fi schimbate cu tasta de fișier;
    • sufix- generat în funcție de tip;
  • restrângeadresa numerică- stabilește restricții de acces: pachetele sunt sortate și mascate, adresa sursă este luată și comparată secvențial, este luat un flag de la ultima comparație reușită acces:
    • fara steaguri- da acces;
    • ignora- ignora toate pachetele;
    • noquery- ignora pachetele NTP 6 si 7 (cerere si modificare stare);
    • nomodify- ignora pachetele NTP 6 si 7 (modificare de stare);
    • limitat- deservește doar un număr limitat de clienți dintr-o rețea dată;
    • nupa- servește gazda, dar nu se sincronizează cu ea;
  • clientlimitlimită- pentru steag limitat determină numărul maxim de clienți serviți (implicit 3);

Deci, avem ntpd-server, care se sincronizează cu lumea exterioară, vă permite să primiți timp pentru clienții din rețeaua locală 192.168.0.1 cu o mască de 255.255.255.0 și poate fi și sincronizat cu serverul local (dacă decomentați câteva rânduri). Tot ce trebuie să facem este să setăm clienți și să învățăm cum să ne monitorizăm serverul.

Monitorizarea serverului ntpd și sincronizare

Odată ce ai totul setat. NTP va păstra ora sincronizată. Acest proces poate fi observat folosind comanda NTP Query (ntpq):

Ntp-server:~# ntpq -p remote refid st t când sondaj atinge întârziere offset 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

Această comandă cu comutatorul -p tipărește la ieșirea standard o listă de surse de timp cu caracteristicile lor (parametrii de comandă rămași sunt în man ntpq). Semnificația fiecărei coloane este următoarea:

Numele serverului NTP la distanță. Dacă specificați comutatorul -n, veți obține adrese IP ale serverului în loc de nume.

Indică de unde își primește timpul fiecare server în prezent. Acesta ar putea fi un nume de gazdă sau ceva de genul .GPS., indicând sursa Sistemului de poziționare globală.

Stratul (nivelul) este un număr de la 1 la 16 care indică acuratețea serverului. Unul înseamnă acuratețe maximă, 16 înseamnă că serverul este indisponibil. Nivelul tău va fi egal cu nivelul celui mai puțin precis server la distanță plus 1.

Interval între sondaje (în secunde). Valoarea se va schimba între ratele minime și maxime de sondare. La început, intervalul va fi mic, astfel încât sincronizarea să aibă loc rapid. Odată ce ceasurile sunt sincronizate, intervalul începe să crească pentru a reduce traficul și încărcarea pe serverele de timp populare.

O reprezentare octală a unei matrice de 8 biți care reflectă rezultatele ultimelor opt încercări de conectare la server. Bitul este setat dacă serverul la distanță a răspuns.

Timpul (în secunde) necesar pentru a primi un răspuns la întrebarea „Cât este ceasul?”

Cel mai important domeniu. Diferența dintre ora locală și servere la distanță. Pe măsură ce sincronizarea progresează, această valoare ar trebui să scadă (mai aproape de zero), indicând că ceasul mașină locală devin mai precise.

Dispersia (Jitter) este o măsură a abaterilor statistice de la valoarea offset (câmpul offset) pe mai multe perechi reușite cerere-răspuns. O valoare de dispersie mai mică este de preferat, deoarece permite o sincronizare a timpului mai precisă.

Semnificația caracterelor înaintea numelor de server

x - sursă falsă conform algoritmului de intersecție;
. - exclus de pe lista candidaților din cauza distanței lungi;
- - eliminat din lista de candidați prin algoritmul de clustering;
+ - incluse în lista finală de candidați;
# - selectat pentru sincronizare, dar există 6 cei mai buni candidați;
* - selectat pentru sincronizare;
o - selectat pentru sincronizare, dar este folosit PPS;
spațiu - un nivel prea mare, o buclă sau o eroare evidentă;

serviciu ntpd„inteligent” și ea însăși elimină sursele de timp care sunt prea în afara limitelor rațiunii. La ceva timp după pornire, ntpd va selecta cele mai fiabile surse de date și se va sincroniza cu acestea. Lista serverelor NTP de referință pe care le prezentăm este revizuită în mod regulat de către serviciu.

Puteți verifica posibilitatea de sincronizare local pe server cu comanda:

Ntp-server:~# ntpdate -q localhost server 127.0.0.1, stratul 2, offset -0.000053, întârziere 0.02573 server::1, stratul 2, offset -0.000048, întârziere 0.02571 14 ianuarie 14 server:ntp9:5 ajustare: ::1 offset -0,000048 sec

Din rezultatul comenzii este clar că serverul nostru a devenit deja stratul 2. Pentru a realiza acest nivel, durează ceva timp. Poate că în primele 10-15 minute nivelul serverului va fi mai ridicat.

Funcționarea corectă a serverului ntp poate fi apreciată și din jurnalele demonului ntpd:

Ntp-server:~# cat /var/log/ntpstats/ntp 13 ian 20:13:16 ntpd: Ascultare pe interfața #5 eth0, fe80::a00:27ff:fec1:8059#123 Activat 13 ian 20:13: 16 ntpd: Ascultare pe interfața #6 eth0, 192.168.0.8#123 Activat 14 ian 14:31:00 ntpd: sincronizat cu 62.117.76.142, stratul 1 14 ian 14:31:10 ntpd 14:31:10 10 10: 4 ian. :31:10 ntpd: modificarea stării de sincronizare a orei nucleului 0001 14 ian 14:34:31 ntpd: sincronizat cu 88.147.255.85, stratul 1 14 ianuarie 14:36:04 ntpd: sincronizat cu 62.117.255.85, 4 ian. 04:36 ntpd: sincronizat cu 62.117.76.142, stratul 1 14 ian 15:10:58 ntpd: sincronizat cu 62.117.76.140, stratul 1 14 ianuarie 15:17:54 ntpd: nu 14 ian. : sincronizat cu 62.117.76.140, stratul 1 14 ian 15:32:14 ntpd: resetare timp +13.139105 s

Configurarea netfilter (iptables) pentru un server NTP

După ce ați configurat serverul, ar fi o idee bună să-l protejați. Știm că serverul rulează pe portul 123/udp, iar cererile sunt trimise și de la portul 123/udp. După citirea articolului și familiarizarea cu cele practice, puteți crea reguli pentru filtrarea traficului de rețea:

Ntp ~ # iptables-save # reguli iptables tipice pentru DNS *filter:INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,STABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP # permite accesul la rețeaua locală la serverul NTP: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 123 -m conntrack - -ctstate NOU -j ACCEPT -A IEȘIRE -o lo -j ACCEPT -A IEȘIRE -p icmp -j ACCEPT -A IEȘIRE -p udp -m udp --sport 32768:61000 -j ACCEPT -A IEȘIRE -p tcp - m tcp --sport 32768:61000 -j ACCEPT -A IEȘIRE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # permite accesul serverului NTP pentru a face cereri de ieșire -A OUTPUT -p udp -m udp --sport 123 -- dport 123 -m conntrack --ctstate NEW -j ACCEPT COMMIT

Acesta este un exemplu tipic! Pentru a seta regulile iptables pentru a se potrivi sarcinilor și configurației rețelei, trebuie să înțelegeți cum funcționează netfilter în Linux citind articolele de mai sus.

Configurarea mașinilor client

Pentru a sincroniza ora pe mașinile UNIX rețeaua locală, este recomandabil să utilizați utilitarul ntpdate, rulându-l de mai multe ori pe zi, de exemplu, în fiecare oră. Pentru a face acest lucru, trebuie să adăugați următoarea linie:

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

Comutatorul -s direcționează ieșirea comenzii. Dacă mașinile client au câțiva megaocteți suplimentari de RAM, atunci puteți rula demonul ntpd, la fel ca pe server cu următoarea configurație:

Server restricționează implicit ignoră restricționează noquery notrap restrict 127.0.0.1 nomodify notrap

Cred că totul este clar în această configurație: sursa de timp (serverul) este un server ntpd local, interziceți accesul tuturor, permiteți doar serverul ntpd local.

De asemenea, pe clienți este necesar să specificați corect în ce format să stocați ora și să selectați fusul orar corect.

Pentru a configura clientul Windows NTP, trebuie să rulați următoarele comenzi în consolă:

C:\>net time /setsntp: Comanda a fost finalizată cu succes. C:\>net stop w32time Serviciul Windows Time se oprește. Serviciul Windows Time a fost oprit cu succes. C:\>net start w32time Serviciul Windows Time pornește. Serviciul Windows Time a fost pornit cu succes. C:\>net time /querysntp Valoarea curentă SNTP este: Comanda a fost finalizată cu succes.

Concluzie

Ei bine, asta este! Volumul articolului s-a dovedit a fi enorm... nici nu mă așteptam. Permiteți-mi să rezum cele de mai sus. În acest articol, sper că ne-a devenit clar ce este și cum funcționează un server NTP. Am învățat cum să configuram un server și clienți pe mașinile UNIX și Windows. În câteva cuvinte, structura sincronizării orei într-o rețea locală este următoarea: Există 1,2 sau mai multe servere de timp în rețeaua locală, acestea își sincronizează timpul cu surse externe V retea globala. Setările serverului și clientului se bazează pe fișierele /etc/ntp.conf (fișierul principal de configurare al demonului ntpd), /etc/localtime (fișierul de fus orar curent), precum și /etc/sysconfig/ntp (pentru RH ) și /etc/default /ntp (pentru Deb) - fișiere cu parametri de lansare a demonului. Pentru un server ntp local, fișierul de configurare specifică servere externe pentru obținerea timpului și permite accesul acestor servere folosind parametrul restrict, precum și pentru computerele din rețea locală, pentru clienți se specifică sursa de timp - servere localeîn rețeaua locală și, de asemenea, interzice accesul tuturor, cu excepția sursei de timp din rețeaua locală. Toate. Vă mulțumim tuturor pentru atenție! Voi fi bucuros să comentez!

  • (arhiva articolelor) descrie cum să conectați GPS-ul la server pentru a vă organiza propriul server de oră exactă la nivel Stratum1.
  • descrie cum se configurează autorizarea pe un server ntp.

Mai întâi, să decidem de ce trebuie să sincronizăm timpul pe echipamente precum comutatoare, routere, firewall-uri și așa mai departe.

Acest lucru se face în primul rând pentru a urmări folosind jurnalele când a avut loc un eveniment sau altul. Și vă puteți imagina ce folos vor avea jurnalele dacă ora nu este sincronizată... așa este - niciunul.

Protocol NTP functioneaza pe baza de protocol UDP, prin 123 port.

Acest protocol are o anumită ierarhie pentru sincronizarea sistemelor, cu alte cuvinte, niveluri.

Nivelul 1 este atribuit unui sistem care este sincronizat cu un ceas de înaltă precizie, cum ar fi GPS.

Un sistem care se va sincroniza de la Nivelul 1 va avea Nivelul 2 și așa mai departe.

Astfel, putem determina cât de precisă este ora stației cu care suntem sincronizați.

În situația noastră, avem o mașină în rețea cu timp precis, o am configurată pe baza FreeBSD, de la această mașină, dispozitivul principal de rețea va lua timp (sincronizează) și, prin urmare, va deveni principalul pentru alții dispozitive de rețea(în ideologie, cisco va fi maestru ntp).

Aș dori să remarc faptul că ora este transmisă prin NTP numai în format UTC (Greenwich), fiecare fus orar este configurat direct pe hardware.

Să ne uităm la un exemplu de configurare NTP simplă.

Mai întâi, să sincronizăm ora pe routerul nostru principal (care va fi distribuit altor dispozitive din rețea). Pentru a face acest lucru, intră în modul de configurare globală:

server ntp 10.0.100.254

unde, 10.0.100.254 în cazul nostru este o mașină FreeBSD care are ora exactă.

Acest lucru este suficient pentru o configurare minimă.

Acum să verificăm dacă am putut să ne conectăm la serverul de timp și să obținem timp de la acesta, pentru a face acest lucru folosim comanda:

ar trebui sa vezi asa ceva:

Asteriscul de lângă ip-ul serverului nostru ntp ne spune că totul este în regulă, conexiunea este cel puțin stabilită.

Acum să vedem dacă ora este sincronizată?

Dacă totul este sincronizat, atunci ar trebui să vedem următoarele:

Ora a fost primită, acum trebuie să setați acolo fusul orar de care aveți nevoie. De asemenea, facem următoarele în modul de configurare globală:

fus orar al ceasului MSK/MSD 3
Acum să verificăm ora:

Totul e minunat.

Să trecem la configurarea routerului nostru în modul master.

Pentru această configurare, trebuie să facem din acest router un master și să indicăm nivelul (în Cisco se numește stratum number), același despre care am vorbit la început, voi indica nivelul cinci.

Acum să încercăm să configuram ntp pe un alt dispozitiv setter, astfel încât să se sincronizeze cu routerul nostru principal; acest lucru se face în același mod în care am configurat sincronizarea cu serverul FreeBSD de mai sus.

serverul ntp 10.0.100.1 prefer

unde 10.0.100.1 este routerul nostru principal.

prefera acesta este un cuvânt cheie care indică faptul că acest server ntp este o prioritate (adică puteți specifica că puteți sincroniza nu de la un server, ci de la mai multe, acest lucru se face astfel încât dacă unul nu este disponibil sau ora este prea diferită de altele, care indică care - probleme, dispozitivul poate comuta la un alt server de timp și preferă face acest server mai preferat decât altele.)

Indicăm și fusul orar de care avem nevoie.

fus orar al ceasului MSK/MSD 3

Verificăm:

Totul este grozav, totul funcționează.

Acum să ne uităm la problema securității.

Pentru început, să ne uităm la problema restricționării utilizării ACL-urilor, cine se poate sincroniza și cine nu.

Totul este destul de standard și transparent.

Pe serverul de timp creăm ACL-ul corespunzător:

lista de acces 20 remarcă ACCES la NTP Syncaccess-list 20 permis 10.0.100.3

Acum să legăm această listă de acces la ntp.

ntp access-group serve-only 20

Dacă totul este configurat corect, atunci comunicarea cu serverul ntp va fi stabilită și sincronizarea va avea succes.

De asemenea, puteți înregistra o listă de acces la clienți. Ce servere de timp pot fi accesate. Acest lucru se face într-un mod similar:

lista de acces 20 observație ACCESS SYNC to NTP Servaccess-list 20 permis 10.0.100.1

Conectați lista de acces la NTP

ntp acces-grup peer 20

Acum să ne uităm la securitatea bazată pe autentificare.

Totul este, de asemenea, destul de transparent.

Este suficient să adăugați următoarele la configurația ntp:

cheie de autentificare ntp 1 md5 15060E1F10243F34 7autentificare ntpcheie de încredere ntp 1
Cu prima comandă setăm cheia de autentificare, cu a doua activăm autentificarea, iar cu a treia indicăm că autentificarea trebuie efectuată folosind prima cheie.Configuram aceasta pe fiecare parte (server - client).Asta este de fapt tot. Rezultatul este un scurt curs introductiv despre configurarea NTP pe dispozitivele Cisco. Pentru depanare folosim:
ASW-M#debug ntp ?ajustați ajustările ceasului NTPautentificare Autentificare NTPevenimente evenimente NTPloopfilter Filtru buclă NTPpachete pachete NTPparametri parametrii ceasului NTPrefclock ceas de referință NTPselectați selecția ceasului NTPsincronizare Sincronizarea ceasului NTPvaliditate NTP peer clock validitateASW-M#debug ntp
Pornim tot ce ne interesează, de exemplu evenimente, sincronizare, autentificare și vedem ce se întâmplă. Dacă ne conectăm la dispozitiv prin ssh/telnet, nu uitați de ter mon :)


Top