Ruter

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Un ruter Cisco ASM/2-32EM aflat în serviciu la CERN în 1987
Ruter D-Link DIR-600 din anul 2009

Un ruter[1] (sau router[2]) este un dispozitiv hardware sau software care conectează două sau mai multe rețele de calculatoare bazate pe „comutarea de pachete” (packet switching). Funcția îndeplinită de rutere se numește rutare. În acest articol diferențierea între rutere hardware și rutere software se face în funcție de locul unde se ia decizia de rutare a pachetelor de date. Ruterele software utilizează pentru decizie un modul al sistemului de operare, în timp ce ruterele hardware folosesc dispozitive specializate (de tip ASIC) ce permit o viteză mai mare de comutare a pachetelor.

Ruterele operează la nivelul 3 al modelului OSI. Ele folosesc deci adresele IP (de rețea) ale pachetelor aflate în tranzit pentru a decide către care anume interfață de ieșire trebuie să trimită pachetul respectiv. Decizia este luată comparând adresa calculatorului destinație cu înregistrările (câmpurile) din tabela de rutare. Aceasta poate conține atât înregistrări statice (configurate/definite de către administratorul rețelei), cât și dinamice, aflate de la ruterele vecine prin intermediul unor protocoale de rutare.

Istorie[modificare | modificare sursă]

Leonard Kleinrock și primul router

Primul dispozitiv care avea o funcționalitate asemănătoare cu ruterele de astăzi (comutarea de pachete) a fost Interface Message Processor (IMP). IMPurile erau dispozitivele care asigurau comutarea în ARPANET, prima rețea cu comutare de pachete. Ideea de ruter (numite pe vremea aceea „gateway” - „porți”) a apărut din lucrul unui grup de cercetători în rețele, numit International Network Working Group (INWG). Creat în 1972 ca un grup informal care să analizeze problemele tehnice ale interconectării diferitelor tipuri de rețele existente la vremea respectivă, INWG a devenit în același an un subcomitet al Federației Internaționale a Procesării Informației.[3]

Aceste dispozitive erau diferite de precedentele comutatoare de pachete în două moduri. În primul rând, ele conectau rețele de tipuri diferite, ca de exemplu rețele seriale și rețele locale. În al doilea rând, dispozitivele acestea nu asigurau controlul erorilor, lăsând acest lucru în sarcina calculatoarelor (această idee a fost încercată și în rețeaua CYCLADES[4]).

Ideea a fost analizată în mai mult detaliu, în scopul de a produce un prototip funcțional, în cadrul a două programe simultane. Unul din ele era programul inițiat de DARPA care a dus la crearea arhitecturii TCP/IP.[5] Celălalt era un program al laboratorului Xerox PARC, creat pentru a explora noi tehnologii pentru rețele și care a produs sistemul PARC Universal Packet (PUP), care a fost în mare măsură ignorat în afara companiei Xerox datorită problemelor de proprietate intelectuală.[6]

Primele rutere Xerox au intrat în serviciu la începutul anului 1974. Primul ruter IP adevărat a fost dezvoltat de Virginia Strazisar la compania BBN în 1975-1976, ca parte a unui program inițiat de DARPA. Până la sfârșitul anului 1976 existau 3 rutere bazate pe minicalculatorul DEC PDP-11, active în prototipul de Internet existent în acea perioadă.[7]

Primele rutere multiprotocol au fost create în mod independent de cercetători de la MIT și Stanford în 1981; ruterul de la Stanford a fost creat de William Yeager, iar cel de la MIT de Noel Chiappa, ambele fiind bazate pe PDP-11.[8][9][10][11]

Deoarece cea mai mare parte a rețelelor actuale sunt bazate pe protocolul IP, ruterele multiprotocol au devenit destul de rare. Cu toate acestea, nu trebuie minimizată importanța lor din perioada de început al dezvoltării rețelelor de calculatoare, deoarece în acea perioadă existau mai multe seturi de protocoale care concurau cu stiva TCP/IP. Se poate spune că ruterele cu stivă dublă, IPv4 și IPv6 pot fi considerate multiprotocol, dar într-un mod mult mai limitat decât un ruter ce cunoștea protocoalele AppleTalk, DECnet, IP și Xerox.[12]

După cum s-a arătat mai sus, la începutul erei rutării (de la mijlocul anilor 1970 până la mijlocul anilor 1980) pe post de rutere erau folosite minicalculatoare. Deși calculatoarele obișnuite pot fi folosite ca rutere, dispozitivele moderne sunt mașini extrem de specializate, de multe ori cu hardware dedicat care să accelereze atât funcțiile de bază (comutarea pachetelor) cât și funcțiile speciale (de exemplu criptarea IPsec).[13]

Cu toate acestea, pentru cercetare și alte aplicații sunt folosite în continuare rutere făcute din calculatoare cu Linux și Unix, ce rulează aplicații cu sursă deschisă. Deși sistemul de operare pentru rutere de la Cisco (numit IOS) a fost creat de la zero special pentru dispozitive de rețea, alte sisteme de operare pentru rutere, precum cele de la Juniper și Extreme Networks sunt variante extrem de adaptate pe Unix (mai exact FreeBSD[14], respectiv Linux[15]).

Informații generale[modificare | modificare sursă]

Ruter de nucleu (engleză core router)

]

Ruterele conțin în general un sistem de operare specializat (ca de exemplu IOS de la Cisco,[16] Junos de la Juniper[17] sau XOS de la Extreme Networks[18]), RAM, NVRAM, memorie flash, unul sau mai multe procesoare, precum și cel puțin două interfețe de rețea.

Ruterele de vârf pot conține mai multe procesoare și ASIC-uri specializate în comutarea de pachete. Sistemele extensibile bazate pe șasiuri, cum ar fi Avaya ERS-8600, au mai multe ASIC-uri pe fiecare modul și permit o mare varietate de porturi pentru rețele locale sau metropolitane, precum și conexiuni personalizate. Pentru situațiile în care traficul este mai redus și costul este mai important sunt folosite rutere mai simple. Folosind un software specializat (precum Untangle, SmoothWall, XORP sau Quagga), orice calculator personal poate deveni un ruter (poate oferi funcționalitatea de ruter).

Funcționare[modificare | modificare sursă]

Procesul de rutare al unui pachet de date

Procesul de rutare are două părți distincte:[19][20] determinarea căii optime, în care ruterul folosește informațiile din tabela de rutare (inclusiv cele introduse de protocoalele de rutare) pentru a învăța interfața de ieșire cea mai potrivită pentru a trimite pachetele la o anumită destinație și comutarea pachetelor, care asigură trimiterea unui pachet primit pe o interfață (de intrare) pe interfața de ieșire optimă.

Determinarea căii optime[modificare | modificare sursă]

Acestă parte a procesului de rutare duce la crearea unei tabele de rutare, care conține adresa rețelei și masca de rețea, adresa următorului ruter și/sau interfața de ieșire pentru destinația respectivă, precum și metrica și distanța administrativă. Rețelele sunt plasate în tabela de rutare în ordinea descrescătoare a măștii de rețea (de la rețele mai mici la rețele mai mari), iar ruterul le parcurge liniar.[20]

Metrica și distanța administrativă sunt cele două metode de diferențiere între diferitele rute către aceeași destinație. Distanța administrativă face diferența între diferitele tipuri de rute (statice, dinamice și direct conectate). Felul în care se calculează metrica diferă de la un protocol de rutare la altul, însă în general sunt incluse informații ca întârzierea, lărgimea de bandă, distanța, cantitatea de trafic.[20] Metrica este relevantă doar pentru rute generate de același protocol de rutare, de aceea are o importanță mai mică decât distanța administrativă.[21]

Pentru rutele dinamice, procesul de alegere a căii optime este următorul[20]:

  1. Dacă rețeaua destinație nu există încă în tabela de rutare, aceasta este introdusă;
  2. Dacă rețeaua destinație este o subrețea a unei intrări din tabela de rutare, sunt comparate distanța administrativă și metrica:
    1. Dacă acestea sunt identice sau ruta existentă are o metrică mai bună, nu se efectuează nicio modificare;
    2. Dacă ruta nouă este mai bună, se introduce o nouă intrare în tabela de rutare, înaintea vechii intrări, astfel încât ruterul să folosească această rută;
  3. Dacă rețeaua există deja în tabela de rutare, iar noua rută este mai bună, intrarea este înlocuită.

Ruterele mențin starea rutelor în tabela de rutare, dar nu și starea pachetelor individuale, deoarece acest lucru ar însemna o întârziere a comutării. Mai mult, unele rutere folosesc pentru identificarea rapidă a interfețelor de ieșire o a doua tabelă, numită FIB (engleză forward information base). Această tabelă este optimizată pentru căutarea rapidă a interfețelor.[22]

Comutarea pachetelor[modificare | modificare sursă]

Comutarea pachetelor este funcția de bază a unui ruter. Pentru a o îndeplini corespunzător, ruterul trebuie să efectueze următoarele operații[20]:

  1. să examineze fiecare pachet sosit și să determine tipul acestuia precum și adresa destinație,
  2. să determine adresa următorului ruter (sau a destinației) către care respectivul pachet trebuie trimis, prin examinarea tabelei de rutare,
  3. să determine interfața pe care urmează să fie transmis pachetul,
  4. să determine adresa de nivel legătură de date a următorului ruter (sau a destinației),
  5. să reîncapsuleze pachetului cu informațiile de nivel doi și trei corespunzătoare și să-l trimită pe interfața către destinație.

Crearea tabelei de rutare a fost descrisă în secțiunea anterioară. Dacă tabela nu conține interfața, ci doar adresa următorului ruter (next hop), este aleasă interfața aflată în aceeași rețea cu ruterul următor. Dacă adresa de nivel legătură de date a acestuia nu este prezentă în tabela ARP a interfeței, se face o cerere ARP pentru a o obține. Înainte de a transmite pachetul, este decrementată valoarea câmpului TTL (time-to-live) din antetul IP, pentru a evita buclele de rutare.[20]

Pentru forwardarea pachetelor IP, designul ruterelor încearcă să minimizeze informațiile despre starea pachetelor păstrate de ruter. Odată ce un pachet a fost expediat, ruterul nu va mai reține niciun fel de informație despre acel pachet. Pachetele lipsă și corectarea erorilor sunt atributele nivelului transport.[22]

Printre cele mai importante decizii care trebuie luate în cadrul procesului de comutare este cum se procedează în cazul congestiei (adică atunci când sosesc mai multe pachete decât poate procesa ruterul). În Internet sunt folosite trei politici pentru această situație: aruncarea pachetelor din coadă care depășesc dimensiunea memoriei tampon a ruterului (metodă cunoscută sub numele din engleză tail drop), aruncarea pachetelor pe baza probabilității de apariție a congestiei în ruter (engleză Random early detection) și aruncarea pachetelor pe baza probabilității de apariție a congestiei pe o legătură/protocol (engleză Weighted random early detection). Diferența dintre a doua și a treia metodă constă în faptul că funcția de probabilitate folosită și pragul de la care începe aruncarea pachetelor pot fi diferite în funcție de interfața de intrare sau de protocolul rutat.[23]

Tipuri de rutere[modificare | modificare sursă]

Rutere individuale[modificare | modificare sursă]

Pentru conectarea reședințelor individuale și a firmelor mici la serviciile de internet prin cablu, DSL sau la rețele de cartier se folosesc rutere de mici dimensiuni și nu foarte puternice. Majoritatea au inclus și un switch, iar unele dintre aceste rutere suportă și conexiuni wireless, în special prin rețele Wi-Fi, dar și GPRS, UMTS sau WiMAX. [24]

Deși ruterele individuale prezente în acest moment pe piață asigură conectivitatea la rețeaua locală la viteze de 100/1000 Mbps, multe dintre ele nu sunt capabile să ruteze un asemenea volum de trafic.[25] Acest compromis a fost făcut deoarece majoritatea conexiunilor rezidențiale la Internet sunt limitate ca viteză de către furnizor.

Funcționalitatea ruterelor pentru acasă este în general similară cu a celorlalte rutere, dar acestea mai au o funcție suplimentară, și anume transformarea adreselor IP a tuturor calculatoarelor din rețea într-o singură adresă IP publică, prin NAT. Acest lucru face ca, din Internet, întreaga rețea locală să arate ca un singur calculator, însă limitează numărul conexiunilor simultane (și implicit al utilizatorilor) pe care le poate suporta ruterul.[26]

Rutere pentru companii[modificare | modificare sursă]

Ruter Cisco 1800

Companiile folosesc rutere de toate dimensiunile. Cele mai puternice se află de obicei în cadrul companiilor de telecomunicații și al centrelor de cercetare, dar multe companii mari au la rândul lor nevoie de rutere puternice.

Multe companii, în special cele cu o răspândire geografică mare, folosesc un model de achiziție a ruterelor cu trei nivele: acces, distribuție și nucleu (core).[27]

Nivelul acces[modificare | modificare sursă]

Nivelul acces este punctul în care utilizatorii accesează rețeaua. El oferă lățime de bandă divizată între utilizatori și filtrare la nivelul 2 al stivei OSI, precum și agregarea rutelor expuse de acest nivel către nivelurile suplimentare. Ruterele de la acest nivel sunt asemănătoare ca performanțe cu ruterele pentru acasă și sunt plasate la locații de la marginea rețelei, care nu au nevoie de reguli complicate de rutare.[27]

Nivelul distribuție[modificare | modificare sursă]

Nivelul distribuție asigură separația între nivelul acces și nivelul nucleu. Ruterele de nivel distribuție agregă traficul de la mai multe rutere de acces, fie din aceeași locație, fie din locații diferite, către nodul central al rețelei companiei. Ele asigură și comutarea pachetelor între diferitele VLANuri ale companiei.

Ruterele de nivel distribuție sunt deseori responsabile de asigurarea calității serviciilor într-o rețea cu arie geografică mare (WAN), astfel încât pot avea mai multe interfețe WAN, multă memorie și putere de procesare. Acest tip de rutere poate oferi acces și la anumite grupuri de servere sau chiar la unele rețele externe. Dacă acest lucru se întâmplă, ruterele trebuie incluse în politica de securitate a companiei. De aceea, sunt folosite firewalluri sau alte dispozitive de securitate. Când firma este concentrată într-un singur campus, este posibil ca acest nivel să lipsească. În acest caz, ruterele de acces, conectate la diferitele rețele locale, sunt interconectate prin rutere de nucleu.[27]

Nivelul nucleu[modificare | modificare sursă]

Ruter de nucleu Cisco RS1

În cadrul companiei, un ruter de nucleu trebuie să asigure rutarea cu cea mai mare viteză a pachetelor, fără să le manipuleze în niciun fel, fiind deci optimizate pentru viteză. Un asemenea ruter interconectează ruterele de nivel distribuție din diferitele locații ale companiei. Când compania nu are un sediu central unic, acest nivel poate lipsi, rolul său fiind preluat de rețeaua de telecomunicații care asigură interconectarea diferitelor sedii. În acest caz, nivelul distribuție devine nivelul superior al arhitecturii.[27]

Rutere pentru rețele de telecomunicații[modificare | modificare sursă]

În principiu, companiile de telecomunicații vor folosi în cadrul propriilor rețele o arhitectură asemănătoare cu cea descrisă în secțiunea de mai sus. Diferențele vor consta în numărul ruterelor și în felul cum se face interconexiunea cu alte rețele. [27]

Majoritatea companiilor au un număr mic de rețele cu care se conectează (în principiu cele ale ISPurilor care furnizază internet companiei), pe când companiile de telecomunicații au interesul să aibă legături directe cu cât mai multe rețele similare, pentru a micșora latența (întârzierea) pachetelor către orice locație de pe glob.

Ruterele folosite pentru interconectarea între providerii de Internet (mai exact între două sisteme autonome) și alte rețele mari vor folosi aproape întotdeauna protocolul BGP pentru a schimba informații[20] . În RFC 4098 sunt definite tipurile de rutere ce folosesc BGP. Ruterele PE (Provider Edge Router) sunt plasate la marginea unei rețele de ISP și folosesc eBGP pentru a discuta cu un ruter dintr-un alt sistem autonom (AS). Ruterele SE (Subscriber Edge Router) sunt plasate la marginea rețelei unui client și folosesc eBGP pentru a discuta cu un ruter al providerului. De obicei, acest ruter aparține clientului.[28]

Ruter de graniță între provideri interconectează ISPuri, păstrând conexiuni BGP cu alte rutere din ASul celuilalt provider, iar ruterele de nucleu sunt plasate în interiorul rețelei, nu la periferia sa, și comunică prin iBGP cu alte rutere de nucleu sau de la marginea rețelei. Aceste rutere pot avea și alte funcții în cadrul unor rețele private virtuale bazate pe o combinație de BGP și MPLS.[29]

Reprezentare[modificare | modificare sursă]

Simbolul pentru ruter

În cadrul diagramelor de rețele, pentru a reprezenta un ruter pot fi folosite diferite imagini. Fiecare producător oferă imagini de mici dimensiuni cu produsele sale care pot fi folosite în programele de creare de diagrame.

Compania Cisco a pus în mod liber la dispoziția utilizatorilor o bibliotecă de simboluri ale diferitelor elemente de rețea, în care pentru a reprezenta ruterul se folosește un disc cu 4 săgeți, orientate ca în imaginea alăturată.[30] Datorită poziției dominante a companiei, imaginile din această bibliotecă sunt folosite în multe lucrări de specialitate, precum și în anumite cursuri universitare.

Vezi și[modificare | modificare sursă]

Bibliografie[modificare | modificare sursă]

  • Rughiniș, Răzvan; Deaconescu, Răzvan; Dobrescu, Mihai; Iconaru, Cristian (2007). Administrarea rețelelor locale. București: Editura Printech. ISBN 978-973-718-541-9 .
  • Richard A. Deal (2005). Cisco router firewall security. Indianapolis: Cisco Press. ISBN 1-58705-175-3 .

Note[modificare | modificare sursă]

  1. ^ ro Rughiniș R., Deaconescu R., Milescu G., Bardac M.. Utilizarea Sistemelor de Operare. București: Editura Printech. ISBN 9737187881, 9789737187888. http://books.google.com/books?id=KNvQniXULV4C&hl=ro&source=gbs_navlinks_s  p. 185.
  2. ^ Rughiniș et. al., Administrarea rețelelor locale, p. 82.
  3. ^ Davies, Shanks, Heart, Barker, Despres, Detwiler, and Riml, „Report of Subgroup 1 on Communication System”, INWG Nota #1.
  4. ^ Pouzin, Louis. „Presentation and Major Design Aspects of the CYCLADES Computer Network”. Proceedings of the NATO Advanced Study Institute on Computer Communication Networks (Noordhoff International Publishing) 1975. http://rogerdmoore.ca/PS/CYCLB.html. 
  5. ^ en Vinton Cerf, Robert Kahn, „Un protocol pentru comunicarea între rețele de pachete”, IEEE Transactions on Communications, volumul 22, numărul 5, mai 1974, pg. 637 - 648.
  6. ^ en David Boggs, John Shoch, Edward Taft, Robert Metcalfe, „PUP: O arhitectură inter-rețele”, IEEE Transactions on Communications, volumul 28, numărul 4, aprilie 1980, pg. 612- 624.
  7. ^ en Craig Partridge, S. Blumenthal, „Rețele de date la BBN”; IEEE Annals of the History of Computing, volumul 28, numărul 1; ianuarie-martie 2006.
  8. ^ en „Valea tocilarilor: Cine a inventat cu adevărat ruterul multiprotocol și de ce ar trebui să ne pese?”, Public Broadcasting Service, accesat la 11 august 2007.
  9. ^ en „Router Man”, NetworkWorld, accesat la 22 iunie 2007.
  10. ^ David D. Clark, „Implementarea rețelei campus M.I.T.”, CCNG-2, Campus Computer Network Group, M.I.T., Cambridge, 1982, p. 26.
  11. ^ Pete Carey, „Povestea adevărată a unui start-up: povestea atât de des spusă a lansării Cisco fără dramă și intrigi”, San Jose Mercury News, 1 decembrie 2001.
  12. ^ [http://chuckeasttom.com/multiprotocolrouters.pdf Multi Protocol Routers by Chuck Easttom]
  13. ^ Gupta, P.; Lin, S.; McKeown, N. (29 Mar-2 Apr 1998). „Routing lookups in hardware at memory access speeds”. INFOCOM '98. Seventeenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. (IEEE) 3: 1240 - 1247. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=662938. 
  14. ^ Jim Duffy (18 aprilie 2008). „Cisco IOS vs. Juniper JUNOS: Technical differences”. Network World. http://www.techworld.com.au/article/212755/cisco_ios_vs_juniper_junos_technical_differences/. Accesat la 30 ianuarie 2012. 
  15. ^ Extreme Networks puts Linux to work in routing switch”. Network World. 3 mai 2004. http://www.networkworld.com/newsletters/linux/2004/0503linux2.html. .
  16. ^ Richard Deal, p. 103.
  17. ^ en Junos”. juniper.net. http://www.juniper.net/us/en/products-services/nos/junos/. Accesat la 7 ianuarie 2012. 
  18. ^ en ExtremeXOS - ExtremeXOS Network Operating System”. extremenetworks.com. http://www.extremenetworks.com/products/extreme-xos.aspx?refID=2. Accesat la 7 ianuarie 2012. 
  19. ^ en „Cerințe pentru separarea controlului și comutării în rețele IP”, RFC 3654, H. Khosravi & T. Anderson, noiembrie 2003.
  20. ^ a b c d e f g Răzvan Rughiniș: „Proiectarea rețelelor de calculatoare - Rutarea”.
  21. ^ Rughiniș et. al. - Administrarea rețelelor locale, pg. 141-147.
  22. ^ a b Wire Speed Packet Classification Without TCAM: One More Register (And A Bit Of Logic) Is Enough Q. Dong et al., ACM SIGCOMM 2006
  23. ^ S. Floyd: RFC 2914: Congestion Control Principles
  24. ^ en D-LINK DIR-450 3G mobile router
  25. ^ en Router Charts”. smallnetbuilder.com. http://www.smallnetbuilder.com/component/option,com_chart/Itemid,189/chart,121/. Accesat la 7 ianuarie 2012. 
  26. ^ L. Howard: Internet Draft: Homenet Routing Requirements
  27. ^ a b c d e Oppenheimer, Priscilla (2004). Top-Down Network Design. Indianapolis: Cisco Press. ISBN 1587051524 .
  28. ^ „Terminology for Benchmarking BGP Device Convergence in the Control Plane”, RFC 4098, H. Berkowitz, E. Davies, S. Hares, P. Krishnaswamy, M. Lepp
  29. ^ en „BGP/MPLS VPNs”, RFC 2547, E. Rosen and Y. Rekhter, aprilie 2004.
  30. ^ en Network Topology Icons”. cisco.com. http://www.cisco.com/web/about/ac50/ac47/2.html. Accesat la 7 ianuarie 2012.