Domain Name System (DNS):
IP címeket nehéz megjegyezni. Egyszerűen megjegyezhető nevek kellenek helyette,
ezek lesznek a domain
nevek. Ezeket le lehet fordítani ip címekre, ehhez kell a DNS.
Kliens-szerver kommunikációval történik UDP-n, az 53-as porton keresztül.
Van egy hierarchikus névtér, ami fa szerkezetű. A legfelső szint a top level domainek, Top Level
Domains (TLD). 128 lehet a fa mélysége. Minden domain név egy részfa.
.edu -> neu.edu -> ccs.neu.edu -> www.ccs.neu.edu
Nem lehet névütközés. Alulról felfelé fogjuk olvasni a fát. A fa zónákra bomlik. Minden zóna
rendelkezik egy felügyeleti szervvel, amely a hierarchia egy részéért felelős.
Egy DNS szerver funkciói:
A hierarchia egy részéért felelős, azt felügyeli. A zónájához tartozó összes
hoszt és domain rekordjait
tárolja. Illetve ismeri a root szerverek címét.
Top Level Domains (TLD):
A root szerverek minden TLD-t ismernek. Klasszikus TLD-k: .com, .edu, .gov, .mil,
.org, .net. A különböző
országoknak is van egy TLD-je, ami az ország két betűs kódja szokott lenni pl. .hu, .au.
Root szerverek:
Listát vezet a TLD-kről és arról, hogy ki felügyeli őket. Az ICANN adminisztrálja
a 13 root szervert.
Tartalmuk és a feladataik is meg vannak osztva. Globálisan számos replika szerver létezik ezekből.
Authoratív névszerverek:
Authoratív névszerverek tárolják a név \rightarrow IP leképezéseket egy adott
hoszthoz. Ők tudják azt,
hogy pl. a www.neu.edu, hol található. A Root tudja, hogy hol
van az edu névszervere, az edu tudja hol van a neu névszervere és a neu tudja, hogy van az a hoszt,
ami ezen a néven található.
Lokális névszerverek:
Minden internet szolgáltató (ISP) rendelkezik egy lokális, default névszerverrel.
Ezt gyakran a DHCP
konfigurálja fel. Kezdetben mindenki a lokális névszerverhez fordul. Ha a lokális DNS szerver tud
válaszolni, akkor kész, ugye vagy ő a felügyelő szerver az adott névhez vagy a cachében van a
keresett
rekord. Ha nem tudjuk feloldani, akkor a lokális névszerverünk elmegyünk a roothoz, ahol végig megy
a
teljes hierarchián felülről lefelé egészen a keresett név felügyeleti szerveréig. Ezek után a
lokális
névszerver eltárolja a cache-ben ezeket.
Lekérdezések:
Rekurzív lekérdezés: Ha a névszerver végzi el a névfeloldást és tér vissza a
válasszal.
Iteratív lekérdezés: Ha a névszerver adja vissza a választ vagy legalább azt, hogy kitől kapható meg
a
következő válasz.
Rekurzív lekérdezés:
A lokális névszerverünk nem tudja, hogy hol van a keresett név. Ezért ő fogja
végezni a névfeloldást.
Elmegy a Roothoz, a Root mondjuk a com-hoz, a com megy tovább, majd, ha megvan a név, akkor megyünk
visszafelé a válasszal egészen a hosztunkig. Hátránya, hogy nyilván kell tartani, hogy kinek kell a
választ visszaküldeni és ez terhet rak a névszerverekre. Lehetővé teszi a szervernek, hogy a
kliensek
egy csoportja felett végezzen cachelést, a jobb teljesítményért.
Iteratív lekérdezés:
A lokális névszerverünk nem tudja, hogy hol van a keresett név. Ezért elmegy a
Roothoz, aki visszatér
azzal az információval, hogy nem tudja, de ezen a com itt érhető el. A lokális névszerverünk
megkérdezi a com-ot, hogy hol van a keresett név. Visszatér azzal a válasszal, hogy nem tudja, de a
google itt érhető el, és így tovább.
Válasz után nem kell semmit tenni a kéréssel a névszervernek. Könnyű magas
terhelésű szervert építeni.
Napjainkban iteratív módon működik a DNS.
Cachelés:
Ha veszünk egy új domain nevet lehet, hogy 1 óra múlva, de lehet, hogy csak 72
óra múlva lesz elérhető az
a domain név. A DNS elterjedésének késését a cache okozza. A zóna fájlok 1-72 órig élnek a
cache-ben.
Ezért fordulhat, hogy egyik helyről elérhető a szerver (sikerül a névfeloldás), míg másik helyről
nem,
és sokszor 72 órát kell várni arra, hogy mindenhonnan feloldható legyen az újonnan bejegyzett név.
72
óra után az egész világon az összes lokális névszerver frissül.