Pa začnimo od začetka. Vsak računalnik, priključen v internet, nosi unikatno 32-bitno oznako, imenovano naslov IP. Ker računalniki delujejo binarno, je spletni naslov videti nekako tako:

01011011.10111001.11001100.01010101

Gre za štiri številke, imenovane okteti (vsaka ima 8 mest). Ker je teh številk skupaj 32 (4 x 8) govorimo o 32-bitnem naslovu.

Ker pa si je takšne številke oziroma naslove seveda nemogoče zapomniti, se je bolj uveljavil decimalni zapis, ki se za omenjeno številko glasi:

91.185.204.85

Ker gre za pretvorbo osemmestnega dvojiškega števila, seveda te štiri vrednosti ne morejo zasesti katere koli vrednosti, ampak le od 00000000 do 11111111 binarno oziroma od 0 do 255 decimalno, kar pomeni, da je lahko vseh števil 256 x 256 x 256 x 256 oziroma 4,294,967.296, torej nekaj manj kot 4,3 milijarde. Torej iz tega sledi, da bi bilo lahko v internetu v nekem trenutku največ toliko naprav. Recimo, da je tako, čeprav v resnici ni, saj je veliko številk rezerviranih, poleg tega pa poznamo tudi dinamično dodeljevanje številk, kjer naprava dobi številko le takrat, ko je priključena v internet, sicer pa je nima, tako da je dejanskih naprav lahko celo več, a to za našo predstavitev ni toliko pomembno.

Vrnimo se k številkam. Unikatnih naslovov je lahko torej nekaj več kot 4 milijarde. To pa je ogromna številka. Tudi če bi bila polovico manjša, bi še bili vedno pred nerešljivim problemom, kako si zapomniti vse te naslove. No ja, vsaj tiste, ki jih redno obiskujemo. Si lahko zapomnite recimo 91.185.204.85, 173.194.65.103 in 69.63.189.39? Jaz si jih ne bi, četudi gre le za tri. In zato imamo v internetu še »tretjo stopnjo« imenovanja, to pa so imena www.mojmikro.si, www.google.com, www.facebook.com, kot jih poznamo, jih vpisujemo v naslovne vrstice brskalnikov in jih tudi pomnimo. Te si je neprimerno lažje zapomniti kot pa omenjene številke. Toda kako do teh imen? Najočitnejša rešitev je, da te številke IP nekako pretvorimo oziroma jim priredimo ustrezna imena. Toda kako?

SISTEM PRETVARJANJA

Pretvorba iz binarnih vrednosti v decimalne je nekako jasna. Kako pa pretvorba iz recimo 91.185.204.85 v www.mojmikro.si? Jasno je, da za to ni dovolj lokalni računalnik, saj bi ta moral o svojem paru številka IP/ime obvestiti celoten internet, če bi hoteli, da nas nekdo najde. To pa seveda ne gre. Zato je nekako logično, da je treba imeti poseben pretvorbeni sistem, ki bo znal povezati številčne naslove z »ljudskimi« imeni. Tak sistem seveda obstaja, imenuje pa se domenski imenski sistem (Domain Name System) ali skrajšano DNS. In kaj je DNS? Pravzaprav nič drugega kot velikanska podatkovna zbirka, ki je razporejena na nekaj deset tisoč strežnikih po svetu, vsebuje pa podatke oziroma povezave med temi »ljudskimi« imeni in številkami IP. Vendar vsi ti strežniki ne vsebujejo vseh povezav. Teh je namreč toliko, da en sam strežnik tega ne bi mogel dovolj hitro obdelati, svoje pa bi naredila tudi oddaljenost od strežnika. Zato so podatki porazdeljeni oziroma distribuirani. Kaj se torej zgodi, ko v naslovno vrstico vpišemo naslov, recimo www.mojmikro.si. Prva stvar, ki jo brskalnik naredi, je, da najbližjemu imenskemu strežniku (DNS) pošlje zahtevo za tako imenovano razrešitev (resolving) naslova oziroma zahtevo za številko IP cilja. Če ima ta strežnik naslov v svoji zbirki podatkov, nam ga posreduje, sicer pa se poveže z drugim strežnikom in ga zahteva od tega. Postopek se ponavlja, dokler se naslov ne najde, nato pa se posreduje uporabniku, ki se z njim poveže. Koncept je na prvi pogled dokaj preprost, vendar gre zaradi velike količine podatkov in prometa za precej kompleksno zadevo, v katero se podrobno ne bomo spuščali, saj to ni namen tega prispevka.

Kaj se zgodi, ko v naslovno vrstico brskalnika vpišemo spletni naslov? Najprej mora brskalnik od strežnika DNS dobiti naslov IP in šele potem se lahko priključi nanj.

DOMAČI PREIZKUS

V prejšnjem odstavku smo zapisali, da se iskanje številke IP, ki je dodeljena naslovu (pravzaprav je ravno obratno), imenuje razreševanje (resolving). Besedo ste morda že kdaj srečali v brskalniku, ko ste vpisali naslov in pritisnili Enter. Če gre za kak »odročen« naslov, se na dnu zaslona večkrat izpiše »razrešujem naslov« oziroma »resolving host«. No, to je točno to, o čemer govorimo – iskanje številke IP naslova, ki smo ga vpisali. Obvestilo načeloma vidimo redko, saj gre za hitre postopke, zato se večinoma kar takoj začne odpirati ustrezna spletna stran.

Kako pa lahko vidimo povezavo med imenom in naslovom IP? Eden od načinov je, da izvedemo preprosto operacijo znotraj Windows. Najprej zaženemo ukazno vrstico. V Windows XP naredimo to tako, da izberemo Start > Zaženi, nato pa v ukazno vrstico vpišemo ukaz cmd, v sistemih Windows Vista in Windows 7 pa enak ukaz vpišemo kar v iskalno vrstico, ki se skriva pod gumbom Start. Pojavi se čudno okno, ki spominja na stare operacijske sisteme. Recimo, da hočemo ugotoviti naslov IP spletne strani Mojega mikra. To naredimo tako, da v ukazno vrstico tega okna zdaj vpišemo ukaz:

nslookup www.mojmikro.si

Prikazalo se bo nekaj podobnega kot:

Strežnik: taurus-4.siol.net
Address: 193.189.160.23

Neavtoritativni odgovor:
Ime: www.mojmikro.si
Address: 91.185.204.85

Kaj to pomeni? Ukaz nslookup je namenjen iskanju naslova IP, ki pripada domeni oziroma naslovu. Sintaksa oziroma videz ukaza je dokaj logičen – najprej vpišemo ukaz, nato pa spletni naslov, katerega IP iščemo. Na zaslonu se nam izpišejo podatki najprej o imenskem strežniku, ki nam je posredoval ime, v našem primeru je to Siolov strežnik, sledi pa naslov IP tega strežnika. Sledi »neavtoritativni odgovor«. Oznaka »neavtoritativni« je sicer malce nevsakdanja, vendar dokaj dobro odseva dejansko dogajanje okoli povezovanja imen in naslovov IP. V osrčju interneta je namreč 13 strežnikov, ki vsebujejo vse številke IP in imena, ki so v internetu. Ti strežniki, označeni kot »avtoritativni«, so seveda ultrazmogljivi, a še vedno ne dovolj, da bi zmogli na milijone in milijone poizvedovanj vsako milisekundo. Zato imajo ponudniki v internet tudi svoje strežnike DNS, ki si zapomnijo vsa poizvedovanja, ki potekajo skoznje, in s tem olajšajo delo tem trinajstim. Ko računalnik torej zahteva naslov IP, ki je dodeljen imenu, se bo ta zahteva najprej poslala lokalnemu (neavtoritativnemu) strežniku DNS. Če ima ta strežnik podatke že v svoji zbirki, potem se bodo uporabniku posredovali kar od tam. In prav to se je zgodilo v našem primeru, ko je odgovor dal kar Siolov strežnik DNS, ne pa kateri od vrhovnih (a.rootservers.net, b.rootservers.net … m.rootservers.net). Tako se prepreči gneča v omrežju in pospeši odgovor, ker pa se imena ne menjavajo pogosto, je sistem tudi dokaj varen. Pa se vrnimo k našemu odgovoru: ker so Siolovi uporabniki že obiskali stran Mojega mikra, je ta naslov že shranjen v lokalnem strežniku DNS, in odgovor je, da je naslov IP strežnika www.mojmikro.si številka 91.185.204.85.

Z ukazom nslookup lahko ugotovimo tako naslov svojega imenskega strežnika kot tudi naslov IP želene spletne strani.

DNS IN HITROST

In zakaj je pomembno, da razumemo, kako deluje DNS? Vse skupaj ni le nekaj, kar šteje v splošno izobrazbo, ampak vpliva na hitrost brskanja po spletu. Vsakič, ko obiščemo stran v spletu, se mora prek zahteve DNS najprej razrešiti njen naslov IP. Če je razreševanje DNS-a počasno, bo to seveda vplivalo na hitrost brskanja, na kar pa smo običajno dokaj občutljivi. Ste že kdaj sedeli pred brskalnikom, kjer je pisalo »Čakam na naslov XYZ«? Zoprno, ne?

Prav zato je zelo pomembno, da razreševanje DNS-a poteka hitro. Hitrost pa lahko dosežemo s pametno razporeditvijo »dela«. To poteka tako, da se ob vsakem vpisu naslova v brskalnik pošlje zahteva najbližjemu strežniku DNS, ki je običajno pri ponudniku dostopa v internet. Če je naslov v njegovi zbirki, ga je mogoče razrešiti takoj, brez potrebe po obremenjevanju omrežja. Če naslova v tem strežniku ni, se pošlje zahteva strežniku, ki je hierarhični višje od obstoječega. Če tudi ta strežnik nima naslova, se zahteva posreduje še višje, dokler ne pride do tistih trinajstih veličastnih korenskih strežnikov. Večino časa takšno posredovanje zahtev ni potrebno, saj so lokalne zbirke podatkov običajno precej ažurne. Ko pa naletimo na ime, ki ga je treba iskati v več strežnikih, se lahko to kar krepko pozna pri hitrosti brskanja. Zadeva gre lahko celo tako daleč, da nas računalnik obvesti o časovni prekoračitve oziroma tistem zoprnem time-outu saj zaradi dolgotrajnega čakanja privzame, da je s stranjo kaj narobe. Pri Googlu ocenjujejo, da so težave z razreševanjem DNS-a krive za okoli šest odstotkov spodletelih povezav.

DOMAČI DNS

Če ugotovite, da vaš ponudnik dostopa v internet na področju DNS-a »šepa« ali pa ste le razpoloženi za eksperimentiranje, lahko tudi sami določite, kateri imenski strežnik bo uporabljal vaš sistem. Običajno tega ni treba posebej nastavljati, saj usmerjevalniki in tudi operacijski sistemi sami zaznajo te strežnike. Če pa bi radi DNS spremenili in videli, kako deluje pri kom drugem, lahko v sistem vpišete drug naslov. Teh je lahko kar nekaj in jih je mogoče najti prek iskalnikov v spletu. Za začetek je mogoče poskusiti z recimo Googlovim javnim DNS-om.. Navodila najdete na naslovu: http://tinyurl.com/cp9ht8c, a zadeve ni treba predolgo študirati, ker je dokaj preprosta, če veste, kje so podatki o strežniku DNS vpisani. Lahko so na dveh mestih. Eno je v omrežnih nastavitvah računalnika, drugo pa v nastavitvah usmerjevalnika, če ga imate. V obeh primerih je zadeva zelo podobna. Najprej se poiščejo ustrezne nastavitve. V operacijskem sistemu jih najdemo pri nastavitvah TCP/IP med omrežnimi nastavitvami, v usmerjevalniku pa nekje med osnovnimi nastavitvami usmerjevalnika, verjetno nekje blizu mesta, kamor vpišemo uporabniško ime in geslo. Z gotovostjo ne moremo povedati kje, saj je to od usmerjevalnika do usmerjevalnika drugače. Vsekakor pa v vseh primerih iščete nastavitve DNS. Tam boste našli več mest, kamor je mogoče vpisati decimalne naslove strežnikov DNS. To bodo bodisi oštevilčeni DNS 1, DNS 2 in podobno ali pa bo pisalo, da gre za primarni in sekundarni DNS. Kakor koli že, v Googlovem primeru vpišite kot prvi naslov številko 8.8.8.8. kot drugo oziroma sekundarno pa 8.8.4.4. Nato usmerjevalnik in/ali računalnik ponovno zaženemo in to je vse. Sprememb ni treba delati v usmerjevalniku in računalniku. Dovolj je, če pri enem. Glede na to, da imate lahko v gospodinjstvu več računalnikov in zraven še kakšno drugo mobilno napravo, je v primeru, da v internet dostopate preko usmerjevalnika, bolj smotrno spremeniti nastavitve usmerjevalnika, saj bodo morebitne izboljšave tako deležni vsi uporabniki.

Na podoben način lahko nastavite, da bo vaš sistem uporabljal strežnik, ki ga ponuja OpenDNS. Postopek nastavljanje je enak, kot smo ga opisali, le da so številke tukaj 208.67.222.222 in 208.67.220.220.

Kako pa lahko preverimo, kateri strežnik DNS je hitrejši? Eden od načinov je programček DNS Tester, ki ga je mogoče sneti s strani http://tinyurl.com/c68xp7m. Pred snemanjem se je treba registrirati, sicer pa je programček brezplačen. Deluje pa povsem preprosto. V ustrezna polja vpišemo en in drugi strežnik DNS in zaženemo test. V rubrikah DNS 1 Timing in DNS 2 Timing nam program izpisuje, v kolikem času je dobil odgovor od strežnika DNS. S programčkom je smotrno primerjati obstoječ strežnik DNS, ki ga uporablja vaš ponudnik dostopa v internet, ter katerega od naštetih prostih. In kako ugotoviti naslov lastnega strežnika? Saj smo ga že z ukazom nslookup, kjer je zapisano tudi ime strežnika. Pri tem povejmo še, da ukaza ni treba pisati v obliki nslookup spletni_naslov, saj je za ugotavljanje imena strežnika dovolj že osnovni ukaz, torej nslookup.

S programčkom za testiranje hitrosti strežnika DNS lahko preverimo, ali je naš strežnik hitrejši od kakšnega drugega. V našem primeru smo primerjali naš strežnik 193.189.160.23 s strežnikom OpenDNS in ugotovili, da je naš hitrejši.

HITROST NI VSE

Hitrost brskanja pa je le ena od stvari, na katero lahko vpliva tudi DNS. Ni pa edina. Sistem DNS je zelo pomemben tudi z varnostnega vidika. Že v načelu delovanja samega lahko kaj hitro najdemo varnostno luknjo. Strežnik DNS je zadolžen za to, da vam pove, kakšna je številka IP računalnika, na katerega se priključujete. Kaj pa, če nekdo vdre v strežnik in namesto številke vaše spletne banke v zbirko podatkov vstavi ponarejeno, prek katere potem nepridipravi lahko pridejo do vaših osebnih podatkov, s katerimi se identificirate pri banki? To ni znanstvena fantastika, ampak že več let znan način, imenovan »DNS hijacking« ali ugrabitev DNS-a. Je pa res, da je tak način zaradi hierarhično zgrajenega sistema dokaj težko prevarati, saj so podatki vedno vpisani tudi v zbirki podatkov, ki je hierarhično višje. Razen seveda če bi kdo vdrl v korensko zbirko, torej v enega od tistih trinajstih strežnikov, kar pa je malo verjetno.

Kljub potencialnim nevarnostim pa je sistem DNS tudi dokaj dober varnostnik. Ker vsak računalnik v spletu dobi svoj naslov IP, ta naslov pa je vedno v »stiku« s kakšnim strežnikom DNS, so ti strežniki idealno orodje za sestavljanje tako imenovanih črnih seznamov ponarejenih strani ali strani s takšno ali drugačno nedovoljeno vsebino. Če strežnik DNE recimo zazna zahtevo po posredovanju naslova IP takšne strani, jo lahko zavrne. Prav ta ideja je bila gonilo omenjenega ponudnika OpenDNS, ki ne ponuja le storitve DNS. Drug storitev je v tem, da ima zelo kompleksno bazo neželenih strani, ki jih blokira, namesto njih pa uporabniku prikaže – oglas.

Moj mikro, januar 2012 | Zoran Banovič