protocoale de retea arp si rarp

18
PROTOCOLUL ARP – Address Resolution Protocol Pentru ca două dispozitive dintr-o reţea locală să poată comunica, dispozitivul care transmite trebuie să cunoască atât adresa MAC, cât şi adresa IP a dispozitivului destinaţie. Atunci când se doreşte comunicarea cu un dispozitiv a cărui adresă IP este cunoscută, trebuie aflată adresa sa MAC. Suita de protocoale TCP/IP dispune de un protocol, numit ARP, care poate obţine în mod automat adresa MAC a unei staţii cu un IP cunoscut. Există o multitudine de moduri în care nodurile din reţea pot determina adresa MAC pe care o vor folosi ca adresă destinaţie în încapsularea de nivel 2. Fiecare staţie va ţine o tabelă cu toate adresele IP şi MAC ale calculatoarelor din aceeaşi reţea locală. Aceste tabele se numesc tabele ARP şi cu ajutorul lor se mapează adrese IP la adrese MAC. Tabelele ARP sunt reţinute în RAM, ceea ce înseamnă că trebuie refăcute la fiecare rebootare a staţiei. Administratorul de reţea poate modifica manual intrările din această tabela prin mijloace puse la dispoziţie de către sistemul de operare, însă aceste modificari sunt complet excepţionale şi în marea majoritate a cazurilor, tabelele sunt gestionate exclusiv de către dispozitivul care le menţine. Cereri ARP

Upload: vadim-urcan

Post on 13-Aug-2015

66 views

Category:

Documents


1 download

DESCRIPTION

Protocoale de Retea ARP Si RARP

TRANSCRIPT

Page 1: Protocoale de Retea ARP Si RARP

PROTOCOLUL ARP – Address Resolution Protocol

Pentru ca două dispozitive dintr-o reţea locală să poată comunica, dispozitivul care

transmite trebuie să cunoască atât adresa MAC, cât şi adresa IP a dispozitivului destinaţie.

Atunci când se doreşte comunicarea cu un dispozitiv a cărui adresă IP este cunoscută,

trebuie aflată adresa sa MAC. Suita de protocoale TCP/IP dispune de un protocol, numit

ARP, care poate obţine în mod automat adresa MAC a unei staţii cu un IP cunoscut.

Există o multitudine de moduri în care nodurile din reţea pot determina adresa

MAC pe care o vor folosi ca adresă destinaţie în încapsularea de nivel 2. Fiecare staţie va

ţine o tabelă cu toate adresele IP şi MAC ale calculatoarelor din aceeaşi reţea locală.

Aceste tabele se numesc tabele ARP şi cu ajutorul lor se mapează adrese IP la adrese

MAC. Tabelele ARP sunt reţinute în RAM, ceea ce înseamnă că trebuie refăcute la fiecare

rebootare a staţiei.

Administratorul de reţea poate modifica manual intrările din această tabela prin

mijloace puse la dispoziţie de către sistemul de operare, însă aceste modificari sunt

complet excepţionale şi în marea majoritate a cazurilor, tabelele sunt gestionate exclusiv

de către dispozitivul care le menţine.

Cereri ARP

Când un calculator sursă află adresa IP a destinatiei cu care doreşte să comunice, va

căuta adresa de MAC a acestuia în tabela ARP proprie. Dacă nu poate găsi adresa în

această tabelă, staţia va iniţia o procedură numită cerere ARP. Un pachet special de cerere

ARP este trimis prin broadcast de adresa MAC (ff-ff-ff-ff-ff-ff ) în reţeaua locală pentru a

fi recepţionat de toate dispozitivele. Datorită faptului că pachetul a fost trimis pe adresa de

broadcast, toate staţiile din reţeaua locală îl vor primi şi îl vor trimite nivelului reţea

pentru a fi analizat. Dacă adresa IP a dispozitivului corespunde adresei destinaţie din

pachet, dispozitivul va răspunde. În caz contrar, pachetul este ignorat.

Sursa nu ştie adresa MAC a destinaţiei, dar îi ştie adresa IP. Cadrul cu cererea ARP

este trimis prin broadcast MAC tuturor staţiilor din reţeaua locală.

Header MACDestinatieFf-ff-ff-ff-ff-ffSursa00-00-BC-12-34-56

Page 2: Protocoale de Retea ARP Si RARP

Realizarea broadcastului de nivel 2 înseamnă că se setează adresa destinaţie din

cadrul headerului adăugat de către nivelul legatură de date în procesul de încapsulare la

valoarea ff-ff-ff-ff-ff-ff. Ori de câte ori o staţie primeşte un cadru în care adresa

destinaţie are această valoare, acest cadru este tratat ca şi cum ar fi fost destinat staţiei

care l-a primit şi este deci trimis mai departe nivelului reţea. Acest mecanism ne asigură

că orice pachet de broadcast de nivel 2 va fi recepţionat şi transmis nivelului reţea de către

toate staţiile la care ajunge.

Cadrul ARP

Figura 1 Headerul cadrului protocolului ARP

Pachetele de cerere ARP au un format special, a cărui structură este prezentată în

figura de mai sus. Un astfel de pachet are o dimensiune a header-ului de 28 de octeţi şi

conţine, în afară de informaţiile adăugate la încapsulare de nivelurile legătură de date şi

reţea, doar informatiile necesare recunoaşterii faptului că este o cerere ARP.

Toate dispozitivele din segmentul local de reţea vor investiga cadrul şi vor verifica

dacă adresa proprie de IP este aceeaşi cu adresa IP destinaţie.

Figura 2 Schema simplificată

Headerul cadruluiHeaderul MAC DestinaţieFf-ff-ff-ff-ff-ffSursa00-00-BC-12-34-56

Headerul IPDestinaţie192.168.1.100Sursa192.168.1.205

Mesaj de cerere ARPCare este adresa ta MAC?

IP HeaderDestinatie192.168.1.100Sursa192.168.1.205

EU ?

Page 3: Protocoale de Retea ARP Si RARP

Pentru că pachetul este trimis având ca adresă destinaţie adresa de broadcast pe

adrese MAC, toate staţiile din reţeaua locală îl primesc şi îl analizează. Nivelul reţea

verifică adresa IP destinaţie înscrisă în headerul IP şi o compară cu adresa proprie.

– Dacă nu – ignoră cadrul;

– Dacă da:

– Citeşte restul pachetului

– Trimite raspuns ARP

– Răspunsul ARP:

– Ofera adresa MAC a dispozitivului

Figura 3 Verificarea adresei IP

Dacă o staţie determină că adresa IP destinaţie din cadrul pachetului de cerere ARP

este egală cu adresa proprie IP, aceasta va pregăti un pachet de răpuns ARP. Acest pachet

va avea ca adresă IP destinaţie adresa IP a staţiei care a iniţiat cererea ARP. Adresa sursă

încapsulată la nivelul reţea va fi egală cu adresa IP pentru care se dorea găsirea adresei

MAC corespunzătoare, deci cea a staţiei care trimite pachetul de răspuns ARP. Cadrul

care încapsulează acest pachet va fi adresat către adresa MAC a calculatorului care a făcut

cererea ARP şi, în cadrul câmpului pentru adresa MAC, sursa va completa practic

răspunsul la cererea ARP făcută, adică adresa MAC a staţiei care răspunde.

Sursa: cerere ARPIP-ul propriu se potriveşte!!!

Adresa mea de MAC

nunu

Page 4: Protocoale de Retea ARP Si RARP

Durata de viaţă a cache-ului ARP

Pentru a gasi adresa MAC mapată unei adrese IP către care se doreşte transmiterea

unui pachet, un dispozitiv din reţea îşi va verifica mai întâi tabela ARP proprie şi numai

dacă nu găseşte adresa dorită în această tabelă va face o cerere ARP. Această procedură

introduce necesitatea ca tabelele de ARP să conţină informaţii actuale, altfel pachetele vor

fi trimise la adrese greşite. Pe baza tabelei ARP se trimite un pachet către o placă de reţea

destinaţie sau alta, deci corespondeţa adresă IP – adresă MAC reţinută în această tabelă

trebuie să fie corectă la orice moment dat.

Însă adresele IP nu sunt fixe şi sunt asignate diverselor dispozitive de către

administratorul de reţea, ceea ce înseamnă că ele se pot schimba între două momente de

timp. Dacă tabelele ARP nu ar fi din când în când înnoite, s-ar putea ajunge la o situaţie

când o mapare între o adresă IP şi una MAC reţinută într-un cache ARP să nu mai

corespundă realităţii, făcând astfel comunicarea imposibilă. Pentru a evita această

problemă, dispozitivele de reţea stabilesc un timp de viaţa pentru o intrare în cache-ul

ARP. După expirarea acestui interval de timp, intrarea în tabelă va fi invalidată. Procesul

de înlăturare a intrărilor vechi din tabelele ARP poartă numele de îmbătrânire.

Pentru o flexibilitate sporită şi pentru a reduce overhead-ul cauzat de cererile ARP,

s-a adăugat un mecanism prin care, ori de câte ori o staţie primeşte un pachet cu informaţii

noi despre un dispozitiv din reţea, adaugă aceste informaţii la tabela ARP proprie.

Page 5: Protocoale de Retea ARP Si RARP

PROTOCOLUL RARP – Reverse Address Resolution Protocol

RARP (Reverse Adress Resolution Protocol) este un protocol simplu care are ca

efect alocarea automată a adreselor logice staţiilor din reţea. Staţiile îşi cunosc adresele

proprii MAC şi doresc să afle adresa lor de IP. Acestea trimit o cerere RARP în reţea.

Serverul RARP din reţea va răspunde cererii şi va asigna o adresă IP staţiei respective.

Acest protocol este folosit de către dispozitivele care au o dependenţă mare de reţea

(terminale fără disc) şi de obicei partea din protocol ce ţine de client este „arsă” în ROM-

ul dispozitivului.

Protocolul Reverse ARP este asemănător cu ARP, în sensul că are acelasi scop:

asocierea unei adrese MAC cu o adresă IP.

RARP este folosit mai ales de către staţiile fără discuri. Aceste staţii îşi cunosc la

momentul bootării numai adresa fizică MAC, fără a şti care este adresa IP proprie. Prin

RARP, un calculator îşi poate afla adresa IP pe baza adresei MAC a plăcii sale de reţea.

Staţiile fără disc nu dispun de suport magnetic pe care să-şi poată salva configuraţia

IP, pentru a-şi putea reface setările de reţea după ce au fost scoase de sub tensiune. În

consecinţă, aceste statii trebuie să-şi afle adresa IP la fiecare bootare.

Configuratia IP pentru fiecare staţie ce foloseste protocolul RARP pentru a-şi afla

această configuraţie este stocată pe serverul RARP. În timpul bootării, staţiile fără disc au

rutine speciale în EPROM care le permit să afle, printr-o cerere RARP, care le este adresa

IP.

Cadrul RARP vs. ARP

Page 6: Protocoale de Retea ARP Si RARP

Figura 4 Headerul cadrului protocolului RARP

Atât protocolul ARP, cât şi RARP, folosesc acelaşi tip de pachet, numit pachet

cerere ARP, pentru a face o cerere. Ambele pachete de cerere sunt trimise prin broadcast

de adresa MAC. Deosebirile între cele două cereri constau în încapsularea de la nivel

reţea, mai exact cerererea ARP se transmite direcţionat (se cunoaste IP-ul destinatie şi se

doreşte aflarea adresei MAC), pe când cererea RARP se trimite prin broadcast IP pe

adresa 255.255.255.255, fără să se completeze câmpul adresă IP sursă, acesta se

iniţializează la valoarea 0.

Clientul RARP

Headerul cadrului

Headerul MAC DestinatieFf-ff-ff-ff-ff-ffSursa00-00-8C-12-34-56

IP HeaderDestinatie255.255.255.255Sursa0.0.0.0

Mesaj cerere ARPCare este adresa MEA de IP?

Page 7: Protocoale de Retea ARP Si RARP

Atunci cand un client RARP primeşte un răspuns la o cerere făcută, va desfăşura

următoarea procedură:

– îşi setează adresa IP proprie la adresa destinaţie primită în răspunsul RARP;

– îşi copiază această adresă proprie în RAM şi o foloseşte din acest moment înainte

ca adresă proprie în toate încapsulările şi verificările de nivel 3 realizate;

– începe să funcţioneze ca o staţie normală în reţeaua locală cu noile setări

efectuate;.

– la orice scoatere de sub tensiune, aceste setări sunt pierdute şi trebuie refăcute la

rebootare prin aceeaşi procedură.

Comparatie ARP & RARP

Similarităţi:

– ambele se ocupă cu maparea adreselor IP la adrese MAC

– ambele folosesc acelaşi tip de pachet;

– ambele folosesc adrese de broadcast pentru a-şi îndeplini scopul.

Similarităţile principale între ARP şi RARP sunt legate de faptul că folosesc acelaşi

format de pachet pentru a trimite cereri şi de faptul că se ocupă de aceeaşi problemă şi

anume maparea adreselor IP la adrese MAC.

Ambele protocoale folosesc un broadcast pentru a trimite cererile făcute.

Diferenţe:

ARP - obţine adresa MAC a altor staţii folosind o adresă IP;

RARP – obţine adresa proprie IP folosind adresa proprie MAC;

Pachetele ARP folosesc broadcast pe adrese MAC (ff-ff-ff-ff-ff-ff);

RARP foloseşte adresa IP de broadcast (255.255.255.255), precum şi adresa MAC de

broadcast (ff-ff-ff-ff-ff-ff);

Tabelele ARP sunt menţinute local;

Tabelele RARP sunt menţinute de către serverul RARP;

Răspunsul ARP este folosit de staţia locală pentru a-şi înnoi cache-ul ARP;

Page 8: Protocoale de Retea ARP Si RARP

Răspunsul RARP este folosit de o staţie pentru a-şi configura parametrii locali IP.

Deosebirile între ARP şi RARP sunt legate în primul rând de scopul utilizării celor

două: în timp ce ARP este folosit pentru aflarea adresei MAC a unei alte staţii cu o adresă

IP cunoscută, pe când RARP este utilizat pentru găsirea adresei IP proprii în cazul

cunoaşterii adresei MAC. Pe când pentru o cerere ARP, broadcastul este exclusiv pe

adrese MAC, pachetul RARP este trimis atât pe o adresă de broadcast de nivel 2, cât şi

printr-un broadcast general IP.

În timp ce tabelele ARP sunt menţinute local de către fiecare nod din retea, tabelele

RARP sunt ţinute centralizat pe serverul RARP.

O ultimă diferenţă constă în modul de folosire a pachetului răspuns. Cu ajutorul

pachetului de răspuns ARP se înnoieşte cache-ul ARP local, pe cand pachetul de răspuns

RARP este utilizat de către o staţie pentru a-şi configura proprii parametri de reţea IP.

Nivelul reţea – determinarea căii de urmat

Un router este un dispozitiv care asigură comunicarea între două sau mai multe

reţele distincte. Routerul foloseşte schema de adresă pentru nivel 3

(adrese logice – adrese IP, IPX) pentru a dirija pachetele între diversele

reţele, căutând calea cea mai bună pentru aceste pachete. Când un router

forward-ează un pachet, îi înlocuieşte informaţia de nivel 2 cu propria adresă, deci

adresarea de nivel 2 rămâne foarte importantă.

Comunicarea într-o reţea (bazată pe comutarea de pachete!) este echivalentă cu

alegerea unui drum într-un graf. Există nenumaraţi algoritmi care tratează acest gen de

probleme, dar pentru cazul mai special al unei reţele (un graf dinamic, în care anumite

legături între noduri pot fi inaccesibile pentru o perioadă de timp (mai mică, mai mare

sau chiar definitiv) se potrivesc foarte bine doi algorimi. Aceştia stau la baza

implementării celor două tipuri de protocoale de rutare folosite: link-state, respectiv

distance-vector.

Chiar dacă vom trata în continuare aspecte legate de adresarea la nivelul 3, vom

vedea că practic rămâne foarte importantă şi adresarea la nivelul 2. Una din problemele

Page 9: Protocoale de Retea ARP Si RARP

ce apar este faptul că trebuie făcută o trecere de la adresarea de nivel 2 la adresarea de

nivel 3 şi invers. Aceste probleme sunt rezolvate şi ele cu ajutorul unor protocoale

specifice (ARP, RARP).

Figura 5 – Fiecare interfaţă a unui router are propria adresă IP şi propria adresă MAC

Una din necesităţile pe care trebuie să le aibă un dispozitiv ce face parte dintr-o

reţea este să aibă un identificator care să fie unic. Dacă această condiţie nu este

îndeplinită, adică există două dispozitive într-o reţea cu acelaşi identificator, comunicarea

între cele două dispozitive, precum şi între oricare dintre ele şi oricare alt dispozitiv nu va

mai putea fi făcută corect, pentru că există ambiguităţi. Cine ar trebui să primească

informaţia?

Am spus că un router asigură interconectarea mai multor reţele. Aceasta implică că

routerul face parte din toate reţelele pe care le interconectează. Cum fiecare dispozitiv

dintr-o reţea trebuie să aibă un identificator unic în reţeaua respectivă, înseamna că

routerul va avea identificatori diferiţi pentru fiecare din reţelele din care face parte.

Practic fiecare interfaţă a routerului („partea” din router care aparţine unei reţele,

atât fizică cât şi logică – ethernet, seriale) va avea o adresă proprie atât la nivel 3 (IP) cât

şi la nivel 2 (MAC).

Page 10: Protocoale de Retea ARP Si RARP

Figura 6 – Interfeţele unui router trebuie să aibă adrese din reţele diferite

De asemenea, adresele logice ale interfeţelor trebuie să aparţină unor reţele diferite,

întrucât interfeţele sunt părţi ale routerului ce aparţin unor reţele diferite.

Cum se asignează adresele IP ?

Ajungând la problematica adresării de nivel 3, trebuie să reamintim că aceste adrese

sunt adrese logice. Spre deosebire de nivelul 2, unde adresele MAC erau înscrise în ROM-

ul plăcii de reţea de către producătorul acesteia, la nivelul 3 adresele trebuiesc asignate de

către administratorul de reţea.

Există două metode de alocare a acestor adrese: alocare statică şi alocare

dinamică. Numele lor sunt destul de sugestive.

Prima dintre ele constă în atribuirea de adrese pentru fiecare dispozitiv din reţea,

explicit, de către administratorul de reţea.

Avantajul acestei metode de alocare a adreselor este simplitatea, securitatea şi

overhead-ul practic inexistent. Este o soluţie bună pentru reţele de dimensiuni mici sau

pentru reţele mai mari, dar care nu îşi schimbă foarte mult configuraţia.

Dezatantajele se materializează prin multă muncă de administrare şi o ţinere strictă

a evidenţei (tot de către administratorul de reţea).

Alocarea dinamică de adrese este de preferat în cazul reţelelor de dimensiune mare

sau a reţelelor care îşi schimbă configuraţia frecvent. În acest caz, administratorul de reţea

instruieşte un server care va distribui adresele logice staţiilor din retea, în coloborare cu

acestea.

Cele mai cunoscute protocoale pentru asignarea de adrese IP în mod dinamic sunt

următoarele: BOOTP, RARP, DHCP.

Page 11: Protocoale de Retea ARP Si RARP

Căutarea adreselor

Protocolul Ethernet identificã gazdele printr-un numãr pe 6

octeţi, care nu are nimic în comun cu o adresã IP. Din cauza aceasta

este nevoie de un mecanism pentru a face legătura între adrese IP şi

adrese Ethernet. Acesta este aşa numitul Adress Resolution

Protocol (ARP) - protocol de căutare al adreselor. De fapt, ARP nu este legat de Ethernet

neapărat, ci este folosit şi la alte tipuri de reţele, ca de exemplu la reţelele radio. Ideea care

stă la baza ARP este ceea ce fac cei mai mulţi oameni când vor să-l găseascã pe dl X între

150 de oameni: merg şi îl strigă pe nume, fiind sigur că acesta va răspunde dacă este

acolo.

Când ARP vrea să găsească adresa Ethernet corespunzãtoare unei adrese IP,

foloseşte o proprietate a protocolului Ethernet numită „rãspândire” (broadcasting), când o

datagramă este adresată simultan tuturor staţiilor din reţea. Diagrama aceasta conţine o

întrebare pentru a afla adresa IP. Fiecare gazdã din reţea compară adresa IP din datagrama

primită cu propria adresã IP şi dacă se potrivesc, îi întoarce un răspuns ARP gazdei care a

făcut cererea. Această gazdă poate extrage acum, din rãspuns, adresa Ethernet.

Desigur ne putem întreba cum poate şti o gazdă care din milioanele de maşini cu

Ethernet din lume este gazda căutată şi cum poate şti că aceasta posedã interfaţă Ethernet.

Aceste întrebări îşi află răspunsul în ceea ce se numeşte rutare (routing), care se ocupã cu

găsirea locaţiei fizice a unei gazde într-o reţea. Acesta va fi subiectul următoarelor

secţiuni.

Odatã ce o gazdã a descoperit o adresã Ethernet, o va ţine minte astfel încât să nu

mai trebuiască să întrebe din nou data viitoare când va vrea să trimită o datagramă gazdei

cu pricina. Însă nu este bine să păstreze acestă informaţie totdeauna; de exemplu, gazda de

la distanţă îşi poate schimba placa de reţea din cauza problemelor tehnice, deci intrarea

ARP devine invalidă. Pentru a forţa altă întrebare, intrările în memoria ARP trebuiesc

şterse din când în când.

Câteodatã este necesarã găsirea adresei IP asociate unei adrese Ethernet date.

Aceasta se întâmplă când o maşină fără disc vrea să booteze de pe un server din reţea,

situaţie des întâlnită în reţelele locale. Un client fãrã disc nu are nici o informaţie despre el

Page 12: Protocoale de Retea ARP Si RARP

însuşi - în afară de adresa Ethernet! Aşa că va trimite un mesaj răspândit (broadcast)

conţinând o rugăminte către serverul de boot pentru a-i spune adresa sa IP. Pentru aceasta

există alt protocol numit Reverse Adress Resolution Protocol (RARP). Împreunã cu

protocolul BOOTP, el defineşte metoda prin care clienţii fără disk pot boota de pe un

server din reţea.

La ce nivel se verifică o adresă MAC ?

Problema adresării prin adrese fizice (adrese MAC) apare la nivelul legatură de

date, mai exact atunci când nivelurile superioare (transport/TCP şi reţea/IP) trimit

nivelului legatură de date un pachet cu o adresă IP destinaţie şi o adresă IP sursă

cunoscute. Sarcina nivelului legatură de date (sau acces la reţea în modelul TCP/IP) este

acela de a completa corect adresele MAC pentru sursă şi destinaţie astfel încât

comunicarea să aiba loc în mod corect. Pentru a se putea transmite date între două staţii,

sunt neaparat necesare atât adresa MAC, cât şi adresa IP.