# Domain Name System

Komunikacija između pojedinih računara u nekoj mreži se zasniva na principu IP adresa koje su potpuno građene ciframa kao: 156.210.11.78. Pošto je teško zapamtiti, te zadržati preglednost nad npr. 200 ovakvih adresa, uveden je sistem koji veže adresu jednog računara za jedno ime. Tako je moguće npr. računaru s adresom 156.210.11.78 dodijeliti ime MOJRACUNAR i za sve administrativne poslove koristiti samo to ime. Ako se naknadno prebaci računar u drugu mrežu (*subnet*), nije potrebno pamtiti novu IP adresu dok njegovo ime ostaje isto.

DNS je u stvari jedna baza podataka u kojoj su upisana sva imena i odgovarajuće IP adrese pojedinih računara, te grupa funkcija koje omogućavaju prevođenje istih. Treba naglasiti da npr. cijeli Internet, koji je također jedna velika mreža, koristi DNS mehanizam.

## Vrste DNS sistema

Postoje dvije metode koje se, ovisno o veličini mreže, koriste za prevođenje IP adresa.

* **Datoteka /etc/hosts** (Linux)

U manjim mrežama je dovoljno unijeti adrese i imena lokalnih računara u ovu datoteku. U nju je također moguće navesti i udaljene računare (npr. servere provajdera). Međutim, ova metoda je statičkog karaktera jer ako se neka IP adresa u međuvremenu promijeni, moramo ručno unijeti nove podatke.

* **Domain Name System (DNS)**

Ovaj sistem dijeli cijeli Internet u pojedine domene. Svaka domena koristi *nameservere* koji poznaju IP adrese i imena računara koji se nalaze u području te domene. Svi *nameserveri* su međusobno povezani u obliku stabla te se mogu posmatrati kao jedna velika centralna baza podataka.

## *Domain Name Space*

Internet je podijeljen na pojedina područja od kojih svako ima određeno značenje. Ta područja podijeljena su u obliku stabla i podsjećaju na organizaciju direktorija na hard disku jednog računara. Struktura interneta prikazana je na slici:

Domene složene u stablo, podijeljene u zone, svaku opslužuje nameserver
### *Root Domain*

Na vrhu se, kao što vidimo, nalazi tzv. root domena koja se označava tačkom. U praksi se ta tačka ignoriše tako da je ne moramo koristiti.

### *Top Level Domain*

Drugo područje pripada tzv. Top Level Domeni i iz nje se može otprilike pretpostaviti kojoj organizaciji ili državi ta domena pripada.Ispod ili iznad TLD (Top Level Domene) ne može se nalaziti neka druga TLD. Za Bosnu i Hercegovinu važi **.ba** kao TLD što znači da je firma iz Bosne i Hercegovine ili je samo prijavljena na njenom području.

### *Second Level Domain*

*Second Level Domain* je sljedeće niže područje ispod TLD i označava ime pod kojim se neka firma može registrovati. Uzmimo za primjer da firma "velikafirma" želi da registruje domenu na internetu sa nazivom velikafirma.ba. Prvo moramo saznati da li je ta domena slobodna. Centralno mjesto za registraciju domena je InterNIC ([ www.internic.net). Ovdje je također moguće prekontrolisati dostupnost slobodnih domena.

### Poddomena

Ispod gore navedenih domena moguć je još jedan sloj domena koji se zove **poddomena** (engleski: *subdomain*). U praksi se rijetko susreće sa poddomenama jer je za njihovo korištenje potrebno pamtiti dugačka imena. Univerziteti npr. često koriste poddomene jer su podijeljeni u više stručnih područja. Na slici je prikazan jedan računar koji se nalazi pod poddomenom *evropa*. Iz toga je moguće zaključiti da je spojen sa računarom koji je postavljen u Evropi.

## Zone

Ako se rezerviše domena *velikafirma.ba* bit će potreban jedan sopstveni DNS server koji je zaslužen za sve hostove koji pripadaju toj domeni. Sve informacije koje se odnose na hostove snimljene su u jednoj datoteci koja u praksi često nosi naziv "zone-file". Pod zonom se podrazumijeva područje za koje je naš DNS server zaslužen. U našem primjeru bi znači jedan server mogao rukovoditi zonama *evropa.velikafirma.ba* kao i *azija.velikafirma.ba* i svi hostovi bi bili uvedeni u jednoj datoteci. Ipak, u praksi se često za svaku zonu koristi poseban DNS server jer ta konstalacija znatno olakšava administraciju.

## Redoslijed ispitivanja

Ispitivanje DNS servera od strane clienta je vrlo interesantan postupak. Razlikujemo dvije vrste ispitivanja:

* **Rekursivno ispitivanje**

 Kao prvo korisnik upisuje u svoj browser ime računara sa kojim želi da uspostavi vezu, npr azija.velikafirma.ba. Nakon toga se aktivira funkcija za prevođenje imena tzv. resolver koja upita lokalni DNS server za ip adresu tog imena. Server sada traži u svojoj datoteci za zonu kao i u svom catche-u. Ako nađe traženu IP adresu, vraća je clientu kao odgovor, u suprotnom vraća poruku da adresa nije uvedena.
* **Forward-Lookup**

 Kao prvo korisnik upisuje u svoj browser ime računara sa kojim želi da uspostavi vezu, npr. evropa.velikafirma.ba. Nakon toga se aktivira funkcija za prevođenje imena tzv. resolver koja upita lokalni DNS server za IP adresu tog imena. Server sada traži u svojoj datoteci za zonu kao i u svom catche-u. Ako nađe traženu ip adresu, vraća je clientu kao odgovor,ako ne onda taj DNS server šalje pitanje na DNS server koji je zadužen za root domenu koju smo gore objasnili i koji mora biti unešen u lokalnom DNS serveru. Ako i ovaj ne pronađe odgovarajuću
adresu, onda šalje pitanje na DNS server koji je autoriziran za .ba domenu. Ako ovaj pronađe adresu, vraća je direktno lokalnom DNS serveru, ako ne onda šalje pitanje DNS serveru zaduženom za domenu *velikafirama*.Postupak se ponavlja sve dok se tražena adresa ne pronađe.

## *Cache Name Server*

Zadatak jednog Cache Name Servera je da oslobodi odnosno rastereti druge name servere. U njemu ne postoji datoteka za zonu, već se sve informacije prikupljaju u sopstvenom cache-u ( čitaj: kešu ). Cache je nakon podizanja sistema prvo potpuno prazan i vremenom se postepeno puni informacijama. Ako clienti često koriste iste informacije za neki udaljeni računar, intervencija će biti puno brža jer naš Cache Name server nakon prvog ispitivanja udaljenih DNS servera pamti informacije u svom Cache-u.

## Reference

## Vanjski linkovi

* Vixie, Paul (4 May 2007). "DNS Complexity". ACM Queue. Arhivirano s originala, 29 March 2023.
* Ball, James (28 February 2014). "Meet the seven people who hold the keys to worldwide internet security". *The Guardian*. Guardian News & Media Limited. Pristupljeno 28 February 2014.
* Kruger, Lennard G. (18 November 2016). "Internet Governance and the Domain Name System: Issues for Congress" (PDF). *Congressional Research Service*. Pristupljeno 27 July 2024.
* Zytrax.com, Open Source Guide – DNS for Rocket Scientists.
* Mess with DNS – stranica na kojoj možete eksperimensirati sa DNS.
*