==== DNS ==== DNS (//Domain Name System//) protokol je aplikacijskog sloja koji olakšava dobivanje IP adresa. Postoje i drugi protokoli specifični za aplikacijski sloj koji su dizajnirani da olakšaju dobivanje adresa za mrežne uređaje poput [[dhcp|DHCP-a]]. Te su usluge bitne jer bi inače bilo potrebno pamtiti IP adrese resursa kojem pristupamo. Ovako je dovoljno zapamtiti samo URL. Mrežni su uređaji označeni numeričkim IP adresama za slanje i primanje podataka preko mreža. Nazivi domena stvoreni su kako bi se brojčana adresa pretvorila u jednostavno i prepoznatljivo ime. Računalima je svejedno, no nama je ljudima puno lakše zapamtiti nazive domena (engl. //fully qualified domain name//, FQDN) poput google.com umjesto 172.217.17.110 što je numerička (IP) adresa ovog poslužitelja. Ako Google danas-sutra odluči promijeniti numeričku adresu svoje domene, to je nebitno za klijenta jer naziv domene ostaje isti. Nova adresa se jednako kao i dotad povezuje s postojećim nazivom domene. DNS protokol definira automatiziranu uslugu koja povezuje nazive resursa s potrebnom IP adresom. Komunikacija DNS protokola ostvaruje se formatiranom porukom koja se koristi za sve vrste upita klijenata i odgovora poslužitelja, poruka o pogrešci i informacija o zapisu resursa između više poslužitelja. Tijek dobivanja IP adrese iz FQDN-a je sljedeći: - korisnik želi pristupiti nekom web poslužitelj i upiše FQDN u preglednik - DNS poruka (engl. //query//) poslana je s klijentskog računala na njegov DNS poslužitelj; definiranje DNS poslužitelja spada u osnovne mrežne postavke nekog uređaja na mreži - DNS poslužitelj u svojoj tablici pronađe taj FQDN i IP adresu koja mu pripada - odgovor na DNS upit (//DNS query response//) poslan je s DNS poslužitelja natrag na klijentsko računalo koje je poslalo poruku; taj odgovor sadržava informaciju o IP adresi tražene domene - klijentsko računalo koristi tu dobivenu IP adresu da napravi upit na željeni web poslužitelj ==Format DNS poruke== DNS poslužitelj pohranjuje različite vrste zapisa resursa koji se koriste za pronalaženje imena. Svaki zapis sadrži ime, adresu i tip zapisa. Tipovi zapisa mogu biti sljedeći: * **A** - IPv4 adresa krajnjeg uređaja * **NS** - Autoritativni poslužitelj za to DNS ime (tj. adresa poslužitelja koji sadrži zapis za to ime domene) * **AAAA** - IPv6 adresa krajnjeg uređaja (tzv. //quad A//) * **MX** - Mail exchange zapis Proces DNS poslužitelja koji dobije DNS upit je sljedeći: Kada klijent postavi upit, poslužitelj prvo pregledava vlastite zapise kako bi našao traženo ime. Ako ga ne može naći unutar svojih pohranjenih zapisa, kontaktira druge poslužitelje. Kad se pronađe podudaranje, DNS odgovor se pošalje izvornom poslužitelju zahtjeva. On privremeno pohranjuje traženi zapis u priručnu memoriju (engl. //DNS cache//) da bude dostupan još neko vrijeme ako se ponovno zatraži. DNS klijent usluga na Windows računalima također pohranjuje prethodno razriješena imena u memoriju. Naredbom **ipconfig /displaydns** ispisat će nam pohranjene DNS unose. Naredbom **ipconfig /flushdns** brišemo zapise iz priručne memorije. Tablica prikazuje format poruke koji se koristi za sve vrste upita klijenta i odgovora poslužitelja, za poruke o pogreškama ili prijenosa informacija o tipu zapisa. ^ Sekcija DNS poruke ^ Opis ^ |Upit (//Question//) | Upit za DNS poslužitelj | |Odgovor (//Answer//) | Odgovor sa zapisom traženog resursa | |Autoritet (//Authority//) | Zapis o autoritetu koji sadrži originalno traženi zapis | |Dodatno (//Additional//) | Dodatne informacije | ==DNS hijerarhija== DNS protokol za organizaciju svojih podataka pohranjuje imena domena koristeći se hijerarhijskim sustavom. Svaki DNS poslužitelj održava datoteku baze podataka i odgovoran je samo za upravljanje preslikavanjem naziva domena u IP adrese za taj mali dio cijele DNS strukture. Kada DNS poslužitelj primi zahtjev za prijevod imena koji nije unutar njegove DNS zone, prosljeđuje zahtjev drugom DNS poslužitelju unutar odgovarajuće zone za prijevod. DNS je skalabilan, odnosno može podnijeti velik broj zahtjeva, jer je posao raspoređen na više poslužitelja. Prilikom konfiguriranja mrežnog uređaja definira se jedna ili više adresa DNS poslužitelja koje DNS klijent može koristiti za razlučivanje naziva. Obično pružatelj internet usluga (engl. //Internet Service Provider//, ISP) daje adrese koje se koriste za DNS poslužitelje. Windows i Linux imaju ima alat **nslookup** (“**N**ame **S**erver **lookup**”) koji korisniku omogućuje ručno postavljanje DNS upita i provjeru trenutne konfiguracije DNS poslužitelja. Naziv računala ili domene može se unijeti na upit nslookup. Alat nudi mnoge opcije za opsežno testiranje i provjeru DNS procesa.