cr3us
Moderator
Inregistrat: acum 17 ani
Postari: 160
|
|
Protocoale de rutare si protocoale rutate
Ce este Internet-ul?
Raspunsul trivial este ca Internetul este suma tuturor retelelor interconectate.
Problema cu aceasta definitie este ca este o definitie descriptiva si, desi adevarata, este în mare parte irelevanta.
Daca am un calculator nou si îl conectez la un alt calculator va fi noul calculator parte din Internet?
Daca noul calculator are o placa de retea, atunci va avea si adresa MAC, singura provocare fiind aceea de a face rost si a atribui calculatorului o adresa IP. Aparent esenta Internetului se rezuma la capacitatea calculatoarelor de a fi "TCP/IP compliant", adica de a rula stiva de protocoale TCP/IP si de a poseda o adresa IP.
Este atunci Internetul multimea tuturor calculatoarelor interconectate ce sunt "TCP/IP compliant"?
Deja stim ca pentru a lega calculatoarele între ele avem nevoie de diverse dispozitive de interconectare. Odata cu dispozitivele de interconectare vin si numeroase protocoale.
Ruterul este dispozitivul ce face posibila extraordinara scalabilitate a Internetului, si astfel chiar existenta sa, astfel încât orice definitie relevanta a Internetului trebuie sa porneasca mai degraba de la rutere decât de la statii.
Privit din punctul de vedere al modului cum functioneaza, Internetul este definit de simbioza a doua tipuri de protocoale de nivel retea: protocoale de rutare si protocoale rutate.
Protocoalele rutate sunt acele protocoale responsabile pentru asigurarea unui mod de identificare a entitatilor ce participa în Internet prin stabilirea unei scheme de adresare ce trebuie sa asigure unicitatea, dar si ierarhizarea adreselor.
Protocoalele de rutare sunt cele ce stabilesc regulile prin care informatiile despre retele sunt schimbate între rutere în scopul obtinerii unei tabele de rutare adecvate topologiei.
Tabele de rutare
Tabela de comutare era o lista de reguli, fiecare cuprinzând o parte de identificare (matching) si una de actiune, în speta interfata de iesire din switch. În partea de identificare se afla o adresa MAC destinatie, iar pentru partea de actiune era precizata una din interfetele switchului.
Datorita dimensiunii mult mai mari a Internetului acest mod de decizie a trebuit rafinat, iar cele doua directii de rafinare au fost alegerea unei scheme de adresare ierarhica si implementarea unor algoritmi de cautare si implicit stocare a informatiilor cât mai performanti.
În ceea ce priveste prima directie, desi are o vârsta venerabila, IPv4 ofera o schema de adresare satisfacatoare, astfel încât IPv6 va trebui sa exploateze multe alte avantaje pe lânga ierarhizarea spatiului de adrese pe mai multe niveluri, pentru a reusi sa se impuna drept înlocuitorul lui IPv4.
În privinta algoritmilor de caching lucrurile stau ceva mai bine, datorita libertatii fiecarui producator de a explora solutii noi fara a necesita modificari în structura Internetului. Astfel, dupa prima paradigma de rutare process switching, au urmat o serie de oprimizari ce au condus la solutii ca: fast switching, optimal switching sau Cisco express forwarding. Fiecare nou algoritm propune o noua modalitate de stocare si accesare a informatiilor de rutare, precum si un mod diferit de tratare a pachetelor sosite la ruter, acesta fiind motivul pentru care modalitatile de rutare sunt deseori referite ca algoritmi de caching.
Pe parcursul acestui capitol singurul tip de rutare ce va fi discutat este rutarea process switching.
Revenind totusi la tabelele de rutare si la modul de organizare a informatiei, vom defini ce este o ruta si apoi o tabela de rutare.
O ruta este o regula ce cuprinde o parte de identificare si una de actiune. Partea de identificare este compusa din doua elemente: adresa retelei destinatie si masca acesteia, în vreme ce partea de identificare poate fi exprimata prin ambele sau doar unul dintre urmatoarele elemente: adresa urmatorului ruter (numita next hop address) si interfata de iesire din ruter.
O tabela de rutare este o lista de rute cu acces secvential.
O tabela de rutare are urmatoarele 4 componente:
- adresa de retea - masca - next hop - interfata
Pentru unele rute este precizata doar adresa urmatorului ruter, în vreme ce pentru altele doar interfata de iesire. O ruta valida poate preciza doar interfata de iesire în cazul unei legaturi seriale, sau orice alta legatura punct la punct, aceeasi ruta este considerata ambigua în cazul unei legaturi Ethernet, în acest al doilea caz fiind necesara precizarea adresei urmatorului hop.
Pâna în acest punct am determinat forma tabelei de rutare, precum si modul de inserare în aceasta; cu toate acestea, procesul decizional al ruterului poate parea înca neclar. Pentru a întelege mai usor modul de decizie al unui ruter vom presupune ca un ruter cu o tabela de rutare identica cu cea prezentata în figura de mai sus primeste un pachet cu adresa destinatie 194.230.85.66.
Din întregul pachet singura informatie relevanta pentru nivelul retea al unui ruter este adresa logica destinatie. În primul rând, ruterul va trebui sa determine daca nu este el destinatarul acestui pachet, iar pentru aceasta va compara adresele logice ale tuturor interfetelor sale active cu adresa destinatie a pachetului. Daca este destinatarul pachetului atunci va trimite datele nivelurilor superioare.
În cazul în care ruterul nu are nici o interfata activa cu aceeasi adresa ca cea a pachetului, ruterul va trece la pasul doi, încercând sa determine daca destinatia se afla în aceeasi retea ca si sursa. Pentru aceasta va analiza adresa si masca interfetei pe care a primit pachetul în cauza. Astfel va aplica masca asociata interfetei de intrare pe adresa interfetei urmând ca rezultatul sa fie comparat cu rezultatul operatiei de "si" logic între aceeasi masca de retea si adresa destinatie. Daca cele doua rezultate coincid, ruterul va ignora pachetul, altfel urmând sa înceapa procesul efectiv de rutare.
Prima ruta din tabela de rutare va fi extrasa, iar rezultatul operatiei de "si" logic între adresa destinatie si masca de retea cuprinsa în aceasta ruta va fi comparat cu adresa de retea. În cazul în care cele doua valori coincid, antetul de nivel legatura de date al pachetului va fi rescris (antetul de nivel retea ramânând neschimbat) si pachetul va fi trimis catre urmatorul hop. Daca valorile difera, va fi extrasa urmatoarea ruta pâna la gasirea primei potriviri sau pâna la epuizarea rutelor, caz în care pachetul urmeaza sa fie ignorat.
În cazul exemplului nostru, presupunem ca pachetul cu destinatia 194.230.85.66 trebuie rutat. Prima ruta va aplica masca /26 adresei destinatie, rezultând 194.230.85.64, valoare diferita de 194.230.85.0. Nici a doua ruta nu este potrivita pentru aceasta destinatie, astfel ajungându-se la cea de a treia ruta.
Aparent prima si a treia ruta se refera la aceeasi retea. La o privire mai atenta mastile de retea difera, astfe a treia ruta se refera la un spatiu de adrese de patru ori mai mare decât prima. În realitate, datorita caracterului secvential al utilizarii tabelelor de rutare si a faptului ca primele doua rute se refera la doua sferturi din acelasi spatiu de adrese, numarul de adrese diferite ce vor folosi a treia ruta va fi doar dublu (si nu de patru ori mai mare) decât numarul de adrese ce vor folosi prima ruta.
În urma aplicarii mastii /24 pentru adresa destinatie rezulta 194.230.85.0 si anume adresa retelei destinatie din aceasta ruta. Pentru a putea trimite pachetul va trebui aflata adresa MAC a urmatorului hop, si anume 194.230.5.65. În urma interogarii tabelei ARP sau a unei cereri ARP adresa MAC sursa este rescrisa cu adresa MAC a interfetei E1, iar adresa MAC destinatie este înlocuita cu adresa MAC corespunzatoare urmatorului hop.
Exemplul de tabela de rutare prezentat în figura de mai sus mai are înca o virtute didactica: prezinta o proiectare destul de putin fericita a distributiei adreselor, deschizând astfel o discutie importanta asupra distributiei eficiente a adreselor logice.
Care este rolul unei distributii eficiente a adreselor logice într-o retea?
Cele doua aspecte ale unei distributii eficiente urmaresc distribuirea adreselor astfel încât sa putem reduce dimensiunea tabelei de rutare prin agregarea rutelor, dar si evitarea pierderii de adrese.
În cazul nostru cea de a doua ruta se refera la o retea cu masca /26, retea la care are acces printr-o interfata seriala. Legaturile seriale sunt punct la punct, astfel din cele 26-2=62 de adrese vom folosi doar 2, restul ramânând blocate. O alocare eficienta de adrese ar fi folosit un spatiu de adrese cu masca /30 pentru aceasta retea.
În ceea ce priveste agregarea rutelor, desi pe ruterul nostru situatia pare buna, nu ne putem opri sa speculam în legatura cu tabelele de rutare ale ruterelor adiacente. Astfel este extrem de probabil sa existe rutere adiacente ce vor avea rute catre 194.230.85.0/24 si 194.230.86.0/24, ambele rute având ca urmator hop ruterul nostru. Din pacate aceste doua spatii de adrese, desi consecutive, nu pot fi agregate.
O alta discutie ar putea fi purtata în legatura cu implicatiile faptului ca nici una dintre interfetele ruterului nu se afla în spatiul de adrese 194.230.85.0/24, desi acest ruter este punctul în care acest spatiu de adrese este partitionat.
Înainte de a încheia subiectul optimizarilor traficului folosind tabelele de rutare vom mai zabovi un pic asupra unui alt aspect. Pentru exemplul de mai sus sa consideram ca mai adaugam o ruta si anume:
194.230.85.8 /30 194.230.5.65 E1
Este usor de observat ca toate pachetele ce vor fi rutate pe aceasta ruta ar trece de primele doua rute din vechea tabela, urmând ca cea de a treia ruta sa le trimita catre 194.230.5.65, adica catre acelasi urmator hop. În concluzie, din puctul de vedere al ruterului, toate pachetele vor fi rutate identic în ambele cazuri.
Astfel, aceasta operatie de adaugare a noi rute nu schimba cu nimic modul de rutare a pachetelor, ducând totusi la marirea dimensiunii tabelei de rutare si deci aparent la deprecierea performantelor. În realitate deprecierea performantelor afecteaza toate adresele rutate cu exceptia celor cuprinse în spatiul 194.230.85.8/30. Astfel, pentru un scenariu în care 80% din traficul ce trece prin acest ruter este destinat adreselor 194.230.85.9 si 194.230.85.10, adaugarea acestei noi rute duce în realitate la îmbunatatirea performantelor generale ale retelei.
Astfel, o prima clasificare a rutelor ar fi în functie de tipul procesului de rutare, si anume classfull sau classless. Odata cu trecerea timpului si cu cresterea în popularitate a adresarii classless tabelele de rutare au devenit classfull chiar daca sunt alimentate uneori de protocoale de rutare classless (adica protocoale ce nu transmit si informatii despre masca de retea), ruterele urmând sa precizeze explicit masca de retea înainte de a introduce informatiile în tabela de rutare.
În rutarea cu rute classfull procesul este un pic diferit, si anume adresa destinatie extrasa din antetul unui pachet ajuns la ruter va fi mai întâi comparata cu 192, si în cazul în care e mai mica de 192 va fi comparata cu 128, determinându-se astfel clasa de adrese si implicit masca de retea. Din acest punct procesul este similar cu cel din rutarea classfull, adica se va efectua o operatie de "si" logic între adresa destinatie si masca retelei, rezultatul urmând a fi comparat cu adresa de retea continuta în ruta.
Odata cu raspândirea rutarii classless a aparut clasificarea rutelor în functie de tipul destinatiei. Astfel vom avea rute de tip nod sau rute host si rute de tip retea. Rutele de tip host contin informatii doar despre o singura statie, adica masca de retea este /32. Odata cu cresterea Internetului, si implicit a dimensiunii tabelelor de rutare, a crescut si presiunea de a agrega cât mai mult rutele, precum si a se renunta la rutele de tip nod. Cu toate acestea, datorita modului de inserare a rutelor, si deci datorita promovarii rutelor de nod la începutul tabelei de rutare, acestea având prefixul maxim, rutele host mai sunt înca folosite pentru unele optimizari de trafic, mai ales pe ruterele de la periferia Internetului.
Al treilea criteriu de clasificare a rutelor este în functie de modul de conectare, iar cele doua tipuri de rute sunt: rutele direct conectate si rute gateway. Rutele direct conectate sunt rute catre retele în care ruterul în cauza are o interfata, si în majoritatea cazurilor aceste rute sunt automat introduse în tabela de rutare de catre sistemul de operare odata cu configurarea si activarea interfetei respective. Rutele direct conectate în general nu contin adresa urmatorului hop, având specificata doar interfata de iesire din ruter. Astfel rutele direct conectate sunt singurele rute valide ce pot avea specificata ca interfata de iesire o interfata multiaccess (gen Ethernet), fara a necesita precizarea adresei urmatorului hop.
Exista totusi unele rutere în care se specifica adresa urmatorului hop si pentru rutele direct conectate. Adresa urmatorului hop în acest caz este chiar adresa logica primara a interfetei de iesire din ruter, acesta fiind singurul caz când putem folosi una dintre adresele ruterului pentru a specifica urmatorul hop.
O a patra clasificare a rutelor se face în functie de mediul de acces catre o retea, având astfel rute pe medii punct la punct si rute pe medii multiacces. Diferenta între cele doua tipuri de rute consta, dupa cum a fost precizat si mai înainte, în faptul ca rutele catre o retea conectata pe o legatura punct la punct pot fi specificate ori prin interfata de iesiere din ruter, ori prin adresa urmatorului hop, ori prin ambele, în vreme ce rutele pe medii multiacces sunt specificate doar prin adresa urmatorului hop, interfata de iesire nefiind suficienta.
Ar fi important de precizat ca din punctul de vedere al unui ruter, doua medii de transmisie acopera marea majoritatea a rutelor, altfel spus doua tipuri de interfete sunt mult mai populare decât restul. Cele doua tipuri de interfete sunt: interfetele Ethernet si cele seriale, prima permitând transmisia peste un mediu multiacces, în vreme ce cea de a doua este o interfata punct la punct. Alte interfete punct la punct destul de populare sunt cele de fibra optica si cele ISDN.
Exista o clasificare ce împarte rutele în rute generice si rute specifice, dar aceasta clasificare este un pic artificiala de vreme ce la ora actuala rutele agregate au trecut ferm în tabara rutelor specifice, sigura ruta generica fiind ruta implicita sau ruta default.
Ruta implicita sau ruta default este ruta spre care se trimit toate pachetele pentru care nu se cunoaste o destinatie specifica.
În mod evident nici un pachet nu va ajunge sa fie sa prelucreze ce-a de a doua ruta implicita, toate pachetele fiind acceptate de prima.
Dezactivarea unei interfete, ce poate avea loc ori ca o consecinta a unei închideri administrative sau a întreruperii legaturii de nivel fizic sau a celei de nivel legatura de date, are drept consecinta directa înlaturarea tuturor rutelor ce folosesc respectiva interfata ca interfata de iesire din ruter. Astfel, în cazul în care nu am avea cea de a doua ruta default si interfata S0 ar fi dezactivata, toate pachetele care ar fi fost rutate prin prima ruta implicita ar urma sa fie ignorate.
În concluzie, într-o tabela de rutare exista o singura ruta default activa, dar pot fi precizate mai multe rute default în scopuri de backup.
Ultima clasificare a rutelor asupra careia vom mai insista este pe departe si cea mai semnificativa. Aceasta clasificare se face în functie de modul în care informatia pe baza careia sunt construite rutele este dobândita si împarte rutele în rute statice si rute dinamice.
Clasificarea rutelor în rute statice si rute dinamice se refera doar la rutele gateway, deoarece rutele direct conectate sunt introduse automat în tabela de rutare.
Rute statice
Rutele statice sunt introduse manual de catre administratorul ruterului, spre deosebire de rutele dinamice ce necesita doar configurarea unui protocol de rutare, rutele urmând a fi învatate schimbând informatii despre rutele direct conectate cu celalalte rutere.
Este importat de precizat ca o ruta statica va aparea în tabela de rutare numai atunci când interfata de iesire din ruter este configurata corect si activata.
O alta limitare a folosirii rutelor statice este ca schimbarile în topologia retelei trebuie cel mai adesea sa fie actualizate manual de administrator pe ruter. Desi exista modalitati de minimizare a efectului schimbarilor în topologie, aceste procedee duc la marirea dimensiunii tabelei de rutare.
Exista si o latura pozitiva a incapacitatii rutelor statice de a urmari schimbarile topologice (caderea unei conexiuni de exemplu). Una dintre metodele, e drept mai rare, de atac al unei retele este atacarea rutarii dinamice, si anume introducerea unui ruter într-un mediu multiacces ce va oferi o ruta foarte buna, "convingând" astfel toate celalalte rutere sa trimita traficul catre el.
În plus, orice protocol de rutare consuma mai multa sau mai putina banda pentru ca ruterele sa-si poata actualiza tabelele de rutare. Apoi, odata primita, informatia de rutare trebuie prelucrata înainte de a fi introdusa în tabela de rutare, unele protocoale de rutare consumând cantitati semnificative de timp de procesor sau de memorie.
Rutarea statica nu are cerinte de latime de banda, timp de procesor sau memorie (în afara de memoria efectiva ocupata de tabela de rutare) si, desi introducerea manuala de informatii poate parea o metoda arhaica de administrare, deseori rutarea statica este mult mai potrivita pentru ruterele de la periferia Internetului decât rutarea dinamica.
Multe dintre retelele de mici dimensiuni nu au o legatura redundanta la Internet, astfel încât specificarea legaturii de Internet printr-o ruta statica sau dinamica sunt la fel de inutile în cazul întreruperii acestei legaturi.
În concluzie, rutele statice nu sunt o solutie depasita de configurare a ruterelor, iar viitorul nu pare sa anunte înlocuirea rutarii statice cu rutarea dinamica. Rutarea statica va continua sa fie solutia optima pentru retelele cu un grad redus de complexitate sau a retelelor stub (retele cu o singura conexiune la Internet).
Protocoalele rutate si Internetul
Cele doua protocoale de rutare concurente pentru IP sunt AppleTalk si IPX, si desi implementarile solutiilor de conectare peste Internet bazate pe aceste protocoale sunt rare, cele doua protocoale ramân înca destul de folosite în retelele locale.
Desi Macintosh ocupa 3,5% din piata mondiala de calculatoare personale, efortul pentru sustinerea solutiilor bazate pe AppleTalk în rândul marilor producatori de echipamente de retea s-a diminuat rapid, trecând pe un plan colateral începând cu anii `95.
IPX în schimb a fost multa vreme un competitor redutabil pentru IP. De fapt, competitia dintre stiva de protocoale TCP/IP si SPX/IPX s-a tradus în limbajul retelelor locale de calculatoare în competitia dintre Microsoft si Novell.
De ce IP a ramas practic singurul protocol rutat peste Internet?
Dupa cum am observat deja, AppleTalk nu a fost un competitor real pentru IP. Nu am aflat totusi cum solutiile IP au reusit mai întâi sa recupereze în popularitate, iar apoi chiar sa elimine solutiile IPX.
O prima distinctie trebuie facuta între retelele de servere (mainframe-uri) si cele de calculatoare personale. Retelele din campusurile academice, precum si cele de servere au folosit traditional solutii bazate pe IP. Cu toate acestea, odata cu începutul anilor `90 si cu cresterea exploziva a retelelor de calculatoare personale, au început sa se dezvolte solutii comerciale care sa exploateze particularitatile noilor tipuri de retele. Câstigatorul competitiei a fost fara îndoiala Novell Netware, sistemul lor de operare promovând o noua stiva de protocoale, si anume IPX/SPX.
Cum traim într-un secol al ironiilor, nu este lipsit de importanta sa subliniem aici ca noua stiva de protocoale era de fapt doar adaptarea unui protocol consacrat în acea vreme: XNS, protocol dezvoltat de compania Xerox. Privind în urma cu 10-15 ani vom gasi compania Xerox implicata si în dezvoltarea primelor solutii grafice, bazate pe folosirea unui nou dispozitiv periferic, dispozitiv numit azi mouse. Xerox, alaturi de DEC de data aceasta, a contribuit si la dezvoltarea si standardizarea protocolului de nivel legatura de date ce guverneaza în acest moment retelele locale de calculatoare: Ethernet. Ironia este ca, desi multe dintre solutiile Xerox au definit lumea IT asa cum o cunoastem noi acum, la sfârsitul anilor `90 Xerox a trebuit sa se retraga de pe piata producerii de calculatoare, întâmpinând si acum dificultati financiare considerabile.
În extrema cealalta, o firma extrem de prospera, pornita prin achizitia unui alt sistem de operare, ce a preluat solutiile grafice de la Macintosh, stiva TCP/IP si unele dintre solutiile de retea din UNIX, a ajuns sa guverneze nu doar piata retelelor locale de calculatoare, dar si cea a serverelor.
Revenind totusi la IPX, o prima diferenta fata de IP este formatul adreselor. O adresa IPX este un sir de 10 octeti, din care primii 4 octeti reprezinta adresa de retea, în vreme ce ultimii 6 reprezinta adresa de statie, numita adresa de nod. Pentru adrese de nod IPX foloseste chiar adresa MAC a placii de retea, iar adresa de retea este pastrata pe server, statiile la pornire urmând sa-si construiasca singure adresa IPX. În acest mod s-a eliminat necesitatea folosirii unui protocol aditional (cum este protocolul ARP în cazul IP) pentru comunicatia în reteaua locala.
Multe dintre mecanismele de control ale protocolului IP au fost preluate si de IPX. Spre exemplu, în antetul IPX exista un câmp numit Transport Control, al carui rol este similar cu cel al câmpului Time To Live din IP. Este oare overheadul folosirii de adrese de 10 octeti în loc de adrese de 6 octeti responsabil pentru victoria protocolului IP fata de IPX? Exista facilitati ale protocolului IP ce nu se regasesc în protocolul IPX?
Protocoale de retea folosite în retelele locale de calculatoare
Un lucru ce pare azi sa apartina mai degraba notelor de subsol decât istoriei recente a retelelor de calculatoare personale e faptul ca firma Microsoft a aparut pe piata si s-a definit mai întâi ca unul dintre competitorii solutiilor Novell, mai degraba decât concurent pentru solutii UNIX.
Anii `93-`94, precum si lansarea sistemului de operare Novell 3.x, au adus aproape întreaga piata a retelelor de calculatoare personale sub controlul companiei Novell Netware. În acea vreme orice administrator de retea trebuia sa aiba o buna întelegere a stivei IPX/SPX, indiferent de cerintele specifice slujbei. În contrast, acum solutiile Novell sunt deseori preferate tocmai pentru gradul aditional de securitate oferit de numarul redus de specialisti în domeniu.
O discutie a protocoalelor de retea folosite în retelele locale nu poate trece cu vederea solutia proprietara Microsoft, si anume NetBEUI (NetBIOS Extended User Interface). Protocolul NetBEUI, desi poate parea o solutie adecvata pentru retelele de mici dimensiuni, aduce doua inconveniente semnificative:
Adresele NetBEUI sunt simbolice, fiecare statie fiind identificata printr-un nume. Absenta unei scheme de adresare ierarhica face practic imposibila rutarea acestui protocol;
Componenta importanta a acestui protocol se realizeaza prin mesaje de difuzare, ceea ce poate duce la o încarcare semnificativa a retelei. NetBIOS (Network Basic Input/Output System) este un API folosit de aplicatii în retelele IBM pentru a solicita servicii de la procesele de retea de nivel scazut. NetBIOS include 3 servicii de baza:
Serviciul de nume: acest serviciu este în realitate responsabil pentru asigurarea schemei de nume folosita de NetBEUI. Numele sunt difuzate la intrarea în retea sau pot fi interogate explicit prin pachete de difuzare.
Serviciul de sesiuni este un serviciu orientat catre conexiune, asigurând secventierea mesajelor si gestionând confirmarile pentru acestea.
Serviciul de datagrame este bazat pe datagrame si este folosit pentru difuzari si mesaje de informare.
În urma cu 3 ani, recomandarile pentru alegerea protocolui de retea pentru o retea de calculatoare aratau în felul urmator:
la nivelul retelei locale cele mai eficiente sunt IPX si NetBEUI cele mai sigure protocoale sunt tot IPX si NetBEUI daca dorim integrarea retelei noastre pe Internet flexibilitatea cea mai ridicata o ofera TCP/IP, urmat apoi de IPX/SPX cel mai usor de administrat este suita de protocoale TCP/IP cel mai usor de integrat cu retelele Unix este TCP/IP cel mai usor de integrat cu retelele Windows este NetBEUI cel mai usor de integrat cu retelele Netware este IPX/SPX
Începând cu versiunea 5.x a sistemului de operare Novell Netware, stiva de protocoale nativa a fost schimbata la TCP/IP, iar ultimii ani au marcat o crestere constanta a firmei Microsoft pentru solutii IP, adeseori în defavoarea solutiilor NetBEUI. Astfel, recomandarile pentru alegerea protocolului de retea în 2003 se reduc la o singura regula: "Alege IP".
Protocoale de rutare
Determinarea caii optime
Protocoalele de rutare, uneori denumite si protocoale de rutare dinamica, au drept obiectiv schimbarea informatiilor despre retelele cunoscute între ruterele ce ruleaza acelasi protocol de rutare. Pe baza acestor informatii se contruiesc rute, aceste rute numindu-se rute dinamice.
Ruterele au o singura tabela de rutare pentru fiecare protocol rutat, astfel încât aceeasi tabela de rutare va contine atât rutele direct conectate, rutele statice, dar si rutele dinamice.
Un ruter poate rula unul sau mai multe protocoale de rutare, numarul protocoalelor de rutare ce pot fi rulate fiind limitat în general de sistemul de operare, sau de modelul ruterului. Un ruter Cisco spre exemplu ruleaza în general pâna la 30 de instante de protocoale de rutare.
Problema care apare este ca acelasi protocol de rutare poate sa furnizeze doua sau mai multe rute catre aceeasi destinatie; de asemenea pot exista doua rute dinamice catre aceeasi retea provenite din protocoale de rutare diferite, sau, de ce nu, este posibil chiar sa avem o ruta dinamica catre o retea direct conectata.
Astfel, desi avem trei tipuri de rute trebuie sa avem un mecanism de comparare a rutelor între ele. Mai mult chiar, este necesara ierarhizarea tuturor rutelor.
Cele doua mecanisme de ierarhizare a rutelor se numesc distanta administrativa si metrica.
Metrica unei rute este un numar care apreciaza cât de bun este un drum spre o anumita destinatie în raport cu un set de factori specifici. Atât metrica, precum si setul de factori, sunt relevanti pentru un anumit protocol de rutare - adica nu are sens sa comparam metricile unor rute obtinute prin protocoale de rutare diferite.
Distanta administrativa este un numar între 0 si 255, asociat cu un tip de ruta sau cu un protocol de rutare, ce permite ierarhizarea protocoalelor de rutare.
Clasificarea protocoalelor de rutare
Exista numeroase clasificari ale protocoalelor de rutare, dar ne vom opri doar asupra a doua dintre acestea.
Dupa cum statiile sunt grupate în retele pentru a oferi o ierarhizare a spatiului de adrese, si retelele la rândul lor sunt grupate în colectii de retele aflate sub o administratie comuna numite sisteme autonome.
Astfel, o prima clasificare a protocoalelor de rutare se face în protocoale de rutare inter-AS, folosite pentru schimbul informatiilor de rutare între sisteme autonome diferite si protocoale de rutare interne adica protocoale folosite în cadrul aceluiasi sistem autonom.
O a doua clasificare a protocoalelor de rutare se refera în realitate la clasificarea protocoalelor de rutare interna în functie modul de schimbare a informatiei de rutare. Cele trei clase în care sunt împartite protocoalele de rutare interna sunt: protocoale bazate pe vectori de distanta (distance-vector protocols), protocoale bazate pe starea conexiunii (link-state protocols) si protocoale hibride.
Cea de a treia categorie de protocoale de rutare interna îmbina caracteristici ale protocoalelor bazate pe vectori de distanta cu unele caracteristici ale protocoalelor bazate pe starea conexiunii. În realitate, aceasta noua categorie este folosita pentru a clasifica protocoalele ce nu pot face parte din nici una dintre primele doua categorii, astfel ca, în cele ce urmeaza, vom prezenta doar protocoalele distance-vector si link-state.
Protocoale distance-vector Întorcându-ne la protocoale de tip distance-vector, pentru acestea calculul drumului optim se face pe baza de directie (de obicei interfata) si distanta pâna la destinatie folosind directia respectiva. Informatiile de rutare se schimba numai între ruterele învecinate, la intervale periodice, aceasta traducându-se într-un timp de convergenta mare, adica schimbarile aparute în topologia retelei se propaga destul de greu catre rutele mai îndepartate de locul aparitiei modificarii în cauza.
Cele mai populare protocoale de rutare bazate pe vectori de distanta sunt RIP si IGRP, aceste protocoale fiind usor de configurat, iar resursele de latime de banda si timp de procesor sunt extrem de reduse.
Pentru a întelege mai exact modul cumulativ în care protocoalele distance-vector calculeaza costul unei rute, vom analiza în continuare protocolul RIP.
Prima precizare ce ar trebui facuta când vorbim de RIP este ca în acest moment exista doua versiuni ale acestui protocol cu o popularitate relativ egala. Astfel va fi prezentat RIP version 1, si mecanismele de protocol bazat pe vectori de distanta, pentru ca apoi sa fie prezentate adaugarile si modificarile aduse de versiunea 2 a acestui protocol. În acest moment prin RIP (fara a preciza versiunea) se întelege doar RIP version 1, iar pentru referinte la versiunea a doua trebuie precizata versiunea: RIP v2.
RIP a aparut ca un efort de standardizare a unui prim protocol de rutare la mijlocul anilor `80, efort concretizat prin publicarea RFC 1058.
RIP foloseste drept metrica numarul de hopuri sau rutere pâna la reteaua destinatie. Pentru a se evita efectele negative ale buclelor logice a fost stabilita o metrica maxima, astfel încât orice informatie despre o ruta cu o metrica mai mare de 15 este ignorata.
Actualizarile se fac transmitând toate informatiile de rutare si nu doar cele ce s-au modificat de la ultima actualizare, dar sunt trimise folosindu-se adrese de difuzare, adica pachetele de actualizare vor ajunge doar la ruterele adiacente, deoarece în mod implicit ruterele filtreaza pachetele de broadcast.
Actualizarile se fac implicit la 30 de secunde, acest timp reprezentând un compromis între timpul de convergenta si cantitatea de banda utilizata pentru actualizari. Astfel timpul de convergenta la RIP în cel mai defavorabil caz este de 7 minute jumatate, calificând RIP în categoria protocoalelor de rutare interna cu o convergenta scazuta. În masura în care se impune un timp de convergenta mai mic, perioada de actualizare poate fi redusa, ducând astfel si la un consum mai ridicat de latime de banda.
Fiecare ruter ce primeste un pachet de actualizare va incrementa metrica fiecarei rute continute în pachet cu 1, iar apoi pentru fiecare dintre rute va încerca sa determine daca nu exista deja o ruta cu o metrica mai buna catre aceeasi destinatie în tabela de rutare.
Protocoale link state
Protocoalele de tip link-state construiesc o baza de date cu întreaga topologie a retelei si calculeaza drumul cel mai scurt pe baza unui algoritm de tip Dijkstra (SPF - shortest path first).
Astfel, pentru actualizarea tabelelor de rutare se trimite într-o prima etapa întreaga tabela de rutare catre toate ruterele ce ruleaza acelasi protocol de rutare, aceasta realizându-se prin folosirea în câmpul destinatie a unei adrese logice de multicast specifice fiecarui protocol în parte. Dupa aceasta etapa de trimitere a tuturor informatiilor, numita si flooding, actualizarile se vor efectua doar la aparitia unei schimbari în topologie, iar pachetele de actualizare vor contine doar informatii despre rutele modificate, acesta metoda de actualizare numindu-se actualizare incrementala.
Principala problema a acestor protocoale este ca fiecare dintre rutere va trebui sa construiasca arborele topologic, si apoi sa extraga rutele ca drumuri optime în acest arbore, iar acest proces necesita resurse de memorie si procesor adesea semnificative. În plus, efortul configurarii unui protocol bazat pe starea conexiunii este adesea mult mai mare decât cel necesar pentru a configura un protocol bazat pe vectori de distanta.
Cu toate acestea, datorita initierii procesului de actualizare odata cu aparitia modificarilor în topologie, precum si datorita folosirii adresarii multicast, si deci a propagarii informatiilor de actualizare în întreaga retea, timpul de convergenta pentru protocoalele link-state este semnificativ mai redus decât pentru cele distance-vector.
Sisteme autonome
Datorita dimensiunii Internetului am vazut ca toate protocoalele rutabile trebuie sa suporte o schema de adresare ierarhica. Cu toate acestea, la ora actuala exista miliarde de retele, astfel încât un ruter din nucleul Internetului ar avea o tabela de rutare cu peste un miliard de intrari.
În realitate, în plus fata de cele doua niveluri de ierarhizare aduse de protocolul rutat, retelele mai sunt grupate în sisteme autonome.
Un sistem autonom este o colectie de rutere aflate sub o administratie comuna.
Definitia de mai sus pare a-si avea locul mai degraba într-o carte de marketing, decât într-o carte de retele de calculatoare. Cu toate acestea o definitie mai exacta este greu de dat, în plus cea mai importanta caracteristica a unui sistem autonom este cuprinsa în aceasta definitie, si anume faptul ca orice ISP, pentru a putea intra în Internet, trebuie sa se afilieze unei organizatii, adica unui sistem autonom.
O administratie comuna se traduce printr-un set de protocoale de rutare ce trebuie folosite în cadrul sistemului autonom, printr-un set de politici de securitate si de comportament.
Un sistem autonom sau AS (autonomous system) este identificat printr-un numar numit numar sau adresa AS. Acest numar poate fi cuprins între 1 si 65.535, cu toate ca ultimul segment al acestui spatiu de adrese, si anume numerele între 64.512 si 65.535, sunt rezervate pentru uz privat, similar cu clasele de adrese IP private.
Atribuirea unui numar AS se face de catre IANA (Internet Assigned Numbers Authority), si desi pretul de 100 USD este nesemnificativ, costul real este mai degraba în termeni birocratici, procedura de justificare a unui numar AS face imposibila obtinerea unui numar AS de catre ISP-urile mici si medii. Astfel, sigura optiune pentru acestea este de a intra într-un AS deja existent, si sa accepte regulile si politicile de securitate si rutare ale acestuia.
Protocoale de rutare inter-AS
Odata cu gruparea retelelor în sisteme autonome a aparut si problema dezvoltarii de protocoale care sa faca fata cerintelor rutarii între AS-uri. Astfel a fost creata distinctia între IGP (Interior Gateway Protocol) si EGP (Exterior Gateway Protocol), adica între protocoale de rutare interne unui sistem autonom si protocoalele de rutare exterioare unui AS, sau, altfel spus, protocoale de rutare inter-AS.
Care sunt cerintele pentru un EGP?
Prima si cea mai importanta cerinta e aceea de a face fata unor tabele de rutare semnificativ mai mari decât orice am putea întâlni in interiorul unui AS. O tabela de internet actuala care este schimbata între doua rutere de granita din sisteme autonome diferite cuprinde aproximativ 180.000 de rute.
A doua cerinta este cea de flexibilitate. Desi unele dintre protocoalele interne folosesc pâna la cinci factori pentru determinarea metricii, folosirea unei formule pentru determinarea costului unei rute nu ofera un grad suficient de flexibilitate. Procesul complet de comparare a doua sau mai multe rute pentru BGPv4, spre exemplu, este un algoritm cu 13 pasi.
În plus numarul informatiilor asociate cu o ruta creste semnificativ. Pentru un IGP singurele informatii transmise erau: retea destinatie, masca, metrica, în vreme ce pentru BGP mai trebuie precizate si atribute ca: origin, as_path, next_hop, local_pref, atomic_aggregate, aggregator, multi_exit_disc.
O alta schimbare fata de rutarea interna o reprezinta schimbarea paradigmei de securitate. Astfel, daca ar fi sa judecam un protocol de rutare inter-AS dupa criteriile rutarii clasice (interne adica), EGP ar fi în categoria extrem-paranoic. Aceasta schimbare a paradigmei de securitate, corelata cu cerinta de flexibilitate, se traduce printr-o crestere a gradului de complexitate a configurarii unui EGP.
Pentru a vedea si partea pozitiva a lucrurilor, cerintele de convergenta sunt destul de reduse, datorita faptului ca legaturile de nucleu sunt extrem de stabile. Astfel, timpul de convergenta pentru BGP este de ordinul orelor mai degraba decât minute precum în cazul unui protocol de rutare interna.
Spre deosebire de rutarea interna, rutarea inter-AS nu lasa loc pentru existenta mai multor protocoale diferite, datorita cantitatii importante de resurse, dar si numarului relativ redus de sisteme autonome. Câstigatorul competitiei este fara îndoiala BGPv4.
BGPv4 este deja în al 10-lea an de viata, fiind raspunsul la cresterea exploziva a Internetului de la începutul anilor `90. BGPv4 nu aduce o optimizare a protocoalelor deja existente ci o paradigma complet noua axata pe doua principii: scalabilitate si securitate.
În principiu BGP functioneaza la fel ca orice protocol de rutare, în sensul ca schimba tabele de rutare cu ruterele vecine. În plus fata de un IGP, BGP mai transmite odata cu acestea si informatia de AS, precum si o serie de alte atribute. Astfel, un ruter BGP va construi asa-numitele AS-paths, adica AS-urile prin care trebuie sa treaca un pachet pâna la destinatie. Folosind aceste AS-paths, BGP evita buclele de rutare.
Un lucru important de precizat este ca BGP transmite mesajele încapsulate în segmente TCP, folosind un port dedicat si anume portul 179. Drept consecinta, înainte de a putea rula o sesiune BGP, trebuie ca între cele doua noduri sa existe rute. Cel mai adesea alimentarea initiala a tabelelor de rutare este realizata de un IGP, dar la fel de bine conexiunea poate fi stabilita si prin precizarea unor rute statice.
Înainte de a încheia capitolul de protocoale de rutare trebuie sa disipam impresia unei ierarhii între protocoalele de rutare. Nu exista un "cel mai bun protocol de rutare" care sa fie la fel de eficient pentru orice retea. Deseori, tot comparând protocoale, se scapa din vedere ca solutia optima pentru un caz dat este rutarea statica, si asta nu doar în retelele de mici dimensiuni, ci chiar si pentru interconectarea a doua sisteme autonome diferite. BGP ofera un grad ridicat de flexibilitate, dar pentru a exploata aceasta flexibilitate trebuie sa avem mai mult de o conexiune catre Internet. Daca avem un singur provider o singura ruta default poate fi suficienta.
_______________________________________ Cr3u$
|
|