DNS pentru toti – partea I
Am hotarat sa-mi incep acest jurnal online (nu, nu voi folosi cuvantul cu B) cu o serie de articole despre DNS. Minimul de cunostinte preliminare include cate ceva despre TCP/IP, informatii ce se vor evidentia in text prin sintagma se stie(TM). Daca aceste informatii se vor dovedi prea dese, o sa scriu si un articol pentru incepatorii absoluti in ale TCP/IP. Cu toate astea, o sa strecor si una-doua trickuri utile chiar si pentru avansatii in ale DNS-ului, asa ca tineti aproape.
Ce este DNS si de ce avem nevoie de el?
Se stie(TM) 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 la 83.103.242.125. Solutia abordata se numeste DNS , adica Domain Name System, sintagma care ar suna aiurea daca m-as chinui sa o traduc si oricum n-ar retine-o nimeni decat in original, asa ca ramanem la asta.
In concluzie, datorita DNS, putem sa 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 sa-l intrebe pe ala. 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: storage si trafic.
Moment istoric - fisierul hosts.txt
De fapt, inainte de aparitia DNS, exact asa au functionat lucrurile. Pe un server din NIC (Network Information Center, pentru cei pasionati de TLA-uri) 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.txt 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 nivele. In acelasi timp, vechile noduri de tip timesharing au inceput sa fie inlocuite cu retele de computere ai caror administratori trebuiau sa trimita noile nume de masini la NIC, care sa editeze hosts.txt ca aceste modificari sa fie vizibile in restul internetului.
Desi sistemul cu hosts.txt a fost abandonat spre sfarsitul anilor '80, fisierul respectiv inca mai este folosit pentru retele mici sau pentru aliasuri care nu trebuiesc 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
Pentru pasionatii de istorie, o lectura interesanta ar fi RFC-urile 608, 810 si 952 . Daca nu stiti ce e un RFC, nu conteaza.
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 aibe autoritate asupra retelei. La randul lui, acest Cineva deleaga parti ale retelei unor organizatii, care la randul lor isi impart fieful cibernetic 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 e unica. Lipsa de ambiguitate este pretuita mai mult decat democratia de catre calculatoare, iar acest sistem a fost gandit pentru ele. Sa trecem deci peste problemele politice si sa ne concentram asupra celor tehnice
Asadar, DNS este o structura arborescenta. Fiecare nod are o eticheta , de lungime intre 0 si 63 de caractere (apropo, de asta acest domeniu este un record absolut), 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.bulă.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 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 din dreapta. Sunt exemplificate (de jos in sus) numele urmatoare: wikipedia.org. , pmb.ro. , petre.bloghost.ro. , dragosh.bloghost.ro. , www.bloghost.ro. , connex.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 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.
Exemplu: Delegarea autoritatii in cazul numelui petre.bloghost.ro.
- Zona root este administrata de catre ICANN. Ei au decis sa delege autoritatea asupra zonei ro. catre INCD in Informatica;
- la randul lor, ICI au decis sa delege autoritatea asupra zonei bloghost.ro. catre SNS;
- in sfarsit, SNS a decis ca merita sa creeze pentru subsemnatu' inregistrarea petre.bloghost.ro. (desi inca nu s-a facut nici o delegare, deci tehnic nu pot sa-mi fac subdomenii)
Va urma:
- prezentare a unor zone aparte din arborele DNS
- inregistrari A si CNAME
- inregistrari NS
- inregistrari MX
- inregistrari SOA, seriale si caching
- inregistrari "exotice"
- servere primare si secundare, transfer de zone si de ce atata bataie de cap?
...ca sa nu mai vorbim de terminarea stylesheetului pt. site.
2 Responses to “DNS pentru toti – partea I”
February 28th, 2006 at 3:12 am
Am hotarat sa-mi incep acest jurnal online (nu, nu voi folosi cuvantul cu B) cu o serie de articole despre DNS. Minimul de cunostinte preliminare include cate ceva despre TCP/IP, informatii ce se vor evidentia in text prin sintagma se stie(TM). Daca aceste informatii se vor dovedi prea dese, o sa scriu si un articol pentru incepatorii absoluti in ale TCP/IP. Cu toate astea, o sa strecor si una-doua trickuri utile chiar si pentru avansatii in ale DNS-ului, asa ca tineti aproape.
Ce este DNS si de ce avem nevoie de el?
Se stie(TM) 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 la 83.103.242.125. Solutia abordata se numeste DNS , adica Domain Name System, sintagma care ar suna aiurea daca m-as chinui sa o traduc si oricum n-ar retine-o nimeni decat in original, asa ca ramanem la asta.
In concluzie, datorita DNS, putem sa cerem computerului sa ne dea pagina http://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 sa-l intrebe pe ala. 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: storage si trafic.
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 aibe autoritate asupra retelei. La randul lui, acest Cineva deleaga parti ale retelei unor organizatii, care la randul lor isi impart fieful cibernetic 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 e unica. Lipsa de ambiguitate este pretuita mai mult decat democratia de catre calculatoare, iar acest sistem a fost gandit pentru ele. Sa trecem deci peste problemele politice si sa ne concentram asupra celor tehnice
Asadar, DNS este o structura arborescenta. Fiecare nod are o eticheta , de lungime intre 0 si 63 de caractere (apropo, de asta acest domeniu este un record absolut), nu are voie sa contina decat litere, cifre si caracterul ‘-’ (nu puteti avea http://www.pagina_mea.ro, dupa cum n-o sa vedeti prea curand nici http://www.bulă.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 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 din dreapta. Sunt exemplificate (de jos in sus) numele urmatoare: wikipedia.org. , pmb.ro. , petre.bloghost.ro. , dragosh.bloghost.ro. , http://www.bloghost.ro. , connex.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 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.
Va urma:
…ca sa nu mai vorbim de terminarea stylesheetului pt. site.
September 2nd, 2006 at 1:51 am
>Mai mult decat atat, trebuie sa inceapa >cu o litera (http://www.123.com nu exista).
Huh??