Elemente Fundamentale Despre Interconectarea Calculatoarelor

CUPRINS

Introducere

Elemente fundamentale despre interconectarea calculatoarelor

Modelul de referinta OSI

Prezentarea nivelelor

Transmiterea datelor in modelul OSI

Modelul TCP/IP

Adrese IP

Tipuri de retele

Metode de interconectare

Securizarea comunicatiilor digitale prin intermediul VPN (Virtual Private Network)

Tipuri de retele VPN

Remote VPN

Intranet VPN

Extranet VPN

Protocoale de tunelare

Protocoale de nivel 2 OSI

Protocoale de nivel 3 OSI

Standardizarea retelelor VPN – protocoalele ISAKMP si IPsec

Protocolul AH

Protocolul ESP

Protocolul IKE si IKEv2

Principalele avantaje ale retelelor virtuale private

“Best practices” in retelele private virtuale

Aplicatie: simularea unei retele VPN site-to-site

Concluzii

Bibliografie

Introducere – memoriu justificativ

Dezvoltarea extraordinara pe care a cunoscut-o industria calculatoarelor a fost însotita pas

cu pas de aparitia si extinderea retelelor. În aproximativ 30 de ani realizarile sunt uimitoare:

calculatoarele au dimensiuni reduse si performante greu de banuit cu ani în urma, iar retelele, dupa ani de încercari în care s-au elaborat diverse modele, standarde, în care s-au experimentat diverse proiecte care au disparut sau care s-au unificat se prezinta astazi într-o forma destul de avansata. Totodata, a crescut numarul aplicatiilor care necesita o retea de calculatoare.

Tehnologia retelelor virtuale (Virtual Private Network) a aparut ca o solutie prin care se asigura confidentialitatea datelor vehiculate printr-un mediu public precum Internet-ul.

Motivatia de baza pentru construirea unui VPN este reducerea costurilor legate de comunicatii. Pentru ca este mult mai ieftin sa se foloseasca o singura legatura fizica comuna pentru servirea mai multor clienti din retea decât sa se utilizeze legaturi separate pentru fiecare client din reteaua privata.

Retelele virtuale private reprezinta un mod de a conecta locatii aflate la distanta (filiale, utilizatori mobili, clienti, furnizori etc.) într-o unica retea virtuala, asigurându-se mecanisme de securitate.

Tema acestei lucrari o constituie proiectarea si simularea unei aplicatii VPN care sa deserveasca o firma cu un sediu central în Bucuresti si trei filiale în tara (Pitesti, Iasi, Cluj). Zilnic, filiale din tara trebuie sa trimita date catre sediul central. Pentru a putea face acest lucru, exista doua posibilitati: fie se creeaza un Intranet cu toate locatiile pe baza unei conexiuni permanente (linii inchiriate) între sediul central si restul locatiilor, fie se opteaza pentru o solutie de tip VPN. Prima varianta implica costuri foarte mari (mentinerea unei conexiuni permanente este foarte scumpa). Astfel se opteaza pentru o solutie VPN.

Solutia optima pentru firma noastra o reprezinta o aplicaatie VPN de tipul "Site-to-Site".

Va exista un server VPN la sediul central, iar clientii se vor conecta prin LAN sau Internet Mobile de câte ori este nevoie la un furnizor de servicii Internet si astfel vor accesa reteaua publica Internet. Pe baza acestei conexiuni, clientul VPN va initia un "tunel" între el si serverul VPN, realizându-se astfel un transfer de date securizat.

CAPITOLUL 1 – ELEMENTE FUNDAMENTALE DESPRE INTERCONECTAREA CALCULATOARELOR

Modelul de referinta OSI

Modelul de referinta OSI se bazeaza pe o propunere dezvoltata de catre Organizatia Internationala de Standardizare (International Standards Organization – OSI) ca un prim pas catre standardizarea internationala a protocoalelor folosite pe diferite niveluri (Day si Zimmerman, 1983).

Modelul se numeste ISO OSI (Open System Interconection – Interconectarea sistemelor deschise), pentru ca el se ocupa de conectarea sistemelor deschise – adica de sisteme deschise comunicarii cu alte sisteme.

Modelul OSI cuprinde sapte noveluri. Principiile aplicate pentru a se ajunge la cele sapte niveluri sunt urmatoarele:

un nivel trebuie creat atunci cand este nevoie de un nivel de abstractizare diferit.

fiecare nivel trebuie sa indeplineasca un rol bine definit.

functia fiecarui nivel trebuie aleasa acordandu-se atentie definirii de protocoale standardizate pe plan international.

delimitarea nivelurilor trebuie facuta astfel incat sa se minimizeze fluxul de informatii prin interfete.

numarul de niveluri trebuie sa fie suficient de mare pentru a nu fi nevoie sa se introduca in acelasi nivel functii diferite si suficient de mic pentru ca arhitectura sa ramana functionala.

Fig. 1.1 Modelul OSI

Modelul OSI nu reprezinta in sine o arhitectura de retea pentru ca nu specifica serviciile si protocoalele utilizate la fiecare nivel. ISO a produs de asemenea, standarde pentru fiecare nivel, insa aceste standarde nu fac parte din modelul de referinta propriu-zis. Fiecare din standardele respective a fost publicat ca un standard international separat.

Trei concepte sunt esentiale pentru modelul OSI:

servicii

interfete

protocoale

Probabil ca cea mai mare contributie a modelului OSI este ca a facut explicita diferenta intre aceste trei concepte. Fiecare nivel realizeaza niste servicii pentru nivelul situat deasupra sa. Definitia serviciului spune ce face nivelul, nu cum il folosesc entitatile de deasupra sa sau cum functioneaza nivelul.

Interfata unui nivel spune proceselor aflate deasupra sa cum sa faca accesul. Interfata precizeaza ce reprezinta parametrii si ce rezultat se obtine. Nici interfata nu spune nimic despre functionarea interna a nivelului.

Protocoalele pereche folosite intr-un nivel reprezinta problema personala a nivelului. Nivelul poate folosi orice protocol doreste, cu conditia ca acesta sa functioneze (adica sa indeplineasca serviciul oferit). Nivelul poate de asemenea sa schimbe protocoalele dupa cum vrea, fara ca acest lucru sa afecteze programele din nivelurile superioare.

Modelul de referinta OSI a fost conceput inainte sa fi inventat protocoalele. Ordinea respectiva semnifica faptul ca modelul nu a fost orientat catre un set specific de protocoale, fiind prin urmare destul de general. Reversul este ca proiectantii nu au avut multa experienta in ceea ce priveste acest subiect si nu au avut o idee coerenta despre impartirea functiilor pe niveluri.

De exemplu, nivelul legatura de date se ocupa initial numai cu retelele punct-la-punct. Atunci cand au aparut retelele cu difuzare a trebuit sa fie introdus in model un subnivel nou. Cand au inceput sa se construiasca retele reale utilizand modelul OSI si protocoalele existente, s-a descoperit ca acestea nu se potriveau cu specificatiile serviciului cerut astfel ca a trebuit introdusa in model convergenta subnivelurilor, ca sa existe un loc pentru a glosa pe marginea diferentelor. Comitetul se astepta initial ca fiecare tara sa aiba cate o retea care sa fie in custodia guvernului si sa foloseasca protocoalele OSI, asa ca nu s-a dar nicio atentie interconectarii.

Prezentarea nivelelor

Nivelul fizic

Nivelul fizic se ocupa de transmiterea bitilor printr-un canal de comunicatie. Proiectarea trebuie sa garanteze ca atunci cand unul din capete transmite un bit 1, acesta este receptat in cealalta parte ca un bit 1, nu ca un bit 0. Problemele tipice se refera la cati volti trebuie utilizati pentru a reprezenta un 1 si cati pentru un 0, daca transmisia poate avea loc simultan in ambele sensul, cum este stabilita conexiunea initiala si cum este intrerupta cand au terminat de comunicat ambele parti, cati pini are conectorul de retea si la ce foloseste fiecare pin. Aceste aspecte de proiectare au o legatura stransa cu interfetele mecanice, electrice, functionale si procedurale, ca si cu mediul de transmisie situat sub nivelul fizic.

Nivelul legatura de date

Sarcina principala a nivelului legatura de date este de a transforma un mijloc oarecare de transmisie intr-o linie cae sa fie disponibila nivelului retea fara erori de transmisie nedetectate. Nivelul legatura de date realizeaza aceasta sarcina obligand emitatorul sa descompuna datele de intrare in cadre de date (in mod tipic de cateba sute sau cateva mii de octeti), sa transmita cadrele secvential si sa prelucreze cadrele de confirmare trimise inapoi de receptor.

Deoarece nivelul fizi nu face decat sa accepte si sa transmita un flux de biti, fara sa se preocupe de semnificatia sau de structura lor, responsabilitatea pentru marcarea si recunoasterea delimitatorilor intre cadre ii revine nivelului legatura de date. Aceasta se poate realiza prin atasarea unor sabloane speciale de biti la inceputul si la sfarsitul cadrului. In cazul in care sabloanele speciale de biti pot aparea accidental in datele propriu-zise, trebuie luate masuri speciale de precautie pentru ca aceste sabloane sa nu fie incorect interpretate ca delimitatori de cadre.

Un zgomot aparut pe linie poate distruge un cadru in intregime. In acest caz, programele nivelului legatura de date de pe masina sursa pot sa retransmita cadrul. Transmiterile multiple ale aceluiasi cadru introduc posibilitatea cadrelor duplicate. Un cadru duplicat poate aparea la transmisie in situatia in care s-au pierdut cadrele de confirmare trimise de catre receptor inapoi catre emitator. Rezolvarea problemelor datorate cadrelor deteriorate, pierdute sau duplicate cade in sarcina nivelului legatura de date. Acesta poate oferi nivelului retea cateva clase de servicii diferite, fiecare de o calitate si un pret diferit.

O alta problema care apare la nivelul legatura de date (si de asemenea la majoritatea nivelurilor superioare) este evitarea inundarii unui receptor lent cu date provenite de la un emitator rapid. In acest scop sunt necesare mecanisme de reglare a traficului care sa permita emitatorului sa afle cat spatiu tampon detine receptorul la momentul curent. Controlul traficului si tratarea erorilor sunt deseori integrate.

Daca linia poate fi folosita pentru a transmite date in ambele sensuri, atunci apare o noua complicatie care trebuie rezolvata de catre programele de la nivelul legatura de date: problema se refera la concurenta care exista pentru utilizarea liniei intre cadrele de confirmare pentru traficul de la A la B si cadrele de date din traficul de la B la A. Pentru rezolvarea ei a fost conceputa o solutie inteligenta – atasarea.

Retelele cu difuzare determina in nivelul legatura de date o problema suplimentara: cum sa fie controlat accesul la canalul partajat. De aceasta problema se ocupa un subnivel special al nivelului legatura de date si anume subnivelul de acces la mediu.

Nivelul retea

Nivelul retea se ocupa de controlul functionarii subretelei. O problema cheie in proiectare este determinarea modului in care pachetele sunt dirijate de la sursa la destinatie. Dirijarea se poate baza pe tabele statistice care sunt “cablate” intern in retea si care sunt schimbate rar.

Traseele pot fi de asemenea stabilite la inceputul fiecarei conversatii, de exemplu la inceputul unei sesiuni la terminal.

Dirijarea poate fi foarte dinamica, traseele determinandu-se pentru fiecaer pache in concordanta cu traficul curent din retea.

Daca in subretea exista prea multe pachete simultan, ele vor intra unul pe traseul celuilalt si astfel se vor produce gatuiri. Controlul unor astfel de congestii ii revine tot nivelului retea.

In nivelul retea exista de obicei inglobata o functie de taxare a traficului pentru ca operatorii subretelei sa-si acopere costurile.

Pentru a calcula suma datorata de clientii retelei, programul trebuie cel putin sa numere cate pachete, sau cate caractere, sau cati biti a transmis fiecare client. Calculul se complica atunci cand un pachet traverseaza frontiera dintre doua zone cu sisteme de preturi diferite.

Multe probleme pot aparea cand un pachet trebuie sa calatoreasca dintr-o retea in alta ca sa ajunga la destinatie. Modul de adresare folosit de a doua retea poate sa difere de cel din prima. A doua retea poate chiar sa nu accepte deloc pachetul pentru ca este prea mare. De asemenea, protocoalele pot fi diferite in vederea interconectarii retelelor eterogene este sarcina nivelului de retea.

In retelele cu difuzare problema dirijarii este simpla, astfel ca nivelul retea este deseori subtire sau chiar nu exista deloc.

Nivelul transport

Rolul principal al nivelului transpor este sa accepte date de la nivel sesiune, sa le descompun, daca este cazul, in unitati mai mici, sa transfere aceste unitati nivelului retea si sa se asigure ca toate fragmentele sosesc corect la celalat capat. In plus, toate acestea trebuie facute eficicent si intr-un mod care izoleaza nivelurile de mai sus de inevitabilele modificari in tehnologia echipamentelor.

In conditii normale, nivelul transport creeaza o conexiune de retea distincta pentru fiecare conexiune de transport ceruta de nivelul sesiune. In cazul in care conexiunea de transport necesita o productivitate mare, nivelul transport poate totusi sa creeze conexiuni de retea multiple si sa divida datele prin conexiunile de retea astfel incat productivitatea sa creasca. Pe de alta parte, daca crearea si intretinerea unei conexiuni de retea este costisitoare, nivelul transport ar putea reduce costurile prin multiplexarea catorva conexiuni de transport pe aceeasi conexiune de retea. In oricare dintre cazuri, nivelului transport i se cere sa faca multiplexarea transparenta pentru nivelul sesiune.

Nivelul transport determina, de asemenea, ce tip de serviciu sa furnizeze pentru nivelul sesiune si, in final, utilizatorii retelei. Cel mai obisnuit tip de conexiune transport este un canal punct-la-punct fara erori care furnizeaza mesajele sau octetii in ordinea in care au fost trimisi, Alte tipuri posibile de servicii de transport sunt transportul mesajelor individuale (fara nicio garantie in privinta ordinii de livrare) si dinfuzarea mesajelor catre destinatii multiple. Tipul serviciului se determina cand se stabileste conexiunea.

Nivelul transport este un adevarat capat-la-capat, de la sursa la destinatie. Cu alte cuvinte, un program de pe masina sursa poarta o conversatie cu un program similar de pe masina destinatie, folosind in acest scop antenele mesajelor si mesaje de control. In nivelurile inferioare protocoalele au loc intre fiecare masina si vecinii sai imediati, si nu direct intre masinile sursa si destinatie, care pot fi separate de numeroase rutere.

Numeroasele gazde sunt multiprogramate, ceea ce implica existenta unor conexiuni multiple care intra si ies din fiecare gazda. Trebuie sa existe o modalitate prin care sa se poata spune care mesaje apartin carei conexiuni. Unul din locurile unde poate fi pusa aceasta informatie este antetul de transport.

In plus fata de multiplexarea mai multor fluxuri de mesaje pe un singur canal, nivelul transport mai trebuie sa se ocupe de stabilirea si anularea conexiunilor in retea. Pentru acest lucru este necesar un mecanism de atribuire a numelor, astfel ca un proces de pe o anumita masina sa poata deschire cu cine vrea sa converseze. Trebuie, de asemenea, sa existe un mecanism pentru reglarea fluxului de informatii, astfel incat o gazda rapida sa nu suprasolicite o gazda lenta. Un astfel de mecanism se numeste controlul fluxului si joaca un rol cheie in nivelul de transport (ca si in alte niveluri). Controlul fluxului intre gazde este diferit fata de controlul fluxului intre rutere.

Nivelul sesiune

Nivelul sesiune permite utilizatorilor de pe masini diferite sa stabileasca intre ei sesiuni, Ca si nivelul transport, o sesiune permite transportul obisnuit de date, dar furnizeaza totodata si servicii imbunatatite; utile in anumite aplicatii. O sesiune poate fi utilizata pentru a permite unui utilizator sa se conecteze la distanta pe un sistem cu divizarea timpului sau sa transfere un fisier intre doua masini.

Unul dintre serviciile nivelului sesiune se refera la controlul dialogului. Sesiunile pot permite sa se realizeze trafic in ambele sensuri simultan sau numai intr-un sens odata. Daca este permis traficul intr-un singur sens odata, nivelul sesiune poate ajuta sa se tina evidenta emitatorilor carora le vine randul sa transmita.

Un serviciu inrudit este gestionarea jetonului, in unele protocoale este esential ca cele doua parti sa nu incerce sa realizeze aceeasi operatie in acelasi timp. Pentru a trata aceste situatii, nivelul sesiune dispune de jetoane care pot circula intre masini. Numai partea care detine jetonul are voie sa realizeze operatia critica.

Un alt serviciu sesiune este sincronizarea. Cand se incearca transferuri intre doua masini in conditiile in care transferul dureaza mai mult decat intervalul mediu de cadere al legaturii vor aparea probleme. Dupa fiecare esec, tot transferul va trebui initiat din nou si probabil ca nu va resui nici incercarea urmatoare. Pentru a elimina problema respectiva, nivelul sesiune prevedere o modalitatea de a introduce in fluxul de date puncte de control, astfel incat dupa un esec trebuie sa se reia numai transferul datelor de dupa ultimul punct de control.

Nivelul prezentare

Nivelul prezentare indeplineste cateva functii care sunt solicitate suficient de des pentru ca, in loc sa fie lasat fiecare utilizator sa rezolve problemele, sa se justifice gasirea unei solutii generale, in particularm spre deosebire de toate nivelurile inferioare, care se ocupa numai de transferul sigur al bitilor dintr-un loc in altul, nivelul prezentare se ocupa de sintaxa si semnatica informatiilor transmise.

Un exemplu tipic de serviciu prezentare este codificarea datelor intr-un mod standard, prestabilit. Majoritatea programelor folosite de utilizator nu fac schimb de siruri aleatore de biti. Ele fac schimb de nume de persoane, adrese, date, sume de bani, anunturi. Aceste informatii sunt reprezentate prin siruri de caractere, prin intregi, prin numere reale si prin structuri de date compuse dintr-un numar de date mai simple.

Diferite calculatore au diferite coduri pentru reprezentarea sirurilor de caractere (de exemplu ASCII si Unicode), intregilor (de exemplu complementul fata de 1 si complementul fata de 2), si asa mai departe. Pentru a face posibila comunicarea intre calculatore cu reprezentari diferite, structurile de date pot fi definite intr-un mod abstract, alaturi de o codificare standardizata ce va fi utilizata “pe cablu”. Nivelul prezentare gestioneaza aceste structuri de date abstracte si le converteste din reprezentarea interna folosita in calculator in reprezentarea standardizata din retea, si invers.

Nivelul aplicatie

Nivelul aplicatie contine o varietate de protocoale frecvent utilizate. De exemplu, in lume exista sute de tipuri de terminale incompatibile.

O modalitate de a rezolva problema este sa se defineasca un terminal virtual de retea abstract si sa se descrie editoare si alte programe care stiu sa lucreze cu acesta. Pentru a putea lucra cu orice tip de terminal, este necesar un program care sa puna in corespondenta functiile terminalului virtual de retea si terminalul real.

De exemplu, atunci cand editorul muta cursorul din terminalul virtual in coltul stanga sus al ecranului, programul trebuie sa aplice secventa potrivita de comenzi pentru terminalul real, astfel incat sa se mute si cursorul acestuia. Toate programele terminalului virtual se afla pe nivelul aplicatie.

Un alt rol al nivelului aplicatie este transferul fisierelor. Sistemul de fisiere diferite au convetii de nume diferite, moduri diferite de a reprezenta liniile de text, si asa mai departe. Transferul unui fisier intre doua sisteme de fisiere diferite presupune rezolvarea acestor incompatibilitati si a altora de acelasi gen. Si acest lucru cade tot in seama nivelului aplicatie, la fel ca si posta electronica, introducerea lucrarilor de la distanta, examinarea cataloagelor si diverse alte facilitati cu scop general sau particular.

Transmiterea datelor in modelul OSI

Figura 1.2 prezinta un exemplu de transmiterea datelor folosind modelul OSI. Procesul emitator vrea sa trimita niste date procesului receptor. Emitatorul furnizeaza datele nivelului aplicatie, acesta le ataseaza in fata antetul aplicatiei, AH (care poate fi vid) si le furnizeaza rezultatul nivelului de prezentare.

Nivelul prezentare poate sa modifice acest obiect in diferite moduri si poate eventual sa-I adauge in fata un antet, furnizand rezultatul catre nivelul sesiune. Este important de stiut ca nivelul prezentare nu cunoaste care portiune din datele primite de la nivelul aplicatie reprezinta AH, in cazul in care acesta exista, si care portiune reprezinta datele propriu-zise ale utilizatorului.

Acest proces se repeta pana cand datele ajung la nivelul fizic, unde ele vir fi trimise efectiv catre masina receptoare. Pe respectiva masina diversele anteturi sunt eliminate succesiv pe masura ce mesajul se propaga prin niveluri in sus, pana cand ajunge in final la procesul destinatie.

Fig. 1.2 Transmiterea datelor in modelul OSI

Ideea de baza este ca, desi in figura transmiterea datelor este verticala, fiecare nivel este programat ca si cum transmiterea ar fi orizontala. De exemplu, atunc

Similar Posts