ntpd ( Network Time Protocol daemon) este un daemon care setează și menține ora sistemului și este folosit pentru a sincroniza serverele de timp precise.
Programul ntpd este un demon al sistemului de operare care setează și menține ora sistemului în sincronizare cu serverele de timp. Este o implementare completă a NTP versiunea 4, dar menține și compatibilitatea cu versiunea 3 așa cum este definită în RFC-1305 [1] și versiunile 1 și 2 așa cum sunt definite în RFC-1059 [2] și, respectiv, RFC-1119 [3] . ntpd efectuează cele mai multe calcule utilizând aritmetică în virgulă mobilă pe 64 de biți și funcționează relativ bine în operațiunile în virgulă fixă pe 64 de biți numai atunci când este nevoie de o precizie ridicată de aproximativ 232 de picosecunde. În timp ce o astfel de precizie ridicată este imposibil de atins pe computerele și rețelele convenționale astăzi, poate fi necesară pentru viitoarele procesoare gigahertz și rețele gigabit.
xntpd este un daemon NTP versiunea 3. „x” a fost adăugat la nume, deoarece ramura de cod care va deveni în cele din urmă NTPDv3 era „experimentală”. Numele demonului a fost schimbat cu „ntpd” inițial prin cea de-a patra versiune, deoarece creatorul NTP David Mills a decis că probabil că nu era posibil ca ceva să fie „experimental” timp de douăzeci de ani fără a suferi modificări semnificative în acel timp.
ntpd are două opțiuni pentru stocarea fișierelor de configurare:
Un alt fișier important este fișierul drift , care este folosit de ntpd pentru a corecta ceasul hardware atunci când nu este conectat la un server de timp mai precis și se află de obicei în /var/db/ntp.drift.
Ora exactă poate fi obținută folosind echipamente speciale bazate pe ceasuri atomice . Există și o metodă bazată pe GPS (Global Positioning System, global positioning system). Ambele metode necesită hardware specializat și costisitor, dar proprietarii lor (de obicei universități și laboratoare de cercetare) conectează acest hardware la computere care rulează demonul NTP. Adesea, aceleași mașini sunt conectate la Internet, ceea ce în cele din urmă oferă oamenilor posibilitatea de a afla ora exactă gratuit.
ntpd comunică cu unul sau mai multe servere configurate la intervale regulate. La pornire, pentru prima dată sau pentru următoarele, programul trebuie să facă schimb de mesaje cu majoritatea acestor servere de mai multe ori, astfel încât algoritmii de procesare și optimizare a semnalului să poată colecta și pregăti date și să stabilească ora. În mod implicit, intervalul este de 64 de secunde, deci poate dura câteva minute pentru a seta ora. Întârzierea inițială în setarea ceasului poate fi redusă utilizând cuvântul cheie iburst cu comanda de configurare a serverului , așa cum este descris în pagina Opțiuni de configurare [4] .
Majoritatea sistemelor de operare și hardware-ului de astăzi folosesc un cip TOY (timpul anului) încorporat pentru a păstra timpul când alimentarea este oprită. Când aparatul este pornit, cipul este folosit pentru a inițializa ceasul sistemului de operare. După ce aparatul și-a sincronizat ceasul cu serverul NTP, sistemul de operare reglează din când în când ceasul cipului. În cazul în care lipsește cipul TOY sau, din anumite motive, timpul de pe acesta diferă de ora serverului cu mai mult de 1000 de secunde, ntpd consideră că ceva a mers prost, iar singura acțiune corectă într-o astfel de situație este intervenția operatorului și setând ceasul cu mâna. În acest caz, ntpd iese cu un mesaj de eroare în jurnalul de sistem. Opțiunea -g vă permite să ignorați această verificare și să setați ora serverului, indiferent de ora de pe cip.
Odată configurat, NTP va menține acuratețea timpului făcând ajustări foarte mici la ceas, atât de mici încât nu vor afecta în niciun fel aplicațiile care rulează.
În mod implicit, ntpd rulează în modul continuu, în care fiecare dintre mai multe servere externe este interogat la intervale determinate de un algoritm euristic complex care ia în considerare fluctuația de latență și eroarea de frecvență. De obicei, pe majoritatea sistemelor de operare, intervalul inițial este de 64 de secunde și crește în trepte până la 1024 de secunde.
În unele cazuri, este posibil să nu fie practic să utilizați ntpd în modul continuu. O soluție tipică este să rulați ntpdate din cron la ora programată. Cu toate acestea, ntpdate nu are încorporați algoritmi de verificare și optimizare a erorilor. Opțiunea -q este pentru acest caz . Începând cu el, ntpd va seta ora o singură dată și va ieși după aceea.
-patru
Utilizați spațiul de adrese IPv4
-6
Utilizați spațiul de adrese IPv6
-A
Solicitați autentificare criptografică. Folosit implicit.
-A
Nu necesită autentificare criptografică. Nu se recomandă.
-b
Permite clientului să se sincronizeze cu serverele de difuzare.
-c conffile
Specifică numele și calea către fișierul de configurare, implicit /etc/ntp.conf
-d
Specifică modul de depanare.
-D nivel
Specifică direct nivelul modului de depanare.
-f driftfile
Specifică numele și calea către fișierul de frecvență.
-g
Elimină restricția privind diferența dintre ora serverului și ora locală.
-l fișier jurnal
Specifică numele și calea fișierului jurnal.
-q
Copiază acțiunea programului ntpdate - efectuează sincronizarea ceasului o dată.
Programul ntpd a apărut pentru prima dată în OpenBSD 3.6