camscape - for excellent IT solutions itkb.ro - IT knowledge base

pentru tonti :: cum functioneaza internetul

Cristian
Cristian M.
TitleCum functioneaza Internetul
TagsInternet, functionare
Desc.Cum functioneaza Internetul
CodeKBCR0003 v1.0
Date16 aprilie 2013

Cum functioneaza Internetul


Aplicatii ale rutarii
 
Daca ati citit Rutare. Concepte si definitii de baza ati inteles functionalitatea de baza a unui router. Sa luam spre exemplu reteaua noastra:
 
 
Dupa cum se vede, Calculatorul 1 are IP-ul 10.254.1.100, masca 255.255.255.0 si ruta implicita 10.254.1.1. Astfel, daca de pe C1 se da ping catre 10.254.1.1, pachetele pleaca pe cablul de retea, prin switch si ajung pe placa de retea a routerului. Daca se da ping catre 10.254.1.200 (acesta este un alt calculator, Calculatorul 2), pachetele pleaca prin cablul de retea, ajung in switch, dupa care, fara sa treaca prin router, se duc la C2. Toate acestea se intampla pentru simplul motiv ca toate cele trei sisteme (routerul, C1 si C2) au adrese IP din aceeasi clasa si au un switch intre ele.
 
Ce se intampla cand de pe C1 se da un ping catre public.freeremotesupport.net ? Ca sa raspundem,
 
Exercitiu 1: public.freeremotesupport.net este in aceeasi clasa IP cu Calculatorul 1? Argumentati. Dar cu IP-ul extern al routerului? Argumentati.
 
Nu, 10.254.1.100/24, 89.238.233.246/30 si 5.35.210.4/32 (nu ii cunoastem clasa, presupunem host) nu sunt in aceeasi clasa IP. Si atunci cum ajung pachetele de la C1 la public.freeremotesupport.net? In mai multe etape:
a. C1 analizeaza pachetul cu destinatia 5.35.210.4 si decide: nu e in clasa cu mine. Il trimite asa cum e pe ruta implicita sperand ca router-ul se va descurca. Se mai spune si "il trimite catre next-hop".
b. Routerul analizeaza pachetul de la 10.254.1.100 catre 5.35.210.4. Routerul are doua clase: 10.254.1.0/24 si 89.238.233.244/30 . Decide: nu e in clasa cu mine. Il trimite asa cum e catre next-hop sperand ca router-ul urmator se va descurca.
c...h. Procesul continua din aproape in aproape, din router in router. Mai precis:
 
root@robuhsrv001:/# traceroute public.freeremotesupport.net
traceroute to public.freeremotesupport.net (5.35.210.4), 30 hops max, 60 byte packets
 1  ip4-89-238-233-245.euroweb.ro (89.238.233.245)  0.696 ms  0.876 ms  1.091 ms
 2  qrli11.qrli1.buh.ew.ro (81.24.28.241)  0.429 ms  0.510 ms  0.333 ms
 3  ewro-qrli1.crli1.buh.ew.ro (81.24.28.229)  0.829 ms  0.690 ms  0.758 ms
 4  GTSTelecom.RoNIX.Ro (217.156.113.9)  1.245 ms  1.107 ms  1.318 ms
 5  r02-as0-0.ard2.ro.gtsce.net (85.9.9.17)  2.402 ms  2.490 ms  2.390 ms
 6  212.146.89.34 (212.146.89.34)  1.823 ms  1.463 ms  1.634 ms
 7  public.freeremotesupport.net (5.35.210.4)  1.784 ms  1.654 ms  1.770 ms
 
i. Pachetul ajunge la 5.35.210.4
 
Simplu, nu?
 
Exercitiu 2: Totusi, nu asa functioneaza Internetul. De ce, ce e gresit in a presupune ca exista o conexiune de la router la router si ca fiecare router are o ruta implicita catre un alt router pentru orice nu cunoaste si atat?
 
Sa mai incercam ceva:
 
root@robuhsrv001:/# traceroute my-01.safecloud.ro
traceroute to my-01.safecloud.ro (193.226.182.158), 30 hops max, 60 byte packets
 1  ip4-89-238-233-245.euroweb.ro (89.238.233.245)  0.678 ms  0.885 ms  0.861 ms
 2  qrli11.qrli1.buh.ew.ro (81.24.28.241)  0.374 ms  0.339 ms  0.471 ms
 3  ewro-qrli1.crli1.buh.ew.ro (81.24.28.229)  0.889 ms  0.757 ms  0.757 ms
 4  GTSTelecom.RoNIX.Ro (217.156.113.9)  1.204 ms  1.077 ms  1.116 ms
 5  85.9.9.186 (85.9.9.186)  2.311 ms  2.241 ms  2.088 ms
 6  193.226.179.82 (193.226.179.82)  1.848 ms  1.560 ms  1.759 ms
 7  robuhsrv001.safecloud.ro (193.226.182.158)  1.939 ms  1.796 ms  1.636 ms
 
193.226.182.158 este un server care este in aceeasi locatie (GTS TELECOM) ca si public.freeremotesupport.net. Si totusi, dupa pasul 4 (GTSTelecom.RoNIX.Ro) pachetul merge pe alta directie, prin alte routere decat primul. Cineva a luat o decizie. Deci nu e asa simplu.
 
 
Cum functioneaza Internetul
 
Ca sa intelegem, sa analizam putin de ce a fost construit defapt Internetul.
 
Prima forma a Internetului, asa cum il cunoastem astazi s-a numit ARPANET. Proiectul a inceput in 1963 in SUA, fiind condus de Advanced Research Projects Agency (de unde ARPA), o agentie a departamentului Apararii a SUA. Da, a inceput in cadru militar. Exista dealtfel un mit in legatura cu ARPANET si anume ca totul a fost gandit pentru a crea un sistem de comunicatii care sa asigure redundanta in cazul unui atac nuclear. Este numai un mit insa, desi structura rezultata chiar acest aspect indeplinea. ARPANET a fost creat de si pentru uzul mediului academic. Erau pur si simplu prea putine sisteme de calcul si pentru a putea coopera la proiecte mari, evident aveau nevoie de interconectare.
 
Asa ca prin 1969 (toamna) a pornit ARPANET-ul. Era constituit din 4 puncte, fiecare in cate o universitate, interconectate intre ele astfel ca fiecare sa poate vorbi cu fiecare. Restul e istorie.
 
In 1985, ARPANET a fost inlocuit de NSFNet (National Science Foundation Network). La scurt timp insa, a aparut o alta revolutie, calculatorul personal. Iar cand acestuia i-a fost atasat un modem, numarul de sisteme interconectate a crescut vertiginos, conducand catre urmatorul pas Internetul asa cum il stim.
 
 
Rutare dinamica
 
Toate modelele de mai sus, si multe altele care au coexistat, au urmarit un aspect foarte important al comunicatiei: interconectarea intre centrele de comunicatii prin legaturi multiple. Astfel, oricare dintre conexiuni nu mai functiona, se poate ajunge de la un centru la altul folosind o ruta alternativa. Adica, Internetul arata defapt asa:
 
 
Punctuletele rosii sunt routere dinamice, punctuletele albastre sunt routere statice, punctuletele albe sunt fie calculatoare fie servere. Fiecare router (in exemplul nostru) are 4 provideri, se conecteaza adica la 4 retele diferite.
 
Cand C1 incearca sa acceseze public.freeremotesupport.net, pachetul va pleca prin ruta implicita, precum in exemplul de mai sus. Mai departe insa se complica. 
 
Rutele pot fi de doua feluri: statice si dinamice. Ceea ce ati invatat pana acum sunt rutele statice. Practic, aceste rute sunt definite, de obicei de catre un administrator al routerului si tocmai datorita acestui status ele sunt relativ putine per router. Deobicei, daca routerul contine numai rute statice, vom observa rute catre retelele aferente placilor de retea plus o ruta implicita, si atat.
 
Rutele dinamice sunt insa cele ce fac Internetul sa functioneze. Ele sunt dinamice deoarece sunt implementate avand la baza un protocol de comunicatie intre routere prin care acestea din urma isi anunta unul altuia schimbari in tipologia retelei.
 
Astfel, pe toate routerele dinamice de mai sus, intregul traiect intre C1 si public.freeremotesupport.net este cunoscut in permanenta si actualizat in functie de starea celorlalte routere dinamice. Astfel, daca unul dintre routere nu mai functioneaza, toate celelalte invata automat o cale de ocolire a acestuia. La fel, daca una dintre conexiuni intre routere este prea incarcata, toate routerele invata automat o cale de ocolire a acesteia.
 
Pentru a putea invata automat aceste stari, dar si pentru a stoca o cantitate imensa de rute, echipamentele folosesc diverse protocoale, printre care:
  • BGP (Border Gateway Protocol)
  • OSPF (Open Shortest Path First)
  • RIP (Routing Information Protocol)
  • IS-IS (Intermediate System - Intermediate System)
 
Din punctul de vedere al rutarii, Internetul este divizat in Autonomous Systems (AS). Un AS este un grup de routere aflate sub o administrare unica, care schimba intre ele informatii privind rutele cunoscute folosind unul dintre protocoalele de rutare. AS-urile sunt de mai multe feluri:
  • STUB AS. Este o retea sau o parte dintr-o retea care nu cunoaste alte retele decat printr-o legatura unica catre toate acestea. Spre exemplu un ISP, impreuna cu toti clientii sai, cu toate routerele din retea, cu conditia ca ISP-ul sa aiba o singura conexiune la Internet, printr-un singur alt AS.
  • TRANSIT AS. Este o retea care are conexiuni la Internet prin mai multe AS-uri si care lasa sa treaca prin ea pachete care provin si se indreapta catre AS externe sale.
  • MULTIHOMED AS. Este o retea care desi are conexiuni la Internet prin mai multe AS-uri, nu lasa sa treaca pachete decat daca acestea sunt fie destinate ei, fie emise din ea.
 
Deci, de fapt nu vorbim despre o discutie intre routere ci intre grupuri de routere care constituie un AS.
 
Protocoalele de comunicare variaza si din punct de vedere al apartenentei la anumite AS-uri.
 
Astfel, un protocol de tip Interior Gateway Protocol (IGP) calculeaza rute in interiorul unui AS. IGP permite routerelor din cadrul unui AS sa comunice intre ele, dar mai important este ca IGP permite, in cazul unui TRANSIT AS, sa se obtina ruta pentru pachetele care tranziteaza AS-ul (sursa si destinatie diferite de clasele din interiorul AS-ului).
 
Intre AS-uri diferite, rutele se distribuie folosind Exterior Gateway Protocol (EGP). Astfel, EGP ajuta routerele dintr-un AS sa determine care este ruta optima de iesire din AS catre alte AS-uri.
 
Astfel, EGP (protocolul BGP) si IGP (protocoalele OSPF, RIP, IS-IS) conlucreaza pentru a face Internetul sa functioneze. 
 
EGP determina AS-ul care trebuie tranzitat de catre un pachet sau care este destinatie finala, iar IGP ruteaza in cadrul AS-ului respectiv pentru a ajunge la routerul final in cadrul AS-ului sau la urmatorul AS.
 
 
Protocolul BGP
 
BGP sau Border Gateway Protocol este un protocol de tip Exterior Gateway Protocol (EGP) care are ca scop distributia de informatii de rutare intre AS-uri.
 
Folosind BGP, routerele schimba informatii cu routerele vecine (din imediata apropiere) referitoare la modalitatea de a ajunge la alte retele. Pur si simplu, routerele isi trimit unele altora seturi de adrese (clase de IP-uri, sau prefixe) pe care ele le pot contacta, impreuna cu next-hop-ul catre care trebuie trimise pachetele pentru a ajunge la aceste clase.
 
In principiu, fiecare router BGP are o tabela de rutare continand prefixe si next-hop cu care acopera intregul Internet. 
 
Dar, routerul BGP nu cunoaste ruta de la inceput pana la sfarsit, stie doar care este next-hop catre destinatia dorita, lasand routerul urmator (acel next-hop) sa preia sarcina. Evident, poate avea mai multe next-hop catre o destinatie si aici apare alegerea. Astfel alegerea rutei se face de fiecare router BGP in functie de disponibilitatea si costul catre un anumit next-hop.
 
Un router BGP al unui AS care este creat in Internet va veni cu o tabela proprie de rutare continand rute statice catre retelele din propriul AS. Aceste rute vor fi trimise catre routerele BGP cu care acest router face peering (se conecteaza direct, sunt next-hop pentru el) iar ca raspuns va primi tabela de rutare continand ... restul Internetului.
 
Bineinteles, routerele BGP pot contine limitari in a importa si exporta rute, functie de setari locale, autentificare, etc.
 
 
Protocolul OSPF
 
OSPF sau Open Shortest Path First este un protocol de tip Interior Gateway Protocol (IGP) care are ca scop distributia de informatii de rutare in interiorului unui AS.
 
OSPF este un protocol de tip link-state, adica routerele schimba informatii privind tipologia retelei cu cei mai apropiati vecini (alte routere). Astfel, in intregul AS, toate routerele vor avea imaginea completa a retelei, putand sa calculeze si sa pastreze ruta optima de la un capat la celalalt pentru o anumita destinatie. Astfel, fata de BGP, ruta optima este aleasa luand in considerare toate hop-urile pana la destinatie, nu numai next-hop.
 
Toate routerele OSPF dintr-un AS pun la comun informatii privind starea lor curenta (interfete functionale, vecini functionali, precum si costul folosirii fiecarei interfete) catre alte routere OSPF folosind mesaje LSA (Link State Advertisement).