Name

ntpd – Network Time Protocol (NTP) daemon

Synopsis

ntpd ]

leírás

Az ntpd program egy operációs rendszer démon, amely az internetes szabványos időszerverekkel szinkronban állítja be és tartja a rendszer napszakát. Az ntpd a Network Time Protocol (NTP) 4. verziójának teljes implementációja, de kompatibilis az RFC-1305 által meghatározott 3. verzióval, valamint az RFC-1059 és RFC-1119 által meghatározott 1. és 2. verzióval is. Az ntpd a legtöbb számítást 64 bites lebegőpontos aritmetikával végzi, és csak akkor végez viszonylag nehézkes64 bites fixpontos műveleteket, ha szükséges a végső pontosság, körülbelül 232 pikoszekundum megőrzése érdekében. Bár ez a végső pontosság a mai szokásos munkaállomásokon és hálózatokon nem érhető el, a jövőbeli gigahertzes CPU órajelek és gigabites LAN-ok esetén szükség lehet rá.

How NTP Operates

Az ntpd program úgy működik, hogy üzeneteket cserél egy vagy több konfigurált szerverrel a kijelölt lekérdezési időközönként. Az első vagy későbbi indításkor a programnak több üzenetváltásra van szüksége e szerverek többségétől, hogy a jelfeldolgozó és -csökkentő algoritmusok összegyűjthessék és feldolgozhassák az adatokat, és beállíthassák az órát. Annak érdekében, hogy a hálózatot megvédjék a kitörésektől, az egyes szerverek kezdeti lekérdezési időközét néhány másodperces véletlenszerű időközzel késleltetik. Az alapértelmezett 64 másodperces kezdeti lekérdezési időköz mellett több perc is eltelhet az óra beállítása előtt. Az óra beállításának kezdeti késleltetése csökkenthető az iburst kulcsszó használatával a szerverkonfigurációs parancsban, a Konfigurációs beállítások oldalon leírtak szerint.

A legtöbb operációs rendszer és hardver manapság tartalmaz egy TOY (Time of Year) chipet, amely fenntartja az időt a kikapcsolt áramellátás idején. A gép indításakor a chip az operációs rendszer idejének inicializálására szolgál. Miután a gép szinkronizálódott egy NTP-kiszolgálóval, az operációs rendszer időről időre korrigálja a chipet. Ha nincs TOY chip, vagy annak ideje valamilyen oknál fogva több mint 1000-rel tér el a szerver idejétől, az ntpd azt feltételezi, hogy valami nagyon rossz, és az egyetlen megbízható lépés az, hogy a kezelő beavatkozik, és kézzel állítja az órát. Ennek hatására az ntpd pániküzenetet küld a rendszer naplójába. A -g opció felülbírálja ezt az ellenőrzést, és az óra a chip idejétől függetlenül a szerveridőre lesz állítva. Azonban, és a meghibásodott hardverek elleni védelem érdekében, például amikor a CMOS elem meghibásodik vagy az óraszámláló meghibásodik, az óra beállítása után egy 1000s-nél nagyobb hiba mindenképpen az ntpd kilépését okozza.

Hétköznapi körülmények között az ntpd kis lépésekben állítja be az órát, hogy az időskála ténylegesen folyamatos és megszakítások nélküli legyen. Szélsőséges hálózati torlódások esetén a körutazási késleltetés jittere meghaladhatja a három másodpercet, és a szinkronizációs távolság, amely egyenlő a körutazási késleltetés és a hibaköltségvetés felével, nagyon nagy lehet. Az ntpd algoritmusok elvetik a 128 ms-nál nagyobb mintaeltolódásokat, kivéve, ha az az intervallum, amely alatt egyetlen mintaeltolás sem kisebb 128 ms-nál, meghaladja a 900 másodpercet. Az ezt követő első minta, függetlenül az eltolás mértékétől, az órát a megadott időpontra állítja. Gyakorlatilag ez rendkívül alacsonyra csökkenti a téves riasztások arányát, amikor az óra hibásan lépked.

Az ilyen viselkedés eredményeként, ha az óra egyszer be van állítva, nagyon ritkán téved 128 ms-nál nagyobb mértékben, még a hálózati útvonal túlterheltsége és a jitter szélsőséges eseteiben is. Néha, különösen az ntpd első indításakor, a hiba meghaladhatja a 128 ms-ot. Ez esetenként az óra visszafelé állítását okozhatja, ha a helyi óraidő a kiszolgálóhoz képest több mint 128 másodperccel a jövőben van. Egyes alkalmazásokban ez a viselkedés elfogadhatatlan lehet. Ha a parancssorban szerepel a -x opció, akkor az óra soha nem lépcsőzik, és csak a slew korrekciókat használja.

A kérdéseket alaposan meg kell vizsgálni, mielőtt a -x opció használata mellett döntünk. Az NTP protokoll és algoritmus tervezésének alapjául szolgáló korrektségi elvek következményeként a maximálisan lehetséges slew rate 500 parts-per-million(PPM) értékre van korlátozva. Ennek eredményeképpen a helyi óra hosszú időbe telhet, amíg konvergál az elfogadható eltolódáshoz, körülbelül 2000 s minden egyes másodperc után, amikor az óra az elfogadható tartományon kívül esik. Ez alatt az időintervallum alatt a helyi óra nem lesz összhangban semmilyen más hálózati órával, és a rendszer nem használható olyan elosztott alkalmazásokhoz, amelyek helyesen szinkronizált hálózati időt igényelnek.

A fenti óvintézkedések ellenére néha, amikor nagy frekvenciahibák vannak jelen, a keletkező időeltolódások a 128 ms-os tartományon kívülre kerülnek, és szükségessé válik a lépés- vagy átállási idő korrekciója. Ha egy ilyen korrekciót követően a frekvenciahiba olyan nagy, hogy az első minta az elfogadható tartományon kívül esik, az ntpd ugyanabba az állapotba kerül, mint amikor az ntp.drift fájl nincs jelen. Ennek a viselkedésnek az a célja, hogy gyorsan korrigálja a frekvenciát és visszaállítsa a normál követési üzemmódot. A legszélsőségesebb esetekben (a time.ien.it jut eszembe) alkalmanként előfordulhat lépés/csúszáskorrekció és ezt követő frekvenciakorrekció. Ezekben az esetekben segít a burst kulcsszó használata a szerver konfigurálásakor.

Frekvencia fegyelem

Az ntpd viselkedése indításkor attól függ, hogy létezik-e a frekvencia fájl, általában az ntp.drift. Ez a fájl tartalmazza az órafrekvenciahiba legfrissebb becslését. Ha az ntpd elindul, és a fájl nem létezik, az ntpd egy speciális üzemmódba lép, amelynek célja, hogy gyorsan alkalmazkodjon az adott rendszer óraoszcillátorának idő- és frekvenciahibájához. Ez körülbelül 15 percet vesz igénybe, amely után az idő és a frekvencia a névleges értékekre kerül beállításra, és azentpd normál üzemmódba lép, ahol az időt és a frekvenciát folyamatosan követi a szerverhez képest. Egy óra elteltével a frekvenciafájl létrejön, és az aktuális frekvenciaeltolódás kiíródik rá. Amikor az ntpd elindul, és a fájl létezik, az ntpd frekvenciája a fájlból inicializálódik, és azonnal normál üzemmódba lép. Ezt követően az aktuális frekvenciaeltolás óránként íródik a fájlba.

Működési módok

Az ntpd többféle üzemmódban is működhet, beleértve a szimmetrikus aktív/passzív, a kliens/szerver broadcast/multicast és a manycast üzemmódokat, ahogyan azt azAssociation Management oldal leírja. Általában folyamatosan működik, miközben figyeli a frekvencia kis változásait, és az órát a végső pontosság érdekében trimmeli. Működhet azonban egyszeri üzemmódban is, amikor az időt egy külső szerverről, a frekvenciát pedig egy korábban rögzített frekvenciafájlból állítják be. A broadcast/multicast vagy manycast kliens képes távoli kiszolgálókat felfedezni, kiszámítani a kiszolgáló-kliens terjedési késleltetési korrekciós tényezőket és automatikusan konfigurálni magát. Ez lehetővé teszi a munkaállomások flottájának telepítését a helyi környezetre jellemző konfigurációs részletek megadása nélkül.

Az ntpd alapértelmezés szerint folyamatos üzemmódban fut, ahol az esetlegesen több külső szerver mindegyikét egy bonyolult statemachine által meghatározott időközönként lekérdezi. Az állapotgép méri a véletlenszerű roundtrip delay jittert és az oszcillátor frekvencia vándorlását, és egy heurisztikus algoritmus segítségével határozza meg a legjobb lekérdezési intervallumot. Általában – és a legtöbb működési környezetben – az állapotgép 64 másodperces intervallummal kezd, és végül lépésekben 1024 másodpercig növeli azt.Egy kis véletlenszerű variáció bevezetésére azért kerül sor, hogy elkerülhető legyen a szervereknél a csomósodás. Ezenkívül, ha egy szerver egy időre elérhetetlenné válik, a lekérdezési intervallumot 1024s lépésekben növeljük a hálózati terhek csökkentése érdekében.

Egyes esetekben nem biztos, hogy az ntpd folyamatos futása praktikus. Gyakori megoldás az ntpdate program futtatása egy cronjobból, meghatározott időpontokban. Ez a program azonban nem rendelkezik az ntpd kézműves jelfeldolgozási, hibaellenőrzési és -csökkentési algoritmusaival A-q opció erre a célra szolgál. Ennek az opciónak a beállítása azt eredményezi, hogy az ntpd kilép közvetlenül az óra első beállítása után akonfigurált szerverekkel. Az óra első beállításának eljárása ugyanaz, mint a folyamatos üzemmódban; a legtöbb alkalmazás valószínűleg aiburst kulcsszót kívánja megadni a szerverkonfigurációs paranccsal. Ezzel a kulcsszóval egy sor üzenetváltás történik az adatok előkészítésére, és az óra beállítása körülbelül 10 másodperc alatt történik meg. Ha néhány perc múlva semmi sem történik, a démon leáll és kilép. Egy megfelelő gyászidőszak után az ntpdate program visszavonható.

Ha a kernel támogatja az órajel frekvencia fegyelmezését, ami a Solaris, a Tru64, a Linux és a FreeBSD esetében a stock Solaris, a Tru64 és a FreeBSD esetében elérhető egy hasznos funkció az órajel frekvencia fegyelmezésére. Először az ntpd-t folyamatos üzemmódban futtatja a kiválasztott kiszolgálókkal, hogy megmérje és a frekvenciafájlban rögzítse a belső órafrekvencia-eltolódást. Eltarthat néhány óráig, amíg a frekvencia és az eltolás rendeződik. Ezután az ntpd-t leállítjuk, és szükség szerint egyidejű üzemmódban futtatjuk. Minden indításkor a frekvencia beolvasásra kerül a fájlból, és inicializálja a kernel frekvenciáját.

Poll Intervall Control

Az NTP ezen változata egy bonyolult állapotgépet tartalmaz a hálózati terhelés csökkentése érdekében, miközben a szinkronizáció minősége összhangban van a megfigyelt jitterrel és bolyongással. Számos lehetőség van a működés testreszabására annak érdekében, hogy az intervallum csökkentésével növeljük a pontosságot, vagy az intervallum növelésével csökkentsük a hálózati terhelést. A felhasználónak azonban tanácsos alaposan megfontolni a poll beállítási tartomány megváltoztatásának következményeit az alapértelmezett minimális 64 s-tól az alapértelmezett maximális 1,024 s-ig. Az alapértelmezett minimumot a tinker minpoll paranccsal lehet megváltoztatni egy 16 s-nál nem kisebb értékre. Vegye figyelembe, hogy a legtöbb eszközillesztőprogram nem fog megfelelően működni, ha a lekérdezési időköz kisebb, mint 64 s, és hogy a broadcast szerver és a manycast kliens társítások is ezt az alapértelmezett értéket használják, hacsak nem írják felül.

Egyes esetekben, amikor betárcsázó vagy fizetős szolgáltatásokról van szó, hasznos lehet a minimális intervallumot néhány tíz percre, a maximális intervallumot pedig egy napra vagy annál nagyobbra növelni. Normál üzemi körülmények között, amint az órafegyelmi hurok stabilizálódott, az intervallum a minimumtól a maximumig lépcsőzetesen növekszik. Ez azonban feltételezi, hogy a belső órafrekvencia-hiba elég kicsi ahhoz, hogy a fegyelmi hurok korrigálja azt. A hurok rögzítési tartománya 500 PPM egy 64 s-os intervallumon, amely az intervallum minden egyes megduplázásával kétszeresére csökken. Az 1,024 s-os minimumnál például a rögzítési tartomány csak 31 PPM. Ha a saját hiba ennél nagyobb, akkor az ntp.drift drift fájlt speciálisan úgy kell alakítani, hogy a maradék hibát ez alá a határ alá csökkentse.Ha ez megtörtént, akkor a drift fájl óránként egyszer automatikusan frissül, és a következő démon újraindításakor a frekvencia inicializálásához áll rendelkezésre.

a Huff-n’-puff szűrő

Ahol jelentős mennyiségű adatot kell telefonmodemen keresztül letölteni vagy feltölteni, ott az időmérés minősége komolyan romolhat. Ez azért következik be, mert a két átviteli irányban a differenciális késleltetések igen nagyok lehetnek. Sok esetben a látszólagos időhibák olyan nagyok, hogy meghaladják a lépésküszöböt, és az adatátvitel közben és után lépcsőzetes korrekció léphet fel.

A huff-n’-puff szűrőt úgy tervezték, hogy ilyen esetekben korrigálja a látszólagos időeltolódást. Ez a szaporodási késleltetés ismeretétől függ, amikor nincs jelen más forgalom. Gyakori forgatókönyvekben ez nem munkaidőben fordul elő. A szűrő egy eltolási regisztert tart fenn, amely megjegyzi a legutóbbi, általában órákban mért intervallumban mért minimális késleltetést. Súlyos késés esetén a szűrő korrigálja a látszólagos eltolódást az eltolódás előjelének és a látszólagos késés és a minimális késés közötti különbségnek a segítségével. A szűrő neve tükrözi a negatív (huff) és pozitív (puff) korrekciót, amely az eltolás előjelétől függ.

A szűrőt a tinker parancs és a huffpuff kulcsszó aktiválja, ahogyan az a Miscellaneous Options oldalon le van írva.

Notes

Ha a NetInfo támogatás be van építve az ntpd-be, akkor az ntpd megpróbálja a NetInfo-ból olvasni a konfigurációját, ha az alapértelmezett ntp.conf fájlt nem lehet beolvasni, és a -c kapcsoló nem ad meg fájlt.

Ahol állomásnevet várnak, az állomásnevet megelőző -4 minősítő az IPv4 névtér DNS-feloldását kényszeríti ki, míg a -6 minősítő az IPv6 névtér DNS-feloldását kényszeríti ki.

A ntpd különböző belső változói az ntpd futása közben az ntpq és az ntpdc segédprogramok segítségével megjeleníthetők és a konfigurációs beállítások módosíthatók.

Az ntpd indításakor megnézi az umask értékét, és ha nulla, akkor az ntpd az umask-ot 022-re állítja be

Az ntpd az aktuális munkakönyvtárat a gyökérkönyvtárra változtatja, így az elérési utakat megadó opcióknak vagy parancsoknak abszolút vagy a gyökérhez viszonyított elérési utat kell használniuk.

Parancssorbeállítások

-4 Az állomásnevek DNS-felbontásának kikényszerítése az IPv4 névtérben. -6 Az állomásnevek DNS-felbontásának kikényszerítése az IPv6 névtérben. -a Kriptográfiai hitelesítés megkövetelése a broadcast-ügyfél, a multicast-ügyfél és a szimmetrikus passzív társításokhoz. Ez az alapértelmezett beállítás. -A Nem igényel kriptográfiai hitelesítést a broadcast-ügyfél, a multicast-ügyfél és a szimmetrikus passzív társításokhoz. Ez szinte soha nem jó ötlet. -b Engedélyezze az ügyfél számára a broadcast-kiszolgálókkal való szinkronizálást. -c conffile A konfigurációs fájl nevének és elérési útvonalának megadása, alapértelmezett /etc/ntp.conf -d Hibakeresési mód megadása. Ez az opció többször is előfordulhat, és minden egyes előfordulása a megjelenítés nagyobb részletességét jelzi. -D level A hibakeresési szint közvetlen megadása. -f driftfile A gyakorisági fájl nevének és elérési útjának megadása. Ez ugyanaz a művelet, mint a driftfile driftfile konfigurációs parancs. -g Normális esetben az ntpd a rendszernaplóba küldött üzenettel lép ki, ha az eltolódás meghaladja a pánikküszöböt, ami alapértelmezés szerint 1000 s. Ez az opció lehetővé teszi, hogy aetime korlátlanul bármilyen értékre állítható legyen; ez azonban csak egyszer történhet meg. Ha a küszöbérték ezután is túllépésre kerül, az ntpd a rendszernaplóba küldött üzenettel lép ki. Ez az opció a -q és -x opcióval együtt használható. A többi opciót lásd a tinker parancsban. -i jaildir Chroot a kiszolgálót a jaildir könyvtárba Ez az opció azt is jelenti, hogy a kiszolgáló megpróbálja elhagyni a root jogosultságokat indításkor (egyébként a chroot nagyon kevés további biztonságot nyújt), és csak akkor érhető el, ha az operációs rendszer támogatja a kiszolgáló teljes root jogosultságok nélküli futtatását. Szükség lehet a -u opció megadására is. -I iface Listen on interface. Ez az opció korlátlan számúszor szerepelhet. -k keyfile Megadja a szimmetrikus kulcsfájl nevét és elérési útját. Ez ugyanaz a művelet, mint a keys keyfile konfigurációs parancs. -l logfile A naplófájl nevének és elérési útvonalának megadása. Az alapértelmezett a rendszer naplófájlja. Ez ugyanaz a művelet, mint a logfile logfileconfiguration parancs. -L Ne hallgassa a virtuális IP-ket. Az alapértelmezett a figyelés. -m Zárolja a memóriát. -n Ne forkolja a memóriát. -N Az operációs rendszer által megengedett mértékben futtassa az ntpd-t a legmagasabb prioritással. -p pidfile Megadja az ntpd folyamat azonosítójának rögzítésére használt fájl nevét és elérési útját. Ez ugyanaz a művelet, mint a pidfile pidfileconfiguration parancs. -P priority Az operációs rendszer által megengedett mértékben futtassa az ntpd-t a megadott prioritással. -q Az ntpd kilépése közvetlenül az első óraállítás után. Ez a viselkedés utánozza a visszavonandó ntpdate program viselkedését. A-g és -x opciók ezzel az opcióval együtt használhatók. Megjegyzés: A kernel időfegyelem ezzel az opcióval kikapcsolható. -r broadcastdelay Megadja az alapértelmezett terjedési késleltetést a broadcast/multicast kiszolgálótól az ügyfélhez. Erre csak akkor van szükség, ha a késleltetést a protokoll nem tudja automatikusan kiszámítani. -s statsdir Megadja a statisztikai eszköz által létrehozott fájlok könyvtárának elérési útvonalát. Ez ugyanaz a művelet, mint a statsdir statsdir konfigurációs parancs. -t key Kulcsszám hozzáadása a megbízható kulcsok listájához. Ez az opció többször is előfordulhat. -u user Megad egy felhasználót és opcionálisan egy csoportot, amelyre váltani kíván. Ez az opció csak akkor érhető el, ha az operációs rendszer támogatja a kiszolgáló teljes root jogosultságok nélküli futtatását. jelenleg ez az opció a NetBSD (configure with –enable-clockctl) és a Linux (configure with –enable-linuxcaps) alatt támogatott. -U interface update interval (interfész frissítési intervallum) Az új és törölt hálózati interfészeket felvevő interfészlista beolvasása közötti várakozási másodpercek száma. A dinamikus interfészlista-frissítés kikapcsolásához állítsa 0-ra.Az alapértelmezett érték az 5 percenkénti szkennelés. -v variable-V változó Az alapértelmezetten felsorolt rendszerváltozók hozzáadása. -x Normális esetben az idő eltolódik, ha az eltolás kisebb, mint a lépésküszöb, ami alapértelmezés szerint 128 ms, és lépcsőzetes, ha a küszöb felett van. Ez az opció a küszöbértéket 600 s-ra állítja, ami bőven a pontossági ablakon belül van az óra kézi beállításához. Megjegyzés: Mivel a tipikus Unix kernelek slew rate-je 0,5 ms/s-ra van korlátozva, minden másodperc beállítása 2000 s amortizációs intervallumot igényel. 600 s-os beállítás tehát majdnem 14 napot vesz igénybe.Ez az opció a -g és -q opcióval együtt használható. A többi opciót lásd a tinker parancsban. Megjegyzés: A kernel időfegyelem ezzel az opcióval kikapcsolható.

a konfigurációs fájl

Az ntpd rendszerint indításkor beolvassa az ntp.conf konfigurációs fájlt, hogy meghatározza a szinkronizációs forrásokat és a működési módokat.Lehetőség van arra is, hogy egy működő, bár korlátozott konfigurációt teljes egészében a parancssoron adjunk meg, így nincs szükség konfigurációs fájlra. Ez különösen akkor lehet hasznos, ha a helyi gépet broadcast/multicast kliensként kell konfigurálni, és az összes partner az indításkor az adások figyelésével kerül meghatározásra.

A konfigurációs fájl általában a /etc könyvtárba települ, de máshova is telepíthető (lásd a -c conffile parancssoropciót). A fájl formátuma hasonló a többi Unix konfigurációs fájlhoz – a megjegyzések # karakterrel kezdődnek és a sor végéig tartanak; az üres sorokat figyelmen kívül hagyják.

A konfigurációs parancsok egy kezdeti kulcsszóból állnak, amelyet egy lista követ az argumentumokból, amelyek közül néhány opcionális lehet, szóközzel elválasztva. A parancsok nem folytatódhatnak több soron keresztül. Az argumentumok lehetnek állomásnevek, numerikusan, pontozott négyzet alakban írt állomáscímek, egész számok, lebegőpontos számok (ha másodpercben megadott időt adunk meg) és szöveges karakterláncok. A választható argumentumokat a következő leírásokban a | jelölés választja el, míg az alternatívákat a | jelölés a

Kilépési kódok

A nem nulla kilépési kód hibát jelez. Minden hibaüzenet alapértelmezés szerint a rendszer naplójába kerül.

A kilépési kód csak akkor 0, ha az ntpd-t egy jelzéssel fejezi be, vagy ha a -q opciót használjuk, és az ntpd sikeresen beállítja a rendszerórát.

See Also

ntp.conf(5), ntpq(8), ntpdc(8)

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.