Órák szinkronizálása
(→ntpdate: - alap feature-ök) |
(→opentpd) |
||
26. sor: | 26. sor: | ||
===opentpd=== |
===opentpd=== |
||
+ | A fejlesztők úgy vélték, hogy mivel az NTPv3 szabvány olyan nagy pontosságot ír le, ami egy linux gépen elérhetetlen, ezért úgy vélték, hogy könnyítenek a kliensprogramon, mellőzve a túlzott pontosságot. |
||
+ | A program ~3kloc (fő cél a gyorsaság), és 50ms pontosságot garantál, ami egy linux rendszer által biztosított max pontosság. |
||
+ | |||
+ | A programban privilégium szeparációt valósítottak meg, így root jogosultság csak azon résznek kell, ami root jogot igénylő hívásokat végez. |
||
+ | |||
+ | Két processz: |
||
+ | * szülő, rootként fut |
||
+ | * ntp engine, _ntp:_ntp-ként fut, és chroot-ol /var/empty-be |
||
+ | |||
+ | A processzek között egy socket-pár van |
||
+ | üzenetek: |
||
+ | * IMSG_ADJTIME - ntp engine megkéri a szülőt, hogy hívja meg az adjtime() függvényt |
||
+ | * IMSG_SETTIME - ntp engine megkéri a szülőt, hogy hívja meg a settime() függvényt |
||
+ | * IMSG_HOST_DNS - ntpengine megkéri a szülőt, hogy oldja fel a megadott hostnevet (/etc/resolv.conf) |
||
+ | |||
+ | A szülő nem bízik a kliensében, ezért nagyon szigorú az üzenetek formátumát illetően, ha az nem megfelelő, hard-exit, és soha többet nem beszél a klienssel. |
||
+ | |||
===rdate=== |
===rdate=== |
||
===ntpd=== |
===ntpd=== |
A lap 2009. december 1., 05:49-kori változata
Írta: Reegn Zoltán
Tartalomjegyzék |
1 Időszinkronizációs módszerek összehasonlítása
Ez a wiki lap betekintést nyújt az időszinkronizációs módszerek közötti különbségekbe. Első lépésben áttekintjük a népszerűbb időszinkronizációs protokollokat, majd egyenként megnézünk pár időszinkronizációs csomagot, elemezzük előnyeiket/hátrányaikat.
1.1 Időszinkronizációs protokollok
1.1.1 DAYTIME Protocol
1.1.2 TIME Protocol
1.1.3 NTP - Network Time Protocol
RFC 778 RFC 891 RFC 956 RFC 1305
1.1.4 SNTP - Simple Network Time Protocol
RFC 1361 RFC 1769 RFC 2030 RFC 4330
1.2 Időszinkronizációra használt programok
1.2.1 ntpdate
Adott számú mintát vesz minden szervertől, majd egy adott algoritmussal kiszűri a túl nagy eltérésű szerverek eredményét, majd a maradékből becsléssel kiválasztja a legpontosabbat. A programpontossága függ a szerverek számától, a minták számától, és az azok között eltelt időtől. Kézileg, vagy startup scriptből futtatható. Nem állítja folytonosan a host órafrekvenciáját, így az nincs "fegyelmezve".
Amennyiben a host időbeni eltérése a szervertől fél másodpercen belülre esik, akkor az adjtime() függvényhívással a helyes időre "sietteti" vagy "késlelteti" a host óráját. Amennyiben az eltérés fél másodpercnél nagyobb lenne, akkor a settimeofday() függvényhívással a helyes időpontra ugraszja a host óráját.
Amennyiben ntpdaemon fut a hoston, nem állítja az időt.
1.2.2 opentpd
A fejlesztők úgy vélték, hogy mivel az NTPv3 szabvány olyan nagy pontosságot ír le, ami egy linux gépen elérhetetlen, ezért úgy vélték, hogy könnyítenek a kliensprogramon, mellőzve a túlzott pontosságot. A program ~3kloc (fő cél a gyorsaság), és 50ms pontosságot garantál, ami egy linux rendszer által biztosított max pontosság.
A programban privilégium szeparációt valósítottak meg, így root jogosultság csak azon résznek kell, ami root jogot igénylő hívásokat végez.
Két processz:
- szülő, rootként fut
- ntp engine, _ntp:_ntp-ként fut, és chroot-ol /var/empty-be
A processzek között egy socket-pár van üzenetek:
- IMSG_ADJTIME - ntp engine megkéri a szülőt, hogy hívja meg az adjtime() függvényt
- IMSG_SETTIME - ntp engine megkéri a szülőt, hogy hívja meg a settime() függvényt
- IMSG_HOST_DNS - ntpengine megkéri a szülőt, hogy oldja fel a megadott hostnevet (/etc/resolv.conf)
A szülő nem bízik a kliensében, ezért nagyon szigorú az üzenetek formátumát illetően, ha az nem megfelelő, hard-exit, és soha többet nem beszél a klienssel.