Ce este DNS? O explicatie usoara ca sa intelegi DNS

DNS este un acronim de la ‘Domain Name System’ si este sistemul ce ne permite sa ne conectam la un website folosind un nume de domeniu, in loc de adresa IP a acestuia.

Hai sa discutam despre chestiile de baza pe care trebuie sa le stii despre DNS, termeni si ce se intampla mai exact dupa ce apesi Enter cand ai scris un nume de domeniu in browser.

nota: majoritate termenilor, chiar daca ii explicam in romana, ii voi folosi in engleza in mod prioritar. E mai usor si pentru mine si pentru tine ca cititor sa dai dupa acel termen un Google daca vrei sa il aprofundezi.

Ce este DNS?

Te poti gandi la DNS ca la o carte de telefoane uriasa a internetului. Noi accesam un website folosind nume de domenii, cum ar fi petech.ro. Dar browserele noastre (Google Chrome, Mozilla Firefox, Safari, etc.) interactioneaza prin intermediul adreselor IP.

DNS este sistemul responsabil pentru ‘traducerea’ numelor de domenii in adrese IP, astfel incat browserele noastre sa ne poata arata continutul dorit si noi sa nu fim nevoiti sa tinem minte IP-uri in loc de nume de domenii.

Ce este DNS resolution? Ce este DNS lookup?

Cand zicem DNS resolution, nu ne gandim la rezolutie! Ci mai degraba la solutionarea DNS.

Asta pentru ca procesul denumit DNS resolution se refera la procesul de a traduce adrese IP in nume de domenii.

Ca sa aflam despre procesul din spatele DNS resolution, trebuie sa stim componentele hardware prin care un query DNS (cerere DNS) trebuie sa treaca.

Mentionez ca procesul de DNS lookup are loc in spatele cortinelor si un browser nu are nevoie de alta interactiune din partea utilizatorului, in afara de cererea initiala/accesarea domeniului.

DNS lookup-urile sunt de 2 tipuri: forward si reverse. Dar care-i diferenta?

Forward DNS lookup inseamna ca folosim un nume de domeniu pentru a-i afla IP-ul.

Reverse DNS lookup inseamna ca folosim o adresa IP pentru a afla un nume de domeniu.

Cele 4 servere DNS implicate in incarcarea unei pagini web

  • DNS recursor: un server facut sa primeasca interogari de la clienti prin aplicatii precum browsere;
  • Root Nameserver: primul pas in rezolvarea sau traducerea numelor usor de citit in adrese IP
  • TLD nameserver: urmatorul pas in gasirea unui anumit IP. Daca mai tii minte din articolul cu domenii, TLD vine de la Top Level Domain si pentru petech.ro acesta este .ro.
  • Authoritative nameserver: ultima oprire. Daca acest server are acces la intrare, va returna adresa IP a host-ului cerut si i-l va trimite la DNS recursor. Acum aplicatia poate incepe sa incarce continut si sa iti afiseze site-ul cerut.

Ce este un DNS query?

Cunoscut ca si DNS request (cerere DNS), un DNS query (interogare DNS) este o cerere de informatie ceruta de PC-ul unui utilizator, catre un server DNS. De obicei o cerere DNS este trimisa pentru a intreba un server DNS despre IP-ul asociat cu un nume de domeniu (ce se intampla dupa ce scrii un domeniu si apesi Enter).

Cele 3 tipuri de DNS queries

Intr-un proces normal de tip DNS lookup, de obicei au loc 3 tipuri de interogari, adica 3 tipuri de DNS queries.

Prin combinatia celor 3 tipuri de cereri DNS, un proces optimizat de DNS resolution ne poate oferi o reducere in distanta parcursa. Situatia ideala ar fi sa avem date intr-un cache disponibile – asta ar permite name server-ului DNS sa returneze o interograre non-recursive adica nerecursiva.

  1. Interogari recursive / Recursive Queries
  2. Interogari iterative / Iterative Queries
  3. Interogari nerecursive / Non-Recursive Queries

DNS caching

Dupa cum probabil ai ghicit daca esti familiarizat cu ideea ce ‘caching’, rolul DNS caching este sa stocheze temporar date, fapt care va rezulta intr-o crestere de performanta si fiabilitate pentru cererile de date.

DNS cache implica stocarea datelor mai aproape de client astfel incat cererea DNS poate fi facuta mai devreme, fara a parcurge tot lantul DNS lookup – asta reduce timpii de incarcare, banda utilizata dar si consumul de resurse CPU.

Datele DNS pot fi depozitate in multiple locatii, iar durata este determinata de TTL (time-to-live).

Locatii de cache DNS:

  • la nivel de browser – Browser DNS caching;
  • la nivel de sistem de operare – OS DNS cache;

Un exemplu de DNS lookup – DNS in actiune

Hai sa vedem ce se intampla pe pasi, intr-un DNS lookup atunci cand nu avem nimic stocat in cache. Daca avem date stocate in cache, anumiti pasi sunt sariti (caci cache-ul isi face treaba si reduce din timpii de incarcare, banda etc.)

  1. Scrii petech.ro in browser. Cererea calatoreste in internet si este primita de un server de tip DNS recursive resolver.
  2. Resolver-ul incepe sa interogheze nameserver-ul DNS root.
  3. Root serverul raspunde resolverului cu adresa unui server DNS TLD. In acest caz ‘.ro’, care stocheaza informatii despre domeniile sale.
  4. Resolverul face acum o cerere la TLD-ul .ro.
  5. Serverul TLD raspunde cu adresa IP a nameserverului domeniului petech.ro.
  6. Resolverul recursive trimite un query nameserverului petech.ro.
  7. Adresa IP a lui petech.ro este acum primita de resolver, de la nameserver.
  8. DNS resolverul raspunde browserului tau cu adresa IP a lui petech.ro.

Acum browserul poate face cererea pentru pagina web, din moment ce stie adresa IP a lui petech.ro.

9. Browserul face un request HTTP la adresa IP.

10. Petech.ro returneaza pagina web si continutul sau pentru a fi randata de catre browser.

Si cam asta se intampla in mod normal in timpul unui DNS lookup.

Concluzii

Desi e un pic de romgleza, sincer e mai util sa stii in engleza termenii caci dupa cum am scris si la inceput de articol, ii vei putea aprofunda mai usor. Desigur, e util sa stii si in romana macar majoritatea chestiilor in caz de… habar n-am. Te intreaba la interviu la job sau ceva similar :))

N-am intrat foarte mult in detalii, nici nu cred ca are rost decat intr-un articol separat eventual caci scopul articolului este sa explice mai usor de inteles ce este DNS.

Daca a fost util articolul si usor de inteles, un share ar ajuta!