Sunteți pe pagina 1din 6

ARP si RARP

Adresele IP sint identificatorii obisnuiti pentru masini in cadrul protocolului TCP/IP, dar adresa IP nu e suficienta pentru a trimite o datagrama la destinatie. In realitate, comportarea retelei este specifica sistemului de operare si tipului de hardware folosit. Scopul unei adrese IP este de a ajuta protocolul sa livreze datagramele la destinatia dorita. Sint folositi trei termeni: - nume: este o identificare precisa a unei masini, a unui utilizatoro sau a unei aplicatii. De obicei este unic si ofera o destinatia absoluta pentru livrarea unei datagrame. - adresa: indica in mod obisnuit unde se afla destinatia, de obicei ca adresa fizica sau logica intr-o retea - ruta: arata sistemului cum sa trimita o datagrama la adresa corecta. Numele de login al destinatarului este de obicei cheia intregului proces de livrare a datelor. Plecind de la numele de utilizator si de la numele masinii, un pachet de software de retea numit name server (server de nume) determina adresa si ruta, ascunzind acest aspect. Pe linga transparenta, folosirea unui name server are avantajul ca permite administratorului mai multa libertate (se poate modifica reteaua dupa necesitati, fara a fi nevoie de actualizarea fiecarei statii de lucru).

Adresarea subretelelor
Pentru trimiterea unui bloc de date, se utilizeaza adresa IP. Protocolul TCP/IP stie sa utilizeze aceste adresa, dar software-ul si hardware-ul de retea nu sint proiectate sa faca acest lucru. In schimb, reteaua foloseste o adresa fizica, inscrisa in hardware, ce identifica fiecare masina. Obtinerea din adresa IP a adresei fizice nu este in mod normal parte a protocolului TCP/IP, de aceea au fost dezvoltate protocoale specializate. In orice retea, fie LAN sau WAN, sint necesare unele informatii care sa asigure livrarea corecta a datagramelor. Principalele informatii sint adresa fizica si adresa de la nivelul legaturii de date a masinii destinatie. Adresle fizice Fiecare dispozitiv de retea are o adresa fizica unica, denumita adresa hardware sau adresa de la nivelul legaturii de date. Adresele sint de obicei inscrise in placa de interfata cu reteaua. Adresa fizica poate fi uneori setata de utilizator (prin jumperi, comutatori sau prin software), dar in cele mai multe cazuri aceste adrese nu sint modificabile, pentru ca in memoria ROM a dispozitivelor este scris un numar unic. Deseori, producatorii conlucreaza pentru a se asigura ca nu exista vreo posibilitate de duplicare a adreselor fizice. Intr-o retea data, o adresa fizica trebuie sa apara o singura data, altfel name-serverul nu ar avea nici un mijloc de a identifica destinatia fara ambiguitate. Lungimea adresei variaza in functie de sistemul de retea. De exemplu, Ethernet foloseste 48 de biti per adresa. Pentru o comunicatie, este nevoie de doua adrese, cite una pentru dispozitivul expeditor si respectiv, cel receptor. Asignarea de adrese fizice universale este facuta de IEEE. Pentru fiecare subretea, se aloca un identificator unic de organizatie (Organization Unique Identifier, OUI), lung de 24 biti (in realitate primii doi din cei 24 biti OUI sint biti de control), ceea ce permite organizatiei sa asigneze ceilalti 24 biti. Combinatia aceasta, de 48 biti asignati local este numita adresa de control al accesului la mediu (media access control - MAC). Cel mai semnificativ bit al adresei este numit bitul de adresa individuala/de grup. Daca este pus pe zero, restul adresei se refera la o adresa individuala; valoarea 1 identifica o adresa de grup, care are nevoie de rezolvare ulterioara. Daca intregul cimp OUI este setat pe 1, se presupune ca toate statiile sint destinatare.

Al doilea bit este numit bit local/universal. Daca este pe zero, identificatorul OUI a fost setat de un consiliu de administratie universal (de ex, IEEE). Daca este pus pe 1, OUI a fost asignat local si ar cauza probleme de adresare daca ar fi interpretat ca adresa asignata de IEEE; acest lucru e folosit intr-o retea locala sau de arie larga si nu este transmisa altor retele. Adresa de la nivelul legaturii de date Standardele IEEE Ethernet folosesc o alta adresa numita adresa de la nivelul legaturii de date, abreviata de obicei LSAP - link service access protocol, punct de acces la serviciul de legaturi. LSAP identifica tipulde protocol de legatura folosit la nivelul legaturii de date. Ca si in cazul adreselor fizice, o datagrama va transporta atit adresa LSAP a expeditorului, cit si cea a destinatarului. Cadrele de retea Organizarea informatiei din fiecare pachet de date transmis difera in functie de protocolul de retea folosit. Vom lua ca exemplu Ethernet (care se aseamana cu alte sisteme, de altfel). De retinut ca formatul cadrului de retea este modul in care protocoalele de retea impacheteaza antetele construite de TCP/IP si are putin de-a face direct cu TCP/IP. "Cadru" este termenul folosit pentru o datagrama pregatita pentru trimiterea prin retea. Un cadru Ethernet tipic: ------------------------| Preambul | ------------------------| Adresa destinatarului | ------------------------| Adresa expeditorului | ------------------------| Tip | ------------------------| Date | ------------------------| CRC | ------------------------Preambulul este construit din 64 biti folositi in principal pentru a sincroniza procesul de comunicare si ca asigurare impotriva zgomotelor aleatoare de transmisie care pot aparea in primii biti trimisi. Din alte puncte de vedere (adresare, rutare), acest cimp este ignorat. Adresele corespunzatoare expeditorului si destinatarului foloses formatul IEEE pe 48 biti, urmat de un indicator de 16 biti care precizeaza tipul protocolului utilizat. Datele efective (datagrama TCP/IP) urmeaza indicatorului de tip. In cadrul tehnologiei Ethernet standard, cimpul de date are intre 46 si 1500 octeti lungime. Daac datele nu totalizeaza 46 octeti, cimpul este completat cu zerouri. La sfirsitul cadrului este stocata suma de control, folosita ca de obicei pentru verificarea integritatii datelor transmise; fiecare masina de pe traseul de transmisie calculeaza acest CRC, iar daca datele au fost alterate, cadrul va fi inlaturat.

Utilizarea ARP - Address Resolution Protocol


Plecind de la o adresa IP, un gateway de retea poate determina daca datele trebuiesc trimise spre exterior catre Internet (sau catre alta inter-retea), sau daca ele ramin in reteaua locala. Este posibil ca o masina (in special un gateway) sa aiba mai multe adrese IP

daca este conectata la mai multe retele. Ele se numesc multihomed. Doua retele pot avea aceeasi adresa de retea daca sint conectate printr-un gateway, ceea ce constituie o problema pentru ca gateway-ul trebuie sa fie capabil sa diferentieze pe ce retea se afla o adresa fizica data. Aceasta problema este rezolvata de un protocol special care se ocupa exclusiv cu rezolvare adreselor, ARP. Trimiterea datelor de la o masina la alta poate fi o problema daca adresa fizica a masinii destinatie nu e cunoscuta. Trebuie sa existe o metoda de a transforma (se spuna a rezolva) adresa IP (furnizata de aplicatii) in adresa fizica a dispozitivului hardware care conecteaza fiecare masina la retea. Metoda cea mai simpla este de a utiliza o tabela de conversii pe fiecare masina. Cu aceasta metoda, insa, sint asociate o gramada de probleme, motiv pentru care ea este practic complet neutilizata. Dezavantajul principal ar fi necesitatea constanta a actualizarii tabelelor de pe fiecare masina atunci cind apare o schimbare. ARP a fost dezvoltat pentru a inlatura aceasta problema. In termenii cei mai simplu, ARP este o tabela de conversie dintre adresele IP si adresele fizice corespunzatoare, numita tabela ARP: | INDEX | ADRESA | ADRESA | TIP | | INTERFATA | FIZICA | IP | | ------------------------------------------------Intrarea 1 | | | | | Intrarea 2 | | | | | .......... | | | | | Intrarea n | | | | | ARP mentine de asemenea in memorie si un cache de intrari, numit cache ARP. Fiecare rind din acest cache corespunde unui dispozitiv si stocheaza urmatoarele informatii pentru fiecare dispozitiv: index interfata (IF index) - portul (interfata) fizica adresa fizica adresa IP - corespunzatoare adresei fizice tip - tipul intrarii Tipul are patru valori posibile: 2 = intrare invalida, 3 = mapare dinamica (intrarea se poate schimba), 4 = intrare statica (intrarea nu se poate schimba), 1 = nici o varianta din cele de mai sus. Cind protocolului ARP ii este inminata o adresa IP, el cauta o intrare corespunzatoare in cache ARP, apoi in tabela ARP. Dacaq o gaseste, el intoarce entitatii care a furnizat adresa IP o adresa fizica. Daca ARP nu gaseste adresa IP, el va trimite un mesaj pe retea. Acest mesaj, numit cerere ARP, este difuzat catre toate dispozitivele din reteaua locala; cererea contine adresa IP pentru care se doreste identificarea. Daca un dispozitiv recunoaste acea adresa IP ca fiind cea proprie, el va trimite un mesaj de raspuns continind adresa lui fizica, catre masina care a generat cererea ARP, aceasta din urma stocind informatia in tabela sa ARP. Structura unei cereri ARP este: -------------------------------------------------------| Tip hardware (16 biti) | -------------------------------------------------------| Tip protocol (16 biti) | -------------------------------------------------------| Lungime adr. hardware | Lungime adr de protocol (IP) | -------------------------------------------------------| Cod operatie (16 biti) | -------------------------------------------------------| Adr. hardware a expeditorului |

-------------------------------------------------------| Adr. IP a expeditorului | -------------------------------------------------------| Adr. hardware a destinatarului | -------------------------------------------------------| Adr. IP a destinatarului | -------------------------------------------------------La trimiterea unei cereri, evident, nu se completeaza cimpul adresa hardware a destinatarului, cimp folosit insa intr-un raspuns ARP. Tip hardware - Identifica tipul de interfata (de ex. Ethernet, X.25, IEEE 802.X). Tip protocol - tipul protocolului folosit de dispozitivul expeditor. In cazul TCP/IP, aceste procotoale sint de obicei de un tip EtherType (specifice Ethernet; de ex. XEROX PUP, X.75, XNS, Berkeley Trailer, DEC, AppleTalk etc.). Lungimea adresei hardware - lungime data in octeti a adresei hardware. Lungime adresei de protocol (IP) - lungime exprimata tot in octeti. Cod operatie - specifica daca datagrama este o cerere ARP (1) sau un raspuns ARP (2). Celelalte cimpuri se definesc prin numele lor. Proxy ARP Exista cazuri in care doua retele sint conectate printr-un gateway, avind aceeai adresa de retea. Dispozitivul gateway trebuie sa determine carei retele ii corespunde adresa fizica sau adresa IP dintr-o datagrama sosita. Se face acest lucru cu un protocol ARP modificat, numit Proxy ARP. Acesta creeaza un cache ARP continind intrari de la ambele retele. Gateway-ul trebuie sa administreze cererile si raspunsurile ARP care traverseaza cele doua retele. Prin combinatia a doua cache ARP, Proxy ARP previne excesul de datagrame de cerere si raspuns ARP, trimise ori de cite ori o adresa trebuie sa traverseze un gateway de retea.

Reverse Address Resolution Protocol (RARP)


O problema a ARP este ca, daca un dispozitiv nu-si cunoaste propria adresa IP, el nu poate genera cereri si raspunsuri ARP. Acest lucru se intimpla, de ex, cind o statie de lucru fara disc intra pe retea. Singura adresa pe care o cunoaste este adresa sa fizica. O solutie simpla este Protocolul de Rezolvare Inversa a Adreselor (RARP). RARP emite adresa fizica a destinatarului si asteapta trimiterea inapoi a unei adrese IP. Raspunsul este trimis de un server RARP, chiar daca dispozitivul emitator a trimis mesajul catre toate statiile (broadcast).

Utilizarea comenzii ARP


Cele mai multe implementari TCP/IP furnizeaza o comanda pentru consultarea continutului cache ARP. Sub Unix sau Windows, comanda este "arp". Lansati de exemplu: > arp -a si veti obtine intrarile corespunzatoare. Comanda este rareori utilizata, mai degraba de catre administratorul de retea care urmareste rezolvarea unor adrese IP duplicat.

DNS: serviciile de numire


4

In zilele de inceput, utilizatorii erau nevoiti sa mentina un fisier de configurare numit HOSTS. El continea informatiile de care statia de lucru avea nevoie pentru a comunica cu celelalte sisteme din retea. Evident existau probleme cu actualizarea acestui fisier (care se facea manual). Un fisier HOSTS contine informatii despre ce IP-uri erau asignate unui nume dat. Cind trebuia gasit un calculator de pe retea, se examina fisierul HOSTS local. Daca acel calculator de pe retea nu avea o intrare in fisier, practic era inexistent. Asa ca a aparut Sistemul Numelor de Domenii (Domain Name System - DNS). Se foloseste un server ca gazda DNS, iar in zilele noastre, fisierul HOSTS este folosit doar pentru a evita ca o masina dintr-un LAN sa foloseasca DNS pentru a localiza o alta masina locala (metoda fiind mai rapida, evident).

Concepul de DNS
Tehnica folosita pentru a denumi adresele IP se bazeaza pe principiile mnemonicii. Numele sint mai usor de amintit decit numerele (care ar forma o adresa IP). In viata normala, exista prea multe numere IP pentru a putea fi usor retinute. De aici si sistemul de numire. Spre exemplu, www.microsoft.com este un astfel de nume. Inainte de aparitia DNS, ideea era de a avea un sistem care sa transforme un nume in numarul asociat. Dupa translatare, se gaseste o adresa IP, care este cea efectiva. Acest proces necesita o retea de sisteme numite servere DNS. La ora actuala, toate aceste servere sint conectate la o companie numita Network Solutions Inc, cunoscuta si sub numele de InterNIC. Peste tot un lume existe servere DNS care fac schimb de informatii, asa incit utilizatorii sa poate gasit usor site-urile Web sau alte resurse Internet. Organizarea ierarhica a DNS Organizarea DNS este una ierarhica. Principiul este simplu. Exista domenii care se afla in virful ierarhiei, de exmplu COM sau EDU sau ORG. Aceste domenii nu pot fi devansate. Domeniile din virfl ierarhiei sint cunoscute ca universul denumirilor (Naming Universe), deoarece ele contin domeniile si subdomeniile care sint plasate mai jos in ierarhie, analog radacinilor unui copac. Din virful ierarhiei ne mutam atentia spre domeniile intermediare. Astfel de exemple ar fi whitehouse.gov sau disney.com. Acestea pot fi inregistrate, dar de obicei cu scopul de a acoperi un set de nume de domenii inrudite. Se practica inregistrarea unui domeniu intr-un subdomeniu, sau intr-un domeniu final. Exemple de astfel de domenii ar fi www.whitehouse.gov sau www.disney.com. Alte sisteme folosesc o conventie diferita, pentru a indica locatia si tara de origine; de exemplu, www.bbc.co.uk ar arata ca site-ul Web al BBC-ului se afla in Marea Britanie. Domeniile pot fi aproape oricare. De ex, www.netscape.com, home.netscape.com si www1.netscape.com. Toate acestea pot fi in locuri foarte diferite de pe Internet si de multe ori contin informatii diferite. Ele ar putea indica de asemenea un singur site si o singura pagina, dupa cum doreste administratorul de site Web. Delegarea autoritatii DNS este proiectat in asa fel incit permite sererul subordonate celor din radacina sa preia controlul asupra unui domeniu dat. De ex, cind o compania X isi inregistreaza numele de domeniu (www.comapiax.com) la InterNIC, ea declara ca servere DNS proprii serverele DNS principal si secundar ale furnizorului ISP. InterNIC introduce informatiile in serverul radacina al domeniului COM si le permite sa se propage. Serverele DNS isi soncronizeaza periodic baza de date locala cu diferite alte baza de date de pe alte servere DNS. Pentru ca acest sistem sa functioneze, era necesara o modalitate de a determina

unde se afla pe retea o anumita masina. Aceasta necesitate a dus la dezvoltarea sistemului de ierarhizare, un mod de a grupa masinile in functie de rolul lor.

Baza de data DNS distribuita


Arhitectura bazelor de date DNS distribuite este destul de larg raspindita si de puternica. Autoritatea este delagata catre alte servere care sint mai bine pozitionate pentru a administra traficul unui domeniu sau al unui subdomeniu. Informatiile sint propagate catre aceste servere prin intermediul unui plan de distributie amanuntit. Fiecare domeniu are asignat un proprietar. Acesta este definit ca parte din Start of Authority (SOA) pentru acel domeniu. Domeniul din virful ierarhiei, de exmplu COM, deleaga autoritatea pentru un nume de domeniu ca disney.com serverului DNS specificat sa actioneze ca server DNS principal. Serverul care controleaza domeniul doin virful ierarhiei este astfel eliberat de sarcina de a trata fiecare interogare DNS de pe Internet. O data ce o structura SOA este asociata cu un server, acesta poate delega controlul subdomeniilor catre alte servere si asa mai departe. Domenii si zone Acestea sint de obicei tratate impreuna, dar exista mici difernte intre ele. O zona este domeniul principal intr-un univers al denumirilor. In timp ce Disney.com este o zona, www.disney.com este de fapt un subdomeniu din acea zona. Indatoririle administrative sint delegate serverului DNS principal. De exemplu, doemniul dv este ceva_1.com. Serverul DNS al ceva_1.com este denumit dns.ceva_1.com, si lui ii este delegata autoritatea pentru ceva_1.com. Un subdomeniu din ceva_1.com ar putea fi www.ceva_1.com sau home.ceva_1.com, iar serverul sau DNS principal ar fi dns.ceva_1.com. Daca ar fi sa inregistrati un alt nume de domeniu, de ex ceva_2.com, ati putea delega autoritatea pentru el tot lui dns.ceva_1.com. Aceste doua nume de domenii s-ar afla organizate in doua zona cuprinzind ceva_1.com si ceva_2.com. Fiecareia din aceste doua zone i se pot adauga orice numar de subdomenii atit timp cit numele de subdomenii sint unice in cadrul zonei de care apartin.

Procesul de rezolvare din serviciul de numire


Cind un client, precum un browser, trimite o cerere pentru un URL, acesta este transmi serverului DNS local, care incearca sa converteasca numele intr-un numar (adresa IP). Daca reuseste, va trimite numarul inapoi browserului si va prelua urmatoarea cerere. Daca nu poate gasi adresa, are doua posibiltati, functie de cum este configurat: 1. Interogari recursive Daca interogarea soseste la server si inregistrarea de adresa se afla in cache, nu mai sint necesare cautari suplimentare. Daca nu se afla in cache, sererul va trebui sa contacteze un alt server, superior in ierarhie. Intervine si timpul de supravietuire (TTL - Time To Live) al pachetelor IP. Daca gasirea unei adrese dureaza prea mult timp, cautarea ia sfirsit, serverul DNS intorcind o eroare de genul "address not found". 2. Interogari iterative Aceste cautari sint fortate sa ramina la nivel local, din anumite motive (de exemplu, pentru ca nu sint alte servere DNS disponibile). Serverul va face tot posibilul sa gaseasca o inregistrare cit mai apropiata in cache, iar daca nu gaseste, se intoarce o eroare.