|
Cuprins
Interfete de retea
Adrese IP
Cautarea adreselor
Rutarea IP
Vom intra acum in amanuntele de care veti avea nevoie cand va veti conecta calculatorul la o retea TCP/IP. Astfel vom discuta despre adrese IP, nume de gazda precum vom discuta si cateva chestii despre rutare. Acest capitol va va oferi informatiile de baza de care aveti nevoie pentru a intelege configuratia pe care doriti sa o realizati, in timp ce capitolele urmatoare se vor ocupa de instrumentele necesare pentru realizarea configuratiei dorite.
Pentru a ascunde diversitea echipamentelor ce pot fi folosite intr-o retea, TCP/IP defineste o interfata abstracta prin care sunt accesate dispozitivele fizice (hardware). Aceasta interfata ofera o multime de operatii care sunt identice pentru toate tipurile de dispozitive fizice si care in principal se ocupa cu primirea si trimiterea pachetelor.
Fiecarui dispozitiv periferic pe care veti vrea sa-l folositi pentru retea, ii va corespunde o interfata in nucleu. De exemplu interfetele Ethernet se numesc eth0 si eth1 iar interfetele SLIP se numesc sl0, sl1, etc. Aceste nume de interfete sunt folosite pentru configurare, si anume atunci cand veti vrea sa va referiti la un dispozitiv fizic particular. Ele nu au nici o insemnatate mai presus de aceasta.
Pentru a putea fi folosita intr-o retea TCP/IP, o interfata trebuie sa aiba asociata o adresa IP care foloseste pentru identificarea interfetei respective cand comunica cu restul lumii. Aceasta adresa este diferita de numele interfetei pe care l-am mentionat adineauri; daca comparam o interfata cu o usa, atunci adresa ei este ca placuta cu numele lipita pe ea.
Desigur sunt si alti parametri ai dispozitivului care pot fi setati; unul dintre acestia este marimea maxima a unei datagrame ce poate fi procesata de un anumit dispozitiv hardware, care se mai numeste si MTU (Maximal Transfer Unit). Vom introduce mai tarziu si alte caracteristici ale dispozitivelor de retea.
Precum am mentionat in capitolul precedent, adresele folosite in protocolul IP sunt numere pe 32 de biti. Fiecare masona trebuie sa aiba un numar unic. Daca aveti o retea locala ce nu are conexiune TCP/IP cu alte retele puteti sa va alegeti numere dupa cum doriti. Insa, pentru masini legate la Internet, numerele sunt date de catre o organizatie centrala, si anume NIC (Network Information Center).
Pentru citirea mai usoara, adresele IP sunt impartite in patru numere de 8 biti numite octeti. De exemplu, quark.physics.groucho.edu are adresa IP 0x954C0C04 care este scrisa ca 149.76.12.4. Acest format este deseori numit ????dotted quad notation?????.
Alt motiv pentru care se foloseste aceasta notatie este ca adresele IP sunt impartite in numere de retea, care sunt continute in octetii din fata, si numere de gazde, care reprezinta restul. Cand cereti de la NIC adrese IP, nu veti obtine cate o adresa pentru fiecare gazda pe care veti vrea sa o folositi ci veti obtine un numar de retea si veti putea folosi toate adresele IP valide in cadrul acestui retele.
In functie de dimensiunea retelei, partea din adresa IP care reprezinta numarul de gazda (host number) poate fi mic sau mare. Pentru diferitele nevoi, exista cateva clase de retele, definind diferite impartiri ale adreselor IP:
Clasa A cuprinde retelele de la 1.0.0.0 pana la 127.0.0.0. Numarul de retea este continut in primul octet. Aceasta ofera un 24 de biti pentru numarul gazdei, permitand in jur de 1,6 milioane de gazde.
Clasa B contine retelele de la 128.0.0.0 pana la 191.255.0.0; numarul de retea este in primii doi octeti. Aceasta permite 16320 retele cu cate 65024 gazde fiecare.
Clasa C contine retelele de la 192.0.0.0 pana la 223.255.255.0 cu numarul de retea fiind continut in primii trei octeti. Aceasta permite existenta a aproape 2 milioane de retele cu cate 254 de gazde fiecare.
Clasele D,E si F contin adrese intre 224.0.0.0 pana la 254.0.0.0 si sunt fie experimentale fie sunt rezervate pentru viitor si nu specifica nici o retea.
Daca ne intoarcem la exemplul din capitolul precedent, vedem ca 149.76.12.4, adresa lui quark, este o adresa de clasa B.
Poate ca ati observat ca nu toate valorile din listele de mai sus se puteau folosi ca adrese de gazde. Aceasta este pentru ca numerele de gazde cu toti octetii 0 sau 255 sunt rezervate pentru scopuri speciale. O adresa unde toate partile corespunzatoare gazdei sunt zero se numeste adresa de retea iar daca toate partile corespunzatoare gazdei sunt 1 se numeste adresa broadcast????. Aceasta din urma se refera simultan la toate gazdele dintr-o anumita retea. Astfel 149.76.255.255 nu este o adresa de gazda valida, dar se refera la toate gazdele retelei 149.76.0.0.
Exista doua adrese de retea ce sunt rezervate, si anume 0.0.0.0 si 127.0.0.0. Prima se numeste ruta implicita (default route), iar cea din urma se numeste adresa loopbak????. Ruta implicita are legatura cu felul in care IP-ul ruteaza datagramele, despre care vom vorbi mai jos.
Reteaua 127.0.0.0 este rezervata pentru traficul IP local catre gazda locala. De obicei, adresa 127.0.0.1 va fi asociata unei interfete speciale numita interfata loopback , care se comporta ca un circuit inchis. Orice pachet IP trimis prin aceasta interfata, va fi returnat ca si cum ar fi venit de la o masina din retea. Acesta va ofera posibilitatea sa dezvoltati si sa testati software de retea fara sa folositi o retea reala. Alta aplicatie folositoare este cand vreti sa folositi software de retea pe o masina care nu este in retea. Aceasta nu este atat de neobisnuit pe cat suna; de exemplu multe gazde UUCP nu au conectivitate IP de loc, insa vor rula serverul de news INN. Pentru a functiona bine, INN cere interfata loopback.
Acum ca ati vazut cum sunt construite adresele de retea IP, poate va veti intreba cum sunt ele folosite intr-o retea Ethernet pentru a comunica cu alte gazde. La urma urmei protocolul Ethernet identifica gazdele printr-un numar pe 6 octeti care nu are nimic in comun cu o adresa IP. Din cauza aceasta este nevoie de un mecanism pentru a face legatura intre adrese IP si adrese Ethernet. Acesta este asa numitul Adress Resolution Protocol (ARP) - protocol de cautare al adreselor . De fapt ARP nu este legat de Ethernet neaparat ci este folosit si la alte tipuri de retele ca de exemplu la retelele radio. Ideea care sta la baza ARP este ceea ce fac cei mai multi oameni cand vor sa-l gaseasca pe dl X intre 150 de oameni: merg si il striga pe nume fiind sigur ca acesta va raspunde daca este acolo.
Cand ARP vrea sa gaseasca adresa Ethernet corespunzatoare unei adrese IP, foloseste o proprietate a protoculului Ethernet numita 'raspandire' (broadcasting), cand o datagrama este adresata simultan tuturor statiilor din retea. Diagrama aceasta contine o intrebare pentru a afla adresa IP. Fiecare gazda din retea compara adresa IP din datagrama primita cu propria adresa IP, si daca se potrivesc ii intoarce un raspuns ARP gazdei care a facut cererea. Aceasta gazda poate extrage acum, din raspuns, adresa Ethernet.
Desigur va puteti intrba cum poate stii o gazda care din milioanele de masini cu Ethernet din lume este gazda cautata si cum poate stii ca aceasta poseda interfata Ethernet. Aceste intrebari isi afla raspunsul in ceea ce se numeste rutare (routing), care se ocupa cu gasirea locatiei fizice a unei gazde intr-o retea. Acesta va fi subiectul urmatoarelor sectiuni.
Pentru moment sa mai vorbim un pic despre ARP. Odata ce o gazda a descoperit o adresa Ethernet, o va tine minte astfel incat sa nu mai trebuiasca sa intrebe din nou data viitoare cand va vrea sa trimita o datagrama gazdei cu pricina. Insa nu este bine sa pastreze acesta informatie totdeauna; de exemplu gazda de la distanta isi poate schimba placa de retea din cauza problemelor tehnice, deci intrarea ARP devine invalida. Pentru a forta alta intrebare, intrarile in memoria ARP trebuiesc sterse din cand in cand.
Cateodata este necesara gasirea adresei IP asociate unei adrese Ethernet date. Aceasta se intampla cand o masina fara disc vrea sa booteze de pe un server din retea, situatie des intalnita in retelele locale. On client fara disc nu are nici o informatie despre el insusi - in afara de adresa Ethernet! Asa ca va trimite un mesaj raspandit (broadcast) continand o rugaminte catre serverul de boot pentru a-i spune adresa sa IP. Pentru aceasta exista alt protocol numit Reverse Adress Resolution Protocol (RARP) . Impreuna cu protocolul BOOTP, el defineste metoda prin care clientii fara disk pot boota de pe un server din retea.
Cand scrieti o scrisoare cuiva, de obicei puneti adresa completa pe plic, specificand tara, codul postal, etc. Dupa ce puneti scrisoarea in cutia postala, serviciul postal o va duce la destinatie: ea va fi trimisa in tara indicata, tara al carei serviciu de posta o va trimite in regiunea specificata, etc. Avantajul acestei scheme ierarhice este evident: oriunde veti trimite scrisoarea serviciul local va stii in mare directia in care sa trimita scrisoarea insa nu trebuie sa se preocupe pe ce cale va ajunge scrisoarea pana la distinatie.
Retelele IP sunt structurate intr-un mod analog. Intregul Internet este format dintr-un numar de retele chemate sisteme autonome. Fiecare astfel de sistem realizeaza rutarea interna intre membrii ei astfel incat sarcina trimiterii datagramei este redusa la gasirea unei cai catre reteaua din care face parte gazda destinatara. Aceasta inseamna ca indata ce datagrama este inmanata oricarei gazde din reteaua gazdei destinatare, rutarea va fi facuta mai departe de cartre reteaua insasi.
Aceasta structura este obtinuta prin impartirea adresei IP intr-o parte corespunzatoarei gazdei si intr-o parete corespunzatoare retelei, asa cum am aratat mai sus. Implicit reteaua destinatara este dedusa din partea de retea a adresei IP. Astfel, gazdele cu numere de retea identice ar trebui sa se gaseasca in interiorul aceleiasi retele.
Are sens sa folosim o schema asemanatoare inauntrul unei retele de vreme ce o retea poate fi formata din sute de retele mai mici. Astfel protocolul IP, va da voie sa impartiti o retea IP in mai multe subretele .
O subretea are responsabilitate trimiterii datagramelor anumitor clase de adrese IP din reteaua IP din care face parte. La fel cu clasele A, B sau C ele sunt definite de o parte de retea din adresa IP. Insa acum partea de retea este extinsa astfel incat cuprinde cativa biti din parte de gazda. Numarul de biti ce sunt interpretati ca numarul de subretea este dat de asa numita masca de retea (subnet mask sau netmask) sa. Aceasta este un numar pe 32 de biti care specifica masca de biti pentru partea de retea a adresei IP.
Figura Fig. 2-1 arata cum 149.76.12.4, adresa lui quark este interpretata diferit cand este considerata o retea obisnuita de clasa B, sau cand se folosesc subretele.
Fig. 2-1. Impartirea unei retele de clasa B in subretele
Daca subretelele ar fi numai diviziuni interne ale retelei atunci acestea nu ar fi de mare folos. Subretelele sunt generate de proprietarul retelei pentru a reflecta granitele existente fie ele fizice (intre doua retele Ethernet), administrative (intre doua departamente) sau geografice. Insa aceasta structura afecteaza numai comportarea interna a retelei, si este complet invizibila lumii de afara.