Diplomska naloga - NTP protokol - Vzpostavitev NTP streznika by pengxiang

VIEWS: 786 PAGES: 37

									TEHNIŠKI ŠOLSKI CENTER NOVA GORICA

      VIŠJA STROKOVNA ŠOLA




    DIPLOMSKA NALOGA




                             LUKA MANOJLOVIĆ
             TEHNIŠKI ŠOLSKI CENTER NOVA GORICA

                      VIŠJA STROKOVNA ŠOLA




                        DIPLOMSKA NALOGA

        NTP PROTOKOL / VZPOSTAVITEV NTP STREŢNIKA




MENTOR: Simon Abolnar, univ. dipl. inţ. elektrotehnike
PROGRAM: Informatika
MODUL: Raĉunalniške komunikacije in omreţja
ŠTEVILKA INDEKSA: 12190190068
AVTOR: Luka Manojlović




                  NOVA GORICA, SEPTEMBER 2006
POVZETEK

NTP protokol je med uporabniki internetnih storitev precej nepoznan. Dobro pa ga poznajo
vsi vzdrţevalci omreţne opreme, ponudniki internetnih storitev in znanstveniki. Toĉen ĉas je
za obstoj interneta kljuĉnega pomena, saj je v resnici skoraj vsak paket, ki potuje po
medmreţju, ĉasovno opredeljen. V primeru ĉasovnega razhajanja med aktivno omreţno
opremo bi se kaj kmalu znašli v precejšnji zmedi in pospešenem razkroju medmreţja. NTP
protokol se je zaĉel razvijati v zaĉetku osemdesetih let prejšnjega stoletja. Danes smo
veĉinoma prešli na ĉetrto generacijo NTP streţnika, torej NTPv4. NTP streţniki so
hierarhiĉno urejeni, tako imamo v Sloveniji nekaj javno dostopnih, t.i. Stratum-2 streţnikov,
ter nekaj najnatanĉnejših Stratum-1 streţnikov, ki pa niso javno dostopni (dostopni so
ponudnikom internetnih storitev ter veĉjim akademskim organizacijam, ki posredujejo
konĉnim uporabnikom ĉas s pomoĉjo Stratum-2 streţnikov). V drugem delu diplomske
naloge je opisana vzpostavitev javno dostopnega Stratum-1 streţnika, ki deluje v Novi Gorici
od marca 2006.

Ključne besede:

NTP – network time protocol – mreţni ĉasovni protokol
Stratum-1 NTP server – hierarhiĉno najvišji/najnatanĉnejši (zemeljski) NTP streţnik; navadno
sinhroniziran z zunanjo napravo (atomska ura, sateliti, ...)
Stratum-2 NTP server – hierarhiĉno niţji NTP streţnik, njegov vir toĉnega ĉasa je Stratum-1
streţnik; navadno imajo stratum-2 NTP streţnike postavljene ponudniki internetnih storitev,
ki tako zagotavljajo odjemalcem moţnost dostopa do vira toĉnega ĉasa.

ABSTRACT

Internet users are not so common to NTP protocol as it is mostly used and known by system
administrators, network administrators and internet service providers and scientists. Time
accuracy plays a very important role in Internet network infrastructure as every single packet
of data is somehow determined by time. Desynchronization of active network equipment in
the Internet could lead in network decomposition. NTP protocol was developed almost 35
years ago in the beginning of 1980's by Dave L. Mills from the University of Dalaware.
Today almost all NTP servers run NTPv4 protocol which has some major enhancements and
security predispositions. Stratum-1 servers have the highest priority level in the NTP
hierarchy – in Slovenia we have some restricted Stratum-1 servers which are ment to be used
by ISPs and academic and research sector. In the second part of my thesis I will try to explain
the setup of public Stratum-1 server which has been running in Nova Gorica from March
2006.

Keywords:

NTP server – Network time protocol server
Stratum-1 NTP server – the most accurate (terestrial) NTP server – synchronized to atom
clock, satelites or some other source of time.
Stratum-2 NTP server – the second most accurate source of exact time – it is synchonized to
Stratum-1 servers, commonly used by ISPs to deliver exact time to end users.
ZAHVALA

Zahvaljujem se profesorju Simonu Abolnarju za predstavitev NTP protokola in drugih
mreţnih protokolov ter za navdih pri seminarski in diplomski nalogi. Zasluge za izvedbo
projekta vzpostavitve NTP streţnika imajo g. Mark Martinec z Instituta Joţef Stefan, kolega
Nejc Škoberne, študent raĉunalništva in informatike na univerzi v Ljubljani, ter kolega Timo
Lindfors, študent raĉunalništva na Finskem.
Nenazadnje gre zahvala tudi Marku Rusjanu, vodji Kulturnega ter Multimedijskega centra
Mostovna, za podporo ter odobritev realizacije projekta.
Hvala staršema.

                                                                           Luka Manojlović
KAZALO

1.       UVOD ........................................................................................................................................................... 7
2.       TEORETIČNA IZHODIŠČA..................................................................................................................... 8
     1.1.     PREGLED NTP PROTOKOLA .................................................................................................................. 8
        1.1.1. Uvod ................................................................................................................................................ 8
        1.1.2. Zahteve po natančnem času ............................................................................................................ 8
        1.1.3. Različice ter opis programskega paketa NTP ................................................................................. 8
        1.1.4. Podprti operacijski sistemi .............................................................................................................. 9
        1.1.5. Hierarhija NTP strežnikov .............................................................................................................. 9
        1.1.6. Integrirana redundanca ................................................................................................................ 11
        1.1.7. Monitoring delovanja .................................................................................................................... 11
     1.2.     TEHNIĈNI VIDIK DELOVANJA NTP PROTOKOLA .................................................................................. 14
        1.2.1. Uvod .............................................................................................................................................. 14
        1.2.2. Protokol ......................................................................................................................................... 14
        1.2.3. Varnostni vidik .............................................................................................................................. 14
        1.2.4. Računalniški čas ............................................................................................................................ 14
     1.3.     NTP – NAPAĈNA UPORABA IN ZLORABA PROTOKOLA ......................................................................... 15
        1.3.1. Splošne težave NTP odjemalcev .................................................................................................... 16

3.       VZPOSTAVITEV NTP STREŢNIKA .................................................................................................... 18
     1.1.     NTP STREŢNIK – OSNOVNI DELI SISTEMA ........................................................................................... 18
        1.1.1. Strojna oprema NTP strežnika ...................................................................................................... 18
        1.1.2. Programska oprema NTP strežnika .............................................................................................. 18
        1.1.3. Zunanji vir točnega časa ............................................................................................................... 18
     1.2.     NAMESTITEV IN KONFIGURACIJA NTPD SERVISA ............................................................................... 19
        1.2.1. Preverjanje osnovnih predispozicij za pravilno delovanje sistema ............................................... 19
        1.2.2. Priprava serijskih vrat .................................................................................................................. 19
        1.2.3. Priprava konfiguracijske datoteke ntp.conf .................................................................................. 20
        1.2.4. Preverjanje delovanja NTP strežnika ............................................................................................ 23
        1.2.5. Omrežne nastavitve ....................................................................................................................... 24
        1.2.6. Objava strežnika v svetovni »grozd« NTP strežnikov.................................................................... 24

4.       DELOVANJE NTP STREŢNIKA ........................................................................................................... 26
     1.1.         SYSLOG – SISTEMSKA DNEVNIŠKA DATOTEKA USMERJEVALNIKA ....................................................... 26
     1.2.         IZPIS PROGRAMA TCPDUMP ................................................................................................................ 26
     1.3.         GRAFIĈNI PRIKAZ NAPAKE SKOZI ĈAS ................................................................................................. 27
     1.4.         GRAFIĈNI PRIKAZ ZAHTEVKOV, KI PRIHAJAJO NA NTP STREŢNIK NTP.MOSTOVNA.COM ..................... 27
     1.5.         UPORABA NTP ZA POŢARNIM ZIDOM .................................................................................................. 28

5.       STRATUM-1 STREŢNIK NTP.MOSTOVNA.COM ............................................................................ 30
6.       SKLEP ........................................................................................................................................................ 31
7.       SLOVAR KRATIC IN TUJIH IZRAZOV ............................................................................................. 32
8.       LITERATURA .......................................................................................................................................... 33
PRILOGA A: STRUKTURA NTP PAKETA .................................................................................................. 34
1. UVOD

     Programski paket NTP je implementiran v TCP/IP protkol z enakim imenom. NTP se je
zaĉel razvijati skupaj z internetom v zaĉetku osemdesetih let prejšnjega stoletja. David L.
Mills, profesor univerze v Delawaru, je z razvojem NTP protokola dosegel visoko natanĉnost
usklajevanja ure med raĉunalniki v omreţju. Mills je v dokumentaciji protokola zelo natanĉno
in strogo opisal naĉin delovanja, algoritme in sam protokol. Od samega razvoja pa do
današnjih dni se je NTP protokol razvijal in se razširil na cel svet. Sam protokol teoretiĉno
omogoĉa sinhronizacijo ĉasa na nanosekundo natanĉno, v praksi pa je resniĉna natanĉnost pri
usklajevanju odvisna od operacijskega sistema ter zmogljivosti omreţja.
     V diplomski nalogi si bomo temeljiteje ogledali delovanje NTP protokola s teoretiĉnega
vidika, kasneje pa bomo tudi na praktiĉnem primeru videli umestitev NTP streţnika v
omreţje. Glede na to, da je bil NTP streţnik dejansko umešĉen v internet ţe nekaj mesecev
pred pisanjem te diplomske naloge, lahko podamo tudi nekaj statistiĉnih podatkov o
delovanju in uporabnosti sistema. S pomoĉjo strokovnjakov z Instituta Joţef Stefan smo prišli
do zakljuĉkov o realni natanĉnosti NTP streţnika in ugotovili, da sistem deluje pravilno in
precej natanĉno – do veĉjih odstopanj pride predvsem zato, ker sta streţnika postavljena vsak
pri svojem ponudniku internetnih storitev in morajo tako NTP paketi prepotovati daljšo pot
med omreţjima ponudnikov. Novogoriški NTP streţnik je vkljuĉen tudi v internetni »grozd«
NTP streţnikov pool.ntp.org, ki uporablja preprost trik DNS protokola za nakljuĉno
distribucijo NTP paketov po grozdu NTP streţnikov. Kot ĉlan grozda NTP streţnik vsako uro
opravi celotno proceduro sprejemanja, obravnave in vraĉanja NTP paketov na pribliţno deset
do trinajst tisoĉ paketih.




                                             7
2. TEORETIČNA IZHODIŠČA

   1.1. Pregled NTP protokola

       1.1.1. Uvod
   Lastnosti NTP protokola
   - NTP protokol omogĉa sinhronizacijo ur gostiteljev ter usmerjevalnikov v internetu;
   - NTP omogoĉa sinhronizacije na WAN strani omreţij z natanĉnostjo nekaj sto
      milisekund, v LAN omreţjih pa ta natanĉnost naraste na nekaj milisekund z uporabo
      zunanjega vira toĉnega ĉasa (GPS vmesniki, ...);
   - NTP programska oprema je bila prevedena tako, da deluje na praktiĉno vseh
      operacijskih sistemih od UNIX, VMS in Windows, pa celo do manjših, tako
      imenovanih embedded sistemov, ki teĉejo v manjših domaĉih usmerjevalnikih;
   - NTP arhitektura se zadnjih dvajset let konstantno razvija in v tem trenutku
      uporabljamo ţe ĉetrto generacijo NTP protokola, torej NTPv4;
   - NTP je zgodovinsko eden najstarejših še ţiveĉih in vseskozi prisotnih protokolov v
      internetu.

       1.1.2. Zahteve po natančnem času
Zahteve po natanĉnem ĉasu izvirajo iz spodaj navedenih podroĉij. Našteta so le nekatera, kajti
v novejšem ĉasu prihajajo zahteve iz vse veĉ podroĉij (raĉunalništvo, banĉništvo, medicina,
...).

NTP uporabljamo pri:
  - razpršenih podakovnih bazah in njihovem beleţenju transakcij,
  - borznih prodajah in nakupih,
  - varnem podpisovanju in ţigosanju dokumentov,
  - kontroli zraĉnega prometa ter lokacijskih poroĉilih,
  - natanĉnem izvajanju radijskih in televizijskih programov,
  - sinhronizaciji multimedijskih naprav pri videokonferencah,
  - interaktivnih simulacijah,
  - nadzoru omreţij,
  - zgodnji detekciji okvar na mreţni infrastrukturi ter prezraĉevalnih sistemih.

       1.1.3. Različice ter opis programskega paketa NTP
Danes uporabljamo dve razliĉici NTP protokola, ki sta med seboj zdruţljivi, in sicer NTPv3
ter NTPv4. NTPv3 predstavlja zelo stabilno ter dokonĉno razliĉico NTPja, za njo pa se je
razvila še razliĉica NTPv4, ki deluje na razliĉnih operacijski sistemih. Ob obeh razliĉicah se
je razvila še manj uveljavljena izpeljanka NTP protokola, t.i. SNTP – simple network time
protocol, ki izkorišĉa enako paketno strukturo znotraj TCP/IP protokola kot NTP, vendar
zaradi poenostavljenega algoritma ponuja zelo oslabljeno natanĉnost. NTP programski paket


                                              8
vsebuje tudi program, ki deluje v ozadju (na Microsoftovih sistemih ga imenujemo storitev ali
service, na LINUX ter UNIX sistemih pa daemon), ki sinhronizira raĉunalniški sistemski ĉas
z enim ali veĉ zunanjimi viri toĉnega ĉasa. NTP paket pa omogoĉa tudi precej enostavno
diagnostiko ter dokumentacijo v HTML formatu.


       1.1.4. Podprti operacijski sistemi
NTPjev »osnovni« operacijski sistem je UNIX. Dandanes pa se NTP uveljavlja na praktiĉno
vseh operacijskih sistemih, tako na UNIX-u podobnih (Linux, BSD, Solaris, ...), kot tudi na
Microsoftovih odjemalskih in streţniških namizjih.
Standardna NTP distribucija ne deluje na Windows9x/ME sistemih, ker je jedro teh sistemov
prikrajšano za doloĉene funkcije, ki bi omogoĉale ohranjanje toĉnega ĉasa. Novodobni
operacijski sistemi pa so ţe v osnovi opremljeni z NTP odjemalcem, ki omogoĉa povezavo na
NTP streţnike kot vire toĉnega ĉasa.
Podjetja (banke, borze, ...), ki potrebujejo toĉen ĉas, pa se danes posluţujejo integriranih
rešitev, ki zdruţujejo streţnik in referenĉno uro (na primer GPS satelitski sprejemnik ali
radijski sprejemnik).


       1.1.5. Hierarhija NTP streţnikov
Vsak NTP servis/daemon je lahko NTP odjemalec, NTP streţnik ali NTP brv za ostale NTP
streţnike.
NTP lahko deluje v vlogi:
- odjemalca – poizveduje pri referenĉnih NTP streţnikih po toĉnem ĉasu,
- streţnika – ponuja svoj ĉas na razpolago kot referenco za odjemalce,
- brvi ali peera – primerja svoj ĉas s ĉasi ostalih brvi dokler skupaj ne pridejo do dogovora o
»pravem« ĉasu, po katerem se sinhronizirajo.




                                              9
                     Slika 1: Primer stratum hierarhije NTP streţnikov

Zgornje funkcionalnosti se uporabljajo za vzpostavitev hierarhiĉne ĉasovno-sinhronizacijske
strukture. Hierarhiĉne stopnje v sinhronizacijski strukturi imenujemo stratum stopnje. Niţja
kot je stratum stopnja NTP streţnika veĉjo natanĉnost streţnik dosega. Na vrhu strukture je
vedno streţnik z najniţjo stratum stopnjo.

V osnovi se vsak NTP streţnik postavi stratum stopnjo niţe od njegovega referenĉnega vira
ĉasa. Najvišji NTP streţniki pogosto uporabljajo radijsko uro kot referenco toĉnega ĉasa, v
osnovi pa imajo radijske ure stratum stopnjo 0, torej postane streţnik, ki uporablja to
referenco, NTP streţnik s stratum stopnjo 1, kar ga postavi na vrh NTP hierarhije. V velikih


                                            10
omreţjih se kot primer dobre prakse izkaţe vzpostavitev stratum 1 NTP streţnika, ki sluţi kot
referenca za stratum 2 NTP streţnike v posameznih segmentih omreţja.


       1.1.6. Integrirana redundanca
Vsak NTP servis lahko kot vir toĉnega ĉasa uporablja veĉ referenĉnih NTP streţnikov.
Sinhronizira se s tistim NTP streţnikom, ki ima najmanjši stratum nivo ter najmanjšo
zakasnitev. V primeru odpovedi takšnega referenĉnega streţnika NTP streţnik samodejno
izbere naslednjega, ki je po kakovosti oziroma kriterijih najboljši. S tem se zagotavlja hiter
odziv na izpade, všteti pa moramo, da se lahko v takšnem primeru zelo hitro spremeni tudi
stratum nivo našega streţnika.


       1.1.7. Monitoring delovanja
NTPD vsebuje kar nekaj orodij za nadzor delovanja streznika ter komunikacije med
streţnikom in odjemalci.
Z ukazom statistics ter pripadajoĉimi parametri lahko dobimo kar nekaj zanimivih informacij
o delovanju streţnika.

Parametri, ki se pri tem uporabljajo so:

- clockstats
        Omogoĉa snemanje statistike gonilnika. Vsaka posodobitev, ki jo zazna gonilnik, se
        zabeleţi v clockstats v formatu:

       49213 525.624 127.127.4.1 93 226 00:08:29.606 D

       Prvi dve polji pomenita datum ter ĉas v sekundah, preteĉenih od polnoĉi dalje. Tretje
       polje prikazuje virtualni naslov vira ure. Zadnje polje prikazuje zadnji ĉasovni odtis, ki
       je bil pridobljen s strani ure v ASCI zapisu. Pri nekaterih gonilnikih lahko s tem
       ukazom dobimo še kar nekaj zanimivih informacij.

- cryptostats
        Ta ukaz zhateva prisotnost OpenSSL kriptografske programske opreme na streţniku.
        Omogoĉa pa snemanje aktivnosti povezanih s tako imenovanim public key
        infrastructure ali infrastrukturo javnih kljuĉev – predvsem uporabno, ko uporabljamo
        certifikate za avtentikacijo odjemalcev.

       49213 525.624 127.127.4.1 message

       Tukaj je najpomembnejši del izpisa sporoĉilo, v katerem vidimo stanje avtentikacij
       vezanih na PKI.


                                              11
- loopstats
        Loopstats omogoĉa zajemanje informacije z vira toĉnega ĉasa ob vsakem signalu.

       50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806

       Ta izpis pa nam poda še ĉasovni zamik glede na uro streţnika, frekvenĉni zamik ure (v
       obliki PPM – Parts Per Million).

- peerstats
        Z ukazom peerstats v bistvu primerjamo naš ĉas s ĉasom referenĉnih streţnikov, ki jih
        navadno vpišemo v ntpd.conf.

       48773 10847.650 127.127.4.1 9714 -0.001605376 0.000000000 0.001424877
       0.000958674

       Zadnja štiri polja opisujejo razliko, zamik, disperzijo ter strojni popravek. Vse
       informacije so podane v sekundah.

- rawstats
       Kot ţe sama beseda pove, z ukazom rawstats dobimo rezultate v popolnoma surovi
       obliki. Izpis pa izgleda toke:

       50928      2132.543     128.4.1.1     128.4.1.20    3102453281.584327000
       3102453281.58622800031 02453332.540806000 3102453332.541458000

       Zadnja štiri polja ponazarjajo zaĉetni ĉasovni odtis odjemalca, odtis ob prihodu, odtis
       ob pošiljanju in konĉni NTP odtis. Vsi podatki grejo v kasnejšo obdelavo skozi
       ĉasovne algoritme.

- sysstats
        Omogoĉa zajemanje informacije o NTPD-ju skozi ĉasovno obdobje. Vsako uro se
        izpiše forma:

       50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147

       Prvi dve polji sta pri vseh paketih enaki. Tretje polje pomeni ĉas, ki je pretekel od
       zadnjega zagona streţnika – 36000 sekund.
       Naslednje polje prikazuje koliĉino paketov, ki jih je NTP streţnik sprejel – 81965
       paketov.
       Naslenje polje prikazuje procesirane pakete – 0 paketov.



                                             12
Šesto polje prikazuje koliĉino paketov, ki so bili sprejeti s trenutno razliĉico NTP –
9546 paketov.
Sedmo polje prikazuje koliĉino paketov, ki so bili sprejeti s starejših razliĉic NTP – 56
paketov.
Osmo polje oznaĉuje koliĉino paketov, ki ni ustrezala nobeni razliĉic NTP – 71794
paketov.
Deveto polje nam prikazuje zavrnjene pakete (ne ozirajoĉ se na razlog) – 512 paketov.
Deseto polje oznaĉuje napaĉno dolţino paketa ali napaĉen format – 540 paketov.
Enajsto polje oznaĉuje napako pri avtentiakcijo odjemalcev – 10 paketov.
Dvanajsto polje oznaĉuje število paketov, ki so bili zavrnjeni zaradi prevelike koliĉine
paketov – 147 paketov.




                                       13
   1.2. Tehnični vidik delovanja NTP protokola

       1.2.1. Uvod
V svetu se je od nastanka interneta uveljavil tako imenovani koordinirani univerzalni ĉas,
poznan pod kratico UTC, ki se opira na Zemljino vrtenje okrog lastne osi oziroma na
Gregorijanski koledar, ki se opira na vrtenje Zemlje okrog Sonca. UTC popravljamo s tako
imenovanim mednarodnim atomskim ĉasom TAI – International Atomic Time, ki opravlja
korekcijo UTC-ja vsakih 18 mesecev.
Ker bi bilo vgrajevanje naprav, ki bi se znale na takšen ali drugaĉen naĉin sinhronizirati z
javno dostopnimi viri UTC ĉasa predrago, se raje postavlja t.i. primarne ĉasovne streţnike, na
katere se potem s pomoĉjo klasiĉnih omreţnih povezav povezujejo ostali streţniki ter konĉni
uporabniki. V osnovi se je NTP protokol razvil iz t.i. Merzullovega algoritma, ki ga je razvil
dr. Keith Merzullo. Dokonĉni NTP protokol, takrat še NTPv1, pa je razvil dr. Dave Mills z
Univerze v Delawaru.


       1.2.2. Protokol
Sinhronizacijski protokol zaznava odstopanje streţniškega ĉasa glede na odjemalĉev ĉas. Na
zahtevo streţnik pošlje sporoĉilo, ki vkljuĉuje njegov ĉas ali ĉasovni ţig odjemalcu, ki nato
izraĉuna razliko. Za zagotavljanje najveĉje moţne natanĉnosti mora odjemalec najprej
statistiĉno izraĉunati ĉas, ki je potreben za prehod informacije med njim in streţnikom – šele s
pomoĉjo tega izraĉuna lahko steĉe proces sinhronizacije.


       1.2.3. Varnostni vidik
Za zagotavljanje zanesljivega delovanja sistema mora vsak internetni protokol danes
vsebovati doloĉene varnostne podprotokole. Odjemalec mora biti na nek naĉin prepriĉan, da
je sporoĉilo, ki ga je prejel, avtentiĉno. NTP zagotavlja moţnost sinhronizacije s pomoĉjo
uporabe vnaprej doloĉenih simetriĉnih kljuĉev. Modernejša kriptografija s pomoĉjo javnih
kljuĉev je zvišala nivo varnosti tudi pri NTP protokolu. Razliĉica NTPv4 torej omogoĉa
oboje, tako uporabo simetriĉnih kot tudi javnih kljuĉev. S pomoĉjo javnih kljuĉev je NTP
postal odpornejši na napade, zlorabe in porabo procesorskega ĉasa.


       1.2.4. Računalniški čas
Veĉina raĉunalnikov uporablja quartzov resonatorsko stabiliziran oscilator in strojni števec, ki
pošilja prekinitve procesorju v doloĉenih intervalih po nekaj milisekund. Ob vsaki prekinitvi
se v sistemsko spremenljivko prišteje vsebina, imenovana »tick«, ki jo oznaĉujemo kot
raĉunalniška ura. Sistem, ki se izvaja na raĉunalniku, lahko nato to strojno uro bere in
uporablja.



                                              14
Raĉunalniški ĉas lahko odstopa od dejanskega zaradi sledeĉih komponent:
   - odzivnost omreţja
   - raĉunalniška strojna oprema
   - raĉunalniška programska oprema (jitter)
   - odstopanje kvarĉnega oscilatorja

Odjemalĉev ĉas glede na streţnik, ki sluţi kot vir toĉnega ĉasa, lahko oznaĉimo z:

                                                              D   ( t t 0 )   
                                                                                2

                          T( t )  T( t 0 )  R( t t 0 )                            (En. 1),
                                                                      2



kjer je t trenutni ĉas, T odstopanje pri zadnji sinhronizaciji t0, R frekvenĉno odstopanje in D
zakasnitev zaradi »staranja« resonatorja. Vsi trije termini vsebujejo sistematiĉno napako, ki se
lahko popravlja, obenem pa tudi nakljuĉne vrednosti, na katere nimamo vpliva.

Za izraĉun toĉnega ĉasa NTP protokol uporablja sledeĉo formulo:


                       Odstopanje 
                                            T 2  T1  T 3  T 4
                                                              2                       (En. 2),



pri ĉemer je T1 ĉasovni ţig odjemalca ob pošiljanju zahteve po toĉnem ĉasu, T2 ĉasovni ţig
ob prihodu zahtevka na streţnik, T3 ĉasovni ţig ob streţnikovem odgovoru odjemalcu, T4 pa
odjemalĉev ĉasovni ţig ob prihodu odgovora.
Obenem pa mora odjemalec izraĉunati še t.i. »roundtrip delay«, torej ĉas, ki ga porabijo
paketi za pot med odjemalcem in streţnikom zaradi zasedenosti omreţja:

                          Zamik  T 4  T1  T 3  T 2                            (En. 3).



   1.3. NTP – napačna uporaba in zloraba protokola
V tem delu si bomo ogledali nekaj primerov, ki so botrovali k »poškodbam« oziroma
slabšemu delovanju NTP streţnikov, bodisi zaradi preobremenitve s prometom, bodisi zaradi
zlorabe splošnih pogojev uporabe doloĉenega NTP streţnika.
Primer, ki so ga v raĉunalniških medijih poimenovali kar NTP vandalizem, je primer odprtega
pisma danskega FreeBSD razvijalca ter oĉeta MD5 algoritma, g. Poula-Henninga Kampa,
svetovno znanemu podjetju D-Link, ki razvija aktivno omreţno opremo. Termin NTP
vandalizma se je za tem primerom prijel še podobnih primerov v preteklosti, saj je g. Kamp v
letu 2006 poslal odprto pismo podjetju D-Link. V veĉini primerov pa ne prihaja do zavestnega



                                                              15
vandalizma proti NTP streţnikom, temveĉ problem nastane pri nepravilno skonfigurirani
omreţni opremi.

       1.3.1. Splošne teţave NTP odjemalcev
Najbolj problematiĉne teţave, ki se nanašajo na NTP protokol, lahko naslovimo na
programsko opremo, ki jo uporablja aktivna omreţna oprema. Nekateri usmerjevalniki imajo
ţe v osnovni konfiguraciji zapisane naslove doloĉenih NTP streţnikov. Ker podjetja, ki
izdelujejo usmerjevalnike, ţe tovarniško nastavijo nastavitve NTP streţnikov, lahko takšni
usmerjevalniki doloĉene NTP streţnike obremenjujejo skozi svojo celotno ţivljensko dobo.

Prvi znan primer slabe uporabe NTP streţnika sega v leto 2002, ko je programski paket Tardis
zahteval ĉasovni ţig s spletne strani Trinity College iz Dublina. Dokonĉno so teţavo rešili s
popravkom programskega paketa, za vse starejše razliĉice programa Tardis pa so naredili
prilagojeno manjšo stran (prejšnja je zaradi obseţnosti povzroĉala kar precej preglavic in
obremenila povezavo).

Prvi širše poznan problem NTP zlorabe pa je bil, ko so usmerjevalniki in ostala omreţna
oprema podjetja Netgear zaĉeli masovno zahtevati toĉen ĉas z NTP streţnika Univerze v
Winscosinu. Skrbniki omreţja na univerzi so najprej zaprli dostop doloĉenih IP naslovov in
upali, da bodo s tem ublaţili t.i. »denial of service« napad. Kljub naporom se je stanje še
naprej poslabševalo in doseglo 250 000 zahtevkov na sekundo, kar v pasovni širini odgovarja
povezavi 150 megabitov na sekundo.
Izkazalo se je, da je teţava v programski opremi usmerjevalnikov Netgear, ki so imeli v
osnovni konfiguraciji vpisan NTP streţnik prej omenjene univerze. Poleg tega pa je
usmerjevalnik z intervalom ene sekunde poskušal dobiti toĉen ĉas vse dotlej, dokler ga ni
dobil.
Netgear je z naslednjim popravkom opercijskega sistema teţavo sicer odpravil, univerza pa še
vedno ob doloĉenih trenutkih doseţe tudi do 100 000 zahtevkov na sekundo. Netgear je
univerzi podaril nekaj manj kot štiristo tisoĉ dolarjev v zahvalo za odkritje teţave.

Najnovejša zgodba o zlorabi NTP streţnika pa sega v konec leta 2005, ko je g. Kamp, skrbnik
edinega danskega javno dostopnega NTP stratum-1 streţnika, opazil znatno poveĉanje
prometa. Promet je namreĉ narasel kar za 75-90%. Ves ta odstotek pa so v veĉini predstavljali
D-link usmerjevalniki. Stratum-1 streţnike v veĉini uporabljamo za sinhronizacijo niţje
leţeĉih v hierarhiji, torej stratum-2 streţnikov, ter naprav, na katerih je zahtevana visoka
natanĉnost. Domaĉi usmerjevalniki vsekakor ne spadajo v to kategorijo. G. Kamp je s
pismom na podjetje D-Link ţelel opozoriti na nastajajoĉ problem, še posebej zaradi tega, ker
so se mu zaradi poveĉanja prometa poveĉali tudi stroški s povezavo.
Šele ko je g. Kamp objavil pismo na svoji spletni strani in se je to pojavilo na noviĉarskih
straneh, je D-link odreagiral in mu denar povrnil (sicer po navedbah celo manj, kot so
dejansko znašali stroški). D-link je oĉitno kršil dostopovne politike najmanj 43 stratum-1



                                             16
streţnikov, ki imajo v splošnih pogojih uporabe zapisano, da niso primerni za sinhronizacijo
konĉnih produktov.

Tehniĉna rešitev problema te vrste je bila implementirana v NTPv4 protokolu. Streţnik lahko
odslej odjemalcem – na ţalost le NTPv4 odjemalcem pošlje tako imenovani poljub smrti ali
»kiss of death«, s katerim mu prepove pošiljanje novih zahtevkov NTP.




                                            17
3. VZPOSTAVITEV NTP STREŢNIKA

   1.1. NTP Streţnik – osnovni deli sistema

       1.1.1. Strojna oprema NTP streţnika
Kot strojno opremo NTP streţnika sem uporabil starejši raĉunalnik Compaq Deskpro, ki ga
poganja Intelov Pentium 3 procesor s taktom 500 MHz. Po posvetovanju z g. Martincem z
Instituta Joţef Stefan sem na podlagi njegovih ugotovitev izbral starejši raĉunalnik, saj se
izkaţe, da je pri novejših raĉunalnikih napaka zaradi strojne opreme praviloma veĉja
(testirano ter potrjeno s strani IJS). Za podatkovni del streţnika skrbita dva trda diska z
velikostjo 40GB, postavljena v diskovno polje RAID0.


       1.1.2. Programska oprema NTP streţnika
NTP streţnik je postavljen na operacijskem sistemu Debian linux. Sprva smo ţeleli
vzpostaviti NTP streţnik na operacijskem sistemu FreeBSD, vendar je zaradi strojne opreme
streţnika, na katerem je namešĉen FreeBSD prišlo do teţav pri komunikaciji preko serijskih
vrat.
Debian linux v svojih skladišĉih paketov samodejno najde in namesti zadnjo razliĉico NTP
servisa, zato je bila osnovna platforma pripravljena praktiĉno takoj po namestitvi sistema.


       1.1.3. Zunanji vir točnega časa
Kot zunanji vir toĉnega ĉasa smo uporabili strojno opremo podjetja Trimble, in sicer Acutime
2000 synchronization kit. V kompletu za sinhronizacijo so tako prisotni modul, ki pretvarja
signale in jih preko serijskih vrat pošilja v raĉunalnik, trideset metrov specialnega antenskega
»multicord« kabla ter antenska kupola. Kot vir toĉnega ĉasa izkorišĉa GPS tehnologijo – torej
toĉen ĉas pridobiva z atomskih ur GPS satelitov.




                    Slika 2: GPS sprejemnik              Slika 3: Antenska kupola




                                              18
   1.2. Namestitev in konfiguracija NTPD servisa

       1.2.1. Preverjanje osnovnih predispozicij za pravilno delovanje sistema
Ţe pred namestitvijo NTP streţnika moramo nujno preveriti, ĉe je stanje antene našega
sprejemnika optimalno. Sprejemnik najbolje deluje, ko sprejema ĉas od štirih ali veĉ satelitov,
zato namestitev antene v goratem podroĉju ni priporoĉljiva. Lokacija našega streţnika v Novi
Gorici je precej primerna, saj modul veĉinoma sprejema podatke od 8-10 satelitov. S takšno
gostoto satelitov lahko precej natanĉno doloĉimo tudi natanĉno 3D pozicijo NTP streţnika.

Prav tako moramo preveriti stanje raĉunalnika, ki bo deloval kot NTP streţnik in stanje
omreţja, kjer bo NTP streţnik postavljen, saj lahko slabi omreţni pogoji znatno poveĉajo
napake pri izmeri ĉasa.


       1.2.2. Priprava serijskih vrat
Ob namestitvi NTPD streţnika (lahko si pomagamo z avtomatskim instalacijskim programom
APT – apt-get install ntpd-refclock) moramo nastaviti serijska vrata ter gonilnik za naš
zunanji vir.

Najprej kreiramo virtualno povezavo na naša serijska vrata in jo v konkretnem primeru za
napravo Acutime poimenujemo palisade0:

ln –s /dev/ttyS0 /dev/palisade0

Ob priklopu modula na serijska vrata NTP streţnika lahko hitro preverimo, ali komunikacija
poteka. Do tega podatka pridemo s pregledom dnevniške datoteke syslog, ki jo najdemo v
imeniku:

/var/log/syslog

Ĉe ţelimo opraviti hitri test pretoka informacij, lahko uporabimo tudi orodje hexdump, ki nam
izpisuje vse podatke, ki jih sprejemajo ali oddajajo serijska vrata, to pa doseţemo z ukazom:

hexdump -C /dev/palisade0

Za dogodke, ki se dotikajo NTPD servisa, pa najdemo informacije v NTP dnevniških
datotekah, ki se nahajajo v imeniku:

/var/log/ntpstats




                                              19
       1.2.3. Priprava konfiguracijske datoteke ntp.conf
V konfiguracijski datoteki, imenovani ntp.conf, so shranjene nastavitve oziroma parametri, ki
determinirajo delovanje NTP servisa. Konfiguracijska datoteka se nahaja v imeniku:

/etc/ntp.conf

Konfiguracijski ukazi:

Naslovi, na katere se sklicujemo v konfiguracijski datoteki, so razdeljeni v štiri skupine:
S – oddaljeni NTP streţnik
B – naslov broadcast pošiljanja NTP paketov
M – naslov multicast pošiljanja NTP paketov
R – referenĉna ura (zunanji vir ĉasa 127.127.x.x)

server – Za S in R skupine ta ukaz doloĉa vir toĉnega ĉasa. V tem naĉinu se lahko NTP
streţnik vedno sinhronizira s streţniki, nikoli pa se oddaljeni streţniki ne bodo sinhronizirali z
lokalno streţniško uro. Tega ukaza nikdar ne uporabljamo z B in M skupino.

peer – Je zelo podoben ukazu »server«, le da ta omogoĉa obojesmerno sinhronizacijo.
Uporabljamo ga v okoljih, kjer se lokalna ura hitro desinhronizrira, saj s tem doseţemo, da
lahko streţniki med seboj relativno hitro doseţejo ţeljeno natanĉnost. Peer ukaza ne
uporabljamo pri B, M in R naslovih.

broadcast – Uporabljamo ga z B in M naslovi, omogoĉa pa stalno broadcast asociativnost. V
tem naĉinu lokalni NTP streţnik pošilja NTP pakete vsem odjemalcem v doloĉenem
podomreţju s pomoĉjo naslova razpršenega pošiljanja.

Dodatne moţnosti:

autokey – Vsi sprejeti in oddani paketi vsebujejo avtentikacijska polja z uporabnostjo sheme,
zapisane v avtentikacijskih moţnostih (Authentication Options).

burst – Poskrbi, da se namesto enega paketa pošlje osem paketov, ĉasovni zamik med prvim
in drugim paketom pa je 16 sekund. Ta naĉin se uporablja za doseganje veĉje natanĉnosti med
streţnikom in S naslovom.

iburst – Ob nedosegljivosti streţnika se pošlje osem paketov, ki pa nato s 16-sekundnimi
presledki ĉakajo na streţnik.




                                               20
key – Vsi poslani in prejeti paketi vkljuĉujejo avtentikacijsko polje, zapolnjeno s posebnim
edinstvenim identifikatorjem z vrednostmi med 1 in 65535. V osnovi paketi potujejo brez key
vrednosti.

minpoll, maxpoll – Ti dve opciji omogoĉata doloĉanje ĉasovnega intervala med
sinhronizacijami v sekundah na drugo. Najveĉji interval je doloĉen na 10 (1024 sekund),
poveĉa pa se ga lahko na 17 (36.4 ur). Najmanjši interval pa je v osnovi doloĉen na 6 (64
sekund), zniţa pa se ga lahko na 4 (16 sekund).

prefer – Oznaĉuje streţnik kot izbranca – streţnik se bo vedno trudil sinhronizirati se najprej
s prefer streţnikom.

ttl – S to funkcijo se doloĉa maksimalna ţivljenska doba broadcast in multicast paketov. V
osnovi je TTL nastavljen na 127.

version – Doloĉa razliĉico odhajajoĉih NTP paketov. Izbiramo lahko med razliĉicami od 1 do
4. V osnovi pošilja ven razliĉico 4.

Ker se v NTP konfiguracijski datoteki lahko sklicujemo na veĉ virov v formatu IP naslova,
vpišemo tudi navidezni virtualni naslov našega zunanjega vira. Za gonilnik palisade, ki ga
uporabljajo tudi Acutime2000 in njegovi predhodniki se virtualni IP glasi: 127.127.29.0

Izpis datoteke ntp.conf in razlaga posameznih parametrov:

# /etc/ntp.conf, configuration for ntpd

driftfile /etc/ntp.drift – Zapis napake lokalne ure.
statsdir /var/log/ntpstats/ – Dnevniške datoteke servisa.

statistics loopstats peerstats clockstats – Statistike – loop, peer in clock.
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to more than 100 low-stratum NTP servers.
# Your server will pick a different set every time it starts up.
# *** Please consider joining the pool! ***
# *** <http://www.pool.ntp.org/#join> ***
#server pool.ntp.org


                                                21
#server pool.ntp.org
## uncomment for extra reliability

# 2005-03-15/lindi: ported from old maser system
# HPGPS is in /dev/hpgps0 (that currently is a symlink to /dev/ttyS0)
# HPGPS is a driver #26, see /usr/doc/xntp/html/driver26.html
server 127.127.29.0 – »Virtualni IP naslov« gonilnika Palisade.
# HPGPS triggers 980 ms before second and typical driver delay is 25 ms
# (adjusted later to 28 ms in Linux)
# fudge 127.127.29.0 time1 -0.0000107
# fudge 127.127.29.0 flag4 1
fudge 127.127.29.0 time1 -0.0000107 – Popravek zaradi antenskega kabla.
fudge 127.127.29.0 flag2 1

# ... and use the local system clock as a reference if all else fails
# NOTE: in a local network, set the local stratum of *one* stable server
# to 10; otherwise your clocks will drift apart if you lose connectivity.
server 127.127.1.0 – Ob izpadu satelitskega GPS sprejemnika se kot primarno referenco
uporabi kar lokalna računalniška ura.
fudge 127.127.1.0 stratum 13 – Ob izpadu satelitskega GPS sprejemnika se stratum
spremeni na 13 zato, da odjemalcev ne zavajamo.

# By default, exchange time with everybody, but don't allow configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict default kod notrap nomodify nopeer noquery – Dovoljujemo dostop do streţnika
vsakomur, ne dovoljujemo pa konfiguracije z uporabo NTP ukazov.

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1 nomodify – »Localhost« lahko uporablja zahtevnejše NTP ukaze /
spreminja konfiguracijo NTP streţnika.

# Clients from this (example!) subnet have unlimited access,
# but only if cryptographically authenticated
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet,
# de-comment the next lines. Please do this only if you trust everybody
# on the network!


                                              22
#disable auth
#broadcastclien


        1.2.4. Preverjanje delovanja NTP streţnika
V namestitvenem paketu NTP dobimo tudi orodja za natanĉnejši nadzor streţnika. Na
spodnjem primeru je prikazan izpis takoj ob zagonu streţnika, ko od GPS modula streţnik še
ni dobil dovolj informacij o ĉasu, da bi se postavil v nivo stratum-1.
ntpdate -q -d -v imestreţnika – nam pokaţe trenutno stanje streţnika

server 127.0.0.1, port 123
stratum 14, precision -19, leap 00, trust 000
refid [127.0.0.1], delay 0.02571, dispersion 0.00000
transmitted 4, in filter 4
reference time: c7bb03d0.ec12f09d Thu, Mar 9 2006 20:43:12.922
originate timestamp: c7bb03f4.05fb2edf Thu, Mar 9 2006 20:43:48.023
transmit timestamp: c7bb03f4.05f5275e Thu, Mar 9 2006 20:43:48.023

V danem trenutku poizvedbe se streţnik samodejno postavi na zelo nizek nivo stratum-14, to
pa zato, da ne bi »zavajal« odjemalcev.
V Windows okolju ob povezavi na takšen streţnik dobimo odgovor:
»Remote peer stratum is less than host's peer stratum.«, kar pomeni, da je dejansko stratum
nivo streţnika niţji od trenutnega stratum nivoja odjemalca.

Za natanĉnejšo analizo delovanja NTPD-ja izkoristimo ukaz:

strace -f -e read -s4096 -p PID (ID procesa NTPD servisa)

Ĉe odstranimo zastavico -e dobimo ĉisto vse, kar proces oddaja oziroma sprejema.

Podobno orodje za analizo je preprost ukaz:

ls -l /proc/PID /fd

Za branje signalov, ki prihajajo skozi COM1 vmesnik, lahko uporabimo ukaz:

hexdump -C /dev/palisade0 -> lahko bi uporabili tudi /dev/ttyS0

Po uspešni konfiguraciji bi v syslog datoteki morali najti zapis:

This is syslog now:
Mar 9 21:42:41 localhost ntpd[1353]: frequency initialized 0.000 PPM from /etc/ntp.drift


                                               23
Mar   9 21:42:41 localhost ntpd[1353]: Palisade(0) fd: 8 dev: /dev/palisade0
Mar   9 21:45:55 localhost ntpd[1353]: synchronized to LOCAL(0), stratum 13
Mar   9 21:45:55 localhost ntpd[1353]: kernel time sync disabled 0041
Mar   9 21:45:55 localhost ntpd[1353]: synchronized to GPS_PALISADE(0), stratum 0
Mar   9 22:01:04 localhost ntpd[1353]: time reset +0.177829 s
Mar   9 22:01:04 localhost ntpd[1353]: kernel time sync enabled 0001


       1.2.5. Omreţne nastavitve
Ĉe ţelimo omogoĉiti dostop do NTP streţnika skozi poţarni zid, moramo odpreti UDP vrata
123. Ĉe ţelimo nad NTP streţnikom na daljavo izvajati še druge operacije, na primer
spremembo nastavitev ter zahtevnejše poizvedbe, potrebujemo TCP vrata 123. Torej velja, da
je najbolje na poţarnem zidu odpreti kar TCP/UDP na vratih 123.

Na primeru vidimo poţarni zid ter njegove nastavitve za pravilo NTP. Izvor je lahko kjerkoli
(Any), ponor je pa privatni IP naslov 10.0.1.3 – IP naslov našega NTP streţnika v lokalnem
omreţju za NAT usmerjevalnikom. Skozi pa prepušĉamo storitev NTP prek vrat TCP/UDP
123.


       1.2.6. Objava streţnika v svetovni »grozd« NTP streţnikov
Projekt pool.ntp.org sestavlja svetovni »grozd« ĉasovnih streţnikov, ki so namenjeni javni
uporabi. S tem se prepreĉuje, da bi milijoni uporabnikov obremenjevali samo nekatere
streţnike, ampak se obremenitev porazdeli.
Adrian von Bidder je zaĉel s projektom, ko se je NTP protokol zaĉel širše uporabljati in so
bile obremnitve doloĉenih veĉjih NTP streţnikov prevelike.
Uravnoteţenje obremenitve se tako dosega z iskorišĉanjem preproste funkcionalnosti, ki jo
omogoĉa domenski sistem DNS, in sicer t.i. roundrobin, kar pomeni, da za doloĉeno dns ime,
na primer. si.pool.ntp.org, na njem odgovarja veĉ IP naslovov. Torej se odjemalca nakljuĉno
usmerja na IP naslove, ki se skrivajo za imeni.
Da bi uporabniki lahko dostopali do njim najbliţjih streţnikov, se je grozd porazdelilo še po
drţavah tako, da se lahko za dostop do slovenskih NTP streţnikov sklicujemo na naslov
si.pool.ntp.org.
Pribliţno število streţnikov v grozdu znaša 750, od tega jih je veĉ kot polovica locirana v
Evropi. Slovenija je v grozd prispevala 6 streţnikov. Z uporabo ukaza nslookup lahko
pogledamo za katere streţnike gre.

nslookup – poţenemo nslookup
server xxx.xxx.xxx.xxx – nastavimo DNS streţnik našega ponudnika internetnih storitev
set type=A – nastavimo nslookup, naj izvaja poizvedbe po t.i. A – zapisih
si.pool.ntp.org – vpišemo domensko ime za slovenske NTP streţnike



                                             24
Kot odgovor dobimo:

Non-authoritative answer:
Name: si.pool.ntp.org
Addresses: 213.161.8.44, 193.2.10.101, 193.2.10.117, 193.77.147.115, 193.77.153.88,
213.157.226.100

Imena streţnikov dobimo z uporabo ukaza:

ping –a IP-naslov

Torej slovenski grozd NTP streţnikov sestavljajo NTP streţniki:

Stratum-1
ntp.mostovna.com – Multimedijski cetner Mostovna – Stratum-1

Stratum-2
cpe1-8-44.cable.triera.net – SSI Datacenter – Stratum-2
arg.cmm.ki.si – Kemijski inštitut Ljubljana – Stratum-2

Stratum-3
thr.cmm.ki.si – Kemijski inštitut Ljubljana – Stratum-3
coderock.org - coderock.org – Stratum-3

Neznano
xbc.nu – xbc.nu – Zavraĉa ntpquery




                                             25
4. DELOVANJE NTP STREŢNIKA

    1.1. Syslog – sistemska dnevniška datoteka usmerjevalnika
Iz kratkega izseka lahko vidimo zahtevke, ki prihajajo na zunanji IP naslov usmerjevalnika in
so nato posredovani na NTP streţnik. Iz izseka je razvidno, da je lahko poizvedb v primeru,
ko je NTP streţnik vkljuĉen v tako imenovani pool ali grozd, NTP streţnikov tudi veĉ kot 10
na sekundo.

2006-06-15 16:00:00 src="195.184.8.46:3834"                    dst="10.0.1.3:123"
2006-06-15 16:00:00 src="201.153.110.125:4465"                 dst="10.0.1.3:123"
2006-06-15 16:00:00 src="61.242.239.66:4706"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="80.62.170.120:3913"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="80.203.129.21:55544"                  dst="10.0.1.3:123"
2006-06-15 16:00:00 src="82.151.40.149:3651"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="87.51.65.210:4201"                    dst="10.0.1.3:123"
2006-06-15 16:00:00 src="61.31.105.212:4220"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="83.72.249.56:4108"                    dst="10.0.1.3:123"
2006-06-15 16:00:00 src="84.193.222.28:4078"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="212.127.138.115:4613"                 dst="10.0.1.3:123"
2006-06-15 16:00:00 src="81.219.22.42:3827"                    dst="10.0.1.3:123"
2006-06-15 16:00:00 src="203.67.157.20:4463"                   dst="10.0.1.3:123"
2006-06-15 16:00:00 src="84.107.191.242:3768"                  dst="10.0.1.3:123"
2006-06-15 16:00:00 src="80.209.227.133:4000"                  dst="10.0.1.3:123"
2006-06-15 16:00:00 src="83.15.163.10:4540"                    dst="10.0.1.3:123"
2006-06-15 16:00:00 src="195.38.104.210:4140"                  dst="10.0.1.3:123"
2006-06-15 16:00:01 src="82.21.253.201:4695"                   dst="10.0.1.3:123"
2006-06-15 16:00:01 src="61.63.101.191:4552"                   dst="10.0.1.3:123"




    1.2. Izpis programa Tcpdump
Z ukazom:
tcpdump ip host 10.0.1.3 and not taurus-1.siol.net and not port 22

Z ukazom prestrezamo vse pakete, usmerjene na IP naslov 10.0.1.3, zavraĉamo pa vse pakete,
vezane na DNS streţnik ponudnika storitev, ter vse pakete na vrata 22.

16:14:42.511465 IP 194.251.60.131.ntp > 10.0.1.3.ntp: NTPv3 sym_act, strat 0, poll 4, prec -6
16:14:42.511555 IP 10.0.1.3.ntp > 194.251.60.131.ntp: NTPv3 sym_pas, strat 1, poll 4, prec -19
16:14:42.525907 IP ip5993425f.bp-1031.rubicom.hu.36799 > 10.0.1.3.ntp: NTPv4 client, strat 0, poll 0, prec 0
16:14:42.526040 IP 10.0.1.3.ntp > ip5993425f.bp-1031.rubicom.hu.36799: NTPv4 server, strat 1, poll 0, prec -19
16:14:42.536274 IP 177.235.176.60.broad.hz.zj.dynamic.cndata.com.4223 > 10.0.1.3.ntp: NTPv3 client, strat 0, poll 8, prec 0
16:14:42.536367 IP 10.0.1.3.ntp > 177.235.176.60.broad.hz.zj.dynamic.cndata.com.4223: NTPv3 server, strat 1, poll 8, prec -19
16:14:42.543912 IP d219109.upc-d.chello.nl.3801 > 10.0.1.3.ntp: NTPv3 client, strat 0, poll 8, prec 0
16:14:42.543998 IP 10.0.1.3.ntp > d219109.upc-d.chello.nl.3801: NTPv3 server, strat 1, poll 8, prec -19
16:14:42.792129 IP cpe-24-58-150-16.twcny.res.rr.com.ntp > 10.0.1.3.ntp: NTPv4 client, strat 2, poll 10, prec -19
16:14:42.792383 IP 10.0.1.3.ntp > cpe-24-58-150-16.twcny.res.rr.com.ntp: NTPv4 server, strat 1, poll 10, prec -19
16:14:42.792485 IP p508A6A3E.dip.t-dialin.net.4229 > 10.0.1.3.ntp: NTPv3 client, strat 0, poll 8, prec 0
16:14:42.792578 IP 10.0.1.3.ntp > p508A6A3E.dip.t-dialin.net.4229: NTPv3 server, strat 1, poll 8, prec -19
16:14:42.820248 IP host81-138-0-88.in-addr.btopenworld.com.4195 > 10.0.1.3.ntp: NTPv3 client, strat 0, poll 8, prec 0




                                                            26
   1.3. Grafični prikaz napake skozi čas
Z uporabo orodij za grafiĉno prikazovanje (v našem primeru MRTG – Multi router traffic
grapher) lahko izrišemo graf, ki nam prikazuje napako (offset) v ĉasovnem intervalu.




                          Slika 4: Grafiĉni prikaz napake skozi ĉas

   1.4. Grafični prikaz zahtevkov, ki prihajajo na NTP streţnik
       ntp.mostovna.com
Na spodnjih grafih je natanĉno predstavljeno število zahtevkov, ki jih prejema streţnik.




                     Slika 5: Dnevni graf – kaţe aktivnost zadnjih 24 ur




                   Slika 6: Tedenski graf – kaţe aktivnost v zadnjem tednu




                  Slika 7: Meseĉni graf – kaţe aktivnost v zadnjem mesecu



                                              27
                         Slika 8: Letni graf – kaţe aktivnost v zadnjem letu

    1.5. Uporaba NTP za poţarnim zidom
NTP uporablja protokol UDP (User Datagram Protocol). Programe, ki stalno sinhronizirajo
ĉas po protokolu NTP ali SNTP, imenujmo streţniki. To so lahko demoni, kakršna sta ntpd in
xntpd na UNIX/Linux sistemih, ali rezidentni programi, kot npr. Dimension 4 za sisteme
Windows. Programe, ki poskrbijo za enkratno nastavitev ĉasa, ali pa se uporabljajo za razne
poizvedbe (npr. ntpdate, ntpq, ntpdc), bomo imenovali odjemalci.

Streţniki oddajajo in sprejemajo podatke skozi vrata 123, odjemalci pa uporabljajo poljubna
vrata s številko, ki je nad 1023. Loĉimo lahko naslednje tri primere:

        NTP odjemalec pošlje zahtevo streţniku: odjemalĉeva vrata ("source port") imajo
         številko, ki je nad 1023, vrata na streţniku ("destination port") so 123;

        NTP streţnik odgovori odjemalcu: vrata na streţniku ("source port") so 123, številka
         vrat na odjemalcu ("destination port") je nad 1023;

        med seboj komunicirata dva NTP streţnika: oba uporabljata vrata 123.

Pravila prikazuje naslednja tabela:

               izvor                    izvorna   cilljna
  smer                   cilj prometa                                           Komentar
              prometa                     vrata   vrata
    iz        zunanji      notranji                         komunikacija med zunanjim in notranjim strežnikom
                                         123       123
Interneta     strežnik     strežnik                              (npr. med ntp1.arnes.si in lokalnim ntpd)
    iz        zunanji      notranji                            odgovor zunanjega strežnika (npr. odgovor na
                                         123      >1023
Interneta     strežnik    odjemalec                             zahtevo lokalnega ntpq -p zunanji_strežnik)
    iz        zunanji      notranji                          zahteva zunanjega odjemalca (npr. ntpq z nekega
                                        >1023      123
Interneta    odjemalec     strežnik                                       zunanjega računalnika)
              notranji     zunanji
v Internet                               123       123      komunikacija med zunanjim in notranjim strežnikom
              strežnik     strežnik
              notranji     zunanji
v Internet                               123      >1023     odgovor notranjega strežnika zunanjemu odjemalcu
              strežnik    odjemalec
              notranji     zunanji                          zahteva notranjega odjemalca naslovljena na zunanji
v Internet                              >1023      123
             odjemalec     strežnik                                               strežnik
             Tabela 1: Prikaz vrat, ki jih uporablja NTP protokol na poti v in iz omreţja




                                                     28
Najpogosteje uporabljeni programi za osebne raĉunalnike, npr. ntpd in Dimension 4,
komunicirajo z zunanjimi streţniki (npr. ntp1.arnes.si in ntp2.arnes.si) skozi vrata 123. Ĉe
filtriramo samo promet, ki prihaja iz interneta v naše lokalno omreţje (vhodni promet),
moramo, da bo sinhronizacija ĉasa s protokolom NTP stalna in pravilna, skozi filtre spustiti
NTP promet na vratih 123.

Lokalno omreţje bo varnejše, ĉe dovolimo NTP promet le do enega ali veĉ lokalnih
streţnikov, s katerimi sinhroniziramo ostale raĉunalnike v omreţju.

Primer filtriranja NTP prometa na usmerjevalniku z uporabo linux programske opreme
ipchains:

LOCALHOST=127.0.0.1
NTP1=193.2.1.66
NTP2=193.2.1.92
# za ntpd in ntpq -p ntp1|2.arnes.si:
/sbin/ipchains -A input -p udp -j ACCEPT -s $NTP1 --sport 123 --dport 123
/sbin/ipchains -A input -p udp -j ACCEPT -s $NTP1 --sport 123 --dport 1024:
/sbin/ipchains -A input -p udp -j ACCEPT -s $NTP2 --sport 123 --dport 123
/sbin/ipchains -A input -p udp -j ACCEPT -s $NTP2 --sport 123 --dport 1024:
# za ntpq -p localhost:
# (ce je zaprt promet z 127.0.0.0/8)
/sbin/ipchains -A input -p udp -j ACCEPT -s $LOCALHOST -d $LOCALHOST --sport 1024: --dport 123 --interface lo
/sbin/ipchains -A input -p udp -j ACCEPT -s $LOCALHOST -d $LOCALHOST --sport 123 --dport 1024: --interface lo




                                                          29
5. STRATUM-1 STREŢNIK NTP.MOSTOVNA.COM

Pred zakljuĉkom bi rad podal še nekaj podatkov o prvem slovenskem javno dostopnem NTP
streţniku ntp.mostovna.com.
V Sloveniji imamo nekaj primarnih NTP streţnikov ter kopico sekundarnih. Sekundarne
gostujejo praktiĉno vsi ponudniki internetnih storitev. Primarne NTP streţnike pa imajo
predvsem banĉne ter borzne institucije. Prav tako imamo na Institutu Jozef Stefan NTP
streţnik, ki pa ni mišljen za konĉne uporabnike, temveĉ za institucije, ki potem razdeljujejo
toĉen ĉas dalje (stratum-2).
NTP streţnik ntp.mostovna.com pa je postavljen ”pro bono publico” za vse uporabnike v
Sloveniji ter za akademske mreţe republik bivše Jugoslavije. S tem smo ţeleli dati moţnost
tudi raziskovalcem, ki morda za simulacije ter testne namene potrebujejo vir toĉnega ĉasa.
Streţnik vzdrţujemo v klimatiziranem prostoru Kulturnega centra Mostovna, v internet je
prikljuĉen preko usmerjevalnika Zyxel ZyWall 5 ter simetriĉne 10 megabitne povezave.
Streţnik v povpreĉju obdela 6-7 zahtevkov na sekundo, kar v 24 urah nanese nekaj veĉ kot
pol milijona zahtevkov. Veĉ informacij je na voljo na spletni strani http://ntp.mostovna.com.




                                             30
6. SKLEP

Uĉenje delovanja tako zahtevne naprave, kot je NTP streţnik, mi je bilo v veselje. Poleg tega
menim, da je lahko storitev nudenja »toĉnega ĉasa« koristna za skupno dobro.
V sklopu Multimedijskega centra Mostovna smo namreĉ odloĉeni, da storitev brezplaĉno
ponudimo vsej slovenski javnosti ter akademskim omreţjem s podroĉja bivše Jugoslavije.
Streţnik v ĉasu pisanja diplomske naloge opravlja svojo funkcijo ţe nekaj mesecev, meritve z
Instituta Joţef Stefan pa so pokazale, da napaka znaša le nekaj milisekund. Napravo in napako
vsakodnevno nadzorujemo, napako pa poskušamo zmanjšati. Do napake prihaja predvsem
zaradi teţko izmerljive izgube na antenskem kablu. Za sedaj uporabljamo nastavitev, ki je
identiĉna nastavitvi, ki jo imajo na Institutu Joţef Stefan.




                                             31
7. SLOVAR KRATIC IN TUJIH IZRAZOV

Kratica   Angleški izraz                             Slovenski izraz
NTP       Network time protocol                      Omreţni ĉasovni protokol
*****     Dispersion (clock dispersion/jitter)       Disperzija
          In a repetitive process of reading the     Ob veĉkratnem procesu branja ĉasa s
          time in a clock, the differences can       strojne ure prihaja do nakljuĉnih razlik.
          vary randomly. The difference among        Te razlike imenujemo disperzija.
          these differences is called jitter.
*****     Drift (clock drift)                        Zamet (urni zamet)
          Measure (in hertz per second) which        Izmerek, ki doloĉa, kako hitro se
          determines how fast the skew of a          spreminja nesimetriĉnost ure.
          clock varies.
*****     Stability (clock stability)          Stabilnost
          It determines how well a clock can   Doloĉa kako dobro lahko ura drţi
          keep a frequency constant.           konstantno frekvenco.
*****     GMT – Greenwich Mean Time            GMT – Navaden Greenwiški ĉas
          Standard reference of time, precedingStandardna referenca za ĉas, ki so jo
          the UTC standard. It gets the time   uporabljali pred UTC standardom. Ĉas
          from astronomical events, such as these izraĉunava s pomoĉjo astronomskih
          solar day.                           dogodkov.
*****     GPS – Global Positioning System      GPS – Globalni pozicijski sistem
          A constellation of 24 satellites     Konstelacija 24 satelitov, ki kroţijo
          revolving around the Earth which, by okrog Zemlje in oddajajo signale, s
          the transmission of signals, permits katerimi si lahko na Zemlji s pomoĉjo
          determining the current time with a  GPS modulov doloĉimo ĉas z visoko
          very high degree of precision.       stopnjo natanĉnosti.
*****     Offset (clock offset)                Odstopanje
          Difference in time between two       Razliko v ĉasu med dvema urama,
          clocks,     usually      expressed   obiĉajno predstavljeno v milisekundah,
                                                in
          milliseconds.                        imenujemo odstopanje.
*****     Skew (clock skew)                    Nesimetriĉnost
                                               Razliko (izraţeno v Hz) med frekvenco
          Difference (in hertz) between the real
                                               doloĉene ure in frekvenco, ki bi jo
          frequency of a clock and the frequency
                                               morala ura imeti za doseganje absolutno
          that it should have to reach the perfect
          time.                                toĉnega         ĉasa,        imenujemo
                                               nesimetriĉnost.
*****     UTC – Universal Time Coordinated     UTC – Univerzalni koordinirani ĉas
          Standard reference of time accepted Standardna referenca ĉasa, ki je sprejeta
          worldwide. It gets the time from the po celem svetu. Vir UTC ĉasa je
          magnetic resonance of Cesium.        magnetna resonanca atoma Cesiusa.


                                             32
8. LITERATURA

1.   Doyle, Jeff, Carroll, Jennifer: Routing TCP/IP, Volume 1 (CCIE Professional
     Development Routing TCP/IP. Cisco Press, 2005.
2.   Matthews, Jeanna: Computer Networks: Internet Protocols in Actio. John Wiley &
     Sons, 2005.
3.   Mills, L. David: Computer Network Time Synchronization. CRC, 2006.
4.   Mills, L. David: University of Delaware [URL: http://www.eecis.udel.edu/~mills/],
     13.6.2006.
5.   Rybaczyk, Peter: Expert Network Time Protocol: An Experience in Time with NTP.
     Apress, 2005.
6.   Tavli, Bulent; Protocol architectures for energy efficient real-time data
     communications in mobile ad hoc networks. ProQuest / UMI, 2006.




                                         33
PRILOGA A: STRUKTURA NTP PAKETA

Zahtevek z odjemalčeve strani:

No.   Time        Source              Destination                 Protocol Info
3        9.668255            10.0.1.117         kuglof.mostovna.com        NTP          NTP

Frame 3 (90 bytes on wire, 90 bytes captured)
   Arrival Time: Jun 15, 2006 12:41:59.154302000
   Time delta from previous packet: 7.958441000 seconds
   Time since reference or first frame: 9.668255000 seconds
   Frame Number: 3
   Packet Length: 90 bytes
   Capture Length: 90 bytes
   Protocols in frame: eth:ip:udp:ntp
Ethernet II, Src: Dell_c2:5b:8b (00:14:22:c2:5b:8b), Dst: ZyxelCom_33:dd:9e (00:13:49:33:dd:9e)
   Destination: ZyxelCom_33:dd:9e (00:13:49:33:dd:9e)
   Source: Dell_c2:5b:8b (00:14:22:c2:5b:8b)
   Type: IP (0x0800)
Internet Protocol, Src: 10.0.1.117 (10.0.1.117), Dst: kuglof.mostovna.com (193.77.153.88)
   Version: 4
   Header length: 20 bytes
   Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
      0000 00.. = Differentiated Services Codepoint: Default (0x00)
      .... ..0. = ECN-Capable Transport (ECT): 0
      .... ...0 = ECN-CE: 0
   Total Length: 76
   Identification: 0xc739 (51001)
   Flags: 0x00
      0... = Reserved bit: Not set
      .0.. = Don't fragment: Not set
      ..0. = More fragments: Not set
   Fragment offset: 0
   Time to live: 128
   Protocol: UDP (0x11)
   Header checksum: 0x0d4d [correct]
      Good: True
      Bad : False
   Source: 10.0.1.117 (10.0.1.117)
   Destination: kuglof.mostovna.com (193.77.153.88)
User Datagram Protocol, Src Port: ntp (123), Dst Port: ntp (123)
   Source port: ntp (123)
   Destination port: ntp (123)
   Length: 56
   Checksum: 0x34b7 [correct]
Network Time Protocol
   Flags: 0xd9
      11.. .... = Leap Indicator: alarm condition (clock not synchronized) (3)
      ..01 1... = Version number: NTP Version 3 (3)
      .... .001 = Mode: symmetric active (1)
   Peer Clock Stratum: unspecified or unavailable (0)
   Peer Polling Interval: 10 (1024 sec)
   Peer Clock Precision: 0,015625 sec
   Root Delay: 0,0156 sec
   Clock Dispersion: 9,5393 sec
   Reference Clock ID: Unindentified reference source ''
   Reference Clock Update Time: Jun 15, 2006 10:41:36,5156 UTC
   Originate Time Stamp: NULL
   Receive Time Stamp: NULL
   Transmit Time Stamp: Jun 15, 2006 10:41:59,1551 UTC




                                                             34
Odgovor s streţniške strani:

No.   Time        Source                       Destination        Protocol Info
4        9.669535            kuglof.mostovna.com         10.0.1.117        NTP          NTP

Frame 4 (90 bytes on wire, 90 bytes captured)
   Arrival Time: Jun 15, 2006 12:41:59.155582000
   Time delta from previous packet: 0.001280000 seconds
   Time since reference or first frame: 9.669535000 seconds
   Frame Number: 4
   Packet Length: 90 bytes
   Capture Length: 90 bytes
   Protocols in frame: eth:ip:udp:ntp
Ethernet II, Src: ZyxelCom_33:dd:9e (00:13:49:33:dd:9e), Dst: Dell_c2:5b:8b (00:14:22:c2:5b:8b)
   Destination: Dell_c2:5b:8b (00:14:22:c2:5b:8b)
   Source: ZyxelCom_33:dd:9e (00:13:49:33:dd:9e)
   Type: IP (0x0800)
Internet Protocol, Src: kuglof.mostovna.com (193.77.153.88), Dst: 10.0.1.117 (10.0.1.117)
   Version: 4
   Header length: 20 bytes
   Differentiated Services Field: 0x10 (DSCP 0x04: Unknown DSCP; ECN: 0x00)
      0001 00.. = Differentiated Services Codepoint: Unknown (0x04)
      .... ..0. = ECN-Capable Transport (ECT): 0
      .... ...0 = ECN-CE: 0
   Total Length: 76
   Identification: 0x2afa (11002)
   Flags: 0x04 (Don't Fragment)
      0... = Reserved bit: Not set
      .1.. = Don't fragment: Set
      ..0. = More fragments: Not set
   Fragment offset: 0
   Time to live: 63
   Protocol: UDP (0x11)
   Header checksum: 0xaa7c [correct]
      Good: True
      Bad : False
   Source: kuglof.mostovna.com (193.77.153.88)
   Destination: 10.0.1.117 (10.0.1.117)
User Datagram Protocol, Src Port: ntp (123), Dst Port: ntp (123)
   Source port: ntp (123)
   Destination port: ntp (123)
   Length: 56
   Checksum: 0x1690 [correct]
Network Time Protocol
   Flags: 0x1a
      00.. .... = Leap Indicator: no warning (0)
      ..01 1... = Version number: NTP Version 3 (3)
      .... .010 = Mode: symmetric passive (2)
   Peer Clock Stratum: primary reference (1)
   Peer Polling Interval: 10 (1024 sec)
   Peer Clock Precision: 0,000002 sec
   Root Delay: 0,0000 sec
   Clock Dispersion: 0,0084 sec
   Reference Clock ID: Global Positioning Service
   Reference Clock Update Time: Jun 15, 2006 10:41:34,0282 UTC
   Originate Time Stamp: Jun 15, 2006 10:41:59,1551 UTC
   Receive Time Stamp: Jun 15, 2006 10:41:58,3981 UTC
   Transmit Time Stamp: Jun 15, 2006 10:41:58,398




                                                             35
IZJAVA

Študent Luka Manojlović izjavljam, da sem avtor tega diplomskega dela, ki sem ga napisal
pod mentorstvom prof. Simona Abolnarja uni. dipl. inţ. elektrotehnike.
V skladu z Zakonom o avtorskih in sorodnih pravicah dovolim objavo diplomskega dela na
spletnih straneh Tehniškega šolskega centra, Višje strokovne šole.

V Novi Gorici, dne 15. 6. 2006

                                                Podpis:________________________

								
To top