Sustav domenskih imena

Izvor: Wikipedija
(Preusmjereno s Dns)
IP Model
Sloj Protokol
Aplikacijski DNS, DHCP, TLS/SSL, TFTP, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, RTP, rlogin, …
Transportni TCP, UDP, DCCP, SCTP, IL, RUDP,
Mrežni IP (IPv4, IPv6), ICMP, IGMP, ARP, RARP, …
Podatkovni Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, DTM, Frame Relay, SMDS, …

Sustav domenskih imena ili DNS (eng. Domain Name System) je hijerarhijski distribuirani sustav imenovanja za servise te računala i ostale uređaje spojene na Internet ili privatnu mrežu.[1] On povezuje različite informacije s domenskim imenima pripisanim svakom od subjekata u domeni. Prije svega, on prevodi lako pamtljiva domenska imena u brojčane IP-adrese koje su potrebne za lociranje računalnih servisa i uređaja širom svijeta. Omogućujući globalno rašireno usmjeravanje prema ključnim riječima, DNS je osnovni element funkcionalnosti Interneta.

DNS raspoređuje odgovornost za pripisivanje domenski imena i pridruživanje tih imena IP adresama određivanjem autoritativnih imeničkih servera za svaku domenu. Autoritativnim imeničkim serverima je pripisana odgovornost za svoju točno određenu domenu i po redu se mogu pripisati drugi imenički serveri za njihove poddomene. Ovaj mehanizam je izgradio DNS kao raspoređen i tolerantan na greške i pomogao je u izbjegavanju potrebe za jednim jedinstvenim registrom koji bi se trebao neprestance konzultirati i ažurirati. Dodatno, odgovornost za održavanje i ažuriranje glavnog zapisa (Master record) za domene je raširena među mnogim registrima domenskih imena, koji se nadmeću za obavljanje posla krajnjeg korisnika (vlasnika domene). Domene se mogu pomicati iz registra u registar u bilo koje vrijeme.

DNS također precizira tehničku funkcionalnost ovih servisa baze podataka. Definira DNS protokol, precizne detaljan opis podatkovne strukture i komunikaciju izmjene podataka korištene u DNS-u kao dio pojmova Internet protokola (IP modela).

Internet podržava dva osnovna imenička prostora, hijerarhija domenskih imena[2] te adresni prostor Internet Protocol-a (IP-a).[3] DNS podržava hijerarhiju domenskih imena i omogućava servise prevođenja između sebe i adresnog prostora. Internet imenički serveri i komunikacijski protokol objedinjuje se u DNS.[4] DNS imenički server je server koji sprema DNS zapise za domenska imena, kao što su adresni (A ili AAA) zapisi, imenički serverski (NS) zapisi te zapis izmjenjivača pošte (MX) (pogledaj također listu tipova DNS zapisa); DNS imenički server odgovara na upit prema svojoj bazi podataka.

Funkcija[uredi | uredi kôd]

Često korištena usporedba kako bi se objasnio DNS je da taj servis služi kao telefonski imenik za Internet koji prevodi lakše pamtljiva imena računala u IP adrese. Na primjer, domensko ime www.primjer.com prevodi u 192.0.43.10 (IPv4) te 2001:500:88:200::10 (IPv6). Za razliku od telefonskog imenika DNS se može jako brzo ažurirati, dopuštajući promjenu lokacija servisa bez da to korisnik primijeti, koji nastavlja koristiti i dalje samo ime računala. Ovo korisnici iskorištavaju koristeći URLs (Uniform Resource Locators) koji imaju neko značenje te e-mail adrese bez da imaju saznanja kako računala ustvari pronalaze servise.

Povijest[uredi | uredi kôd]

Praksa korištenja imena kao jednostavniji i lakše pamtljiviju predstavku brojčane adrese hosta na mreži datira iz ARPANET ere. Prije no što je DNS izmišljen u 1982, svakom računalu na mreži je računalo u SRI (sada SRI international) dodjeljivalo datoteku zvanu HOSTS.TXT. HOSTS.TXT datoteka je mapirala imena u brojčane vrijednosti. Host datoteka još i danas postoji na većini modernih operativnih sustava po defaultu i obično sadrži mapiranje „localhost“ u IP adresu 127.0.0.1. Mnogi operativni sustavi koriste logiku razlučivanja naziva koja omogućava administratoru sustava konfiguriranje prioriteta izbora za raspoložive načine razlučivanja imena.

Ubrzan rast mreže je učinio centralno održavanje, ručno rađene HOSTS.TXT datoteke neodrživim; postalo je nepohodno uvođenje skalabilnijeg sustava automatski rasprostranjenih potrebnih informacija.

Na prijedlog Jon Postel-a, Poul Mockapetris-a koji su izmislili Domain Name system u 1983 godini i napisali prvu implementaciju. Izvorni tehnički podatci su bili objavljeni od Internet Engineering Task Force in RFC 882 i RFC 883 koji su bili i nadopunjeni s RFC 1035. Nekoliko dodatnih RFC-ova (Request for Comment) su predložili nekoliko dodataka temeljima DNS protokola.

U 1984. godini studenti: Douglas Terry, Mark Painter, David Riggle, i Songnian Zhou su napisali prvu implementaciju za Unix NS (server imena), nazvanu The Berkeley Internet Name Domain (BIND) server. U 1985. godini, Kevin Dunlap iz DEC je unačajno prepisao DNS implementaciju. Mike Karels, Phil Almquist i Paul Vixie su održavali BIND[5] In 1985, Kevin Dunlap of DEC substantially revised the DNS implementation. Mike Karels, Phil Almquist, and Paul Vixie have maintained BIND since then.[6] od tada. BIND je portan u Windows NT platformu iz ranih 1990-ih.

BIND se naširoko distribuirao, posebno na Unix sustavima i dominantan je DNS softver korišten na Internetu. Alternativni imenički serveri su razvijeni, dijelom iz razloga za poboljšanjem BIND-ov zapis koji je bio ranjiv raznim napadima. BIND verzija 9 se napisala od početka i ima sigurnostr zapisa usporedivu s modernim DNS softverima.

Struktura[uredi | uredi kôd]

Prostor domenskih imena[uredi | uredi kôd]

Prostor domenskih imena se sastoji od stabla domenska imena. Svaki čvor ili list na stablu ima nula ili više zapisa izvora, koji drže informacije povezane s domenskim imenom. Stablo se podjeljuje u zone počevši s korijenskom zonom. A DNS zona se može sastojati samo do jedne jedine domene, ili se može sastojati od puno domena ili poddomena, ovisno o administrativnoj nadležnosti dodijeljene upravitelju.

Administrativna odgovornost nad bilo kojom zonom se može podijeliti stvaranjem dodatnih zona. Nadležnost se dodjeljuje za dio starog prostora, obično u obliku poddomene, drugom imeničkom serveru i administrativnom identitetu. Stara zona prestaje biti nadležna za novu zonu.

DNS struktura

Sintaksa domenskih imena[uredi | uredi kôd]

Konačni opis pravila za oblikovanje domenskih imena pojavljuju se u RFC 1035, RFC 1123 i RFC 2181. Domensko ime se sastoji od jednog ili više dijelova, koje se tehnički zovu oznake, koje su dogovoreno ulančani odvojeni točkama kao primjer.com.

  • najdesniji prenosi vršnu domenu; na primjer, domensko ime www.primjer.com pripada com vršnoj domeni
  • hijerarhija domena se smanjuje od desna na lijevo, svaka oznaka na lijevo označava podvrstu domene na desno. Na primjer, oznaka primjer određuje poddomenu com domene i www je poddomena primjer.com-a. Ovo stablo podvrsta može imati 127 razina.
  • svaka oznaka može imati 63 znaka. Popuno domensko ime ne može prelaziti 253 znaka u svojem tekstualnom prikazu. U unutarnjem binarnom DNS prikazu maksimalna dužina zahtijeva 253 okteta spremnika, jer također sprema dužinu imena. U praksi, neki domenski registri mogu imati neka kraća ograničenja
  • DNS imena tehnički se mogu sastojati od bilo kojeg znaka koji se može predstaviti oktetom. Kakogod, dopuštena formulacija domenskih imena u DNS korijenskoj zoni,te u većini ostalih poddomena, koristi željen oblik i skup znakova. Znakovi dopušteni u oznakama su podskup ASCII skupa znakova te uključuju znakove a pa sve do z, A do Z, 0 do 9, te minus. ovo pravilo je poznato kao LDH pravilo (letter, digits, hyphen). Domenska imena su protumačena kao neovisna o veličini znaka. Oznake ne mogu započeti ili završiti crticom (minusom). Postoji i dodatno pravilo da u biti vršne domene ne smiju biti samo brojčani znakovi
  • Ime računala (hostname) je ime koje ima pridruženu barem jednu IP adresu. Na primjer, domenska imena www.primjer.com i primjer.com su također imena računala, gdje com domena nije.

Međunarodna domenska imena[uredi | uredi kôd]

Ograničen skup ASCII znakova dozvoljneih u DNS-u sprečavaju predstavljanje imena i riječi raznih jezika u njihovom abecednom prikazu. Da bi se to omogućilo, ICANN je odobrila Sistem međunarodnih domenskih imena u aplikacijama (Internationalizing Domain Names in Applications – IDNA), kojima korisničke aplikacije, kao što je web preglednik, mapiraju Unicode znakovlje u odgovarajući DNS znakovni skup koristeći Punycode. U 2009. godini ICANN je dozvolila instalaciju međunarodnih kodova domenskih imena vršnih domena. Zatim je puno registara postojećih vršnih domenskih imena (TLD –top level domain) prihvatilo IDNA sustav.

Imenski poslužitelj[uredi | uredi kôd]

Sustav domenskog imena (DNS) se održava sustavom distribuirane baze podataka, koja koristi klijentsko – serverski način. Čvor ove baze podataka su imenski poslužitelji. Svaka domena ima barem jedan autoritativni DNS server koji objavljuje informacije o toj domeni i imenskim poslužiteljima bilo koje podređene domene. Korijenski imenski server poslužuje vrh hijerarhije, serveri koji ma se šalje upit kada se traži (razlučuje) TLD.

Autoritativni imenski poslužitelj[uredi | uredi kôd]

Autoritativni imenski server je server koji daje odgovore koje je stvorio izvor, na primjer, domenski administrator ili dinamičkom DNS metodom, za razliku od odgovora koji su ostvareni prilikom uobičajenog DNS upita nekom drugom imenskom poslužitelju. Samo autoritativni poslužitelj vraća odgovor na upite o domenskim imenima koja je konkretno odredio administrator.

Drugim riječima, autoritativni imenski poslužitelj dopušta rekurzivnim imenskim poslužiteljima da znaju koji DNS podatak (IPv4, IPv6, lista dolazećih mail poslužitelja, itd) dano ime hosta (kao www.primjer.com) ima. Kao jedan primjer, autoritativni imenski poslužitelj za „primjer.com“ kaže rekurzivnim imenskim poslužiteljima da www.primjer.com ima IPv4 192.0.45.10.

Autoritativni imenski poslužitelj može biti ili glavni poslužitelj (master) ili podređeni (slave) poslužitelj. Glavni poslužitelj je onaj koji sprema izvorne kopije za sve zonske zapise. Podređeni poslužitelj koristi mehanizam automatskog ažuriranja DNS protokola u komunikaciji sa svojim glavnim (nadređenim) da bi održao istovjetnu kopiju glavnih zapisa.

Komplet autoritativnih imenskih poslužitelja se moraju pripisati svakoj DNS zoni. NS zapis o adresama tok kompleta se mora spremiti u matičnoj zoni (parent zone) i u samim poslužiteljima.

Kada se domenska imena registriraju u registru domenskih imena, njihova instalacija u domenskoj registraturi vršnih domena zahtijeva pripisivanje primarnog imenskog poslužitelja te barem jednog sporednog imenskog poslužitelja. Više imenskih poslužitelja omogućuje da domena još funkcionira iako je jedan od imenskih poslužitelja nepristupačan ili ne radi. Određivanje primarnog imenskog poslužitelja je jedino određeno prioritetom koje je dan registru domenskih imena. Iz ovog razloga, obično samo potpuno domensko ime (FQDN) imenskog poslužitelja je potrebno, ako poslužitelji nisu sadržani u registriranim domenama u kojem slučaju i odgovarajući IP je potreban također.

Primarni imenski poslužitelji su obično glavni imenski poslužitelji, dok sporedni imenski poslužitelji se mogu uvesti kao podređeni poslužitelji.

autoritativni poslužitelj pokazuje status opskrbe točnim odgovorima, smatran autoritativnim, stavljajući softversku oznaku (protokolsku strukturu bita), nazvan bit autoritativnog odgovora (AA) u svojim odgovorima. Oznaka je obično uočljivo prikazana u izlazu alata za administraciju DNS upita (kao dig - domain information groper) da bi pokazao kao odgovarajući imenski poslužitelj koji je autoritativan za domensko ime u upitu.

Djelovanje[uredi | uredi kôd]

Mehanizam razlučivanja adresa[uredi | uredi kôd]

Razlučitelji domenskih imena utvrđuju odgovarajuće poslužitelje domenskih imena odgovorne za domenska imena u pitanju po redoslijedu upita počevši s najdesnijom (vršnom) domenskom oznakom. Proces podrazumijeva:

  1. Mrežni host je konfiguriran s početnom predmemorijom (hints) poznatih adresa poslužitelja korjenskih imena (root nameserver). Takvu nagovještajnu (hint) datoteku administrator iz pouzdanih izvora periodički ažurira.
  2. Upit jednom od korjenskih poslužitelja za pronalaženje nadležnosti za vršnu domenu (TLD).
  3. Upit dobivenom TLD poslužitelju za adresom DNS poslužitelja koji je nadležan za domenu druge razine
  4. Ponavljanje prijašnjih koraka da bi se obradila svaka domenska oznaka redom, sve dok u krajnjem koraku se ne vrati IP adresa traženog hosta

Mehanizam u ovom jednostavnom obliku bi stavio veliki operativni teret na korijenske poslužitelje, sa svakom potragom za adresom tražeći odgovor jednog od njih. Bivajući ključni cjelokupnu funkcionalnost sustava, takvo obilno korištenje bi stvorilo usko grlo za milijarde upita svakog dana. U stvarnosti predmemoriranje (caching) se koristi u DNS poslužitlejima kako bi se nadišao ovaj problem, ta kao ishod, korijenski imenski poslužitelji su u stvarnosti uključeni u mali dio cjelokupnog prometa.

Rekurzivni i predmemorijski imenski poslužitelj[uredi | uredi kôd]

U teoriji, autoritativni imenski poslužitelji su dovoljni za rad Interneta. Kako god, samo s djelovanjem autoritativnih imenskih poslužitelja, svaki DNS upit mora početi s rekurzivnim upitima u korjenkoj zoni DNS-a i svaki korisnički sustav mora implementirati softver koji je u mogućnosti prevesti rekurzivne operacije.

Da bi se poboljšala učinkovitost, smanjio DNS promet preko Interneta te povećala učinkovitost krajnjih korisničkih aplikacija, DNS podržava DNS predmemorijske poslužitelje koji spremaju DNS upit te ovise o vremenskom periodu određenom u konfiguraciji (time-to-live) zapisa domenskog imena u pitanju. Obično, takvi predmemorijski DNS poslužitelji, također zvani DNS caches, također uključuju i rekurzivni algoritam koji je neophodan da bi se razotkrio dan imenski znakovni zapis koji počinje s DNS korijenom sve do autoritativnog imenskog poslužitelja za traženu domenu. Ovakvom mogućnošću uključenom u imenski poslužitelj korisničke aplikacije dobivaju efikasnost u izgledu i djelovanju.

Kao primjer, ako korisnik želi znati IP za www.primjer.com, poslat će rekurzivnom predmemorijskom imenskom poslužitleju DNS zahtjev počevši s „ja bih htio IPv4 za www.primejer.com.“ Rekurzivni imenski poslužitelj će tada pitati autoritativne imenske poslužitelje sve dok ne dobije odgovor na taj upit (ili vrati grešku ako nije moguće dobiti odogovor) – u ovom slučaju 192.0.45.10

Kombinacija DNS predmemorijskog spremanja i rekurzivnih funkcija imenskom poslužitelju nije obvezatna; funkcije se mogu uvoditi neovisno u servere ovisno o potrebi.

ISP-ovi (Internet Service Provider) obično omogućuju svojim korisnicima korištenje i rekurzivnog i predmemorijskog imenskog poslužitelja. Dodatno, mnogi kućni usmjerivači imaju DNS predmeoriju i rekurzore kako bi poboljšali učinkovitost lokalne mreže.

DNS prevoditelj[uredi | uredi kôd]

Korisnička strana DNS-a se zove DNS prevoditelj. On je odgovoran za pokretanje i određivanje redoslijeda u upitima koji u konačnici vode do potpunog otkrivanja (prevođenja) traženih izvora; pri. prevođenje domenskog imena u IP adresu.

DNS upit može biti ili ne-rekurzivni ili rekurzivni:

  • ne-rekurzivni upi je onaj u kojem DNS poslužitelj daje zapis za domenu za koju je on odgovoran (autoritativan) ili omogućava djelomična rješenja bez slanja upita prema drugim poslužiteljima
  • rekurzivni upit je onaj za koji DNS poslužitelj će u potpunosti odgovoriti na upit (ili dati grešku) pitajući neke druge imenske poslužitelje ako je potrebno. Nije neophodno imati DNS koji podržava rekurzivni upit.

Prevoditelj, ili neki drugi DNS server koji se ponaša rekurzivno u ume prevoditelja, pregovara korištenje rekurzivnih servisa koristeći bitove u zaglavljima upita.

Prevođenje obično podrazumijeva ponavljanje kroz nekoliko imenski poslužitelja da bi se pronašla tražena informacija. Kakogod, neki prevoditelji rade vrlo jednostavno komunicirajući samo s jednim imenskim poslužiteljem. Ovi jednostavni prevoditelji (tzv. „stub resolvers“ ) oslanjaju se samo na rekurzivne imenske poslužitelje da bi pronašli informaciju.

Cirkularna ovisnost i slijepljeni zapis[uredi | uredi kôd]

Imenski poslužitelji po određenjima se prepoznaju po imenu prije nego po IP adresi. Ovo znači da prepoznavanje imenskog poslužitelja mora odaslati još jedan DNS zahtjev da bi se saznala IP adresa poslužitelja na koji se odnosi. Ako dano ime u određenjima je poddomena domene za koju su dana određenja tamo postoji cirkularna ovisnost. U ovom slučaju imenski poslužitelj koji pruža određenja mora pružiti jednu ili više IP adresa autoritativnih imenski poslužitelja spomenutih u određenjima. Ova informacija se zove glue (lijepak). Imenski poslužitelj koji je određen pruža ovaj lijepak (glue) u obliku zapisa u dodatnim dijelovima DNS odgovora te pruža određenje u dijelu odgovora (answer section) odgovora.

Na primjer, ako autoritativni imenski poslužitelj primjer.org je ns1.primjer.org, računalo koje otkriva www.primjer.org sada prvo otkriva ns1.primjer.org. Pošto je ns1 jedan sadržano u primjer.org ovo ponajprije traži otkrivanje primjer.org koji predstavlja cirkularnu ovisnost. Da bi se razbila ovisnost, imenski server za org vršnu domenu uključuje lijepak (glue) zajedno s određenjima za primjer.org. Glue zapisi su adresni zapisi koji pružaju IP adresu ns1.primjer.org. Prevoditelj koristi jedan ili više ovih IP adresa da bi pitao neki od autoritativnih servera, koji dopuštaju izvršenje DNS upita.

Predmemoriranje zapisa[uredi | uredi kôd]

Proces prevođenja DNS-a smanjuje opterećenje na pojedinačne poslužitelje predmemoriranjem zapisa DNS zahtjeva nakon odgovora na neko vrijem. Ovo podrazumijeva lokalno spremanje i daljnje propitivanje kopije umjesto stvaranja daljnjeg novog zahtjeva. Vrijeme na koje prevoditelj predmemorira DNS odgovor određeno je vrijednošću koja se zove vrijeme života –TTL (time to live) koje je povezano sa svakim zapisom. TTL postavlja administrator DNS servera koji daje autoritativne odgovore. Ova vremena valjanosti mogu varirati od samo jedne sekunde do dana ili čak tjedana.

Kao vrijedno pažnje ove distribuirane i predmemorirane arhitekture, promjene u DNS zapisima se ne obznanjuju kroz mrežu odmah po promjeni, već zahtijevaju da sve predmemorije izgube valjanost i budu osvježene poslije TTL-a. RFC 1912 predlaže osnovna pravila za određivanje prikladnih TTL vrijednosti.

Neki prevoditelji mogu zanemariti TTL vrijednosti jer protokol podržava predmemoriranje sve do 68 godina ili uopće ne. Negativno predmemoriranje, pri. predmemoriranje činjenice da ne postoji zapis, je određeno imenskim poslužiteljima koji su nadređeni za zonu koja mora uključiti SOA zapis (Početak nadležnosti) s izvještavanjem o ne postojanju traženog tipa. Vrijednost MINIMUM polja SOA zapisa i TTL same SOA-e se koristi da bi se ustanovio TTL za negativni odgovor.

Obrnuto pretraživanje (reverse lookup)[uredi | uredi kôd]

Obrnuto pretraživanje je upit u kojem je poznata IP adresa. Više domenskih imena mogu biti pridruženi s jednom Ip adresom. DNS sprema IP adrese u obliku domenskih imena kao posebno oblikovana imena u usmjernom zapisu (PTR) unutar infrastrukture vršne domene arpa. Za IPv4 domena je u in-addr.arpa. Za IPv6 domena za obrnuto pretraživanje ip6.arpa. IP adresa je predstavljena kao ime u oktetu obrnutog redoslijeda za IPv4 te za IPv6 četverobitu prikazanom u obrnutom redoslijedu.

Kada izvodi obrnuto pretraživanje, DNS korisnik pretvara adrese u ove oblike prije upita za PTR zapisom prateći lanac delegiranja kao i za svaki DNS upit. Na primjer, pretpostavimo da je IPv4 adresa 208.80.152.2 pripisana Wikimediji, u obrnutom pretraživanju je predstavljena kao : 2.152.80.208.in-addr.arpa. Kada DNS prevoditelj dohvati usmjerivač (PTR), počinje propitkivanjem korijenskih poslužitelja, koji pokazuju prema serverima Američkog registra za internet brojeve (American Registry for Internet Numbers – ARIN) za 208.in-addr.arpa zonu. ARIN-ov poslužitelj daje 152.80.208.in-addr.arpa Wikimediji prema kojoj prevoditelj šalje daljnji zahtjev za 2.152.80.208.in-addr.arpa koji razultira u autoritativnom odgovoru.

Klijentsko pretraživanje[uredi | uredi kôd]

Korisnici obično ne razgovaraju direktno s DNS prevoditeljima. Umjesto toga rješavanje DNS-a se događa transparentno u aplikacijama kao što su web preglednici, e-mail klijenti te ostale Internet aplikacije. Kada aplikacija napravi zahtjev koji zahtjeva pretragu za domenskim imenom, takav program šalje zahtjev za prevođenjem prema DNS prevoditelju u lokalnom operativnom sustavu, koji dalje po redu preuzima i odrađuje razgovore koji su im potrebni.

DNS prevoditelj će uvijek nepromjenjivo imati predmemoriju (pogledaj iznad) koja sadrži nedavne pretrage. Ako predmemorija može pružiti odgovor na zahtjev, prevoditelj će vratiti vrijednosti u predmemoriju programa koji je uputio zahtjev. Ako predmemorija ne sadrži odgovor, prevoditelj će poslati zahtjev prema DNS-ima koji su mu određeni. U slučaju kućnih korisnika ISP obično osigura i DNS server, te će takav korisnik morati unijeti DNS ručno ili će dopustiti DHCP-u da ga postavi, kakogod, tamo gdje je sistem administrator postavio da se koristi njihov vlastiti DNS, DNS prevoditelj pokazuje prema odvojeno održavanim imenskim serverima organizacije. U bilo kojem događaju, imenski serveri koji su upitani će pratiti proces iscrtan gore sve dok uspješno nađe rješenje ili ne. On potom vraća rezultat DNS prevoditelju, pretpostavljajući da je pronašao rješenje, prevoditelj propisno predmemorira taj rezultat za buduće potrebe te predaje rezultat softveru koji je i pokrenuo zahtjev.

Pogrešno razlučivanje[uredi | uredi kôd]

Neki veliki ISP-ovi su konfigurirali svoje DNS servere da krše pravila, kao što je nepoštivanje TTL-a ili prikazujući da domensko ime ne postoji samo iz razloga što njihovi imenski poslužitelji ne odgovaraju.

Neke aplikacije, kao što je web preglednik, zadržavaju svoju unutarnju DNS predmemoriju da bi izbjegli ponovne dohvate preko mreže. Ova praksa može stvoriti dodatne poteškoće kada se otklanjaju DNS poteškoće, jer skriva povijest takvih podataka. Ove predemorije bočno uzimaju kratko vrijeme predmemorije, oko jedne minute.

Interent Explorer predstavlja značajnu iznimku: verzije sve do IE 3.x spremaju zapise na 24 sata kako je zadano. Internet Explorer 4.x i kasnije verzije (sve do IE8) smanjuje to zadano vrijeme na pola sata, koje se može promijeniti u odgovarajućim ključevima registra.

Ostale aplikacije[uredi | uredi kôd]

Sustav koji je naglašen iznad pruža ponešto jednostavniji scenarij. Sustav domenskog imena (DNS) uključuje nekoliko drugih funkcija:

  • imena hostova i IP adrese se ne moraju nužno podudarati jedan na jedan. Više imena hostova mogu odgovarati jednoj IP adresi: kombiniran s virtualnim hostingom, ovo omogućava da jedan stroj služi mnogim web stranicama. S druge strane, jedno ime hosta može odgovarati mnogim IP adresama: ovo može olakšati toleranciju na pogreške ili raspodjelu opterećenja te također omogućava da se stranica neprimjetno fizički premjesti.
  • Postoji puno primjena DNS osim prevođenja imena u IP adrese. Na primjer, MTA (posrednik premještanja pošte) koristi DNS kako bi pronašao gdje treba dostaviti e-poštu za određenu adresu. Domensko u mapiranje za razmjenu pošte omogućeno MX zapisom dopušta još jedan sloj tolerancije na pogrešku i raspodjelu opterećenja povrh imena u IP adresno mapiranje.
  • E-pošta crne liste (e-mail blacklist): DNS se također koristi za uspješno spremanje i raspodjelu Ip adresa e-pošte hostovan na crnoj listi. Uobičajen način je stavljanje IP adrese tog hosta u pod-domene ili u domenu višeg ranga te razlučivanje tog imena da bi se pokazalo pozitivno ili negativno. Ovdje je hipotetski primjer crne liste:
    • 102.3.4.5 je na crnoj listi --> stvara 5.4.3.102.blacklist.primjer i razlučuje se u 127.0.0.1
    • 102.3.4.6 nije --> 6.4.3.102.blacklist.primjer nije pronađen ili zadaje u 127.0.0.2
    • serveri e-pošte potom mogu tražiti blacklist.primjer kroz DNS mehanizam da bi se pronašlo da li je traženi host povezan s njima na crnoj listi. Danas mnoge takve crne liste su ili besplatne ili se plaća pretplata na njih te su uglavnom dostupne za koirštenje administratorima e-pošte ili anti-spam softverima.
  • Okvir politike pošiljatelja i Domenskih ključeva (Domain Keys), umjesto stvaranja svojih vlastitih tipova zapisa su konstruirani da iskoriste prednost drugog tipa DNS zapisa, TXT zapis.
  • Da bi se osigurala elastičnost u događajima greške računala, više DNS poslužitelja su obično postavljena za pokrivanje svake domene, i na vršnom nivou, trinaest snažnih poslužitelja korjenskih imena postoje, s dodatnim „kopijama“ nekih od njih raspodijeljenjih širom svijeta preko Anycast-a.
  • Dinamički DNS (engl. Dynamic DNS, ponekad zvan DDNS) dozvoljavanju klijentu da ažurira svoj DNS unos kao promjenu IP adrese, na primjer, kada se seli između ISP-ova ili mobilnih HotSpot-ova.

Detalji protokola[uredi | uredi kôd]

Zapis izvora (RR) je osnovni podatkovni element u sustavu domenskih imena. Svaki zapis ima tip (A, MX, etc.), vrijeme isteka vrijednosti, klasu te neki tip specifičnih podataka za taj tip. Zapisi izvora istog tipa određuje skup izvornog zapisa (RRset). Redoslijed izvora zapisa u skupu, vraćenih od razlučivača aplikaciji, je nedefiniran, ali počesto poslužitelji ih poredaju kružnim djelovanjem (round-robin) da bi postigli balansiranje opterećenja na svjetskom poslužitelju. DNSSEC, kakogod, radi na potpunim skupovima zapisa izvora po abecednom redu.

Kada su poslani preko IP mreže, svi zapisi koriste uobičajeni format koji je određen u RFC 1035.

Polje

Objašnjenje

Lenght (okteti)

IME

Ime čvora na koji se ovaj zapis odnosi

(varijabla)

TIP

Tip RR-a u brojčanom zapisu (pri. 15 za MX RR)

2

RAZRED

Kod razreda

2

TTL

Broj sekundi vrijednosti RR-a (maks. je 231-, što je

otprike 68 god.)
 

4

RDDUŽINA

Dužina RDATA polja

4

RPODATAK

Dodatni podatak koji se odnosi na RR

(varijabla)

IME je puni naziv domene čvora na stablu. U stvarnosti, ime se može skratiti koristeći kompresiju oznaka gdje završetci domenskih imena ranije spomenutih u paketu se mogu zamijeniti za kraj trenutnog domenskog imena. Samostojeće @ se koristi za označavanje trenutnog porijekla.

TIP označava vrstu (tip) zapisa. On naznačava oblik podatka i daje nagovještava njegovu namjeru korištenja. Na primjer, A zapis e koristi za prevođenje iz domenskog imena u IPv4 adresu, NS zapis traži koji imenski poslužitelji mogu odgovoriti na upit prema DNS zoni, MX zapis određuje poštanski poslužitelj koji obrađuje poštu za domenu naznačenu u adresi e-pošte.

KLASA za zapis je određena u IN (za Internet) za uobičajene DNS zapise koji obuhvaćaju Internet imena računala, poslužitelja ili Ip adrese. Dodatno, postoje klase Chaos (CH) i Hesoid (HS). Svaka klasa je neovisan imenski prostor s potencijalno različitim odredbama DNS zona.

Osim zapisa izvora definiranih u datoteci zone, sustav domenskog imena također određuje nekoliko tipova zahtjeva koji se koriste samo u komunikaciji s ostalim DNS čvorovima (na žici), kao što je kada se izvode prebacivanja zona (AXFR/IXFR) ili za EDNS (OPT).

Zamjenski DNS zapisi (Wildcard DNS zapis)[uredi | uredi kôd]

Sustav domenskog imena podržava zamjenske DNS zapise koji određuje imena koja počinju s oznako zvjezdice (*), pri. *.primjer. DNS zapisi koji pripadaju zamjenskim domenskim imenima određuju pravila za izrađivanje zapisa izvora unutar jedne DNS zone zamjenjujući cijelu oznaku s odgovarajućim komponentama traženog imena, uključujući bilo kojeg nasljednika. Na primjer, u DNS zoni x.primjer, sljedeća konfiguracija određuje da sve poddomene, uključujući i poddomene poddomena x.primjera, koriste izmjenjivač pošte a.x.primjer. Zapisi za a.x.primjer su potrebni da bi se odredio izmjenjivač pošte.

Hijerarhija[uredi | uredi kôd]

Kad bi na svijetu postojao samo jedan DNS poslužitelj, bio bi preopterećen, tako danas postoji 13 korijenskih DNS poslužitelja. Pored toga je važno i da DNS podjelom na tzv. zone omogućuje hijerarhijsko raspodijeljivanje administrativnih ovlasti potrebnih za održavanje informacija. Svaki ISP ima DNS poslužitelje (najmanje 2) za svoje korisnike. DNS stablo je podijeljeno u zone. Zona je skup čvorova u DNS stablu administriranih od strane jednog DNS poslužitelja. Jedan DNS poslužitelj može administrirati više zona, tj. može biti autoritativni imenski poslužitelj za više domena.

DNS pojmovi[uredi | uredi kôd]

  • Delegacija zone je proces kad se kontrola nad jednom zonom prebacuje na drugi imenski poslužitelj.
  • Resolver je dio DNS poslužitelja koji pretražuje informaciju o imenima, bilo u samom DNS poslužitelju, bilo traženjem informacije od drugog DNS poslužitelja.
  • FQDN – Fully Qualified Domain Name
  • autoritativni imenski poslužitelj – poslužitelj u koji čuva parove (IP adresa, ime) za jednu zonu.
  • primarni DNS poslužitelj – poslužitelj koji čuva podatke o parovima (IP adresa, ime) za zone za koje je on autoritativan
  • sekundarni DNS poslužitelj – pričuvni DNS poslužitelj – periodično prima podatke s opisom zona
  • Caching-only DNS poslužitelj – onaj koji nije authoritative ni za jednu zonu.
  • Zone transfer – prijenos informacija o zoni s primarnog na sekundarni DNS poslužitelj.

Napomena: DNS poslužitelj podatke o zonama može čuvati u datotekama ili u bazi podataka.

Izvori[uredi | uredi kôd]

  1. Bruno Jagić. 2013. Poslužitelj sustava domenskih imena temeljen na raspodijeljenoj tablici s raspršenim adresiranjem. Pristupljeno 21. ožujka 2021. journal zahtijeva |journal= (pomoć)
  2. RFC 1034, Domain Names - Concepts and Facilities, P. Mockapetris, The Internet Society (November 1987)
  3. RFC 781, Internet Protocol - DARPA Internet Program Protocol Specification, Information Sciences Institute, J. Postel (Ed.), The Internet Society (September 1981)
  4. RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris, The Internet Society (November 1987)
  5. Terry, Douglas B., et al. (June 12–15, 1984). "Summer Conference, Salt Lake City 1984: Proceedings". USENIX Association Software Tools Users Group. pp. 23–31. http://www.eecs.berkeley.edu/Pubs/TechRpts/1984/5957.html 
  6. Internet Systems Consortium. The Most Widely Used Name Server Software: BIND. History of BIND. Pristupljeno 28. srpnja 2013.

Vanjske poveznice[uredi | uredi kôd]