Home     RSSRSS

Ce este DNS si de ce avem nevoie de el?

29/05/2007 by mipo | Filed under Diverse.

Se stie ca adresele IP sunt de forma aaa.bbb.ccc.ddd, unde aaa, bbb, ccc si ddd sunt numere intregi intre 0 si 255.

Este un format usor de retinut de catre computere, dar mintea umana functioneaza pe alte principii, astfel ca a devenit destul de repede evident ca nu e realist sa te astepti ca un utilizator obisnuit sa retina ca are motorul de cautare la 66.102.9.104, magazinul online la 72.21.206.5 si ãstirile de la ora 5Ò din IT la 66.35.250.151.

Solutia abordata se numeste DNS, adica Domain Name System, sintagma care s-ar traduce prin ‘Sistemul de Nume de Domeniu’ (desi nici un vorbitor de limba romana nu s-ar referi vreodata la SND).

In concluzie, datorita DNS, putem sa-i cerem computerului sa ne dea pagina www.wikipedia.org si va sti singur sa ãintrebe de sanatateÒ computerul cu adresa 145.97.39.155.

Cum este structurat dns?

O abordare foarte simplista ar fi sa existe un anumit computer care sa stie adresele si numele tuturor computerelor de pe retea, astfel ca toata lumea ar sti pe cine sa intrebe. O mare parte dintre cititori si-au dat deja seama ca, la marimea actuala a Internetului, asa ceva nu mai este posibil din doua motive: stocarea informatiilor si nivelul de trafic.

Putina istorie – fisierul hosts

De fapt, inainte de aparitia DNS, se folosea exact abordarea ‘simplista’ mentionata in paragraful ‘Cum este structurat DNS’. Pe un server din NIC (Network Information Center, pentru cei pasionati de TLA-uri – Three Letter Acronym) era tinuta o copie master a bazei de date cu numele computerelor, acest fisier fiind distribuit pe toate computerele din retea si folosit ori de cate ori se cerea o transformare nume adresa.

Sistemul a fost abandonat din mai multe motive: in urma cresterii retelei, fisierul ‘hosts’ a devenit prea mare, fapt care, combinat cu cresterea simultana a numarului de computere interesate de el, a reusit sa genereze un trafic mult prea mare chiar si pentru o schema de distributie pe mai multe niveluri. In acelasi timp, vechile noduri de tip timesharing au inceput sa fie inlocuite cu retele de computere ale caror administratori trebuiau sa trimita noile nume de masini la NIC, care sa editeze hosts.txt pentru ca aceste modificari sa fie vizibile in restul Internetului.

Desi sistemul cu fisier unic a fost abandonat spre sfarsitul anilor ’80, fisierul respectiv inca mai este folosit pentru retele mici sau pentru aliasuri care nu trebuie propagate mai departe. Locatia curenta a fisierului este /etc/hosts pe masinile de tip Unix si %systemroot%/system32/drivers/etc/hosts pe masinile de tip Windows.

In mod oarecum natural, structura aleasa pentru noul sistem de denumire a computerelor a fost proiectata sub forma arborescenta. Spun ãnaturalÒ pentru ca urmareste arborele de autoritate asupra retelei.

Cineva (Big Brother, NIC, Guvernul USA, Flying Spaghetti Monster) este desemnat sa aiba autoritate asupra retelei. La randul lui, acest Cineva deleaga parti ale retelei unor organizatii, care la randul lor isi impart ãfeudaÒ cibernetica intre diversele departamente, si asa mai departe. Prin conventie, toata lumea are incredere in acel Cineva si in modul in care deleaga autoritatea.

Poate nu e cea mai buna organizare, dar macar este unica. Lipsa de ambiguitate este pretuita mai mult decat democratia de catre calculatoare, iar acest sistem a fost gandit pentru ele. Dar sa lasam chestiunile politice pentru editoriale si sa ne concentram asupra celor tehnice.

Reguli de alegere a numelui

Asadar, DNS este o structura arborescenta. Fiecare nod are o eticheta, de lungime intre 0 si 63 de caractere (apropo, din aceasta cauza exista domenii care, pot sustine asta cu mana pe inima, detin recordul absolut – www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com), nu are voie sa contina decat litere, cifre si caracterul ‘-’ (nu puteti avea www.pagina_mea.ro, dupa cum n-o sa vedeti prea curand nici www.bula.ro).

Mai mult decat atat, trebuie sa inceapa cu o litera (www.123.com nu exista). Nu se tine cont de diferente intre litere mari si mici (ghici ce e la wWw.gOOglE.cOM). Dupa cum v-ati prins deja, numele complet al unui nod este format din concatenarea etichetelor nodului respectiv si a parintilor pana la radacina, separate prin punct. Pentru a simboliza faptul ca numele este complet, se adauga un punct la sfarsit, reprezentand radacina.

Pare complicat, nu? Sa recapitulam pe imaginea de mai jos. Sunt exemplificate numele urmatoare: wikipedia.org., idg.ro., petre.bloghost.ro., dragosh.bloghost.ro., www.bloghost.ro., pcworld.ro., com.. Numele de domeniu complet (FQDN – Fully Qualified Domain Name) are partea cea mai specifica la stanga si continua cu nume din ce in ce mai generice pana la radacina, simbolizata printr-un punct final. In majoritatea cazurilor, acel punct final nu este obligatoriu, insa in cazul amplasarii in DNS, este esential.

Delegarea autoritatii

Cea mai importanta realizare a acestui arbore se manifesta prin procesul de delegare a autoritatii. 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.

Da, stiu ca suna alambicat, dar nu este chiar asa. Pe final, un exercitiu:

Exemplu: Delegarea autoritatii in cazul numelui petre.bloghost.ro.

1. Zona root este administrata ‘prin decret divin’ de catre ICANN (http://www.icann.org/). Ei au decis sa delege autoritatea asupra zonei ro. catre Institutul National de Cercetare si Dezvoltare in Informatica (http://www.ici.ro/);

2. La randul lor, ICI au decis sa delege autoritatea asupra zonei bloghost.ro. catre SNS (http://www.sns.ro/);

3. In sfarsit, SNS a decis ca merita sa creeze pentru subsemnatul inregistrarea petre.bloghost.ro (desi inca nu s-a facut nici o delegare, deci tehnic nu pot sa-mi fac subdomenii).

Am cumparat domeniul zonamea.ro si trebuie sa configuram cel putin un server DNS sa raspunda pentru domeniul nostru.

Primul pas: alegem un server DNS. Recomandarea mea este BIND9 (www.isc.org/sw/bind/), insa merge orice (cei mai masochisti dintre noi pot folosi si programelele care vin cu Windows). Nu o sa vorbim acum si despre alegerea si configurarea serverului. Ramane ca subiect pentru un numar viitor.

Al doilea pas: configuram zona de DNS pentru domeniul zonamea.ro. Ne ramane doar sa stim ce inregistrari se folosesc si care sunt regulile de operare. Asta vom invata in cele ce urmeaza: tipuri de inregistrari DNS si cum arata o zona DNS.

Sa incepem:

Tipuri de inregistrari

A – Inregistrarea A (Address) desemneaza o simpla corespondenta nume->IP,

Exemplu:

mareserver A 192.0.34.1 ; IP-ul masinii “mareserver”

ns1 A 192.0.34.1 ; IP-ul nameserverului principal, desemneaza aceeasi masina

mailserver A 192.0.34.1 ; IP-ul MX-ului principal, desemneaza aceeasi masina

CNAME – Inregistrarea CNAME (Canonical Name) face redirectionare la un alt nume, este un alias (a se evita termenul ãaliasÒ pentru ca se confunda cu denumirea alternativa a inregistrarii A/Address/Alias).

Exemplu:

www CNAME mareserver

ftp CNAME mareserver

Avantaj: simplifica administrarea, se poate schimba doar eticheta destinatie, toate CNAME-urile vor fi redirectionate automat

Dezavantaj: fiecare nivel de CNAME implica un query suplimentar, de aceea se recomanda sa nu se foloseasca in situatii in care este importanta viteza de raspuns (vezi NS, MX).

NS – Inregistrarea NS (Name System/Service) realizeaza delegarea autoritatii, specifica serverul autoritar pentru zona respectiva sau pentru o subzona.

Exemplu:

zonamea.ro NS ns1.zonamea.ro ; sunt recomandate inregistrari NS multiple

zonamea.ro NS ns2.zonamea.ro ; desigur, folosind servere diferite

zonamea.ro NS ns3.zonamea.ro ; minim doua, ideal peste trei per domeniu

subdomeniu.zonamea.ro NS 192.0.15.3

Inseamna ca serverul 192.0.15.3 poate raspunde la cereri legate de .subdomeniu.zonamea.ro

Pot fi specificate mai multe servere pentru acelasi subdomeniu. Pentru buna functionare a respectivului subdomeniu se recomanda utilizarea a cel putin doua servere (desi, cu cat sunt mai multe, cu atat e mai bine), aflate in locatii diferite (pentru acele situatii cand sunt probleme cu alimentarea electrica si/sau accesul la Internet dintr-una din locatii). Bineinteles ca ramane problema sincronizarii informatiilor de pe servere. Asta se poate face manual sau prin niste procedee ce vor fi detaliate mai tarziu.

MX – Cea mai importanta dintre “inregistrarile speciale”, specifica serverul de e-mail autorizat sa primeasca e-mail pentru domeniul respectiv. Fiecare inregistrare MX are o anumita prioritate (definita printr-un numar, numerele mici au prioritate mai mare), clientii de e-mail sunt incurajati sa ia in considerare aceasta ordonare atunci cand decid serverul de e-mail catre care sa expedieze mesajul. Cele de prioritate redusa (numere mai mari) sunt de obicei destinate doar situatiilor de urgenta, atunci cand serverul principal nu este disponibil.

Exemplu:

MX 10 mailserver.domeniu.tld. ; serverul principal

MX 50 mxbackup1.domeniu.tld. ; primul server de backup

MX 100 mxbackup2.domeniu.tld. ; al doilea server de backup

Nota: Dat fiind ca serverele de backup au de obicei configuratii minimale, spammer-ii obisnuiesc sa trimita direct acestor servere, pentru a-si mari sansele ca e-mailul sa fie acceptat. Acest procedeu, combinat cu cresterea masiva a cantitatii de spam din ultimii ani a dus la o incarcare disproportionata a serverelor de backup. Din acest motiv, decizia de a deveni server de backup pentru un anumit domeniu a devenit ceva mai grea (desi se recomanda folosirea cel putin a unui server de backup, localizat in alta parte decat cel principal). Chiar daca un mailserver este folosit doar pentru backup-uri, el trebuie sa aiba servicii antivirus si antispam instalate.

Trick: Pentru a putea face fata unui domeniu cu foarte mult trafic si mult spam se pot declara public mai multe MX-uri cu aceeasi prioritate. Mail-ul va fi livrat catre oricare din ele, facandu-se o balansare a incarcarii:

MX 10 mailserver-fr1.domeniu.tld. ; fr1 se traduce in front end 1

MX 10 mailserver-fr2.domeniu.tld. ; denumirea serverelor este libera

MX 10 mailserver-fr3.domeniu.tld. ; la dispozitia adminului

Desigur, serverele de e-mail declarate mai sus trebuie sa fie configurate pentru a procesa antivirus/antispam mesajele, urmand a le forwarda pe cele curate catre mailserver-ul principal, ascuns, care are lista cu conturile utilizatorilor.

SOA – Inregistrarile SOA (State of Authority) sunt inregistrari speciale, folosite o singura data in definirea unui domeniu (intr-o zona). SOA contine informatii esentiale despre zona, detaliate mai jos:

zonamea.ro. IN SOA ns1.zonamea.ro. dnsadmin.zonamea.ro.

(200604261 ; Serial Number

14400 ; Refresh la fiecare 4 ore

3600 ; Retry in 1 ora

604800 ; Expira in 1 saptamana

86400 ; TTL Minim de 1 zi )

nume.domeniu. – desemneaza numele domeniului la care se refera inregistrarea SOA. De retinut ca acesta se termina cu “.”, ceea ce inseamna ca nici un sufix nu ii va fi adaugat.

IN – clasa inregistrarii DNS, in cazul nostru IN este prescurtarea de la Internet

SOA – tipul inregistrarii DNS, State/Start of Authority

numele.name-serverului. – numele computerului care are rol de nameserver primar pentru domeniul nostru

adresa.email – adresa de e-mail a responsabilului cu serviciile DNS pentru acel domeniu. Nu se foloseste @ ci ã.Ò, asa ca dnsadmin@zonamea.ro se scrie dnsadmin.zonamea.ro, primul “.” fiind transformat in “@”

Urmatorii parametri sunt definiti in secunde, insa unele servere DNS pot folosi si notatii simple, 2h, 5d, 4h, 1w, 1m etc.

200604261 ; Serial Number, modalitatea prin care alte nameservere observa ca datele dintr-o zona s-au schimbat, cand serial number-ul este incrementat, forma este an-luna-zi-nr_modificare (fara liniute)

14400 ; Refresh la fiecare patru ore, perioada la care nameserver-ele secundare verifica daca s-a modificat serial number-ul nameserver-ului principal

3600 ; Retry intr-o ora, intervalul la care nameserver-ele secundare incearca sa se reconecteze la nameserver-ul principal, daca a esuat conexiunea de Refresh.

604800 ; Expira in o saptamana, perioada dupa care datele primite de la nameserver-ul principal expira si sunt sterse din nameserver-ele secundare, in cazul in care nu se poate face conexiunea pentru update (refresh+retry).

86400 ; TTL de o zi, TTL = Time To Live, perioada de validitate a unei inregistrari DNS. Fiecare inregistrare poate avea un TTL specificat, TTL-ul declarat in SOA se aplica tuturor inregistrarilor ce nu au TTL specificat individual.

Exemplu: Zonamea.ro

Vom asambla tot ce am invatat mai sus pentru a “compune” zona de DNS pentru domeniul zonamea.ro. IP-urile sunt pura fictiune, adaptati la nevoie.

zonamea.ro. IN SOA ns1.zonamea.ro. dnsadmin.zonamea.ro. (

(200604261 ; Serial Number

14400 ; Refresh la fiecare 4 ore

3600 ; Retry in 1 ora

604800 ; Expira in 1 saptamana

86400 ; TTL Minim de 1 zi )

zonamea.ro. IN NS ns1.zonamea.ro. ; putem specifica domeniul zonamea.ro.

@ IN NS ns2.zonamea.ro. ; sau folosim @ sau nu folosim nimic

IN NS ns3.zonamea.ro. ; pentru a se completa automat cu zona din SOA

zonamea.ro. IN MX 10 mailserver.zonamea.ro. ; serverul principal

@ IN MX 50 mxbackup1.zonamea.ro. ; primul server de backup

IN MX 100 mxbackup2.zonamea.ro. ; al doilea server de backup

zonamea.ro. IN A 192.0.15.1 ; adresa domeniului, nu este obligatorie, dar utila cand nu se tasteaza subdomeniul dorit (ex: www, ftp)

subdomeniu.zonamea.ro. NS 192.0.15.3 ; delegam DNS-ul pentru subdomeniu.zonamea.ro

mareserver IN A 192.0.34.1 ; IP-ul masinii mareserver

www IN CNAME mareserver ; www se afla pe mareserver

ftp IN CNAME mareserver ; ftp se afla tot pe marserver

mail IN A 192.0.34.1 ; IP-ul serverului principal de mail

mailserver IN A 192.0.34.1 ; nu folosim CNAME pentru a declara un MX

mxbackup1 IN A 192.0.15.2

mxbackup2 IN A 192.0.16.2

ns1 IN A 192.0.34.1 ; IP-urile serverelor DNS

ns2 IN A 192.0.15.2

ns3 IN A 192.0.16.2

Pasul trei: adaptam ce am invatat la nevoile si serverele noastre.

La cat mai multe domenii si inregistrari DNS!

← Previous

Leave a Reply

Your email address will not be published. Required fields are marked *