Archive for the ‘DNS – Servere DNS’ Category

Ce este DNS? (Partea I)

Ce este DNS? (Partea I)

Cu scopul de a-mi reimprospata mie intii de toate cunostintele si abia apoi sa ofer si altora informatii despre DNS, am decis sa deschid acest subiect, care se va intinde, ca sa zic asa, pe mai multe „episoade”.

Cum era si firesc, primul episod va raspunde la intrebare generica „Ce este DNS?” si de ce avem nevoie de el.

Fiindca nu mai tineam minte teoria, „ca la carte”, am rasfoit putin internetul cautind definitia DNS. Ei bine, am gasit mai multe, cum era si de asteptat. In unele DNS (Domain Name Service) este un protocol care traduce adresele Internet (adresele site-urilor) în adrese Internet numerice (IP), adrese utilizate de un calculator pentru a găsi un calculator receptor. Alte defintii numesc DNS, „program”, „serviciu” etc. Noi insa vom folosi varianta Wikipedia, care spune „Un sistem de nume de domeniu (abreviat DNS, în engleză Domain Name System) este un sistem distribuit de păstrare și interogare a unor date arbitrare într-o structură ierarhică. Cea mai cunoscută aplicație a DNS este gestionarea domeniilor în Internet.” Sau altfel spus, in cuvinte simple,  DNS este modalitatea prin care o adresa Internet esta translatata in varianta ei IP asa incit atunci cind incercam, de exemplu sa accesam goolge sa scriem www.google.com, in loc sa fim nevoiti sa tinem minte adresa IP: 173.194.113.52 (bine, google nu are un singur IP, acesta este doar unul dintre ele).

 

Bun, deci am aflat, in linii mari, ce este DNS si de ce este imprtant. Sa vedem acum care sint caractesristicile DNS:

1.  structura ierarhizata („arborescenta”);

2. deleaga autoritatea pentru nume;

3. baza de date cu numele si adresele IP este distribuita;

Sa vedem acum ce inseamna cele de mai sus:

Structura DNS era asemeni unui arbore: avem o „radacina” unica (root) si apoi ramificatiile: domeniile si subdomeniile. Fiecare nod al acestei structuri ierarhice reprezinta un domeniu sau un subdomeniu.

Delegarea autoritatii pentru un nume. Cea mai importanta realizare a acestei structuri arborescente o reprezinta procesul de delegare a autoritatii. Adica faptul ca o organizatie sau o persoana detine autoritatea asupra unui nod din arborele DNS inseamna ca respectiva organizatie decide ce descendenti are respectivul nod si ii cunoaste in intregime. Adica are autoritatea de a spune daca exista sau nu un anumit „copil” al respectivului nod. De asemenea, poate delega autoritatea asupra unui descendent al respectivului nod catre alta organizatie. Subarborele delegat se numeste zona. Complicat, nu? :)

Exemplu de delegare a autoritatii a numelui
Luam ca exemplu, cumpararea numelui de domeniu „helpdeskcloud.ro”.

1. Zona root este administrata de catre ICANN (http://www.icann.org/). La rindul lor ei au ales sa delege autoritatea asupra zonei „.ro” catre RoTLD (Romanian Top Level Domain) (http://www.rotld.ro/);

2. De asemenea,  RoTLD, care detine domeniile .ro a decis sa delege autoritatea asupra zonei helpdeskcloud.ro. catre mine (daca am cumparat direct de la RoTLD) sau catre o firma care revinde nume de domenii (pentru cei care aleg aceasta varianta);

3. In sfarsit, eu pot decide apoi  ca vreau sa creez  inregistrarea support.helpdeskcloud.ro, creind astfel la rindul meu un subdomeniu.

Altfel spus, RoTLD va crea o asociere intre IP asignat statiei ce gazduieste serverul de nume si domeniul helpdeskcloud.ro. Aceasta asociere va fi comunicata de catre TLD „.ro” oricarui server de pe Internet care o va solicita.

Baza de date DNS este distribuita. Spunem ca baza de date DNS este distribuita, deoarece nu avem de-a face cu o baza de date unica pentru tot internetul. Adica nu exista un singur server care sa contina toate adresele IP ale tuturor domeniilor existente. Fiecare server are o baza de date cu propriile domenii, domenii la care au acces toate sistemele conectate la internet. Fiecare server DNS are la rindul lui un server DNS pe un nivel superior cu care schimba periodic informatiile.
Sistemul de nume DNS are o organizare ierarhică, sub formă de arbore. Acesta are o rădăcină unică  (root) care are subdomenii.  Fiecare nod al arborelui reprezintă un nume de domeniu sau subdomeniu.

Componentele DNS:

Servere DNS – Un server DNS este o staţie pe care rulează un program de server DNS. Serverele DNS stochează informaţii despre o porţiune din structura ierarhică a spaţiului de nume şi rezolvă interogări de rezoluţie de nume pentru clienţii DNS. Când sunt interogate, serverele DNS răspund cu informaţia cerută dacă aceasta este disponibilă sau generează o referinţă către un alt server DNS care poate rezolva interogarea.
Un client poate cere o transformare a numelor în două moduri:
cu rezolvare recursivă – serverul contactează la rândul lui un alt server de nume, de obicei de pe un nivel superior din arborele serverelor de nume. Acesta la rândul lui, va examina cererea şi, dacă nu poate face transformarea contactează un alt server. Procesul continuă până se contactează un server care poate face transformarea;
– cu rezolvare iterativă – serverul comunică clientului ce server să contacteze mai departe. Clientul adresează o cerere acestui server şi tot aşa mai departe până când cererea ajunge la un server care face transformarea. Când un server recepţionează o cerere cu rezolvare iterativă şi nu poate traduce numele de domeniu, acesta transmite clientului ce server să contacteze mai departe.
Zone DNS-O zonă DNS este o secţiune  continuă din cadrul spaţiului de nume. Înregistrările pentru o astfel de zonă sunt memorate şi gestionate la un loc, chiar dacă domeniul este împărţit în subdomenii.
Zona poate fi de două feluri:
primară – secţiunea în care se pot face actualizări;
secundarã – copia zonei primare.
Resolvere DNS –Resolver-ul DNS este un program care extrage informaţiile din severele de nume, ca răspuns la cererile unor clienţi.
Înregistrări de resurse (RR – resource records)- Baza de date DNS conţine înregistrări de resurse. Aceste înregistrări provin din mapările între nume şi obiecte din reţea.

Procesul de rezoluţie a numelor se desfăşoară astfel:

Resolver-ul de nume primeşte de la o aplicaţie client TCP/IP un nume;
El formulează o interogare primului server de nume din lista serverelor;
Serverul de nume (DNS) determină dacă este autorizat pentru domeniul respectiv (există configurată o zonă DNS care conţine numele respectiv);
Dacã este autorizat, transmite rãspunsul clientului;
Dacã nu, transmite o interogare altui server de nume pentru un rãspuns autorizat;
Obţine răspunsul autorizat şi transmite clientului un răspuns neautorizat şi stochează răspunsul local pentru a răspunde la alte cereri pentru acelaşi nume.
Resolver-ul de nume transmite răspunsul aplicaţiei utilizator şi îl păstrează într-un cache pentru o anumită perioadă;
Dacă resolver-ul de nume nu primeşte un răspuns într-un anumit timp, transmite cererea următorului server de nume din listă. Când lista este epuizată, se generează o eroare.