DNS - "acolo unde începe Internetul"

      Pe parcursul a câteva articole vom încerca sa prezentam, mai pe larg, unele din serviciile si protocoalele Internet. Cel mai important si mai utilizat serviciu este DNS (Domain Name System).
      Calculatoarele din Internet sunt identificate printr-o adresa IP care poate fi scrisa în patru moduri diferite: folosind notatia binara, zecimala, hexazecimala sau zecimala cu puncte de separatie.

  • Adresa IP ca numar binar - 10000110 00011000 00001000 01000010
  • Adresa IP ca numar zecimal - 2,249,721,922
  • Adresa IP ca numar hexazecimal - 0x86180842
  • Adresa IP în notatie zecimala cu puncte - 134.24.8.66

      Pentru majoritatea oamenilor este mult mai usor de retinut un nume decât oricare dintre formele de adresare de mai sus. Din acest motiv, proiectantii Internetului au creat DNS (Sistemul Numelor de Domenii) care permite referirea calculatoarelor gazda cu ajutorul numelor (ex: epress.ro).
      De fapt, în prezentarea de mai sus, s-a strecurat o mica eroare. O adresa IP nu este asociata unui calculator gazda, ci unei placi de retea. Cu alte cuvinte, un calculator care are mai multe placi de retea (ex: un router) va avea mai multe adrese IP (câte una pentru fiecare placa).
      DNS este, practic, un soft care transforma numele (epress.ro) în numere (193.226.30.15) si invers. Pentru a face o astfel de transformare, DNS are nevoie de niste informatii. Aceste informatii sunt stocate pe mai multe calculatoare din Internet (servere DNS). În fond DNS este un exemplu tipic de baze de date distribuite. O baza de date distribuita poate fi vazuta ca o suma de fisiere memorate pe calculatoare diferite din Internet - localizate în spatii geografice diferite. Softul pentru baza de date distribuita gestioneaza si controleaza întreaga colectie de date ca pe o singura baza de date.
      La începutul Internetului s-a folosit un spatiu de nume nestructurate. Exista o singura organizatie care putea tine evidenta tuturor calculatoarelor din retea. Cu timpul, numarul hosturilor a devenit din ce în ce mai mare, astfel încât o singura organizatie nu mai putea centraliza adresele alocate. Din acest motiv s-a trecut la un sistem organizat ierarhic. Într-un astfel de sistem, autoritatea si responsabilitatea alocarii numelor sunt descentralizate. Mai multe organizatii diferite sunt responsabile cu alocarea unor adrese unice la diferite niveluri ierarhice.
      DNS este alcatuit, practic, din trei mari componente:

  1. - Spatiul numelor de domeniu,
  2. - Servere de nume,
  3. - Resolvere.
  1. Spatiul numelor de domenii

          Reprezinta informatia continuta în baza de date distribuita din Internet. Putem sa ne imaginam aceasta informatie ca o structura arborescenta:
          Nivelul 1 poate fi împartit în trei mari categorii:

    • arpa - este un domeniu Internet special, care transforma adresele IP în nume,
    • grupul generic sau al organizatiilor - are etichete de domeniu compuse din trei caractere (com, edu, gov, mil),
    • grupul geografic al tarilor - are etichete de domeniu compuse din 2 caractere (us, ro, fr).
  2. Serverele de nume

          Sunt programe server care stocheaza informatia DNS si raspund cererilor adresate de alte programe. Un server de nume nu trebuie sa stie adresele celorlalte servere de nume din DNS. În schimb trebuie sa stie cum sa contacteze serverele de nume radacina, care, la rândul lor, trebuie sa stie numele si adresele IP ale tuturor serverelor de nume de nivel doi. Arborele serverelor de nume este foarte larg si cu foarte putine nivele. Deci, serverul nu trebuie sa transmita cererea la prea multe servere.
          Gestionarea domeniilor de pe nivelul de vârf este facuta de InterNIC (Internet Network Information Center). Acesta transmite responsabilitatea alocarii numelor catre diferite organizatii, responsabile, la rândul lor, pentru o portiune anume din structura arborescenta a DNS. Aceste domenii de responsabilitate poarta denumirea de zone. Organizatia responsabila pentru o anumita zona poate divide mai departe zona, fragmentând-o pâna când o singura persoana poate gestiona alocarea numelor. Aceasta persoana este numita, de obicei, administrator DNS.
          Deoarece serviciile de cautare DNS sunt operatii critice (daca un program nu poate obtine adresa IP cautata, nu poate realiza conexiunea dorita) Internet a impus, pentru fiecare zona, un server DNS primar si unul sau mai multe servere secundare. În general, serverele secundare contin aceeasi informatie ca serverul primar, deci o informatie redundanta. Totusi ele sunt folosite pentru a crea niste ˛copii de siguranta˛, în cazul în care serverul primar se defecteaza sau este supraâncarcat cu cereri.
          Un server de nume primar stocheaza informatia DNS local, în fisiere speciale. Un server de nume secundar preia datele de la serverul primar al zonei, printr-un proces care poarta numele de ˛transfer zonal˛. În general, un server secundar interogheaza serverul primar o data la câteva ore.

  3. Resolvere

          Sunt programele care extrag informatiile din serverele de nume ca raspuns la cererile unor clienti.
         Sa vedem care este, efectiv, procesul de interogare DNS. Un client contacteaza serverul de nume pentru zona din care face parte. Serverul examineaza cererea pentru a determina daca are autoritate pentru domeniul specificat. În caz afirmativ se face transformarea numelui în adresa IP si se trimite raspunsul înapoi la client.
         În cazul în care serverul nu poate face transformarea direct, raspunsul depinde de tipul cererii trimise de client. Un client poate cere o transformare a numelor în doua moduri:

    • cu rezolvare recursiva - caz în care serverul va contacta 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, si daca nu poate sa faca transformarea, va contacta un alt server. Si tot asa, pâna când va fi contactat un server care sa poata rezolva aceasta cerere.
    • cu rezolvare iterativa - caz în care serverul va comunica clientului ce server sa contacteze mai departe. Clientul va adresa o cerere acestui server, trimis de serverul zonal, si tot asa mai departe pâna când cererea va ajunge la un server care va face transformarea. Cu alte cuvinte, când un server receptioneaza o cerere cu rezolvare iterativa si nu poate traduce numele de domeniu, acesta va transmite clientului ce server sa contacteze mai departe.

          Dispozitivul prin care se face legatura calculatorului la retea este adaptorul de retea (placa de retea) numit si placa de interfata cu reteaua (NIC - Network Interface Card).
          Placa de retea se conecteaza la placa de baza a calculatorului, de unde primeste datele ce urmeaza sa le transmita în retea. Rolul principal este de a converti datele din formatul produs de calculator, într-un format ce poate fi transmis sau transferat pe cablu. În acelasi timp realizeaza si conexiunile fizice din retea.
          La achizitia unei placi de retea trebuie sa tinem cont de trei aspecte:

    • ce tip de bus intern are calculatorul (ISA, EISA, PCI, PCMCIA),
    • ce mediu de transmisie utilizeaza reteaua (cablu coaxial, cablu torsadat, fibra optica, unde radio, infrarosu),
    • la ce tip de retea dorim conectarea calculatorului (Ethernet, Token Ring, ARCnet, ATM, fibra optica).

          Trebuie sa tinem cont si de performantele diferitelor adaptoare. De exemplu: o placa ISA face transferuri pe 16 biti, în timp ce una PCI pe 32 biti, ceea ce reprezinta un potential mai mare. Pentru Ethernet si Token Ring, busul ISA este suficient de rapid, dar pentru celelalte retele, de mare viteza, este recomandat PCI.
          Functiile îndeplinite de placile de retea depind de tipul de retea utilizat:

    • într-o retea Ethernet adaptorul asculta mediul înainte de a încerca sa transmita, filtreaza pachetele care nu le sunt destinate si nu le transfera catre calculator, rezolva problemele aparute în cazul coliziunilor,
    • într-o retea Token Ring, adaptorul asteapta receptia unui jeton înainte de a începe transmisia si trece jetonul mai departe la sfârsitul ei.
Modul de functionare

      Sa vedem, practic, cum functioneaza o placa de retea. Placa de baza transfera datele, ce urmeaza a fi trimise în retea, într-o zona de memorie RAM, numita buffer. Adaptoarele preiau datele si le transfera într-un chip care calculeaza valorile sumelor de control (vom vedea putin mai jos formatul unui pachet Ethernet).
      Driverul placii de retea este un modul soft care codifica datele trimise de sistemul de operare spre placa si invers: decodifica datele primite de placa trimitându-le sistemului de operare (mai precis stivei de protocoale instalate în sistem).
      În mod normal un driver poate sa lucreze numai cu o singura stiva de protocoale. Deoarece în zilele noastre, pe un calculator, sunt necesare instalarea mai multor stive de protocoale, producatorii de sisteme de operare au creat niste drivere care pot lucra cu mai multe stive. Astfel putem enumera:

  • NDIS - produs de Microsoft
  • ODI - creat de Novell
  • packet driver produs de FTP Software Inc si altii. Permite lucrul cu diferite aplicatii TCP/IP în combinatie cu protocolul IPX/SPX.

      Placa de retea trebuie sa converteasca datele, luate din buffer, într-un format de semnal utilizat de mediul de transmisie. De exemplu: daca datele sunt transmise prin fibra optica, bitii sunt utilizati pentru a lumina un LED infrarosu sau o dioda laser, care la rândul lor vor transmite pulsuri de lumina catre retea. Echipamentul efectiv, care realizeaza aceasta conversie se numeste transceiver. Ele pot fi echipamente exterioare atasate la porturile AUI (Attachment Unit Interface) aflate pe adaptoare, sau pot fi incluse in aceste adaptoare. Unele placi de retea au încorporate mai multe tipuri de transceivere. Nu trebuie confundata interfata AUI cu transceiverele.
      În timp ce se realizeaza transmisia, adaptoarele asculta mediul de transmisie pentru a fi sigure ca datele ce traverseaza reteaua sunt identice cu cele transmise de ele. În cazul în care adaptorul sesizeaza ca datele receptionate nu coincid cu cele trimise, va transmite un semnal special catre toate adaptoarele din retea prin care le anunta ca s-a produs o coliziune. Placa caruia îi erau destinate datele va tine cont de semnalul adresat si va omite ultimele cadre receptionate. Adaptorul emitator va astepta un interval aleator de timp si va încerca din nou sa transmita.

Configurarea placilor de retea

      Deoarece placile de retea au aparut ulterior altor interfete, nu au fost rezervate, pentru ele, întreruperi, adrese de porturi sau zone de memorie speciale. Unele interfete au alocate o întrerupere standard (tastatura - IRQ1, interfata seriala COM 1- IRQ4, interfata paralela - IRQ7, etc). Placile de baza PCI aloca automat IRQ si un port pentru placile de retea, cele ISA necesita o configurare manuala. Multe adaptoare sunt însotite de o discheta de instalare pe care sunt programe de test care verifica functionarea corecta a placii cu setarile existente. Cea mai uzuala setare de IRQ pentru placile de retea este IRQ5 sau IRQ9.
      Setarea portului este relativ usoara, fiind, în general, preferate porturile: 280h, 300h, 320h, 360h.
      Fiecarei placi de retea i se aloca o adresa MAC. Aceasta adresa este unica pentru fiecare placa si este înscrisa în placa momentul fabricatiei. Este compusa din 6 bytes si este, de obicei, scrisa în format hexazecimal: 12:34:56:78:90:AB.
      Deoarece adresa MAC trebuie sa desemneze în mod unic a singura placa de retea, s-a adoptat, pe plan mondial, urmatorul criteriu de alocare:

  • primii trei bytes se aloca fiecarui producator de placi de retea,
  • urmatorii trei bytes sunt alocati de producatorul placii, el având obligatia de a nu aloca aceeasi adresa la 2 adaptoare.

      Prezentam mai jos un scurt tabel cu câtiva producatori de placi de retea si cei trei bytes alocati.

Cisco 00:00:00 NeXT 00:00:0F MIPS 00:00:6B MIPS 00:00:77 Intel 00:AA:00 IBM 08:00:5A

Formatul unui pachet Ethernet

      Prezentam mai jos structura unui pachet Ethernet transmis prin retea. Datele de la punctele a, b si g sunt generate de chip-ul placii, celelalte fiind furnizate de modulele soft instalate.

  1. 62 biti - preambul - utilizati de receptor pentru sincronizare
  2. 2 biti - marcheaza începutul datelor. Sunt setati pe "1"
  3. 6 bytes - adresa placii destinatie
  4. 6 bytes - adresa placii sursa
  5. 2 bytes - lungimea sau tipul pachetului
  6. 46-1500 bytes - datele trimise
  7. 4 bytes - suma de control
Se poate observa ca:
  • lungimea minima a unui pachet este de 8+6+6+2+46+4 = 72 bytes
  • lungimea maxima a unui pachet este de 8+6+6+2+1500+4 = 1526 bytes

      În articolul urmator vom vedea care sunt cele mai uzuale medii de transmisie si cum circula informatia prin intermediul lor.

 
Free Web Hosting