Download - Curs 8-9 RC

Transcript

5 Protocolul IP

Reele de calculatoare

Lector univ dr. C.N. Calistru

5 Protocolul IP

Recenta i scurta perioad n care calculatoarele i reele de calculatoare au devenit un punct de confluen pentru diverse domenii de cercetare a fost marcat de dispute majore. La nceputul anilor `90 toate conferinele de reele de calculatoare erau dominate de problematici legate de tehnologiile broadband, efort concluzionat prin ATM. Anii `93-`94 s-au strduit s rezolve diverse probleme de scalabilitate ale protocoalelor de nivel reea. Sfritul anilor `90 a fost marcat de dou tendine aparent contradictorii: stabilirea Ethernetului ca principal tehnologie pentru LAN, ntr-o perioad n care cuvntul de ordine era QoS. nceputul noului deceniu readuce problema scalabilitii pentru nucleul Internetului, iar ctigtorul ce se prefigureaz este MPLS.

RFC-ul ce definete protocolul IP a fost publicat n 1981, i precum constituia Statelor Unite ale Americii este i acum folosit n aceeai form, toat lumea trecnd sub tcere cele cteva amendamente majore pe care le-a suferit.

Capitolul de fa i propune trei obiective: prezentarea spiritului protocolului, ce a supravieuit tuturor amendamentelor ulterioare, apoi punctarea schimbrilor aprute n anii `92-`94, pentru ca n final, dup ce am prezentat fora protocolului IP, s vedem cteva dintre protocoalele fr de care IP-ul i pierde mare parte din sens.

1 Prezentarea protocolului IP

1 Structura antetului IP

Protocolul IP este cu noi de mai bine de 20 de ani, astfel nct am ajuns la punctul de a preda studenilor lucruri ce s-au petrecut naintea naterii lor. Ar trebui oare studiul antetului IP s fie abordat la o or de istoria calculatoarelor?

Antetul IP, chiar dac nu a fost amendat direct, nu este doar o mrturie a viziunii asupra reelelor de calculatoare pe care o aveau cei de acum 20 de ani, ci, chiar dac ne place sau nu, este modul n care lumea noastr de azi este gndit. Multe dintre tehnologiile pe care le avem azi nu sunt neaprat cele mai performante, ci sunt "IP compliant".

Orice pachet ajuns la nivelul reea va fi rempachetat, adugndu-i-se antetul IP. n figura de mai jos sunt prezentate cmpurile ce compun antetul IP, urmnd apoi o scurt descriere a acestora.

Figura 5.1: Un pachet IP

Figura: Descrierea cmpurilor unui pachet IP

2 Adresarea IP

O adres IP este un ir de 32 de bii ce identific dou lucruri: o reea i o staie n cadrul acelei reele. Forma n care sunt folosite totui adresele IP nu este cea binar, astfel nct cnd spunem adres IP aveam mai degrab n minte reprezentarea decimal a patru octei, separai prin trei puncte.

Astfel pentru o adres IP dat: 10110001000001000001011000001000, vom separa mai nti biii n grupuri de cte 8 bii: 10110001.00000100.00010110.00001000 i n final vom converti fiecare grup n decimal: 177.4.22.8.

Dei aceast nou exprimare nlesnete semnificativ lucrul cu adresele IP, aduce unele limitri legate de uurina de a discerne ntre poriunea de reea i cea de staie din cadrul adresei IP. ncercarea de a pstra reprezentarea decimal ca model de referin pentru IP i de a clarifica distincia ntre cele dou componente ale adresei IP a dus la definirea claselor de adrese IP.

3 Clasele de adrese IP

Odat cu definirea celor trei clase pentru rutare a mai fost definit un spaiu de adrese ce este folosit pentru adresarea multicast, anume clasa D. Restul adreselor vor constitui clasa E, reprezentnd adrese rezervate.

n tabelul de mai jos sunt prezentate cele 5 clase definite pentru spaiul de adrese IP.

ClasaPrimii biiNr bii reeaNr de reeleNr bii staieNr staiiDomeniul de valori

A0...82724224-21.0.0.0-126.255.255.255

B10...1621416216-2128.0.0.0-191.255.255.255

C110...24221828-2192.0.0.0-223.255.255.255

D1110...Adrese multicast

E11110...Rezervat

Distribuia adreselor pe clase este asemntoare cu un arbore Huffmann, spaiile de adrese astfel obinute fiind inegale. Clasele A, spre exemplu, sunt definite de valoarea zero a primului bit din adresa IP, ajungndu-se la situaia cnd mai puin de 130 de reele s consume jumtate din spaiul de adrese IP, rmnnd pentru restul de peste 2 milioane de reele mai puin de jumtate din acest spaiu de adrese.

Clasa A a fost proiectat pentru a satisface cerinele ridicate de reele de mari dimensiuni. Astfel pentru definirea reelei va fi folosit doar primul octet, rmnnd pentru identificarea staiei 24 de bii, adic mai mult de 16,7 milioane de posibiliti. Din tabelul de mai sus se poate observa c domeniul de valori pentru clasa A nu include reelele 0.0.0.0 i 127.0.0.0, acestea fiind rezervate. Clasa de adrese 0.0.0.0 nu este folosit datorit posibilelor confuzii cu rutele implicite, n vreme ce clasa 127.0.0.0 este rezervat pentru adrese de lookback, n scopul monitorizrii i testrii.

Tot din studiul numrului de staii din tabelului de mai sus se observ eliminarea a cte dou adrese dintre cele ce pot fi alocate staiilor, pentru fiecare dintre clasele rutabile. Cele dou adrese sunt: adresa de reea i adresa de difuzare.

O adres IP de reea este o adres pentru care toi biii de staie sunt 0. O astfel de adres este folosit pentru identificarea ntregii reele, aceast fiind n fapt forma relevant a oricrei adrese ce cltorete peste Internet.

O adres IP de boadcast sau de difuzare este o adres pentru care toi biii de staie sunt 1. Un pachet destinat unei astfel de adrese va ajunge la toate staiile din aceeai reea.

O clas de adrese B este definit de valorile primilor doi bii din adresa IP, aceti primi doi bii fiind 10. Respectnd aceast constrngere rezult c toate adresele IP ale cror prim octet se afl ntre 10000000 i 10111111, adic ntre 128 i 191, aparin unei clase B.

Cmpul de reea pentru o clas B va cuprinde primii doi octei, dar cum primii doi bii ai primului octet sunt fixai, ne rmn doar 14 bii pentru a crea clase B. Pentru definirea staiilor vom avea la dispoziie ultimii doi octei, adic 16 bii. Astfel vom obine 16.384 reele, fiecare avnd un numr maxim de staii de 65.533.

Clasele A i B la un loc reprezint 75% din spaiul de adrese disponibile, aceste clase fiind epuizate n primii ani de expansiune a Internetului (`92 -`94). Dac mai dm la o parte clasele D i E, clase ce nu pot fi folosite pentru rutare, rezult c aproape ntreaga expansiune a Internetului din ultimul deceniu s-a fcut folosindu-se doar 12,5% din spaiul de adresare IP, i anume clasele C.

Clasele C se definesc prin alocarea primilor 3 octei pentru definirea reelei i doar a ultimilor 8 bii pentru distingerea ntre staiile aceleiai reele. Primii trei bii din primul octet trebuie s fie 110, adic valoarea acestui prim octet trebuie s se afle ntre 192 i 223 pentru ca o adres s aparin unei clase C.

Dei numrul claselor C depete 2 milioane, numrul de staii pentru fiecare dintre aceste reele este de doar 254.

Clasa de adrese D este folosit pentru reele multicast. Chiar dac reelele multicast nu s-au ridicat la nlimea ateptrilor formate la nceputul anilor `90, exist n continuare proiecte de cercetare cu un impact major bazate pe multicast (M-Bone fiind cel mai recent), iar reelele de transmisie pentru programe TV sau mcar pentru radio nu par s se desprind de arhitecturile multicast. Fr ndoial pentru Romnia tehnologiile multicast reprezint un exerciiu mai mult teoretic, dar asta nu trebuie s ne fac s pierdem din vedere puternicul impact pe care l au acestea mai ales n SUA.

Figura 5.3: Adresarea IP

Pentru adresa multicast spaiul de adrese este plat, toi cei 4 octei fiind folosii pentru definirea adresei de staie. Deoarece primii 4 bii ai primului octet sunt fixai, i anume 1110, numrul adreselor de multicast este de 268 milioane.

Figura 5.3 sumarizeaz tipurile de adrese IP, prezentnd ponderea numrului de octei alocai pentru cmpul staie din totalul celor patru octei ce formeaz o adres IP.

Clasa de adrese E este rezervat i nu poate fi folosit n reelele publice, sau n soluii de multicast.

2 Soluiile pentru rezolvarea problemei epuizrii rapide a spaiului de adrese IP

1 Prezentarea problemelor

Dei criza epuizrii spaiului de adrese IP a luat amploare abia la nceputul anilor `90, primele eforturi de evitare a blocrii creterii Internetului au aprut ncepnd cu mijlocul anilor `80.

Este evident c preul pltit pentru folosirea exprimrii adreselor IP n form decimal, i anume gruparea spaiului de adrese n doar trei tipuri de reele s-a tradus ntr-un grad extrem de redus de eficien n folosirea adreselor IP.

Astfel n 1985 IETF public RFC-ul cu numrul 950, al crui scop este de a introduce aparent nc un nivel ierarhic n formatul de adresare IP. Adresele IP vor avea n continuare 32 de bii, dar acetia nu vor mai fi grupai doar n dou cmpuri: reea i staie, ci vor mai putea aparine unui nou cmp subreea.

Odat cu subreelele a aprut distincia ntre adresarea ce ine cont doar de cele trei clase: A, B i C, aceasta fiind numit adresare classful, i noul tip de adresare, ce ofer suport pentru cmpul de subreea, aceasta din urm fiind numit adresare classless.

Odat cu acutizarea crizei adreselor IP, n anul 1992, adresarea classless a cptat un loc central n noua arhitectur a Internetului, prin dezvoltarea mecanismelor de rutare pentru astfel de adrese. Soluia s-a numit CIDR (Classless InterDomain Routing) i a rspuns att la problema epuizrii rapide a spaiului de adrese IP, ct i la problema creterii n dimensiune a tabelelor de rutare.

Soluia mai radical a fost rescrierea ntregului protocol IP, de la formatul adreselor pn la mecanismele oferite. Noul protocol este IPv6, care dei are deja civa ani buni de testare, nu este nici pe departe aa de popular cum se spera la nceputul anilor `90. Dac acum 4-5 ani toat lumea mai era convins ca IPv6 va nlocui vechiul i prfuitul IPv4, acum se fac auzite chiar voci care susin c efortul nlocuirii, fie ea i treptat, a infrastructurii IPv4 nu este cu adevrat justificat. Astfel IPv4 cu CIDR, ce se vroia doar o soluie pe termen scurt, guverneaz modul n care proiectm distribuirea adreselor IP de 10 ani, i dei implementrile de reele IPv6 sunt tot mai frecvente, ritmul acestora nu ne ndreptete s sperm la un Internet IPv6 prea curnd.

IPv6 i-a fcut loc mai ales n reelele de nucleu, inclusiv n Romnia existnd din 2003 un backbone de IPv6.

2 Masca de reea

Masca de reea este un ir de 32 de bii care, n conjuncie logic cu o adres IP, va separa adresa de reea, anulnd biii de staie.

Fiecare bit din masca de reea ce corespunde (se afl pe aceai poziie) cu un bit din cmpul de reea va avea valoare 1, n vreme ce toi biii corespunztori cmpului de staie vor avea valoarea zero.

Mtile de reea sunt inutile ntr-un mediu ce ofer adresare classful, deoarece simpla testare a valorii primului octet fa de 128 i 192 ne-ar oferi toate informaiile necesare despre numrul biilor ce aparin cmpului reea dintr-o adres IP dat. n schimb, odat cu apariia adresrii classless, masca de reea a devenit piatra de temelie n deciziile de rutare.

Reprezentarea mtilor de reea folosit cel mai des este cea decimal, datorit similitudinii cu forma de exprimare a adreselor IP.

O a doua form de reprezentare a mtilor de reea este sub forma unui numr ce reprezint numrul de bii de 1 din masca de reea, aceast form de reprezentare fiind referit ca prefix de reea.

Figura: Mtile de reea pentru clasele rutate

De ce reprezentarea decimal a mtilor de reea este mai popular dect reprezentarea ca prefix?

Bineneles c a doua exprimare este semnificativ mai comod, dar folosirea ei implic att asumarea faptului c toi biii din masca de reea sunt pe poziia cea mai semnificativ, ct i, mai ales, a faptului c sunt consecutivi. Dup cum am vzut pn acum biii ce formeaz cmpul de reea sunt la stnga adresei IP, fiind totodat i consecutivi, aa c asumarea cerut de folosirea prefixurilor nu este o constrngere. Mai mult chiar, pn acum nu a aprut nici o tehnologie care s necesite nclcarea condiiei de consecutivitate a biilor din cmpul reea. Astfel nct, dei adresarea n forma decimal ofer independen fa de condiia de consecutivitate, n realitate aceast independen este total inutil.

Singura explicaie rezonabil pentru atitudinea productorilor de aplicaii de reea ce promoveaz reprezentarea decimal este ineria, sau poate i posibilitatea apariiei mtilor de reea necontinue (dei n mod obiectiv aceast posibilitate este extrem de mic).

n concluzie, forma de reprezentare ce o vom folosi preponderent n aceast carte va fi reprezentarea ca prefix.

3 Subreele

n adresarea classful aveam trei dimensiuni de reele, ducnd la o utilizare extrem de ineficient a spaiului de adrese. nchipuii-v numai c pentru 300 de staii ce trebuie s fie n acelai domeniu de broadcast (n aceeai reea) administratorul de reea ar fi trebuit s solicite o clas B, urmnd s foloseasc sub 0,5% din adresele disponibile.

ntrebarea este dac n loc de o ntreag clas B nu am fi putut aloca doar jumtate de clas B, dublnd astfel eficiena alocrii de adrese? Sau, reformulnd, dac avem clasa B 130.170.0.0, care este jumtatea acesteia?

Pentru a njumti un spaiu de adrese, va trebui n fapt s njumtim numrul de staii, adic s reducem cu unu numrul de bii de staie. Bitul astfel obinut va intra n componena unui nou cmp, pe care l vom numi cmp de subreea.

Masca de reea va avea valoarea 1 att n cmpurile corespunztoare biilor de reea, ct i n cmpurile corespunztoare biilor de subreea.

n concluzie, pentru a njumti un spaiu de adrese, trebuie s extindem masca de reea cu un bit (cel corespunztor cmpului de subreea), iar cele dou jumti vor fi obinute fcnd acest bit o dat 0, o dat 1.

Avnd de njumtit o clas B, cele dou jumti vor avea masca de reea /17, bitul de subreea fiind chiar al 17-lea bit din adresa IP.

Rezultatul operaiei de njumtire este prezentat n figura 5.5.

Figura: njumtirea unei clase B

Dei modul de utilizare a unei mti de reea reiese direct din definiia acesteia, vom exemplifica pe dou adrese ce se aflau n spaiul iniial de adrese, dar dup njumtire au ajuns n reele diferite. Fie 130.170.32.0 i 130.170.132.0 aceste adrese:

130.170132.Prima adres

10000010101010101000010000000000AND

11111111111111111000000000000000Masca de reea

10000010101010101000000000000000

130.170.128./17A doua jumtate

130.17032.0Prima adres

10000010101010100010000000000000AND

11111111111111111000000000000000Masca de reea

10000010101010100000000000000000

130.170.0.0/17Prima jumtate

Putem acum aloca acum pentru reeaua de 300 de staii doar jumtate de clas B, adic 32 de mii de adrese. Dar nimic nu ne mpiedic s mpiedic s njumtim nc odat unul dintre spaiile de adrese obinut, avnd astfel la dispoziie dou spaii de cte 16 mii de adrese. i, de ce nu, s mergem mai departe cu procesul de creare de subreele pentru a obine spaii de 512 adrese.

Pentru a reprezenta 512 variante avem nevoie de 9 bii n cmpul staie. Din cei 16 bii iniiali vom trece direct 7 bii n cmpul de subreea. Masca de reea trebuie extins cu 7 bii devenind 23, rezultatul operaiei fiind definirea unui spaiu de adrese ce ocup doar 1/64 din spaiul iniial.

Figura: Obinerea primelor dou subreele de 512 adrese dintr-o clas B

n concluzie, subreelele au aprut n scopul eficientizrii modului de alocare a adreselor IP. Pentru a mpri n subreele un spaiu de adrese dat, o parte din biii de staie sunt trecui ntr-un nou cmp, cel de subreea, acesta avnd rolul de a oferi un al treilea nivel de ierarhizare a adreselor IP.

n realitate definirea unui cmp de subreea este fcut pentru a nlesni nelegerea procesului, neavnd o reflectare n modul de funcionare a ruterelor. Din punctul de vedere al unui ruter orice adres IP are doar dou niveluri de ierarhizare, i anume reea i staie. Astfel procesul de creare de subreele se traduce n transferarea unui numr de bii din cmpul staie n reea, extinderea mtii de reea cu un numr egal cu numrul de bii transferai.

nainte de a ncheia aceast scurt prezentare a subreelelor mai trebuie fcute totui dou observaii n legtura cu folosirea termenilor de reea i subreea.

n primul rnd, termenul de subreea pare a implica o relaie de subordonare fa de reele, definite ca aparinnd claselelor de adrese IP. ntr-un mediu classless, nu exist nici o diferen n modul cum ruterele sau calculatoarele trateaz adrese aparinnd unei reele sau a unei subreele. De fapt, la ora actual, cel mai adesea prin reele se nelege totalitatea subreelelor, clasele de adrese fiind privite ca un caz particular al acestora. Astfel putem trage concluzia c singura diferen ntre reele i subreele este de natur strict istoric.

n al doilea rnd masca de reea este deseori apelat ca masc de subreea, ambele exprimri referindu-se totui la acelai obiect.

4 Prima i ultima subreea

n momentul cnd crem subreele este uor de observat posibila confuzie ce se poate face ntre adresa de reea a spaiului de adrese iniial i adresa de reea a primei subreele create, dar totodat i ntre adresa de difuzare pentru spaiul de adrese iniial i adresa de difuzare a ultimei subreele.

n exemplul de mai nainte singura diferen ntre clasa B i prima sa jumtate era masca de reea folosit, i tot masca de reea este singura diferen ntre adresa de difuzare a clasei B i adresa de difuzare a celei de a doua jumti.

Figura: Obinerea primelor dou subreele de 512 adrese dintr-o clas B

Datorit acestei ambiguiti, odat cu apariia subreelelor a aprut i interdicia de a folosi prima i ultima subreea. Astfel, numrul maxim de subreele ce poate fi folosit devine 2 la puterea numrului de bii de subreea minus 2.

O prim consecin este imposibilitatea mprumutrii unui singur bit pentru crearea de subreele, adic imposibilitatea njumtirii unui spaiu de adrese. Numrul minim de bii ce trebuie mprumutai este 2.

O a doua, i mult mai drastic consecin este pierderea unui procent din spaiul de adrese n urma procesului de creare de subreele. n tabelul de mai jos este analizat eficiena folosirii spaiului de adrese n urma crerii de subreele pentru o clas C.

Numr bii subreea Numr bii staie Numr de subreele Numr de staii pentru o subreea Numr total de staii Procent de adrese utilizabile

2 6 2 62 124 49%

3 5 6 30 180 70%

4 4 14 14 196 77%

5 3 30 6 180 70%

6 2 62 2 124 49%

Din tabel se observ c eficiena alocrii de adrese n urma crerii de subreele, pentru o clas C nu poate depi 77%, i dei se poate obine o eficien mai bun pentru crearea de subreele pentru o clas B, nu trebuie uitat c n momentul startrii implementrilor de CIDR, singurele reele disponibile mai erau doar clasele C.

Nu a durat mult i eliminarea unor ntregi clase de adrese doar datorit ambiguitii ntre dou adrese a fost pus sub semnul ntrebrii. n plus, singurele dispozitive din reea ce ar fi putut comite erori n urma acestei ambiguiti sunt ruterele, iar ruterele, odat cu implementarea CIDR i dezvoltarea protocoalelor de rutare classless, au avut oricum la dispoziie mtile de reea, pentru fiecare dintre rute. Astfel, efortul eliminrii acestei ambiguiti s-a tradus n mici modificri software aduse ruterelor, iar ncepnd cu 1996 majoritatea ruterelor au fost fabricate cu capacitatea evitrii confuziei cauzate de folosirea primei i ultimei subreele.

Dei i la ora actual multe cri de calculatoare recomand n continuare evitarea folosirii primei i ultimei subreele, raiunile sunt mai mult de natur didactic pentru c Internetul n vasta lui majoritate conine echipamente capabile s evite eventualele confuzii, i asta fr nici un alt cost adiional.

5 Supernetting

O a doua component a CIDR, la fel de important ca i crearea de subreele, este procesul invers, i anume posibilitatea agregrii mai multor spaii de adrese ntr-un singur spaiu.

n figura 5.8 sunt reprezentate binar 4 clase C, alese special ca s difere doar prin cei doi bii cei mai puin semnificativi ai cmpului de reea.

Figura 5.8: Agregarea a 4 clase C

Cele 4 clase din tabel sunt n fapt sferturile unui singur spaiului de adrese. Adresa agregat, sau super-reeua ce cuprinde cele 4 clase se obine n acest caz reducnd masca de reea cu doi bii, aceti doi bii trecnd n cmpul de staie vor fi fcui zero pentru a determina adresa de reea agregat.

Procesul de creare de super-reele, numit i proces de agregare de adrese, este extrem de important mai ales pentru optimizarea funcionrii ruterelor. Agregarea adreselor are drept consecin reducerea dimensiunii tabelei de rutare, care n final se traduce n laten mai sczut a rutrii, dar i n reducerea cerinelor de procesor i memorie.

Totui nu orice dou reele pot fi agregate ntr-o super-reea. Astfel, pentru a putea profita de aceast facilitate adus de CIDR, alocarea adreselor trebuie fcut judicios nu doar n interiorul reelei de ctre administratorul de reea, ci i la nivelul ISP-urilor i chiar la nivel de ar. Din pcate n Romnia avantajele reducerii tabelelor de rutare prin agregarea reelelor, ca o consecin a alocrii judicioase a adreselor de reea, au fost contientizate extrem de trziu, astfel nct n tabelele de rutare ale marilor ISP-uri din Romnia mai adesea se ntlnesc prefixe de /26, dect prefixe /20 cum ar fi fost de ateptat la o ar de dimensiunile Romniei.

3 Alte protocoale pentru reelele IP

1 ARP - Address Resolution Protocol

Pentru ca dou dispozitive de reea s poat comunica este necesar cunoaterea att a adresei MAC, ct i a celei logice. n cazul n care numai una dintre adrese este disponibil se apeleaz la un protocol dedicat care pe baza acesteia va determina cealalt adres.

Stiva de protocoale TCP/IP conine dou protocoale de nivel reea pentru a servi acest scop: ARP (Address Resolution Protocol) i RARP (Reverse Address Resolution Protocol). ARP este protocolul ce va oferi adresa MAC a unui dispozitiv de reea, dat fiind adresa sa IP.

ARP se bazeaz pe construirea i meninerea unei tabele ARP. O tabel ARP are rolul de a oferi o coresponden ntre adresele IP i cele MAC. Acestea sunt construite dinamic i sunt stocate n memoria RAM. Dei exist mecanisme pentru adugarea sau eliminarea unei intrri ntr-o tabel ARP, acestea sunt rareori folosite.

Fiecare computer sau dispozitiv de reea i pstreaz propria sa tabel ARP.

Cum funcioneaz ARP? Cum este construit tabela ARP?

Figura 5.9: Studiul ARP

Fie reeaua din figura: 5.9. Toate staiile sunt tocmai pornite, astfel tabelele ARP sunt vide. Presupunem c staia A1 vrea s comunice cu staia A2, cunoscnd doar adresa IP a acesteia. La nivelul reea datele venite de la nivelurile superioare vor fi encapsulate i vor primi un antet ce va conine n cmpul adres destinaie 193.23.1.7, iar ca adres surs 193.23.1.4. nainte de trecerea la nivelul legtur de date adresa IP destinaie va fi cutat n tabela ARP i nefiind gsit se va crea un cadru special (ARP request) ce va avea n cmpul adres destinaie din antet adresa de difuzare: FF.FF.FF.FF.FF.FF, iar n cmpul adres surs adresa MAC a staiei A1.

Dac vom considera c reeaua din figur folosete Ethernet drept protocol de nivel MAC datele vor fi difuzate i vor ajunge la A2 i la interfaa ruterului conectat la segmentul A.

La nivelul legtur de date va fi analizat antetul cadrului. Cmpul destinaie fiind o adres de difuzare cadrul va fi trimis la nivelul superior. Totodat, pe baza coninutului cmpului surs de nivel 2 i 3, va fi creat prima intrare n tabela ARP a staiei A2. Ajuns la nivelul 3 cadrul este identificat drept o cerere ARP i se iniiaz un rspuns transmis ca unicat att la nivel reea ct i la nivel legtur de date. Dup primirea rspunsului A1 va putea insera n tabela sa ARP adresa MAC a lui A2, iar comunicaia din acest moment va avea loc fr probleme.

Fiind pe un segment Ethernet toate cadrele schimbate de A1 i A2 vor ajunge la toate staiile de pe segment, astfel c, dei nu au emis nici un cadru, att A3 ct i ruterul vor avea cte o tabel ARP cu 2 intrri. Aceste intrri expir dup o perioad de timp, fiind nlturate din tabela ARP.

Cum are loc comunicaia ntre staii aflate n reele diferite?

Am vzut c protocolul de rezoluie a adresei se bazeaz pe difuzri la nivel legtur de date. Ruterele n schimb nu propag pachetele de difuzare de nivel legtur de date n afara reelei din care provin.

Exist dou modaliti prin care staii aflate n reele diferite pot comunica: default gateway i proxy ARP.

Proxy ARP este o extensie a protocolului de rezoluie a adresei. Pornind de la faptul c ruterul nu va transfera pachetele de difuzare Proxy ARP va determina ruterul s rspund la toate cererile ARP destinate unor adrese n afara reelei cu propria sa adres MAC.

n cazul reelei de mai sus s considerm c staia A1 vrea s comunice cu B1. Dup ce nu va gsi adresa MAC a staiei B1 n tabela ARP va trimite o cerere ARP. Cadrul va fi recepionat de ctre toate dispozitivele de reea aflate pe acest segment. Staiile A2 i A3 deja au n tabela ARP informaii despre A1, astfel nct vor reseta timpul de via al acestei intrri. Ruterul va reseta i el acest timp, iar apoi, analiznd adresa IP destinaie, va concluziona c destinaia nu se afl n acelai segment. Dac acesta ar fi fost un cadru obinuit ruterul ar fi luat o decizie pe baza tabelei sale de rutare. Fiind totui o cerere ARP ruterul va genera un rspuns ARP ce va conine propria sa adres MAC. Rspunsul ARP va fi ncapsulat, iar antetul va avea att la nivelul legtur de date ct i la nivelul reea n cmpul adres surs adresa interfeei ruterului ce se afl conectat la reea. Ruterul va determina pe ce interfa trebuie s trimit pachetele destinate pentru 24.8.17.2 i va trimite pe aceast interfa o nou cerere ARP. B1 va rspunde la aceasta.

n final toate staiile din reeaua A i vor aduga o nou intrare n tabela ARP ce va face corespondena ntre 193.23.1.1 i adresa MAC a interfeei ruterului: 00.48.0C.18.7A.A2. n plus staia A1 va mai aduga o intrare ce va mapa 24.8.17.2 cu adresa 00.48.0C.18.7A.A2. Staiile din reeaua B vor insera dou intrri n tabelele ARP proprii: 24.8.17.1 - 00.48.0C.18.7A.A3 i 24.8.17.1 - 00.01.9A.11.71.11.

Din acest moment staia A1 va ncapsula transmisia destinat staiei B1 folosind adresa IP a lui B1 i adresa MAC a ruterului. Ruterul va primi cadrele, va nlocui adresa surs din antetul de nivel legtur de date cu adresa sa: 00.48.0C.18.7A.A3 i le va trimite mai departe ctre B1.

Pentru o staie dat default gateway este adresa IP a interfeei de pe ruter ce conecteaz reeaua din care face parte respectiva staie. Odat precizat un default gateway nivelul reea al staiei va mai cpta o nou atribuie, trebuind s determine dac destinaia este sau nu n aceeai reea. Dac nu este, atunci nu va mai fi iniiat ci se va folosi adresa IP a destinaiei finale i adresa MAC a default gateway. Astfel, n tabela ARP va fi cutat adresa interfeei ruterului.

2 NAT - Network Address Translation

NAT (RFC 1631) ofer posibilitatea schimbrii unei adrese IP cu o alta din antetul unui pachet IP. n practic NAT se folosete pentru a permite staiilor ce utilizeaz adrese private s acceseze Internetul.

Deoarece exist un numr destul de mare de reele neconectate la Internet, IETF a ncercat s reglementeze folosirea adreselor n cadrul acestor reele. Soluia (RFC 1918) a fost definirea unor spaii de adrese private, adrese ce nu pot fi rutate pe Internet.

Figura 5.10: Clasele private de adrese

Obinerea unei reele are un cost fix de 50 $ + taxe. Acest cost pare extrem de mic, cu toate acestea procesul este anevoios, deoarece necesit justificarea dimensiunii spaiului de adrese, precum i ateptarea de pn la 3 luni de zile.

Folosirea adreselor private ofer o schem de adresare rapid i comod. n plus datorit faptului c adresele staiilor nu sunt accesibile din afara reelei folosirea adreselor private este deseori considerat una dintre cele mai eficiente politici de securitate.

Totodat adresele private pun o serie de probleme. Cea mai important este c ruterul prin care reeaua privat acceseaz Internetul va trebui s fi capabil s fac conversia adreselor private n adrese publice, deci s ruleze un serviciu de NAT. Acest serviciu impune o laten suplimentar pentru fiecare pachet ce tranziteaz ruterul. Un alt dezavantaj este acela c n interiorul unei reele private nu pot fi plasate calculatoare ce ofer servicii publice, deoarece este imposibil de iniiat conexiuni din exterior ctre acestea.

Translatarea static a adreselor presupune constituirea unei tabele de translatare ce va asigna ntotdeauna aceeai adres public pentru o adres privat dat. Trebuie s existe n acest caz un numr egal de adrese publice i adrese private.

Translatarea dinamic a adreselor presupune definirea unui rezervor de adrese publice, iar apoi vor fi asignate n funcie de ordinea n care staiile solicit conexiuni cu Internetul. Odat ncheiat ultima conexiune a unei staii adresa public este ntoars n rezervorul de adrese, putnd fi alocat unei alte staii. Avantajul major al acestei implementri este c numrul adreselor publice poate fi semnificativ mai redus dect al celor private. Dac spre exemplu avem o reea cu 200 de calculatoare, dar din care pe Internet nu sunt niciodat mai mult de un sfert, atunci se poate realiza o translatare dinamic a adreselor pe un spaiu de 64 de adrese publice i nu 256 ca n cazul translatrii statice.

Translatarea adreselor cu suprancrcare este forma cea mai des ntlnit de NAT. n prezent, cnd ne referim la translatarea adreselor, n realitate ne referim la translatarea adreselor cu suprancrcare. Aceast metod ofer posibilitatea folosirii unei singure adrese publice pentru mai multe staii ce acceseaz Internetul. Din aceast cauz aceast metod mai este numit i NAT multi-la-unu sau PAT (Protocol Addess Translation).

Cum funcioneaz translatarea adreselor cu suprancrcare?

Fie o reea privat conectat la Internet printr-un ruter ce ruleaz NAT i staiile A (192.168.1.2) i B (192.168.1.3) dou calculatoare din reeaua privat. Adresele pentru interfeele ruterului vor fi: 192.168.1.1 i 193.230.36.9. Presupunem c ambele ncearc s acceseze site-ul www.cs.pub.ro, a crui adres IP este 141.85.37.20. Staia A va ncapsula cererea preciznd n antetul de nivel transport potul destinaie: 80, portul surs: 3021, apoi la nivel reea vor fi puse n antet adresa destinaie: 141.85.37.20, precum i adresa surs: 192.168.1.2, la nivel legtur de date va pune n cmpul adres destinaie adresa MAC a ruterului, i propria sa adres MAC n cmpul adres surs. n mod similar staia B va ncapsula cererea preciznd n antetul de nivel transport portul destinaie: 80, portul surs: 12021, apoi la nivel reea vor fi puse n antet adresa destinaie: 141.85.37.20, precum i adresa surs: 192.168.1.3, la nivel legtur de date va pune n cmpul adres destinaie adresa MAC a ruterului, i propria sa adres MAC n cmpul adres surs.

Odat ajunse la ruter cele dou pachete sunt despachetate. Cmpul adres surs din antetul de nivel reea va fi nlocuit cu adresa ruterului de pe interfaa dinspre Internet: 193.230.36.9. Dac dup aceast operaiune pachetele ar fi rutate, ele ar ajunge la destinaie, dar ruterul nu va fi capabil s determine cui din reeaua privat i este adresat fiecare din cele dou rspunsuri pe care le va primi de la 141.85.37.20.

Serviciul de translatare a adresei se bazeaz pe construirea unei tabele ce va stabili o coresponden univoc ntre o conexiune iniiat de la o adres privat (adres i port) cu un port de pe ruter. n cazul nostru pentru pachetul primit de la staia A ruterul va dedica un port: 15989. Va schimba portul surs din pachetul primit de la A cu valoarea 15989, i orice va primi pe acest port va trebui rempachetat cu adresa destinaie 192.168.1.2:3021. Portul 15989 va rmne blocat pn la ncheierea conexiunii de web iniiate de pe staia A ctre www.cs.pub.ro.

Dei teoretic pe o singur adres public pot fi mapate mai mult de 65000 de conexiuni, n realitate implementrile de NAT nu mapeaz mai mult de 4000 de conexiuni pentru o adres public.

Pentru reelele mari translatarea adreselor se face combinnd translatarea dinamic a adreselor cu translatarea adreselor cu suprancrcare.

4 Studiu de caz

Ministerul Educaiei Naionale dorete crearea unei reele educaionale cu acces Internet la nivelul Bucuretiului, ce va cuprinde toate colile si inspectoratele din Bucureti. Aceast reea va cuprinde maxim 750 de reele locale. Ministerul va solicita o clasa de adrese, urmnd ca din aceast clas s creeze 750 de subreele. Nu exist restricii privind numrul minim de staii ce trebuie sa revin fiecrei reele, cu toate acestea toate subreelele vor avea acelai numr de staii. Trebuie aleas una dintre urmtoarele clase: 4.0.0.0, 202.56.31.0, 131.85.0.0, dar trebuie justificat alegerea.

ntrebri:

1. Care este clasa ce satisface cerinele noastre?

2. Care este lungimea (forma) mtii de reea?

3. Care este prima subreea pe care o putem configura?

4. Care este a doua subreea pe care o putem configura?

5. Ce adres vom aloca gateway-ului (ruterului de ieire din reea) pentru aceast reea?

6. Cte adrese vom avea disponibile pentru staii pentru cea de a doua subreea?

7. Care sunt aceste adrese?

8. Care este adresa de broadcast pentru cea de-a 4 reea utilizabil?

Rspunsuri:

1. Este uor de observat ca avem de ales ntre trei spaii de adrese ce coincid cu cele 3 clase rutate (A, B i C).

Pentru o clas C putem crea maxim 2(8-2)=32 de subreele, un numr mult prea mic pentru nevoile noastre. Pentru o clas B numrul maxim de subreele ce poate fi creat e 2(16-2)=4.096, deci sufficient de multe pentru satisface cerinele reelei noastre. Pentru o clas A vom avea 2(24-2)=4.194.304 subreele.

Bineneles c de 10 ani de zile nu mai exist clase A disponibile, dar nici clasele B nu mai sunt de mult disponibile. In realitate chiar o clas C poate prea imposibil de obinut n anul 2003, mai ales n Romnia. Astfel ironia alegerii ntre o clas A i una B devine evident nu doar pentru administratorul de reea ce s-a chinuit zile n ir s fac documentaia pentru obinerea unui spaiu de 64 de adrese, dar scopurile didactice deseori justific ironii mai acute, i n definitiv cine ne mpiedic s ncercm s rezolvm problema studentului ce trebuie s aleag cu ce s vin la cursuri: cu Porsche-ul negru sau cu Lamborghini-ul galben?

innd cont de faptul c nu exist constrngeri legate de numrul minim de staii pentru fiecare dintre subreele devine imposibil de justificat cererea unei clase A, astfel spaiul de adrese cel mai potrivit pentru cerinele problemei este clasa B, adic 131.85.0.0/16.

2. Pentru acest pas este necesar s decidem ci bii trebuie mprumutai pentru a crea 750 de subreele. Dac mprumutm 9 bii vom putea crea 29=512 subreele, numr insuficient pentru problema n cauz. Dac mprumutm 10 bii vom putea crea 210=1024 subreele, ndeajuns pentru a ndeplini cerinele problemei.

Masca iniial de reea pentru spaiul total de adrese era /16, iar noua masc va fi /26, adic 255.255.255.192.

3. Pentru a rspunde la aceast ntrebare va trebui s relum vechea discuie: "putem sau nu s folosim prima i ultima subreea?" Dei rspunsul este evident da, exist o serie de convenii ce ne pot redefini "prima subreea".

Uneori se aplic o distincie ntre "prima reea ce o putem crea" i "prima reea configurabil". Prima subreea ce o putem crea este acea ce are numai zero n cmpul subreea. Prima subreea configurabil poate fi aceeai subreea cu prima creabil, n cazul n care numrul de subreele necesare este egal cu numrul de subreele create (n acest caz nefolosirea primei subreele creabile ar duce la extinderea mtii de reea cu nc un bit, reducnd la jumtate numrul hosturilor disponibile). n realitate nu avem nevoie ntotdeauna de exact 2, 4 sau 8 subreele, astfel nct oricum vor rmne subreele nefolosite, iar dac tot vom avea dou sau mai multe subreele nefolosite n general se va evita folosirea primei i ultimei subreele. n acest caz, prima subreea configurabil este cea de-a doua subreea creabil.

O alt convenie de proiectare a reelelor sugereaz alocarea primei subreele pentru interconectarea tuturor subreelelor (pentru backbone). i n acest al doilea caz prima subreea configurabil coincide cu cea de-a doua subreea creabil.

De vreme ce vom crea 1024 de subreele pentru un necesar de doar 750, vom evita configurarea primei subreele creabile.

Masca iniial de reea este /16, asta nsemnnd c n procesul de creare de subreele nu vom putea altera primii 16 bii, din acest motiv primii doi octei din adresa IP vor rmne exprimai n decimal. Din ultimii 16 bii, 10 vor fi alocai pentru crearea de subreele rmnnd 6 pentru cmpul de staie. Atta timp ct ne intereseaz doar adrese de subreea aceti ultimi bii de staie vor fi toi 0, singurele modificri aprnd la cei 10 bii de subreea:

O alt observaie important e c n cazul adreselor de reea precizarea mtii este extrem de important, aceeai adres putnd cpta interpretri diferite n funcie de masca aleas.

Uneori precizarea mtii este ignorat n specificarea diverselor adreselor de staii sau de difuzare, nu fr a introduce un grad de neclaritate soluiei.

Spaiul iniialSpaiul iniial

16 bii reea10 bii subreea6 bii staie

131. 85.00000000.00000000/26

131.85.00000000.01000000/26Prima reea creabil

131.85.0.64/26Prima subreea configurabil

4. Pentru a determina cea de-a doua reea configurabil vom reprezenta 2 binar pe 10 bii, i apoi vom nlocui cei zece bii de subreea cu reprezentarea binar a lui 2 pe zece bii.

131.85.00000000.10000000/26A doua reea

131.85.0.128/26configurabil

5. n realitate nimeni nu ne poate constrnge n a aloca orice adres valid de staie gateway-ului, dar i aici intervin conveniile n vigoare. Prin convenie, pentru gateway se folosete prima adres valid de staie, adic n cazul nostru reprezentarea binar a lui 1 pe 6 bii, adic cinci de 0 urmai de un 1.

La punctul 4 am determinat adresa de subreea pentru cea de a doua subreea, astfel nct vom altera doar cmpul de staie:

131.85.00000000.10000001/26Adresa gateway-ului

131.85.0.129/26pentru a doua subreea

6. Numrul adreselor de staii valide este - 2=62. Dac nlturm i adresa rezervat pentru gateway, vor rmne 61 de adrese disponibile pentru staii.

7. Prima adres disponibil pentru staii va fi:

131.85.00000000.10000010/26Adresa primei staii

131.85.0.130/26pentru a doua subreea

8. Pentru a determina cea mai mare adres de staie vom reprezenta cea mai mare valoare pe ultimii 6 bii, dar care este diferit de 6 de 1 consecutivi, aceasta fiind adresa de broadcast:

131.85.00000000.10111110/26Adresa ultimei staii

131.85.0.190/26pentru a doua subreea

9. Cea de a patra subreea va avea n cmpul de subreea numrul 4 reprezentat binar pe 10 bii, iar n cmpul de staie va avea 6 de 1:

131.85.00000001.00111111/26Adresa de difuzare

131.85.1.63/26pentru cea de a patra subreea

Una dintre confuziile frecvente este acea de a asocia adresele de difuzare cu adrese terminate n 255. Nimic nu poate fi mai fals, dup cum i acest exemplu o dovedete. Rspunsul greit, dar mult mai popular printre studeni la aceast ntrebare este: 131.85.1.255, cea ce, bineneles, reprezint adresa de difuzare pentru cea de a aptea subreea.

5 ntrebri

1. Fie o staie cu adresa IP 177.22.14.20. Care este adresa de reea din care face parte aceast staie?

1. 177.22.0.0

2. 177.22.14.0

3. 177.22.14.20

4. cu o masc de reea potrivit poate fi oricare dintre variantele de mai sus

2. Dac un ruter are o interfa serial S0, cu adresa IP 107.85.20.2/255.255.255.240 care este adresa de broadcast folosit pentru hosturile din aceast subreea?

1. 107.85.20.15

2. 107.85.20.255

3. 107.85.255.255

4. 107.255.255.255

3. Ct de mare este poriunea pentru reea/subreea pentru masca de reea 255.255.240.0 folosit ntr-o adres de clas B?

1. 18 bii

2. 19 bii

3. 20 de bii

4. Este o masc invalid pentru o adres de clasa B

4. Care dintre cele de mai jos este o adres valid de staie pentru o subreea cu masc 26?

1. 129.17.9.192

2. 148.37.8.31

3. 157.16.0.68

4. 193.230.36.191

5. Avem spaiul de adrese 50.9.0.0/16 pe care trebuie s definim 400 de subreele. Care este adresa cea mai mic pe care o putem asigna unei staii?

1. 50.9.0.0

2. 50.9.0.129

3. 50.9.1.0

4. 50.9.1.1

6. Fie dou staii aflate n dou reele conectate printr-un ruter. Staia nr 1 transmite date ctre staia nr 2. Dimensiunea tabelei ARP este mai mare:

1. pentru staia nr. 2 dac se folosete proxy ARP

2. pentru staia nr. 2 dac se folosete default gateway

3. pentru staia nr. 1 dac se folosete proxy ARP

4. pentru staia nr. 1 dimensiunea tabelei ARP este aceeai i dac am folosi proxy ARP i dac am folosi default gateway

7. De pe o staie aflat ntr-o reea ce folosete adrese private se iniiaz 2 sesiuni http ctre acelai site i una telnet. Cte porturi noi vor fi alocate pe serverul de NAT pentru acest nou trafic?

1. 0

2. 1

3. 2

4. 3

8. Pe spaiul de adrese 148.27.32.0/20 trebuie create 23 subreele. Care va fi cea de a cincea adres utilizabil din cea de a noua subreea?

1. 148.27.8.5

2. 148.27.36.133

3. 148.27.39.197

4. 148.27.40.5

9. Fie dou reele prima avnd nevoie de 3 de adrese, cea de a doua de 16. Care dintre spaiile de adrese de mai jos ar duce la o pierdere a ct mai puine adrese?

1. 141.3.169.128/27

2. 41.63.69.128/26

3. 14.37.169.128/25

4. 8.3.1.0/24

10. Care dintre adresele de mai jos poate fi o adres de broadcast pentru o subreea ce ar include 62 de staii?

1. 11.5.4.127/26

2. 194.7.54.0/26

3. 141.3.169.62/26

4. nici una de mai sus

Bibliografie

1

***, ``Cisco 2500 Series Router Architecture'', Technical Note, Cisco Systems, 2003

2

***, ``Cisco 1600 Series Router Architecture'', Technical Note, Cisco Systems, 2003

3

***, ``Catalyst 2900XL Switch Architecture'', White Paper, Cisco Systems, 1997

4

***, ``Next Generation ClearChannel Architecture for Catalyst 1900/2820 Ethernet Switch'', White Paper, Cisco Systems, 1997

5

***, ``Transmission Control Protocol, RFC 793'', 1981

6

***, ``Internet Protocol, RFC 791'', 1981

7

Bollapragada, V., Murphy, C., White, R., ``Inside Cisco IOS Software Architecure'', Cisco Press, 2000

8

Braden, R. (editor), ``Requirements for Internet Hosts - Communication Layers, RFC 1122'', 1989

9

Jacobson, V., Karels, M. J., ``Congestion Avoidance and Control'', ACM Computer Communication Review; Proceedings of the Sigcomm '88 Symposium in Stanford, CA, August, 1988

10

Kurose, J. F., Ross, K. W., ``Computer Networking: A Top-Down Approach Featuring the Internet, Second Edition'', Addison Wesley, 2003

11

Nagle, J., ``Congestion Control in IP/TCP Internetworks, RFC 896'', 1984

12

Perlman, R., ``Interconnections: Bridges and Routers'', Addison-Wesley Longman, 1992

13

Postel, J., ``User Datagram Protocol, RFC 768'', 1980

14

Postel, J., ``Internet Control Message Protocol, RFC 792'', 1981

15

Ramakrishnan, K., Floyd, S., Black, D., ``The Addition of Explicit Congestion Notification (ECN) to IP'', 2001

16

Smith, M.J., `` Application Specific Integrated Circuits'', Addison-Wesley Longman, 1997

17

Stevens, W. R., ``TCP/IP Illustrated Volume 1, The protocols'', Addison-Wesley, 1994

18

Tanenbaum, A.S., ``Reele de calculatoare, ed. 4'', Byblos SRL, 2003

PAGE 23