FreeBSd server de timp bazat pe ntpd

Internetul are o mulțime de informații despre sincronizarea timpului pe computerele cu Linux / Unix, cu toate acestea, majoritatea articolelor oferă recomandări puțin depășite și discută pe scurt identificarea și eliminarea posibilelor probleme. În acest articol am încercat să eliminăm deficiențele de mai sus.

Formularea problemei

Datele inițiale

Pentru a rezolva problema în cauză, nu este necesară instalarea de software, pentru a evita neînțelegerile, trebuie remarcat faptul că toate acțiunile descrise au fost efectuate pe servere cu FreeBSD 7.x RELEASE. Dacă utilizați o versiune anterioară a sistemului de operare, este posibil să fie necesar să actualizați codul sursă și să reconstruiți lumea.

Alegerea serverelor publice NTP

Dacă toate serverele NTP afișează valori zero ale parametrilor și mesaje: "nu există server potrivit pentru sincronizare":

Ar trebui să permiteți traficului de intrare UDP din portul de firewall de la 123 de porturi de servere situate pe Internet și din traficul de ieșire UDP la 123 de servere de port aflate pe Internet. De exemplu, în cazul ipfw (8), trebuie să adăugați următoarele reguli:

La momentul redactării articolului, Stratum Two Time Servers avea informații despre opt servere NTP publice situate în Rusia, cu ntp.xland.ru fiind doar "mort". iar restul de șapte sunt utilizate cu succes ca surse ale timpului exact.

Configurarea serverului principal NTP

Implicit, configurația ntpd este stocată în fișierul /etc/ntp.conf. În cazul meu, acest fișier are următorul conținut:

În acest fișier sunt setate următoarele valori ale parametrilor: server. - lista serverelor publice NTP cu care serverul nostru este sincronizat, restrângeți. - restricționează accesul la server (linia 8 - limita implicit - accesul interzis, liniile 9-15 - restricționa accesul prin NTP-servere publice - este interzis să se schimbe starea serverului, să solicite timp și trimite mesaje cu privire la excepții, liniile 16-18 - restricții de acces de la clienți - este interzisă modificarea stării serverului și trimiterea de mesaje despre excepții), logfile este numele fișierului jurnal. O descriere a tuturor opțiunilor care pot fi specificate în fișierul de configurare ntpd este conținută în ntp.conf (5). Pentru a ntpd începe atunci când porniți sistemul de operare și a făcut timp de ajustare inițială (acest lucru nu este o greșeală de scriere, ntpd este acum capabil de a face un timp de ajustare inițială aspră fără ajutorul ntpdate), trebuie să adăugați o linie la fișierul /etc/rc.conf:

În mod implicit, jurnalul ntpd este numit ntp.log și este localizat în dosarul / var / log. Pentru ca newsyslog (8) să o rotească, trebuie să adăugați următoarea linie în /etc/newsyslog.conf:

Această linie oferă PNT trunchia jurnalul atunci când ajunge la dimensiunea de 100 kilobytes și păstrarea celor trei exemplare anterioare ale raportului, bzip2 arhivator comprimat (1) (Puteți modifica aceste setări pe placul dumneavoastră). Aceasta completează configurația serverului intern NTP. Puteți porni serverul cu comanda /etc/rc.d/ntpd start. și apoi solicitați statutul său cu comanda /etc/rc.d/ntpd. Dacă se tipărește mesajul ntpd rulează ca pid. totul este normal, dacă - ntpd nu rulează. Ar trebui să găsiți și să remediați erorile din fișierele de configurare. După aceea, așteptați cel puțin o jumătate de oră și executați comanda ntpdate -q localhost. Dacă urmați cu atenție instrucțiunile, acesta va raporta că serverul NTP are stratul 3 și poate fi utilizat pentru sincronizarea timpului:

Un alt semn al funcționării corecte a serverului NTP poate fi considerat apariția în jurnalele ntpd a aproximativ acestor mesaje:

Diagnosticarea serverului principal NTP

Este mai convenabil să utilizați utilitarul ntpq (8) pentru a diagnostica starea serverului principal NTP. Acesta este destinat pentru a solicita diverse informații de la serverul NTP. ntpq poate funcționa atât în ​​modul interactiv cât și în loturi, având în vedere că toate caracteristicile sale depășesc cu mult domeniul de aplicare al acestui articol. În contextul rezolvării problemei, mai multe comenzi suficiente pentru interogarea stării colegilor - ntpq -p. (alte forme ale acestei comenzi sunt ntpq -c peers, peers în modul interactiv). Ieșirea de informații prin comanda ntpq -p. este mai bine să explicăm prin exemplu:

Sincronizarea timpului pe alte computere cu FreeBSD

Pentru a evita confuzia, observ că "alte computere" în acest caz sunt toate computerele dintr-o rețea corporativă cu FreeBSD, cu excepția serverului principal NTP. Instrumentele FreeBSD vă permit să implementați două opțiuni pentru sincronizarea timpului. Prima este considerată mai sus și după înlocuirea serverelor publice NTP cu serverul principal NTP va fi potrivită pentru orice computer din rețeaua corporativă cu FreeBSD. Modificările se referă la un singur fișier de configurare /etc/ntp.conf. care trebuie să fie aduse în următoarea formă:

Pentru ca comanda exactă de corectare a timpului să fie executată în fiecare oră cu cron (8). trebuie să vă conectați ca root. executați comanda crontab -e. permițând modificarea crontab a utilizatorului curent (adică rădăcină) și adăugarea liniei:

Aceasta completează configurația celei de-a doua opțiuni. I-am spus despre asta numai pentru că există și pot fi folosite, însă nu am avut niciodată un motiv să refuz prima opțiune.

concluzie

Sper că nu am uitat nimic important, iar informațiile vor fi suficiente pentru o configurare corectă și depanare ulterioară NTP-servere pe calculatoarele din rețeaua companiei dvs. cu FreeBSD si alte sisteme de operare de familie Linux / Unix.

<





?php include ($ _SERVER ["DOCUMENT_ROOT"]. "/ vstavki / blokvtext2.php"); ?>
  • Vă mulțumim pentru descrierea procesului de diagnosticare cu ntpq. Dar există unele inexactități. Deci, piața "poate însemna nu numai indisponibilitatea serverului, ci și sincronizarea ciclică sau prea multă distanță.
    "- serverul este eliminat deoarece nu se numără printre primele 10 servere NTP sortate după valoarea distanței de sincronizare și, prin urmare, este puțin probabil ca acesta să fie utilizat pentru sincronizare
    "#" - serverul este un supraviețuitor, dar nu printre primele 6 servere NTP sortate după distanța de sincronizare.

    Deoarece markerii sunt strâns legați de înțelegerea muncii algoritmului NTP, semnificația unora dintre ele nu este evidentă.

    De unde ați luat descrierea acestor markere?

    Descrierea marcatorilor a apărut pe un forum străin, dar la fel de adânc ca tine, nu m-am deranjat. NTPD care este configurat pentru acest articol rulează pe mai multe servere cu FreeBSD și RHEL, și asta e suficient pentru mine.

    În opinia mea, dacă sensul exact este necunoscut, este mai bine să o omiteți. În caz contrar, apar întrebările. La om, despre valorile markerului scrise în detaliu, dar chiar și profesioniștii se pot așeza într-un galos fără cunoașterea detaliilor algoritmului NTP (combinarea algoritmului, algoritmul de grupare)
    Și astfel, pentru lucru destul de suficiente valori ale marcatorului "+", "-", "

    Dacă forțele de viață (care mă îndoiesc foarte mult), voi scrie mai multe 🙂

  • FreeBSD-9.1-p3 implicit kernel, ipfw - deschis

    21 Aug 11:57:30 ntpd [1447]: Ascultarea pe interfață # 7 vârstă, fe80 :: 21d: 60ff: fe6d: 18ea # 123 activată
    21 Aug 11:57:36 ntpd [1453]: numele gazdei nu a fost găsit: ntp.psn.ru
    21 Aug 11:57:36 ntpd [1453]: numele gazdei nu a fost găsit: time2.one4vision.de
    21 Aug 11:57:36 ntpd [1453]: numele gazdei nu a fost găsit: ntp.ucsd.edu
    21 Aug 11:57:36 ntpd [1453]: numele gazdei nu a fost găsit: time.nist.gov

    comanda - este sincronizata ok! dar în mod automat dă că mai mare. cum de a elimina tcp6?
    vă mulțumesc!

    comanda - este sincronizata ok! dar oferă automat acest lucru de mai sus

    Adăugați numele serverelor NTP în / etc / hosts. ntpd rulează înainte de legare, deci are o problemă de rezolvare a numelui.

    cum se elimină tcp6?

    Ștergeți linia. 1 de la / etc / hosts.







  • Articole similare

    Trimiteți-le prietenilor: