Domain Name Server (DNS) este un sistem distribuit de pastrare si interogare a unor date arbitrare intr-o structura ierarhica. Cea mai cunoscuta aplicatie a DNS este gestionarea domeniilor in internet. Caracteristicile sistemului DNS sunt:
Fiecare implementare TCP/IP contine o rutina software (name resolver) specializata in interogarea serverului de nume (DNS) in vederea obtinerii / translatarii nume/adresa IP sau invers. Exista doua tipuri de rezolutie de nume:
- Rezolutia recursiva - name resolver-ul cere serverului de nume sa faca translatarea;
- Rezolutia iterativa - name resolverul cere serverului de nume sa ii furnizeze adresa IP a unui server care poate face translatarea.
Tipic, procesul de rezolutie a numelor se desfasoara astfel:
- Name serverul primeste de la o aplicatie client TCP/IP un nume; acesta formuleaza o interogare primului server de nume din lista serverelor;
- Serverul de nume (DNS) determina daca este autorizat pentru domeniul respectiv (daca exista configurata o zona DNS care contine numele respectiv);
- Daca este autorizat, transmite raspunsul clientului;
- Daca nu, transmite o interogare unui alt server de nume pentru un raspuns autorizat; obtine raspunsul autorizat si transmite clientului un raspuns neautorizat; totodata, stocheaza raspunsul local pentru a raspunde la alte cereri pentru acelasi nume;
- Resolverul de nume transmite raspunsul aplicatiei utilizator si il pastreaza intr-un cache pentru a anumita perioada;
- Daca name serverul nu primeste un raspuns intr-un anumit timp, transmite cererea urmatorului server de nume din lista. Cand lista este epuizata, va genera o eroare.