You are on page 1of 379

R zvan Rughinis , R zvan Deaconescu

George Milescu Mircea Bardac

Reele locale de calculatoare

Introducere n sisteme de operare

Rzvan Rughini Mihai Caraba

Rzvan Deaconescu Mihai Bucicoiu

Cuprins
0 Reea de calculatoare ...................................................................................................................... 1 0.1 Stiva de protocoale.................................................................................................................. 2 0.2 ncapsularea datelor ................................................................................................................ 3 0.3 Echipamente de reea ............................................................................................................. 4 0.4 Clasificarea reelelor................................................................................................................ 6 0.5 Studiu de caz ........................................................................................................................... 7 0.5.1 Analiza traficului de nivel 2 ............................................................................................. 8 0.5.2 Analiza traficului de nivel 3 ............................................................................................. 8 0.5.3 Analiza traficului de nivel 4 ............................................................................................. 9 0.5.4 Analiza coninutului de date ......................................................................................... 10 0.6 Concluzii ................................................................................................................................ 11 0.6.1 Linux .............................................................................................................................. 11 0.7 ntrebri ................................................................................................................................. 12 1 Nivelul fizic .................................................................................................................................... 13 1.1 Semnale ................................................................................................................................. 13 1.1.1 Semnale analogice ......................................................................................................... 13 1.1.2 Semnale digitale ............................................................................................................ 15 1.1.3 Codificri ale semnalelor ............................................................................................... 16 1.1.4 Transmisia datelor digitale folosind semnale analogice ............................................... 20 1.1.5 Multiplexarea semnalului .............................................................................................. 23 1.1.6 Caracteristici ale semnalului.......................................................................................... 25 1.2 Medii de transmisie ............................................................................................................... 26 1.2.1 Cablul coaxial ................................................................................................................. 27 1.2.2 Cablul torsadat .............................................................................................................. 27 1.2.3 Fibra optic .................................................................................................................... 32 1.2.4 Caracteristici ale mediilor de transmisie ....................................................................... 38 1.2.5 Interfee de mare vitez ................................................................................................ 40 1.3 Utilitare pentru gestiunea nivelului fizic ............................................................................... 40 1.3.1 Linux .............................................................................................................................. 41 1.3.2 Cisco IOS ........................................................................................................................ 43 1.3.3 Windows ........................................................................................................................ 44 1.4 Scenarii de utilizare ............................................................................................................... 44 1.5 Studiu de caz ......................................................................................................................... 46 1.6 Concluzii ................................................................................................................................ 47 1.6.1 Linux .............................................................................................................................. 48 1.6.2 Cisco IOS ........................................................................................................................ 48 1.6.3 Windows ........................................................................................................................ 48 1.7 ntrebri ................................................................................................................................. 49 1.8 Referine ................................................................................................................................ 50 2 Reele Ethernet ............................................................................................................................. 51 2.1 Accesul la mediu .................................................................................................................... 51 2.1.1 Reele Ethernet n mediu partajat................................................................................. 52 2.1.2 Full-duplex Ethernet ...................................................................................................... 53 2.2 ncapsularea datelor n reelele Ethernet ............................................................................. 54 2.2.1 Adresarea MAC.............................................................................................................. 54 2.2.2 Formatul cadrelor Ethernet ........................................................................................... 55 2.2.3 Caracteristici ale reelelor Ethernet .............................................................................. 56 2.2.4 FastEthernet i Gigabit Ethernet ................................................................................... 56 2.2.5 Ethernet n reele WAN ................................................................................................. 58

ii | R e e l e l o c a l e d e c a l c u l a t o a r e 2.3 Comutarea cadrelor n reele Ethernet ................................................................................. 60 2.3.1 Rolul unui switch ........................................................................................................... 60 2.3.2 Procesul de nvare ...................................................................................................... 61 2.3.3 Procesul de comutare a cadrelor .................................................................................. 62 2.3.4 Metode de comutare .................................................................................................... 63 2.3.5 Tratarea traficului de multicast ..................................................................................... 64 2.3.6 Impactul difuzrilor i al coliziunilor .............................................................................. 64 2.4 Redundana n reele Ethernet .............................................................................................. 66 2.4.1 Spanning Tree Protocol ................................................................................................. 67 2.4.2 Reguli i roluri n convergen ....................................................................................... 67 2.4.3 Exemplu de topologie de STP ........................................................................................ 68 2.4.4 Criterii de reconvergen .............................................................................................. 70 2.4.5 Variante de STP ............................................................................................................. 71 2.5 Utilitare pentru gestiunea reelelor Ethernet ....................................................................... 72 2.5.1 Linux .............................................................................................................................. 72 2.5.2 Cisco IOS ........................................................................................................................ 73 2.5.3 Windows ........................................................................................................................ 73 2.6 Scenarii .................................................................................................................................. 76 2.6.1 Comutarea cadrelor n interiorul reelei locale ............................................................. 76 2.6.2 STP ................................................................................................................................. 77 2.7 Studiu de caz ......................................................................................................................... 80 2.7.1 Tratarea jumbo frames .................................................................................................. 80 2.7.2 RSTP ............................................................................................................................... 82 2.8 ntrebri ................................................................................................................................. 85 2.9 Referine ................................................................................................................................ 86 3 Protocolul IPv4 .............................................................................................................................. 87 3.1 Pachete IPv4 .......................................................................................................................... 87 3.1.1 Clase de adrese.............................................................................................................. 89 3.1.2 Masca de reea .............................................................................................................. 91 3.2 Protocolul ARP ....................................................................................................................... 94 3.3 DHCP ...................................................................................................................................... 99 3.4 Configurarea protocolului IPv4 ........................................................................................... 100 3.4.1 Linux ............................................................................................................................ 100 3.4.2 Cisco IOS ...................................................................................................................... 106 3.4.3 Windows ...................................................................................................................... 108 3.5 Scenarii de utilizare ............................................................................................................. 114 3.6 Studiu de caz ....................................................................................................................... 116 3.6.1 APIPA ........................................................................................................................... 116 3.6.2 DHCP Relay .................................................................................................................. 117 3.7 Concluzii .............................................................................................................................. 118 3.7.1 Linux ............................................................................................................................ 118 3.7.2 Cisco IOS ...................................................................................................................... 119 3.7.3 Windows ...................................................................................................................... 119 3.8 ntrebri ............................................................................................................................... 120 3.9 Referine .............................................................................................................................. 120 4 Protocolul IPv6 ............................................................................................................................ 121 4.1 Adresarea IPv6..................................................................................................................... 121 4.1.1 Apariia i migrarea la protocolul IPv6 ........................................................................ 121 4.1.2 Scrierea adreselor IPv6 ................................................................................................ 124 4.1.3 Clasificarea adreselor IPv6 .......................................................................................... 125 4.1.4 Subnetarea adreselor IPv6 .......................................................................................... 130 4.2 Descrierea pachetelor IPv6 ................................................................................................. 132

C u p r i n s | iii 4.2.1 Antetul IPv6 ................................................................................................................. 132 4.2.2 Pachete de tip ICMP .................................................................................................... 134 4.2.3 Protocolul Neighbor Discovery Protocol ..................................................................... 135 4.3 Configurarea adreselor IPv6 ................................................................................................ 137 4.3.1 Linux ............................................................................................................................ 137 4.3.2 Cisco IOS ...................................................................................................................... 137 4.3.3 Windows ...................................................................................................................... 137 4.4 Scenarii de folosire .............................................................................................................. 139 4.4.1 Topologie folosind configurare automat ................................................................... 139 4.4.2 Topologie avansat IPv6 .............................................................................................. 140 4.5 Studiu de caz ....................................................................................................................... 141 4.6 Concluzii .............................................................................................................................. 144 4.6.1 Linux ............................................................................................................................ 144 4.6.2 Cisco IOS ...................................................................................................................... 144 4.6.3 Windows ...................................................................................................................... 145 4.7 ntrebri ............................................................................................................................... 145 4.8 Referine .............................................................................................................................. 146 5 Optimizarea reelelor locale ........................................................................................................ 147 5.1 Definirea reelelor locale virtuale ....................................................................................... 148 5.1.1 Limitri ale topologiilor Ethernet cu un singur domeniu de broadcast ...................... 148 5.1.2 Tipuri de VLAN-uri ....................................................................................................... 150 5.1.3 Tipuri de legturi i identificarea cadrelor dintr-un VLAN n reea ............................. 150 5.1.4 Tipuri de VLAN-uri i distribuirea lor n reea.............................................................. 154 5.1.5 Rutarea ntre reele locale virtuale ............................................................................. 155 5.2 Agregarea legturilor de nivel 2 .......................................................................................... 156 5.2.1 Considerente generale ................................................................................................ 156 5.2.2 Distribuia traficului pe legturi agregate ................................................................... 157 5.2.3 Protocoale de negociere a legturilor agregate .......................................................... 158 5.3 Securizarea reelelor locale ................................................................................................. 159 5.3.1 Limitarea numrului de adrese MAC........................................................................... 159 5.3.2 DHCP snooping ............................................................................................................ 160 5.3.3 Prevenirea atacurilor de tip ARP poisoning................................................................. 162 5.3.4 Controlul storm-urilor n cadrul reelei ....................................................................... 164 5.4 Utilitare................................................................................................................................ 164 5.4.1 Linux ............................................................................................................................ 164 5.4.2 Cisco IOS ...................................................................................................................... 166 5.5 Scenariu ............................................................................................................................... 171 5.6 Studiu de caz ....................................................................................................................... 177 5.6.1 Rutare inter-VLAN pe Linux ......................................................................................... 177 5.6.2 Multiple Spanning Tree Protocol................................................................................. 178 5.7 Concluzii .............................................................................................................................. 181 5.7.1 Linux ............................................................................................................................ 182 5.7.2 Cisco IOS ...................................................................................................................... 182 5.8 ntrebri ............................................................................................................................... 183 5.9 Referine .............................................................................................................................. 184 6 Rutare .......................................................................................................................................... 185 6.1 Rolul unui ruter ................................................................................................................... 185 6.1.1 Procesul de rutare ....................................................................................................... 186 6.1.2 Tipuri de rute ............................................................................................................... 190 6.1.3 Construirea tabelei de rutare ...................................................................................... 192 6.1.4 Agregarea rutelor ........................................................................................................ 193 6.2 Protocoale de rutare ........................................................................................................... 194

iv | R e e l e l o c a l e d e c a l c u l a t o a r e 6.2.1 Clasificarea protocoalelor de rutare............................................................................ 195 6.2.2 Protocolul RIP .............................................................................................................. 197 6.2.3 Protocolul BGP............................................................................................................. 197 6.3 Comunicaia din reeaua local ........................................................................................... 198 6.3.1 Default Gateway .......................................................................................................... 198 6.3.2 Proxy ARP .................................................................................................................... 199 6.4 Utilitare pentru gestiunea procesrii de nivel reea ........................................................... 200 6.4.1 Linux ............................................................................................................................ 200 6.4.2 Cisco IOS ...................................................................................................................... 202 6.4.3 Windows ...................................................................................................................... 204 6.5 Scenarii ................................................................................................................................ 206 6.5.1 Configurarea rutrii statice ......................................................................................... 206 6.5.2 Modificarea ncapsulrii datelor ................................................................................. 211 6.6 Studiu de caz ....................................................................................................................... 212 6.6.1 Depanarea unei conexiuni la Internet ......................................................................... 212 6.7 ntrebri ............................................................................................................................... 215 6.8 Referine .............................................................................................................................. 216 7 Securizarea reelei ....................................................................................................................... 217 7.1 Nivelul transport.................................................................................................................. 217 7.1.1 TCP vs. UDP.................................................................................................................. 218 7.1.2 TCP descrierea protocolului ..................................................................................... 219 7.1.3 ICMP ............................................................................................................................ 220 7.2 Firewall ................................................................................................................................ 220 7.3 Securizarea conexiunii ......................................................................................................... 222 7.4 Utilitare................................................................................................................................ 225 7.4.1 Linux ............................................................................................................................ 225 7.4.2 Cisco IOS ...................................................................................................................... 239 7.4.3 Windows ...................................................................................................................... 242 7.5 Scenariu de utilizare ............................................................................................................ 243 7.6 Studiu de caz ....................................................................................................................... 248 7.6.1 Server SSH Linux .......................................................................................................... 248 7.6.2 Server SSH Cisco IOS .................................................................................................... 249 7.6.3 Configurare Windows Firewall .................................................................................... 249 7.7 Concluzii .............................................................................................................................. 260 7.7.1 Linux ............................................................................................................................ 261 7.7.2 Cisco IOS ...................................................................................................................... 261 7.7.3 Windows ...................................................................................................................... 261 7.8 ntrebri ............................................................................................................................... 262 7.9 Referine .............................................................................................................................. 263 8 Alterarea pachetelor ................................................................................................................... 265 8.1 Moduri de alterare a pachetelor ......................................................................................... 266 8.2 Translatarea de adrese ........................................................................................................ 267 8.2.1 NAT de baz ................................................................................................................. 268 8.2.2 NAPT ............................................................................................................................ 270 8.2.3 Avantajele i dezavantajele NAT ................................................................................. 273 8.2.4 Traversarea NAT .......................................................................................................... 274 8.3 Implementarea translatrii de adrese................................................................................. 276 8.3.1 Implementarea NAT pe Linux ...................................................................................... 276 8.3.2 Implementarea NAT pe Cisco ...................................................................................... 277 8.4 Tunelarea............................................................................................................................. 279 8.4.1 Modul general de tunelare a pachetelor .................................................................... 280 8.4.2 Tunel ipip ..................................................................................................................... 280

Cuprins |v 8.4.3 Tunel GRE .................................................................................................................... 280 8.4.4 Tunelare IPv6/IPv4 ...................................................................................................... 280 8.4.5 Virtual Private Networks ............................................................................................. 282 8.4.6 PPPoE ........................................................................................................................... 282 8.5 Configuarea tunelurilor ....................................................................................................... 283 8.5.1 Linux ............................................................................................................................ 283 8.5.2 Cisco IOS ...................................................................................................................... 283 8.6 Scenarii de folosire a tunelrii ............................................................................................. 283 8.6.1 Configurare tunel IPv6-over-IPv4 (sit) n Linux ............................................................ 283 8.6.2 Configurare tunel GRE n IOS pentru pachete multicast ............................................. 284 8.7 Studii de caz......................................................................................................................... 285 8.7.1 Aplicaie pentru tunel IPv6 dinamic n Windows ........................................................ 285 8.7.2 OpenVPN ..................................................................................................................... 286 8.8 ntrebri ............................................................................................................................... 287 8.9 Referine .............................................................................................................................. 288 9 Servicii de reea ........................................................................................................................... 289 9.1 Modelul client server........................................................................................................... 290 9.1.1 Sockei i servicii .......................................................................................................... 291 9.1.2 Modelul Peer-to-Peer .................................................................................................. 292 9.2 Tipuri de servicii .................................................................................................................. 293 9.3 Serviciul DNS........................................................................................................................ 294 9.3.1 Ierarhia de domenii n DNS ......................................................................................... 294 9.3.2 nregistrri DNS ........................................................................................................... 297 9.3.3 Funcionarea serviciului DNS ....................................................................................... 300 9.3.4 Implementarea resolverului DNS pe Linux .................................................................. 302 9.3.5 Utilitarul host............................................................................................................... 304 9.4 Serviciul web........................................................................................................................ 306 9.4.1 Dezvoltarea i standardizarea WWW .......................................................................... 307 9.4.2 Identificarea resurselor n Web ................................................................................... 308 9.4.3 HTTP ............................................................................................................................ 310 9.4.4 HTTPS........................................................................................................................... 311 9.4.5 Servere web ................................................................................................................. 312 9.4.6 Clieni web ................................................................................................................... 313 9.4.7 Utilitarele wget i curl ................................................................................................. 314 9.5 Serviciul de e-mail ............................................................................................................... 316 9.5.1 Adrese de e-mail, csue potale i mesaje ................................................................ 317 9.5.2 Funcionarea serviciului de e-mail .............................................................................. 318 9.5.3 Protocoale de e-mail ................................................................................................... 320 9.5.4 Servere de e-mail......................................................................................................... 322 9.5.5 Clieni de e-mail........................................................................................................... 323 9.5.6 Utilizarea serviciului de e-mail pe Linux ...................................................................... 323 9.6 Scenarii de utilizare a serviciilor de reea ........................................................................... 324 9.6.1 Upload prin SSH i descrcare prin HTTP .................................................................... 324 9.6.2 Transmiterea unei resurse prin email automat .......................................................... 325 9.6.3 Captura mesajelor SMTP ............................................................................................. 325 9.7 Studiu de caz ....................................................................................................................... 326 9.7.1 Serviciul FTP................................................................................................................. 326 9.7.2 Distribuirea unui fisier prin BitTorrent ........................................................................ 327 9.8 Sumar de comenzi i fiiere ................................................................................................. 328 9.8.1 Linux ............................................................................................................................ 328 9.9 ntrebri ............................................................................................................................... 329 9.10 Referine .............................................................................................................................. 330

vi | R e e l e l o c a l e d e c a l c u l a t o a r e 10 Wireless ....................................................................................................................................... 331 10.1 Descrierea comunicaiei wireless la nivel fizic .................................................................... 331 10.1.1 Unde electromagnetice ............................................................................................... 332 10.1.2 Benzile ISM i UNII ....................................................................................................... 333 10.1.3 Frecvena 2.4GHz vs 5GHz........................................................................................... 334 10.2 Standarde pentru reele locale (WLANs) ............................................................................ 334 10.2.1 Standardul 802.11b ..................................................................................................... 334 10.2.2 Standardul 802.11a ..................................................................................................... 335 10.2.3 Standardul 802.11g ..................................................................................................... 335 10.2.4 Standardul 802.11n ..................................................................................................... 336 10.3 Implementarea unei reele wireless ................................................................................... 337 10.3.1 Echipamente wireless de interconectare .................................................................... 337 10.3.2 Topologii wireless ........................................................................................................ 338 10.4 Comunicaia wireless........................................................................................................... 339 10.4.1 Formatul cadrului 802.11 ............................................................................................ 339 10.4.2 Accesul la mediu .......................................................................................................... 341 10.4.3 Canale de comunicaie ................................................................................................ 342 10.4.4 Roaming ....................................................................................................................... 343 10.5 Mecanisme de securitate wireless ...................................................................................... 344 10.5.1 SSID broadcast ............................................................................................................. 344 10.5.2 Filtrare bazat pe adresa MAC .................................................................................... 344 10.5.3 WEP ............................................................................................................................. 345 10.5.4 WPA/WPA2.................................................................................................................. 345 10.6 Utilitare i fiiere de configurare ......................................................................................... 346 10.6.1 Linux ............................................................................................................................ 346 10.6.2 Windows ...................................................................................................................... 350 10.7 Scenariu ............................................................................................................................... 355 10.8 Studii de caz......................................................................................................................... 360 10.8.1 WiMax ......................................................................................................................... 361 10.8.2 PoE (Power over Ethernet) .......................................................................................... 362 10.9 Concluzii .............................................................................................................................. 362 10.9.1 Linux ............................................................................................................................ 363 10.10 ntrebri ........................................................................................................................... 364 10.11 Referine .......................................................................................................................... 365 Anexa A................................................................................................................................................ 366

Page |1

0 Reea de calculatoare
Ce se nva n acest capitol? Cine este Robert Metcalfe este un inginer electronist american, creditat ca fiind co-inventator al Ethernet-ului i autor al legii ce i poart numele. Aceast lege spune c numrul comunicaiilor ntr-o reea este proporional cu ptratul numrului utilizatorilor. De asemenea, legea are aplicabilitate n economie i management, un exemplu fiind firmele competitive care vor s fuzioneze. Comunicaia interuman la distan este folosit din cele mai vechi timpuri. Modalitile prin care aceasta se realizeaz au evoluat continuu: de exemplu, mesajele transmise cu porumbeii cltori sau prin curieri au devenit mult mai accesibile prin apariia potei. n anii 90 au aprut reelele de calculatoare, redefinind transmiterea mesajelor. n cadrul acestei noi organizri a comunicrii, cei care se ocup cu transmiterea efectiv a informaiei nu mai sunt doar oamenii. Acest lucru este preluat, n mare parte, de dispozitivele de calcul. La nivelul cel mai general, o reea de calculatoare este o modalitate de interconectare a mai multor sisteme de calcul, n vederea partajrii resurselor i a schimbului de informaii ntre acestea. Dispozitivele care ajut la interconectarea calculatoarelor sunt de mai multe tipuri i au deseori productori diferii. Pentru a se realiza comunicaia acestea trebuie s respecte un set de reguli predefinite. Acest set de reguli poart numele de protocol. Conceptul ne este familiar i n cazul scrisorilor. Cei care le trimit trebuie s respecte nite reguli sau, cu alte cuvinte, s foloseasc un protocol: s completeze plicul cu destinatarul i expeditorul, scrisoarea s aib un format recunoscut i, cel mai important, s foloseasc o limb inteligibil serviciilor potale i, desigur, destinatarului. Interconectarea sistemelor de calcul este asemntoare cu interconectarea componentelor unui calculator prin magistrale (circuite electrice integrate pe placa de baz) i chipset (coordonatorul componentelor din sistem). Legtura ntre sistemele de calcul se face prin intermediul unor medii de comunicaie, echivalente cu magistralele (cabluri de cupru, fibra optic, aerul) i a unor echipamente de reea, echivalente cu mai multe chipset-uri (plac de reea, switch-uri, media convertoare, puncte de acces radio, rutere). i n cadrul sistemului de calcul, pe lng componentele fizice (magistralele i chipseturile), este nevoie de reguli de comunicare. Astfel sunt implementate protocoale specifice fiecrei componente conectate (exemplu: SATA comunicaia i controlul dispozitivelor de stocare implementate n hardware). Un alt exemplu de protocol este un driver (acesta este folosit de sistemul de operare pentru a comunica cu dispozitivul asociat). Ce este o reea de calculatoare Echipamente de reea Stiva de protocoale Topologii

2|Reele locale de calculatoare

0-1 Reea de calculatoare

0.1 Stiva de protocoale


Dup cum s-a menionat anterior, comunicaia ntre dou entiti necesit un protocol (de exemplu, pentru ca dou persoane s se neleag, trebuie s vorbeasc aceeai limb). Aadar, un protocol este un set de reguli care stabilete modul n care dou dispozitive schimb informaii ntr-o reea de calculatoare. Scopul final al unei reele este s asigure comunicaia ntre dou aplicaii oarecare. De exemplu comunicaia dintre un browser i un server web trebuie s funcioneze indiferent de productorii echipamentelor de interconectare (Cisco, Juniper, etc), ai sistemului de operare ce ruleaz pe staia de calcul (Linux, Windows, MacOS) sau ai implementrii ce asigur interfaa cu utilizatorul (Firefox, Chrome, Internet Explorer, etc). Practic trebuie asigurat interoperabilitatea ntre oricare dou aplicaii. Acestea trebuie s mpacheteze informaia, s o transmit pe mediu, s se asigure c a ajuns la destinaie, s preia rspunsul, etc. Dac toate acestea ar trebui implementate de fiecare aplicaie, timpul de dezvoltare ar fi foarte mare i bineineles c ar introduce probleme de incompatibilitate. Prin urmare, protocolul trebuie respectat de toate echipamentele dintr-o reea. Acestea sunt dezvoltate de diferii productori, fiind diferite din punct de vedere hardware i software. Pentru a simplifica paii necesari n care se realizeaz comunicaia ntr-o reea de calculatoare, protocoalele sunt dispuse ntr-o stiv, avnd un rol bine definit la fiecare nivel. Astfel, protocoalele de pe un anumit nivel se folosesc de serviciile oferite de protocoalele de la nivelurile inferioare i ofer servicii, la rndul lor, protocoalelor de la nivelurile superioare, reducndu-se complexitatea implementrii unui nou protocol. Cel mai important beneficiu este acela c programele ce ruleaz ntr-un sistem de operare pot trimite sau primi date din reea, nefiind necesar s se ocupe de modul n care sunt trimise. Acest concept de separaie este folosit i n programare, fiind filozofia lumii UNIX: do one thing and do it well. Un exemplu de stiv de protocoale este modelul OSI (Open Systems Interconnection), avnd apte niveluri. Acesta este un model teoretic, de referin, nefiind implementat. Nivelul 1 (fizic) se ocup cu transmisia unui ir de bii pe un canal de comunicaie. Nivelul 2 (legtur de date) se ocup cu adresarea fizic a staiilor ntr-o reea i cu accesul la mediu (reglementnd cnd poate un dispozitiv s trimit cadre astfel nct acestea s nu interfereze cu alte echipamente din reea). Cu ajutorul nivelului 3 (de reea) se determin calea ctre destinaie a unui pachet. Nivelul 4 este nivelul transport, aici asigurndu-se controlul fluxului de date (verificarea integritii unui pachet, ordinea corect a pachetelor primite etc.). Astfel, pachetele primite de acest nivel sunt asociate n ordinea corect ntr-un segment. Nivelul 5 (sesiune) gestioneaz conexiunile ntre aplicaii (nchide i deschide conexiuni). Nivelul 6 (prezentare) asigur compresia i criptarea datelor. Ultimul nivel (nivelul aplicaie) specific interfaa cu utilizatorul (atunci cnd este dezvoltat o aplicaie, programatorul folosete interfaa pus la dispoziie de acest nivel pentru a trimite mesaje).

Reea de calculatoare |3 Dup cum s-a menionat anterior, modelul OSI este un model teoretic. n Internet se folosete stiva de protocoale TCP/IP, o form simplificat a modelului OSI. Denumirea TCP/IP provine din faptul c IP este principalul protocol de nivel 3, iar TCP este principalul protocol de la nivelul transport. Stiva OSI i cea TCP/IP au fost concepute n acelai timp i fiecare a contribuit la dezvoltarea celeilalte. TCP/IP unific primele dou nivele i ultimele trei ale modelului OSI, obinndu-se o implementare concentrat (vezi Fig. 0-2). Astfel, modul de transmisie al biilor i accesul la mediu este asigurat de un singur protocol (Ethernet, PPP vezi capitolul Reele Ethernet). Nivelul reea, din stiva OSI, corespunde nivelului Internet n TCP/IP, unde principalul protocol folosit este IP (n dou versiuni vezi capitolele Ipv4 i Ipv6). La nivelul transport, protocoalele folosite sunt TCP (orientat conexiune adic se negociaz o conexiune logic nainte de transmisia efectiv), UDP (neorientat conexiune adic pachetul se trimite direct ctre destinaie) i ICMP (vezi capitolul Securizarea reelei). Modul de stabilire al conexiunii, de asigurare a compresiei i a confidenialitii este asigurat de ctre nivelul aplicaie, acelai ce expune interfaa de comunicaie pentru utilizator/programator. Exemple de protocoale corespunztoare nivelului aplicaie sunt: HTTP (pentru accesul la paginile WEB), POP3/IMAP (pentru accesul la e-mail-urile din csua potal), SMTP (pentru a trimite emailuri), SSH (acces securizat de la distan), DNS (rezolvarea numelor adic face legtura ntre adresele calculatoarelor i nume predefinite, care sunt mai uor de reinut).

0-2 OSI vs. TCP/IP Stiva TCP/IP este implementat, de obicei, n nucleul sistemului de operare. Astfel, orice aplicaie trimite pachetele nucleului din sistemul de operare, acesta ocupndu-se mai departe s treac respectivul pachet prin fiecare nivel al stivei.

0.2 ncapsularea datelor


Dup cum s-a menionat anterior, datele ce trebuie trimise ctre o destinaie definit trebuie s parcurg de sus n jos stiva de protocoale, adugndu-se cte un antet la fiecare nivel. Antetul conine informaia necesar protocolului de la acel nivel, urmnd a fi interpretat de receptor. Acest proces poart numele de ncapsulare (vezi Fig. 0-3). Astfel, la informaiile de trimis, se mai adaug alte date, denumite uneori metadate (date despre date).

4|Reele locale de calculatoare

0-3 ncapsularea datelor Pornind de sus, n stiva OSI, se observ c la nivelele 5, 6, 7 nu se adaug nici un fel de informaie. La aceste nivele funcioneaz aplicaia, acesta fiind argumentul pentru care stiva TCP are definit doar nivelul aplicaie. Dac aplicaia are nevoie de servicii, va trebui s le implementeze incluznd, eventual, informaii despre acestea n cmpul de date la care are acces, pentru a fi interpretate de receptor. Urmtoarele trei nivele adaug fiecare cte un antet specific (Transport, Reea, Legtur de date). n final, datele ncapsulate sunt transmise nivelului fizic, pentru a le pune pe mediul de transmisie, folosind echipamente specifice (de reea).

0.3 Echipamente de reea


Echipamentele de reea sunt cele ce asigur transmisia efectiv a datelor i pot fi de mai multe tipuri, n funcie de nivelul stivei la care opereaz. Acestea iau decizia de transmitere/recepie n funcie de informaiile ce se gsesc n antetul de la nivelul respectiv.

Placa de reea
Aceasta permite unui sistem de calcul s schimbe informaii cu un altul, fiind interfaa de comunicaie cu o reea de calculatoare. Dup ce datele parcurg ntreaga stiv de protocoale a sistemului de operare, fiind ncapsulate, driverul (protocolul ce ajut sistemul de operare s comunice cu placa de reea) le trimite plcii de reea. n englez se folosesc mai muli termeni, avnd aceeai semnificaie: network card, network adapter, network interface, NIC (Network Interface Controller).

0-4 Placa de reea

Reea de calculatoare |5 Atunci cnd un calculator are o singur plac de reea, spunem c acesta are o singur interfa, iar cnd are dou plci de reea, spunem c acesta are dou interfee. Denumirea de interfa este abstracia dat de sistemul de operare (modul n care acesta vede o plac de reea). Exist dou tipuri de interfee: fizice i virtuale. Interfaa fizic reprezint o plac de reea (de exemplu, pe un sistem Linux, interfeele Ethernet sunt numite ethX, unde X este numrul interfeei). Interfeele virtuale nu exist din punct de vedere fizic n configuraia hardware a sistemului. Un exemplu este interfaa de loopback, aceasta fiind folosit pentru a referi staia curent ca i cum aceasta s-ar afla ntr-o reea (dei nu exist nici o legtur fizic). n topologiile prezente n aceast carte nu vom figura placa de reea. n schimb, vom reprezenta sistemul de calcul (staia), ce folosete o plac de reea pentru a se conecta la alte echipamente (vezi Fig. 0-5). A 0-5 Sistem de calcul (staie)

Repetor (Hub)
Repetorul este folosit pentru regenerarea i amplificarea semnalului. n mod uzual, acesta are dou interfee, i toate datele primite pe o interfa, le trimite pe cealalt, fr nici un fel de analiz. n zilele noastre acesta nu se mai folosete (vezi dezavantajele folosirii hub-ului n capitolul ce descrie tehnologia Ethernet).

Switch
Switch-ul este un dispozitiv de interconectare cu un numr variabil de interfee (de la cinci n sus). Comutarea pachetelor, adic direcionarea lor de pe un port pe altul, se face la nivelul 2 al stivei OSI, respectnd anumite reguli (vezi capitolul Reele Ethernet).

a) 0-6 Switch

Sw

b)

n schemele logice un switch este uneori reprezentat printr-un dreptunghi cu dou sgei avnd sensuri diferite (vezi Fig. 0-6a). n cadrul acestei cri vom folosi o reprezentare alternativ, cu dou grupuri de sgei paralele (vezi Fig 0-6b).

Ruter
Ruterul este utilizat pentru interconectarea mai multor reele de calculatoare, avnd un numr variabil de interfee (cel puin dou). Ruterele pot fi echipamente hardware dedicate, produse de diferii vendori, cu sisteme de operare proprietare (Cisco, Juniper, Fortinet, etc.). De asemenea, pe post de ruter se poate folosi un calculator, cu orice sistem de operare, ce are minim dou interfee, dat fiind c orice sistem de operare are capabilitatea de rutare. Decizia de comutare a pachetelor se ia n funcie de nivelul 3 al stivei OSI (vezi capitolul de Rutare). Reprezentarea ruterului n schemele logice se realizeaz printr-un cerc, cu dou grupuri de sgei perpendiculare. Sgeile dintr-un grup au sensuri opuse (vezi Fig 0-7).

Ruter

0-7 Ruter

6|Reele locale de calculatoare Toate echipamentele prezentate anterior se pot interconecta n moduri diferite, influennd n mod direct performana unei reele. Combinaiile n care se pot conecta mai multe dispozitive ntr-o reea poart numele de topologie. Topologia se refer la dou aspecte importante n dispunerea echipamentelor: modul n care acestea sunt conectate ntre ele din punct de vedere fizic, purtnd numele de topologie fizic, i modul n care echipamentele sunt folosite pentru a realiza comunicaia ntre entiti, purtnd numele de topologie logic. 2 2 8 A B 3
Sw3

3
Sw2

Sw9

1 3 4

4
Sw1

4 2 1

1
Sw7

9
Sw8

4 D

8 E

29 F

0-8 Topologie Un exemplu de topologie este cea din Fig. 0-8. Se observ porturile pe care sunt conectare calculatoarele, dispunerea nlnuit a switch-urilor, legturi multiple ntre diferite noduri (switchuri). Practic, aceasta este topologia fizic. Dac staia F dorete s comunice cu staia A, prin ce switch se vor duce datele, Sw2 sau Sw1? Rspunsul la aceast ntrebare este dat de topologia logic, construit pe anumite considerente (va folosi Sw2 daca acesta trimite mai repede datele). Un exemplu de topologie logic, pentru comunicaia dintre staiile conectate la Sw7 i staiile conectate la Sw9, ar fi: Sw7-Sw2-Sw3-Sw9. Se observ dou legturi ntre Sw3 i Sw2. Care din ele va fi folosit? Rspunsul este, de asemenea, legat de topologia logic. Este posibil ca aceste legturi s funcioneze simultan, cu scopul de a trimite mai multe date simultan, sau doar s funcioneze alternativ (cnd se ntrerupe una, se activeaz cealalt, eventual cu scop de back-up).

0.4 Clasificarea reelelor


n funcie de tipurile de echipamente folosite i distana ntre nodurile unei reele, putem clasifica reelele n: Local Area Network, Metropolitan Area Network, Wide Area Network. Fiecrui tip i sunt specifice anumite protocoale sau tehnologii de interconectare.

Local Area Network (LAN)


Calculatoarele dintr-un LAN sunt de regul prezente n aceeai camer, cldire sau campus (distanele sunt cuprinse ntre 1 i 1000 de metri). Trebuie specificat faptul c distanele nu sunt propriu-zis definitorii pentru tipul reelei: nu putem spune c dac sunt 500 de metri ntre 2 calculatoare acestea sunt obligatoriu n acelai LAN. n general, un LAN este delimitat de punctul de ieire ctre Internet (practic legtura cu reelele MAN/WAN). Acesta este un ruter care poart numele de Gateway. Standardele predominante n LAN sunt Ethernet (cablu de cupru) i WLAN (radio).

Reea de calculatoare |7

Metropolitan Area Network (MAN)


MAN se refer la reele ce se ntind pe suprafaa unui ora (distane de pn la 10 km). Din punct de vedere tehnic acest tip de reea este rar folosit, neexistnd tehnologii specific definite. n general se folosete Ethernet. Acest termen (MAN) este utilizat n departamentele comerciale ale furnizorilor de internet (Internet Service Provider - ISP), specificnd viteza disponibil pentru clieni n oraul respectiv.

Wide Area Network (WAN)


Reelele WAN sunt cele care interconecteaz noduri din aceeai ar sau continent. Practic, legtura ctre WAN este legtura ctre Internet. Tehnologiile folosite sunt din cele mai diverse: MPLS, ATM, Frame Relay, PPP (Point-to-Point Protocol), acestea adresndu-se furnizorilor de internet (ISP).

0.5 Studiu de caz


n depanarea problemelor aprute n reelele de calculatoare este foarte important inspecia coninutului pachetelor. Un utilitar des ntlnit n lumea UNIX pentru acest lucru este tcpdump. Acesta permite vizualizarea antetelor rezultate n urma ncapsulrii datelor. n Fig. 0-9 avem o topologie a unei reele de calculatoare format din staii, switch-uri i rutere. Vom considera legturile fizice ca fiind pe cupru. Dup cum se poate observa, LAN-ul (reeaua local) este delimitat de un ruter (HQ). Acesta face legtura cu ISP-ul (Internet Service Provider).
Sw9

2 2 8

3
Sw3

3
Sw2

2
BR

M 3
ISP

7 A

1 B 3 4

4
Sw1

4 2 1

1
Sw7

9
Sw8

2 3

2 3

4
HQ

4 D

8 E

29 F 21 4 W

0-9 Topologie: studiu de caz Ruterul HQ ruleaz un sistem de operare Linux. Se dorete s se analizeze traficul ce vine din reeaua local (portul 2) i se duce ctre ISP (portul 1). Fiind un ruter Linux, vom considera interfeele ca fiind Ethernet. Astfel, sistemul de operare va abstractiza portul 1 ca fiind interfaa eth1 i portul 2 ca interfaa eth2. Pentru a afla opiunile puse la dispoziie de utilitarul tcpdump se folosete parametrul -h (help). Acest parametru este prezent n majoritatea utilitarelor din Linux.
root@HQ:~# tcpdump -h tcpdump version 4.0.0 libpcap version 1.0.0 Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ]

8|Reele locale de calculatoare Pentru o descriere mai ampl a fiecrei opiuni se poate utiliza manualul, rulnd man tcpdump. Coninutul este destul de extensiv, iar pentru o cutare rapid se recomand folosirea sintaxei /cuvnt_de_cutat, introdus n interfaa manualului. Utilitarul tcpdump, rulat fr nici o opiune, va afia absolut toate pachetele ce trec prin prima interfa a ruterului (n general eth0). Pentru a selecta numai traficul ce trece printr-o interfa, se folosete opiunea i (interface). Astfel, pentru a vedea traficul de pe interfaa eth1 , aparinnd ruterului HQ executm n consol:
root@HQ:~# tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:05:23.479151 IP HQ.ssh > 79-117-24-159.rdsnet.ro.52497: Flags 2748149827:2748150023, ack 1188286833, win 192, length 196

[P.],

seq

Dup cum se poate observa i n output, pentru a obine informaii suplimentare despre pachete se adaug opiunile v (verbose) sau vv (very verbose), cea din urm oferind i mai multe date despre protocoale. Informaiile oferite de tcpdump vor fi analizate n seciunile urmtoare. Specificnd doar intefaa, tcpdump va afia absolut toate pachetele de trec prin interfaa respectiv, fiind aproape imposibil de neles fluxul de trafic. n practic, pentru a selecta traficul dorit se folosesc opiunile puse la dispoziie. n mod implicit se afieaz doar antetele de nivel 3 (adresa IP) i 4 (portul). ATENIE: tcpdump trebuie rulat avnd drepturile utilizatorului privilegiat (root).

0.5.1 Analiza traficului de nivel 2


Pentru a afia antetul de nivel 2 (cutare n man: /Link Level Headers) se adaug opiunea e:
root@HQ:~# tcpdump -i eth1 -e tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 18:24:11.369298 00:02:b3:a0:9f:65 (oui Unknown) > 00:1d:71:99:05:40 (oui Unknown), ethertype IPv4 (0x0800), length 250: HQ.ssh > 79-117-24-159.rdsnet.ro.59684: Flags [P.], seq 3197383668:3197383864, ack 3283769467, win 192, length 196

Primul cmp (18:24:11.369298) reprezint ora la care s-a nregistrat pachetul. Dup momentul de timp, urmeaz antetul de nivel 2. Acesta este alctuit din adresa MAC surs (00:02:b3:a0:9f:65 vezi capitolul Reele Ethernet) i din adresa MAC destinaie (00:1d:71:99:05:40).

0.5.2 Analiza traficului de nivel 3


Dup cum s-a precizat anterior, antetul de nivel 3 este afiat n mod implicit. n captura anterioar, dup antetul de nivel 2 (00:02:b3:a0:9f:65 (oui Unknown) > 00:1d:71:99:05:40 (oui Unknown)), urmeaz numele protocolului de nivel 3 (IPv4 (0x0800)), nsoit de adresele surs (HQ) i destinaie (79-112-24-159.rdsnet.ro). Adresele surs i destinaie sunt sub forma unor nume. Aceste nume sunt obinute folosind serviciul de DNS (vezi capitolul Servicii de reea). Pentru a nu mai face aceast transformare n nume, se poate folosi opiunea n (numeric), utilitarul rulnd mai rapid. Aceast opiune se regsete la toate utilitarele ce lucreaz cu IP-uri (netstat, iptables etc.), avnd scopul de a nu mai atepta pentru transformarea n nume, fiind mai rapide.
root@HQ:~# tcpdump -i eth1 -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:19:21.569228 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags 2748184943:2748185139, ack 1188287917, win 192, length 196

[P.],

seq

n cele ce urmeaz vom descrie diferite tipuri de filtre pentru selectarea traficului, n funcie de datele din antetul de nivel 3: dup adresa IP surs prin parametrul src, urmat de adresa IP sau nume

Reea de calculatoare |9
root@HQ:~# tcpdump -i eth1 -n src 86.122.60.17 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:24:09.659229 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 2748193907:2748194103, ack 1188289733, win 192, length 196 14:24:09.669154 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 196:376, ack 1, win 192, length 180

Se poate observa c sunt prezente doar pachetele ce au ca adres IP surs 86.122.60.17. dup adresa IP destinaie folosind parametrul dst, urmat de adresa IP sau nume
root@HQ:~# tcpdump -i eth1 -n dst 86.122.60.17 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:26:42.143742 IP 79.117.24.159.60082 > 86.122.60.17.1046: UDP, length 64 14:26:42.144877 IP 79.117.24.159.60082 > 86.122.60.17.1046: UDP, length 39

n captura anterioar sunt prezente doar pachetele ce au ca adres IP surs 86.122.60.17.

0.5.3 Analiza traficului de nivel 4


n capturile anterioare, ceea ce se gsete n antetul de nivel 3, dup ., n fiecare adres, reprezint portul (practic adresa de nivel 4 vezi mai multe detalii n capitolul Securizarea reelei). Aceste adrese sunt urmate de diferite flag-uri, aparinnd protocolului de nivel 4. n cele ce urmeaz, se vor descrie diferite tipuri de filtre pentru selectarea traficului, n funcie de porturi (adresa de nivel 4): dup portul surs prin parametrul src port urmat de numrul portului
root@HQ:~# tcpdump -i eth1 -n src port 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:28:14.839241 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 2748283031:2748283227, ack 1188299089, win 192, length 196 14:28:14.849146 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 196:376, ack 1, win 192, length 180

dup portul destinaie prin parametrul dst port urmat de numrul portului

root@HQ:~# tcpdump -i eth1 -n dst port 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:27:40.812904 IP 79.117.24.159.52497 > 86.122.60.17.22: Flags [.], ack 2748269975, win 4266, length 0 14:27:41.030696 IP 79.117.24.159.52497 > 86.122.60.17.22: Flags [.], ack 149, win 4229, length 0

Dac dorim o selectare mai specific a traficului inspectat, putem combina opiunile prezentate anterior, folosind operatorii logici and i or. n cele ce urmeaz prezentatm selecii compuse, folosind operatorii logici: traficul de la adresa 86.122.60.17 i portul destinaie 52497:
root@HQ:~# tcpdump -i eth1 -n src 86.122.60.17 and dst port 52497 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:34:17.399881 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 2748309523:2748309719, ack 1188305185, win 192, length 196 14:34:17.409074 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], seq 196:376, ack 1, win 192, length 180

Se observ n captura anterioar doar pachete ce au adresa surs 86.122.60.17 (86.122.60.17.22) i portul destinaie 52497 (79.117.24.159.52497). traficul ce are ca destinaie adresa 79.117.24.159 sau adresa 213.154.124.1:
root@HQ:~# tcpdump -i eth1 -n dst 79.117.24.159 or dst 213.154.124.1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:37:20.219910 IP 86.122.60.17.22 > 79.117.24.159.52497: Flags [P.], 2748345087:2748345139, ack 1188311625, win 192, length 52 14:37:20.222248 IP 86.122.60.17.38963 > 213.154.124.1.53: 1027+ AAAA? google.ro. (27)

seq

Se observ c au fost afiate doar pachetele ce au ca destinaie una din cele dou adrese IP.

10 | R e e l e l o c a l e d e c a l c u l a t o a r e traficul ce are ca destinaie adresa 86.122.60.17 i portul 22 sau adresa destinaie 74.125.232.216:

root@HQ:~# tcpdump -i eth1 -n \( dst 86.122.60.17 and dst port 22 \) or dst 74.125.232.216 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 14:48:15.962474 IP 79.117.24.159.52497 > 86.122.60.17.22: Flags [.], ack 2748452239, win 4063, length 0 4:48:25.101438 IP 86.122.60.17.56532 > 74.125.232.216.80: Flags [.], ack 1419, win 137, options [nop,nop,TS val 676238255 ecr 1297054305], length 0

n captura anterioar apar doar pachetele ce au ca destinaie adresa 86.122.60.17 i portul 22 (primul pachet capturat de la momentul 14:48:15.962474) sau adresa destinaie 74.125.242.216 (al doilea pachet capturat) Gruparea expresiilor compuse se poate realiza cu paranteze rotunde, dar acestea trebuie precedate de \, pentru a nu fi interpretate de consola n care se execut comanda.

0.5.4 Analiza coninutului de date


Pe lng antetele datelor, obinute prin ncapsulare, tcpdump este capabil s afieze i datele efective din pachetele capturate. Pentru acest lucru se folosete opiunea x (afieaz doar n format hexazecimal coninutul de date) sau X (afieaz n format hexazecimal i ASCII):
root@HQ:~# tcpdump -i eth1 -x 18:36:33.557589 IP HQ.ssh > 79-117-24-159.rdsnet.ro.59684: Flags [P.], seq 8108:8800, ack 189, win 192, length 692 0x0000: 4510 02dc 0b18 4000 4006 3255 567a 3c11 0x0010: 4f75 189f 0016 e924 be95 4700 c3ba 675f 0x0020: 5018 00c0 4223 0000 ba19 c39a 4a6d 7124 0x0030: 5716 0e33 e44e 4a5b 27bd 3582 4c99 80ee 0x0040: b123 c8c3 116a 39f6 3aea f447 root@HQ:~# tcpdump -i eth1 -X 18:37:21.325009 IP HQ.ssh > 79-117-24-159.rdsnet.ro.59684: Flags [P.], seq 21172:22524, ack 461, win 192, length 1352 0x0000: 4510 0570 0b46 4000 4006 2f93 567a 3c11 E..p.F@.@./.Vz<. 0x0010: 4f75 189f 0016 e924 be95 a358 c3ba 6c03 Ou.....$...X..l. 0x0020: 5018 00c0 8a97 0000 b152 e2ba 1d9a 8fd0 P........R...... 0x0030: ce63 8668 f913 3a6a 2377 ccab 340d e078 .c.h..:j#w..4..x 0x0040: 458d 1018 7ff7 a233 23b5 79dc E......3#.y.

Se observ c n ambele rulri de mai sus este afiat coninutul fiecrui pachet n format hexazecimal. Pe prima coloan este afiat octetul de la care ncepe linia respectiv, n hexazecimal (0x0000, 0x0010, etc). Valoarea 0x0010 semnific octetul cu numrul 16, n decimal. Pe fiecare linie sunt 8 grupuri de 4 valori, fiecare avnd 2 octei (fiecare caracter hexazecimal este reprezentat pe 4 bii, adic jumtate de octet), n total 16 octei pe linie. Astfel incrementul de 10H este justificat (10H reprezint 16 octei, n decimal). Pentru opiunea X, se observ, n partea dreapt a fiecrei linii, datele n format ASCII. Aceast opiune este util cnd dorim s vizualizm datele necriptate din reea (de exemplu protocolul telnet nu cripteaz traficul). n toate comenzile de mai sus, se poate omite specificarea interfeei, dar atunci tcpdump va inspecta traficul de pe toate interfeele. Pentru mai multe opiuni n scrierea expresiilor, putei consulta pagina de manual pcap-filter (man pcap-filter).

R e e a d e c a l c u l a t o a r e | 11

0.6 Concluzii
Reeaua de calculatoare este unul dintre cele mai importante concepte din domeniul calculatoarelor. Prin interconectare se realizeaz schimbul de date ntre dispozitive, n vederea accesului rapid la informaie. De exemplu, pentru a trimite un document ntre dou orae nu mai este necesar s ateptm 1-2 zile s ajung prin curierat, aceasta putnd fi trimis instantaneu prin intermediul reelelor de calculatoare. Partajarea datelor aduce avantaje i n procesarea distribuit a informaiilor. Astfel, dac trebuie analizat un set mare de date, acesta poate fi prelucrat mai repede de mai multe calculatoare legate ntr-o reea dect de un singur calculator. Principalele dispozitive ce fac parte dintr-o reea sunt placa de reea (cu staia aferent), switchul i ruterul, folosind diferite medii de transmisie: cupru, fibra optic i aerul. Trecerea de la un mediu de transmisie la altul se face prin echipamente dedicate, ce poart numele de convertoare. Pentru conversia aer-cupru se folosete punctul de acces, iar pentru legtura fibr optic-cupru se utilizeaz media convertorul. n funcie de ntinderea reelelor, acestea pot fi clasificate n: LAN (distane mici), MAN (distane medii) i WAN (distane mari). Pentru a simplifica modul de transmisie al datelor n reea se folosete o stiv de protocoale, distribuit pe mai multe nivele. Fiecare nivel este specializat n asigurarea unui serviciu. Protocolul de la un anumit nivel se folosete de serviciile puse la dispoziie de protocoalele de pe nivelele inferioare i, la rndul lui, asigur interfaa pentru protocoalele de nivel superior. Stiva TCP/IP este cea folosit n Internet, fiind compatibil cu modelul OSI.

0.6.1 Linux
Comand tcpdump Descriere Afieaz antetele datelor ncapsulate i coninutul efectiv.

12 | R e e l e l o c a l e d e c a l c u l a t o a r e

0.7 ntrebri
1. 2. De ce component are nevoie o staie pentru a se lega la o reea? Plac de reea Punct de acces Ruter Cablu de cupru Care este rolul unei stive de protocoale? Complic transferul datelor pe reea Realizeaz o separaie a funciilor ce trebuie realizate pentru a trimite date Nu are un rol semnificativ. Se respect doar un standard Rspunsurile 2 i 3

3. Nivelul unei stive de protocoale ofer servicii ____________ ______________. 4. 5. 6. 7. 8. Care este protocolul dominant folosit la nivelul reea, n stiva TCP/IP? IP TCP UDP ICMP Care este stiva de protocoale folosit n Internet? OSI TCP/IP IP TCP Ce nivele ale stivei OSI sunt reunite n cadrul stivei TCP/IP? Nivelele 1 i 2 Nivele 3 i 4 Nivelele 5, 6 i 7 Nivelele 1,2 , ct i Nivelele 5,6,7 Cum putem delimita o reea de tip LAN (Local Area Network) ? Dup distana dintre nodurile sale Dup tipurile de echipamente de reea Dup punctul comun de ieire ctre Internet (ctre reelele MAN/WAN) Dup tipul staiilor din cadrul reelei Topologia logic se refer la: Clasificarea echipamentelor n funcie de rolul lor n reea Modul n care echipamentele sunt folosite pentru a realiza comunicaia ntre entiti Tipul echipamentelor folosite Conectarea fizic a echipamentelor n cadrul reelei

P a g e | 13

1 Nivelul fizic
Ce se nva n acest capitol? Cine este Alexander Graham Bell a fost un om de tiin, un inventator i, ulterior, industria american, fiind prima persoan care a brevetat telefonul. n 1881, n cadrul sistemelor telefonice proiectate de Bell, s-au folosit pentru prima dat cabluri torsadate (twisted pair) de cupru. Pentru a putea trimite datele n reea este necesar transformarea acestora n semnale, deoarece semnalele sunt cele care se pot propaga (pot cltori) pe mediul de transmisie folosit. Transformarea trebuie s respecte anumite reguli astfel nct, la destinaie, receptorul s neleag ce s-a transmis. Nivelul fizic are rolul de a transmite date pe canalul de comunicaie folosind semnale. Unitatea de date folosit este bitul. Altfel spus, acest nivel convertete biii n semnale, pentru a putea fi puse pe canal. Tot la acest nivel se stabilete viteza cu care sunt transmise datele (controlul vitezei) i are loc procesul de negociere a parametrilor (sincronizarea comunicaiei ntre echipamente). Un alt rol al nivelului fizic este acela de a trimite pe canal, n acelai timp, mai multe semnale compuse (multiplexare). Tipuri de semnale Mutiplexarea semnalului Codificri ale semnalelor Medii de transmisie Interfee de mare vitez (tehnologii folosite n WAN)

1.1 Semnale
Dup cum am precizat anterior, la nivelul fizic se lucreaz numai cu semnale, fiind importante mijloacele prin care biii pot fi transportai ct mai eficient. n paragrafele urmtoare vor fi prezentate diverse tehnici ce fac posibil optimizarea transferului de bii printr-un canal fizic. La nivelul cel mai general, un semnal este un fenomen fizic msurabil, care variaz n spaiu i/sau timp, utilizat pentru a transmite informaie. Semnalele pot fi continue sau discrete. De asemenea, o clasificare frecvent a semnalelor este cea analogic/digital. Semnalul analogic este continuu n timp, ntr-o reprezentare grafic, acesta avnd forma unor valuri, fr schimbri brute ale valorii semnalului. Semnalul digital este discret, acesta avnd valori constante pentru o perioad de timp. Schimbarea brusc a valorii unui semnal digital face diferena ntre dou informaii diferite.

1.1.1 Semnale analogice


Semnalele analogice sunt continue i, teoretic, ar putea fi reprezentate complet prin numere doar cu un nivel infinit de precizie (cu un numr infinit de zecimale). Exemple de semnale analogice sunt cele ntlnite n natur, cum ar fi vocea uman, ciripitul psrilor, uieratul vntului, etc. Atunci cnd sunt reprezentate grafic n funcie de timp, ele au aspectul unor valuri mai mult sau mai puin simetrice (vezi Fig. 1-1). O sinusoid este cel mai simplu semnal analogic.

14 | R e e l e l o c a l e d e c a l c u l a t o a r e

1-1 Reprezentarea unui semnal analogic Semnalele analogice variaz continuu n timp i de aceea nu au treceri brute de la o valoare la alta: se mai spune c sunt wavy, adic unduioase. Acestea sunt caracterizate prin amplitudine, frecven (sau perioad) i faz. Amplitudinea reprezint nivelul maxim al semnalului (maximul de pe axa Valoare din Fig. 1-1). Frecvena se refer la viteza de schimbare a direciei graficului, relativ la timp. Faza este caracterizat prin poziia formei de und raportat la momentul de timp 0 (nivelul axei Valoare la momentul de timp 0 din Fig. 1-1). Aceste caracteristici pot varia, obinndu-se noi semnale. Modularea se refer la modificarea unui semnal folosind un alt semnal. ntr-o transmisie radio, semnalul cu ajutorul cruia este transportat informaia este o und, de exemplu o sinusoid. Transmitorul emite n permanen o sinusoid (caracterizat de amplitudine, frecven i faz) cu toi parametrii constani. n acest caz, cantitatea de informaie este nul, adic pe aceast sinusoid nu este transmis niciun fel de informaie util. n momentul n care ncepe transmisia datelor, semnalul util de date, adic biii, sunt folosii pentru a varia parametrii sinusoidei. Cu alte cuvinte, datele (biii) se reprezint prin variaia caracteristicilor sinusoidei.

1-2 Modulare n amplitudine

n funie de parametrul variat, modulaia poate fi n amplitudine (AM amplitude modulation; vezi Fig. 1-2), n frecven (FM frequency modulation; vezi Fig. 1-3) sau n faz (PM phase modulation).

N i v e l u l f i z i c | 15

1-3 Modulare n frecven Modularea n amplitudine i modularea n frecven se folosesc n mod special n transmisiile radio. De exemplu, majoritatea posturilor radio, cnd specific frecvena, menioneaz i sufixul AM sau FM.

1.1.2 Semnale digitale


Semnalele digitale sunt discrete i cuantizate adic pot fi reprezentate prin numere cu un anumit nivel de precizie prestabilit. Semnalele digitale, cel mai adesea, sunt cele folosite n tehnic i au la baz dou valori logice, 0 i 1, care au fiecare cte o reprezentare n funcie de modul n care sunt transmise. Impulsurile digitale (0 sau 1 logic) se numesc bii. Transmisia digital este de multe ori preferabil celei analogice deoarece este mai puin afectat de zgomote, fiind deci mai robust. Datorit trecerilor brute de la o valoare la alta, se mai spune c este jumpy, adic sltrea. Semnalele digitale menin un nivel constant de tensiune sau intensitate luminoas, apoi trec pe alt nivel constant, cele 2 niveluri reprezentnd biii 0 i 1 (vezi Fig. 1-4).

1-4 Transmisie digital Transmisia digital e mai puin afectat de zgomote. Fie o linie pe care se dorete transmiterea numrului 7. Dac transmisia este analogic, se va transmite practic o und, n care considerm amplitudinea ca fiind de 0,7 (dac s-ar fi dorit transmiterea numrului 5, ar fi trebuit folosit o amplitudine 0,5, etc). Dac acea linie este afectat de interferene electromagnetice cu amplitudinea de 0,2, atunci la recepie se va citi 0,9, adic numrul 9. Transmisie eronat! Dac n schimb se folosete transmisia digital, va trebui convertit 7 n binar, iar numrul 111 va fi transmis digital. Transmisia poate avea 2 valori: spre exemplu, 0 logic ntre amplitudinile 0,1 i 0,4 i 1 logic ntre 0,8 i

16 | R e e l e l o c a l e d e c a l c u l a t o a r e 1. Dac se dorete transmiterea lui 1 logic de 3 ori, practic vor fi transmise 3 impulsuri cu amplitudinea de 0,8. Dac la ele se adaug interferenele prezente pe linie, la cellalt capt vor fi citite 3 impulsuri de amplitudine 1, ceea ce nseamn tot 1 logic. Transmisie corect! Este adevrat c exist numeroase cazuri n care, datorit interferenelor prea mari, se emite 0 i se recepioneaz 1 sau invers, ns, n comparaie cu transmisia analogic, cea digital este mult mai precis i mai robust. Tipurile de semnale discutate mai jos sunt n marea lor majoritate digitale (acestea sunt cele mai folosite n reele de calculatoare); atunci cnd este vorba despre semnale analogice, acest lucru va fi precizat explicit.

1.1.3 Codificri ale semnalelor


De-a lungul timpului au existat numeroase forme de transport al informaiei pe distane lungi. Fiecare dintre aceste metode avea o anumit form de codare a informaiei. De exemplu, indienii apache fceau un foc mare pe un deal i cu ajutorul unei pturi formau rotocoale de fum. O variant de codare folosit ar putea fi: 3 rotocoale de fum nseamn c este vnat mult prin zon, 4 rotocoale mari i dou mici nseamn c vine furtuna, etc. Apariia codului Morse a revoluionat la vremea respectiv comunicaiile: fiecare liter avea propriul ei simbol format din semnale lungi i scurte. Procesul de transformare a informaiei ntr-un semnal ce poate fi transportat pe un canal fizic se numete codare. Pentru a transmite informaia, aceasta trebuie convertit ntr-un semnal digital binar. La nivelul fizic, pasul urmtor const n codarea semnalului binar ntr-un alt semnal adecvat mediului fizic precum variaii ale nivelului de tensiune ntr-un cablu de cupru, sau variaii ale luminozitii ntr-o fibr optic. Codarea (denumit i line coding sau digital baseband modulation) poate fi unipolar (un singur nivel de tensiune care reprezint 1; absena nseamn 0), polar (dou niveluri de tensiune) i bipolar (trei niveluri: pozitiv, negativ i zero). Transmisia datelor digitale este caracterizat prin dou metrici importante: bit rate (numrul de bii pe secund trimii) i bit interval (ct timp dureaz s fie trimis un bit). Mai jos sunt prezentate cteva metode de codare ale semnalelor binare n semnale fizice.

Manchester IEEE 802.3

1-5 Manchester IEEE 802.3 Codarea Manchester se realizeaz pe dou niveluri, cu autosincronizare. O tranziie jos-sus, la mijlocul perioadei de ceas, codific bitul 0, iar o tranziie sus-jos bitul 1. Pentru a satisfice aceste condiii, la sfritul perioadei de ceas se face o tranziie, dac este necesar, pentru a fi pe nivelul corespunztor bitului ce urmeaz (nivelul jos dac bitul este 0 sau nivelul sus dac bitul este 1 vezi

N i v e l u l f i z i c | 17 Fig. 1-5 tranziiile negre). Codarea Manchester este utilizat n cadrul standardului IEEE 802.3 (Ethernet).

Manchester diferenial
Manchester diferenial este o metod de codare n care datele sunt combinate cu semnalele de ceas pentru a forma un ir de date cu autosincronizare. Pentru a reprezenta 1, prima jumtate a perioadei de ceas curente trebuie s fie egal cu ultima jumtate a perioadei precedente. Pentru a codifica 0, se inverseaz nivelul de tensiune existent n cea de-a doua jumtate a semnalului anterior. Cu alte cuvinte, un bit 0 este reprezentat printr-o tranziie la nceputul perioadei de ceas, absena acestei tranziii semnificnd 1 logic (vezi Fig. 1-6). Manchester diferenial este utilizat n cadrul standardului 802.5 (Token Ring).

1-6 Manchester Diferenial

Non-Return-To-Zero Level (NRZ-L)


n codarea Non-Return-to-Zero Level (NRZ-L), valoarea 1 logic este transmis ca o tensiune joas (de obicei negativ, de exemplu ntre -12V i -5V), iar 0 logic ca un nivel de tensiune nalt (pozitiv, de exemplu ntre 5V i 12V).

1-7 Non-Return-To-Zero Level (NRZ-L)

18 | R e e l e l o c a l e d e c a l c u l a t o a r e n reprezentarea unui ir de bii nivelul semnalului urmrete starea bitului (vezi Fig. 1-7). Un dezavantaj important al acestei metode de codare este riscul crescut de pierdere a sincronizrii la receptor. Transmiterea unei secvene de date ce conine un numr mare de bii consecutivi cu aceeai valoare presupune meninerea tensiunii mai mult timp pe acelai nivel, iar n cazul desincronizrii, numrul biilor recepionai poate fi eronat.

Non-Return-To-Zero Inverted (NRZ-I)


n codarea Non-Return-to-Zero Inverted (NRZ-I), valoarea semnalului trece de pe un nivel pe altul doar atunci cnd, n irul de bii transmii, apare valoarea 1 logic. Ca exemplu, dac n starea curent semnalul se afl pe nivelul de tensiune joas, la apariia unui bit de valoare 1 va trece pe tensiune nalt. Apariia unuia sau mai multor bii de 0 nu schimb n niciun fel nivelul de tensiune. Acesta va reveni la tensiune joas doar pentru a reprezenta urmtorul bit de 1 ntlnit n ir (vezi Fig. 1-8).

1-8 Non-Return-To-Zero Inverted (NRZ-I)

Multi-Level Transmit 3 (MLT-3)

1-9 Multi-Level Transmit 3 (MLT-3)

N i v e l u l f i z i c | 19 Codarea Multi-Level Transmit 3 (MLT-3) folosete trei nivele de tensiune. Pentru a reprezenta bit-ul 1, la nceputul perioadei de ceas, se realizeaz o tranziie. La apariia unui bit de 0, nivelul nu se modific. Tranziiile se fac ntre nivelurile minim i maxim. Direcia n care se modific nivelul, se schimb la atingerea unuia dintre cele 2 praguri (minim sau maxim).

Pulse-Amplitude Modulation 5
n codarea Pulse-Amplitude Modulation 5 se folosesc 5 nivele de tensiune, fiecrui nivel de tensiune fiindu-i atribuit un grup de 2 bii. De exemplu, dac pentru grupul 01 atribuim nivelul 1 de tensiune, la apariia acestei combinaii, se va realiza o tranziie direct ctre nivelul 1. Dac grupul anterior a fost tot 01, atunci nu se va realiza nicio tranziie. Grupul de 2 bii va fi consumat i se va trece la urmtorul grup.

1-10 Pulse-Amplitude Modulation 5 (PAM-5)

4B5B
Codarea 4B5B convertete blocuri de 4 bii n blocuri de 5 bii. Aceast codare este folosit mpreun cu NRZ-I (fibra optic) sau MLT-3 (Ethernet 100BASE-TX). Blocurile de 5 au suficient de muli bii de 1 astfel nct NRZ-I/MLT-3 s nu piard sincronizarea. Dup cum se poate observa n Fig. 1-11, nu se pot obine consecutiv mai mult de 3 bii de 0. Astfel, pentru NRZ-I, va rezulta o tranziie la cel mult dou perioade de ceas.

1-11 Pulse-Amplitude Modulation 5 (PAM-5)

20 | R e e l e l o c a l e d e c a l c u l a t o a r e n Fig. 1-12 sunt prezentate codificrile aplicate semnalului de date pentru tehnologiile de transmisie pe fibr optic, respectiv pe cupru. n cazul transmisiei peste fibra optic se folosete o nou codare 8B10B (de la 8 la 10 bii, tot n acelai scop ca i 4B5B) mpreun cu NRZ. Pentru transmisia peste cablul de cupru torsadat (vezi Medii de transmisie) se folosete codificarea PAM-5. Primele dou diagrame reprezint etapele de codificare din reelele FastEthernet ce ofer viteze de pn la 100Mbps, iar ultimele dou prezint codificarea pentru tehnologii ce ofer viteze de transmisie de pn la 1Gbps (gigabii pe secund).

1-12 Folosirea codificrilor pentru transmisia 100 Mbps, respectiv 1000Mbps

1.1.4 Transmisia datelor digitale folosind semnale analogice


La nceputul anilor 90 transmisia de date a nceput s ia amploare, fiind disponibil i pe piaa liber, nu doar n universiti i instituii publice. La acea vreme nu existau reele capabile s transmit date, doar reelele de voce fiind dezvoltate la scar larg. Pentru a facilita dezvoltarea reelelor de calculatoare i a transmisiilor de date, s-a propus folosirea reelelor de telefonie. Acest lucru introducea anumite probleme, cel mai important fiind faptul c era un mediu de transmisie analogic, care folosea semnale analogice. Se punea deci problema transmisiei digitale pe medii analogice. Trebuie fcut distincia ntre tipul semnalului i tipul datelor transmise folosind acel semnal. La rndul lor, i datele se mpart n analogice sau digitale. Datele analogice sunt valori continue din

N i v e l u l f i z i c | 21 cadrul unui interval (exemplu: sunetele din natur, nlimea unei coloane de mercur din termometru).

1-13 ASK (Amplitude Shift Key) Datele digitale sunt valori discrete (exemplu: un fiier text, cifrele afiate pe ecranul unui termometru digital). Un caz n care date analogice, cum ar fi vocea, sunt transmise printr-un semnal analogic, este cel al telefonului clasic. De obicei, pentru datele digitale se folosesc semnale digitale. Dac se dorete transmiterea datelor digitale peste un mediu ce folosete semnale analogice (de exemplu linii telefonice) semnalul analog trebuie modulat, folosind un modem. Acesta preia datele digitale de transmis i le transform n semnal analogic. La recepie, aplicnd procesul invers, demodularea, asupra semnalului analogic citit de pe mediu se obin datele digitale. Exist mai multe tipuri de modulare: ASK (Amplitude Shift Keying vezi Fig. 1-13), FSK (Frequency Shift Keying vezi Fig. 1-14), PSK (Phase Shift Keying vezi Fig. 1-15).

1-14 FSK (Frequency Shift Key)

22 | R e e l e l o c a l e d e c a l c u l a t o a r e

1-15 PSK (Phase Shift Key) Acestea sunt asemntoare cu cele prezentate anterior, dar exist o diferen important: aici se trimit date digitale (bii de 0 i 1), pe cnd n exemplele prezentate n cadrul semnalelor analogice se trimiteau semnale analogice (vocea de la radio). Viteza de transmitere a datelor se poate msura n bii pe secund (bit-rate) sau semnale pe secund (baud-rate), tehnicile de modulare caracteriznduse prin raportul dintre bit-rate i baud-rate. Dup cum se poate observa, n toate cele trei cazuri, raportul dintre bit-rate i baud-rate este de 1. Se pot realiza combinaii ntre ASK i PSK, putndu-se reprezenta mai muli bii ntr-un semnal (vezi Fig. 1-16). Remarcm c prin variaia amplitudinii (2 nivele) i a fazei (4 pozitii), se pot crea 8 semnale diferite, fiecare semnal reprezentnd un grup de 3 bii.

1-16 ASK-PSK

N i v e l u l f i z i c | 23 Folosind valorile amplitudinii (A) i ale fazei (), putem reprezenta modularea ASK-PSK ntr-un cerc trigonometric. Aceast reprezentare poart numele de diagram de constelaii. Un exemplu de construire a acestei diagrame se afl n Fig. 1-17.

1-17 Diagram de constelaii

1-18 Modulare QAM-64 n Fig. 1-18 este reprezentat modulaia QAM-64. Observm 64 de puncte de constelaie, cu ajutorul crora se pot trimite 6 bii (cele 64 de poziii pot fi reprezentate pe 6 bii, respectiv log 264 = 6).

1.1.5 Multiplexarea semnalului


De multe ori, capacitile legturilor instalate ajung s fie saturate, unele reele fiind congestionate. Astfel, transmisia se realizeaz mai greoi. n acest caz, se impune creterea capacitii de transmisie, prin crearea unor noi legturi. Pentru o nou legtur, trebuie, n primul rnd, un nou mediu de transmisie (de exemplu s fie tras un nou cablu). n unele cazuri, costurile sunt foarte mari sau nu exist posibilitatea tehnic (cablurile sunt ngropate i nu mai exist tuburi libere prin care s fie trase noi cabluri). Aceste probleme pot fi rezolvate prin transmiterea mai multor semnale, cu informaii disctincte, pe acelai cablu. Cu ajutorul unui echipament, semnalele sunt compuse ntrunul singur, mai mare. Astfel, pentru creterea capacitii unor legturi, trebuie schimbate doar echipamentele de la capete, fr a instala un nou mediu de transmisie (cablu). Multiplexarea semnalului const n gruparea mai multor fluxuri de date ntr-un singur semnal, peste un singur mediu partajat.

24 | R e e l e l o c a l e d e c a l c u l a t o a r e

1-19 FDM (Frequency Division Multiplexing) Multiplexarea se mparte, la rndul ei, n analogic i digital. Din cea analogic fac parte urmtoarele tehnici de multiplexare: FDM (Frequency Division Multiplexing): fiecare canal (flux de date) primete o anumit band de frecven (vezi Fig. 1-19). WDM (Wavelength Division Multiplexing): este o form de multiplexare dezvoltat pentru transmisia pe fibr. Fiecare canal primete o lungime de und pe care s o foloseasc la transmiterea datelor (vezi Fig. 1-20). Fiecare fibr de la destinaie conine un filtru special (construit folosind o prism), care filtreaz toate lungimile de und mai puin una. Semnalele rezultate pot fi rutate ctre destinaie sau recombinate n diferite feluri pentru transmisii ulterioare. Concept publicat nc din anii 1970, tehnologia WDM a progresat extrem de rapid. Dac primul sistem WDM combina doar 2 canale, sistemele moderne pot combina pn la 160 de semnale, putnd astfel extinde un sistem de 10Gbps pn la o valoare teoretic de 1Tbps doar pe o pereche de fibr optic. n 2001 existau produse pe pia cu 96 de canale de 10Gbps fiecare, deci un total de 960Gbps. n laboratoare se lucreaz deja la sisteme ample ce cuprind peste 200 de canale. Atunci cnd numrul de canale este foarte mare i lungimile de und sunt foarte apropiate (0,1nm) sistemul este numit DWDM (Dense WDM).

1-20 WDM (Wavelength Division Multiplexing) Din categoria multiplexrii digitale face parte: TDM (Time Division Multiplexing): informaiilor din fiecare canal de date li se aloc o cuant de timp predefinit, indiferent dac pe acele canale se transmite sau nu (vezi Fig. 1-21).

1-21 TDM (Time Division Multiplexing)

N i v e l u l f i z i c | 25

1.1.6 Caracteristici ale semnalului


Performanele unei reele sunt dependente de calitatea semnalului. Calitatea semnalului se definete n funcie de anumite caracteristici cum ar fi: latena (ct de repede ajunge la destinaie un semnal), atenuarea (ct se pierde din semnal din cauza distanei parcurse) sau zgomotul (influene externe de la alte semnale). Latena, numit i ntrziere, este de dou tipuri: latena propagrii prin mediul de transmisie i latena trecerii prin echipamentele de reea. Primul tip de laten este dat de viteza de propagare a semnalului n mediul de transmisie specific i de distana ntre surs i destinaie. De exemplu, pentru o transmisie prin mediul electric viteza de propagare a semnalului este aproximativ dou treimi din viteza luminii. Aceasta nseamn c un impuls electric va parcurge un segment de reea de 100 m n: 100 / (2/3 * 3 * 108) = 0,5 * 10-6. A doua surs a latenei o reprezint echipamentele de reea folosite pe parcurs. Fiecare echipament execut operaii specifice, de la redresarea semnalului electric, pn la determinarea cii optime pe care trebuie trimis fiecare pachet. Latena dispozitivelor de interconectare variaz de la cteva microsecunde n cazul hubului i a convertoarelor de mediu, pn la milisecunde n cazul comutatoarelor i a ruterelor. Astfel, comparativ cu latena introdus de un repetor Ethernet, de aproximativ 5,6 microsecunde, latena mediului de conectare este cu un ordin de mrime mai mic. Latena propagrii este n general semnificativ mai mic dect latena dispozitivelor de interconectare, astfel nct deseori este considerat drept neglijabil. Cu toate acestea, exist cazuri n care latena propagrii este factorul principal al ntrzierii totale a unui semnal, cel mai relevant exemplu fiind cel al comunicaiilor prin satelit. Folosirea sateliilor geostaionari face ca drumul total ntre surs i destinaie s fie de peste 75.000 km, aducnd latena total a oricrei transmisiuni n jurul valorii de 0,5 secunde. Atenuarea este un termen general care se refer la reducerea puterii unui semnal. Atenuarea are loc indiferent de tipul de semnal, analogic sau digital. Numit uneori i pierdere (loss), atenuarea este o consecin a transmiterii semnalului la distane mari. Atenuarea afecteaz reelele de calculatoare deoarece limiteaz distana maxim ntre dispozitivele acesteia. Dac distana este prea mare, din cauza atenurii, la destinaie nu se va mai putea interpreta semnalul corect. Pentru transmisia la distane mai mari dect permite tipul de cablu utilizat se folosesc anumite dispozitive, numite repetoare, care regenereaz semnalul (din punct de vedere electric, optic sau wireless). Atenuarea afecteaz toate tipurile de medii de transmisie, ns are valori diferite pentru fiecare mediu n parte. De exemplu, un semnal electric transmis pe un fir de cupru se atenueaz mai repede dect un semnal optic (transmis pe o fibr optic). Atenuarea n general se msoar n decibeli (dB), iar atenuarea specific unui anumit tip de cablu se msoar n decibeli/metru sau decibeli/kilometru. Fiecare tip de cablu are o atenuare specific. Cu ct aceast atenuare este mai mic, cu att acel cablu este considerat mai bun. Atenuarea este un factor foarte important de luat n calcul n cazul proiectrii reelelor de fibr optic. Echipamentele de fibr optic garanteaz o anumit distan (specificat n cartea tehnic), ns aceast distan este garantat pentru o fibr optic cu o anumit atenuare / km (specificat tot n cartea tehnic). Dac se folosete o fibr optic cu o atenuare mai mare, atunci distana maxim garantat va fi mai mic. Dac ns se folosete fibr optic de o mai bun calitate, transmisia va fi corect i la distane mai mari dect cea specificat. Cum se determin distana maxim posibil pentru o transmisie? Echipamentele impun o anumit valoare a atenurii care nu trebuie depit. Se poate considera c: dm = (ame ac) / asm dm distana maxim ame atenuarea maxim a echipamentului ac atenuarea conectorilor asm atenuarea specific mediului Reflexia are loc de obicei atunci cnd un semnal ntlnete o linie de separaie ntre dou medii. Atunci, o anumit parte din semnal se reflect napoi n mediul din care a venit i o parte trece n mediul urmtor. Reflexia poate aprea n cazul semnalelor electrice cnd, de exemplu, impulsurile

26 | R e e l e l o c a l e d e c a l c u l a t o a r e electrice sau biii ntlnesc o discontinuitate, moment n care o anumit parte din energia semnalului se reflect. Dac nu este controlat, aceast energie poate interfera cu biii transmii mai trziu. Milioane de bii sunt transmii n fiecare secund, iar aceast energie reflectat poate duce la multe transmisii nereuite. Un exemplu este o reea pe cablu coaxial care are nevoie de un terminator la fiecare capt. Dac nu ar avea acest terminator, la captul cablului ar aprea o linie de separare ntre cele dou medii (aer i cupru), iar o parte din energie s-ar reflecta napoi n firul de cupru. Reflexia poate avea loc i n cazul sistemelor optice. Un semnal optic se reflect ori de cte ori ntlnete o discontinuitate n fibra de sticl, ca de exemplu atunci cnd se ataeaz un conector. De aceea este necesar o pregtire special n cazul atarii conectorilor de fibr optic, pentru a nu permite reflexia luminii napoi n fibr. Zgomotul este o cantitate de energie nedorit (electric, electromagnetic sau radio) care poate degrada calitatea semnalului transmis. Zgomotul afecteaz att transmisiile analogice ct i cele digitale. n cazul semnalelor analogice, semnalul devine bruiat i deformat. Un exemplu este o convorbire telefonic pe care se aude un zgomot de fond. n sistemele digitale, zgomotele afecteaz valorile biilor transmii (0 sau 1), la destinaie acetia putnd fi interpretai greit (adic 1 n loc de 0 i invers). Zgomotul poate avea mai multe cauze: cmpurile electrice provenite de la motoare electrice, lumina fluorescent (neoane), etc. - toate provenite de la surse exterioare cablului afectat. Acest tip de zgomot se numete EMI (Electromagnetic Interference - Interferen Electromagnetic) dac provine de la surse electrice sau RFI (Radio Frequency Interference - Interferen Radio) cnd provine de la surse radio, radar sau microunde. Zgomotul mai poate proveni de la liniile de curent alternativ sau de la fulgere. Fiecare fir dintr-un cablu poate aciona ca o anten. Cnd acest lucru se ntmpl, firul practic absoarbe semnale electrice din celelalte fire din cablu sau din surse electrice exterioare cablului. Dac zgomotul electric rezultat atinge un nivel destul de nalt, poate deveni foarte dificil sau chiar imposibil pentru echipamentul de la cellalt capt s disting semnalul de zgomot. Un sistem de transmisie poate fi afectat de unele dintre aceste tipuri de zgomot i imun la altele. De exemplu, transmisia optic este imun la interferenele electrice, deoarece semnalul purtat nu are natur electric, ci optic. Acest lucru o face ideal pentru legturile din exteriorul cldirii, unde transmisia pe firele de cupru ar putea fi influenat de fulgere, cmpuri electrice din alte surse, etc. Cablurile de cupru sunt afectate de interferene electromagnetice de la diferite surse din afara cablului. Totui, cea mai important surs de zgomot pentru cablurile de cupru o reprezint efectul numit crosstalk: interferena semnalelor ntre dou fire din interiorul aceluiai cablu. Una dintre cele mai eficiente metode de prevenire a efectului de crosstalk este torsadarea firelor. Prin torsadare, cmpurile electrice se anuleaz i firele din celelalte perechi nu mai sunt influenate de semnalul din perechea iniial. De multe ori apar ns probleme la ataarea conectorilor. Dup cum se va vedea n studiul de caz din acest capitol, atunci cnd se dorete ataarea unui conector la captul unui cablu trebuie nti detorsadate toate perechile din interiorul cablului. Dac se las o bucat prea mare detorsadat, n acea zon cmpurile electrice generate de fiecare fir dintr-o pereche nu se vor mai anula i va aprea o interferen ntre fire, numit NEXT (Near-End Crosstalk). Acest parametru, NEXT, este specific fiecrui cablu. Cu ct un cablu este terminat (adic mufa este sertizat) cu mai mult atenie, cu att efectul NEXT va fi mai mic. Valoarea maxim a parametrului NEXT este specific fiecrei categorii de cablu (Cat3, Cat5, Cat6): cu ct categoria este mai mare, cu att interferena NEXT trebuie s fie mai mic (adic se impune o calitate mai ridicat a sertizrii cablurilor). Terminarea cu grij a cablurilor este cea mai important metod de prevenire a efectului de crosstalk.

1.2 Medii de transmisie


n seciunile anterioare s-a prezentat modul n care informaiile, reprezentate de bii, ajung pe canalul de comunicaie. nainte ca acestea s fie transmise, trebuie transformate n semnale, acestea putnd fi analogice (continue n timp) sau digitale (discrete).

N i v e l u l f i z i c | 27 O alt clasificare a semnalelor se refer la mediul pe care sunt transmise: electrice (impulsuri electrice ce folosesc suportul de cupru), optice (impulsuri luminoase ce sunt transmise prin fibra optic) i wireless (fr fir, sub form de unde radio sau unde electromagnetice vezi capitolul Wireless). Cele ce folosesc cablul se mai numesc i medii de transmisie ghidate, iar cele fr fir, neghidate. O alt noiune, prin care poate fi clasificat un mediu, este legat de modul n care se pot face transmisia i recepia. Astfel, acestea pot fi full-duplex, transmisia i recepia realizndu-se simultan, sau half-duplex, n care transmisia i recepia se serializeaz (nu putem transmite i primi n acelai timp).

1.2.1 Cablul coaxial


Reele de cablu coaxial au avut perioada de impact maxim la jumtatea anilor `90. Odat cu apariia mediilor torsadate (UTP, STP) popularitatea lor a nceput s scad. Dei ofer o mai bun ecranare i permit distane mai mari, mediul coaxial este unul analogic, spre deosebire de mediul torsadat unde transmisia se realizeaz digital. Eliminarea etapelor de conversie digital-analogic a permis costuri mai reduse pentru echipamentele de reea destinate reelor bazate pe UTP. n plus, folosirea unor perechi distincte pentru transmisie i recepie face din UTP un mediu de comunicaie full-duplex, spre deosebire de reelele bazate pe medii de transmisie coaxiale. Reelele de date bazate pe cablu coaxial mai pot fi nc ntlnite n cazul unor mici reele de cartier, dar n ultimii ani acestea au devenit extrem de rare. Cablul coaxial se mai folosete cu preponderen n reelele de televiziune. Exist o diferen fizic important ntre cablul coaxial folosit n trecut la reelele de calculatoare i cablul folosit n reelele CaTV (reea de televiziune): impedana. n primul caz cablul are o impedan de 50 ohmi (categoria RG58), iar n cel de-al doilea 75 ohmi (RG59). Componentele unui cablu coaxial se pot observa n Fig. 1-22.

1-22 Cablu Coaxial Aadar cablul coaxial are o importan major n reelele de televiziune, care sunt folosite i pentru transmisii de date folosind echipamentele corespunztoare.

1.2.2 Cablul torsadat


Cablul torsadat este format din mai multe fire de cupru izolate, avnd o grosime tipic de 1mm, mpletite dou cte dou (torsadate). Majoritatea cablurilor torsadate folosite pentru reelele locale conin opt fire, aadar patru perechi. Rsucirea firelor dintr-o pereche este necesar pentru anularea efectului de anten caracteristic liinilor lungi. Acest efect ar produce interferene electrice, ceea ce ar conduce la pierderi de date. Pe lng interferenele cauzate de cmpurile electrice induse de alte fire din interiorul aceluiai cablu, pot aprea i interferene din surse exterioare cablului (de exemplu: existena unui motor electric n apropiere, sau, pentru cablurile aflate n exteriorul cldirilor, descrcrile electrice din atmosfer). O metod prin care se ncearc reducerea la minim a interferenelor exterioare este

28 | R e e l e l o c a l e d e c a l c u l a t o a r e transmiterea diferenial. Transmiterea diferenial, sau transmiterea n mod balansat, presupune ca semnalul util transmis s reprezinte diferena dintre semnalele electrice de pe cele dou fire ale unei perechi. Astfel, dac apar interferene electrice de la surse exterioare cablului, acestea vor afecta ambele fire n mod egal, diferena dintre semnale rmnnd constant. O alt metod de prevenire a interferenelor exterioare este ecranarea cablurilor. Ecranarea presupune existena unui nveli format dintr-o plas sau o foi metalic ce are rol de cuc Faraday. Din punct de vedere al ecranrii exist dou feluri de cabluri torsadate: ecranate (shielded) i neecranate (unshielded). Cele neecranate se numesc UTP (unshielded twisted pair) i sunt cele mai folosite n cadrul reelelor locale de calculatoare, fiind, de altfel, i cele mai ieftine (vezi Fig. 1-23).

1-23 Cablu torsadat Dezavantajul cablurilor UTP este c nu pot fi folosite n exteriorul cldirilor, deoarece ar fi supuse unor posibile ocuri electrice foarte mari, ce ar duce la defectarea echipamentelor conectate. De aceea, n exteriorul cldirilor se folosete, n general, cablul ecranat: ScTP (screened twisted pair), STP (shielded twisted pair) sau S/STP (screened shielded twisted pair). ScTP, numit i FTP (foiled twisted pair), are un singur nveli de ecranare exterior i este doar cu puin mai gros dect UTP. Cablul STP are, pe lng nveliul de ecranare identic cu cel al ScTP-ului, cte un nveli separat pentru fiecare pereche. Acest lucru l face mult mai rezistent la interferene, dar i mult mai scump. n plus, fiind mai rigid, este i ceva mai greu de manevrat.

Standarde pentru medii torsadate


Colecia IEEE 802.3 cuprinde standardele ce definesc nivelul fizic i subnivelul MAC al nivelului legtur de date pentru Ethernet. Este definit cte un standard pentru fiecare tip de mediu de transmisie folosit. Astfel, n aceast colecie se regsesc, printre altele, standardele pentru cablu UTP, standardele pentru Ethernet pe cablu coaxial (10BASE5, 10BASE2), Ethernet prin fibr optic (10BASE-F, 100BASE-FX, etc) sau descrierea tehnologiei PoE (Power over Ethernet). Standardul ce conine cerinele pentru transmiterea a 10Mbit/s pe cablu UTP este standardul 10BASE-T. n mod similar, pentru 100 Mbit/s i 1000 Mbit/s (1 Gbit/s) exist 100BASE-T, respectiv 1000BASE-T (numit i Gigabit Ethernet). Numele standardului deriv din unele aspecte legate de mediul fizic: numrul reprezint viteza maxim teoretic exprimat n megabii pe secund. BASE este prescurtarea pentru baseband, ceea ce nseamn c fiecare fir este folosit ca un singur canal de comunicaie, pe care se transmite ntr-o singur frecven. Cu alte cuvinte, nu se aplic nicio form de multiplexare. Litera de la sfrit reprezint tipul cablului, n acest caz, T nseamn torsadat (twisted). Aadar, 100BASE-T este o denumire generic pentru un standard care asigur o vitez de 100Mbit/s pe cablu torsadat. n particular, sunt definite trei forme: 100BASE-TX, 100BASE-T4 i 100BASE-T2. 100BASE-TX indic utilizarea unui cablu de categorie cel puin CAT5 i folosirea a 2 perechi de fire din cele 4. Sufixul T4 indic folosirea a 4 perechi pentru comunicaie. 100BASE-T4 i 100BASE-T2 nu se mai folosesc, fiind standarde nvechite. Toate aceste standarde opereaz pe segmente de cablu cu lungimi de maxim 100 de metri. n 2006 a fost publicat standardul 10GBASE-T pentru conexiuni de 10 gigabit/s prin cablu torsadat. 10Gigabit Ethernet suport doar legturi fullduplex, spre deosebire de celelalte trei standarde ce suport i comunicaii half-duplex. Dup cum s-a menionat la nceputul acestui capitol, cantitatea de informaie transferat ntre emitor i receptor

N i v e l u l f i z i c | 29 este proporional cu frecvena semnalelor pe mediul de transmisie. n cazul semnalelor electrice, frecvena este dat de calitatea cuprului de a fi mai bun sau mai puin bun conductor de curent electric. Aceast calitate depinde de densitatea de impuriti caracteristic materialului. De aceea, exist mai multe categorii de cabluri, o categorie mai mare implicnd performane mai bune.

Categorii de medii torsadate


Categoriile de cabluri torsadate au fost definite n setul de standarde TIA/EIA-568-B de ctre asociaia american Telecommunications Industry Association (TIA). Acesta s-a dovedit a fi standardul cu cea mai larg acceptare n piaa productorilor de soluii pentru nivelul fizic.

UTP Cat1-4
Cablul ncadrat la categoria 1 (CAT1) este cel folosit n serviciile de telefonie clasic (POTS Plain Old Telephone Service) sau soneriile de la ui. Aceast etichetare este cumva improprie, ntruct setul de standarde TIA/EIA-568-B nu recunoate n momentul de fa dect categoriile 3, 5e, 6 i 6a. Standardul C3 a fost folosit n anii `90 pentru TokenRing i pentru Ethernet, ajungnd la viteze de pn la 10Mbit/s. Astzi, acesta este folosit n sistemele de telefonie i poate fi uor adaptat pentru Voice over IP (VoIP) ntruct viteza de 10Mbit/s pe care o ofer depete cu mult cerinele de 0,08Mbit/s ale unui telefon VoIP la ncrcare maxim. n plus, CAT3 este compatibil cu tehnologia Power over Ethernet (definit n standardul 802.3af PoE), tehnologie ce descrie un sistem prin care odat cu datele se transfer i energie electric, tocmai n scopul alimentrii anumitor aparate aflate la distan, precum telefoanele VoIP. Apariia standardului 100BASE-T4 a dus la creterea vitezei la 100Mbit/s prin utilizarea a 4 perechi de fire (i nu doar 2 cum prevedea standardul anterior), ceea ce a permis infrastructurilor mai vechi, deja existente, de cabluri CAT3 s ofere o lime de band mai mare. Cu toate acestea, utilizarea sa pentru comunicaiile de date a sczut odat cu apariia standardului CAT5. Standardul CAT4 oferea o frecven cu puin mai mare dect CAT3, 20MHz fa de 16MHz i era utilizat pentru o variant mbuntit a reelelor Token Ring.

UTP Cat5 i Cat5e


Specificaiile cablului de categoria 5, definite n TIA/EIA-568-B, indic o frecven maxim de 100MHz. CAT5 este folosit n special n reele de 100Mbit/s (FastEthernet), dar poate fi utilizat i pentru Gigabit Ethernet. Odat cu definirea n 2001 a CAT5e (enhanced) n TIA/EIA-568-B, specificaiile variantei originale CAT5 nu mai sunt recunoscute n aceste standarde. UTP CAT5e a devenit cel mai rspndit mediu de transmisie pentru reelele locale. Datorit performanelor mbuntite fa de versiunea original, i datorit unui pre mult mai mic dect al CAT6, CAT5e este cea mai potrivit alegere pentru infrastructura reelelor Gigabit Ethernet. Cu toate acestea, CAT5e menine recomandarea limitrii segmentelor de la cablu la 100 de metri, la fel ca i n cazul celorlalte tipuri de cabluri definite de TIA/EIA. Este de reinut faptul c standardul folosit pentru Gigabit Ethernet, 1000BASE-T, impune utilizarea a 4 perechi de fire torsadate, spre deosebire de versiunile anterioare (10BASE-T i 100BASE-T) care foloseau n comunicaie doar dou perechi. Aadar, standardul de Ethernet ales pentru infrastructur este cel care specific numrul de perechi necesare n comunicaie, i nu standardul de cablu. Categoria specific doar caracteristicile specifice cablului, precum: numrul de perechi existente, pasul de torsadare, diametrul firelor, parametrii NEXT, FEXT i, cel mai important, limita superioar de frecven. Astfel, un cablu CAT5e folosit pentru 100BASE-T (FastEthernet) utilizeaz n comunicaie 2 perechi de fire din cele 4 disponibile, n timp ce acelai cablu pentru infrastructuri de 1000BASE-T (Gigabit Ethernet) necesit toate cele 4 perechi.

30 | R e e l e l o c a l e d e c a l c u l a t o a r e

UTP Cat6 i Cat6a


UTP CAT6 aduce mbuntiri majore, precum impunerea unui pas de torsadare mult mai mic dect la CAT5 i o limit superioar de frecven de 250MHz, fiind conceput special pentru reelele Gigabit Ethernet. Standardul de cablu categoria 6 pstreaz compatibilitatea cu standardele CAT5, CAT5e i CAT3. Dei CAT6 este mai frecvent folosit n reelele Gigabit Ethernet, specificaiile sale permit i implementarea standardului 10GBASE-T (aprut n 2006), dar numai pe segmente de 55 de metri. Pentru a face posibil utilizarea standardului 10BASE-T pe lungimi de 100 de metri, se impune folosirea unui nou tip de cablu, definit ca standard TIA n februarie 2008, i anume categoria 6a. Cablul UTP CAT6a (augmented) opereaz la frecvene de pn la 500MHz (dublu fa de CAT6), fiind destinat infrastructurilor de 10GBASE-T (10 Gigabit Ethernet).

UTP Cat7 i Cat8


Standardul de cablul categoria 7 (CAT7) are un pas de torsadare i mai mic dect CAT6 i, n combinaie cu conectori de tip GG45, poate trata semnale cu banda de frecven de pn la 625MHz. n plus, fiecare dintre cele patru perechi de fire este ecranat individual (pe lng nveliul exterior al cablului). Dei a fost creat pentru 10 Gigabit Ethernet, cea mai folosit tehnologie pentru 10GBASE-T rmne CAT6a. Categoria 7 este i cea mai strict n privina normelor de siguran referitoare la comportamentul cablurilor n situaii de incendiu: viteza de rspndire a focului, substane emanate, etc. Un exemplu care s justifice necesitatea unor astfel de reglementri este cel al cablurilor cu nveliul din PVC, foarte populare datorit pretului sczut. n momentul n care iau foc, aceste cabluri degaj substane foarte toxice omului, fiind total nepotrivite pentru cablrile orizontale. UTP CAT8 este destinat infrastructurilor multimedia, un astfel de cablu putnd transporta simultan oricare patru servicii de tip TV, video, satelit, audio, date, etc. Cablul UTP Cat 8 opereaz cu frecvene de 1200MHz i poate ajunge la maxim 1400MHz.

1-24 Categorii de medii torsadate

N i v e l u l f i z i c | 31

Tipuri de mufri ale cablului UTP


Procedura de fixare a firelor unui cablu ntr-un conector se numete sertizare. Standardul TIA/EIA-568B specific dou moduri n care pot fi ordonate firele la o terminaie a cablului, seciunea corespunztoare fiind probabil i cea mai cunoscut din ntreaga documentaie. Pentru a fi uor identificate, cele opt fire sunt colorate diferit. Culorile folosite pentru cele patru perechi sunt: albastru, verde, portocaliu i maro. Pentru a deosebi firele unei perechi, unul are nveliul de culoare uniform, cellalt avnd doar o dung din culoarea respectiv pe fond alb. Cele dou moduri specificate de TIA/EIA-568-B pentru ordonare firelor se numesc T568A (standard folosit mai mult n Statele Unite) i T568B (folosit n general n Europa). Dup cum se tie, tehnologiile 100BaseTX i 10BaseT folosesc doar dou perechi din cele patru: una pentru transmisie (Tx+ i Tx-) i una pentru recepie (Rx+ i Rx-). Conform standardelor de mai sus, acestea sunt portocaliu i verde (pinii 1,2,3 i 6). ATENIE: firele de Tx precum i firele de Rx trebuie s fac parte din aceeai pereche! Se observ c prima pereche ajunge pe pinii 1 i 2 iar a doua pereche pe pinii 3 i 6. n funcie de corespondena perechilor dintr-un capt cu pinii de la cellalt capt, cablurile se mpart n trei categorii:

Straight-through
Cablul direct (straight-through) are ambele capete sertizate conform aceluiai standard (T568A T568A n SUA, sau T568B - T568B n Europa). Se folosete atunci cnd se conecteaz o staie la un switch sau la un hub. Cele dou capete avnd aceeai ordine a firelor, fiecare pin al conectorului dintr-un capt comunic direct cu pin-ul corespunztor al conectorului de la cellalt capt al cablului.

Crossover
Cablul crossover se folosete la conectarea a dou calculatoare ntre ele, fr a mai folosi un switch sau un hub. Prin felul n care este construit acest cablu, pinul 1 de la un capt va corespunde pinului 3 de la cellalt capt, iar pinul 2 pinului 6. Aceasta nseamn c datele transmise prin perechea Tx de la un capt vor ajunge pe pinii de Rx de la conectorul opus. Astfel, dou calculatoare pot transfera date direct ntre ele, fr a mai trece printr-un alt echipament, dac plcile lor de reea sunt legate printr-un cablu crossover. ntruct singura diferen dintre T568A i T568B este inversarea perechii portocalii cu perechea verde, un cablu crossover poate fi vzut ca avnd un conector sertizat conform T568A i pe cellalt conform T568B. Un astfel de cablu va funciona pentru standardul 10BASE-T sau 10BASE-TX, unde se folosesc doar 2 perechi. Pentru 1000BASE-T (Gigabit crossover) ns, trebuie inversate i celelalte dou perechi (albastru i maro), i, n plus, schimbate ntre ele firele fiecrei perechi (cea dungat cu cea uniform).

Rollover
Cablul de consol (rollover) este folosit atunci cnd se dorete conectarea pe un port de consol a unui ruter. Exist mai multe variante de cabluri ce pot fi folosite pentru a face legtura ntre un PC i un port de consol al unui ruter. ntotdeauna portul calculatorului pentru o astfel de legtur este unul serial (DB-9 sau DB-25). Portul de pe ruter poate fi DB-25 sau RJ-45. Astfel, se poate folosi un cablu ce are ca terminatori o muf DB-9 i una RJ-45 sau un cablu rollover i un adaptor RJ45 DB9 (sau RJ45 DB25).

Auto-MDI/MIDX
Dup cum se poate observa, cnd se realizeaz mufrile cablurilor trebuie avute n vedere dispozitivele conectate, mufrile fiind predispuse la erori umane. Pentru a prentmpina acest lucru, s-a introdus conceptul de Auto-MDI/MDIX. Noiunea de MDI (Medium Dependant Interface) descrie o interfa de la nivelul fizic al stivei OSI pn la mediul de comunicaie folosit pentru a realiza transmisia. Tehnologia Ethernet, ce folosete cablurile twisted-pair, extinde definiia, introducnd conceptul de MDIX (Medium Dependant

32 | R e e l e l o c a l e d e c a l c u l a t o a r e Inteface Crossover). Diferena practic dintre un dispozitiv MDI i unul MDIX este faptul c primul are transmisia pe pinii 1 i 2, iar cel din urm are recepia pe pinii 1 i 2. Astfel, pentru a conecta un device MDI cu unul MDIX, se folosete un cablu straight-through. Prin convenie, s-a decis folosirea standardului MDIX pentru hub-uri i switch-uri, iar pentru restul dispozitivelor dintr-o reea (staii de lucru, rutere, servere) s fie folosit interfaa MDI. Daca dorim s conectm dou dispozitive ce au acelai tip de interfat, trebuie folosit un cablu crossover. Tehnologia Auto-MDI/MDIX detecteaz automat tipul de cablu necesar, prin negocierea direct ntre dispozitivele de la capete, i realizeaz configuraiile pinilor corespunztori (care sunt pentru transmisie i care sunt pentru recepie). Avnd la dispoziie aceast tehnologie, putem mufa toate capetele cablurilor la fel, respectnd unul din standardele de mufare. n practic, este bine s pstrai doar un singur tip de mufare (n general toate cablurile s fie straight-through), dar nainte trebuie s v documentai dac dispozitivele din reea au capabilitatea Auto-MDI/MDIX.

1.2.3 Fibra optic


Fibra optic este cel mai nou mediu de transmisie dezvoltat pentru reelele de calculatoare, avnd numeroase avantaje fa de cablurile de cupru, dintre care cele mai importante sunt viteza de transmisie superioar pe care o suport i imunitatea la interferene electrice. Principalele dezavantaje sunt costul i dificultatea manevrrii i instalrii. Acest mediu este folosit cu preponderen pentru legturi punct la punct la distane mari (peste cteva sute de metri). Un sistem de transmisie pe fibr optic este format dintr-un emitor (LED sau laser), o fibr transportoare i un receptor. Semnalul pe fibr optic este, de fapt, unda luminoas emis de un LED sau de un laser, n funcie de tipul de fibr. S-a observat c pentru anumite lungimi de und semnalul sufer o atenuare mai mic dect pentru altele. n urma studiilor, s-au stabilit trei intervale (ferestre) pentru valorile lungimilor de und la care atenuarea este foarte sczut i care permit emitorului s genereze mai multe semnale luminoase, iar receptorului s detecteze mai multe semnale. Aceste intervale sunt prezentate n Fig. 1-25.

1-25 Intervalele de lungimi de und pentru care atenuarea este minim Notaiile OH- indic faptul c la acele lungimi de und, n mod special, prezena ionilor OH- din materialul fibrei optice produc creteri foarte mari ale atenurii. De aceea, lungimile de und utilizate n sistemele optice sunt: 850nm, 1300nm (pentru fibra multi-mode) i 1310nm, 1550nm (pentru single-mode). Interiorul fibrei optice este format din miez (core) i nveli (cladding), dou tuburi concentrice de sticl, inseparabile, avnd indici de reflexie diferii. Propagarea semnalului se bazeaz pe fenomenul de reflexie total. Cladding-ul, foarte subire, cu diametrul de 125 microni, este nvelit n trei straturi protectoare: un strat numit buffer, de obicei colorat, un nveli rezistent de protecie fabricat din kevlar (din acest material se fabric i vestele anti-glon) numit Aramid Yarn i un nveli exterior din PVC (jacket). Aceste trei straturi au rol de protecie pentru partea din sticl care este foarte fragil.

N i v e l u l f i z i c | 33

1-26 Structura fibrei optice n funcie de modul de transmisie i, implicit, de dimensiunea core-ului, fibrele optice se mpart n dou categorii: single-mode i multi-mode. Fibra multi-mode are dimensiunea core-ului de 50 sau 62,5 microni, acest lucru permind transmiterea semnalului prin reflexie n pereii core-ului. Acest tip de fibr permite distane mai mici dect cea single-mode (deoarece lumina are un drum mai lung de parcurs), ns este mai ieftin i mai uor de folosit (mai uor de terminat cu conectori i de sudat). De asemenea, echipamentele care emit semnal pe fibra optic multi-mode sunt mai ieftine, deoarece folosesc LED-uri (light emitting diode) cu lungimi de und de 850 sau 1300 nanometri. Aceste echipamente cu LED-uri nu sunt periculoase pentru oameni (nu afecteaz ochii). Fibra optic single-mode are o dimensiune a core-ului de 10 microni (mai nou ntre 5 i 8 microni), acesta acionnd ca un ghidaj pentru raza luminoas a semnalului care se transmite astfel aproape fr reflexie. Echipamentele terminale folosesc pentru a emite semnale luminoase lasere cu lungimi de und de 1310 sau 1550 nanometri. Deoarece laserul emite o und luminoas foarte puternic i focalizat, aceste echipamente pot produce leziuni grave ochiului. Aadar, dac vrem s vedem lumin ntr-o fibr optic, cel mai bine ar fi s alegem un echipament multimode sau o lantern! Fibra optic single-mode permite distane mai mari de transmisie dect cea multi-mode, ns este mult mai scump i impune precauii speciale. De asemenea, echipamentele pentru single-mode sunt mai scumpe dect cele pentru multi-mode. Din punctul de vedere al vitezei maxime de transmisie, limita fizic este impus de tehnologia folosit de echipamentele terminale, mai exact de viteza cu care sunt convertite impulsurile electrice n semnal optic, limita teoretic a limii de band pe fibra optic n sine fiind foarte mare (~80 Tbps). Dei, de exemplu, standardul Ethernet 802.3 pentru transmisie pe fibra optic limiteaz lungimea unui segment de fibr optic multi-mode la 2 km i unul de single-mode la 3 km, trebuie menionat c aceste limite se refer la modul de funcionare CSMA-CD (atunci cnd sunt posibile coliziuni). Deoarece n cazul legturilor de fibr optic sunt implicate conexiuni punct la punct, unde transmisia este full-duplex i nu exist posibilitatea apariiei coliziunilor, limitarea distanei maxime la care se poate ntinde un segment de fibr optic este dat numai de puterea de emitere a dispozitivelor terminale, putnd ajunge n cazul transmisiei single-mode i la 120 de km pentru FastEthernet i mult mai mult pentru alte tehnologii.

34 | R e e l e l o c a l e d e c a l c u l a t o a r e

1-27 Categorii de fibr optic i moduri de propagare O comparaie ntre laserele semiconductoare i LED-uri ca surse de lumin este prezentat n tabelul de mai jos: Criteriu Lungimea de und folosit Tip de fibr Viteza de transfer a datelor Distan Cost Durat de via LED 850nm sau 1300nm Multimode Mic Laser 1310nm sau 1550nm Singlemode Mare

Scurt Redus Lung

Lung Ridicat Scurt

Mod de construcie, conectori


Procedeul industrial de construcie al fibrei optice este foarte delicat i, de aceea, foarte scump. Acest procedeu se numete OVD (Outside Vapor Deposition), iar fibra rezultat este sintetic i are o consisten i o geometrie extrem de precise. n linii mari, prin diferite procese chimice i la temperaturi foarte nalte, se obin doi cilindri concentrici de sticl foarte pur, dup care cilindrul astfel rezultat se trage i se alungete pn cnd se obine o fibr care este rulat pe o rol mare. Procesul este continuu, adic pe msur ce se trage, se ruleaz fibra obinut pe rol. Acum se explic de ce fibra optic single-mode este mai scump dect cea multi-mode. Fibra optic folosit n exteriorul cldirilor este diferit de fibra pentru cablarea de interior. Pentru cablrile de exterior se folosete fibra loose-tube ce conine mai multe perechi de fibre, fiecare dintre acestea avnd doar core i cladding. O fibr de exterior poate conine de la cteva perechi pn la mii de perechi de fibre, costul cel mai mare pentru o instalare de exterior fiind manopera i nu fibra propriu-zis. Pentru cablarea de interior putem ntlni dou tipuri de fibr: cabluri cu mai multe perechi, numite tight-buffer i cabluri cu o singur fibr, numite patch-uri. Cablurile cu mai multe perechi sunt folosite pentru cablarea orizontal, n vreme ce patch-urile sunt folosite pentru interconectarea dispozitivelor pe distane mici.

N i v e l u l f i z i c | 35

mbinri
Prin mbinare (splicing) se nelege conectarea permanent a dou cabluri de fibr optic. mbinrile se realizeaz cu ajutorul unor dispozitive numite splice-uri. Caracterul permanent al mbinrii este cel care face diferena ntre un conector i un splice. Totui, terminologia poate crea confuzii, deoarece exist productori ce ofer i splice-uri nepermanente, care pot fi decuplate n scopul efecturii unor reparaii sau rearanjri. mbinrile sunt necesare, spre exemplu, pentru realizarea unor cabluri cu lungimi mai mari dect cele predefinite. Se poate ntmpla adesea ca un instalator de fibr optic s aib n stoc mai multe cabluri cu diverse lungimi (n general productorii ofer cabluri de lungime limitat maxim 6 km) dar s nu aib unul de 10 km. Cu ajutorul splice-urilor se pot mbina dou sau mai multe segmente pentru a obine cablul de lungimea dorit. Realizarea mbinrilor necesit o aliniere foarte precis a celor dou core-uri, astfel nct, la trecerea luminii prin punctul de jonciune s se piard ct mai puin energie. Cu alte cuvinte, trebuie ca aproape toat lumina venit pe o fibr s ajung n core-ul celei de-a doua. Contactul efectiv ntre cele dou tuburi de sticl nu este necesar. Cea mai mare provocare pentru designer-ii de splice-uri este dat de necesitatea alinierii foarte precise. Exist dou mari tipuri de mbinri: mecanice sau prin sudur. mbinrile prin sudur folosesc un arc electric pentru a topi i suda cele dou fibre de sticl. Aceste suduri implic o procedur complicat de aliniere, controlat prin calculator, i reuesc s limiteze pierderile la doar 0,05dB. Costurile manoperei pentru acest tip de mbinare sunt, ns, foarte ridicate, la fel i costurile de timp. mbinrile mecanice sunt rapid de implementat i nu necesit o instruire prealabil, ns pierderile sunt de aproape 0,2dB.

Conectori
Un cablu de fibr optic poate fi terminat n dou feluri folosind splice-uri prin care se realizeaz mbinri permanente sau nepermanente ntre dou fibre sau folosind conectori pentru cuplarea cablului la un echipament de reea. Aceste terminaii trebuie s fie alese n conformitate cu tipul fibrei i instalate astfel nct s minimizeze pierderile de lumin i s nu permit ptrunderea impuritilor. ntruct fibra optic a aprut la sfritul anilor `70, productorii au scos pe pia peste 80 de modele de conectori i numeroase metode de instalare, fiecare ncercnd s scad ct mai mult atenuarea (pierderea de semnal) i reflexia (apariia de semnale reziduale). Dintre acestea, ns, doar cteva tipuri sunt folosite n mod curent. Cei mai populari conectori sunt cei de tip ST (Straight Tip) i SC (Subscriber Connector). Conectorul de tip ST, aprut n 2005, are o form circular, asemntoare ntr-o anumit msur cu BNC-ul i este nc folosit pentru reelele multimode. Cilindrul (ferula) care susine fibra are 2,5 mm, la fel ca majoritatea conectorilor i este confecionat cel mai adesea din ceramic sau metal i rareori din plastic. ntruct mbinarea se face prin presare, se poate ntmpla s nu fie poziionat corect i, de aceea, n caz c se sesizeaz pierderi prea mari, trebuie scos i reconectat. Din pcate, acest conector ocup loc mult i, de aceea, conectorul recomandat n acest moment este SC, care are o form dreptunghiular i o conectare de tip push-pull. SC a fost definit n standardul TIA-568-A, dar nu a fost folosit la nceput deoarece costa de dou ori mai mult dect un conector ST. n ziua de azi este cel mai popular datorit performanelor sale foarte bune, a manipulrii foarte facile i a preului aproape egal cu cel al unui conector ST. Este disponibil i n varianta pentru configuraii duplex. Trebuie menionat c transmisia pe fibr optic se face pe o pereche (un fir pentru TX i unul pentru RX); conectorii duplex permit terminarea ambelor fibre n aceeai muf. Conectorii impun o atenie sporit la terminarea cablurilor de fibr optic, deoarece punctele de jonciune sunt cele care introduc cea mai mare atenuare i unde se poate ntmpla ca lumina fi reflectat napoi n fibr.

36 | R e e l e l o c a l e d e c a l c u l a t o a r e

1-28 Conectori de fibr optic Pentru a face conectorii mai uor de recunoscut, standardul TIA-568 specific un cod al culorilor n care conectorii pentru fibr multi-mode au culoarea bej, iar cei pentru single-mode sunt albatri.

Analiza performanelor unei legturi pe fibr optic


Exist mai multe metode pentru calculul atenurii i pentru estimarea distanei maxime n cazul unei legturi prin fibr optic. Cea mai simpl i mai precis metod este folosirea unui Optical Time Domain Reflectometer (OTDR). Cu ajutorul acestui instrument se obine o valoare exact pentru ntreaga energie ce se pierde prin atenuare (att atenuarea mediului ct i cea introdus de conectori sau de splice-uri). n lipsa unei caracterizri riguroase date de un OTDR, atenuarea unei legturi poate fi estimat dac sunt cunoscute lungimea fibrei i variabilele de atenuare. Variabilele de atenuare sunt conectorii, splice-urile i rata de atenuare pe kilometru specific fibrei. Dac nu pot fi cunoscute valorile exacte pentru toate variabilele, este necesar o estimare a acestora, prin luarea n calcul a cazului cel mai nefavorabil. Tabelul de mai jos include valorile atenurii stabilite prin convenie (EIA/TIA) pentru variabilele de atenuare. Tipul de fibr Multimode 50/125m Lungimea de und 850 nm 1300 nm Multimode 65,5/125 m 850 nm 1300 nm SingleMode 9m 1310 nm 1550 nm 1-29 Atenuri pe fibr optic Atenuarea introdus de un conector se estimeaz la 0,75dB, cea introdusa de un splice mecanic 0,2dB, iar cea aprut n cazul unei suduri 0,05dB. Valorile aproximative de mai sus reprezint cazul cel mai defavorabil. Fiecare productor de echipamente pentru fibr optic ncearc s reduc cu ct mai mult atenuarea pentru fiecare dintre variabile. Pentru a calcula atenuarea total se nmulete lungimea cablului (n km) cu atenuarea corespunztoare tipului de fibr i se adun atenuarea introdus de fiecare splice sau conector de pe legtur. De exemplu, pentru un cablu de 40 de km de fibr single-mode la 1310nm cu 2 conectori i 5 splice-uri de tip sudur, atenuarea total se calculeaz: 40km x 0,4dB/km + 0,05dB x 5 + 0,75dB x 2 = 17,75dBm. La aceast valoare se recomand adugarea unei marje de siguran de cel puin 10dB, deoarece se poate ntmpla ca estimrile s fi fost prea optimiste, specificaiile vendor-ului inexacte sau, pur i simplu, atenuarea introdus de anumite componente s nu fi fost luat n calcul. Ceea ce nseamn Atenuarea/km 3,5 dB 1,5 dB 3,5 dB 1,5 dB 0,4 dB 0,3 dB

N i v e l u l f i z i c | 37 c este nevoie de o putere de aproximativ 27,75 dBm pentru ca semnalul s ajung la destinaie peste nivelul minim de sensibilitate al receptorului. dBm este unitatea folosit n exprimarea puterii msurate raportat la un miliWatt. Bugetul optic reprezint diferena dintre puterea minim de transmisie a emitorului i sensibilitatea receptorului. Este important ca, dup ce legtura a fost stabilit, s se msoare i s se verifice valorile efective ale atenurii, pentru a identifica potenialele probleme de performan. Distanele recomandate de ctre IEEE pentru un cablu de fibr optic n funcie de standardul Ethernet care va fi folosit sunt prezentate n tabelul urmtor. Standard Bandwidth Lungimea (Mbps) de und 10 100 100 1000 850nm 1300nm 850nm 850nm Tipul de fibr Distana recomandat 2 km 2 km 300 m 550 m 220 m 550 m 5 km 70km

10BASE-FL 100BASE-FX 100BASE-SX 1000BASE-SX

Multimode 50/125 m sau 65,5/125 m Multimode 50/125 m sau 65,5/125 m Multimode 50/125 m sau 65,5/125 m Multimode 50/125 m Multimode 65,5/125 m

1000BASE-LX

1000

1300nm 1310nm

Multimode 50/125 m sau 65,5/125 m Singlemode 9/125 m Singlemode 9/125 m

1000BASE-LH

1000

1550

Comparaie ntre fibra optic i cablul UTP


La nceputurile fibrei optice au existat preri conform crora n civa ani firele de cupru vor fi nlocuite n totalitate cu fibr optic. Acest lucru s-a dovedit greit. Printre avantajele pe care le prezint firele de cupru se numr: preul sczut, instalarea facil, faptul c nu necesit atenie sporit n utilizare. Aceste avantaje fac firele de cupru mediul ideal pentru cablri n reele mici i mijlocii, n interiorul cldirilor, unde nu se justific fibra optic. Printre dezavantajele majore ale firelor de cupru se numr: sunt susceptibile la interferene electrice i pot fi folosite pe distane relativ mici - oricum mult mai mici dect echivalentul lor n fibr optic. Fibra are multe avantaje. n primul rnd, lrgimea de band pe care o suport este mai mare dect a cuprului. Un singur cablu de fibr optic multi-mode (ce conine mai multe fibre) poate purta acum aproape 5 milioane de convorbiri telefonice simultane. Fibra are avantajul c nu este afectat de ocurile electrice, de interferena cmpului electromagnetic sau de cderile de tensiune. De asemenea, nu este afectat de substanele chimice corozive din aer, fiind ideal pentru mediile aspre din fabrici. Companiile de telefoane prefer fibra i din alt motiv: este subire i foarte uoar. Canalele cu cabluri sunt, n general, pline pn la refuz; prin nlocuirea cuprului cu fibr se golesc canalele, iar cuprul are o valoare foarte bun pe pia. n plus, 900 de cabluri torsadate de 1 km lungime cntresc 7250 kg. Un cablu ce conine 24 fibre i are aceeai capacitate cntrete doar 60 kg, acest lucru reducnd drastic necesitatea unor echipamente mecanice scumpe care trebuie ntreinute. n fine, fibrele optice introduc o atenuare neglijabil i sunt foarte dificil de interceptat. Acest lucru le ofer o excelent securitate. Motivul pentru care fibra este mai bun dect cuprul este intrinsec. Electronii n micare dintr-un cablu interacioneaz cu ali electroni i sunt influenai de ali electroni din afara cablului. Fotonii dintr-o fibr nu interacioneaz ntre ei i nu sunt afectai de fotonii din exterior.

38 | R e e l e l o c a l e d e c a l c u l a t o a r e Pe de alt parte, fibra este o tehnologie mai puin familiar i necesit o pregtire pe care muli ingineri nu o au. Terminarea fibrei (adic ataarea conectorilor) este un procedeu dificil care necesit mult pregtire i experien. De asemenea, fibra optic este suficient de pretenioas i, de aceea, necesit o utilizare mai atent dect cablul UTP (nu trebuie ndoit prea tare, clcat sau strns dup piciorul mesei, etc). Deoarece transmisia optic este prin natura ei unidirecional, comunicaiile bidirecionale necesit fie dou fibre, fie dou benzi de frecven diferite pe aceeai fibr. Nu n ultimul rnd, interfeele pentru fibr cost mult mai mult dect interfeele electrice. n tabelul urmtor se sintetizeaz asemnrile i deosebirile ntre fibra optic i cablul UTP. Criteriu Tip de semnal Lime de band Predispus la interferene Distan Cost Nivel de cunotiine pentru instalare Fibra optic Optic Mare Nu Lung Ridicat Ridicat Cablu UTP Electric Medie Da Scurt Sczut Sczut

Dei exist dezavantaje, este foarte probabil c n viitor toate comunicaiile de date pe lungimi mai mari de civa kilometri se vor face prin fibr optic.

1.2.4 Caracteristici ale mediilor de transmisie


n prezentarea semnalelor s-a menionat c performanele unei reele sunt direct legate de calitatea semnalului, care este dat de anumite caracteristici (laten, zgomot, atenuare). Pe lng calitatea semnalului, ali factori ce influeneaz o transmisie de date sunt caracteristicile mediului pe care se trimit semnalele.

Frecvena
Frecvena este, probabil, cel mai important parametru al mediului de transmisie. Ea este cea care arat cte semnale pot fi puse pe mediu n unitatea de timp aadar, care este cantitatea maxim de informaie ce ar putea fi transferat. n funcie de acest parametru se definesc metricile necesare msurrii performanei unei reele de calculatoare: limea de band i latena.

Limea de band (Throughput)


Termenul de lime de band (bandwidth) poate fi interpretat n dou feluri. Unul dintre sensuri este acela al diferenei dintre dou niveluri de frecven, adic dimensiunea unei benzi de frecven (msurat n Hertzi). Cel de-al doilea sens al termenului indic numrul maxim de bii transferai sau procesai n unitatea de timp. Cteva exemple de tehnologii i limea de band necesar sunt: Voce(VoIP) 0,1 Mbps Navigare pe Internet (Web) 5 Mbps Interaciuni video, jocuri, EoD (Entertaiment on Demand) , video conferine 10 Mbps HDTV, IPTV, VoD (Voice on Demand) 30 Mbps Dup cum se poate observa, n viitor, pentru a beneficia i de servicii HDTV, cerinele minime ale unei reele n ceea ce privete limea de band vor depi 50 Mbps.

N i v e l u l f i z i c | 39

Latena
Latena reprezint timpul necesar pentru ca un semnal (sau bit) s ajung din punctul A n punctul B. Aceasta este format de timpul de propagare n mediu, la care se adaug latena introdus de echipamente. Unitatea de msur folosit este milisecunda (ms). n general, timpul exprimat este timpul total parcurs pn la destinaie, la care se adaug i timpul de ntoarcere al rspunsului. Aceast metric poart numele de round-trip time (RTT).

Uniti de msur
Unitile de msur reprezint una dintre cele mai frecvente surse de erori n discuiile despre reelele de calculatoare. Erorile in att de unitile de msur propriu-zise, ct i de multiplii acestora. Prima confuzie apare n exprimarea vitezei de transfer. Capacitatea mediului de transmisie este msurat n bii pe secund, n vreme ce cantitatea de date transferat este cel mai adesea exprimat n octei pe secund. n plus, notaiile celor dou uniti de msur sunt foarte similare: n primul caz se folosete notaia bps, iar pentru transferul de date Bps. Atunci cnd un modem se conecteaz la 33,6 k, acetia sunt kbps, iar prin mprirea la 8 se obin 4,2 kiloBytes. n acest caz, dac fereastra browser-ului web arat o vitez de descrcare de 4 k, adic 4 kBytes, conexiunea este considerat de bun calitate. Cu toate acestea, se poate ntmpla ca viteza de transfer afiat s fie mai mare dect viteza modemului. Explicaia cea mai probabil a unei astfel de situaii este c datele transferate sunt necomprimate (fiiere text, spre exemplu, precum codul paginilor HTML) i modemul sau aplicaia de transfer realizeaz o compresie a acestora. Un alt factor n diferena dintre viteza mediului i viteza de transfer a datelor este cantitatea de informaie adugat de stiva de protocoale prin diferitele antete. Pentru o transmisie ce folosete TCP/IP peste Ethernet aceast informaie suplimentar variaz ntre 58 i 98 de octei, ceea ce pentru cadru de maxim 1500 de octei specificat de Ethernet nseamn c pn la 6,5% din informaia transferat nu e informaie util. Aceast valoare este i mai mare dac nu se folosesc doar pachete de dimensiune maxim. Altfel spus, pentru o reea Ethernet, dei aceasta dispune de o lime de band de 10 Mbps, viteza de transfer a datelor este de aproximativ 1,15 MBps. O a doua confuzie important apare n exprimarea multiplilor unitilor de msur. n transmisia de date un kilobit reprezint 1000 de bii, n vreme ce din punctul de vedere al sistemelor de operare un kilobit este compus din 1024 de bii. Noiunea de baud era folosit ca unitate de msur n exprimarea vitezei pentru transmisiile de date, n special pe legturile seriale. Numrul de bauzi indica numrul de schimbri pe secund ale strii mediului de transmisie (de schimbri ale nivelului de tensiune). ntruct o astfel de schimbare sesizat pe mediu poate fi interpretat nu doar ca un singur bit, ci i ca doi sau mai muli, n funcie de modularea folosit, unitatea de msur adecvat este cea de bps (bii pe secund).

Baseband i broadband
Termenii de baseband (n band de baz) i broadband (n band larg) descriu numrul de canale de comunicaie folosite pe un anumit mediu de transmisie. Cu alte cuvinte, pe un fir de cupru transmisia poate fi fcut pe un singur canal de comunicaie (cazul baseband) sau pe mai multe canale (cazul broadband). n cazul comunicaiei n band de baz, pe mediul de transmisie exist un sigur semnal. Acel semnal poate avea mai multe componente, ns din punct de vedere al firului de cupru sau al fibrei optice este un singur semnal (electric sau optic). De exemplu, n telefonia fix din Romnia mediul fizic de transmisie este alctuit din dou fire torsadate. Semnalul este vocea uman transmis prin intermediul telefonului; n cazul n care este folosit un modem pentru dial-up, semnalul const din datele transmise de calculator. Acest sistem de comunicaie este de tip baseband, deoarece cele dou comunicaii nu pot avea loc simultan. Dac ns se utilizeaz o conexiune DSL, atunci pe acelai mediu fizic pot fi realizate simultan i telefonie i transmisie de date.

40 | R e e l e l o c a l e d e c a l c u l a t o a r e n cazul comunicaiei n band larg, pe acelai mediu fizic exist mai multe canale de comunicaie independente, multiplexate ntr-un singur semnal broadband. Un exemplu de transmisie broadband foarte des ntlnit este CaTV. CaTV (Community Antenna Television) este, de fapt, sistemul de televiziune prin cablu comun. Principiul de funcionare este simplu: multiplexarea n frecven. Fiecare canal de televiziune are alocat o band de frecven de 6 MHz. Firma de televiziune prin cablu recepioneaz practic posturile TV de la diferite surse, prin diferite metode (cablu de cupru, fibr optic, antene radio) i compune aceste semnale independente ntr-un singur semnal broadband, folosind o tehnic optimizat de multiplexare n frecven. Acest semnal broadband este trimis pe cablul coaxial ce ajunge acas, n televizor. Acesta, la rndul sau, utilizeaz un demultiplexor ce separ semnalul broadband primit n canalele independente iniiale. Caracteristicile conexiunilor broadband se redefinesc n permanen, odat cu trecerea timpului, i variaz n funcie de ar. n 2004, spre exemplu, o conexiune broadband n Anglia trebuie s ofere minim 2 Mbps, n Germania i Statele Unite serviciile boadband ncep de la 4 Mbps, n vreme ce n Japonia majoritatea furnizorilor de servicii broadband ofer minim 20 Mbps.

1.2.5 Interfee de mare vitez


n paragrafele anterioare s-a descris folosirea modulrilor prezente n standardele de transmisie a datelor la viteze de 100Mbps (IEEE 802.3u [1]) i de 1Gbps (IEEE 802.3ab [2] UTP i IEEE 802.3z [3] fibr optic). Dei majoritatea calculatoarelor vin echipate cu astfel de interfee, acestea nu sunt nici pe departe cele mai mari viteze ce se pot atinge n comunicaiile dintr-o reea. nc din anul 2002 s-a scris primul standard 10 gigabit Ethernet: IEEE 802.3ae [4] (10GE sau 10GbE sau 10GigE). Acest standard oferea comunicaii de 10gbps numai pe fibr optic. n 2006 a fost publicat standardul IEEE 802.3an [5], ce oferea suport pentru transmisia la 10Gbps pe un cablu UTP. Echipamentele necesare transmisiei la 10Gbps vin sub forma unor plci de reea pe cupru (mai rar, dar exist) i preponderent pe fibr optic, sub forma unor convertoare (SFP+ [6] enhanced small form-factor pluggable; XFP [7] 10 Gigabit Small Form Factor Pluggable; XENPACK [8]). Necesitatea unei legturi de o asemenea vitez n LAN este redus. Astfel, tehnologia de transmisie a datelor la viteze de 10Gbps este preponderent folosit n WAN. Nici interfeele de 10Gbps nu sunt cele mai rapide. La ora actual, viteza cea mai mare de transmisie pe o interfa este de 100Gbps, asigurat de standardul IEEE 802.3ba [9]. Acesta a fost prima dat publicat n Noiembrie 2007, fiind rectificat n 2010. Ca i cel de 10Gbps, acesta se adreseaz n primul rnd ISP-urilor (Internet Service Provider), deci va fi o tehnologie aplicat exclusiv n WAN.

1.3 Utilitare pentru gestiunea nivelului fizic


n acest subcapitol se vor prezenta utilitare prin care se identific starea unei interfee n sistemul de operare i utilitarea pentru msura performanelor unei reele de calculatoare (lantea i limea de band). Vor fi abordate sistemele bazate pe Linux, Cisco IOS i Windows.

ping
ping este un utilitar cu ajutorul cruia se poate msura latena pn la o anumit destinaie. Acesta exist pe aproape orice sistem de operare, iar modul lui de folosire este identic.
root@HQ:~# ping www.google.ro PING www-cctld.l.google.com (173.194.39.183) 56(84) bytes of data. 64 bytes from bud01s13-in-f23.1e100.net (173.194.39.183): icmp_seq=1 64 bytes from bud01s13-in-f23.1e100.net (173.194.39.183): icmp_seq=2 64 bytes from bud01s13-in-f23.1e100.net (173.194.39.183): icmp_seq=3 64 bytes from bud01s13-in-f23.1e100.net (173.194.39.183): icmp_seq=4 ^C --- www-cctld.l.google.com ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 19.377/19.504/19.709/0.211 ms ttl=58 ttl=58 ttl=58 ttl=58 time=19.7 time=19.3 time=19.4 time=19.4 ms ms ms ms

N i v e l u l f i z i c | 41 Comanda ping, prezentat mai sus, a fost executat pe un sistem de operare Linux. Se poate observa latena (n jur de 19 milisecunde[ms]) pn la site-ul Google. Pe Linux, utilitarul ruleaz continuu, pn cnd este ntrerupt de un semnal (Ctrl-C).

1.3.1 Linux
Pentru a obine informaii suplimentare legate de opiunile utilitarelor prezentate, folosii paginile de manual (man nume_utilitar).

ethtool
ethtool permite vizualizarea informaiilor despre o interfa. ATENIE: Trebuie rulat cu drepturi privilegiate. Sintaxa este: ethtool nume_interfa.
root@HQ:~# ethtool eth1 Settings for eth1: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: No Link partner advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: g Current message level: 0x00000007 (7) Link detected: yes

Se pot observa capabilitile plcii de reea, viteza la care este conectat (Speed) i, foarte important, dac exist sau nu legtur fizic (Link detected). Pentru a vedea statistici despre numrul total de pachete, cte pierderi, erori sau coliziuni s-au nregistrat, se poate folosi opiunea S:
root@HQ:~# ethtool -S eth1 NIC statistics: rx_packets: 68625100 tx_packets: 39262738 rx_bytes: 75252154165 tx_bytes: 6539536573 rx_errors: 31 [...]

Pe lng vizualizarea diferitelor informaii, ethtool permite configurarea parametrilor ce in de nivelul fizic al unei plci de reea, folosind opiunea s (atenie este s mic, diferit de S mare, prin care vizualizm statisticile) i cuvintele cheie corespunztoare: viteza de transmisie speed X, modul duplex full (transmisia i recepia se fac simultan) sau half (transmisia i recepia sunt serializate) duplex half|full, activarea autonegocierii (protocol prin care se negociaz cu echipamentul de interconectare viteza de tranmisie) autoneg on|off. Vom modifica viteza interfeei la 10Mbps. Pentru acest lucru trebuie s dezactivm i autonegocierea, altfel va fi negociat tot viteza de 100mbps cu dispozitivul de interconectare:
root@HQ:~# ethtool -s eth1 speed 10 root@HQ:~# ethtool eth1|grep Speed Speed: 100Mb/s root@HQ:~# ethtool -s eth1 autoneg off root@HQ:~# ethtool eth1 | grep Speed Speed: 100Mb/s root@HQ:~# ethtool -s eth1 speed 10 root@HQ:~# ethtool eth1 | grep Spe Speed: 10Mb/s

42 | R e e l e l o c a l e d e c a l c u l a t o a r e Se pot configura mai muli parametri simultan (dezactivm autonegocierea i setm pe halfduplex transmisia):
root@HQ:~# ethtool -s eth1 autoneg off duplex half root@HQ:~# ethtool eth1 | grep Duplex Duplex: Half

lspci
Cu ajutorul lui lspci putem vizualiza toate dispozitivele conectate la magistralele sistemului. Plcile de reea sunt prefixate cu Ethernet controller (pentru tehnologia Ethernet):
root@HQ:~# lspci [...] 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 01:06.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0c) 01:07.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0c)

Pentru a obine mai multe informaii (cum se poate adresa, ce driver este folosit, etc.), se poate folosi opiunea v:
root@HQ:~# lspci -v [...] 01:06.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0c) Subsystem: Intel Corporation Device 0040 Flags: bus master, medium devsel, latency 64, IRQ 16 Memory at fdeff000 (32-bit, non-prefetchable) [size=4K] I/O ports at bc00 [size=64] Memory at fdea0000 (32-bit, non-prefetchable) [size=128K] [virtual] Expansion ROM at fdf00000 [disabled] [size=64K] Capabilities: <access denied> Kernel driver in use: e100 Kernel modules: e100 [...]

Se poate observa c driverul folosit este e100 (Kernel driver in use), porturile de transmisie/recepie se gsesc la adresa bc100 (I/O ports at), etc.

iperf
iperf este un utilitar client-server, cu ajutorul cruia putem genera trafic, realiznd msurtori ale vitezei de transmisie. Serverul se pornete cu opiunea s. n mod standard, portul pe care ascult serverul este portul 5001 al protocolului TCP. Dup caz, portul poate fi schimbat, folosind opiunea p, iar protocolul poate fi modificat la UDP cu u. Clientul se pornete adugnd parametrul c, urmat de adresa serverului la care se va conecta, portul specificndu-se la fel ca la server. Mai nti trebuie pornit serverul i pe urm clientul, altminteri clientul se va ntoarce cu eroare deoarece nu ateapt nimeni conexiuni pe portul respectiv. Mai jos este un exemplu de transfer, pe portul 5002 al protocolului TCP: serverul se ruleaz folosind opiunea s (server), iar portul se configureaz cu p (port).
root@HQ:~# iperf -s -p 5002 -----------------------------------------------------------Server listening on TCP port 5002 TCP window size: 85.3 KByte (default) ------------------------------------------------------------

clientul se ruleaz folosind parametrul c (client), urmat de adresa serverului la care se conecteaz. Portul se specific la fel ca la server.

root@BR:~# iperf -c 86.122.60.17 -p 5002 -----------------------------------------------------------Client connecting to 86.122.60.17, TCP port 5002 TCP window size: 49.7 KByte (default) -----------------------------------------------------------[ 3] local 85.122.50.5 port 45827 connected with 86.122.60.17 port 5002 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 33.1 MBytes 26.9 Mbits/sec

N i v e l u l f i z i c | 43 Se observ c s-a realizat conexiunea ntre serverul cu adresa 86.122.60.17 i portul 5002 i clientul cu adresa 85.122.50.5 i portul 45827. Viteza obinut n urma unui transfer de 33.1 MBytes (megabytes sau megaoctei), ce a durat 10 secunde (0.00-10.0sec) este de 26.9 Mbits/sec (megabii pe secund).

1.3.2 Cisco IOS


Pe IOS exist echivalentul nivelului privilegiat din Linux. Pentru a trece din modul normal n modul privilegiat (global), se folosete comanda enable (se observ cum se schimb prompt-ul din > n #). Din modul global (HQ#) nu se pot executa dect comenzi de vizualizare/inspectare (n general comenzile care ncep cu show). Pentru a putea face configuraii, trebuie activat modul de configurare, folosind comanda configure terminal. Pentru a ne ntoarce la modurile anterioare, putem folosi comanda exit.
HQ>enable HQ# HQ#configure terminal Enter configuration commands, one per line. HQ(config)# HQ(config)#exit HQ#

End with CNTL/Z.

Pe echipamentele Cisco aflm toate informaiile despre o interfa folosind comanda show interface din nivelul global. Trebuie precizat c pe IOS, orice comand poate fi prescurtat la un numr arbitrar de litere, cu condiia s nu mai existe alt comand ce ncepe cu acele litere. De exemplu, o form acceptat pentru show interfaces este sh int sau sh interfaces. Rularea comenzii show interfaces fr niciun parametru va duce la afiarea tuturor interfeelor, mpreun cu detalii despre acestea. Pentru a selecta doar o interfa, comanda poate fi succedat de numele interfeei:
HQ#sh interfaces fastEthernet 0/1 FastEthernet0/1 is administratively down, line protocol is down (disabled) Hardware is Lance, address is 0001.97a3.0702 (bia 0001.97a3.0702) MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set ARP type: ARPA, ARP Timeout 04:00:00, Last input 00:00:08, output 00:00:05, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0 (size/max/drops); Total output drops: 0 Queueing strategy: fifo Output queue :0/40 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 input packets with dribble condition detected 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 2 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out

Se poate observa starea interfeei (aceasta este nchis: is ... down). Line protocol is down nseamn c protocolul de nivel 2 (legtur de date) este nchis. De asemenea, sunt prezentate statistici despre traficul pe interfa (numr de pachete, erori, etc.). n Cisco IOS exist noiunea de help prin folosirea semnului ntrebrii (?) la finalul unei pri dintr-o comand. Dac dorim s vizualizm ce opiuni exist pentru comanda show interfaces, vom executa show interfaces ?:
HQ#show interfaces ? Dot11Radio Dot11 interface Ethernet IEEE 802.3 FastEthernet FastEthernet IEEE 802.3 GigabitEthernet GigabitEthernet IEEE 802.3z Loopback Loopback interface Serial Serial Tunnel Tunnel interface Virtual-Access Virtual Access interface

44 | R e e l e l o c a l e d e c a l c u l a t o a r e
Virtual-Template Vlan switchport trunk Virtual Template interface Catalyst Vlans Show interface switchport information Show interface trunk information

Mai departe, dac dorim s vedem ce opiuni exist pentru show FastEthernet:
HQ#show interfaces FastEthernet ? <0-9> FastEthernet interface number

interfaces

1.3.3 Windows
Pentru a putea vizualiza starea interfeelor pe Windows, folosim utilitarul netsh:
C:\Windows\system32>netsh interface show interface Admin State State Type Interface Name ------------------------------------------------------------------------Enabled Disconnected Dedicated Local Area Connection Enabled Connected Dedicated VMware Network Adapter VMnet1 Enabled Connected Dedicated VMware Network Adapter VMnet8 Enabled Connected Dedicated Wireless Network Connection Enabled Disconnected Dedicated Wireless Network Connection 2

Se pot filtra informaiile afiate, dup numele interfeei:


C:\Windows\system32>netsh interface show interface name="Local Area Connection" Local Area Connection Type: Dedicated Administrative state: Enabled Connect state: Disconnected

1.4 Scenarii de utilizare


Administratorul unei reele are un switch n infrastructura pe care o administreaz, al crui port a rmas blocat n modul half-duplex. Orice dispozitiv conectat la el va avea acces la reea, doar dac are portul configurat manual n modul half-duplex, deoarece nici autoneogicierea nu mai funcioneaz corespunztor. Bineneles, acest lucru atrage dup sine, numeroase dezavantaje. ntruct switch-ul nu mai are alte porturi libere, pn la achiziionarea unuia nou aceasta este singura soluie prin care putem oferi acces staiei respective. n cele ce urmeaz, vom analiza problemele ce apar.
Sw9

2 2 8

3
Sw3

3
Sw2

2
BR

M 3
ISP

7 A

1 B 3 4

4
Sw1

4 2 1

1
Sw7

9
Sw8

2 3

2 3

4
HQ

4 D

8 E

29 F 21 4 W

1-30 Infrastructur reea

N i v e l u l f i z i c | 45 n Fig. 1-30 este reprezentat ntreaga infrastructur. Switch-ul cu problemele menionate este Sw9, pe portul 7, cel la care este conectat staia A. Pentru a vedea cum afecteaz performanele legtura half-duplex a staiei A, vom folosi staiile A i B, ambele rulnd sistemul de operare Linux. Ambele staii folosesc interfaa eth0 pentru conexiunea la Sw9. Vom trece interfaa staiei A n mod half-duplex, fr autonegociere, pentru a avea acces la reea (conform problemei descrise):
root@A:~# ethtool eth0 | grep "Link detected" Link detected: no root@A:~# ethtool -s eth0 duplex half autoneg off root@A:~# ethtool eth0 | grep Duplex Duplex: Half root@A:~# ethtool eth0 | grep "Link detected" Link detected: yes root@A:~# ethtool eth0 | grep Speed Speed: 100Mb/s

Se observ c legtura este activ, viteza de conectare fiind de 100Mbps. Pentru a msura viteza de transmisie, vom porni iperf, ntre staia A (adresa 172.16.5.153) i staia B (adresa 172.16.6.107). Pe staia B se pornete serverul iperf, folosind optiunea s (server):
root@B:~# iperf -s -----------------------------------------------------------Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------

Pe staia A se execut comanda iperf, specificnd parametrul c (s ruleze n mod client) i adresa serverului (staia B - 172.16.6.107). Portul folosit va fi cel implicit (5001).
root@A:~# iperf -c 172.16.6.107 -----------------------------------------------------------Client connecting to 172.16.6.107, TCP port 5001 TCP window size: 16.0 KByte (default) -----------------------------------------------------------[ 3] local 172.16.5.153 port 57836 connected with 172.16.6.107 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.1 sec 116 MBytes 96.2 Mbits/sec

Se observ c viteza obinut (96.2 Mbits/sec) este aproape de viteza plcii de reea. Vom rula din nou clientul, adugnd parametrul suplimentar d (dual). Acest parametru va realiza transfer de informaie ntre client i server, n ambele sensuri, simultan.
root@A:~# iperf -c 172.16.6.107 -d -----------------------------------------------------------Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ----------------------------------------------------------------------------------------------------------------------Client connecting to 172.16.6.107, TCP port 5001 TCP window size: 67.1 KByte (default) -----------------------------------------------------------[ 5] local 172.16.5.153 port 57838 connected with 172.16.6.107 port 5001 [ 4] local 172.16.5.153 port 5001 connected with 172.16.6.107 port 54163 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 95.6 MBytes 79.8 Mbits/sec [ 5] 0.0-10.1 sec 2.62 MBytes 2.18 Mbits/sec

Suma vitezelor obinute n cazul transmisiei simultane, n ambele direcii, nu depete pragul de 100mbps (viteza plcii) i viteza ntr-o direcie a sczut. De asemenea, se observ coliziunile aprute, folosind statisticile utilitarului ethtool:
root@A:~# ethtool -S eth0 | grep collision collisions: 23393

Se va rula clientul iperf cu opiunea -d, de pe staia C (adresa 172.16.5.160), care este conectat la reea, printr-o legtur fr probleme.
root@C:~# ethtool eth0 | grep Speed Speed: 100Mb/s root@C:~# ethtool eth0 | grep Duplex Duplex: Full root@C:~# ethtool eth0 | grep Auto

46 | R e e l e l o c a l e d e c a l c u l a t o a r e
Auto-negotiation: on root@C:~# iperf -c 172.16.6.107 -d -----------------------------------------------------------Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ----------------------------------------------------------------------------------------------------------------------Client connecting to 172.16.6.107, TCP port 5001 TCP window size: 86.8 KByte (default) -----------------------------------------------------------[ 5] local 172.16.5.160 port 57837 connected with 172.16.6.107 port 5001 [ 4] local 172.16.5.160 port 5001 connected with 172.16.6.107 port 54162 [ ID] Interval Transfer Bandwidth [ 5] 0.0-10.0 sec 111 MBytes 93.2 Mbits/sec [ 4] 0.0-10.2 sec 98.9 MBytes 81.6 Mbits/sec

Se poate observa c viteza nsumat pe ambele direcii ajunge n jurul valorii de 180Mbps. Acesta este beneficiul unei legturi full-duplex: se pot transfera informaii n ambele direcii, simultan, la viteza plcii de reea. n cazul unei legturi half-duplex, transmisia i recepia sunt serializate, viteza limitndu-se la maximul plcii de reea. Se observ i lipsa coliziunilor pe serverul (B) i pe clientul (C) conectai pe legturi full-duplex:
root@B:~# ethtool -S eth0 | grep collisions collisions: 0

root@C:~# ethtool -S eth0 | grep collisions collisions: 0

Aadar, o legtur half-duplex njumtete viteza de transmisie i introduce coliziuni (vezi capitolul Reele Ethernet) pe conexiunea respectiv.

1.5 Studiu de caz


Sertizarea cablului UTP
Pentru sertizarea unui cablu UTP CAT5 este necesar un clete de sertizat i un conector 8P8C (numit i RJ45). Prima operaie const n nlturarea izolaiei din jurul firelor din cablu. Trebuie acordat o atenie deosebit la detorsadarea firelor: atunci cnd se ndeprteaz manonul de plastic i se detorsadeaz perechile pentru a putea introduce firele n muf, trebuie ca bucata de cablu detorsadat sa fie ct mai mic. n caz contrar va aprea o interferen ntre fire ce produce efectul de crosstalk. Practic, se taie 3-4 cm din manon, se detorsadeaz firele, se aranjeaz n ordinea dorit, iar apoi, cu ajutorul unor lame ale cletelui de sertizat, se taie firele astfel nct dimensiunea zonei neizolate s reprezinte aproximativ din lungimea mufei. n acest fel, firele vor ajunge pn n captul mufei asigurnd un contact electric perfect, iar bucata detorsadat va fi aproape inexistent, minimiznd riscul apariiei crosstalk-ului. Mufele RJ-45, folosite pentru terminarea cablurilor UTP, conin 8 lcauri n care trebuie aduse cele 8 fire. Pinii conectorului sunt nite lamele metalice care, iniial, se afl deasupra lcaului, pentru ca firul de cupru s poat intra. Prin folosirea cletelui de sertizat lamelele sunt mpinse n lcaurile unde se gsesc firele. Prin apsare, lamelele vor strpunge firul de cupru, realizndu-se astfel contactul electric. Pentru realizarea unui patch UTP straight-through firele trebuie s se gseasc n ambii conectori, fie n ordinea impus de T568A, fie T568B. Acelai standard trebuie respectat i la un capt i la cellalt. Pentru realizarea unui patch UTP crossover perechea verde dintr-un capt este inversat cu perechea portocalie din cellalt. Cu alte cuvinte, una din terminaii respect T568A, cealalt T568B. Pentru realizarea unui patch UTP rollover, se sertizeaz un capt al cablului folosind unul dintre standarde, iar la cellalt capt firele se aeaz n ordine invers (n oglind) pinul 1 va corespunde pinului 8, pinul 2 va corespunde pinului 6, etc. Ordinea firelor pentru cele dou standarde se regsete n Fig. 1-31. Dac nu se respect standardul, exist un risc major ca cele dou fire folosite pentru Rx sau Tx s nu fac parte din aceeai pereche, i s nu-i mai anuleze reciproc cmpurile electrice. Practic, torsadarea nu mai

N i v e l u l f i z i c | 47 acioneaz corect si sunt generate interferene ce altereaz semnalul electric. (Cu alte cuvinte, ori nu va merge, ori va merge extrem de prost!)

1-31 Standarde de mufare (T568B T568A) n general, n Europa se folosete standardul 568B , iar n Statele Unite 568A. De ce este important de tiut i de respectat acest lucru? Teoretic, nu conteaz care din acest standard este utilizat att timp ct ambele mufe (de la cele dou capete) sunt fcute folosind acelai standard. Practic ns, la construirea i administrarea unei reele de mari dimensiuni lucreaz muli oameni, care nu ntotdeauna comunic ntre ei. Aadar, pentru reducerea erorilor umane este necesar respectarea aceluiai standard.

1.6 Concluzii
n acest capitol am artat rolurile nivelului fizic n transmisia de date ntr-o reea de calculatoare. Datele pot fi analogice (caz n care nu pot fi reprezentate complet dect cu o precizie infinit precum vocea uman) sau digitale (adic sunt cuantificabile, reprezentate printr-un numr finit de numere precum un fiier text). Unitatea de msur a datelor digitale este bitul. Datele sunt trimise n reea folosind semnale analogice sau digitale. Semnalele analogice sunt folosite prin varierea parametrilor: amplitudinea, frecvena i faza. Pentru a trimite date folosind semnale digitale, se folosesc diferite codificri (Manchester, Manchester Diferenial, NRZ-I, NRZ-L, MLT-3, PAM-5). Se pot folosi semnale analogice i pentru a trimite date digitale. Aceast metod poart numele de modulaie. Mediile de transmisie folosite sunt cablul de cupru (prin impulsuri electrice), fibra optic (prin impulsuri luminoase) i aerul (vezi capitolul Wireless). Cablurile de cupru pot fi coaxiale (care actualmente nu se mai folosesc n reelele de calculatoare, ci numai n reelele de televiziune) i torsadate. Firele din cablu sunt torsadate dou cte dou (adic mpletite unul cu altul) pentru a anula diferite interferene. Torsadarea este eficient deoarece interferenele afecteaz n mod egal ambele fire. O deosebire important ntre fibra optic i cablul de cupru este faptul c fibra nu este predispus la interferene. Astfel, aceasta se folosete cu preponderen n exterior. Un dezavantaj al fibrei este costul i manevrabilitatea sczut: este destul de greu de realizat o cablare structurat, numai pe fibr optic, n interiorul unei cldiri. Limea de band, indicnd cte date pot fi trimise ntr-un interval de timp, se msoar n bii pe secund. O eroare frecvent este confundarea biilor pe secund (bps) cu octei/bytes pe secund (Bps). Biii pe secund msoar viteza de transmisie, iar octeii pe secund msoar cantitatea de informaii. Raportul dintre acestea este de 8 (bii) la 1 (octet). Latena este un alt indicator de performan foarte important: de exemplu atunci cnd nu putem realiza videoconferine deoarece se vede sacadat, s-ar putea ca latena s fie prea mare. Aceasta se msoar, n general, n milisecunde (ms) i reprezint timpul necesar unui bit de a ajunge dintr-un punct n altul al reelei.

48 | R e e l e l o c a l e d e c a l c u l a t o a r e

1.6.1 Linux
Comand ping ethtool lspci iperf Descriere Msoar latena pn la o adres specificat Vizualizare conexiune i statistici (-S), configurri parametri (-s) pentru o interfa Vizualizare periferice conectate la magistrala sistemului Generare trafic i msurare lime de band

1.6.2 Cisco IOS


Comand enable configure terminal ping show interfaces ? Descriere Activarea modului privilegiat Activarea modului de configurare Msoar latena pn la o adres specificat Vizualizare conexiune i statistici pentru o intefa Afieaz toate opiunile posibile

1.6.3 Windows
Comand ping netsh interface show interface Descriere Msoar latena pn la o adres specificat Vizualizare conexiune i statistici pentru o intefa

N i v e l u l f i z i c | 49

1.7 ntrebri
1. 2. Care este rolul nivelului fizic? De a face corecia erorilor la datele primite De a trimite pe un mediu date sub form de semnale De a verifica adresa surs i a valida datele n funcie de aceasta Cripteaz biii transmii pentru a eficientiza transferul Care din urmtoarele afirmaii este adevrat: Fibra optic este folosit preponderent la cablrile structurate. Fibra optic nu este expus interferenelor electro-magnetice. Cablul de cupru nu este sensibil la interferene de orice fel. Cablul de cupru are firele torsadate pentru a amplifica semnalul i a elimina interferenele.

3. Se presupune un canal ideal de comunicaie, ce are ca vitez de transfer 10Mbps. Dndu-se 1GB de date, n ct timp se realizeaz transferul? 3072/1,25 secunde 3000/10 secunde 3000/1,25 secunde 3000/1 secunde 4. Pentru a configura un ruter, dorim s ne conectm la consola acestuia folosind un cablu: straight-through crossover rollover nu conteaz ordinea, s fie la fel la ambele capete

5. Pentru a putea conecta fibra optic la un echipament, trebuie terminat cu un conector. Procedeul prin care se adaug acest conector se numete: Sertizare Mufare Sudur (splice) Nu are nicio denumire

50 | R e e l e l o c a l e d e c a l c u l a t o a r e

1.8 Referine
[1] Wikipedia contributors (2012). Fast Ethernet [Internet]. Wikipedia, The Free Encyclopedia; 2012 May 23, 12:27 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=Fast_Ethernet&oldid=493980964 [25.08.2012]. [2] IEEE P802.3ab 1000BASE-T Task Force (1999). IEEE 802.3 Standards. IEEE. Accesat la http://www.ieee802.org/3/ab/index.html [25.08.2012]. [3] IEEE P802.3z Gigabit Task Force (1998). IEEE 802.3 Standards. IEEE. Accesat la http://www.ieee802.org/3/z/index.html [25.08.2012]. [4] IEEE P802.3ae 10Gb/s Ethernet Task Force (2002). IEEE 802.3 Standards. IEEE. Accesat la http://www.ieee802.org/3/ae/index.html [25.08.2012]. [5] IEEE P802.3an 10GBASE-T Task Force (2006). IEEE 802.3 Standards. IEEE. Accesat la http://www.ieee802.org/3/an/index.html [25.08.2012]. [6] Wikipedia contributors (2012). Small form-factor pluggable transceiver. Wikipedia, The Free Encyclopedia; 2012 August 12, 14:17 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=Small_formfactor_pluggable_transceiver&oldid=507042893 [31.08.2012]. [7] Wikipedia contributors (2012). XFP transceiver. Wikipedia, The Free Encyclopedia; 2012 April 5, 01:14 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=XFP_transceiver&oldid=485633876 [31.08.2012]. [8] Wikipedia contributors (2012). XENPACK. Wikipedia, The Free Encyclopedia; 2011 December 22, 03:06 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=XENPAK&oldid=467129675 [31.08.2012]. [9] IEEE P802.3ba 40Gb/s and 100Gb/s Ethernet Task Force (2010). IEEE 802.3 Standards. IEEE. Accesat la http://www.ieee802.org/3/ba/ [25.08.2012].

P a g e | 51

2 Reele Ethernet
Ce se nva n acest capitol? Cine este Radia Perlman a fost implicat n standardizarea reelelor Ethernet nc de la nceputul anilor 80. Cea mai cunoscut contribuie a sa o reprezint Spanning Tree Protocol. Numeroasele sale contribuii n domeniul tehnologiilor de nivel legtur de date i de reea i-au adus renumele de Mother of the Internet. Am discutat n capitolul anterior despre clasificarea reelelor n funcie de distana maxim la care acestea pot oferi conectivitate. n practic, includerea unei reele ntr-una din cele trei categorii, LAN, MAN i WAN, ia drept criteriu suita de protocoale specifice. n cazul reelelor locale cele dou arhitecturi folosite pentru implementare sunt Ethernet i WLAN (Wireless LAN). Ethernet a devenit tehnologia dominant n reelele locale nc din anii `90. Primul standard Ethernet a fost publicat n 1980 de un consoriu format din firmele DEC, Intel i Xerox, reunit sub numele DIX. Cu cteva modificri minore, acesta a devenit, trei ani mai trziu, standardul IEEE 802.3. IEEE i-a asumat un rol important n standardizarea tehnologiilor de nivel legtur de date. Astfel, pe lng suita de standarde folosite n implementarea Ethernet i WLAN, respectiv standardele 802.3 i 802.11, IEEE a definit Bluetooh (802.15), WiMax (802.16), precum i numeroase alte soluii de comunicaie de nivel legtur de date. Din punctul de vedere al reelelor locale o categorie important de standarde IEEE o reprezint familia 802.1. Din aceasta fac parte standarde ce definesc protocoale de asigurare a redundanei, precum STP i RSTP (802.1d, respectiv 802.1w), standarde pentru reele locale virtuale (802.1q, prezentat n capitolul 5), precum i arhitectura de securitate 802.1x. Metode de acces la mediu de comunicaie Formatul datelor n reelele Ethernet Comutarea cadrelor Asigurarea redundanei

2.1 Accesul la mediu


Puine tehnologii au strnit controverse att de intense precum cele din jurul standardelor Ethernet. Central acestei dezbateri a fost conflictul ntre pragmatismul ingineresc i rigoarea matematic a soluiilor de comunicaie. Problema iniial a pornit de la cerina de a asigura comunicaia peste un mediu partajat. Un prim rspuns a propus o metod de arbitrare a accesului la mediul de comunicaie, prin stabilirea mai nti a unei ordini ntre participani, i apoi prin introducerea unui jeton ce oferea dreptul de a trimite date. Astfel fiecare nod de comunicaie i cunoate cei doi vecini: cel de la care ateapt date i cel la care trimite datele. Dac n loc de date primete un jeton (un cadru special de date), atunci poate nlocui acest jeton cu propriile sale date, sau, alternativ, poate trimite mai departe jetonul, oferind astfel staiei urmtoare posibilitatea de a transmite date n reea. Aceast arhitectur poart numele de Token Ring. Dei la nivel logic construiete legturi dedicate ntre nodurile adiacente, la nivel fizic se bazeaz pe o topologie stea cu echipamente ce pot funciona i ntr-un mediu partajat. Cel de al doilea rspuns la problema comunicaiei ntr-un mediu partajat nu a mai ncercat s previn coliziunile, ci doar s le detecteze. n cazul detectrii unei coliziuni, transmisia este sistat, iar fiecare surs are responsabilitatea retrimiterii cadrului implicat n coliziune. Acesta este principiul pe

52 | R e e l e l o c a l e d e c a l c u l a t o a r e baza cruia a fost construit standardul Ethernet: un principiu ingineresc ce spune c, dac rata coliziunilor (i a retransmisiilor) este mic, nu merit pltit costul arbitrrii accesului la mediu.

2.1.1 Reele Ethernet n mediu partajat


Primele standarde Ethernet foloseau drept mediu de transmisie cablul coaxial, oferind tuturor nodurilor acces la acelai mediu de comunicaie partajat. Accesul simultan solicit att implementarea unei metode de arbitrare a comunicaiei, ct i detectarea conflictelor aprute n cazul transmisiilor simultane, conflicte denumite coliziuni. Se primesc date pentru transmisie Asambleaz cadrul

Nu

Mediu liber? Da ncepe transmisia

A aprut o coliziune? Nu Transmite cadrul urmtor

Da

Transmite semnal de bruiaj

ncercri= ncercri+1

Ateapt q microsecunde

Mai sunt cadre? Nu Transmisie ncheiat

Da

ncercri < max_ncercri? Nu Abandoneaz transmisia 2-1 CSMA/CD

Da

Iniiaz algoritmul de backoff

R e e l e E t h e r n e t | 53 O coliziune apare n mediul de comunicaie partajat atunci cnd bii trimii de dou sau mai multe staii diferite sunt pe mediul de comunicaie n acelai timp, ajungndu-se astfel la o compunere a undelor ce transport semnalele respective. Soluia de arbitrare pentru Ethernet a accesului la mediul partajat poart numele de CSMA/CD (Carrier Sense Multiple Access / Collision Detection), prezentat n 2-1. Primul pas al algoritmului CSMA/CD const n verificarea conectivitii la mediul fizic i a absenei semnalului de date. Pentru reelele bazate pe cablu coaxial cele dou teste sunt realizate simultan prin verificarea prezenei undei purttoare. Transmisia unui semnal de date presupune compunerea undei purttoare cu unda asociat codificrii analogice a semnalului de date, constnd deci ntr-o alterare a undei purttoare. Dac mediul de transmisie este accesibil i neocupat, orice staie poate ncepe transmisia propriului semnal de date, existnd astfel posibilitatea ca mai multe noduri s nceap s comunice simultan. n urma detectrii undei compuse fiecare staie ce transmitea date oprete transmisia i ncepe trimiterea unui semnal de bruiaj (jam signal) compus din 32 de bii, ce alterneaz simbolurile corespunztoare pentru 1 i 0. Dup ncheierea trimiterii semnalului de bruiaj fiecare staie implicat n coliziune iniiaz mecanismul de retransmisie pentru cadrul de date afectat de coliziune. Sunt definii doi parametri ce influeneaz funcionarea mecanismului de retransmisie. Primul parametru stabilete numrul maxim de ncercri de retrimitere a pachetului. Cel de al doilea definete ct timp ateapt staia nainte de a ncepe retransmisia, conform algoritmului de backoff. Algoritmul de backoff folosete numrul de retransmisii fcute deja pentru respectivul cadru pentru a defini mai nti un interval de valori pentru parametrul k. Parametrul k va putea lua orice n valoare ntreag n intervalul [0, 2 -1], unde n reprezint numrul de ncercri de transmitere a cadrului. Valoarea final a timpului de ateptare anterior ncercrii unei retransmisii se obine prin multiplicarea parametrului k cu timpul de transmisie a cadrului de lungime minim (este vorba de slot time, prezentat n seciunea 2.2.3. De exemplu, n cazul unei reele Ethernet valoarea slot time este de 51.2 s. n cazul apariiei unei coliziuni ntre dou staii, fiecare dintre acestea va ncerca retransmisia cadrului dup 0 sau 51.2 s. Astfel, pentru prima retransmisie probabilitatea reapariiei unei coliziuni este de 50%. Dac retransmisia se soldeaz cu o nou coliziune, fiecare dintre cele dou staii transmit semnalul de bruiaj i iniiaz algoritmul de backoff pentru cea de a treia ncercare de transmitere a respectivului cadru. Se genereaz local o nou valoare aleatoare pentru k, de data aceasta n intervalul [0, 3]. Astfel, fiecare dintre cele dou noduri implicate n a doua coliziune va alege aleator un timp de ateptare ce poate avea una dintre urmtoarele 4 valori: 0 s, 51.2 s, 102.4s sau 153.6s, reducnd probabilitatea unei noi coliziuni la 25%.

2.1.2 Full-duplex Ethernet


Soluiile pentru asigurarea conectivitii n reele Ethernet au evoluat spre medii de transmisie dedicate. n cazul cablului torsadat, precum i al fibrei optice, sunt folosite fire diferite pentru transmisia i recepia datelor. Astfel, din punctul de vedere al nivelului fizic cele dou comunicaii sunt izolate. Un astfel de mediu de transmisie poart denumirea de mediu full-duplex. Exist dou moduri de transmisie (numite i duplex): half-duplex i full-duplex. n modul de transmisie half-duplex o staie nu poate trimite i primi n acelai timp: ori transmite, ori primete. De exemplu, cablul coaxial este prin definiie un mediu pentru half-duplex, pentru c transmisia i recepia se realizeaz pe acelai fir. Pe cablurile torsadate, ns, prin folosirea unei perechi separate pentru transmisie (numit Tx) i unei alte perechi pentru recepie (numit Rx) se poate asigura suportul pentru comunicaia full-duplex. Pentru ca o comunicaie s fie full-duplex trebuie ca att mediul de transmisie, ct i participanii la conversaie s ofere suport full-duplex. Cablul torsadat reprezint un mediu de comunicaie fullduplex, dar, dac se folosete un hub sau o plac de reea configurat half-duplex, comunicaia se va realiza half-duplex.

54 | R e e l e l o c a l e d e c a l c u l a t o a r e Switch-urile i plcile de reea actuale ofer cel mai adesea suport att pentru comunicaia fullduplex, ct i pentru cea half-duplex. Modul de funcionare poate fi configurat manual (din driver-ul plcii de reea sau din interfaa switch-ului), sau automat, n urma negocierii. Dac autonegocierea nu reuete i nu sunt fcute setri manuale, transmisia se va realiza n modul half-duplex. Exist totui interfee i echipamente de reea care, pentru a costa ct mai puin, nu au memorii tampon la nivelul portului, fcnd astfel imposibil transmiterea i recepia simultan. ntr-un astfel de caz interfaa va funciona half-duplex, impunnd activarea mecanismului CSMA/CD de acces la mediu. Rularea CSMA/CD n cadrul unei reele bazate pe un mediu dedicat, precum cel oferit de reelele de cablu torsadat sau cele de fibr optic, difer doar prin definirea coliziunilor. Paii de trimitere a semnalului de bruiaj, a activrii mecanismului de retransmisie i a calculrii algoritmului de backoff rmn neschimbai. n reelele half-duplex bazate pe cablu torsadat sau pe fibr optic folosirea simultan a firelor de transmisie i recepie de la nivelul unei interfee este definit drept o coliziune. n cazul full-duplex, nu se mai folosete modul de acces la mediu CSMA/CD pentru c aceasta nu mai este o reea de tip mediu partajat. Mai exact, dac este posibil transmiterea i primirea de date n acelai timp, nu mai pot avea loc coliziuni. Astfel, n cadrul unei transmisii full-duplex, nu se mai realizeaz detecia de coliziuni. Limitrile de distan din standardele Ethernet sunt specificate pentru modul de acces la mediu CSMA/CD, nefiind valabile pentru full-duplex. Aceste limitri sunt cel mai adesea calculate astfel nct s permit tuturor staiilor conectate s sesizeze apariia unei coliziuni. n condiiile full-duplex singura limitare a distanei este cea tehnologic. Un exemplu este FastEthernet pe fibr optic singlemode, a crui distan este limitat de standardul IEEE 802.3 la 3000 m n condiii de acces CSMA/CD; ns, pentru o legtur punct-la-punct full-duplex, se pot folosi transceiver-uri puternice, obinnd o legtur de pn la 120 km. Standardul 10 Gigabit nu mai prevede un mod de comunicaie half-duplex ci doar full-duplex, motiv pentru care toi parametrii legai de apariia coliziunilor (numr de ncercri, timp de backoff, etc.) sunt nespecificai.

2.2 ncapsularea datelor n reelele Ethernet


2.2.1 Adresarea MAC
Nivelul legtur de date este responsabil cu trimiterea de cadre. Pentru eficientizarea transmiterii, nivelul 2 i propune identificarea participanilor la conversaie, eliminnd astfel necesitatea livrrii cadrului ctre toate destinaiile din reeaua local. Pentru a rezolva problema identificrii unice a nodurilor implicate n comunicaia de nivel legtur de date, IEEE a propus o schem de adresare bazat pe iruri unice de 48 de bii, denumite adrese MAC. Acronimul MAC (Media Access Control) identific un subnivel al nivelului legtur de date, responsabil cu ncapsularea datelor n cadre, precum i de interfaarea cu nivelul fizic. Adresa MAC este un ir de 48 de bii folosit pentru asigurarea unicitii n reelele Ethernet. Popularitatea protocolului Ethernet a dus a extinderea aplicabilitii adresrii MAC i pentru alte standarde IEEE, cel mai important dintre acestea fiind 802.11 (Wireless LAN). Pentru reprezentarea celor 48 de bii ce descriu o adres MAC se folosete forma hexadecimal, reducnd lungimea total a adresei la 12 cifre hexadecimale. n general octeii (fiecare dou cifre hexa) sunt separai prin simbolul : sau .. n reelele Ethernet se ofer suport pentru 3 tipuri de comunicaie, definite de tipul adresei destinaie folosite: direct (unicast), prin difuzare (broadcast) i cu destinaie multipl (multicast). Pentru schema de adresare MAC exist o singur adres de difuzare reprezentat de 48 de bii de 1, adic adresa FF:FF:FF:FF:FF:FF. O astfel de adres nu poate aprea dect ca destinaie a unui cadru.

R e e l e E t h e r n e t | 55 Adresele de multicast sunt definite de valoarea impar a celui mai semnificativ octet. Altfel spus o adres de multicast este o adres MAC pentru care valoarea bitului 40 este 0. Un exemplu de adres MAC multicast este adresa de nivel 2 folosit de protocolul EIGRP: 01:00:5E:00:00:0A. Se poate observa c valoarea octetului cel mai semnificativ este 0x01, fiind deci impar. Ca i n cazul adresei de difuzare, o adres multicast nu poate s apar dect n cmpul destinaie al unui cadru. Cea de a treia categorie de adrese MAC o reprezint adresele MAC unicast. Acestea sunt folosite pentru transmiterea datelor ctre un singur destinatar. Adresele unicast sunt singurele ce pot fi folosite ca i adres surs a unui cadru de date. Pentru o adres de unicast cel mai semnificativ octet este par. Spre exemplu, adresa 78:E7:D1:7F:D3:49 este o adres de unicast pentru c 0x78 este o valoare par. O adres MAC este stocat n memoria ROM i este ncrcat n RAM n momentul iniializrii plcii de reea. Din aceast cauz adresele MAC mai sunt numite i adrese fizice sau burned-in addresses (BIAs). Aceste adrese sunt adrese MAC de unicast. Pentru a reduce complexitatea procesului de verificare a unicitii adreselor MAC, IEEE a delegat aceast responsabilitate productorilor de echipamente de reea. Astfel, cei mai semnificativi 3 octei din adresa MAC sunt folosii pentru identificarea productorului, acest cmp fiind denumit OUI (Organizational Unique Identifier). Ultimii 3 octei (un spaiu de peste 16 milioane de adrese) sunt folosii de fabricant pentru a asigura unicitatea fiecrei interfee Ethernet (sau Wireless). Dei cmpul OUI din adresa MAC permite identificarea fabricantului interfeei de reea, din punctul de vedere al funcionrii reelelor locale aceast informaie nu poate fi folosit pentru optimizarea cutrii ntr-o mulime de adrese. Astfel orice operaie de cutare a unei adrese MAC este echivalent cu o cutare ntr-o mulime neordonat, i deci va avea o complexitate liniar.

2.2.2 Formatul cadrelor Ethernet


n ceea ce privete cadrul Ethernet, protocolul ofer trei tipuri de informaii: identificarea destinaiei i a sursei pe baza unei adrese MAC, precizarea protocolului de nivel superior (adic de nivel reea) i o sum de control pentru verificarea integritii datelor. Structura cadrului Ethernet este aproape identic indiferent de varianta de Ethernet folosit, i conine urmtoarele cmpuri repartizate pe 18 octei, dup cum este reprezentat n 2-2: 6 6 2 46-1500 4 Adres Adres Sum de Lungime/Tip Date destinaie surs control 2-2 Structura cadrului Ethernet Antetul Ethernet const n 14 octei, mprii n trei cmpuri: 6 octei pentru adresa destinaie, 6 octei pentru adresa surs i 2 octei pentru cmpul lungime/tip. Cmpul lungime/tip din antetul Ethernet este ns interpretat ca lungime a cadrului dac valoarea sa este mai mic de 1536 (0x600 n hexazecimal). Aceasta se ntmpl doar pentru reelele Ethernet bazate pe cablu coaxial. n reele Ethernet bazate pe cablu torsadat sau pe fibr optic acest cmp este folosit doar pentru specificarea protocolului din atentul urmtor. Spre exemplu, pentru a preciza c urmtorul antet este un antet IPv4 valoarea cmpului tip este 0x0800, iar pentru un antet IPv6 valoarea cmpului tip este 0x86DD. n reelele Ethernet, pentru a asigura detecia corect a coliziunilor este definit o limit pentru cadrul de lungime minim. Astfel, dac un cmp de date are dimensiune mai mic de 46 de octei (limita impus de standard) vor fi adugai bii de zero (padding) pn la atingerea dimensiunii minime. Pentru a preveni acapararea mediului de transmisie de o singur staie este definit i o limit superioar a cadrului. Limita maxim a cmpului de date poart numele de MTU (Maximum Transmission Unit), valoarea sa pentru Ethernet fiind de 1500 de octei. Ca urmare a definirii celor dou limite un cadru Ethernet va avea o dimensiune cuprins ntre 64 i 1518 de octei.

56 | R e e l e l o c a l e d e c a l c u l a t o a r e Suma de control este ataat la sfritul cadrului, sub forma unui cmp de 4 octei, n scopul detectrii erorilor de transmisie. Datorit evoluiei tehnologiilor de nivel fizic, numrul erorilor de transmisie n cadrul reelelor locale este redus, scznd relevana procesului de detectare a erorilor CRC.

2.2.3 Caracteristici ale reelelor Ethernet


Pentru descrierea standardelor Ethernet au fost definite o serie de noiuni, cele mai importante fiind: Bit time, Slot time i Interframe spacing. Bit time reprezint timpul necesar transmiterii unui singur bit. Valoarea sa este uor de calculat pornind de la viteza de transmisie. Astfel, pentru o reea Ethernet viteza este 10 Mbps, iar timpul de transmitere a unui bit este de 100 ns. Pentru Fast Ethernet timpul de transmitere a unui bit este de 10 ns, la Gigabit Ethernet fiind de 1 ns. Interframe spacing reprezint timpul minim necesar ntre dou cadre succesive. Acesta este un mecanism menit s ofere prioritate staiilor ce nu au transmis (i care, prin urmare, nu trebuie s atepte acest interval de timp). Valoarea sa este de 96 de ori intervalul de transmitere a unui bit. Pentru Ethernet interframe spacing are valoarea de 9,6 s, iar pentru Gigabit Ethernet de 96 ns. Slot time este timpul necesar traversrii de dou ori (dus i ntors) a segmentului de lungime maxim din reea. Valoarea acestuia este dat de timpul de transmisie a cadrului de lungime minim. Pentru reele Ethernet i Fast Ethernet slot time este 512 * Bit time, adic 51,2 s, respectiv 5,12 s. Pentru Gigabit Ethernet cadrul de lungime minim are 4096 de bii, slot time fiind de 4,096 s. Slot time este o caracteristic a reelelor half-duplex, nefiind definit pentru standarde full-duplex. Pentru a nelege corelaia ntre timpul necesar transmiterii cadrului de lungime minim i timpul necesar traversrii i ntoarcerii pentru cel mai lung segment putem considera urmtorul scenariu. Fie o staie ce transmite succesiv dou cadre de lungime minim. Primul cadru ajunge n cel mai ndeprtat punct al reelei (fr a traversa vreun echipament de nivel reea) i exact n acel moment o staie ce tocmai verificase c nu exist semnal de date pe fir va ncepe transmisia. Coliziunea aprut va trebui s parcurg ntreg drumul napoi ctre surs. Dac timpul total este mai mare dect timpul de transmitere a cadrului de lungime minim, sursa va primi informaia despre apariia unei coliziuni cnd deja a iniiat transmiterea celui de al doilea cadru. Astfel, conform CSMA/CD, sursa va sista transmiterea cadrului al doilea i va iniia procedura de retransmitere pentru acesta i nu pentru primul cadru (cel implicat n coliziune), ducnd la disfuncionaliti persistente n comunicaie.

2.2.4 FastEthernet i Gigabit Ethernet


Btlia pe care Ethernet a ctigat-o cu Token Ring pentru supremaia comunicaiei n reelele locale a deschis drumul pentru IEEE n dezvoltarea standardului 802.3, odat cu maturizarea Internetului. n contextul obinerii unei caliti superioare de cupru (CAT 5) i apariiei fibrei optice ca mediu fizic de transmisie, FastEthernet a fost introdus in 1995 ca un set de standarde al cror nivel MAC promova o lime de band de 100Mb/s la o distan de 100m. Comunitatea a primit FastEthernet cu braele deschise, mai ales pentru c acest standard era backwards-compatible, pstrnd compatibilitatea cu Ethernet din punct de vedere al formatului cadrului i al regulilor CSMA/CD. La momentul introducerii FastEthernet, toate topologiile erau n forma Star, avnd un hub ca dispozitiv de interconectare a reelei locale. Dac analizm limea de band a unei reele Ethernet construite din 10 staii i legate printr-un hub, putem trage concluzia c fiecare staie are ~1Mb/s de throughput ntr-o comunicare concomitent. Trecnd toat reeaua pe FastEthernet, fiecare staie ar avea de 10 ori mai mult throughput. Mai mult de att, trecerea la FastEthernet s-a petrecut n acelai timp cu nlocuirea generalizat a hub-urilor cu switch-uri. Acestea din urm au introdus idea de band dedicat n reea, fiecare staie conectat aflndu-se n propriul domeniu de coliziune. Lund exemplul topologiei de mai sus, upgrade-ul la FastEthernet alturi de nlocuirea hub-urilor cu switch-uri ar duce la o band dedicat de 100Mb/s pentru fiecare staie (ct timp puterea de comutare a switch-ului este ndeajuns de mare pentru a suporta comunicaia concomitent). Comparaia este ilustrat n 2-3 Hub Ethernet vs. Switch FastEthernet:

R e e l e E t h e r n e t | 57

1 Mb/s throughput 10 hosts Ethernet hub 10 hosts

10 Mb/s throughput

2-3 Hub Ethernet vs. Switch FastEthernet Din toate standardele aflate sub umbrela numelui de FastEthernet, cel mai mare nivel de adopie l-a avut, indiscutabil, 100BASE-TX. Acesta este o tehnologie de transmisie digital (de unde abrevierea BASE), peste cablu UTP de puritate CAT 5, la o lime de band maxim de 100Mb/s. Pentru a obine aceast lime de band sunt folosite aceleai perechi de fire (1,2 TX i 3,6 RX) pentru transmisie i recepie, adugndu-se ns standardul 4B/5B de codare. Acest standard presupune adugarea unui bit la fiecare 4 bii transmii pentru a asigura ndeajuns de multe tranziii de ceas i a evita desincronizarea n cazul transmisiei unui lung ir de 0 sau de 1. FastEthernet a fost de asemenea primul tip de Ethernet care a introdus un standard pentru fibr optic: 100BASE-FX. Pentru c fibra era nc destul de scump, dar i pentru c viteza de doar 100Mb/s nu era nc att de mare pentru a motiva utilizarea fibrei optice n Ethernet, standardul nu s-a bucurat de foarte mult succes. Odat cu implementarea n mainstream a FastEthernet, timp de 3 ani acesta s-a bucurat de o mare popularitate, ridicnd ateptrile pentru ceea ce avea s urmeze. GigabitEthernet nu avea s fie un standard uor de dezvoltat, acesta introducnd mari provocri tehnice din punct de vedere electric i procedural. Pentru c semnalul este pus ntr-o fraciune din timpul necesar n 100BASE-TX, biii sunt mult mai susceptibili la zgomot pe fir, sincronizarea devenind foarte important. Performana de a transmite 1Gb/s depinde esenial de ct de repede poate interfaa de reea s schimbe nivelele de tensiune ntr-un sistem complex de codare i de ct de sigur poate captul cellalt al conexiunii s detecteze aceste schimbri la o distan de 100m. Gigabit Ethernet a fost ratificat de IEEE n 1999 i a continuat direcia deschis de FastEthernet prin introducerea de standarde pentru cupru i fibr la nivelul fizic, att n modul full-duplex ct i half-duplex. Primul standard ce folosete UTP CAT 5e care a fost adoptat pe scar larg a fost 1000BASE-T. Acesta folosete toate perechile de fire pentru transmisie i recepie, profitnd de calitatea superioar a cuprului CAT 5e pentru a ajunge la o lime de band de 125Mb/s pe fiecare pereche utilizat. Pentru a putea totui ajunge la viteza de 1Gb/s, Gigabit Ethernet transmite semnal n acelai timp, pe aceeai pereche de fire, n ambele sensuri. Astfel avem 125Mb/s (pe fiecare pereche)*4 perechi*2(full-duplex)=1000Mb/s. Variantele peste fibr optic a Gigabit Ethernet au fost definite n standardele 1000BASE-SX (lungimea de und a semnalului luminos de 850nm) i 1000BASE-LX (lungimea de und a semnalului luminos de 850nm). Ambele standarde ajung pn la 1250 Mbps full-duplex folosind dou fibre separate pentru transmisie i recepie. Codarea semnalului este bazat pe 8B/10B, o variant extins a 4B/5B care, dei foarte eficient n sincronizare, introduce mult overhead. Astfel, throughput-ul real la nivel 2 este de 1000Mbps. La nivel aplicaie, ns, acesta este i mai mic, deoarece se adaug antetele de la toate nivelele din stiva OSI, alturi de informaiile de sesiune i prezentare.

58 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.2.5 Ethernet n reele WAN


Spargerea barierei de 1000 Mbps din 1999 a reprezentat o victorie important n scalarea reelelor locale i a deschis, n acelai timp, drumul ctre folosirea tehnologiei Ethernet n WAN. Ideea a fost primit cu braele deschise, Ethernet fiind un protocol destul de simplu care i-a demonstrat capabilitile de-a lungul a zeci de ani de implementare i testare n LAN. ncet, ncet, sintagma Internetul Ethernet, IP i MPLS a nceput s fie din ce n ce mai popular, astfel nct IEEE a mpins dezvoltarea 10Gb Ethernet, pe care l-au i standardizat n 2002(802.3ae). Ca standard Ethernet, 10Gbps a fost primul care nu avea definit funcionarea half-duplex, acesta putnd fi implementat doar full-duplex pe fibr sau cupru. Astfel CSMA/CD nu a mai fost necesar, iar viteza bit-time a fost automat promovat la 0.1ns. Orice tehnologie Ethernet e construit pe cele 2 nivele ale stivei OSI, PHY (nivel 1) i MAC (nivel 2). PHY definete standardul fizic, procedural, electric, conectori etc. iar MAC definete metoda de acces, viteza de transmisie etc. n cazul PHY, 10Gbps a fost primul standard care a primit interfee WAN PHY care funcionau la viteze ceva mai mici dect cele LAN, adugnd i ncapsulare suplimentar. Dintre acestea enumerm 10GBASE-SR, construit pentru fibr multi-mode i respectiv 10GBASE-LR pentru fibr single-mode. Ambele PHY-uri folosesc laserul ca tehnologie de transmisie a semnalului la nivel fizic pe lungime de und 850nm, respectiv 1310nm. Lungimea de und de 1550nm este folosit doar pentru viteze de maxim 1 Gbps, fiind posibil n acest caz folosirea unui emitor de tip LED n loc de laser. Apariia 802.3ae a alimentat dezvoltarea Internetului, astfel nct pn n 2009, conform graficului de mai jos (2-4) publicat de LINX n Marea Britanie, traficul Inter-ISP a crescut de 3 ori. Studiul fiind axat pe componente de core din Internet, n aceast perioad a sporit presiunea pentru dezvoltarea unui nou succesor al 802.3.

2-4 Evoluia traficului Inter-ISP Cisco a publicat n 2008 un studiu care susine c traficul n Internet va crete de 7 ori din 2007 pn n 2012, ajungnd la 44 de exabytes pe lun. Aceast prezicere a fost uor depit la nceputul anului 2012. Organizaiile de standardizare s-au mobilizat la civa ani dup 802.3ae, bazndu-se pe aceste studii pentru a pentru a descoperi care este pasul urmtor. n anul 2006 compania cea mai puternic din spatele 10GE, Force10, a realizat un CFI (Call For Interest) pentru organizarea unui comitet HSSG (High Speed Study Group) construit din reprezentanii celor mai mari companii din domeniu. Pe parcursul urmtorului an au avut loc discuii acerbe n HSSG pentru stabilirea urmaului 10GE. La nceput majoritatea comitetului nclina spre a pstra regula de vitez nzecit i a adopta direct un standard pentru 100GE. Cu timpul ns, o analiz atent a pieei a descoperit nevoi diferite privind upgrade-ul de la 10GE. La nivel Enterprise Edge, companiile doreau s economiseasc ct mai mult n noul standard i votau 40GE, pe cnd n SP Core i Datacenter existau cerine pentru 100GE. Pentru a putea merge mai departe, s-a decis dezvoltarea n paralel a ambelor viteze la nivel MAC, ntr-un

R e e l e E t h e r n e t | 59 singur viitor standard. Studiile de expansiune a Internetului au nglobat cele 2 viteze anunate ntr-o prezicere de adopie n WAN: 2007-2014 (vezi 2-5).

2-5 Prognoza adopiei standardelor noi n iunie 2010 standardul ratificat 802.3ba a specificat vitezele 40Gbps i 100Gbps n funcie de arhitectura integrat de circuite folosite la nivelul PHY. n termeni OSI, pentru cele 2 nivele, MAC i PHY, standardul a fost dezvoltat pentru a respecta urmtoarele reguli de baz: Pstrarea aceluiai format al cadrului 802.3 Oferirea unei rate de transmisie MAC de 40Gb/s o Cel puin 10km distan de transmisie cu SMF (Single Mode Fiber) o Cel puin 100m distan de transmisie cu OM3 MMF (Multi Mode Fiber) o Cel puin 10m distan de transmisie peste cupru (non-UTP) Oferirea unei rate de transmisie MAC de 100Gb/s o Cel puin 10km distan de transmisie cu SMF (Single Mode Fiber) o Cel puin 100m distan de transmisie cu OM3 MMF (Multi Mode Fiber) o Cel puin 10m distan de transmisie peste cupru (non-UTP) Este remarcabil c obiectivele standardului nu au coninut i specificri pentru transmiterea peste cablu torsadat UTP (cuprul de mai sus nu se refer la cablul torsadat folosit n LAN). Totui, exist proiecte secundare care i propun transmisia de 100Gb/s n LAN peste cablu torsadat CAT 7 la distane de 100Mb/s. Aceste implementri sunt ns departe de a fi folosite pe scar larg, ele fiind nc n stagiul de cercetare i adoptare pilot (innovator-adoption). Din punct de vedere tehnic, viteza maxim de 100Gb/s a standardului este obinut prin tehnologia de Parallel Lanes. Similar tehnologiei de agregare/grupare a mai multor legturi fizice pentru a obine o vitez mai mare de transmisie (Etherchannel), standardul 802.3ba face aceast grupare la nivelul circuitelor i chip-urilor slot-card-ului. Este important de notat c diferena dintre 4 link-uri de 10Gb/s agregate i standardul 802.3ba funcionnd la 40Gbps este faptul c, n primul caz, un stream TCP de trafic nu poate avea mai mult de 10Gbps vitez. O analogie poate fi fcut cu cazul unei aplicaii software scris liniar (non-multithreaded) care ruleaz pe un procesor cu 4 core-uri. Dei cele 4 core-uri pot fi toate libere n momentul de timp t al rulrii, aplicaia nu va rula dect pe un singur core, aceasta neavnd capabilitatea de a multiplexa puterea de procesare. n ceea ce privete adopia 802.3ba n a doua jumtate a anului 2012, slot-card-urile sunt dezvoltate deocamdat doar pe platformele de rutare i switching de nalt performan, iar cele cu capabilitate de 100Gb/s sunt nc prea scumpe pentru a putea fi accesate pe pia. Dei prognoza privind adopia era n favoarea vitezei de 100Gb/s, plcile de 40Gb/s sunt mult mai accesibile ca pre i vor fi probabil primele care vor introduce noul standard pe pia la scar larg.

60 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.3 Comutarea cadrelor n reele Ethernet


O reea Ethernet este descris de interfeele i echipamentele de interconectare folosite pentru implementarea unei soluii de comunicare de nivel legtur de date. Din punctul de vedere al nivelului fizic, constrngerile asupra standardului Ethernet se refer n principal la tratarea coliziunilor, n vreme ce specificaiile de nivel legtur de date se refer la construirea i trimiterea cadrelor n reeaua local. O reea Ethernet cuprinde cel mai adesea staii cu interfee de reea Ethernet i echipamente de interconectare de nivel 2, denumite switch-uri. Pe lng acestea, ntr-o reea Ethernet pot fi ntlnite repetoare, hub-uri sau media convertoare, n prezent numrul acestora fiind ns sczut. n anii `80 reelele Ethernet rulau doar peste cablu coaxial, oferind tuturor staiilor posibilitatea conectrii la aceeai magistral (adic la acelai conductor coaxial). Totui, semnalul electric se atenueaz n funcie de distana pe care o traverseaz. Din acest motiv, extinderea ariei de acoperire pentru reelele Ethernet a fost posibil doar prin adugarea unui echipament de interconectare dedicat: repetorul. Repetorul este un echipament de nivel fizic al crui singur rol este acela de a reface semnalul electric, cel mai adesea deteriorat de atenuare. Odat cu apariia cablului torsadat topologia fizic a reelelor Ethernet s-a schimbat de la magistral (bus) la stea. Staiile nu mai erau nlnuite una de alta, ci fiecare staie era conectat la un echipament repetor multiport, denumit hub. Un hub avea rolul de a reface semnalul electric (similar cu un repetor), dar i de replicare a acestuia pe toate porturile cu excepia celui de pe care fusese primit. Din punct de vedere logic reelele Ethernet bazate pe cablu torsadat nu difereau de cele bazate pe cablu coaxial, mediul de transmisie fiind unul partajat. Cu alte cuvinte, dup ce orice staie transmitea date, acestea ajungeau la un hub care le replica pe toate porturile, fcnd imposibil transmiterea simultan i a altor date. Un progres important n eficientizarea comunicaiei din reeaua local a aprut prin nlocuirea hubului cu un echipament de interconectare capabil s neleag ncapsularea cadrelor: switch-ul. Un switch trebuie s ndeplineasc n continuare rolul de a asigura conectivitatea tuturor staiilor, precum i pe acela de regenerare a semnalului electric. n plus, un switch poate determina portul pe care este conectat staia destinaie, descris n antetul Ethernet de adresa MAC destinaie. Astfel, switch-ul poate oferi comunicaie simultan pentru mai multe staii din reeaua local.

2.3.1 Rolul unui switch


Un switch este un echipament de nivel legtur de date ce poate lua decizii pe baza antetului de nivel legtur de date, oferind conectivitate de vitez mare i laten mic. Un switch nu poate ns oferi conectivitate pentru reele diferite, n acest caz fiind necesar folosirea unui echipament de nivel reea, precum un ruter. Exist mai multe tehnologii de nivel legtur de date, fiecare dintre acestea aducnd specificaii diferite pentru echipamentele de interconectare. Cel mai adesea prin termenul de switch se nelege un switch Ethernet, pentru restul echipamentelor de nivel 2 fiind necesar specificarea explicit a tehnologiei (de exemplu, n cazul switch-urilor ATM sau a switch-urilor Frame Relay). Switch-urile Ethernet ofer conectivitate pentru transmisiunile pe cablu torsadat sau pentru fibr optic. Echipamentul ce ofer conectivitate de nivel legtur de date n cazul reelelor Ethernet pe cablu coaxial se numete bridge. Multe dintre protocoalele definite pentru reelele Ethernet nu fac nici o diferen ntre switch i bridge. Diferena cel mai adesea invocat se refer la numrul de porturi: un bridge are un numr mic de porturi (cel mai adesea dou), n vreme ce un switch poate oferi de la cteva pn la sute de porturi. Funcionarea unui switch se bazeaz pe meninerea i folosirea unei tabele de asocieri ntre adresele MAC i porturile pe care acestea sunt accesibile. Aceast tabel se numete tabel de comutare sau tabel CAM, denumirea provenind de la tipul memoriei folosite pentru stocarea

R e e l e E t h e r n e t | 61 acestor asocieri: Content Addressable Memory. Un switch Ethernet menine o singur tabel CAM, indiferent de numrul de porturi. Fiecare switch ia decizii independent, bazndu-se doar pe propria sa tabel CAM.

2.3.2 Procesul de nvare


n seciunea anterioar am introdus conceptul de tabel CAM, tabela de asocieri disponibil la nivelul fiecrui switch pentru luarea deciziilor de comutare. Pentru exemplificare s considerm o reea compus din 4 staii i 3 switch-uri, conectate precum n topologia de mai jos (2-6).

8 1
Sw8

Sw1

7 3
Sw7

4 C

9 E

2-6 Reea local cu 3 switch-uri Tabelele de comutare de pe cele 3 switch-uri vor avea cte 4 intrri, cte una pentru fiecare dintre staiile din reeaua local, dup cum se poate vedea i n 2-7. Putem observa c, din punctul de vedere al Sw8, nu exist nici o diferen ntre staiile direct conectate, precum staiile C i D, i staiile accesibile prin intermediul altor switch-uri, precum staiile E i F. Astfel, din punctul de vedere al Sw8, staia E este accesibil prin portul 1. Adres MAC [C] MAC [D] MAC [E] MAC [F] Interfaa Adres 8 MAC [C] 8 MAC [D] 7 MAC [E] 7 MAC [F] 2-7 Tabelele CAM pentru Sw1, respectiv Sw8 Interfaa 4 9 1 1

Dup cum reiese i din exemplul de mai sus, putem avea mai multe destinaii (adrese MAC) accesibile prin acelai port. ntrebarea la care ne propunem s rspundem n aceast seciune este: cum i construiete un switch tabela de comutare? Tabela de comutare este pstrat n memoria RAM, iar coninutul su este pierdut la reiniializarea switch-ului. n plus, un switch trebuie s ofere suport dinamic pentru includerea n tabela de comutare a informaiilor despre fiecare nou staie adugat n reea. Exist dou metode de adugare a informaiilor n tabela CAM: definirea manual de asocieri sau actualizarea dinamic a asocierilor pe baza informaiilor coninute n cadrele ce traverseaz switchul. n cazul adugrii manuale, este responsabilitatea administratorului de reea de a preciza astfel de asocieri, prin comenzi sau prin editarea de fiiere de configuraie la nivelul fiecrui switch. Orice schimbare de topologie, de la adugarea de staii noi pn la mutarea unei staii n cadrul reelei, trebuie reflectate prin actualizarea manual a tuturor tabelelor de comutare din reeaua local.

62 | R e e l e l o c a l e d e c a l c u l a t o a r e Datorit limitrilor importante de scalabilitate impuse de actualizarea manual, cel mai adesea informaiile din tabelele CAM sunt actualizate dinamic. n acest caz, primirea oricrui cadru pe un port la nivelul unui switch declaneaz procesul de analiz a informaiilor coninute n antetul Ethernet. n acest antet se afl i adresa MAC surs. Switch-ul adaug n tabela sa de comutare asocierea dintre portul pe care a fost primit cadrul i adresa MAC surs coninut n cadru. Pentru topologia din 2-6, n urma reiniializrii reelei coninutul tabelei de comutare este vid. Presupunem c staia C trimite date ctre staia D. Acestea ajung ncapsulate la Sw8. Independent de procesul de comutare (ce va fi prezentat n seciunea urmtoare), primul cadru determin actualizarea tabelei de comutare cu o prim asociere: MAC [C] port 4. Tabela de comutare este cel mai adesea folosit pentru cutarea adreselor MAC n cadrul procesului de trimitere a cadrelor. Deoarece adresarea MAC nu ofer posibiliti pentru a optimiza cutarea, este important s pstrm n tabela de comutare doar asocierile corespunztoare staiilor active din reea. Actualizarea dinamic a tabelei CAM ofer i avantajul nlturrii asocierilor ce nu mai sunt folosite: asocierile corespunztoare staiilor ce nu mai transmit o perioad definit de timp vor fi eliminate. Prin acest proces este controlat extinderea dimensiunii tabelei de comutare. Eliminarea asocierilor nefolosite poart numele de mbtrnire a informaiilor (aging process). Pentru fiecare nou asociere dinamic va fi alocat un timp de valabilitate, valoarea implicit a acestuia fiind de 300 de secunde. Dac nainte de expirarea acestui timp se primete pe acelai port un nou cadru de la respectiva surs, timpul de valabilitate este reiniializat la valoarea maxim. Dac, n schimb, timpul expir fr a mai fi primit nici un alt pachet de la aceeai destinaie, asocierea este tears din tabela de comutare. n cazul n care o staie este mutat n alt port al aceluiai switch, echipamentul primete pe acest port cadre semnate cu o adres MAC ce este asociat n tabela de comutare cu un alt port. n acest caz vechea asociere va fi nlturat, chiar dac valoarea timpului de via nu a expirat. Noua asociere va fi adugat n tabel, cu timpul de via implicit.

2.3.3 Procesul de comutare a cadrelor


Comutarea cadrelor n reelele Ethernet reprezint procesul prin care un echipament dedicat (un switch) decide, n urma analizei tabelei de comutare, pe ce porturi va fi trimis mai departe cadrul. Procesul de comutare presupune replicarea nemodificat a cadrelor primite pe portul sau porturile destinaie. Cadrul trimis poate fi modificat numai n cazul combinrii procesului de comutare cu alte funcionaliti, de exemplu cu procesul de etichetare specific reelelor locale virtuale (VLAN-uri) sau cu cel de tunelare de nivel 2. Procesul de comutare presupune extragerea adresei MAC destinaie din cadrul primit. Aceasta este cutat n tabela CAM. Dac rezultatul cutrii furnizeaz o asociere, cadrul este trimis pe portul specificat n respectiva intrare din tabela CAM. Dac, n schimb, procesul de cutare nu gsete nicio asociere n urma parcurgerii ntregii tabele, atunci cadrul este multiplicat pe toate porturile cu excepia celui de pe care a fost primit. Comportamentul unui switch n al doilea caz este similar cu comportamentul unui hub, cu observaia important c un hub replic fiecare bit primit pe toate porturile, n vreme ce un switch replic pe toate porturile doar cadrele pentru care nu gsete o asociere n tabela de comutare. Procesul de replicare a cadrelor pe toate porturile cu excepia celui surs poart numele de difuzare sau flooding. O excepie important o reprezint tratarea pachetelor de difuzare. Dac n urma decapsulrii switch-ul determin c adresa destinaie este adresa MAC de difuzare (FF:FF:FF:FF:FF:FF) atunci va iniia direct procesul de flooding, fr a mai consulta tabela de comutare. Pentru exemplificare considerm topologia din 2-6. Reeaua a fost reiniializat, astfel c tabelele CAM sunt vide. n reea sunt transmise succesiv urmtoarele cadre: C D, E difuzare, F E. Primul cadru este un cadru trimis de staia C cu destinaia MAC [D]. Acest cadru ajunge la Sw8 pe portul 4. Switch-ul extrage adresa destinaie din cadru i o caut n tabela de comutare. Tabela de

R e e l e E t h e r n e t | 63 comutare fiind vid, cutarea eueaz, ceea ce duce la iniierea procesului de flooding. Cadrul este trimis pe toate porturile active, adic att pe portul 9, ct i pe portul 1. Dup ncheierea procesului de comutare se iniiaz procesul de actualizare a tabelei CAM, n urma cruia este adugat n tabela de comutarea a Sw8 asocierea ntre MAC [C] i portul 4. Cadrul trimis pe portul 9 ajunge la staia D, care, n urma decapsulrii, observ c acest pachet i este destinat i l proceseaz la nivelul reea. Cadrul trimis de Sw8 pe portul 1 ajunge la Sw1. n urma cutrii n tabela CAM cadrul este replicat pe toate porturile active, n acest caz doar pe portul 7. Sw7 primete cadrul cu sursa MAC [C] i destinaia MAC [D] pe portul 3. Negsind nici o asociere pentru staia D n tabela sa de comutare, trimite cadrul pe porturile pe care se afl staiile E i F. Apoi actualizeaz propria tabel CAM cu asocierea ntre MAC [C] i portul 3. Staiile E i F primesc fiecare cte o copie a cadrului, dar dup decapsulare decid c acesta nu le este destinat i prin urmare l ignor. Cadrul al doilea este un cadru de difuzare. Sw7 va replica acest cadru att pe portul 3, ct i pe portul 9, apoi va aduga n tabela de comutare asocierea ntre MAC [E] i portul 8. Cadrul ajuns la staia F va fi decapsulat i procesat la nivelul reea. Sw1 primete o copie a cadrului de difuzare i o va trimite pe toate porturile active, n cazul topologiei date doar pe portul 8. n tabela sa de comutare se adaug asocierea MAC [E] port 7. Sw8 va trimite cadrul ctre staiile C i D, i adaug asocierea ntre MAC [E] i portul 1. Ambele staii vor primi cadrul i dup decapsulare l proceseaz la nivelul reea. Cel de al treilea cadru este trimis de staia F ctre E. Cadrul ajuns pe Sw7 este decapsulat, i adresa destinaie este cutat n tabela CAM. n urma cutrii este gsit asocierea ntre adresa MAC destinaie i portul 8. Timpul de via al acestei nregistrri este actualizat la valoarea iniial de 300 de secunde. Cadrul este apoi trimis ctre staia E, unde, dup decapsulare, va fi procesat la nivelul reea.

2.3.4 Metode de comutare


Exist dou metode de comutare a pachetelor: comutare direct (cut through) i comutare dup stocare (store and forward). Metoda de comutare dup stocare se bazeaz pe recepionarea ntregului cadru nainte de a ncepe retransmisia acestuia. Latena acestei metode crete odat cu dimensiunea cmpului de date. Cu toate acestea, performanele metodei de comutare dup stocare pot fi superioare celor oferite de comutarea direct, mai ales n cazul liniilor expuse unor interferene puternice. Mecanismele de detecie a erorilor pe care le ofer aceast metod permit asigurarea unei conexiuni sigure la nivelul legtur de date. Metoda de comutare dup stocare pune i problema asigurrii memoriei pentru stocarea cadrelor. Fie exemplul unui switch cu 24 de porturi. Acesta trebuie s poat gestiona 12 comunicaii simultane, care, n cel mai defavorabil caz posibil, vor transfera cadre de lungime maxim. Se ajunge astfel la o dimensionare a memoriei RAM necesare pentru stocarea cadrelor de aproape 18 kB. Dei dimensionarea memoriei RAM folosite pentru stocarea cadrelor nu este principalul factor de stabilire a preului unui switch, nu trebuie omis faptul c preurile pentru memoriile dispozitivelor dedicate sunt de cteva ori mai ridicate dect cele pentru memoriile folosite n calculatoarele personale. Comutarea direct presupune ca dispozitivul de interconectare s nceap transmiterea cadrului pe portul destinaie imediat ce adresa destinaie a fost trecut prin tabela de comutare i interfaa de plecare a fost determinat. Cel mai adesea se ntmpl ca transmisia cadrului s nceap nainte de recepionarea integral a cadrului. Astfel, switch-ul primete pe una dintre interfee octei ce compun cadrul, transmind n acelai timp pe portul destinaie octeii din acelai cadru primii mai devreme. Pentru comutarea direct nu este necesar nici mcar recepionarea integral a antetului cadrului, adresa destinaie fiind suficient. Aceast metod se numete comutare direct rapid (fast forward) i ofer o laten de aproximativ 21 de s. Datorit faptului c retransmisia cadrului ncepe imediat dup citirea adresei destinaie, cadrele eronate vor fi transmise cu erori. Dei aceste

64 | R e e l e l o c a l e d e c a l c u l a t o a r e cadre sunt respinse la nivelul legtur de date al destinaiei (de ctre placa de reea), traficul generat de retransmisia lor poate, n cazul unui mediu de transmisie cu multe erori, s duc la o depreciere sever a performanelor reelei. Al doilea tip de comutare direct este comutarea fr fragmente (fragment free). n aceast metod fragmentele de cadre rezultate n urma unei coliziuni sunt filtrate. ntr-o reea ce respect specificaiile standardului Ethernet dimensiunea fragmentelor de coliziuni nu poate depi 64 de octei. n cazul comutrii fr fragmente, switch-ul mai nti decide c irul de octei recepionai nu face parte dintr-un fragment rezultat n urma unei coliziuni, i abia apoi ncepe retransmisia pe portul destinaie. Latena n acest caz este de minim 51,2 s, anume timpul necesar recepionrii a 64 de octei. n prezent switch-urile ofer implicit un mod de comutare adaptiv. Acesta presupune funcionarea iniial n regim de comutare direct rapid (fast forward). Dac numrul coliziunilor la nivelul oricrei interfee depete o valoare de prag (predefinit de productorul echipamentului) atunci switch-ul ncepe s funcioneze dup modelul comutrii fr fragmente (fragment free). Dac numrul cadrelor cu erori depete o valoare de prag superioar, atunci modul de funcionare a switch-ului devine store-and-forward.

2.3.5 Tratarea traficului de multicast


Traficul de multicast este generat de o singur surs ctre o adres de grup, adres ce poate aparine mai multor staii. Prin implementarea comunicaiei multicast traficul n reea este redus. Astfel, sursa poate trimite un singur cadru i nu cte o copie a datelor ncapsulate diferit n funcie de adresa destinaie, fiecare nou ncapsulare impunnd i calculul sumei de control CRC. Cel mai adesea traficul de multicast este folosit n reele n care se fac transmisiuni video, sau pentru optimizarea traficului de date n anumite jocuri. O interfa poate aparine, teoretic, unui numr nelimitat de grupuri de multicast, dar de fiecare dat cnd trimite cadre, acestea vor fi semnate cu adresa MAC de unicast. Adresele de unicast MAC sunt unice pentru fiecare interfa de nivel legtur de date. Un repetor, de exemplu, dei are dou interfee fizice, nu are o adres MAC pentru c nu funcioneaz ca echipament de nivel 2. n general switch-urile au un interval de adrese pe care l folosesc pentru a oferi adrese unicast unice pentru fiecare dintre porturi. n reelele Ethernet switch-urile i actualizeaz tabelele CAM pe baza informaiilor din cmpul surs. Este necesar un alt mecanism pentru actualizarea informaiilor legate de adresele de multicast la nivelul tabelei CAM, deoarece adresele multicast nu pot s apar niciodat n cmpul surs. Soluiile folosite pentru tratarea traficului de multicast din reeaua local se bazeaz pe un protocol dedicat denumit IGMP (Internet Group Management Protocol). Studiul acestui protocol depete aria de interes asumat n prezenta carte. Cel mai adesea n reelele locale nu exist suport pentru multicast. Din acest motiv, traficul de multicast generat de unele aplicaii este tratat similar cu traficul de difuzare (broadcast).

2.3.6 Impactul difuzrilor i al coliziunilor


Un criteriu important n proiectarea reelelor locale l reprezint limea de band efectiv disponibil fiecrei staii. Traficul de difuzare (broadcast) i coliziunile duc la reducerea vitezei efective de comunicare. Echipamentele de reea de nivel 1 i 2 replic traficul de difuzare pe toate porturile cu excepia portului surs. Aria dintr-o reea n care se propag un pachet de difuzare poart denumirea de domeniu de difuzare (broadcast domain). Domeniile de difuzare sunt prin urmare extinse de repetoare i switch-uri. n mod implicit un pachet de difuzare primit pe una dintre interfeele unui ruter este ignorat, fr a mai fi iniiat procesul de rutare. Acesta este motivul pentru care putem afirma c dispozitivele de nivel 3 limiteaz domeniile de difuzare. Fiecare interfa a unui ruter se afl ntr-un domeniu diferit de difuzare.

R e e l e E t h e r n e t | 65 22
Hub9 Sw3

3 1 4 34

3 4 4 2
Sw1 Sw2

2
BR

M 3
ISP

7 A

8 B

8 1
Sw8

1 3 4 18 5
HQ

1 2 6

Sw7

4 C D

91

8 E

29 F

21 4 W

2-8 Domenii de difuzare i coliziune Pentru exemplificare folosim topologia din 2-8. Ruterul HQ are 5 interfee active: interfeele 1 i 2 conectate la ISP, interfaa 5 ctre BR, interfaa 6 ctre staia W i interfaa 8 ctre Sw7. Dei Sw7 are alte 4 interfee conectate, n afar de interfaa ctre HQ, nici una dintre acestea nu ajunge la un alt echipament de nivel 3. Prin urmare, putem spune c toate echipamentele conectate prin interfaa 8 a ruterului HQ aparin unui singur domeniu de difuzare. n plus fa de cele 5 domenii de difuzare mrginite de ruterul HQ, n topologie mai sunt nc dou domenii: cel dintre ruterele BR i ISP, precum i domeniul ce cuprinde interfaa 2 a ruterului BR i staia M. Apariia unei coliziuni afecteaz toate echipamentele conectate fizic prin dispozitive de nivel 1, precum hub-uri, repetoare, transceiver-e, etc. Se numete domeniu de coliziune aria din reea n care este propagat o coliziune. Majoritatea implementrilor actuale de Ethernet folosesc echipamente full-duplex, eliminnd astfel orice impact al coliziunilor. Cu toate acestea, pstrarea n reea unor echipamente mai vechi precum hub-uri, switch-uri half-duplex sau chiar staii cu interfee de reea half-duplex poate redeschide problema impactului pe care l au coliziunile asupra ntregii reele. Un switch half-duplex limiteaz domeniile de coliziune. S considerm un scenariu n care Sw8 funcioneaz full-duplex i staia C ncepe s trimit un prim cadru ctre staia D. Presupunem c Sw8 funcioneaz cu comutare direct rapid (fast-forward), astfel c, imediat dup determinarea interfeei asociate cu adresa MAC destinaie, acesta ncepe trimiterea primilor bii din cadrul ce nc nu a fost primit integral. Staia D verific tocmai n acest moment conexiunea de recepie ce este nc nefolosit, i decide c mediul half-duplex este liber, ncepnd deci trimiterea propriilor date, sub forma cadrului al doilea. Dup puin timp att portul switch-ului, ct i interfaa staiei D observ prezena semnalului de date att pe circuitul de trimitere, ct i pe cel de recepie i declaneaz algoritmul CSMA/CD. Sw8 continu primirea datelor pe portul corespunztor staiei C, fr a o informa de apariia coliziunii. n acest scenariu este responsabilitatea switch-ului s retransmit primul cadru pe portul 8, i a staiei D s se ocupe de retransmisia celui de al doilea cadru, conform mecanismului CSMA/CD. Pentru topologia din 2-8 considerm c ruterul HQ i switch-ul Sw7 funcioneaz half-duplex. Fiecare dintre interfeele half-duplex ale aceluiai echipament aparine unui domeniu de coliziune diferit. n reea sunt 5 domenii de coliziune definite de ruterul HQ: {HQ(1), ISP (1)}, {HQ(2), ISP(2)}, {HQ(5), BR(5)}, {HQ(6), W}, {HQ(8), Sw7(1)}. Sw7 mai adug, pe lng domeniul de coliziune deja precizat cu HQ, nc 4 domenii: {Sw7(3), Sw1(7)}, {Sw7(4), Sw2(2)}, {Sw7(8), E}, {Sw7(9), F}. n plus,

66 | R e e l e l o c a l e d e c a l c u l a t o a r e folosirea unui hub impune interfeelor ce ofer conectivitate funcionarea n regim half-duplex. Cel de-al 10-lea domeniu de coliziune va fi cel determinat de Hub9: {Sw3(2), A, B}.

2.4 Redundana n reele Ethernet


n cazul reelelor de date alturi de cerinele de asigurare a conectivitii au fost formulate, nc de la primele standarde, cerine de asigurare a redundanei prin dezvoltarea de protocoale, echipamente i topologii care s ofere ci multiple de comunicaie ntre orice noduri din reea. Din punct de vedere al nivelului fizic, redundana se refer la meninerea mai multor conexiuni fizice active. Conexiunile redundante pot folosi medii diferite de transmisie, i chiar pot fi realizate ntre echipamente diferite. Nivelul legtur de date folosete cile fizice multiple pentru asigurarea redundanei, dar nu pstreaz active conexiunile de nivel 2, din cauza absenei unui mecanism de prevenire a efectelor buclelor din reea. n reelele Ethernet asigurarea redundanei de nivel fizic, fr a crea bucle de nivel legtur de date, se realizeaz printr-un protocol dedicat numit STP (Spanning Tree Protocol). nainte de a prezenta funcionarea protocolului STP vom discuta impactul buclelor pentru reeaua local. O bucl de nivel legtur de date apare ntr-o reea atunci cnd ntre dou dispozitive ale acesteia exist dou sau mai multe legturi active, fiecare conexiune folosind doar dispozitive de interconectare ce pot analiza cel mult informaii de nivel legtur de date. Apariia buclelor de nivel legtur de date este corelat cu faptul c switch-urile nu filtreaz pachetele de difuzare, avnd drept efect o depreciere semnificativ a performanelor reelei prin determinarea unei avalane de difuzri (broadcast storm). Pentru exemplificare considerm topologia din 2-9. Staia C trimite un cadru de difuzare. Sw8 replic acest cadru pe toate porturile active, inclusiv pe portul 1. Copia cadrului ajuns la Sw1 este apoi trimis att ctre Sw2, ct i spre Sw7. Sw7 va trimite cadrul ctre staiile E i F, dar i ctre Sw2. La rndul su Sw2 va trimite mai nti copia primit de la Sw1 pe toate porturile active, n acest caz pe portul 2, dar va trimite i copia primit de la Sw7 ctre Sw1. Procesul se va repeta pn la ntreruperea buclei create ntre Sw1-Sw2-Sw7. Astfel, n urma trimiterii unui singur cadru de difuzare este declanat un proces prin care dou copii ale cadrului iniial vor circula n bucla de nivel 2 i vor fi livrate, ncontinuu, tuturor staiilor din reeaua local, consumnd din limea de band efectiv disponibil fiecreia. Situaia este similar n cazul trimiterii unui cadru de unicast ctre o adres MAC destinaie ce nu este cunoscut de switch-urile din reeaua local. Soluia de asigurare a redundanei la nivelul reelei locale const n pstrarea redundanei la nivelul fizic, cu ntreruperea buclelor de nivel legtur de date.
Sw2

2 8 1
Sw8 Sw1

3
Sw7

4 C D

8 E F

9 2

2-9 Redundana n reele Ethernet

R e e l e E t h e r n e t | 67

2.4.1 Spanning Tree Protocol


Pentru a putea menine ideea de redundan la nivel de legturi fizice, dar fr a permite crearea de bucle logice, a fost creat protocolul STP ( Spanning Tree Protocol). Dup cum sugereaz i numele, algoritmul se bazeaz pe alegerea unui switch central numit root bridge. Acesta va deveni radcina arborelui, restul switch-urilor pstrnd activ doar drumul de cost minim pn la el, folosind o varianta a algoritmului Bellman-Ford. Raportat la arhitectura propus, dac SW2 ar deveni root bridge, atunci din punct de vedere logic ar funciona legturile din 2-10.
Sw2

2 8 1 4 C
Sw8 Sw1

4
Sw7

9 D E

8 F

9 2

2-10 Topologia logic n urma rulrii STP Legtura ntre SW1 i SW7 nu transport trafic n mod activ. Dac legtura ntre SW7 i SW2 nu mai funcioneaz, este reactivat legtura ntre SW1 i SW7. Procesul de calculare al arborelui STP are dou faze: Se alege root bridge-ul; Fiecare switch i stabilete legtura de cost minim pn la root bridge i nchide toate celelalte legturi. Trebuie menionat c n toate criteriile folosite n calculul rolurilor STP, valoarea mai mic este considerat mai bun.

2.4.2 Reguli i roluri n convergen


Root bridge-ul este ales pe baza Bridge-ID-ului, o valoare format din prioritate i adresa MAC a echipamentului. Prioritatea este un numr ntre 4096 i 65535 cu o valoare implicit de 32768, putnd fi modificat n incrementri de 4096. Cu ct valoarea este mai mic, cu att ansele de a fi ales root bridge sunt mai bune. Dac prioritile sunt egale, se compar adresele MAC. Raportndu-ne la topologia din 2-10, n care root bridge este SW2, o posibil list de Bridge ID-uri ar putea fi: SW2: 32768:AA-CD-BE-44-32-11 SW1: 32768:AA-CD-BE-16-32-11 SW7: 32768:AA-CD-FE-66-32-11 SW8: 32768:AA-CD-FE-66-52-11 Dup selecia unui root bridge fiecare switch i alege un singur port pe care poate ajunge la acesta, numit root port. Fiecare segment Ethernet va avea un capt care duce spre acesta, denumit designated port. Criteriile dup care se negociaz designated port ntre dou switch-uri la nivel de segment Ethernet sunt, n ordinea importanei: Costul cel mai mic raportat pn la root bridge; Cel mai mic Bridge ID.

68 | R e e l e l o c a l e d e c a l c u l a t o a r e Criteriile dup care un switch stabilete care din porturi va fi root port sunt, n ordinea prioritii: Costul cel mai mic raportat pn la root bridge; Portul conectat la switch-ul cu cel mai mic Bridge ID; Portul cu cea mai mic prioritate; Portul cu cel mai mic ID. Costul pn la root bridge se incrementeaz la fiecare punct de nivel doi intermediar, pn la switch-ul curent. STP-ul are reglementat un set de costuri fixe n funcie de viteza interfeei fizice, expuse n 2-11. Viteza Cost 10 Mbps 100 100 Mbps 19 1 Gbps 4 10 Gbps 2 2-11 Costuri STP Prioritatea la nivel de interfa poate avea valori ntre 2 i 256, fiind implicit 128. Pentru a comunica parametrii STP n scopul negocierilor iniiale, precum i pentru a menine stabilitatea topologiei, se transmit pachete speciale numite BPDU-uri (Bridge Protocol Data Units). Acestea sunt emise la intervale fixe numite Hello time, avnd valoarea implicit de 2 secunde. Pentru a nelege ce se ntmpl cu porturile care nu devin root sau designated, trebuie s studiem tranziia de stri a porturilor de switch n condiiile utilizrii protocolului STP. n funcie de starea n care se afl un port, acesta poate procesa exclusiv trafic STP, sau poate tranzita i trafic util. De asemenea, ntre anumite stri se trece doar dup epuizarea unui interval de timp numit Forward Delay avnd o valoare implicit de 15 secunde. O descriere a strilor n care se poate situa un port se afl n 2-12.

2.4.3 Exemplu de topologie de STP


Pentru a verifica dac ateptrile noastre asupra modului n care se stabilizeaz o reea sunt coerente cu logica STP, ar putea fi folosite urmtoarele reguli: Stare Durata tranziiei Descriere Disabled N/A Portul nu este funcional: nici nu transmite, nici nu primete BPDU sau trafic util. Blocking N/A Portul a fost nchis in urma negocierilor STP pentru a preveni buclele logice. Traficul BPDU este primit i interpretat n continuare. Listening 15 s Portul particip n mod activ la o negociere STP, putnd deveni root port sau designated. Se trimit BPDU-uri dar nu i trafic util. Learning 15 s La fel ca i n starea anterioar, portul tranziteaz n mod activ BPDU-uri i i populeaz tabela cu adrese MAC. n continuare nu se poate trimite trafic util. Forwarding N/A Portul a fost ales ca root sau designated i poate procesa trafic util. Portul continu s trimit i s interpreteze BPDU-uri. 2-12 Strile posibile ale unui port STP Topologia trebuie s aib un singur root bridge. Root bridge-ul trebuie s aib toate porturile n starea forwarding. Fiecare switch poate avea un singur root port. Fiecare segment Ethernet poate avea o singur terminaie designated. Un segment Ethernet va procesa trafic util doar dac ambele capete sunt trecute n starea forwarding.

R e e l e E t h e r n e t | 69 n topologia din 2-13 observm negocierile ce vor avea loc, pas cu pas, pentru stabilirea root bridge-ului precum i a arborelui STP aferent. SW1 devine root bridge deoarece are valoarea de prioritate cea mai mic. Dup stabilirea root bridge-ului, fiecare echipament trebuie s determine calea optim pn la acesta.
32768:aabbcc423789 3 Sw3

19 19 19

3 32768:aabbcc523111 4 1
Sw2

4 19 3 2
Sw1

4096:deffcd112211 1

19 7 100 0 4
Sw7

32768:aabbcc223111

2-13 STP - alegerea root bridge-ului Porturile lui SW1 vor fi toate n starea forwarding i, pe toate segmentele unde este conectat, porturile deinute de acesta vor fi designated. SW7 poate ajunge la root bridge prin portul 3 cu un cost de 100 i pe portul 4 cu un cost de 38. Portul 3 va fi trecut n blocking, iar portul 4 va fi n forwarding, primind rolul de root port datorit costului mai bun. Pe segmentul SW1-SW7 portul 3 este blocking iar portul 7 este designated i forwarding. Pe segmentul SW7-SW2 portul 4 va fi forwarding i portul 2 va fi designated i forwarding. SW2 poate ajunge la SW1 prin portul 1 cu un cost de 19 sau prin porturile 3 i 4 cu un cost de 38, la fel i SW3. Ambele switch-uri vor selecta portul 1 ca fiind root port datorit costului mai bun. Pe segmentul ntre SW2 i SW3 nu se va mai procesa trafic util, fiind considerat un traseu redundant pn la root bridge. Totui, trebuie negociat care capt va fi n forwarding si care va fi n blocking. SW2 i SW3 raporteaz acelai cost unul ctre cellalt; ca atare, se va folosi Bridge ID-ul ca i criteriu de departajare. Pentru c SW3 prezint un ID mai bun, terminaiile aferente acestuia vor fi designated, iar cele aferente lui SW2 vor fi blocking. Topologia final se poate vedea n 2-14. 3
Sw3

19 19 19 3 D
Sw1

B B4 Sw2 R 1 D 2

4 D R 19 D D 2

19

4096:deffcd112211 1

100 0

B
Sw7

2 32768:aabbcc223111

2-14 STP - topologia final

70 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.4.4 Criterii de reconvergen


STP sau 802.1D (dup cum este numit de IEEE) are rolul de menine o topologie de nivel doi lipsit de bucle. Echipamentele participante la reeaua STP tiu doar cum ajung la root bridge i care este starea legturilor cu echipamentul direct conectat, neavnd o viziune de ansamblu asupra ntregii reele. Pentru a reaciona rapid la schimbrile de topologie se trimit, la interval de Hello Time, BPDU-uri ctre toate echipamentele direct conectate. ntreruperile fizice la nivel de STP pot fi clasificate n dou categorii: ntreruperi directe, cnd sunt afectate legturi direct conectate la echipamentul curent, sau ntreruperi indirecte, ce au loc dincolo de legturile Ethernet ale echipamentului curent. n cazul unei ntreruperi directe pot avea loc urmatoarele evenimente: Dac portul este n blocking, intrrile asociate cu acesta din tabela CAM vor disprea, dar nu se va genera nici o modificare in topologia STP. Dac portul era designated, pe echipamentul local nu se ia nici o aciune. Dac un echipament pe treapta ierarhic inferioar pierde portul root se declaneaz o schimbare de topologie. Dac se pierde portul root: se identific o cale alternativ (care e n blocking) ctre root bridge-ul curent i se trece prin listening i learning pentru a deveni noul root port. Dac se pierd toate legturile ctre root bridge-ul actual, echipamentul curent se va anuna pe sine ca fiind root bridge. Dac un echipament pierde toate legturile ctre root bridge, acesta va ncepe s trimit BPDUuri anunndu-se pe sine ca deintorul acestui rol. Astfel, pn la stabilizarea topologiei, n reea vor circula n paralel dou tipuri de BPDU-uri cu informaii distincte. BPDU-urile despre un nou root bridge primite pe un anumit port nu vor fi luate n considerare pn cnd informaia asociat cu root bridge-ul curent nu expir. Intervalul de timp dup care expir datele asociate cu root bridge-ul curent, dac nu se mai primesc BPDU-uri de la acesta, se numete Max _Age i are valoarea implicit de 20 de secunde.

Root bridge 3 D
Sw3

19 19

R B 4

4
Sw2

4 D D 1 3 R
Sw1

D 2

D 19 3 R
Sw7

19

2-15 STP - reconvergena topologiei n cazul figurii 2-15, SW1 a pierdut toate legturile la SW3 i nu mai are porturi alternative ctre acesta care sa fie n blocking. Ca atare, trimite BPDU-uri n toata reeaua, anunndu-se pe sine ca root bridge. SW7 primete BPDU-uri att de la SW1 ct i de la SW2. SW7 este evident afectat de schimbarea de topologie, ntruct urmeaz s i schimbe root port-ul. La expirarea intervalului Max_Age, SW7 va considera BPDU-urile primite de la SW1 inferioare i va trece portul 4 n listening

R e e l e E t h e r n e t | 71 ntruct BPDU-rile de root bridge nu mai sunt primite pe portul 3. Pn n momentul cnd SW7 va putea procesa trafic util n continuare va trece un interval de timp de 2xForward_Delay+Max_Age, adic n total 50 s. Pentru a procesa traficul n mod eficient trebuie ca rolul porturilor s fie luat n considerare n construcia tabelei CAM ntrucat, dup cum s-a menionat, doar porturile care sunt n forwarding proceseaz trafic util. Ca atare, segmentele Ethernet unde porturile nu sunt n forwarding nu trebuie s se regseasc n tabela CAM. Astfel, odat cu semnalarea modificrilor n arborele STP, trebuie modificate i tabelele cu adresele MAC ale switch-urilor. Mecanismul prin care se asigur coerena tabelelor CAM, relativ la configuraia STP actual, este: Un switch care detecteaz un link ce trece n up/down trimite BPDU-uri cu flag-ul TCN (Topology Change Notification) setat la interval de Hello_interval, pe portul root pn cnd primete un BPDU cu flag-ul TCN Acknowledged; Fiecare switch care primete TCN BPDU-uri pe portul designated le trimite mai departe pe port-ul root i apoi ateapt TCN Acknowledged BPDU; Cnd BDPU-rile TCN ajung la root bridge, acesta trimite pe toate porturile BPDU-uri TCN Acknowledged timp de 2xForward_Delay+Max_Age Toate switch-urile care primesc BPDU-urile de la root bridge vor modifica timpul de expirare al adreselor MAC din tabela CAM de la 300 de secunde la Forward_Delay, pentru a facilita renvarea acestora.

2.4.5 Variante de STP


Pentru a compensa pentru tehnologii cum ar fi VLAN-urile precum i pentru creterea necesitii reelelor cu o convergen mai rapid au fost introduse variante noi ale STP-ului. Aceste protocoale au la baz aceleai principii ca STP-ul, pentru a menine o reea de nivel doi redundant fr bucle logice. Astfel, tipurile de STP folosite la ora actual sunt urmtoarele: CST (Common Spanning Tree protocol) folosete o singur instan de STP pentru ntreaga reea de switch-uri, indiferent cte VLAN-uri sunt configurate pe acestea. PVST (Per VLAN Spanning Tree protocol) este un protocol proprietar Cisco care creeaz o instan de STP pentru fiecare VLAN configurat pe switch. Folosete ISL ca protocol de trunking i permite customizarea reelei de nivel doi pentru fiecare VLAN de pe switch. PVST+ (Per VLAN Spanning Tree protocol) creeaz o instan de STP pentru fiecare VLAN configurat pe switch. Folosete 802.1Q ca protocol de trunking i permite interoperabilitatea cu CST i PVST. Este protocolul implicit care ruleaz pe switch-urile de la Cisco. RSTP (Rapid Spanning Tree protocol 802.1W) trateaz aceleai probleme ca STP, dar au fost aduse numeroase mbuntiri la nivelul algoritmului, pentru reducerea timpilor de convergen. MST (Multiple instance Spanning Tree protocol 802.1s) se bazeaz pe RSTP i permite gruparea selectiv de instane de STP i grupuri de VLAN-uri. A fost creat pentru a obine flexibilitatea n configurare propus de PVST, dar cu reducerea instanelor de STP necesare i, implicit, cu scderea resurselor de procesare. ntruct la ora actual orice reea de producie folosete VLAN-uri pentru a segmenta traficul, folosirea PVST+ ca protocol implicit a fost o soluie natural. Cnd o interfa este asociat cu un VLAN, va procesa trafic doar din acesta. Dat fiind c un VLAN este de obicei prezent pe mai multe switch-uri, nevoia de customizare a fluxului de trafic util n reea a fost una stringent. Modul de operare al PVST-ului este acelai cu STP-ul dar, n plus, a fost introdus noiunea de Extended System ID n loc de Bridge ID. Dac n STP Bridge ID-ul era format din prioritate i MAC, n cazul STP prioritatea este format din Extended System ID ( 12 bii) i Prioriy (2 bii). Rezultatul direct este faptul c prioritatea care se regsete n configuraiile switch-ului este, de fapt, prioritatea configurat + VLAN ID-ul, stocate ntr-un numr pe 16 bii. Dat fiind faptul c pe un switch Cisco pot fi configurate 4096 de VLAN-uri, prioritatea maxim configurabil este 61440.

72 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.5 Utilitare pentru gestiunea reelelor Ethernet


2.5.1 Linux
Pentru inspectarea i manipularea parametrilor unei interfee Ethernet n Linux se folosete ethtool. Rulnd comanda fr argumente se pot regsi toi parametrii de funcionare ai interfeei.
root@HQ:~# ethtool eth1 Settings for eth1: Supported ports: [ TP ] Supported link modes: 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) Link detected: yes

Pentru a modifica viteza i duplex-ul la care opereaz interfaa, aceasta trebuie nti nchis folosind comenzile ifconfig sau ip link. Apoi, utiliznd parametrii speed i duplex, trebuie s fie oprit i funcia de auto-negociere pe interfa, folosind comanda ethtool.
root@HQ:~# ifconfig eth1 down root@HQ:~# ethtool s eth1 speed 10 duplex half autoneg off

Pentru a lista adresa MAC se pot folosi oricare dintre comenzile ethtool, ifconfig sau ip link. De obicei se prefer ultimele dou, ntruct prima nu se regsete n mod implicit pe majoritatea distribuiilor Linux.
root@HQ:~# ethtool -P eth1 Permanent address: 00:0c:29:af:f4:25

root@HQ:~# ip link show dev eth1 2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:af:f4:25 brd ff:ff:ff:ff:ff:ff root@HQ:~#ifconfig eth1 eth0 Link encap:Ethernet HWaddr 00:0c:29:af:f4:25 inet6 addr: fe80::20c:29ff:feaf:f425/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:1492 errors:0 dropped:0 overruns:0 frame:0 TX packets:494 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:566547 (566.5 KB) TX bytes:52398 (52.3 KB) Interrupt:19 Base address:0x2000

Modificrile asupra adresei MAC, aa cum este stocat la nivelul sistemului de operare n stiva de networking, se pot face folosind comanda ifconfig, dup ce este nchis interfaa.
root@HQ:~# ifconfig eth0 down root@HQ:~# ifconfig eth0 hw ether AA:BB:CC:01:02:32 root@HQ:~# ifconfig eth0 up

Aceeai modificare poate fi aplicat folosind ip link.


root@HQ:~# ip link set dev eth0 down root@HQ:~# ip link set eth0 address aa:bb:cc:11:22:33 root@HQ:~# ip link set dev eth0 up

Similar, MTU-ul poate fi modificat folosind ambele comenzi.

R e e l e E t h e r n e t | 73
root@HQ:~# ifconfig eth0 mtu 1700 root@HQ:~# ip link set dev eth0 mtu 1500

2.5.2 Cisco IOS


Pentru a lista parametrii Ethernet ai unei interfee pe un ruter sau switch se folosete comanda show interfaces.
router#show interfaces gigabitEthernet 0/1 GigabitEthernet0/1 is up, line protocol is up Hardware is PQ3_TSEC, address is d48c.b528.9101 (bia d48c.b528.9101) MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Keepalive set (10 sec) Full Duplex, 1Gbps, media type is RJ45 output flow-control is unsupported, input flow-control is unsupported ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:00, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 85000 bits/sec, 23 packets/sec 5 minute output rate 80000 bits/sec, 23 packets/sec 2110643 packets input, 752315587 bytes, 0 no buffer Received 397274 broadcasts (0 IP multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 392473 multicast, 0 pause input 2002831 packets output, 1386646070 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 unknown protocol drops 0 babbles, 0 late collision, 0 deferred 2 lost carrier, 0 no carrier, 0 pause output 0 output buffer failures, 0 output buffers swapped out

Modificarea adresei MAC a unei interfee de ruter se face folosind comanda mac-address din contextul de config-if.
router#configure terminal router(config)#interface gigabitEthernet 0/1 router(config-if)#mac-address aaaa.bbbb.cccc

Pentru a modifica viteza la care funcioneaz interfaa, se folosete comanda speed din contextul config-if. n exemplul de mai jos, viteza de funcionare a interfeei a fost modificat la 100 Mbps.
router#configure terminal router(config)#interface gigabitEthernet 0/1 router(config-if)#speed 100

Pentru a modifica duplex-ul de pe interfa se poate folosi comanda duplex din acelai context.
router#configure terminal router(config)#interface gigabitEthernet 0/1 router(config-if)#duplex half

MTU-ul la nivel de interfa se seteaz folosind comanda mtu din contextul config-if
router#configure terminal router(config)#interface gigabitEthernet 0/1 router(config-if)#mtu 1800

2.5.3 Windows
Pentru a vizualiza adresa MAC n Windows Server 2008 n linia de comand trebuie rulat comanda ipconfig cu parametrul /all
C:\Users\Administrator>ipconfig /all Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : localdomain Description . . . . . . : Intel(R) PRO/1000 MT Network Connection Physical Address. . . . . . . . . : 00-0C-29-95-27-AC DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address ..... : fe80::4a:98c5:c13a:99ca%11(Preferred) IPv4 Address. . . . . . . . . . . : 192.168.58.132(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0

74 | R e e l e l o c a l e d e c a l c u l a t o a r e
Lease Obtained...... . . . . : Sunday, September 09, 2012 8:25:48 PM Lease Expires . . . . . . . . : Sunday, September 09, 2012 8:55:47 PM Default Gateway . . . . . . . . . : 192.168.58.2 DHCP Server . . . . . . . . . . . : 192.168.58.254 DHCPv6 IAID . . . . . . . . . . . : 234884137 DHCPv6 Client DUID. . . . : 00-01-00-01-17-71-40-D7-00-0C-29-95-27-AC DNS Servers . . . . . . . . . . . : 192.168.58.2 Primary WINS Server . . . . . . . : 192.168.58.2 NetBIOS over Tcpip. . . . . . . . : Enabled

2-16 Configurarea adresei MAC pe Windows Server 2008 Pentru a seta adresa MAC pe Windows Server 2008 (2-16) trebuie parcuri urmtorii pai: Navigare pn la Control Panel > Network and internet > View Network Status and Task > Change Adapter Settings > Selectarea plcii de reea pe care se dorete operarea modificrii. Navigare pn la Right-click > Properties > Configure > Advanced Modificarea parametrului Locally Administered Address Viteza interfeei (2-17) se poate regsi folosind urmtorii pai: Navigare pana la Control Panel > Network and internet > View Network Status and Task > Change Adapter Settings > Selectarea plcii de reea Selectare Right-click > Status Inspectarea si modificarea setrilor de duplex i vitez in foarte mult de capabilitile puse la dispoziie de driverele plcii de reea. Astfel, este posibil s nu fie regsit aceast opiune. Pentru a putea modifica setrile de duplex i speed ( 2-18) trebuie parcuri urmtorii pai: Navigare pn la Control Panel > Network and internet > View Network Status and Task > Change Adapter Settings > Selectarea plcii de reea pe care dorim s operm Navigare pn la Right-click > Properties > Configure > Advanced Modificarea unuia dintre parametrii Duplex Mode, Media, Media Type, sau Link Speed & Duplex

R e e l e E t h e r n e t | 75

2-17 Viteza interfeei n Windows Server 2008 Pentru a putea vizualiza sau modifica MTU-ul setat pe o interfa din lina de comand se poate folosi comanda netsh.
C:\Users\Administrator>netsh int ip show int Idx Met MTU State Name --- ---------- ---------- ------------ --------------------------1 50 4294967295 connected Loopback Pseudo-Interface 1 11 10 1500 connected Local Area Connection C:\Users\Administrator>netsh interface ipv4 set subinterface "Local mtu=1300 store=persistent

Area

Connection"

2-18 Modificarea setrilor de duplex i speed n Windows Server 2008

76 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.6 Scenarii
2.6.1 Comutarea cadrelor n interiorul reelei locale
Broadcast 8
Sw7

C 4 D 9
Sw8

Broadcast 1 8
Sw1

Broadcast 7 3

9 Broadcast

2-19 Trimiterea unui cadru de la C la E cnd tabelele CAM sunt vide Mai departe, vom observa procesul prin care switch-urile i populeaz tabela CAM pe msur ce proceseaz trafic. n 2-19 i 2-20 se poate observa cum trece traficul, respectiv cum se populeaz tabelele switch-urilor dup o prim comunicare ntre staia C i staia E. n faz iniial tabelele CAM sunt goale, deci cadrul va fi trimis pe toate porturile mai puin cel de pe care a venit. Sw8 4 Sw1 8 Sw7 3

MAC [C]

MAC[C]

MAC[C]

2-20 Tabelele CAM dup transmirerea unui cadru de la staia C n 2-22 apar modificrile ntreprinse n urma traficului de ntoarcere de la Staia E la Staia C. C 4 D 9
Sw8

8 1 8
Sw1

Sw7

2-21 Trimiterea unui cadru de la E la C Dup cum se poate observa n 2-21, traficul de ntoarcere ctre Staia C a fost n totalitate unicast. Tablele CAM se populeaz progresiv cu asocieri de tipul MAC-port, pe baza adreselor surs ale cadrelor comutate. Sw8 4 1 Sw1 MAC[C] 8 MAC[E] 7 2-22 Tabelele CAM rspunsul staiei E Sw7 3 8

MAC [C] MAC[E]

MAC[C] MAC[E]

n exemplul din 2-23, Staia D a trimis un cadru de broadcast n reea. Se poate observa c traficul se propag aproape identic ca n primul exemplu, excepie fcnd faptul c s-a replicat cadrul i pe portul 4, chiar dac era deja asociat cu MAC-ul lui C. Acest comportament relev cantitatea mare de trafic de broadcast care se creeaz dup golirea tabelei CAM, ce urmeaz unei modificri de

R e e l e E t h e r n e t | 77 topologie n STP. Cu toate c a fost vorba de un cadru de broadcast, s-au creat n continuare asocierile ntre adresele MAC i porturi (vezi 2-24). C Broadcast 4 D 9
Sw8

Broadcast 1 8
Sw1

Broadcast 7 3

Broadcast 8
Sw7

9 Broadcast

Broadcast

2-23 Staia D trimite un cadru broadcast MAC [C] MAC[E] MAC [D] Sw8 Sw1 4 MAC[C] 8 MAC[C] 1 MAC[E] 7 MAC[E] 9 MAC [D] 8 MAC [D] 2-24 Tabelele CAM dup trimiterea unui cadru de broadcast de la staia D Sw7 3 8 3

Cel de al patrulea cadru este trimis de staia F i este destinat staiei C (vezi 2-25). C 4 D 9
Sw8

8 1 8
Sw1

3
Sw7

2-25 Trimiterea unui cadru de la F la C Adres MAC [C] MAC [D] MAC[E] MAC[F] Interfee SW8 Adresa Interfee SW1 Adresa Interfee SW7 4 MAC[C] 8 MAC[C] 3 9 MAC[E] 7 MAC[E] 8 1 MAC[D] 8 MAC [D] 3 1 MAC [F] 7 MAC [F] 9 2-26 Tabelele CAM trimterea cadrului de la staia F ctre staia C

Dup ce au fost completate toate asocierile, cadrele vor fi replicate doar ntre porturile ctre staiile sau echipamentele direct implicate n comunicare.

2.6.2 STP
n mod implicit pe switch-urile Cisco Ruleaza PVST+. Acest protocol folosete aceleai principii ca i STP pentru a asigura o topologie de nivel 2, redundant, fr bucle, dar ruleaz o instan separat de protocol pentru fiecare VLAN. Pentru vedea un set de informaii de baz despre starea protocolului STP pe un echipament se folosete comanda show spanning-tree. n cazul folosirii de PVST+ rularea acestei comenzi va avea ca rezultat listarea strii instanelor de STP de pe toate VLAN-urile switch-ului. Pentru a vedea parametrii STP doar pe un VLAN se ruleaz show spanning-tree vlan.
SW2#show spanning-tree vlan 10 VLAN0010 Spanning tree enabled protocol ieee Root ID Priority 24586 Address 0001.C9BD.4E63 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

78 | R e e l e l o c a l e d e c a l c u l a t o a r e

Bridge ID Priority 24586 (priority 24576 sys-id-ext 10) Address 0001.C9BD.4E63 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- --------------------------Fa0/1 Desg FWD 19 128.1 P2p Fa0/3 Desg FWD 19 128.3 P2p Fa0/4 Desg FWD 19 128.4 P2p

Un avantaj al folosirii PVST este faptul c unele interfee trunk pot fi n forwarding pentru un VLAN i n blocking pentru altul, permind funcionaliti de balansare a traficului peste mai multe legturi.
SW2#show spanning-tree vlan 20 VLAN0020 Spanning tree enabled protocol ieee Root ID Priority 24596 Address 0030.F209.A1BC Cost 19 Port 1(FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32788 (priority 32768 sys-id-ext 20) Address 0001.C9BD.4E63 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- --------------------------Fa0/1 Root FWD 19 128.1 P2p Fa0/3 Altn BLK 19 128.3 P2p Fa0/4 Altn BLK 19 128.4 P2p

n cazul de mai sus porturile 3 i 4 proceseaz trafic util din VLAN-ul 10 dar nu i din VLAN-ul 20. Se poate observa cum bridge id-ul se compune din valoarea de prioritate i numrul VLAN-ului. Alturi de informaiile despre switch-ul curent, se pot obine Root Bridge ID, precum i portul fizic pe care se ajunge la acesta. n cazul PVST, un switch poate fi Root Bridge pe un VLAN chiar dac nu are acest rol i pe restul. Pentru a obtine o viziune de ansamblu asupra tuturor instanelor de STP care ruleaz la nivelul unui switch se poate folosi comanda show spanning-tree summary. Aceasta va lista strile porturilor pe diversele instane STP i varianta de STP care ruleaz (MST,PVST,RSTP,CST).
SW2#show spanning-tree summary Switch is in pvst mode Root bridge for: VLAN0010 Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is disabled UplinkFast is disabled BackboneFast is disabled Configured Pathcost method used is short Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------VLAN0001 0 0 0 3 3 VLAN0010 0 0 0 3 3 VLAN0020 2 0 0 1 3 ---------------------- -------- --------- -------- ---------- ---------3 vlans 2 0 0 7 9

n cazul PVST+ este posibil echilibrarea traficului ntre mai multe legturi fizice prin setarea manual a parametrilor folosii n negocierea rolurilor la nivelul segmentelor Ethernet. Dat fiind c balansarea traficului implic multiplexarea fluxului de date peste mai multe legturi de cost egal, i al doilea parametru ca importan este Bridge ID-ul, este convenabil ca acesta s fie manipulat.
SW#configure terminal router(config)#spanning-tree vlan 10 root primary

R e e l e E t h e r n e t | 79 Comanda spanning-tree root primary asigur faptul c switch-ul actual preia rolul de Root Bridge. Comanda folosete urmtoarea logic: Dac prioritatea root bridge-ului curent este mai mare de 24,576, valoarea prioritii se seteaz la 24,576; Daca prioritatea root bridge-ului curent este sub 24,576, atunci prioritatea switch-ului curent va deveni egal cu prioritatea root bridge-ului curent, decrementat cu 4096. n cazul PVST comanda poate fi rulat la nivel de VLAN:
SW#configure terminal router(config)#spanning-tree vlan 10 root secondary

Comanda de mai sus are rolul de a configura un switch ca un backup root bridge n condiiile n care cel curent nu va mai funciona. n practic, comanda de mai sus seteaz prioritatea switch-ului curent la valoarea de 28672, indiferent de prioritatea root bridge-ului. Comenzile de mai sus nu au o funcionalitate persistent, n sensul ca iau n considerare prioritatea root bridge-ului n momentul rulrii i nu reacioneaz dac ulterior n reea apar switchuri cu o prioritate mai bun.
SW#configure terminal router(config)#spanning-tree vlan 10 priority 4096

O limitare a comenzii spanning-tree root primary este faptul c aceasta eueaz dac stabilirea switch-ului curent ca root bridge implic decrementarea prioritii la 0. Pentru a seta prioritatea unui switch la 0 se poate folosi comanda spanning-tree priority.
SW#configure terminal router(config)#spanning-tree vlan 10 hello-time 5

Comanda de mai sus modific intervalul Hello la care se trimit BPDU-uri la toi vecinii switch-ului curent. Valoarea implicita a acestuia este de 2 secunde, dar poate lua valori ntre 1 i 10 secunde.
SW#configure terminal router(config)#spanning-tree vlan 10 forward-time 5

Comanda de mai sus modific intervalul de Forward_Delay care controleaz ct timp dureaz tranziia ntre setrile Listening Learning i ntre Learning Forwarding. n mod implicit acest interval este de 15 secunde dar poate lua valori ntre 4 i 30 de secunde.
SW#configure terminal router(config)#spanning-tree vlan 10 max-age

Comanda de mai sus modific intervalul de Max Age care reglementeaz intervalul de timp maxim n care un switch poate s nu primeasca BDPU-uri de la Root Bridge ul curent pn a-l considera nefuncional. Valoarea implicit este de 20 secunde, dar poate fi setat ntre 6 i 40 de secunde.
SW#configure terminal router(config)#spanning-tree vlan 10 diameter 5

Intervalele de timp STP (Hello, Forward_Delay i Max Age) au fost gndite pentru a asigura diseminarea informaiei privind o schimbare de topologie n toata reeaua, pentru evitarea buclelor logice i a propagrii de informaii eronate. Valorile implicite rezult dintr-un calcul elaborat i sunt menite s acomodeze o reea cu diametrul de maxim 7 switch-uri. Mai exact, pentru a asigura ca BPDU-urile se propag la toate echipamentele n intervalul de 2xForward_Delay, reeaua de nivel doi nu trebuie s aib mai mult de 7 hopuri de nivel 2. Comanda de mai sus este un macro care modific intervalele Hello, Forward_Delay i Max Age, conform calculului menionat mai sus, pentru a acomoda dezideratul de topologii fr bucle logice, n reele de switch-uri cu diametru variabil. Dac se dorete optimizarea timpilor de convergen, se recomand folosirea acestei comenzi i nu modificarea individual a celor trei intervale.
SW#configure terminal SW(config)#interface FastEthernet0/1 SW(config-if)#spanning-tree vlan 10 port-priority 200

80 | R e e l e l o c a l e d e c a l c u l a t o a r e Prin directiva de mai sus se poate modifica prioritatea la nivel de port pentru a manipula negocierile STP pe segmentul Ethernet. Acesta este al treilea criteriu, n ordinea prioritii pentru stabilirea portului cu rolul designated.
configure terminal SW(config)#no spanning-tree vlan 10

Prin comanda de mai sus se dezactiveaz instana de STP aferenta VLAN-ului 10. Ca rezultat direct toate legturile Ethernet vor procesa trafic util instantaneu, dar exist pericolul formrii de bucle logice i implicit de avalane de difuzari (broadcast storm).

2.7 Studiu de caz


2.7.1 Tratarea jumbo frames
In standardul Ethernet clasic (IEEE 802.3) cantitatea maxim de date care poate fi transmis este de 1518 bytes. Aceasta valoare este compus din adresa MAC surs (6 bytes), adresa MAC destinaie (6 bytes), Protocol ID (2 bytes), CRC (4 bytes), rmnnd astfel 1500 de bytes pentru date. n primele implementri de Ethernet legturile fizice erau limitate la 10 Mpbs half-duplex i singura metod de a combate coruperea datelor n timpul transportului era retransmitere cadrelor. Cum mediile de transmisie iniiale nu erau att de eficiente n ecranarea interferenelor electromagnetice, coruperea datelor era un eveniment destul frecvent, precum i retransmisiile. Dincolo de acest aspect, inclusiv logica de funcionare a Ethernet-ului e gndit s lucreze cu coliziuni i retransmisii. Date fiind condiiile enunate, n cazul n care cantitatea de date transportat la nivel de cadru devenea prea mare, procedeul de retransmitere de cadre ar fi devenit destul de ineficient. In prezent legturile de 1Gbps au devenit ubicue n toate mediile, iar switch-urile pentru centre de date de 10 Gbps sunt aproape standard. In mediile Ethernet cablate legturile half-duplex sunt rar ntlnite, iar tehnologiile de ecranare precum i calitatea materialelor folosite au minimizat impactul interferenelor electromagnetice ca i factor n coruperea cadrelor Ethernet la transport. n prezent cea mai costisitoare parte a comunicaiei se nregistreaz la cele dou capete, unde datele sunt segmentate i formatate n cadre Ethernet. Pentru optimizarea comunicaiei soluia evident const n mrirea cantitii de date ce poate fi transmis folosind aceleai date de control, metod supranumit jumbo frames. n implementarea acestei idei trebuie luat n considerare faptul c, n ciuda tuturor mbuntirilor, cadrele se corup ocazional i singurul mod de a detecta acest lucru este prin valoarea CRC (Cyclic Redundancy Check) inserat n fiecare cadru. Un CRC de 4 bytes funcioneaz pentru o cantitate de informaii de maxim 11000 de bytes. Cum antetele Ethernet sunt codate la nivel de hardware n toate plcile de reea, pragul superior pentru mrimea cadrelor Ethernet se va limita astfel la aceast valoare. Parametrul la nivelul sistemului de operare care reglementeaz mrimea unui cadru de nivel doi este MTU (Maximum Transferable Unit). Cu toate c nici n prezent nu s-a ajuns la un consens legat de MTU-ul pentru Jumbo Frames, standardul de facto este de 9000 de bytes. n momentul n care se dorete implementarea unui tronson Ethernet cu Jumbo frames sunt recomandate urmtoarele msuri de bun practic: ntreaga reea trebuie s aib legturi gigabit; Toate echipamentele de reea intermediare trebuie s suporte jumbo frames; Sistemele de operare ale punctelor terminale trebuie s aib drivere i plci de reea cu suport pentru jumbo frames. Pentru Linux modificarea MTU-ului se face folosind comanda ifconfig.
root@HQ#ifconfig eth1 mtu 9000

n condiiile n care valoarea nu este suportat la nivel de kernel, se va returna eroarea SIOCSIFMTU: Invalid argument. In aceast situaie se recomand fie modificarea opiunii la nivel de kernel, fie folosirea unei alte valori.

R e e l e E t h e r n e t | 81 n cazul echipamentelor Cisco, pentru a implementa suportul pentru jumbo frames la nivel de interfa se folosete comanda mtu.
SW2#configure terminal SW(config)#interface FastEthernet0/1 SW2(config-if)#mtu 9000

Comanda poate fi rulat doar pe interfee gigabit. n cazul switch-urilor Cisco se poate modifica MTU-ul pe toate interfetele echipamentelor folosind comanda system mtu.
SW2#configure terminal SW2(config)#system mtu 1900

Setrile modific MTU-ul doar pe interfetele de 10 si 100 Mbps i valorile folosite pot fi ntre 1500 si 1998 de bytes.
SW2#configure terminal SW2(config)#system mtu jumbo 9000

Setrile modific MTU-ul doar pe interfeele de 1 i 10 Gbps iar valorile alocabile sunt ntre 1500 si 9000 de bytes. Pe Windows Server 2008 abilitatea de a procesa jumbo frames(2-27) depinde de suportul oferit de driverele plcii de reea. n condiiile n care acestea permit modificarea MTU-ului, paii care trebuie urmai sunt: Navigare pana la Control Panel > Network and internet > View Network Status and Task > Change Adapter Settings > Selectarea plcii de reea pe care dorim s operm Navigare pn la Right-click > Properties > Configure > Advanced Modificarea uneia dintre opiunile Jumbo Packet sau Jumbo Packet Payload Size

2-27 Jumbo frames pe Windows Server 2008

82 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.7.2 RSTP
O metric important pentru evaluarea calitativ a unei reele este uptime-ul. Acesta se definete ca procentul de timp n care o reea este funcional n decursul unui interval anume, de obicei un an. Pentru companiile care ofer servicii de reea exist n prezent trei standarde: - 99% - 88 ore/an downtime - 99.9% - 8.8 ore/an downtime - 99.99% - 52 minute/an downtime - 99.999% - 5 minute/an downtime Algoritmul STP are rolul critic de a asigura legturi de nivel doi redundante, simultan evitndu-se buclele de switching i, odata cu ele, fenomenul de broadcast storm. Algoritmul STP depinde de dou timere: Forward Delay (15 sec) i Max age (20 sec). Timpul de convergen STP sau timpul necesar pentru ca reeaua s transporte n continuare trafic util este ntre 2xForward_Delay sau 2xForward_Delay+Max_Age, mai exact ntre 30 i 50 de secunde pentru orice modificare de link n reeaua STP. Lund n calcul aceti factori, n faza iniial pare aproape imposibil dezideratul de triple-nine (99.999). Cu toate acestea, exista centre de date care ofer acest nivel de serviciu. Aparent, o prim optimizare posibil ar consta n reducerea acestor timpi. Trebuie menionat nsa c valorile implicite au fost stabilite lund n calul elemente precum: latena la nivel de echipament, latena la nivel de reea, precum i probabilitatea de eroare. Cisco a reglementat aceste valori pentru a preveni buclele de switching n reele cu diametru mai mic sau egal cu 7 switch-uri, valoare care este atins rapid n reele complexe. Atunci cum se poate optimiza STP-ul? Pentru a rspunde la aceast ntrebare trebuie s identificm care componente din algoritmul acestuia l fac lent. Principalele dou elemente care ncetinesc procesul de convergen sunt: 1) faptul c portul rmne blocat pe o durat suficient pentru a garanta diseminarea schimbrii de topologie n toata reeaua i 2) faptul c informaia pentru o cale mai bun ctre root bridge nu este luat n considerare pn ce informaia veche nu expir. RSTP sau 802.1W a fost introdus ca o optimizare a algoritmului STP. Acesta urmrete acelai scop (link-uri redundante fr bucle de nivel 2) dar necesit un timp maxim de convergen de doar 6 secunde. O prima optimizare care a fost adus algoritmului original const n crearea a dou stri noi asignabile port-urilor de switch: 1) Alternate port - este un port secundar pe care se primesc BPDU-uri inferioare fa de cele de pe portul de root, de la un alt switch fa de cel prin care se ajunge n prezent la root bridge. 2) Backup port - este un port secundar pe care se primesc BPDU-uri inferioare fa de cele de pe portul de root, de la acelai switch prin care se ajunge n prezent la root bridge. Un switch poate ine o ierarhie de porturi alternate sau backup i, n momentul cnd se pierde legtur principal ctre root bridge, se va selecta cel mai bun port pentru a procesa instantaneu trafic. Stri STP Stri RSTP Inclus n topologia activ Disabled Discarding Nu Blocking Discarding Nu Listening Discarding Nu Learning Learning Da Forwarding Forwarding Da 2-28 Echivalena ntre strile STP i strile RSTP De asemenea, au fost create trei tipuri de legturi posibile cu un alt echipament: Edge port, point-to-point i shared. Edge port sunt porturile pe care nu se primesc BPDU-uri i care sunt trecute direct n forwarding. Dac ulterior se primesc pachete de STP sau RSTP, acestea vor fi luate n considerare la recalcularea algoritmului. Point-to-Point reprezint legtura ntre dou swithuri care

R e e l e E t h e r n e t | 83 ruleaz RSTP peste o interfa full-duplex. Shared este legtura ntre dou switch-uri care ruleaz RSTP peste o interfa half-duplex, sau ntre un switch care ruleaz STP i unul care ruleaz RSTP. O alt simplificare adus algoritmului iniial const n reducerea numrului de tranziii necesare pn cnd se poate transmite trafic util pe interfaa respectiv (vezi 2-28).

1 3R 9 9 SW1 7 BLK 3D 9 9 SW79 4 D Proposal de la SW1 9 9 Port 7 - Designated Root Bridge: SW3

SW3

1 3R 9 9 SW1 7 BLK 3 R 9 9 SW79 4 BLK

SW3

1 3R 9 9 SW1 7 D 3 9 R 9 SW79 4 BLK

SW3

Blocare Downstream 9 9 Acceptare Sw3 ca root bridge Port 3 - root port

Agreement cu SW1 9 9 SW3 este Root Port7-SW1 e designated

2-29 Procesul de sincronizare n RSTP n cazul echipamentelor Cisco se poate activa doar RSTP-PVST, meninndu-se o instan separata de RSTP pentru fiecare VLAN configurat pe switch. Setarea de RSTP se aplic pe ntregul echipament.
SW1#configure terminal SW1(config)#spanning-tree mode rapid-pvst

Algoritmul de calcul al grafului a fost modificat i se bazeaz pe un schimb de pachete (proposalagreement) care se propag succesiv pe nivelele topologiei de reea, pornind de la root bridge. Toate comenzile de modificare a parametrilor asociai cu RSTP sunt la fel ca i la STP. Pentru a vedea dac la nivelul echipamentului ruleaz RSTP se folosete comanda:
SW1#show spanning-tree vlan 1 VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 24586 Address 0015.63f6.b700 Cost 19 Port 107 (FastEthernet3) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys-id-ext 10) Address 000f.f794.3d00 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------Fa3 Root FWD 19 128.107 P2p Peer(STP) Fa7 Desg FWD 19 128.108 P2p Peer(STP)

n cazul RSTP, orice switch poate anuna modificri ale topologiei. Se poate observa c, spre deosebire de STP, algoritmul pentru 802.1w reacioneaz doar cnd apar legturi noi de tipul point-to-point sau shared. Cnd la nivelul unui switch s-a detectat un link nou se trimit BPDU-uri pe toate interfeele cu flag TC (Topology Change) setat. Un echipament care primete astfel de BPDU-uri golete tabela cu adrese MAC i retrimite BPDU-ul pe toate porturile, mai puin cel pe care a primit notificare TC. Scopul principal al RSTP-ului este convergena rapid; ca

84 | R e e l e l o c a l e d e c a l c u l a t o a r e atare, este mult mai eficient s fie golit tabela CAM la schimbri de topologie dect sa fie micorat Max_Age-ul pe anumite adrese MAC. Reversul acestui comportament const ntr-o cantitate semnificativ de trafic de broadcast n momentul unei schimbri de topologie.

SW1

7 1
Sw3

SW1

3
Sw7

3
Sw7

1
Sw3

New Link Link down

4 4
Sw2

New Link

3 3

Sw2

2-30 Reconvergena RSTP la pierderea, respectiv stabilirea unei conexiuni Toate aceste modificri la nivelul logicii de funcionare a protocolului au permis n cele din urm optimizarea timpilor folosii. n cazul RSTP toate evenimentele importante sunt raportate la Hellotime, care reprezint intervalul de timp la care sunt ateptate BPDU-uri de la vecini avnd o valoare implicit de 2s. Astfel, o legtur root va fi dezafectat daca nu sunt primite BPDU-uri timp de 3xHello_time, declanndu-se astfel algoritmul de sincronizare. n cazul unei schimbri de topologie semnalate de un vecin, se vor trimite BPDU-uri cu flag-ul TC setat timp de 2xHello_time (While_time),pentru a se asigura diseminarea informaiei ctre restul reelei. RSTP este compatibil cu STP, astfel nct, dac nu se detecteaz prezena de 802.1d pe un port, acesta va fi declarat shared i sunt folosii timpii specifici STP. Trebuie menionat c interfaarea RSTP/STP este fezabil la nivel Access, dar compromite eficiena arhitecturii la nivel Core.

R e e l e E t h e r n e t | 85

2.8 ntrebri
1. Care este rezultatul segmentrii unei reele cu un switch ? Crete numrul domeniilor de coliziune Scade numrul domeniilor de coliziune Crete numrul domeniilor de broadcast Scade numrul domeniilor de broadcast 2. Care este numrul minim de adrese MAC asociate cu un switch de nivel doi? Una Dou Attea cte porturi exist Niciuna 3. Care dintre urmtoarele afirmaii este adevrat cu privin la comutarea de nivel doi (alegei dou variante)? Un switch este un hub cu mai multe porturi Un switch este o punte cu mai multe porturi Switchurile nva adresele IP ale cadrelor i iau decizii pe baza acestora Switchurile nva adresele MAC, examinnd cmpul surs al fiecrui cadru 4. Pe baza crei informaii un switch Ethernet poate lua o decizie ? adresa IP adresa MAC destinaie adresa CAM adresa MAC surs 5. Switch-ul dumneavoastr trebuie s fie setat ca root bridge. Care dintre urmtoarele posibiliti va face acest switch s devin root bridge? Setarea adresei MAC a switchului la o valoare minim Setarea protocolului STP la o valoare minim Setarea prioritii switchului la o valoare maxim Setarea prioritii switchului la o valoare minim

86 | R e e l e l o c a l e d e c a l c u l a t o a r e

2.9 Referine
[1] Jan Harrington. Ethernet Networking for the Small Office and Professional Home Office, cap. 3. Morgan Kaufmann, 2007 [2] Gilbert Held. Ethernet Networks (4th Edition). John Wiley & Sons, 2003 [3] Deon Reynders, Edwin Wright. Practical TCP/IP and Ethernet Networking, cap. 3 i 4. Newnes, 2003 [4] Charless E. Spurgeon. Ethernet, The Definitive Guide. O'Reilly, 2000 [5] William Stallings. Data and Computer Communications (8th Edition), cap. 15 i 16. Pearson Education, 2007 [6] Andrew Tanenbaum, David Wetherall. Computer Networks (5th Edition), cap. 4. Prentice Hall, 2010

P a g e | 87

3 Protocolul IPv4
Ce se nva n acest capitol? Cine este Bob Kahn (Robert Elliot Kahn) este un un inginer n tiina calculatoarelor, deintor al Premiului Turing. A lucrat la MIT, Bell Labs i, cel mai important la DARPA, agenia Guvernului American, unde a dezvoltat stiva TCP/IP mpreun cu Vint Cerf. n prezent, lucreaz la o organizaie non-profit ce face cercetare de noi tehnologii informatice bazate pe reele. Internetul a devenit o noiune familiar pentru societatea din prezent. Cu toate acestea, n urm cu 20 de ani, prea puini vizionari au intuit dezvoltarea pe care acesta urma s o cunoasc. Multe dintre conceptele fundamentale ale infrastructurii IP de azi au fost definite n acea perioad, precum formatul adresei IP, protocolul ARP, VLSM. Protocolul IP trebuia s rspund schimbrii paradigmei de comunicaie de la o reea cu cteva locaii, precum reeaua DARPA, la o reea cu mii de locaii cum era privit Internetul la mijlocul anilor `80. Apariia calculatoarelor personale i extinderea reelei globale de comunicaie dincolo de centrele universitare au redefinit Internetul ca o reea cu sute de milioane de noduri. Un fapt notabil i, n acelai timp, surprinztor, este persistena de-a lungul unei perioade de civa zeci de ani a unor protocoale de comunicaie dezvoltate la nceputul anilor `80. O mare parte dintre aceste protocoale au fost concepute pentru reele de sute de mii de ori mai mici n magnitudine, complexitate i volum de trafic fa de Internetul din ziua de astzi, dar deservesc n continuare cu succes comunicaiile de date din prezent. Versiunea 4 a protocolului IP a reuit s rspund att cerinelor de ierarhizare a spaiului de adrese impus de reelele anilor `80, ct i cerinelor de scalabilitate ale Internetului actual. Pentru asigurarea scalabilitii n contextul condiiilor din prezent, au fost standardizate protocoale menite s adreseze translatarea de adrese, tunelarea pachetelor i adresarea privat, tehnologii prezentate n capitolele viitoare. Versiunea 6 a protocolului IP a fost iniial proiectat s asigure un spaiu de adrese mult mai generos, dar i un numr de servicii ce lipsesc din IPv4, precum informaiile de securitate, sau servicii ce corespund insuficient cerinelor actuale, precum marcarea fluxurilor de date n vederea facilitrii procesrii de ctre mecanismele QoS de pe parcurs. Cu toate acestea, infrastructura de comunicaie constituit nc preponderent din echipamente i aplicaii ce nu au fost concepute pentru IPv6 precum i popularitatea deosebit de care se bucur IPv4 fac ca ponderea reelelor IPv6 n structura actual a Internetului s rmn de sub 5%. Prin urmare, pe parcursul acestei cri, prin protocolul IP se va subnelege doar referirea la IPv4. n capitolul urmtor va fi realizat o prezentare detaliat a protocolului IP, versiunea 6. Specificaiile protocolului IP Noiunea de subnetare Funcionarea protocolului ARP Funcionarea protocolului DHCP Configurarea adreselor IP pe echipamente

3.1 Pachete IPv4


Orice pachet ajuns la nivelul reea este rempachetat, adugndu-i-se antetul IP. n Fig. 3-1 sunt prezentate cmpurile ce compun antetul IP, mpreun cu lungimea lor, urmnd apoi o scurt descriere a acestora.

88 | R e e l e l o c a l e d e c a l c u l a t o a r e

3-1 Structura antetului IPv4 Din analiza antetului se identific nu mai puin de 10 cmpuri n afara celor ce precizeaz adresele destinaie i surs. De-a lungul timpului semnificaia acestor cmpuri a fost redefinit. Cmpul versiune stabilete versiunea IP folosit, antetul de IPv6 fiind diferit de antetul IPv4. Lungimea antetului este precizat explicit n cel de al doilea cmp n vederea flexibilizrii dezvoltrilor ulterioare ale standardului IPv4, prin setri fcute n cmpul de opiuni aflat n finalul antetului IP. Totui vasta majoritate a traficului n Internet folosete antete de lungime fix, de 20 de octei, performanele de referin ale echipamentelor de reea (precum numrul de pachete comutate pe secund) fiind calculate pentru trafic IP cu antet de lungime fix, att pentru a asigura consecvena statisticilor, ct i datorit faptului c pachetele IP ce prezint opiuni suplimentare sunt procesate n software de marea majoritate a platformelor, n timp ce pachetele de dimensiune standard sunt procesate n hardware. Cmpul TOS (Type of Service) este folosit pentru implementarea unor politici distincte pentru tipuri diferite de trafic. Cmpul are o importan semnificativ n special pentru identificarea i prioritizarea traficului de voce, dar i pentru alte tipuri de trafic ce necesit o abordare special. Cmpul de lungime total este exprimat pe 16 bii, rezultnd o dimensiune maxim a cadrelor IP de 65535 de octei. n cazul segmentelor transmise folosind protocolul TCP nu exist o dimensiune maxim, ceea ce nseamn c segmentele ce depesc 64 KB vor fi fragmentate la nivelul reea. Dei dimensiunea maxim prevzut de standard este de 64KB, impunerea Ethernetului ca tehnologie dominant pentru reelele locale are drept consecin faptul c traficul TCP, dup ce este segmentat n pachete de 64 KB la nivelul 4, va mai fi nc odat segmentat n cadre de 1500 octei la nivelul 3. Pentru a reduce complexitatea prelucrrilor asupra pachetelor, implementrile curente ale stivei TCP/IP evit s realizeze dou operaii de fragmentare, impunnd ca dimensiune maxim a cadrelor IP 1500 B i nu 64 KB. Mecanismul de secveniere a cadrelor reprezint principalul mecanism de control al fluxului n TCP; cu toate acestea, se observ c un mecanism de secveniere exist i la nivelul antetului IP. Cmpul identificator stabilete numrul datagramei i este folosit n conjuncie cu cmpul decalaj fragment pentru a reordona cadrele IP ajunse ntr-o alt ordine dect au fost transmise. Ambele cmpuri sunt n general stabilite de staia ce emite pachetul, dar dac pe calea ctre destinaie mai are loc o fragmentare a pachetului valorile lor vor fi modificate. Biii de opiune sunt folosii tot pentru a controla fragmentarea. Spre exemplu, bitul 50 din antetul IP este denumit bitul M sau bitul more fragments. Acesta indic faptul c a avut loc o fragmentare i c pachetul de fa nu este ultimul fragment. Bitul 51 este denumit Z sau bitul zero fragments i are rolul de a semnaliza c pachetul actual este ultimul (sau singurul) din pachetul iniial. De notat faptul c, odat fragmentat, un pachet IP nu va mai fi reasamblat dect la destinaie. Din moment ce fiecare fragment primete proporiul su antet IP, acest lucru poate introduce

P r o t o c o l u l I P v 4 | 89 probleme de design i poate genera transmisii ineficiente pe anumite segmente de reea. Indiferent de protocol sau de tehnologie, fragmentarea cauzeaz un consum crescut de lime de band, ca urmare a datelor suplimentare introduse de noile antete.Un cmp important din antetul IP este TTL (Time To Live), cmp ce definete numrul maxim de rutere prin care un pachet poate s treac, el fiind decrementat cu 1 la fiecare rutare. Principala sa funcie este de a evita ciclarea la infinit a unor pachete IP n cazul unor topologii cu bucle de rutare. O utilizare mai recent a acestui cmp permite unui ISP s controleze conectarea unei staii, pentru o legtur dat. De exemplu, un ISP poate ntrerupe conectivitatea atunci cnd pe o legtur n loc de o staie se conecteaz neautorizat un ruter ce are n spate o ntreag reea local. Marea majoritate a traficului n Internet cltorete ntre surs i destinaie pstrnd aceleai valori pentru cmpurile antetului IP, singurul cmp modificat fiind cmpul TTL. Dei operaia de decrementare a valorii cmpului TTL este una simpl, ea determin o ncrcare semnificativ a ruterului, deoarece n urma modificrii acestui cmp, va trebui s fie recalculat i suma de control a antetului. Suma de control se bazeaz pe un algoritm de redundan ciclic (un algoritm CRC) ce are proprietatea c se poate verifica uor, dar se calculeaz mult mai greu (verificarea se poate efectua fr a calcula explicit valoarea sumei de control). Cmpul protocol specific ce protocol a fost folosit pentru ncapsularea de nivel transport. n figura de mai jos sunt prezentate cteva dintre valorile cele mai ntlnite ale acestui cmp. Valorile 4 i 41 sunt folosite n cazul tunelrii iar valoarea 59 este folosit pentru a indica c nu mai exist un alt antet, o astfel de conexiune fiind numit IP raw. Valoarea 1 4 6 17 41 59 Protocol ICMP IPv4 (IP-in-IP) UDP TCP IPv6 Fr antet

3.1.1 Clase de adrese


O adres IP este un ir de 32 de bii ce identific dou lucruri: o reea i o staie n cadrul acelei reele. Pentru a simplifica utilizarea adreselor IP se folosete formatul zecimal. Astfel, o adres IP dat: 10110001000001000001011000001000, se mparte mai nti n grupuri de cte 8 bii: 10110001.00000100.00010110.00001000 i apoi fiecare grup este convertit n sistem zecimal: 177.4.22.8. Dei exprimarea zecimal nlesnete semnificativ lucrul cu adrese IP, aduce i unele limitri n uurina de a discerne poriunea de reea i cea de staie din cadrul adresei IP, pentru cazurile n care sunt definite subreele. ncercarea de a pstra reprezentarea zecimal ca model de referin pentru IP i, n acelai timp, de a pune n eviden distincia dintre cele dou componente, a dus la definirea claselor de adrese IP. Odat cu definirea primelor trei clase pentru rutare a mai fost definit un spaiu de adrese folosit pentru adresarea multicast, anume clasa D. Restul adreselor vor constitui clasa E, reprezentnd adrese rezervate. n tabelul urmtor sunt prezentate cele cinci clase definite pentru spaiul de adrese IP.

90 | R e e l e l o c a l e d e c a l c u l a t o a r e

Clasa A B C D E

Primi bii 0... 10... 110... 1110... 11110...

Nr. bii reea 8 16 24

Nr. de reele 27 214 221

Nr. bii staie 24 16 8

Nr. staii 224-2 216-2 28-2

Domeniul de valori 1.0.0.0 126.255.255.255 128.0.0.0 191.255.255.255 192.0.0.0 223.255.255.255

Adrese multicast Rezervat

Proiectarea unei scheme de adresare pentru una sau mai multe reele, bazat pe criteriile de delimitare ntre clasele descrise mai sus, poart i denumirea de adresare classful. n acest mod de adresare, fiecare adres IP aparine unei reele ce se ncadreaz exclusiv ntr-una dintre clasele A, B sau C. n prezent, adresarea classful nu mai este utilizat datorit lipsei sale inerente de flexibilitate n dimensionarea adecvat a reelelor n funcie de numrul de staii. Clasa A a fost proiectat pentru a satisface cerinele ridicate de reelele de mari dimensiuni. Astfel, pentru definirea reelei va fi folosit doar primul octet, pentru identificarea staiei fiind disponibili 24 de bii, ceea ce ofer mai mult de 16,7 milioane de posibiliti. n figura 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 loopback, n scopul monitorizrii i testrii. Tot din tabelul anterior 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. Altfel spus, ea poate fi considerat ca fiind prima adres (din punct de vedere numeric) dintr-o reea. O astfel de adres este folosit pentru identificarea ntregii reele. Aceasta este, de fapt, partea relevant a oricrei adrese de staie ce cltorete peste Internet pentru toate ruterele de pe parcurs. O adres IP de difuzare sau adres de broadcast este o adres pentru care toi biii de staie sunt 1. Un pachet destinat unei astfel de adrese va fi multiplicat i va ajunge la toate staiile din acea reea, dar nu va prsi perimetrul acelei reele. O clas de adrese B este definit de valorile primilor doi bii din adresa IP, aceti primi doi bii fiind 10. Din 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 deoarece primii doi bii ai primului octet sunt fixai, rmn doar 14 bii disponibili pentru a crea clase B. Pentru definirea staiilor sunt folosii ultimii doi octei, adic 16 bii. Astfel pot fi obinute 16.384 reele, fiecare avnd un numr maxim de 65.533 de staii. Clasa C se definete prin alocarea primilor 3 octei pentru definirea reelei i doar a ultimilor 8 bii pentru identificarea staiilor din aceeai reea. 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. Numrul reelelor de clas C depete 2 milioane, fiecare dintre acestea putnd s cuprind 254 de staii. Clasa de adrese D este folosit pentru reele multicast i include adrese de grupuri multicast. Comunicaia multicast este, prin definiie, unidirecional, traficul fiind transportat de la o surs la una sau mai multe staii destinaie. Un grup multicast este definit printr-o adres din clasa D mpreun cu mulimea staiilor destinaie ce solicit traficul acelui grup. Spre deosebire de celelalte clase IP, adresele din clasa D nu pot fi utilizate niciodat in antetul IP n cmpul de adres surs, ci doar n cel destinaie, fapt ce explic i caracterul unidirecional. O alt consecin a caracterului

P r o t o c o l u l I P v 4 | 91 unidirecional al comunicaiilor multicast este faptul c, la nivel transport, ncapsularea este limitat la protocolul UDP (lipsa sesiunilor i a mesajelor de confirmare acknowledgements).

3-2 Adresarea IP n decursul ultimilor 15 ani au existat numeroase standarde i propuneri de standardizare pentru asigurarea unei infrastructuri de multicast, dar realitatea din prezent este c traficul de multicast reprezint doar o foarte mic poriune din traficul transferat n Internet. Cu toate acestea, convergena reelelor de date cu cele de telefonie sau de televiziune ofer o not de optimism n legtur cu viitorul comunicaiilor multicast. n Romania abia n anul 2006 a devenit disponibil comercial serviciul de trasmisiuni de multicast, un singur ISP oferind n acest moment acces la un MBone naional. 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. Cu toate acestea au fost definite mai multe regiuni disjuncte, regiuni menite s serveasc obiective diferite. Primele 256 de adrese (cele cuprinse ntre 224.0.0.0 i 224.0.0.255) sunt definite ca aparinnd zonei Local Network Control Block, aceastea fiind adresele folosite i de protocoalele de rutare: spre exemplu OSPF rezerv dou dintre aceste adrese de multicast: 224.0.0.5 i 224.0.0.6 pentru procesul de alegere a ruterului desemnat, iar RIPv2 folosete adresa 224.0.0.9 pentru trimiterea actualizrilor. Acestea mai poart i denumirea de adrese link-local deoarece pachetele sunt intotdeauna transmise cu TTL 1, deci nu pot fi rutate mai departe de segmentul de reea direct conectat. Clasa de adrese E este rezervat i nu poate fi folosit n reelele publice sau n soluii de multicast.

3.1.2 Masca de reea


Prin folosirea celor 3 clase rutate eficiena utilizrii spaiului de adrese IPv4 este una extrem de redus. Spre exemplu, pentru o reea cu 4 noduri va fi alocat o clas C, pierzndu-se asftfel 250 de adrese. n cazul unei reele de 300 de noduri alocarea unei clase B duce la pierderea a mai mult de 65.000 de adrese, i chiar prin reproiectarea reelei i separarea sa n dou reele, se vor folosi dou clase C, cea ce va duce la pierderea a peste 200 de adrese. Protocolul IP impune ca orice adres s conin dou informaii: o adres de reea i adresa unei staii din cadrul acelei reele. Separarea celor dou cmpuri nu trebuie s apar la grania de octet. Pentru determinarea biilor ce definesc adresa de reea se folosete un ir de 32 de bii denumit masc de reea. Masca de reea este un ir de 32 de bii care, n conjuncie logic cu o adres IP, separ adresa de reea, anulnd biii de staie. Fiecare bit din masca de reea ce corespunde (adic se afl pe aceeai poziie) cu un bit din cmpul de reea are valoare 1, n vreme ce toi biii corespunztori cmpului de staie au valoarea zero. Exprimarea mtii de reea poate fi realizat n forma zecimal sau sub forma unui prefix de reea. n cazul exprimrii zecimale cei 32 de bii sunt separai n grupuri de 8, apoi realizndu-se conversia n zecimal. Procesul este unul similar cu exprimarea zecimal a adresei IP.

92 | R e e l e l o c a l e d e c a l c u l a t o a r e O alt reprezentare a mtilor de reea este sub forma unui numr care indic numrul de bii de 1 consecutivi din masca de reea. Acest tip de reprezentare poart numele de prefix de reea. Pentru exemplificare, fie adresa IP: 141.85.37.133 i masca: 255.255.240.0. Masca de reea este echivalent cu prefixul /20. Pentru aceast exemplu cmpul de reea va cuprinde primii 20 de bii, iar cmpul de staie ultimii 12. Adresa reelei se obine prin operaia de I logic ntre masc i adresa IP: 141.85.32.0/20. Adresa de difuzare se obine prin completarea tuturor biilor din cmpul de staie cu valori de 1. Adresa de difuzare va fi: 141.85.63.255/20. Pentru aceeai adres, dar folosind prefixul /26 adresa de reea ar fi: 141.85.37.128/26, iar adresa de difuzare: 141.85.37.191/26.

3-3 Adresa de reea i de difuzare Este important de observat c aceai adres poate fi adres de staie, adres de reea sau adres de difuzare n funcie de masca de reea aleas. n contextul adresrii classful se identific doar 3 mti de reea posibile: - Clasa A, cu masca 255.0.0.0 sau /8; - Clasa B, cu masca 255.255.0.0 sau /16; - Clasa C, cu masca 255.255.255.0 sau /24. Aceast limitare a creat necesitatea introduceri conceptului de subreea precum i a altor dou tehnici folosite n adresarea IP: - posibilitatea definirii mtilor de reea de orice lungime, de la /0 la /32; - posibilitatea utilizrii de mti de reea de lungime variabil n cadrul aceleiai reele, tehnic denumit i VLSM (Variable Length Subnet Mask).

Subreele
Totalitatea nodurilor ce pot comunica ntre ele folosind dispozitive de nivel fizic i legtur de date (de exemplu: repetoare i switchuri) definesc o reea local. Altfel spus, o reea local va cuprinde totalitatea echipamentelor de reea ce pot comunica fr intermedierea unui router. O reea local coincide cu un domeniu de difuzare. Astfel, toate staiile din aceai reea local vor primi pachetele de broadcast. Din motive de securitate, dar i pentru optimizarea consumului de band n cadrul unei reele locale, un administrator poate decide separarea unor seciuni din reea n subreele diferite. Pentru asigurarea adresrii va trebui s mpart spaiul iniial de adrese n mai multe seciuni disjuncte. ATENIE: Distincia ntre reele i subreele este una pur istoric. Reele erau denumite doar spaiile de adrese ce corespundeau claselor A, B i C. n prezent noiunile sunt folosite interschimbabil. Pentru a mpri spaiul de adrese 144.1.40.0/21 n dou jumti se pornete de la reprezentarea binar a spaiului iniial, apoi sunt delimitate cmpurile de reea i staie. Din cmpul de staie vor fi marcai un numr de bii pentru definirea de subreele. Acesti bii vor defini un nou cmp numit cmp de subreea.

P r o t o c o l u l I P v 4 | 93

3-4 mprire n 2 subreele Pentru a mpri spaiul 144.1.48.0/22 n 5 subreele, se caut cea mai apropiat putere a lui 2 egal sau mai mare cu numrul de subreele cutat. Astfel, pentru a obine 5 subreele va trebui s mprim spaiul de adrese n 8 seciuni egale. Prefixul de reea pentru fiecare dintre cele 8 subreele va fi /25, adic prefixul spaiului iniial la care se adaug numrul de bii necesar pentru a reprezenta cele 8 valori diferite.

3-5 mprire n 8 subreele O dezbatere nc ntlnit n recomandrile legate de alocarea adreselor IP este cea referitoare la folosirea primei i ultimei subreele. n lipsa precizrii mtii de reea, adresa primei subreele poate fi confundat cu adresa spaiului iniial. n mod similar adresa de difuzare a ultimei subreele poate fi confundat cu adresa de difuzare a spaiului iniial. Pentru exemplu de mai sus 144.1.48.0 poate fi ori adresa de reea iniial, dac prefixul este /22, ori prima subreea, dac prefixul este /25. Adresa 144.1.51.255 este adresa de difuzare pentru ntreg spaiul iniial pentru prefixul /22, sau adresa de difuzare a ultimei subreele pentru /25. Din pcate, evitarea folosirii primei i a ultimei subreele duce la o pierdere nsemnat de adrese. Astfel, soluia cea mai rspndit n reelele actuale este de a folosi prima i ultima subreea, dar cu precizarea prefixului (sau a mtii de reea) pentru orice adres IP.

Super-reele
Dimensiunea tabelei de rutare afecteaz att latena procesului de gsire a cii optime, ct i resursele hardware necesare pentru ruter (memorie, procesor). Pentru reducerea numrului de rute se poate folosi procesul de agregare a spaiilor de adrese. Agregarea de adrese este procesul invers mpririi n subreele. n exemplul de mai jos sunt prezentate 4 spaii de adrese alese special ca s difere doar prin cei mai puin semnificativi doi bii ai cmpului de reea.

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

94 | R e e l e l o c a l e d e c a l c u l a t o a r e Este important de precizat c dei 190.20.4.0/22 este un spaiu valid de adrese, nu poate fi folosit pentru alocarea de adrese ntr-o singur reea. n alocarea adreselor nu se pot folosi superreele ale celor 3 clase rutate. Astfel, 140.20.4.0/22 este o subreea din reeaua de clas B 140.20.0.0/16 i poate fi folosit pentru alocarea ntr-o singur reea, dar 190.20.4.0/22 este o superreea ce cuprinde 4 clase C, iar adrese din acest spaiu pot fi alocate numai dup o mprire n subreele. Prefixul unei adrese IP valide nu poate fi mai mic dect prefixul clasei din care face parte respectiva adres. Nu orice dou reele pot fi agregate ntr-o super-reea. Astfel, pentru a putea profita de aceast facilitate adus de VLSM, 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 planificate a adreselor de reea, au fost constientizate extrem de trziu, astfel nct n tabelele de rutare ale marilor ISP-uri din Romnia mai frecvent se ntlnesc prefixe de /26 dect prefixe /20, cum ar fi fost de ateptat la o ar de dimensiunile Romniei.

3.2 Protocolul ARP


n prezent protocolul de rezoluie a adresei ARP este vzut adesea ca o component esenial a arhitecturii TCP/IP, dar lucrurile nu au stat dintotdeauna aa. nceputul anilor 80 a reprezentat o perioad marcat de incertitudini n ceea ce privete standardizarea protocoalelor pentru reelele de calculatoare. Dac la nivelul reelelor locale IEEE a reuit s reduc alegerea la trei standarde: Ethernet, Token Ring i Token Bus, comunicaia ntre aceste reele trebuia asigurat ori de IP ori de CLNS (Connectionless Network Service). Nici anii ce au urmat nu au impus protocolul IP ca principalul ctigtor la nivelul reea de la nceputul anilor 90, competiia desfurndu-se ntre IP i IPX sau Apple Talk. Pentru legturile logice punct-la-punct nu exist nicio diferen ntre comunicaia unicast i broadcast. Din acest motiv, pentru legturile punct-la-punct nu este necesar un mecanism pentru determinarea adresei de nivel 2, folosindu-se doar adresa de difuzare sau un echivalent al acesteia, n funcie de protocolul implementat. Ethernetul este ns un mediu multiacces, putnd exista mai multe destinaii n cadrul aceleai reele locale. ARP a fost standardizat de IETF n 1982 prin RFC 826 i reprezint mecanismul pentru asigurarea comunicaiei unicast ntr-o infrastructur multiacces. Astfel, ARP i-a propus s ofere modalitatea de asociere a unei perechi <adres de reea, protocol de reea> cu o adres unic de nivel legtur de date. Dei standardul prevede posibilitatea funcionrii ARP n conjuncie cu o varietate de protocoale de nivel reea, n practic acesta a devenit o component integrant a stivei de protocoale TCP/IP/Ethernet. Prin urmare, principala aplicabilitate a protocolului ARP a fost i rmne determinarea corespondenelor ntre adresele IP i adresele MAC. ARP se bazeaz pe construirea i meninerea unei tabele ARP. O tabel ARP are rolul de a pstra corespondenele nvate ntre adresele IP i cele MAC. Acestea sunt construite dinamic i sunt stocate n memoria RAM. Dei exist mecanisme pentru adugarea static sau eliminarea unei intrri ntr-o tabel ARP, sunt rare situaiile n care un administrator de reea va apela la ele, aceste operaiuni aparinnd de domeniul mecanismelor de securitate i fiind, de regul, automatizate n cadrul echipamentelor de securitate. Fiecare computer sau dispozitiv de reea i pstreaz propria sa tabel ARP, n realitate existnd cte o tabel ARP pentru fiecare interfa activ. Astfel, un ruter cu trei interfee Ethernet va menine trei tabele ARP distincte. Necesitatea asocierii unei adrese MAC obinute n urma unui rspuns la o cerere ARP provine din modul non-ierarhic (plat) de adresare la nivelul legtur de date. Cu alte cuvinte, un router nu poate extrage dintr-o adres MAC informaii cu privire la interfaa prin care adresa poate fi accesat, fiind necesar meninerea unei asocieri interne. Cum funcioneaz ARP? Cum este construit tabela ARP?

P r o t o c o l u l I P v 4 | 95 Pentru a realiza configuraiile de reea ale unei staii vor trebui precizai minim patru parametri: adresa IP a staiei, masca de reea, adresa ruterului implicit (default gateway) i adresa IP a serverului de DNS. Serverul de DNS este folosit pentru a obine adresa IP a destinaiei, necesar ncapsulrii de nivel reea, pornind de la numele acesteia, spre exemplu o interogare de DNS va indica faptul c www.cs.pub.ro este asociat cu adresa 141.85.37.5. Datele de la nivelul aplicaie vor fi prelucrate n conformitate cu operaiile specifice nivelurilor prezentare i sesiune (dac e cazul) dup care vor fi ncapsulate la nivelul transport, precizndu-se cel mai adesea tipul serviciului (portul surs, portul destinaie). Urmeaz ncapsularea nivelului reea care va ataa antetul IP, antet ce va conine informaiile legate de adresa IP surs i adresa IP destinaie, aceasta din urm fiind n general obinut n urma unei rezoluii de DNS sau prin intermediul unui cache local. Pentru construirea antetului de nivel legtur de date va trebui determinat adresa MAC destinaie. Adresele de nivel legtur de date au relevan local, nu i relevan global precum adresele de nivel reea. Din acest motiv adresa MAC destinaie din antetul de nivel doi va fi aceeai cu adresa MAC a destinaiei doar n cazul n care aceasta se afl n aceeai reea local. Altminteri, din punctul de vedere al reelei locale, adresa MAC destinaie va fi adresa primului router ctre destinaie, deoarece orice router va mrgini reeaua local. Astfel, nainte de a cuta n tabela ARP, va trebui determinat care este urmtoarea destinaie.
193.23.1.4 OC.18.7A.92.71.11 A1 193.23.1.1 OO.48.0C.18.7A.A2 24.8.17.1 OO.48.0C.18.7A.A3

HQ

2
A3 Sw8 A2

Sw7 B1 B2 24.8.17.3

193.23.1.7 OC.18.7A.92.71.1B

24.8.17.2 3-7 Studiul ARP

Pentru primul pas n procesul de rezoluie a adresei va trebui determinat dac destinaia se afl n aceai reea local. Pentru aceasta se aplic masca de reea att adresei destinaie ct i adresei surs, iar dac rezultatele operaiilor de I logic coincid, se va considera c sursa i destinaia se afl n aceai reea local. n cazul acesta n tabela ARP va fi cutat direct adresa MAC a destinaiei, pornind de la adresa IP destinaie. Dac tabela ARP nu conine nicio intrare asociat cu adresa IP destinaie, nodul surs va temporiza (ntrzia) ncapsularea datelor i va crea un cadru nou, numit cerere ARP. Acest nou cadru va fi un cadru de difuzare la nivel legtur de date (deoarece adresa MAC a destinaiei nu este cunoscut), dar va avea n cmpul de date informaii despre adresa IP destinaie. Nodul destinaie va identifica acest cadru drept o cerere ARP, i va actualiza mai nti tabela proprie, iar apoi va trimite un cadru, numit rspuns ARP, ce va fi unicast att la nivel legtur de date, ct i la nivelul reea. Pe baza acestui cadru sursa i va actualiza propria tabel ARP va ncapsula antetul de nivel legtur de date i va trimite cadrul.

96 | R e e l e l o c a l e d e c a l c u l a t o a r e Pentru mai mult claritate se va folosi folosi topologia din figura 3-7 pentru a urmri construirea tabelelor ARP. 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 (o cerere ARP) 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. n figura de mai jos este prezentat structura acestui cadru.

3-8 Cerere ARP Dac se va considera c reeaua din figur folosete Ethernet drept protocol de nivel legtur de date, datele vor fi difuzate i vor ajunge la A2, la A3 i la interfaa routerului conectat la segmentul A. Antetul cadrului va fi analizat la nivelul legtur de date de ctre toi receptorii aflai n acelai domeniu de difuzare. Cmpul destinaie fiind o adres de difuzare, cadrul va fi trimis la nivelul superior. Cadrul este identificat drept o cerere ARP i doar staia (interfaa de reea) a crei adres IP se regsete n cmpul de date al cadrului va iniia un rspuns transmis ca unicast att la nivel reea, ct i la nivel legtur de date. Totodat, pe baza coninutului cmpului de date din cadrul de cerere ARP va fi creat prima intrare n tabela ARP a staiei care s-a recunoscut ca i destinatar (n cazul de fa, A2).

3-9 Rspuns ARP Dup primirea rspunsului, A1 va putea insera n tabela sa ARP adresa MAC a lui A2, iar comunicaia din acest moment va decurge 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 niciun cadru, att A3 ct i ruterul vor primi att cererea ARP, ct i rspunsul. Cu toate acestea, nici cererea ARP, nici rspunsul nu vor duce la actualizarea tabelei ARP, cele dou cadre fiind ignorate. Astfel tabelele celor dou dispozitive rmn vide. Protocolul ARP este un protocol de nivel legtur de date, iar pachetele sale sunt identificate folosind valoarea 0x0806 n cmpul Lungime/Tip. Aceast valoare este mai mare dect 0x0800, cmpul Lungime/Tip identificnd tipul protocolului de nivel 2 i nu lungimea cadrului. Cmpul cod operaie din zona de date a cadrului ARP poate avea doar patru valori, dou folosite de protocolul ARP i dou de RARP. Astfel pentru valoarea 1 i 2 cadrul este interpretat ca o cerere, respectiv rspuns ARP, iar pentru valorile 3 i 4 este interpretat ca o cerere, respectiv rspuns RARP. Dup popularea tabelei ARP va fi creat i antetul de nivel legtur de date al cadrului ce trebuia transmis iniial, dup cum este prezentat i n Fig. 3-10.

P r o t o c o l u l I P v 4 | 97

3-10 Cadrul de date

Cum are loc comunicaia ntre staii aflate n reele diferite? S-a 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. Revenim la primul pas al protocolului ARP, i anume la testul apartenenei la aceeai reea a adresei IP surs i a adresei IP destinaie. Cu alte cuvinte, dac rezultatul operaiei de I logic ntre adresa surs i masca de reea difer fa de rezultatul operaiei de I logic ntre adresa destinaie i aceai masc de reea, se concluzioneaz c sursa i destinaia se afl n reele diferite. n acest caz, n antetul de nivel 2 va trebui precizat adresa urmtorului router aflat pe calea ctre destinaie, altfel spus, adresa routerului implicit (default gateway). Dac n tabela ARP nu exist o intrare pentru routerul implicit, atunci va fi trimis un cadru cerere ARP, pe adresa de difuzare de nivel 2, pentru a afla adresa IP a routerului implicit. Acesta va rspunde cererii, cu un cadru unicast ce va fi folosit pentru actualizarea tabelei ARP pe staia surs. n cele din urm va fi construit antetul de nivel 2 pentru cadrul de date, astfel nct adresa IP destinaie va fi adresa IP a destinaiei finale, dar adresa MAC destinaie va fi adresa MAC a routerului implicit. n cazul reelei de mai sus se consider c staia A1 vrea s comunice cu B1. Dup operaia IP(A1)&masc(A1) = IP(B1)& masc(A1), se determin c B1 nu se afl n aceai reea local. Astfel A1 va cuta n tabela ARP o coresponden pentru adresa routerului implicit, adic pentru 193.23.1.1. Dac aceast coresponden nu exist, va trimite un cadru de cerere ARP dar care va avea precizat n cmpul de date ca adres IP destinaie 193.23.1.1. Cadrul fiind unul de difuzare, va fi recepionat de ctre toate dispozitivele de reea aflate pe acest segment. A2 i A3 vor ignora cadrul, deoarece acesta va avea precizat ca adres IP destinaie alt valoare dect adresele lor. Routerul va trimite un cadrul de rspuns ARP similar cu cel din Fig. 3-10, n care MAC surs va fi: 00.48.0C.18.7A.A2, iar IP surs va fi 193.23.1.1. Pe baza cadrului de cerere ARP, routerul i va actualiza propria tabel ARP corespunztoare interfeei dinspre segmentul A, iar apoi pe baza cadrului de rspuns A1 i va aduga n tabela ARP o intrare nou, ce face corespondena ntre 193.23.1.1 i adresa MAC a interfeei routerului: 00.48.0C.18.7A.A2. Din acest moment staia A1 va ncapsula transmisia destinat staiei B1 folosind adresa IP a lui B1 (24.8.17.2) i adresa MAC a interfeei e0 a routerului (00.48.0C.18.7A.A2). Adresa destinaie va folosi routerului pentru a determina interfaa pe care trebuie trimis pachetul i astfel procesul de rutare va determina c pachetul trebuie trimis pe interfaa e1 a routerului. Pentru a lua aceast decizie, routerul va efectua o cutare n tabela sa de rutare pentru a identifica cea mai specific rut, cu masca de lungime maxim, ce cuprinde adresa destinaie. Dac ruta identificat se dovedete a fi o rut direct conectat, ruterul va trimite pe interfaa indicat de rut o cerere ARP pentru a obine adresa MAC a destinaiei. Dac ruta nu este direct conectat (dinamic sau static) aceasta ii va furniza adresa urmtorului hop, urmnd ca ruterul s emit cererea ARP pentru adresa MAC a hop-ului urmtor. Pentru topologia din Fig. 3-7, n urma a dou procese de cerere/rspuns ARP i o rescriere a antetului de nivel 2 operat de ruter, pachetul va ajunge la destinaie, aceast comunicaie simpl fiind realizat prin trimiterea a nu mai puin de 6 cadre cu antete de nivel 2 diferite. n plus, n tabela ARP a staiei A1, a interfeei e0, a interfeei e1 i a staiei B1 a fost adugat cte o nregistrare. Cum are loc comunicaia ntre staii aflate n reele diferite dac nu s-a precizat adresa ruterului implicit?

98 | R e e l e l o c a l e d e c a l c u l a t o a r e Pentru sistemele de operare ce ruleaz la nivelul staiilor, lipsa adresei ruterului implicit echivaleaz cu limitarea comunicaiei la reeaua local. Pe de alt parte, n cazul ruterelor ce au ca interfa de ieire o reea de tip multiacces (de exemplu Ethernet), dar nu au precizat i adresa urmtorului ruter trebuie cutat un alt mecanism pentru a asigura ieirea din reeaua local. Un caz similar este i cel al unor dispozitive dedicate ce ruleaz sisteme de operare monolitice, cu implementri pariale ale stivei TCP/IP datorit resurselor hardware mult mai limitate dect n cazul calculatoarelor personale (de exemplu maini de marcat, automate de cafea, etc.). Att pentru rute incomplet specificate, ct i pentru implementri pariale ale stivei TCP/IP nu va mai exista diferen ntre comunicaia ntre noduri din aceai reea local i comunicaia ntre noduri aflate n reele diferite. Staiile nu vor mai avea nevoie dect de precizarea adresei IP, pentru orice adres IP destinaie urmnd s iniieze o cerere ARP. Soluia se bazeaz pe rularea la nivelul ruterului de ieire din reeaua local a serviciului de 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 adresa MAC a interfeei conectate n acea reea. Pentru a evita erorile de rutare, un ruter ce ruleaz proxy ARP va rspunde doar cererilor ARP emise pentru destinaii pentru care acesta are o rut n tabela de rutare proprie. Este important de subliniat c, dei pentru o adres IP dat nu poate exista mai mult de o singur intrare n tabela ARP, mai multe adrese IP pot fi asociate cu o singur adres MAC, acest fapt fcnd posibil funcionarea comunicaiei prin Proxy ARP. n topologia folosit anterior, pentru a permite comunicaia ntre A1 i B1 folosind proxy ARP, testul de apartenen n aceai reea nu mai poate fi fcut la nivelul staiei, deoarece aceasta nu mai are disponibil o masc de reea. A1 va iniia un cadru de cerere ARP, ce va avea ca adres IP destinaie B1 (i nu adresa IP a interfeei e0). Cererea va ajunge la toate staiile conectate n reeaua local, dar A2 i A3 o vor ignora nerecunoscnd adresa IP destinaie. Ruterul n schimb, rulnd proxy ARP, va testa mai nti dac cererea ARP este destinat unei staii aflate n afara reelei din care provine. Testul va folosi masca i adresa interfeei pe care a fost primit cererea, precum i adresa IP destinaie. Cum IP(B1)&masc(e0) este diferit de IP(e0)&masc(e0), ruterul va decide c destinaia se afl n alt reea. n acest caz ruterul va trimite cadrul de rspuns ARP folosind ca adres surs de nivel reea adresa destinaiei finale (n cazul de fa adresa lui B1 - 24.8.17.2), i adresa de MAC a interfeei de ieire din reea, adic 00.48.0C.18.7A.A2. Totodat, ruterul i va aduga n tabela ARP a interfeei e0 corespondena ntre 0C.18.7A.11.71.11 i 193.23.1.4, iar A1 i va aduga n tabela ARP intrarea ce asociaz 00.48.0C.18.7A.A2 cu 24.8.17.2. Cadrul de date va fi ncapsulat apoi folosind tabela ARP, preciznd ca adres IP destinaie 24.8.17.2, iar ca adres MAC destinaie 00.48.0C.18.7A.A2, exact ca i n cazul folosirii unui ruter implicit. Ruter implicit vs. Proxy ARP? Spre deosebire de Proxy ARP, n care cererea ARP este adresat staiei destinaie, n cazul precizrii routerului implicit cererea ARP este adresat direct routerului. n cazul proxy ARP staiile se comport ca i cum toate destinaiile s-ar afla n reeaua lor local, avnd ca adres MAC adresa ruterului. Aceasta nseamn c dac o staie vrea s transmit ctre trei staii aflate n reele diferite, staia surs va emite trei cereri ARP (cte una pentru fiecare). Cererile vor fi interceptate i li se va rspunde de ctre ruter; aceasta duce la o cretere a traficului, precum i a dimensiunii tabelei ARP de la nivelul staiei. n cazul default gateway staia surs va testa apartenena destinaiilor la reeaua proprie i n cazul n care observ c ele fac parte din alt reea, staia surs nu va trimite cereri ARP direct ctre ele ci vor folosi adresa MAC a ruterului implicit (pe care o pot afla trimind o singur cerere ARP). Proxy ARP ncarc ruterul, care trebuie s rspund la cererile ARP destinate staiilor din afara reelei; precizarea ruterului implicit ncarc staiile, care trebuie s testeze apartenena staiilor destinaie la reeaua local. Dei pare fireasc ntrebarea care dintre cele dou metode este mai bun, n reelele locale competiia s-a ncheiat n favoarea metodei bazate pe folosirea ruterului implicit. Staiile de lucru au

P r o t o c o l u l I P v 4 | 99 devenit foarte puternice n decursul ultimilor 15 ani, astfel nct distribuirea la nivelul staiilor a testului de apartenen a sursei i destinaiei la acelai LAN aduce acestora o ncrcare nesemnificativ, elibernd ruterul de procesul decizional asociat cu Proxy ARP. Pe de alt parte, ncrcarea ruterului la rularea Proxy ARP nu este semnificativ, mai ales pentru un ruter ce conecteaz o reea local. Din acest motiv majoritatea ruterelor (toate ruterele CISCO spre exemplu) vor avea activat implicit Proxy ARP. n cazul unei reele locale cu mai mult de o singur ieire de Internet, precizarea ruterului implicit ofer un control mult mai strict al staiilor, i permite implementarea balansrii pe baz de surs a traficului. Dac s-ar analiza strict doar cele dou protocoale, concluzia ar fi c n cazul n care staiile comunic preponderent cu alte staii din cadrul aceleai reele locale comunicaia bazat pe folosirea ruterului implicit va fi lent, datorit testului suplimentar, n vreme ce pentru cazul unei reele n care majoritatea traficului prsete reeaua local Proxy ARP va emite cte o cerere ARP pentru fiecare adres destinaie diferit.

3.3 DHCP
DHCP (Dynamic Host Configuration Protocol) este un protocol client-server prin intermediul cruia serverul furnizeaz staiei client parametrii de configurare necesari funcionrii ntr-o reea. DHCP ofer, de asemenea, posibilitatea controlului accesului la reeaua local (pe criteriul adresei fizice), precum i mobilitate, mutarea dintr-o reea n alta fiind posibil fr reconfigurarea manual a gazdei. DHCP furnizeaz un mecanism prin care serverul atribuie adrese IP clienilor. Exist trei modaliti de alocare a adreselor IP: alocare dinamic, manual sau automat. Alocarea dinamic presupune definirea unui set de adrese IP. Adresele IP alocate sunt nlturate din mulimea adreselor disponibile, dar n momentul expirrii perioadei de nchiriere (dac nu este prelungit contractul de nchiriere) acestea se pot ntoarce n zona adreselor disponibile pentru ca apoi s fie alocate unui alt nod de reea. Perioada de nchiriere a adreselor IP variaz n funcie de implementarea serverului de DHCP, valori uzuale fiind 24 sau 192 de ore sau orice alt valoare configurabil de ctre administrator. Alocarea manual presupune definirea pe server de asocieri ntre adrese MAC i adrese IP. La primirea unei cereri DHCP, adresa MAC surs va fi cutat n lista de asocieri. Dac nu exist o asociere definit, n funcie de configuraie, serverul poate ignora cererea, sau poate trece n modul de alocare dinamic. Alocarea manual permite administratorului implementarea unor politici de control al accesului la reea, fiind una dintre primele recomandri de securizare a reelei locale. n acelai timp, permite un grad de flexibilitate ridicat n cazul schimbrilor de topologie precum apariia unui nou server de DHCP sau schimbarea ruterului de ieire din reeaua local (default gateway). Alocarea automat mbin simplitatea de configurare a alocrii dinamice (trebuie doar definit setul de adrese IP disponibile, i nu o list de asocieri MAC-IP) cu avantajele de securitate ale alocrii statice: n cazul unui reele cu numr de adrese disponibile egal cu cel al staiilor o nou staie nu va putea primi parametrii de reea, deoarece o adres IP alocat nu se mai ntoarce n mulimea adreselor disponibile dect la restartarea serviciului de DHCP. Funcionnd n reeaua local, DHCP nu necesit un serviciu orientat pe conexiune care s ofere controlul traficului, detectarea i rectificarea erorilor sau secvenierea corect a datelor. Un astfel de serviciu (TCP) ar introduce ncrcare i ntrzieri nejustificate. De aceea, se folosesc datagrame UDP, pe portul 67 pentru server i pe portul 68 pentru client. Conversaia dintre client i server const n urmtorii pai: La pornire, staia client DHCP trimite cereri pentru iniierea comunicaiei cu serverele DHCP. Aceste cereri sunt trimise prin intermediul mesajelor BROADCAST de tip DHCPDISCOVER.

100 | R e e l e l o c a l e d e c a l c u l a t o a r e La primirea cererilor, serverul determin dac o poate onora. n caz afirmativ, serverul rspunde cu mesaj UNICAST de tip DHCPOFFER, care poate include adresa IP, masca de reea, adresa gateway, adresa serverului de nume, perioada de valabilitate, precum i muli ali parametri opionali. Dac routerul este configurat corespunztor, cererea poate fi transmis mai departe, ctre un alt server DHCP (DHCP relay), caz n care cererea este ncapsulat ntr-un pachet unicast i trimis spre serverul DHCP. Dac oferta este acceptat de ctre client, acesta va trimite un mesaj BROADCAST de tip DHCPREQUEST, n care sunt cerui parametrii respectivi. Se trimite un mesaj de tip BROADCAST i nu unul de tip UNICAST pentru a stabili care server a fost ales, n cazul n care DHCPDISCOVER a ajuns la mai multe servere. n implementrile uzuale ale DHCP, staia ncepe s foloseasc adresa IP alocat, dei procesul de confirmare nc nu s-a ncheiat. Serverul ales trimite un mesaj de confirmare UNICAST, de tip DHCPACK. n cazul n care adresa a fost alocat pn la primirea DHCPREQUEST, serverul va trimite un mesaj DHCPNACK, procesul relundu-se de la pasul 1.

3.4 Configurarea protocolului IPv4


n acest subcapitol se vor prezenta utilitare prin care se realizeaz configurrile necesare la nivelul 3 al stivei de protocoale, nivelul IP, n vederea asigurrii adresrii staiilor ntr-o reea.

ping
Utilitarul, respectiv comanda ping se regsete n cadrul tuturor sistemelor de operare ce au n nucleul lor implementat stiva de protocoale TCP/IP. ping a fost prezentat n capitolul Nivelul Fizic ca un utilitar ce ne ajut s msurm latena. Implicit, putem determina dac exist conectivitate ntre staia de pe care se execut comanda i staia ce are IP-ul specificat ca parametru n comanda ping. n general, n orice sistem de operare, modul de folosire al utilitarului este identic.
root@micos:~# ping mail.upb.ro PING mail.upb.ro (141.85.166.61) 56(84) bytes of data. 64 bytes from mail.upb.ro (141.85.166.61): icmp_seq=1 ttl=57 time=14.4 64 bytes from mail.upb.ro (141.85.166.61): icmp_seq=2 ttl=57 time=14.5 64 bytes from mail.upb.ro (141.85.166.61): icmp_seq=3 ttl=57 time=15.2 64 bytes from mail.upb.ro (141.85.166.61): icmp_seq=4 ttl=57 time=14.6 ^C --- mail.upb.ro ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 14.448/14.723/15.255/0.326 ms ms ms ms ms

3.4.1 Linux
Pentru a obine informaii suplimentare legate de opiunile utilitarelor prezentate, folosii paginile de manual (man nume_utilitar). ATENIE: n general toate utilitarele ce configureaz un sistem Linux trebuie rulate cu drepturi privilegiate.

ip address
n Linux, o adres IP se poate configura folosind mai multe utilitare. Unul dintre ele este ip, acesta fcnd parte din suita iproute2. Pentru vizualizarea i configurarea adresrii, comanda este urmat de parametrul address. Astfel pentru vizualizarea configuraiilor curente ale interfeelor folosim comanda ip address show:
root@HQ:~# ip address show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever

P r o t o c o l u l I P v 4 | 101
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:a0:9f:65 brd ff:ff:ff:ff:ff:ff inet 86.122.60.17/26 brd 86.122.60.63 scope global eth0 inet6 fe80::202:b3ff:fea0:9f65/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:03:47:e0:da:38 brd ff:ff:ff:ff:ff:ff inet 192.168.254.1/27 brd 192.168.254.31 scope global eth1 inet6 fe80::203:47ff:fee0:da38/64 scope link valid_lft forever preferred_lft forever 4: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 1c:6f:65:fd:0b:53 brd ff:ff:ff:ff:ff:ff inet 192.168.254.129/27 brd 192.168.254.159 scope global eth3 inet 83.103.197.72/26 brd 83.103.197.127 scope global eth3:1

Dac se ruleaz comanda ip address, fr parametrul show, efectul obinut este acelai. n cazul n care dorim s vedem configuraia unei interfee specifice folosim parametrul dev urmat de numele interfeei:
root@HQ:~# ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:a0:9f:65 brd ff:ff:ff:ff:ff:ff inet 86.122.60.17/26 brd 86.122.60.63 scope global eth0 inet6 fe80::202:b3ff:fea0:9f65/64 scope link valid_lft forever preferred_lft forever root@HQ:~# ip address dev eth0 Command "dev" is unknown, try "ip addr help".

Se observ c specificarea interfeei cu ajutorul lui dev este condiionat de subcomanda show. Pentru a configura o adres IP pe o interfa se folosete cuvntul cheie add urmat de adresa IP i masca. Specificarea interfeei este obligatorie:
root@HQ:~# ip address add 10.0.0.1/24 Not enough information: "dev" argument is required. root@HQ:~# ip address add 10.0.0.1/24 dev eth0 root@HQ:~# ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:a0:9f:65 brd ff:ff:ff:ff:ff:ff inet 86.122.60.17/26 brd 86.122.60.63 scope global eth0 inet 10.0.0.1/24 scope global eth0 inet6 fe80::202:b3ff:fea0:9f65/64 scope link valid_lft forever preferred_lft forever

Dup cum se poate observa, adresa IP nu a fost suprascris, existnd dou adrese IP pe o interfaa. Dac nu se specific nicio masc, este implicit luat masca /32. Pentru a terge o adres IP de pe o interfa se folosete cuvntul cheie del, urmat de adresa IP i interfa:
root@HQ:~# ip address del 10.0.0.1/24 dev eth0 root@HQ:~# ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:a0:9f:65 brd ff:ff:ff:ff:ff:ff inet 86.122.60.17/26 brd 86.122.60.63 scope global eth0 inet6 fe80::202:b3ff:fea0:9f65/64 scope link valid_lft forever preferred_lft forever

ATENIE: Dac se configureaz greit o adres IP (ai uitat masca de reea sau aceasta este greit), mai nti tergei configuraia respectiv (punei del n loc de add n comand). n caz contrar vor aprea anomalii greu de detectat. Toate configurrile fcute sunt n memoria RAM a calculatorului. La o repornire a sistemului de operare configurrile se vor pierde. O opiune foarte util pentru utilitarul ip este folosirea parametrilor n form scurt variabil. De exemplu, n loc de address, putem scrie doar un prefix din acesta, punnd condiia ca acel prefix s fie unic, adic s nu mai existe alt parametru ce ncepe cu acel grup de caractere:
root@HQ:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN [...] root@HQ:~# ip ad 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN [...] root@HQ:~# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

102 | R e e l e l o c a l e d e c a l c u l a t o a r e
[...] root@HQ:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN [...] root@HQ:~# ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN[...] root@HQ:~# ip a sh 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN [...]

n afar de paginile de manual, putei obine informaii despre parametrii posibili folosind cuvntul cheie help:
root@HQ:~# ip address help Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ] [ CONFFLAG-LIST] ip addr del IFADDR dev STRING [...]

ifconfig
O alt metod de configurare a IP-urilor pe sistemele Linux este folosirea utilitarului ifconfig, parte a pachetului net-tools, mpreun cu netstat, arp i route (pentru route vezi capitolul 6). Principalul dezavantaj al lui ifconfig este faptul c acesta se execut mult mai lent dect ip address (pentru mai multe detalii vezi [1]).
root@HQ:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:02:B3:A0:9F:65 inet addr:86.122.60.17 Bcast:86.122.60.63 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11683841 errors:80107 dropped:0 overruns:0 frame:80107 TX packets:9096265 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 eth1 Link encap:Ethernet HWaddr 00:03:47:E0:DA:38 inet addr:192.168.254.1 Bcast:192.168.254.31 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4726904 errors:0 dropped:0 overruns:0 frame:0 TX packets:7221358 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

eth3

Link encap:Ethernet HWaddr 1C:6F:65:FD:0B:53 inet addr:192.168.254.129 Bcast:192.168.254.159 Mask:255.255.255.224 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 Interrupt:24 Base address:0x8000 root@HQ:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:02:B3:A0:9F:65 inet addr:86.122.60.17 Bcast:86.122.60.63 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11684015 errors:80107 dropped:0 overruns:0 frame:80107 TX packets:9096275 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

Rularea fr nici un parametru duce la afiarea configurrilor fcute pe toate interfeele. Dac succedm comanda de numele interfeei, se afieaz doar configuraiile interfeei respective. Pentru a configura un IP, dup numele interfeei se adaug IP-ul urmat de cuvntul cheie netmask i masca reprezentat n format dotted-decimal:
root@HQ:~# ifconfig eth3 10.0.0.1 netmask 255.255.255.0 root@HQ:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:02:B3:A0:9F:65 inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11684645 errors:80107 dropped:0 overruns:0 frame:80107 TX packets:9096486 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

Dup cum se poate observa, adresa IP a fost rescris, cea veche nemaiexistnd. Dac se dorete adugarea de mai multe adrese IP pe o interfa se introduce conceptul de subinterfa (o interfa virtual asociat interfeei fizice). Pentru a specifica o subinterfa, se folosete numele interfeei urmat de : i un index (nu este obligatoriu s nceap de la 0 sau s fie consecutive n cazul mai multor subinterfee).

P r o t o c o l u l I P v 4 | 103 Mai nti vom reconfigura interfaa cu vechea adres, dup care vom aduga o adres IP pe o subinterfa:
root@HQ:~# ifconfig eth0 86.122.60.17 netmask 255.255.255.192 root@HQ:~# ifconfig eth0:2 10.0.0.1 netmask 255.255.255.0 root@HQ:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:02:B3:A0:9F:65 inet addr:86.122.60.17 Bcast:86.122.60.63 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11685175 errors:80107 dropped:0 overruns:0 frame:80107 TX packets:9096717 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 eth0:2 [...] Link encap:Ethernet HWaddr 00:02:B3:A0:9F:65 inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Se poate observa c interfeele au aceeai adres MAC, ceea ce nseamn c folosesc aceeai interfaa fizic. Ca i utilitarul ip, toate configurrile fcute sunt stocate n memoria RAM, au caracter temporar, iar la o repornire a sistemului de operare acestea se pierd.

dhclient
n cazul n care n reea exist un server de DHCP care ne ofer n mod automat configuraiile interfeei, acestea se pot obine folosind utilitarul dhclient, urmat de numele interfeei.
root@HQ:~# dhclient eth0 root@HQ:~# dhclient -v eth0 Internet Systems Consortium DHCP Client 4.1-ESV-R4 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/eth0/00:0c:29:4b:89:95 Sending on LPF/eth0/00:0c:29:4b:89:95 Sending on Socket/fallback DHCPREQUEST of 192.168.132.147 on eth0 to 255.255.255.255 port 67 DHCPACK of 192.168.132.147 from 192.168.132.254 bound to 192.168.132.147 -- renewal in 800 seconds.

n versiunile mai noi ale dhclient, acesta nu mai afieaz niciun mesaj. Pentru a vedea mesajele schimbate de acesta putei folosi opiunea -v (verbose). ATENIE: Toate configuraiile sunt stocate n memoria RAM, avnd caracter temporar. La o repornire a sistemului de operare, acestea se pierd.

/etc/network/interfaces
Dup cum s-a menionat n cadrul utilitarelor de configurare a adreselor IP, la o repornire a sistemului de operare toate configuraiile realizate nu mai sunt disponibile. Pentru a rezolva aceast problem, sistemul de operare pune la dispoziie, n general, un mecanism prin care acestea s fie configurate la fiecare pornire a sistemului. Se mai spune despre configuraie c este persistent sau permanent. n cadrul acestei seciuni se va prezenta modul n care se realizeaz o configuraie persistent pe sistemele debian-based. n fiierul /etc/network/interfaces se afl configuraiile permanente. Pentru interfaa eth0, intrarea n fiier este de forma:
root@HQ:~# cat /etc/network/interfaces auto eth0 iface eth0 inet static address 86.122.60.17 netmask 255.255.255.192 network 86.122.60.0 broadcast 86.122.60.63 gateway 86.122.60.1

Se observ c s-au specificat adresa IP 86.122.60.17, masca de reea 255.255.255.192, adresa de reea 86.122.60.0, adresa de difuzare 86.122.60.63 i gateway-ul 86.122.60.1. Dac nu sunt specificate, adresa de reea i adresa de difuzare sunt calculate automat de ctre sistem. Dac nu se

104 | R e e l e l o c a l e d e c a l c u l a t o a r e dorete adugarea unui gateway i acesta poate fi omis. n concluzie, n afar de adresa IP i masca de reea, toi ceilali parametri sunt opionali. n cazul n care configuraiile sunt obinute prin DHCP, se poate folosi urmtoarea directiv:
root@HQ:~# cat /etc/network/interfaces [...] auto eth1 iface eth1 inet dhcp

Dup realizarea configurrilor n fiier, acestea nu vor deveni active dect la urmtoarea pornire a sistemului. Pentru a nu reporni sistemul de fiecare dat cnd modificai o configuraie, se poate reporni doar serviciul de reea:
root@HQ:~# /etc/init.d/networking restart * Reconfiguring network interfaces... stop/waiting ssh start/running, process 19344 ssh stop/waiting ssh start/running, process 19433 ssh stop/waiting ssh start/running, process 19522 ssh stop/waiting ssh start/running, process 19611 [ OK ] ssh

i acest lucru este neplcut, deoarece va afecta toate plcile de reea, reconfigurndu-le. Pentru a evita reconfigurarea tuturor plcilor, se pot folosi utilitarele ifup (pornete i configureaz interfaa) i ifdown (oprete interfaa). ATENIE: acestea aplic configuraia din fiierul /etc/network/interfaces numai dac avei specificat directiva auto nume_intefa.
root@HQ:~# ifdown eth1 root@HQ:~# ip addr s dev eth1 | grep DOWN 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 root@micos:~# ifup eth1 ssh stop/waiting ssh start/running, process 20124 root@HQ:~# ip addr s dev eth1 | grep DOWN root@HQ:~# ip addr s dev eth1 | grep UP 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000.

ATENIE: Pentru orice modificare n fiierul de configurare trebuie s repornii serviciul de reea sau s folosii utilitarele ifup i ifdown. Pentru mai multe detalii despre directivele acceptate, consultai pagina de manual (man interfaces).

/etc/resolv.conf
Accesarea Internetului folosind adresa IP este foarte greoaie. Astfel trebuie s reinem pentru fiecare resurs din Internet (de exemplu site-uri) o adres IP. Pentru a uura accesul, se folosesc nume. Maparea ntre un nume i o adres IP este fcut de serviciul de DNS. Pentru a putea accesa staiile din Internet dup nume este necesar configurarea clientului de DNS. Pe sistemele Linux se editeaz fiierul /etc/resolv.conf i se adaug intrri de tipul nameserver adresa_ip_server_dns. Serverele de DNS sunt oferite de obicei de ctre ISP. Mai multe detalii despre funcionarea DNS vor fi prezentate n capitolul Servicii de reea.
root@hQ:~# cat /etc/resolv.conf nameserver 213.154.124.1

Spre deosebire de serviciul de reea care trebuie repornit o dat ce am fcut vreo modificare n configuraie, n acest caz toate modificrile fcute vor fi folosite imediat dup salvarea fiierului. Deci nu este necesar repornirea niciunui serviciu.

P r o t o c o l u l I P v 4 | 105

ip neigh
Tabela ARP dintr-un sistem de operare Linux poate fi vizualizat folosind comanda ip urmat de subcomanda neigh i parametrul show. Ca i pentru subcomanda address, rularea fr parametrul show va avea acelai efect.
root@HQ:~# ip 192.168.254.6 192.168.254.9 root@HQ:~# ip 192.168.254.6 192.168.254.9 neigh show dev eth1 lladdr dev eth1 lladdr neigh dev eth1 lladdr dev eth1 lladdr 1c:6f:65:58:10:4d REACHABLE 00:11:d8:aa:03:df REACHABLE 1c:6f:65:58:10:4d REACHABLE 00:11:d8:aa:03:df REACHABLE

Dup cum s-a prezentat n partea teoretic, tabelele ARP se construiesc pe fiecare interfa. Dac dorim s vizualizm doar tabela de pe o interfa folosim parametrul dev urmat de numele interfeei.
root@HQ:~# ip neigh show dev eth0 86.122.60.1 lladdr 00:1d:71:99:05:40 DELAY

Pentru a vedea toate operaiile ce pot fi executate pe tabela ARP cu ajutorul utilitarului ip putem folosi parametrul help:
root@HQ:~# ip neigh help Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] [ nud { permanent | noarp | stale | reachable } ] | proxy ADDR } [ dev DEV ] ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]

Pentru a terge toate intrrile din tabel se folosete parametrul flush, urmat de cuvntul cheie dev i numele interfeei (dev este obligatoriu):
root@HQ:~# ip neigh flush Flush requires arguments. root@HQ:~# ip neigh flush dev eth1 root@HQ:~# ip neigh show dev eth1 192.168.254.6 FAILED 192.168.254.9 FAILED

De asemenea se pot aduga intrri statice n tabela ARP. Aceasta poate fi folosit ca o msur de securitate (numai cine are perechea IP-MAC configurat n tabela ARP poate accesa staia).
root@HQ:~# ip neigh add 192.168.254.20 lladdr 00:00:00:00:00:01 dev eth0 root@HQ:~# ip neigh show dev eth0 192.168.254.20 lladdr 00:00:00:00:00:01 PERMANENT

Pentur a terge o intrare folosim parametrul del:


root@HQ:~# ip neigh del 192.168.254.20 lladdr 00:00:00:00:00:01 dev eth0 root@HQ:~# ip n s dev eth0 192.168.254.20 FAILED

Se observ c se pot folosi prescurtrile descrise anterior.

arp
Ca i pentru configurarea unei adrese IP (ip address vs. ifconfig) i pentru management-ul tabelei ARP exist un utilitar echivalent cu ip neigh: arp.
root@HQ:~# arp Address 192.168.254.6 192.168.254.9 86.122.60.1 HWtype ether ether ether HWaddress 1c:6f:65:58:10:4d 00:11:d8:aa:03:df 00:1d:71:99:05:40 Flags Mask C C C Iface eth1 eth1 eth0

Se observ c rulat fr nici un parametru, arp afieaz tabela. Pentru specificarea interfeei se folosee parametrul i:
root@HQ:~# arp -i eth1 Address 192.168.254.6 192.168.254.9 HWtype ether ether HWaddress 1c:6f:65:58:10:4d 00:11:d8:aa:03:df Flags Mask C C Iface eth1 eth1

106 | R e e l e l o c a l e d e c a l c u l a t o a r e Pentru a aduga manual o intrare n tabela ARP se folosete parametrul s (set):
root@HQ:~# arp -s 192.168.254.20 00:00:00:00:00:01 root@HQ:~# arp 192.168.254.20 Address HWtype HWaddress 192.168.254.20 ether 00:00:00:00:00:01 Flags Mask CM Iface eth1

Se observ o alt modalitate de interogare a tabelei ARP: comanda arp urmat de IP-ul pentru care dorim s aflm MAC-ul.

traceroute
O alt modalitate pentru a testa conectivitatea ctre o staie se realizeaz folosind utilitarul traceroute. Spre deosebire de ping, acesta arat toat ruterele prin care trece pachetul pentru a ajunge la destinaie. Mai multe detalii vor fi prezentate n capitolul Rutare.
root@HQ:~# traceroute www.google.ro traceroute to www.google.ro (173.194.39.183), 30 hops max, 60 byte packets 1 86.122.60.1.constanta.rdsnet.ro (86.122.60.1) 1.669 ms 1.692 ms 1.775 ms 2 10.225.72.145 (10.225.72.145) 1.231 ms 1.257 ms 1.238 ms 3 CR01.constanta.rdsnet.ro (213.154.123.41) 1.768 ms 1.853 ms 1.902 ms

3.4.2 Cisco IOS


Dup cum s-a precizat i n capitolul introductiv, Cisco IOS ofer mai multe nivele de administrare. Deci pentru a putea configura o interfa trebuie s intrm n modul de configurare al interfeei. Pentru a vizualiza toate configuraiile sistemului, trecem n modul global:
Router>enable Router#

Adresarea IP
Pentru a vizualiza configuraia de nivel 3 a unei interfee folosim comanda show ip interface urmat de numele interfeei.
Router#show ip interface FastEthernet 1/0 FastEthernet1/0 is up, line protocol is up (connected) Internet address is 150.240.5.243/29 Broadcast address is 255.255.255.255 [...]

Dac nu includem cuvntul cheie ip n comand, i folosim doar show interfaces vor fi afiate i configuraiile de nivel 2.
Router#show interfaces fastEthernet 1/0 FastEthernet1/0 is up, line protocol is up (connected) Hardware is Lance, address is 0040.0bbc.3801 (bia 0040.0bbc.3801) Internet address is 150.240.5.243/29 MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 [...]

Dac nu specificm nicio interfa dup comanda show ip interface, vor fi afiate toate interfeele sistemului:
Router#show ip interface FastEthernet0/0 is up, line protocol is up (connected) Internet protocol processing disabled FastEthernet0/0.8 is up, line protocol is up (connected) Internet address is 150.240.5.225/28 [...] FastEthernet0/0.140 is up, line protocol is up (connected) Internet address is 150.240.3.1/24 [...]

Pentru a realiza orice fel de configurare trebuie s intrm n modul global de configurare, dup care vom intra n modul de configurare al interfeei folosind comanda interface urmat de numele acesteia:

P r o t o c o l u l I P v 4 | 107
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# Router(config)#interface ? [...] Ethernet IEEE 802.3 FastEthernet FastEthernet IEEE 802.3 GigabitEthernet GigabitEthernet IEEE 802.3z [...] Router(config)#interface FastEthernet ? <0-9> FastEthernet interface number Router(config)#interface FastEthernet 0/? <0-24> FastEthernet interface number Router(config)#interface FastEthernet 0/0 Router(config-if)#

n acest moment putem configura o adres IP folosind comanda ip address urmat de adresa IP i masca de reea:
Router(config-if)#ip address 10.0.0.1 255.255.255.0 Router(config-if)#exit Router(config)#exit Router#show ip interface brief Interface IP-Address OK? Method Status FastEthernet0/0 FastEthernet0/0.8 FastEthernet0/0.140 10.0.0.1 150.240.5.225 150.240.3.1 YES manual up YES manual up YES manual up

Protocol up up up

Se observ c adresa IP a fost configurat. O alt observaie este legat de cuvntul cheie brief. Acesta poate fi folosit pentru a sumariza toate configuraiile de nivel 3 ale ruterului. Dac se configureaz o alt adresa IP, se suprascrie cea veche. De asemenea se obsev c putem folosi doar un prefix al comenzii, dac acesta este unic:
Router(config)#int fastEthernet 0/0 Router(config-if)#ip addr 10.1.1.1 255.255.255.0 Router(config-if)#exit Router(config)#exit Router#show ip interface br Interface IP-Address OK? Method Status FastEthernet0/0 FastEthernet0/0.8 FastEthernet0/0.140 10.1.1.1 150.240.5.225 150.240.3.1 YES manual up YES manual up YES manual up

Protocol up up up

Pentru a configura o interfa s i preia adresa IP de la un server DHCP folosim comanda ip address dhcp:
Router(config)#interface fastEthernet 0/0 Router(config-if)#ip address dhcp Router(config-if)#exit Router(config)#exit Router#sh ip int br Interface IP-Address OK? Method Status FastEthernet0/0 FastEthernet0/0.8 FastEthernet0/0.140 unassigned 150.240.5.225 150.240.3.1 YES DHCP up

Protocol up up up

YES manual up YES manual up

Toate configuraiile prezentate mai sus sunt fcute n memoria RAM a sistemului. La o repornire, acestea se vor pierde. Pentru a salva modificrile n memoria permanent trebuie executat comanda write memory:
Router# write memory Building configuration... [OK]

Tabela ARP
Pentru a vizualiza tabela ARP folosim comanda show ip arp:

108 | R e e l e l o c a l e d e c a l c u l a t o a r e
Router#show ip arp Protocol Address Internet 10.1.1.1 Internet 150.240.5.243

Age (min) -

Hardware Addr 0007.EC90.7E01 0040.0BBC.3801

Type ARPA ARPA

Interface FastEthernet0/0 FastEthernet1/0

3.4.3 Windows
n sistemele de operare Windows adresa IP se configureaz n general prin GUI. Cei de la Microsoft au introdus un utilitar prin care acestea se pot i din linie de comand, purtnd numele de netsh. Practic cu acesta se poate realiza orice fel de configurare legat de serviciul de reea. n continuare se va prezenta metoda de configurare prin GUI a adreselor IP pe Windows 7.

Network and Sharing Center


Network and Sharing Center reprezint principalul utilitar de configurare a reelei n Windows Server 2008. El poate fi accesat n unul dintre urmtoarele moduri: n System Tray (denumit i Notification Area), dac este afiat pictograma de conectivitate la reea, printr-un clic pe aceasta urmat de selecia opiunii Open Network and Sharing Center din meniu; din Control Panel, accesnd Network and Internet urmat de Network and Sharing Center (sau direct accesnd Network and Sharing Center pentru Control Panel n modul Classic View). Att n cazul reelelor cablate ct i pentru cele wireless, Network and Sharing Center atribuie una dintre cele trei locaii posibile: public, private i domain. Aceste locaii reprezint parametri ce sunt setai pentru orice calculator ce ruleaz Windows 7 sau Windows Server 2008, fiecare configurndu-i apartenena la reea printr-una dintre cele trei locaii. Diferite proprieti ale reelei pot fi activate sau dezactivate automat n funcie de tipul ei.

3-11 Network and Sharing Center n Windows 7 Implicit, toi clienii sunt membri ai unei locaii de tip public. Pentru un astfel de calculator, Windows Firewall este activ, serviciul de Network Discovery este oprit, partajarea fiierelor i a imprimantei este dezactivat iar generarea unei hri a reelei (Network Map) este indisponibil.

P r o t o c o l u l I P v 4 | 109 Cnd un calculator este asignat unei locaii de tip private serviciul de Nework Discovery i Network Map sunt activate. Partajarea fiierelor este oprit, dar, spre deosebire de locaia public, partajarea poate fi activat individual i independent pe fiecare calculator. Dac un calculator devine membru al unui domeniu Active Directory, el este automat inclus n locaia de tip domain. Membrii acestei locaii beneficiaz de aproximativ aceeai configuraie ca i cei din tipul de locatie private, cu excepia c parametrii Windows Firewall, Network Discovery i Network Map sunt determinate de politicile de grup ale domeniului (Group Policy Settings). Alte opiuni disponibile n Network and Sharing Center: Network Discovery: Permite calculatorului propriu s poat localiza alte calculatoare din reea i s poat fi localizat, la rndul su. Opiunea poate fi setat pe On, Off sau poate avea valoarea Custom, spre exemplul n situaia n care Network Discovery este activ dar firewall-ul nu deine o regul pentru a permite funcionarea sa n reea. File Sharing: Partajarea fiierelor creeaz automat o permisiune n firewall pentru ca protocolul s poat funciona. Activarea File Sharing-ului permite utilizatorilor s partajeze fiierele din propriul profil, adic din %systemroot%\Users\%username%. Administratorii de sistem pot partaja orice fiier din calculator. Public Folder Sharing: n directorul de profil al fiecrui utilizator exist un subdirector numit Public care este automat partajat n momentul activrii acestei opiuni. La activarea Public Folder Sharing este activat automat i opiunea de File Sharing. Printer Sharing: Opiunea ofer posibilitatea de partajare a accesului la imprimantele instalate local, pentru a putea fi folosite de orice alt calculator din reea. De asemena, activarea aceste opiuni are ca efect i activarea opiunii de File Sharing. Password Protected Sharing: Opiunea este disponibil doar pe sistemele care nu sunt membre ale unui domeniu. n momentul activrii sale, accesul la resursele locale partajate este restricionat doar pentru cei care au un cont valid de utilizator pe calculatorul gazd.

Network Connections
Windows 7 detecteaz i configureaz automat conexiunile asociate interfeelor de reea din sistem. Aceste conexiuni sunt listate n Network Connections, alturi de alte conexiuni configurate manual, cum ar fi cele de tip dial-up, VPN-uri sau conexiuni de tip PPPoE. Network Connections poate fi accesat n mai multe moduri: din interfaa Network and Sharing Center, clic pe Change Adapter Settings. de la meniul Start, scriind comanda ncpa.cpl sau control netconnections fie n cmpul de Search, fie la Run. Conexiunile n sine nu permit calculatoarelor s comunice printr-o reea. n realitate, clienii, serviciile i protocoalele n contextul conexiunilor sunt cele care permit comunicaia ntre dou sau mai multe staii. n fereastra de proprieti a conexiunilor sunt afiai clienii, protocoalele i serviciile ataate acelei conexiuni. Una dintre modalitile de a afia proprietile unei conexiuni este din Network Connections, prin clic dreapta pe una dintre conexiuni i apoi clic pe Properties, din meniu. De asemenea, se poate ajunge aici i din Network and Sharing Center, prin clic pe View Status i apoi pe Properties, n dreptul conexiunii dorite. Elementele bifate indic componente ce sunt ataate conexiunii respective: Network Clients: ntr-o reea Windows, clienii sunt componente software care permit unei staii s se conecteze cu un anumit sistem de operare din reea. Implicit, singurul client disponibil pentru toate conexiunile locale este Client for Microsoft Networks. Acesta permite calculatoarelor ce ruleaz Windows s se conecteze i s partajeze resurse ntre ele. Network Services: Serviciile sunt componente software ce ofer funcionaliti suplimentare conexiunilor. File and Printer Sharing for Microsoft Networks i QoS Packet Scheduler sunt dou dintre serviciile ataate implicit tuturor conexiunilor locale. File and

110 | R e e l e l o c a l e d e c a l c u l a t o a r e Printer Sharing for Microsoft Networks permite calculatorului s partajeze fiiere pentru a fi accesate din reea. QoS Packet Scheduler ofer control asupra traficului din reea, cu posibilitatea de a prioritiza anumite fluxuri de date i servicii. Network Protocols: Calculatoarele comunic printr-o conexiune doar prin intermediul protocoalelor ataate acelei conexiuni. Suportul pentru IPv4 i IPv6 este inclus implicit pentru toate conexiunile locale.

3-12 Fereastra de proprieti ale unei conexiuni Pentru a afia fereastra de stare a unei conexiuni se apas clic dreapta pe una dintre conexiunile din Network Connections i se alege Status din meniul contextual (sau dublu clic direct) sau se apas direct pe View Status din dreptul conexiunii dorite, din Network and Sharing Center.

3-13 Starea unei conexiuni, mpreun cu detaliile sale

P r o t o c o l u l I P v 4 | 111 Din fereastra de stare a conexiunii se poate accesa i o fereastr cu detalii despre conexiune, ce include detalii despre interfaa de reea folosit, adresele configurate i alte detalii legate de configurarea automat (dac este cazul). O conexiune poate beneficia de o configuraie IP manual sau automat. Configuraia manual este denumit i configuraie static deoarece persist i dup restartarea sistemului i este de importan critic pentru servere i echipamente specializate ntr-o reea. Asignarea manual a unei adrese statice i a altor parametri de configurare IPv4 unei conexiuni se face folosind fereastra Internet Protocol Version 4 (TCP/IP) Properties din lista de protocoale ataate unei conexiuni. Pentru a o accesa, se deschide fereastra de proprieti a unei conexiuni (vezi Fig. 3-12) i se face dublu clic pe Internet Protocol Version 4 (TCP/IPv4).

3-14 Fereastra de configurare a adreselor protocolului IPv4 Implicit, o conexiune de reea este setat pentru a-i obine automat configuraia. Pentru a specifica o configuraie static, este necesar selectarea opiunii Use the following IP address eventual mpreun cu specificarea unui server DNS primar i a unuia alternativ. n cazul n care n aria de broadcast a unui client nu este localizat un server DHCP, un client ce a fost configurat s i obin configuraia IP n mod automat va recurge la informaiile din configuraia IP alternativ, dac aceasta a fost definit. Asignarea unei configuraii alternative se face prin selectarea paginii Alternate Configuration din fereastra de configurare Internet Protocol Version 4 (TCP/IPv4) Properties. Configuraia alternativ suport specificarea unei adrese IP, a unei mti de reea, a unui default gateway, a unuia sau a dou servere DNS i a unuia sau a dou servere WINS. Deoarece o configuraie alternativ permite unui calculator s foloseasc o configuraie IP specific i detaliat n momentul n care nu se detecteaz un server DHCP n reeaua local, ea este util pentru sistemele mobile care circul ntre reele, unele cu servere DHCP iar altele fr.

ipconfig
Una dintre cele mai simple comenzi ce pot fi folosite pentru a consulta configuraia IP a interfeelor din sistem este ipconfig, ce poate fi introdus n prompt-ul de comand: Pentru a obine informaii extinse despre toate interfeele instalate n sistem se poate folosi parametrul /all:

112 | R e e l e l o c a l e d e c a l c u l a t o a r e
C:\Users\Mihai>ipconfig /all Windows IP Configuration Host Name . . . . . . . Primary Dns Suffix . . Node Type . . . . . . . IP Routing Enabled. . . WINS Proxy Enabled. . . DNS Suffix Search List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : Mihai-PC Hybrid No No labs.cs.pub.ro

Ethernet adapter Local Area Connection: Connection-specific DNS Suffix Description . . . . . . . . . . Physical Address. . . . . . . . DHCP Enabled. . . . . . . . . . Autoconfiguration Enabled . . . Link-local IPv6 Address . . . . IPv4 Address. . . . . . . . . . Subnet Mask . . . . . . . . . . Lease Obtained. . . . . . . . . Lease Expires . . . . . . . . . Default Gateway . . . . . . . . DHCP Server . . . . . . . . . . DHCPv6 IAID . . . . . . . . . . DHCPv6 Client DUID. . . . . . . . . . . . . . . . . . . . . : : : : : : : : : : : : : : labs.cs.pub.ro Broadcom 440x 10/100 Integrated Controller 00-1C-23-A0-73-6E Yes Yes fe80::21c:23ff:fea0:736e%12(Preferred) 172.16.7.65(Preferred) 255.255.252.0 12 octombrie 2012 10:14:13 12 octombrie 2012 17:48:37 172.16.4.254 172.16.4.253 285219875 00-01-00-01-16-13-75-8C-00-1C-23-A0-73-6E

DNS Servers . . . . . . . . . . . : 141.85.226.5 141.85.241.113 NetBIOS over Tcpip. . . . . . . . : Enabled Wireless LAN adapter Wireless Network Connection: Media State . . . . . . . . . . Connection-specific DNS Suffix Description . . . . . . . . . . Physical Address. . . . . . . . DHCP Enabled. . . . . . . . . . Autoconfiguration Enabled . . . . . . . . . : : : : : : Media disconnected labs.cs.pub.ro Dell Wireless 1390 WLAN Mini-Card 00-1D-D9-36-8E-71 Yes Yes

Comanda ipconfig poate fi folosit i pentru a fora primirea unei configuraii prin DHCP, dac exist un astfel de server n reea. Pentru aceasta, comanda ipconfig /release terge configuraia dinamic de pe toate interfeele configurate dinamic, iar comanda ipconfig /renew trimite cereri DHCP pe toate interfeele ce au fost setate pentru configurare automat.

netsh
Pentru inspectarea i modificarea configuraiei IP din linie de comand, Windows pune la dispoziie utilitarul netsh. Comanda poate fi folosit ca un prompt de comand, introducnd doar netsh n cmd.exe (ca mai jos) sau se poate scrie fiecare comand cu toi parametrii precedai de cuvntul cheie netsh pentru a primi imediat un rezultat.
C:\Users\Mihai>netsh netsh> netsh>exit C:\Users\Mihai>netsh interface ipv4 show The following commands are available: Commands in this context: show addresses - Shows IP address configurations. [...]

n general, navigarea prin comenzile disponibile n netsh se poate face treptat, n sensul c la fiecare adugare a unui parametru, dac acesta nu constituie o comand complet, netsh va afia o list cu toi parametrii suportai n continuare, mpreun cu o scurt explicaie a lor. Spre exemplu, dac se dorete vizualizarea tuturor comenzilor de tip show, se poate introduce urmtoarea comand:
netsh>interface ipv4 show The following commands are available: Commands in this context:

P r o t o c o l u l I P v 4 | 113
show addresses - Shows IP address configurations. show compartments - Shows compartment parameters. show config - Displays IP address and additional information. [...]

n exemplul urmtor se dorete stabilirea unei configuraii statice pe o anumit interfa. Pentru aceasta, este necesar s se ruleze nti o comand show care s listeze interfeele de reea mpreun cu numerele lor de ordine:
netsh>interface ipv4 show interfaces Idx --1 11 17 12 19 20 Met ---------50 30 5 20 20 20 MTU ---------4294967295 1500 1500 1500 1500 1500 State -----------connected disconnected disconnected connected connected connected Name --------------------------Loopback Pseudo-Interface 1 Wireless Network Connection Wireless Network Connection 2 Local Area Connection VMware Network Adapter VMnet1 VMware Network Adapter VMnet8

Dac se dorete modificarea configuraiei pentru interfaa VMWare Network Adapter VMnet1, spre exemplu, din rezultatul obinut mai sus se reine valoarea cmpului Idx din dreptul lui (19 n cazul de fa). n continuare, pentru a seta configuraia static pe interfaa mai sus menionat, se ruleaz comanda urmtoare; valoarea folosit pentru parametrul name reprezint indexul interfeei returnat de comanda show precedent:
netsh>interface ipv4 set address name=19 source=static address=10.0.0.10 mask=25 5.255.255.0 The requested operation requires elevation (Run as administrator).

Dup cum putei observa, pentru a modifica informaii trebuie s rulm comanda cu drepturi privilegiate. Mergem n meniul Start, cutam cmd, clic dreapta pe acesta, i alegem opiunea Run as Administrator.
C:\Windows\system32>netsh netsh>interface ipv4 set address name=19 source=static address=10.0.0.10 mask=255.255.255.0 netsh>interface ipv4 show addresses name=19 Configuration for interface "VMware Network Adapter VMnet1" DHCP enabled: No IP Address: 10.0.0.10 Subnet Prefix: 10.0.0.0/24 (mask 255.255.255.0) InterfaceMetric: 20

Din moment ce prezena unui server DNS este important pentru funcionarea oricrei reele conectate la Internet, se poate aduga adresa unui server DNS folosind netsh n modul urmtor, folosind acelai index al interfeei pentru a o identifica:
netsh>interface ipv4 add dnsserver name=19 address=8.8.8.8

arp
Pentru vizualizarea i modificarea tabelei ARP se poate folosi utilitarul arp din linia de comand. Pentru afiarea tabelei ARP se adaug parametrul -a:
C:\Windows\system32>arp -a Interface: 172.16.7.65 --- 0xc Internet Address Physical Address 172.16.4.23 00-19-66-78-5c-ba 172.16.4.30 bc-5f-f4-36-d1-78 [...] Interface: 10.0.0.10 --- 0x13 Internet Address Physical Address 10.0.0.255 ff-ff-ff-ff-ff-ff 224.0.0.22 01-00-5e-00-00-16 [...] Type dynamic dynamic Type static static

Pentru a aduga o intrare static se folosete parametrul -s:


C:\Windows\system32>arp -s 10.0.0.12 00-00-00-00-00-01 C:\Windows\system32>arp -a

114 | R e e l e l o c a l e d e c a l c u l a t o a r e
[...] Interface: 10.0.0.10 --- 0x13 Internet Address Physical Address 10.0.0.12 00-00-00-00-00-01 [...]

Type static

Pentru a afla toate opiunile posibile, se poate rula arp fr nici un parametru.

tracert
Utilitarul tracert funcioneaz pe acelasi protocol ca i utilitarul ping dar urmrete calea pn la destinaie, returnnd adresa fiecrui ruter de pe parcurs. Este util pentru a detecta locul n care se e posibil s fi avut loc o ntrerupere n calea de la surs la destinaie. tracert este echivalentul lui traceroute din Linux.
C:\Windows\system32>tracert www.google.ro Tracing route to www.google.ro [173.194.39.152] over a maximum of 30 hops: 1 2 3 4 5 6 7 8 9 10 11 12 <1 <1 <1 <1 1 2 1 1 13 21 29 29 ms ms ms ms ms ms ms ms ms ms ms ms <1 <1 <1 <1 1 1 * 1 13 21 29 29 ms ms ms ms ms ms ms ms ms ms ms <1 <1 <1 <1 1 1 1 1 13 21 29 29 ms ms ms ms ms ms ms ms ms ms ms ms sw-c1-225.cs.pub.ro [141.85.225.1] 172.31.255.1 172.31.255.254 r-bb1-g2-0-0.Bucharest.roedu.net [217.73.164.1] te-3-1.core1.buc.roedu.net [37.128.232.129] te-0-1-0-2.core1.nat.roedu.net [37.128.239.17] te-3-4.br1.nat.roedu.net [37.128.239.1] roedunet.rt1.buc.ro.geant.net [62.40.125.137] so-3-2-0.rt1.bud.hu.geant2.net [62.40.112.193] as3.rt1.pra.cz.geant2.net [62.40.112.41] so-6-3-0.rt1.fra.de.geant2.net [62.40.112.38] google-gw.rt1.fra.de.geant.net [62.40.125.202]

Se observ c adresa fiecrui ruter de pe parcurs este tradus n numele su conform domeniului DNS creia i aparine. Rezolvarea acestor adrese poate ntrzia mult rezultatul lui tracert. Pentru a mpiedica rezolvarea adreselor n nume se poate folosi parametrul d.

3.5 Scenarii de utilizare


n Fig. 3-15 este prezentat reeaua unei microintreprinderi creia i-a fost alocat urmtorul spaiu: 86.106.167.0/24. Administratorul reelei a decis mprirea acesteia dup cum urmeaz: 12 IP-uri disponibile pentru sucursala din Constana (reprezentat de switch-ul Sw1), 25 de IP-uri pentru sediul central (reprezentat de Sw2), 6 IP-uri pentru viitoarea sucursal din Braov (reprezentat de router-ul BR) i nc 2 IP-uri pentru interconectarea dintre HQ i BR (punctul de ieire nspre Internet). Alocarea trebuie s fie optim. n cerinele de mai sus nu a fost luat n calcul adresa gateway-ului pentru fiecare subreea. Dac nu am fi avut restricia de optimalitate, problema ar fi avut un rspuns simplu: se mparte clasa alocat n 4 subreele de dimensiuni egale. Pentru a reprezenta cele 4 subreele avem nevoie s mprumutm din adresa de reea 2 bii: 86.106.167.0000 0000/24 adresa de reea 86.106.167.0000 0000/26 prima subreea 86.106.167.0100 0000/26 a doua subreea 86.106.167.1000 0000/26 a treia subreea 86.106.167.1100 0000/26 a patra subreea mprirea de mai sus are un scop pur didactic. Continum cu cerina iniial. Pentru a face o mprire optim, mai nti se sorteaz spaiile dorite dup numrul de staii: 25, 12, 6, 2. Decidem pentru fiecare subreea de ci bii de staie avem nevoie: 25 5 bii de staie (25) 12 4 bii de staie (24) 6 4 bii de staie (24). 3 bii nu ne ajung deoarece se pot reprezenta 8 adrese i noi avem nevoie de 9 (adresa de reea, de broadcast, adresa gateway-ului i a celor 6 staii) 2 2 bii de staie (22)

P r o t o c o l u l I P v 4 | 115 Pentru prima subreea, trebuie s calculm masca rezultat n urma cerinelor: dac avem 5 bii de staie, rezult c avem nevoie de 27 de bii de reea (32bii ct are o adres IP minus cei 5 bii folosii pentru staie). Deci masca va fi /27 sau 255.255.255.224 (27 de bii de 1), iar adresa de reea va fi 86.106.167.0/27. Adresa de broadcast este ultima adres din aceast subreea (toi biii de staie pui pe 1): 86.106.167.00011111 (86.106.167.31). Pentru a obine urmtoarea subreea variem bitul cel mai nesemnificativ din adresa de reea de mai sus. Astfel se va obine: 86.106.167.00100000 (86.106.167.32). Aceasta are tot masca /27, ns a doua subreea, cea de 12 staii, are nevoie de masca /28 (32 minus 4). Din subreeaua /27 gsit anterior vom alege doar ultimii 4 bii ca fiind cei de staie, iar bitul 5 l trecem la adresa de reea i l lsm pe 0. Astfel am obinut a doua subreea cutat 86.106.167.00100000/28 (86.106.167.32/28). Pentru a treia subreea avem nevoie tot de un /28 pe care l obinem variind bitul de reea lsat anterior pe 0. Astfel obinem 86.107.167.00110000/28 (86.122.60.48/28). n final mai avem nevoie de o subreea cu 2 IP-uri disponibile, deci 2 bii de staie. Spaiul cuprins ntre 86.106.167.00000000 i 86.106.167.00111111 este ocupat. Trecem la urmtorul cel mai nesemnificativ bit de 1 din poriunea de reea (acesta fiind cel ngroat). l punem pe 1 i obinem o nou adresa de reea: 86.106.167.01000000 (86.106.167.64). Aceast adres are masca /27. Vom aloca doar 2 bii pentru staie, restul rmn pentru reea, putnd s facei noi alocri la cereri ulterioare. Astfel vom obine ultima subreea 86.106.167.64/30. Fa2/0 Fa1/0 C
HQ

Fa1/0

BR

Sw1

Sw2

E 3-15 Infrastructur reea

Subreele obinute sunt: 86.106.167.0/27 86.106.167.32/28 86.106.167.48/28 86.106.167.64/30 O alternativ la mprirea optim de mai sus poate fi urmtoarea: dup sortarea n ordinea descresctoare a staiilor, se pornete de la prima adres de reea i se calculeaz adresa de broadcast n funcie de masca primei subreele. Aceast adres de broadcast adunat cu 1 ne va da adresa de reea pentru urmtoarea subreea. Astfel pentru 86.106.167.0/27 adresa de broadcast este 86.106.167.31. Adresa de reea pentru urmtoarea subreea este 86.106.167.32, aceasta avnd masca /28. Noua adres de broadcast este 86.106.167.47. Pentru cea de a treia subreea se obine 86.106.167.48, amd. n continuare vom configura cte un IP pe ruterul HQ (portul Fa0/0) i pe calculatoarele C i D din subclasa 86.106.167.32/28. Ruterul HQ va fi gateway, deci prin convenie, i vom aloca prima adres IP folosibil. C este un calculator cu sistem de operare Linux i va avea a doua adres IP, iar D este un calculator cu Windows i va avea a treia adres IP. HQ ruleaz Cisco IOS.
HQ#configure terminal Enter configuration commands, one per line. End with CNTL/Z. HQ(config)#interface FastEthernet 0/0 HQ(config-if)#ip address 86.106.167.33 255.255.255.240

116 | R e e l e l o c a l e d e c a l c u l a t o a r e

root@C:~# ip address add 86.106.167.34/28 dev eth0 root@C:~# ping 86.106.167.33 PING 86.106.167.33 (86.106.167.33) 56(84) bytes of data. 64 bytes from 86.106.167.33: icmp_seq=1 ttl=255 time=1.86 ms 64 bytes from 86.106.167.33: icmp_seq=2 ttl=255 time=1.69 ms 64 bytes from 86.106.167.33: icmp_seq=3 ttl=255 time=2.12 ms ^C --- 86.106.167.33 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.694/1.896/2.127/0.181 ms

Iar pe calculatorul D, cel cu sistem de operare Windows:


netsh>interface ipv4 show interfaces Idx Met MTU State --- ---------- ---------- -----------[...] 12 20 1500 connected [...] netsh>interface ipv4 set address mask=255.255.255.240 Name --------------------------Local Area Connection name=20 source=static address=86.106.167.35

Testm conectivitatea de pe calculatorul D spre ruterul HQ i spre staia C:


C:\>ping 86.106.167.33 Pinging 86.106.167.33 with 32 bytes of data: Reply from 86.106.167.33: bytes=32 time<1ms TTL=128 Reply from 86.106.167.33: bytes=32 time<1ms TTL=128 [...] C:\>ping 86.106.167.34 Pinging 86.106.167.34 with 32 bytes of data: Reply from 86.106.167.34: bytes=32 time<1ms TTL=128 Reply from 86.106.167.34: bytes=32 time<1ms TTL=128 [...]

n continuare administratorul a configurat i staiile din Sw1 cu IP-uri din clasa 86.106.167.0/27, dar nu are conectivitate ntre staiile dintre cele 2 switch-uri. n capitolul 6 (Rutare) se va explica de ce nu exist conectivitate i cum se rezolv aceast problem.

3.6 Studiu de caz


3.6.1 APIPA
APIPA este un acronim pentru Automatic Private IP Addressing i reprezint o facilitate de asignare automat a adreselor locale n reele temporare sau ad hoc. Cnd un calculator ce ruleaz Windows a fost configurat s i obin configuraia IP n mod automat, dac nu exist un server DHCP n reeaua local i nici configuraia alternativ nu a fost specificat, el va folosi APIPA pentru ai asigna o adres privat din intervalul 169.254.0.1 169.254.255.254 (se observ c masca de reea este 255.255.0.0). n mod implicit, toate calculatoarele sunt setate s foloseasc APIPA n cazul n care nu primesc rspuns de la un server DHCP din reeaua local. Mai exact, dup cum se observ din Fig. 3-16, n fereastra de configurare alternativ este bifat, implicit, opiunea Automatic Private IP Address ceea ce evideniaz att lipsa unei configuraii alternative ct i utilizarea APIPA. Practic, se poate considera c, n lipsa unui server DHCP, este folosit ntotdeauna configuraia alternativ, chiar i n cazul n care aceasta specific folosirea APIPA. APIPA este o tehnic util pentru c ea permite calculatoarelor aflate n acelai domeniu de broadcast s comunice chiar i n lipsa unui server DHCP sau a oricrui alt tip de configuraie manual. De asemenea, ea reprezint o soluie alternativ i pentru situaia n care un server DHCP devine nefuncional. Totui, dac un server DHCP devine neoperaional, staiile vor recurge la APIPA doar dup expirarea timpului de nchiriere a ultimei configuraii obinute de la acesta, deci trecerea nu se va face instantaneu. Dac la un moment de timp ulterior serverul DHCP redevine operaional, configuraia automat va dobndi prioritate naintea celei setate de APIPA i o va rescrie, staiile continundu-i comunicaia folosind schema de adresare oferit de serverul DHCP. Explicaia pentru

P r o t o c o l u l I P v 4 | 117 acest comportament st n faptul c o staie care recurge la APIPA o va face pentru c este setat s obin o configuraie automat i nu a reuit acest lucru. Deci, practic, nlocuirea configuraiei APIPA cu cea prin DHCP se face deoarece configuraia primar are prioritate n faa celei alternative.

3-16 Fereastra pentru configuraia IPv4 alternativ n practic, se poate detecta momentul n care APIPA a intrat n funciune dac dou sau mai multe calculatoare din reea pot comunica ntre ele dar nu i cu altele sau n afara reelei. O practic recomandat n acest caz este verificarea configuraiei IP a staiilor pentru a indentifica prezena adreselor oferite de APIPA i verificarea funcionrii i a accesului la serverul DHCP. Exist i o serie de limitri importante ce trebuie avute n vedere n momentul n care staiile sunt configurate prin APIPA. Spre exemplu, calculatoarele configurate astfel vor putea comunica doar cu alte calculatoare configurate prin APIPA din acelai domeniu de broadcast (din considentele adresrii IP n interiorul unei reele locale, vor fi acceptate doar pachetele care aparin reelei calculate din adresa IP i masca configurat pe interfa). De asemenea, staiile ce folosesc APIPA nu vor putea avea acces la Internet, nu se pot configura adrese pentru servere DNS sau WINS i nu se poate specifica niciun default gateway. APIPA reprezint varianta Microsoft de Zero Configuration. n mod general, tehnica pentru IPv4 poart numele de adresare tip IPV4LL (IPv4 Link Local). Mai multe detalii despre adresele locale automate IPv4 pot fi consultate n RFC 3927 [2], iar pentru IPv6 n RFC 4862 [3] (de asemenea mai multe detalii despre IPv6 n capitolul urmtor).

3.6.2 DHCP Relay


DHCP Relay permite transmiterea cererilor DHCP dintr-o subreea n care nu exist server DHCP ctre unul sau mai multe servere DHCP din alte subreele. Pentru instalare, este necesar pachetul dhcp-relay:
root@HQ:~# apt-get install dhcp-relay

Agentul DHCP poate fi configurat la pornire, prin parametrii transmii comenzii dhcrelay, sau prin intermediul fiierului /etc/default/dhcp-relay. n acest fiier se pot specifica: interfeele pe care agentul s primeasc cereri DHCP: declaraia INTERFACES.

118 | R e e l e l o c a l e d e c a l c u l a t o a r e serverele DHCP ctre care s fie trimise cererile DHCP primite: declaraia DHCP_SERVERS.

Server DHCP
Pentru a vedea cum se instaleaz i cum se configureaz un server de DHCP, urmrii scenariul din cadrul capitolului Wireless.

3.7 Concluzii
n cadrul acestui capitol am prezentat unul dintre cele mai importante protocoale, pe baza cruia funcioneaz internetul. Dei adresele IPv4 s-au epuizat, acesta este nc cel mai folosit protocol. Pentru a prentmpina problema epuizrii s-a standardizat protocolul IPv6. Principala cauz pentru migrarea nceat ctre IPv6 este compatibilitatea cu echipamentele mai vechi ce nu suport dect stiva de protocoale IPv4. Adresele IPv4 sunt mprite n 5 tipuri, n funcie mrimea unei clase. Aceast mprire s-a dovedit ineficient datorit numrului fix de staii din clas. De exemplu, daca era nevoie de 300 de IP-uri, o clas C nu satisfcea aceast cerin. Trebuie alocat o ntreag clas B, adic 65536 de IPuri. Pentru a optimiza alocarea IP-urilor, s-a introdus conceptul de VLSM, mprirea n subreele de lungime variabil. Deoarece nu ne mai putem da seama de mrimea unei clase dup tipul ei, orice IP trebuie reprezentat alturi de o masc de reea. O staie, pentru a trimite pachetele primite de la nivelul reea pe nivelul fizic, trebuie s adauge informaiile de nivel 2 (MAC n cazul Ethernet). Pentru acest lucru s-a introdus tabela ARP, n care se rein asocierile dintre IP-urile i MAC-urile prezente n reeaua local, necesare la construcia pachetului. Iniial aceasta este goal. Pentru a o popula se trimit cereri speciale ARP ctre toate lumea, cel ce are adresa IP specificat n cerere va rspunde cu MAC-ul lui, iar aceast asociere va fi adugat n tabela ARP. Deseori e dificil s configurm manual adresele IP pe interfee. De aceea s-a introdus protocolul DHCP, prin care se trimit configuraiile de nivel reea. Astfel utilizatorul trebuie doar s i activeze clientul DHCP, iar ISP-ul se ocup de management-ul setrilor de nivel 3. S-a observat n scenariu faptul c nu se poate comunica ntre 2 subreele diferite. n capitolul Rutare se va descrie conceptul prin care comunicaia ntre cele 2 subreele este posibil.

3.7.1 Linux
Comand ip address ifconfig dhclient /etc/network/interfaces /etc/resolv.conf ip neigh arp traceroute Descriere Configurare adresare IP Configurare adresare IP Obinerea configuraiilor de la un server DHCP Configurarea permanent a intefeelor Configurarea serverului de DNS Afiarea tabelei ARP Afiarea tabelei ARP Testare accesibilitii unei staii, vizualiznd ruterele intermediare

P r o t o c o l u l I P v 4 | 119

3.7.2 Cisco IOS


Comand enable configure terminal interface nume_intefa ip address show ip interface brief show ip interface nume_interfa show ip arp show interfaces write memory Descriere Activarea modului privilegiat Activarea modului de configurare Intrare n modul de configurare al interfeei Configurarea unei adrese IP n modul de configurare al interfeei Sumarizare a configuraiilor de nivel 3 de pe rutere Vizualizare configuraii de nivel 3 ale unei interfee Vizualizarea tabelei ARP Vizualizare conexiune i statistici pentru o interfa (inclusiv configuraiile de nivel 3) Salveaz n memoria non-volatil fiierul de configurare

3.7.3 Windows
Comand ipconfig netsh arp tracert Descriere Vizualizare configuraii interfa de reea Configurare parametri reea Vizualizare i modificare tabel ARP Testarea accesibilitii unei staii, vizualiznd ruterele intermediare

120 | R e e l e l o c a l e d e c a l c u l a t o a r e

3.8 ntrebri
1. 2. De ce se recalculeaz suma de control la fiecare ruter prin care trece un pachet? Pentru c se modific IP-ul surs. Pentru c se modific MAC-ul destinaie. Pentru c se modific TTL-ul. Pentru c se modific toate MAC-ul destinaie i IP-ul surs. Serviciul DHCP este folosit pentru a trimite: date despre ncrcarea serverului. configuraia de nivel 3 a interfeelor. adresa MAC a interfeelor. portul pe care se deschide o conexiune.

3. Masca de reea este un ir de bii de 0 i 1 n care ordinea nu conteaz. / Adresa de broadcast se obine punnd toi biii de staie pe valoarea 0. Adevrat/Adevrat Fals/Adevrat Adevrat/Fals Fals/Fals 4. 5. n tabela ARP pot exista 2 intrri n care aceeai adres IP are mapate 2 MAC-uri. pot exista 2 intrri n care 2 adrese IP diferite au acelai MAC. se gsesc doar adresele MAC trimise de switch-uri. se gsesc doar IP-urile primite de la alte rutere. Adresa de reea pentru 86.120.60.17/19 este: 86.120.32.0. 86.120.48.0. 86.120.60.0. 86.120.0.0.

3.9 Referine
[1] Alexandru Juncu (2012). ifconfig vs. iproute2. Published on 2012 January 17. Accesat la http://techblog.rosedu.org/ifconfig-vs-iproute.html [11.09.2012]. [2] S. Cheshire, Apple Computer, B. Aboba, Microsoft Corporation, E. Guttman, Sun Microsystems. Dynamic Configuration of IPv4 Link-Local Addresses. 2005 May. Accesat la http://tools.ietf.org/html/rfc3927 [13.09.2012]. [3] S. Thomson, Cisco, T. Narten, IBM, T. Jinmei, Toshiba. IPv6 Stateless Address Autoconfiguration. 2007 September. Accesat la http://tools.ietf.org/html/rfc4862 [13.09.2012].

P a g e | 121

4 Protocolul IPv6
Ce se nva? Cine este Vint Cerf este considerat printele Internetulul. Un om de tiina american, a lucrat n cadrul proietului DARPA al Guvernului American la stiva de Protocoale TCP/IP, ce este nucleul a ce numim noi astzi Internetul. A fost unul dintre fondatorii ICANN (succesorul IANA), organizaia care se ocup cu aministrarea domeniilor, IP-urilor i ASN-urilor n Internet. n prezent lucreaz la Google i este printre cei mai mari promotori ai migrrii spre IPv6. Nevoia pentru protocolul IPv6 i adopia lui Diferenele ntre protocolul IPv6 i IPv4 Subnetarea n IPv6 Configuarea reelelor IPv6

4.1 Adresarea IPv6


4.1.1 Apariia i migrarea la protocolul IPv6
Adresele IPv4 au aprut n anul 1981, cuprinznd un spaiu de adrese de aproape patru miliarde. Dup cum se poate observa i n Fig. 4-1 alocarea adreselor IPv4 a cptat o amploare exponenial odat cu acceptarea acestui protocol ca fiind de referin pentru reelele de calculatoare (n defavoarea protocoalelor precum IPX, AppleTalk, etc.).

4-1: Rata de alocare a adreselor IPv4 Principala problem care a dus la epuizarea rapid a adreselor IPv4 a fost folosirea mtilor implicite, bazate pe cele trei clase de adrese IPv4, i a inexistenei unei metode de a recupera adresele nefolosite. Dei apariia adresrii classless i a conceptului de translatare a adreselor (NAT) au reuit s mbunteasc rata de folosire a adreselor IPv4, creterea semnificativ a numrului de calculatoare conectate la Internet a continuat problema.

122 | R e e l e l o c a l e d e c a l c u l a t o a r e Dup 30 de ani de la apariia adreselor IPv4, n data de 3 Februarie 2011, IANA a anunat alocarea ultimului spaiu de adrese (/8) ctre fiecare RIR. Astfel, dei fiecare RIR mai dispune de adrese IPv4 nefolosite, migrarea ctre IPv6 este inevitabil. Prima versiune a protocolului IPv6 a aprut nc din Decembrie 1995, n RFC1883. Motivaia de trecere de la versiunea 4 direct la versiunea 6 se datoreaz apariiei protocolului IPv5, Internet Stream Protocol, n anul 1979 (IEN-119), protocol ce avea s nu fie adoptat pe scar larg. n anul 1996 a fost nfiinat platforma 6bone ce avea ca scop testarea noului protocol i mbuntirea acestuia pn la adopia lui pe scar larg. Interesant este c n data de 06 Iunie 2006 aceast platform a fost abandonat de ctre IETF, aceasta fiind considerat oficial ziua n care protocolul IPv6 a ajuns la maturitate. Ziua de 6 Iunie este considerat i astzi ziua IPv6 i este srbtorit prin folosirea protocolului IPv6 n locul protocolului IPv4. Procesul de migrare ctre adresarea IPv6 este un proces lent. Pentru a grbi acest proces n 28 Februarie 2010 guvernul Statelor Unite ale Americii a eliberat un memorandum prin care obliga ageniile guvernamentale s adopte IPv6 pn la data de Septembrie 2012 (pentru serverele publice) i pn la data de Septembrie 2014 (pentru aplicaiile interne) [3]. Un comunicat asemntor a fost emis i de ctre Comisia European care dorea ca un procent de 25% din serviciile actuale s fie migrate la o infrastructur compatibil cu protocolul IPv6 [4]. La data de 23 August 2012 existau n lume aproximativ 42060 furnizorii de servicii IPv4 (ISP) i doar 6043 furnizori care ofer i suport i IPv6. Mai multe detalii despre folosirea protocolului IPv6 se pot gsi pe site-ul indicat la referine n poziia [5]. n Romania migrarea ctre IPv6 a fost foarte spectaculoas, fiind pe primul loc n anul 2012 la accesarea serviciilor IPv6 conform google.com - Fig. 4-2 [6]. Reeaua RoEduNet a fcut parte nc din 1999 din infrastructura de testare a protocolului IPv6, 6bone. n 2003 furnizorul de serviciii RoEduNet a achiziionat 2001:b30::/32 pentru IPv6, urmat de Romtelecom n 2009 i de ctre RDSRCS n 2010, aceste prefixe intrnd n folosin din anul 2010.

4-2: Rata de adopie IPv6 Principalele mecanisme folosite pentru migrarea la IPv6 sunt dual-stack, translatarea IPv4-IPv6 i tunelarea. Primul mecanism presupune folosirea n paralel a celor dou protocoale i renunarea treptat la IPv4. Majoritatea sistemelor de operare ofer suport pentru IPv6, Windows nc din anul

P r o t o c o l u l I P v 6 | 123 2000 pentru testare pentru Windows 2000, versiunea stabil ncepnd cu Windows XP Service Pack 3. n Linux majoritatea distribuiilor actuale au integrat i stiva pentru protocolul IPv6. Protocolul IPv6 poate fi folosit nu doar pe sistemele de operare pentru calculatoare. Sistemul de operare Cisco IOS, folosit pentru echipamentele furnizate de compania Cisco, ofer de asemenea suport pentru IPv6. Spre deosebire de lumea Linux i Windows, n lumea Cisco activarea protocolului IPv6 nu este implicit. Sistemele de operare pentru mobile, Android, iOS (Apple) i Windows Phone ofer de asemenea suport pentru protocolul IPv6. O list mai complet poate fi accesat la adresa [7]. Cea de-a doua metod folosit pentru a migra de la o infrastructur IPv4 la o infrastructur IPv6 folosete principiul de tunelare. Pentru a eficientiza procesul de migrare au fost definite urmtoarele spaii de adrese: Adrese folosite pentru tunel de tip ISATAP - Intra-Site Automatic Tunnel Addressing Protocol, sub forma <orice_prefix_64_bii>::0:5efe:IPv4. Acest tip de tunel este definit n RFC4214 [9]. Adrese folosite pentru tunelarea automat de tip 6to4, sub forma 2002:IPv4::/48. Acest tip de tunel este definit n RFC3056 [10]. Adrese folosite pentru tunel de tip Teredo, sub forma 2001:0::/32. Acest tip de tunel este definit n RFC4380 [11]. Conceptul de tunelare va fi tratat pe larg n capitolul 8 - Alterarea Pachetelor. Ultima metod folosit pentru a migra la IPv6, este translatarea i folosete urmtoarele spaii de adrese: Adrese compatibile IPv4, sub forma 0:0:0:0:0:0:IPv4, folosite pentru comunicaia dintre un nod IPv6/IPv4 cu un nod IPv6 peste o infrastructur de tip IPv4. Acest tip de adrese nu mai sunt folosite i nu sunt suportate n mod implicit de sistemele de operare actuale. Mai multe detalii despre adresele folosite pentru migrarea la IPv6 pot fi citite n RFC6052 [12] i RFC4291 [13]. Adrese de tip IPv4-mapped, sub forma 0:0:0:0:0:FFFF:IPv4, folosite pentru a reprezenta un nod IPv4 pentru un nod IPv6. Aceste adrese nu sunt folosite ca surs/destinaie. Un exemplu de utilizare al lor este prezentat n studiul de caz de la finalul acestui capitol. Mai multe detalii despre adresele folosite pentru migrarea la IPv6 pot fi citite n RFC6052 [12] i RFC4291 [13]. Din punctul de vedere al infrastructurii reelei locale, switch-uri sau hub-uri, migrarea ctre protocolul IPv6 nu are un impact foarte mare. Acest lucru este datorat faptului c cele dou echipamente enunate iau decizii pe baza adresei de nivel doi (MAC) i nu sunt influenate de adresarea de la nivelul trei. Singura diferen ce afecteaz aceste echipamente este creterea valorii minime pentru MTU, de la 68 octei pentru IPv4 la 1280 de octei pentru IPv6. Dac un switch are un MTU de 1000, toate pachetele IPv6 vor fi fragmentate, fapt ce va afecta performanele reelei. Acceptarea pe scar att de larg a protocolului IPv6 se datoreaz avantajelor majore pe care acesta le aduce. Dintre acestea amintim: Un spaiu de adrese mai mare, datorit adresrii pe 128 de bii, cu un total de 340,282,366,920,938,463,463,374,607,431,768,211,456 adrese disponibile. Un studiu interesant arat c daca am atribui cte un miliard de adrese pe secund de la apariia pmntului (aprox. 4,5 miliarde de ani) am fi epuizat pn astzi aproximativ o trilionime din spaiul total. Un mecanism mai bun de administrare a spaiului de adrese. Mai multe detalii pot fi citite n 4.1.4 Subnetarea adreselor IPv6. Eliminarea necesitii de translatarea a adreselor datorat numrului considerabil de adrese IPv6 disponibile. n IPv6 conceptul de NAT nu mai este folosit. Un format simplificat al antetului. Mai multe detalii pot fi citite n 4.2.1 Antetul IPv6.

124 | R e e l e l o c a l e d e c a l c u l a t o a r e Suport mbuntit pentru securitate, multicast, QoS sau rutare datorat modului de formatare a opiunilor n antetul unui pachet IPv6. IPv6 ofer suport implicit pentru stiva de protocoale IPSec.

4.1.2 Scrierea adreselor IPv6


Adresele IPv6 au o lungime de 128 de bii, de patru ori lungimea adreselor IPv4. Formatul folosit pentru reprezentarea adreselor IPv4, zecimal-punctat, nu poate fi aplicat pentru adresele pe 128 de bii. S urmrim o reprezentarea n binar i apoi n format zecimal-punctat a unei adrese IPv6: binar: o 00010000.00000001.00001011.00111000.00000000.00000000.00000000.00000 000.00000000.01011110.00000000.00000000.00000000.00000000.00000000.0 0000001 decimal: o 32.1.11.56.0.0.0.0.0.94.0.0.0.0.0.1 Aceast metod nu fost acceptat datorit neeleganei sale. Standardul folosit pentru reprezentarea adreselor IPv6 este bazat pe formatul hexazecimal. Fr a face o recapitulare foarte detaliat a reprezentrii hexazecimale amintim c aceasta este o reprezentare n baza de numeraie 16, fa de baza 10 folosit n mod uzual. Tabelul de mai jos prezint conversia din baza 16 n baza 10 i baza 2. Baza 2 Baza 10 Baza 16 0000 0 0x0 0001 1 0x1 0010 2 0x2 0011 3 0x3 0100 4 0x4 0101 5 0x5 0110 6 0x6 0111 7 0x7 1000 8 0x8 1001 9 0x9 1010 10 0xA 1011 11 0xB 1100 12 0xC 1101 13 0xD 1110 14 0xE 1111 15 0xF Pentru reprezentarea adresei sub format hexazecimal avem nevoie de 4 bii, adic 32 (128/4) de numere scrise n baza 16. Dac grupm adresa scris anterior n grupuri de 4 bii i face trecerea n format hexazecimal obinem: binar: o 0010 0000 0000 0001 0000 1011 0011 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0101 1110 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 hexadecimal: o 20010b3800000000005e000000000001 Nici reprezentarea de mai sus nu ofer elegan i simplitate pentru a putea fi urmrit uor. Astfel, cele 32 de numere scrise n baza 16 sunt grupate n patru, reprezentarea curent de-facto folosit pentru IPv6 fiind: 2001:0b38:0000:0000:005e:0000:0000:0001

P r o t o c o l u l I P v 6 | 125 Dei aceast form este cea utilizat, au aprut dou reguli de simplificare a scrierii adreselor IPv6. Foarte important este ca aceste reguli s fie reversibile. Astfel, odat aplicat o astfel de regul se poate ajunge la punctul de plecare. Prima regula poate fi enunat astfel: n cadrul unui grup de patru se pot elimina 0-urile de la nceputul grupului. Folosind regula enunat, forma rescris a adresei IPv6 este 2001:b38:0:0:5e:0:0:1. S analizm eliminarea pentru fiecare grup: din grupul :0b38: am eliminat un singur 0; din grupul :0000: am eliminat trei 0-uri; din grupul :005e: am eliminat dou 0-uri. Regula este uor reversibil, analiznd grupul :1 trebuie s revenim la patru elemente din grup, singura opiune fiind :0001. Cea de-a dou regul poate fi enunat astfel: un singur ir de grupuri continue de zero poate fi suprimat sub forma ::. n exemplul prezentat avem dou grupuri continue de zero-uri :b38:0:0:5e i :5e:0:0:1. Regula spune c doar un singur astfel de grup poate fi suprimat, astfel adresa IPv6 prezentat poate fi rescris astfel: 2001:b38::5e:0:0:1 sau 2001:b38:0:0:5e::1. Scrierea 2001:b38::5e::1 nu este corect deoarece ea nu este univoc reversibil. O astfel de scriere s-ar putea traduce sub dou adrese IPv6 diferite: 2001:b38:0:0:0:5e:0:1 sau 2001:b38:0:5e:0:0:0:1. Este important s observm c se poate suprima chiar i un singur grup de 0-uri. Spre exemplu adresa IPv6 2001:5cd:02e:04a:5e:03:0:1 poate fi rescris astfel 2001:5cd:02e:04a:5e:03::1. n continuare prezentm cteva exemple relevante de scriere a adreselor IPv6, nainte i dup folosirea celor dou reguli prezentate anterior. Adresa IPv6 ntreag ff00:ff01:0000:0000:0000:0000:0000:0003 0000:0000:0000:0000:0000:0000:0000:0000 0000:0000:0000:0000:0000:0000:0000:0001 Adresa IPv6 forma prescurtat

ff00:ff01::3 :: ::1 2001:ff03:1::23:0:f53:cf3 (preferat) 2001:ff03:0001:0000:0000:0023:0000:0f53:0cf3 sau 2001:ff03:1:0:0:23::f53:cf3 Asemntor, adreselor IPv4 i adresele IPv6 sunt mprite n dou grupuri: bii de reea i bii de staie. Spre deosebire de adresele IPv4, bii de reea sunt identificai folosind un prefix, metod alternativ n scrierea mtii de reea pentru adresele IPv4. Acest prefix este reprezentat la sfritul unei adrese IPv6 dup simbolul / (slash). Spre exemplu pentru a limita bii de reea la un numr de 64 n adresa IPv6 folosit n exemplele precedente prefixul va fi scris astfel 2001:b38:0:0:5e:0:0:1/64. O scriere a mtii de reea asemntoare cu cea adresrii IPv4 ar fi foarte greoaie i impracticabil. Un alt tip de reprezentare este cel folosit pentru adresele de tip IPv4-mapped i compatibile IPv4. Aceste tipuri de adrese au urmtoarea structura: X:X:X:X:X:X:IPv4. Un exemplu ar fi reprezentarea adresei IPv4 192.168.1.100 sub forma ::192.168.1.100, reprezentare de tip IPv4mapped.

4.1.3 Clasificarea adreselor IPv6


n capitolul precedent am studiat adresarea IPv4, cu cele trei tipuri de comunicare: unicast, multicast i broadcast. Adresarea IPv6, aa cum este ea definit n RFC4291 [13], ofer de asemenea trei tipuri de adresare: unicast, multicast i anycast. Spre deosebire de adresarea din IPv4, n IPv6 nu exist adrese de difuzare (adrese de tip broadcast). Dispariia tipului de adresa de difuzare este datorat numrului mare de adrese ce se pot atribui ntr-o reea local, 264 , fiind practic imposibil comunicarea cu toate echipamentele dintro reea local aa cum se putea n adresarea IPv4. n continuare vor fi analizate fiecare tip de adrese, distribuirea acestora i cum pot fi ele folosite.

126 | R e e l e l o c a l e d e c a l c u l a t o a r e

Adrese unicast
Adresele de tip unicast sunt folosite pentru comunicaia punct-la-punct. Ele pot fi atribuite staiilor, echipamentelor folosite pentru rutare sau serverelor dedicate. n funcie de accesibilitatea acestora n afara reelei au fost definite urmtoarele clase de adrese IPv6 de tip unicast: Global Link-local Site-local (aceste tipuri de adrese nu mai sunt folosite i nu vor fi discutate n cadrul acestei seciunii) Unique local Adrese speciale Adrese folosite pentru migrarea de la IPv4 la IPv6. Aceste tipuri de adrese au fost prezentate n 4.1.1 Apariia i migrarea la protocolul IPv6. Aa cum se poate observa din graficul 4-3 din spaiul de adrese IPv6 se poate folosi mai puin de 13%, o mare pondere fiind reprezentat de adresele global unicast.

Folosirea adreselor IPv6

12.500%

0.781% 0.098% 0.098% 0.391%

86.133%

Nefolosit

Global Unicast

Unique-Local

Site-Local

Link-Local

Multicast

4-3: Folosirea adreselor IPv6 Adresele global unicast sunt definite n RFC3587 [14]. Principalul rol al acestor adrese este de identificare a fiecrui calculator n Internet, asemntor cu adresele IPv4 publice. Adresele global unicast pot fi rutate i trebuie s fie unice. Spaiul definit pentru acest tip de adresare este 2000::/3. Alocarea acestor adrese se realizeaz de ctre IANA (Internet Assigned Numbers Authority). Formatul unei adrese global unicast este cel din Fig. 4-4 i trebuie s conin 64 de bii pentru IDul interfeei, bii de staie cum au fost ei definii n capitolul precedent. Completarea celor 64 de bii va fi analizat ulterior.

P r o t o c o l u l I P v 6 | 127

4-4: Adresa global unicast Adresele link-local unicast sunt asemntoare adreselor 169.254.0.0/16 (APIPA) folosite pentru adresarea IPv4. Acest tip de adresare a fost definit n RFC3927 [15] i e folosit pentru conectarea staiilor n reeaua local. Adresele link-local unicast nu pot fi rutate i trebuie s fie unice n aceeai reea, pot exista duplicate n dou reele diferite. Formatul adreselor link-local unicast este definit n Fig. 4-5. Spre deosebire de adresele global unicast fiecare interfa care suport protocolul IPv6 va avea definit o adres de tip link-local. n practic orice interfa va avea minim dou adrese IPv6: una global folosit pentru adresarea n Internet i una de tip link-local folosit pentru comunicarea n cadrul reelei locale. Adresele link-local unicast sunt folosite de ctre protocoalele de rutare pentru definirea urmtorului hop sau ca surs de ctre protocolul NDP.

4-5: Adresa link local Adresele unique local unicast au fost definite n RFC4193 [16]. Adresele unique local unicast sunt asemanatoare adreselor private din IPv4. Adresele unique local unicast nu vor fi rutate in internet i sunt unice n Internet, dei ele au rol doar n interiorul unei organizaii. Formatul adreselor unique local este prezentat n Fig. 4-6. Adresele unique local sunt folosite pentru interconectarea echipamentelor.

4-6: Adresa unique local Exist dou adrese speciale unicast care nu pot aprea ca destinaie i care nu pot fi atribuite echipamentelor. Adresa :: sau 0:0:0:0:0:0:0:0 poart denumirea de unspecified address (adres nespecificat) i este folosit spre exemplu pentru cererea de DHCP, atunci cnd nu exist adres IPv6 atribuit, sau pentru a defini o rutimplicit. n adresarea IPv4 echivalentul adresei nespecifice este 0.0.0.0. Cea de-a doua adres special poart numele de adres de Loopback i are formatul ::1 sau 0:0:0:0:0:0:0:1. Aceast adres este folosit pentru testarea local a stivei IPv6 sau folosit de o aplicaie pentru a se referi la localhost, iar pachetele destinate acestei adrese nu vor fi trimise

128 | R e e l e l o c a l e d e c a l c u l a t o a r e niciodat pe o interfa. n adresarea IPv4 echivalentul adresei de Loopback este dat de spaiul 127.0.0.0/8.

Adrese multicast
Adresarea de tip multicast este folosit atunci cnd destinaia unui pachet este reprezentat de mai multe calculatoare. Echivalentul acestui tip de adresa n protocolul IPv4 este dat de spaiul de adrese 224.0.0.0/8. Spaiul de adresare din IPv6 este FF00::/8, conform RFC4291 [13]. Adresele multicast pot fi folosite doar ca destinaie, nu ca surs. Structura adreselor de multicast IPv6 este cea din Fig. 4-7. Biii de FLAG sunt folosii pentru a defini tipul de adres de multicast (permanent definit de IANA, sau temporar), i identific cum a fost construit (bazat sau nu pe o adres de unicast).

4-7: Adresa multicast Adresarea multicast n IPv6 a fost mprit n trei categorii n funcie de modalitatea de atribuire pe staii: permanente, atribuite manual i solicited node (solicitate de staie create automat dinamic). Adresele multicast de tip permanent sunt definite n RFC2375 [17]. Aceste adrese sunt n general folosite pentru a nlocui adresarea de difuzare din IPv4 si sunt atribuite de ctre sistemul de operare. De asemenea acestea au fost mprite asemntor cu cele unicast n funcie de locul n care sunt folosite. Adrese multicast ce pot fi accesate doar la nivelul staiei - Node-Local Scope: o FF01:0:0:0:0:0:0:1 All Nodes Address o FF01:0:0:0:0:0:0:2 All Routers Address Adrese multicast ce pot fi accesate doar n cadrul reelei locale - Link-Local Scope o FF02:0:0:0:0:0:0:1 All Nodes Address o FF02:0:0:0:0:0:0:2 All Routers Address o FF02:0:0:0:0:1:FFXX:XXXX Solicited-Node Address Adrese multicast ce pot fi accesate doar la nivelul unei organizaii - Site-local scope o FF05:0:0:0:0:0:0:2 All Routers Address Adresele multicast de tip permanent sunt folosite pentru a identifica un anumit grup, ele pot fi considerate nlocuitorul adreselor de difuzare (broadcast). Adresele atribuite manual sunt folosite pentru oferirea diverselor servicii. Alocarea acestor adrese se face de ctre IANA. Adresele de tip solicited node sunt construite pentru a identifica un anumit grup pornind de la adresa IPv6 de unicast. Construirea unei adrese de tip solicited node se face prin copierea ultimilor cei mai puin semnificativi 24 de bii de la o adresa unicast sau anycast la prefixul FF02::1:FF/104, aa cum se poate observa n Fig. 4-8.

P r o t o c o l u l I P v 6 | 129

4-8: Maparea adreselor unicast la cele multicast solicited-node Construirea unui pachet cu o destinaie IPv6 multicast presupune i adugarea unui antet pentru nivelul doi. ntrebarea care reiese de aici este ce adresa MAC destinaie vom folosi pentru a referi o astfel de destinaie. Pentru acest lucru RFC1972 (actualizat ulterior n RFC2464 i RFC6085) stabilete formatul adreselor MAC destinaie pentru pachetele de IPv6 de multicast ca fiind cel din Fig. 4-9. Cei 48 de bii ai unei adrese MAC vor fi alctuii din secvana 33:33, urmat de ultimii 32 de bii din adresa IPv6 de multicast.

4-9: Maparea IPv6 multicast la adresele MAC Spre exemplu pentru un cu adresa MAC 00-50-56-C0-00-08, va rspunde la urmtoarele adrese IPv6 de multicast: FF02::1, adresa MAC asociata este 33-33-00-00-00-01 FF02::1:FFC0:0008, adresa MAC asociat este 33-33-FF-C0-00-08. Am construit aceast adres de multicast de tip solicited-node, plecnd de la adresa link-local (FF80::0250:56FF:FEC0:0008). Construcia adresei link-local este prezentat n capitolul 4.1.4.

Adrese anycast
Pentru a ntelege necesitatea adreselor IPv6 anycast vom analiza mecanismul de funcionare curent, pe infrastructura IPv4, a motorului de cutare google. Iniial motorul de cutare a pornit cu un singur server ce rspundea la o singur adres IPv4. Datorit volumului mare de cereri n faa acestui server a fost pus un load-balancer i serverul a fost multiplicat. Se folosea n continuare o singur adres IPv4. Pasul urmtor a fost dezvoltarea mai multor data-centere rspndite n lume, fiecare astfel de centru avnd o adres IPv4. Pentru a putea balansa traficul ntre aceste centre n lumea IPv4 ne axm pe rspunsul diferit al serverelor de DNS. Practic la o rezolvare de nume pentru domeniul www.google.com vom primi mai multe adrese IPv4 ca rspuns, adrese IPv4 ale datacenterelor precizate anterior. n acest mod fiecare data-center rspunde cererilor IPv4 dintr-o anumit zon.

130 | R e e l e l o c a l e d e c a l c u l a t o a r e Adresarea IPv6 anycast a fost definit n RFC4291 [13]. Adresele IPv6 anycast au proprietatea c pot fi atribuite simultan pe mai multe interfee ale aceluiai dispozitiv sau pentru dispozitive diferite. Acest lucru va permite atribuirea aceleiai adrese IPv6 pentru toate serverele www.google.com, iar accesarea se va face ctre cel mai apropiat astfel de sistem. Adresele IPv6 anycast nu au un spaiu de adrese separat, ele vor folosi spaiul definit pentru adresele unicast. Structura acestor adrese este definit n Fig. 4-10, i pot aprea n antetul IPv6 doar ca destinaie.

4-10: Adresa anycast subnet-router n prezent acest tip de adresare nu este folosit, RFC4786 [18] prezint cteva exemple de folosire pentru aceste tipuri de adrese IPv6.

Adrese IPv6 la care rspunde un nod


Dup cum am prezentat adresele IPv6 sunt de trei tipuri: adrese de tip unicast, adrese de tip multicast i adrese de tip anycast. RFC4291 [13] definete, dup cum urmeaz, adresele de reea de tip IPv6 la care trebuie s rspund un calculator: Adresa de tip Link-local configurat automat. Orice adres de tip unicast sau anycast care a fost configurat. Adresa de tip loopback. Adresa de tip multicast All-Nodes. Toate adresele de tip multicast Solicited-Node definite pentru fiecare adres de tip unicast sau multicast configurate. Toate adresele de multicast configurate manual din care face parte acest nod. n cazul n care echipamentul este un ruter, el va rspunde pentru toate adresele definite anterior pentru un calculator, dar i la urmtoarele adrese: Toate adresele de tip multicast All-Routers,aa cum au fost ele definite anterior. Toate adresele de tip Subnet-Router, adresa de reea.

4.1.4 Subnetarea adreselor IPv6


Spaiul de adrese IPv6 are, asemntor cu adresarea IPv4, o structur ierarhic. Aceast ierarhizare se realizeaz cu ajutorul mtii de reea. Subnetarea se face asemntor cu procesul de subnetare din IPv4, delimitnd prefix-ul, subnetul i biii de staie. Dei o adres de tip IPv6 folosete 128 de bii conceptul de subnetare este mult mai uor realizabil fa de subnetarea n IPv4. Acest lucru este datorat definirii clare a numrului de bii de staie, 64, n RFC4291 [13]. Practic subnetarea se face doar n primii 64 de bii, definind adresa de reea i adresa de subreea prin alegerea corespunztoare a mtii de reea. Spre deosebire de subnetarea n IPv4, numrul de echipamente din reea nu mai este relevant, datorit celor 64 de bii predefinii pentru bii de staie. Cei 64 de bii disponibili pentru subnetare pot fi delimitai oricum, conform RFC3587 [14], ns principiul bunei practicii spune c o subnetare corect ar trebui s se fac la fiecare patru bii, pentru o mai uoar identificare a parilor componente, prefixul, subnetul i bii de staie. Aceast delimitare se va realiza n funcie de numrul de subreele necesare. Pentru a ntelege procesul de subnetare vom analiza urmtorul exemplu. Se dorete subnetarea blocului 2001:34DE:035A::/48 pentru a avea la dispoziie un numr de cinci reele. avem nevoie de 3 bii pentru a reprezenta numrul cinci

P r o t o c o l u l I P v 6 | 131 cum recomandarea este sa folosim grupuri de patru bii, vom face subnetarea dup 4 bii subreelele vor fi de forma: 2001:34DE:035A:000:/60. Prima subreea este 2001:34DE:035A:000:/60, a doua 2001:34DE:035A:001:/60, 2001:34DE:035A:002:/60, ultima fiind 2001:34DE:035A:FFF:/60. O foarte mare problem a adreselor de tip IPv4 a fost mecanismul prost de agregare. Practic la nivelul Internetului fiecare ISP putea n IPv4 s achiziioneze un spaiu de adrese /24, spaiu ce nu poate fi agregat la nivel de ISP, uneori chiar i indiferent de nivelul acestuia (Tier-1, Tier-2, Tier-3). Distribuia adreselor IPv6 este prezentat n Fig. 4-11.

4-11: Distribuia adreselor IPv6 Subnetarea la nivel de RIR este definit la adresa http://www.ripe.net/ripe/docs/ripe-552. RIPE va aloca pentru fiecare ISP un minim de /32, existnd i posibilitatea de a cere un spaiu mai mare (aa cum au cerut cei de la RDS&RCS). Spaiul de adrese /32 permite crearea unui numr de subreele egal cu numrul total de adrese IPv4, rmn 32 de bii pentru partea de subreea. Ultimii 64 de bii, identificatorul de reea, poate avea una din urmtoarele valorii: Conform RFC4941 [19], o valoare generat aleatoriu, metod folosit implicit de ctre Windows 7. (Interesant este c cei de la Microsoft justific folosirea acestei metode pentru a nu permite trace-back la calculatorul care deine acea adres IPv6). Configurat automat atunci cnd se folosete un server de DHCPv6. Conform RFC5072 [20], pentru conexiunile de tip PPP trebuie generat un identificator separat de cel al interfeei, fie prin folosirea EUI-64, fie pe baza unei surse unice (alta dect adresa MAC), fie poate fi generat random. Conform RFC429, fiecare plac de reea poate folosi drept identificator de interfa adresa de tip EUI-64. Exist mai multe metode de generare a acestui identificator: o Acesta este inscripionat deja pe placa de reea, definit de ctre IEEE. o Acesta se va deriva folosind un identificator unic al plcii (ex. Adresa MAC pentru o plac de tip Ethernet, numrul de serie pentru un chip din cadrul unei plcii de tip serial). o Dac nu exist un mecanism unic de identificare al plcii se poate folosi un identificator de pe alt plac de reea. Dintre procesele definite anterior pentru generarea unei adrese de tip EUI-64 cel mai adesea folosit este cel care deriv aceast adres din adresa MAC. Pentru a genera cei 64 de bii necesari identificatorului de interfa se adaug celor 48 de bii din adresa MAC secvena de bii 0xFFFE dup primii 24 de bii din adresa MAC. Un alt lucru care trebuie realizat la construirea unei adrese IPv6 plecnd de la o adresa MAC este inversarea bitului 7 (care specific dac adresa este universal sau definit local), datorit semnificaiei opuse existente (pentru adresa MAC dac bitul este 0 el prezint o adres global;

132 | R e e l e l o c a l e d e c a l c u l a t o a r e pentru adresa EUI-64 dac bitul este 1 el reprezint o adres global). Procesul este descris n Fig. 412.

4-12: Derivarea prefixului EUI-64 pornind de la o adres MAC.

4.2 Descrierea pachetelor IPv6


4.2.1 Antetul IPv6
Dup cum am discutat n primul capitol, la fiecare nivel pachete sunt ncapsulate cu un nou antet. La nivelul doi, n cadrul antetului Ethernet, un pachet IPv6 este referit prin codul 0x86DD - ne aducem aminte c antetul IPv4 era referit prin 0x0800. Structura pachetelor IPv6 este reprezentat n Fig. 4-13. Aceast structur este definit n RFC2460, care nvechete RFC1883 aprut n 1995, nc din anul 1998. Principala mbuntire fa de antetul IPv4 este dat de simplificarea antetului i apariia antetelor de extensie.

4-13: Structura unui pachet IPv6 Printre cele mai importante antete de extensie amintim pe cele folosite pentru rutare, pentru autentificare, pentru ESP (ultimele dou au fost definite ca un un strat superior i pentru IPv4) sau pentru fragmentare. Fr a prezenta toate detaliile amintim procesul de fragmentare, diferit fa de cel realizat pentru IPv4, folosit pentru pachetele de tip IPv6. n IPv6 fragmentarea se va realiza doar la surs, ea

P r o t o c o l u l I P v 6 | 133 nu poate fi realizat pe traseu, i se bazeaz pe un proces de descoperire a dimensiunii pachetelor la nivelul doi. Pentru o detaliere a procesului de descoperire a dimensiunii maxime de pe traseu se poate citi RFC1981 [21], care explic Path MTU Discovery for IP version 6. Fiecare pachet va fi apoi spart n mai multe pachete, aa cum se poate observa n Fig. 4-14.

4-14: Procesul de fragmentare al unui pachet IPv6. Antetul IPv6 este unul simplificat fa de cel din IPv4, Fig. 4-15. Analizm n continuare folosirea fiecrui cmp din cadrul antetului: Cmpul Versiune (4 bii) Specific versiunea protocolului, valoarea cmpului este 6. Cmpul Traffic Class (8 bii) Asemntor cmpului Type of Service din antetul IPv4, folosit pentru clasificarea traficului pentru procesul de QoS. Cmpul Flow Label (20 bii) Definit n RFC3697 [22], nu apare n IPv4 i are scop identificarea unui singur flow pentru a putea realiza procesul de rutare mai rapid, dar poate de asemenea menine informaii despre protocoalele de nivel superior (ex. porturile TCP/UDP folosite) atunci cnd pachetul este criptat. Cmpul Payload Length (16 bii) Indic dimensiunea total a datelor ncapsulate (antetele de extensie sunt considerate ca fiind parte din aceste date) fr antetul de IPv6 (care are o lungime total fix de 40 de octei). Cmpul Next Header (8 bii) Specific felul n care trebuie interpretate datele dup antetul IPv6, ca antet de extensie sau ca alt protocol de nivel superior (ICMP, TCP, UDP). Cmpul Hop Limit (8 bii) Asemntor cmpului TTL din antetul IPv4 specific numrul de echipamente de nivel trei pe care pachetul le poate traversa. Este decrementat la fiecare echipament de nivel trei. Cmpurile Adresa IPv6 surs (128 bii) i Adresa IPv6 destinaie (128 bii) Specific adresele IPv6 folosite.

134 | R e e l e l o c a l e d e c a l c u l a t o a r e

4-15: Structura antetului IPv6 O alt schimbare important adus protocolului de nivel trei este dispariia unui mecanism de verificare a corectitudinii pachetului. Verificarea corectitudinii unui pachet se realizeaz la nivelul doi prin suma de control (CRC) i la nivelul patru de ctre cele importante protocoale (TCP i UDP) prin folosirea unui checksum asupra unui pseudo-antet (acesta include nu doar informaii de la nivelul patru, ci i de la nivelul trei vezi RFC793 pentru TCP i RFC768 pentru UDP).

4.2.2 Pachete de tip ICMP


Un rol foarte important pentru folosirea stivei IPv6 l are protocolul ICMP. Pentru IPv6 structura pachetului este asemntoare cu cea din IPv4. Pachetele de tip ICMP sunt refereniate n antetul de nivel trei prin valoarea 58 a cmpului Next header. Structura unui pachet ICMP este prezentat n Fig. 4-16.

4-16: Structura pachetului ICMP Cele mai importante mesaje ICMP folosite pentru funcionarea corect a protocolului IPv6, aa cum sunt ele definite n RFC4443 [23], sunt: Mesaje de eroare: o Destination Unreachable Mesaje folosite atunci cnd pachetul trimis nu poate fi forwardat ctre destinaie.

P r o t o c o l u l I P v 6 | 135 Packet Too Big Mesaje trimise de ctre un ruter atunci cnd acesta nu poate fi forwardat datorita unei valori mai mici a MTU-ului pe legatura pe care trebuie trimis. Acest pachet este folosit pentru Path MTU Discovery Protocol. o Time Exceeded Pachete trimise de ctre un ruter atunci cnd valoarea cmpului Hop Limit din antetul IPv6 ajunge la 0. Mesaje de informare: o Echo Request Pachete folosite pentru diagnosticarea unei reele. o Echo Reply Pachete trimise ca rspuns atunci cnd se primete un pachet de tip Echo Request. Protocolul ICMP este folosit i pentru definirea mesajelor pentru protocole superioare (Neighbor Discovery tratat in seciunea urmtoare - sau Multicast Listener Discovery Protocol). o

4.2.3 Protocolul Neighbor Discovery Protocol


Apariia protocolului IPv6 a produs i o schimbare a protocoalelor la nivelul stivei OSI. Adoptarea acestui protocol a fost foarte rapid, asemntor cu felul n care formatul 802.3 a acaparat nivelul doi al stivei OSI. Pentru acest lucru protocoalele implementate la nivelul trei, precum ARP, au fost nlocuite cu un protocol care se bazeaz pe adresarea de la nivelul trei. Pentru ndeplinirea funciilor prezentate anterior protocolul NDP se bazeaz pe mesaje de tip ICMP. Exist cinci tipuri diferite de mesaje: Router Solicitation (RS) Router Advertisement (RA) Neighbor Solicitation (NS) Neighbor Advertisment (NA) Redirect Noul protocol dezvoltat, Neighbor Discovery Protocol (NDP), poate fi folosit pentru (doar cele mai importante folosirii): Router Discovery / Default router selection Descoperirea tuturor punctelor de ieire din reea i alegerea celui mai bun. Prefix discovery Descoperirea prefixului de reea folosit pentru configurarea automat a unei adrese IPv6. Duplicate address detection Verificarea existenei aceleiai adrese IPv6 n reea. Redirect Mesaje de redirectare.

Configurarea automat a unei adrese IPv6 pentru o staie


Primul pas pe care l face un calculator ntr-o reea IPv6 este descoperirea acesteia, a prefixului i a ruterelor din reea. Pentru aceasta el va trimite un mesaj de tip RS, avnd ca adres IPv6 surs adresa nespecific :: i destinaia toate ruterele (FF02::2). Toate echipamentele de tip ruter din reeaua local vor rspunde cu un mesaj de tip RA, adresa surs fiind adresa IPv6 link-local iar adresa destinaie FF02::1 toate echipamentele din retea. Mesajele de tip RA conin identitatea echipamentului care le-a trimis, prefixul sau lista de prefixe ce poate fi folosit pentru autoconfigurare i MTU-ul folosit pentru reeaua local. Acest mesaj poate conine i ali parametri precum adresa IPv6 a unui server de DHCPv6. Mesajele de tip RA sunt trimise de ctre rutere la intervale periodice (generate aleatoriu) pentru a-i anuna prezena n reea. Procesul poate fi analizat n Fig. 4-17. Dup primirea unui prefix fiecare echipament i va configura automat o adres IPv6 folosind acest prefix i genernd identificatorul pentru interfa folosind una din metodele prezentate anterior, 4.14 Subnetarea adreselor IPv6. nainte de a folosi aceast adres IPv6 calculatorul va trimite un mesaj de tip NS pentru a verifica existena n reea a acestei adrese. Dac nu se primete nici un rspuns calculatorul va folosi aceast adres IPv6.

136 | R e e l e l o c a l e d e c a l c u l a t o a r e

1 1 1 RS 1 1 type: ICMP Source: o Destination: st Query: RA


133 unspec all-routers which router?

VA

ICMP type: 134 Source: VA link-local Destination: all-nodes

2 2 1 1 1 1 o st RA
ICMP type: 134 Source: Bi link-local Destination: all-nodes

Bi

Solicited RA

RA
ICMP type: 134 Source: Bi link-local Destination: all-nodes Unsolicited RA

Packet Source

Packet Receiver

4-17: Descoperirea ruterelor din reeaua local

Descoperirea adresei MAC


Un alt aspect foarte important este procesul de descoperire a adresei MAC, asemntor celui folosit de protocolul ARP. Mesajele folosite sunt de tip NS i NA, ele corespund ARP Request i, respectiv, ARP Reply.

1
VA

NS
ICMP type: 135 Source: 1 Destination: solicited-node multicast Query: link-layer address matching 2? ICMP type: 136 Source: 2 Destination: 1

2 2 1 1 1 1 o st NA

Bi

Solicited RA

NA
ICMP type: 136 Source: 2 Destination: all-nodes Unsolicited RA

Packet Source

Packet Receiver

4-18: Descoperirea adresei MAC

P r o t o c o l u l I P v 6 | 137 Spre deosebire de protocolul ARP care nu folosete un antet IP, NDP este construit peste IPv6. Adresa IPv6 destinaie folosit este adresa de tip multicast-solicited node, deoarece n IPv6 nu exist adres de tip broadcast. Mai mult dect att, folosind aceast adres de multicast doar calculatorul care s-a asociat, conform procesului explicat in Fig. 4-18, va rspunde acestui tip de pachete.

4.3 Configurarea adreselor IPv6


4.3.1 Linux
n Linux exist suport pentru IPv6 nc de la versiunea 2.6 de kernel dar interfaa pentru utilizator pentru configurarea IPv6 a venit odat cu introducerea pachetului de utilitare iproute2. Vechiul pachet, net-tools care cuprinde utilitare ca ifconfig i route nu avea suport pentru adrese IPv6. Dei versiunilor noi de ifconfig i-au fost adugate faciliti de IPv6, folosirea ifconfig este nerecomandat. Pentru configurri legate de IPv6, vom folosi comanda ip din pachetul iproute2. Comenzile sunt similare cu cele pentru IPv4, uneori fiind nevoie de adugarea flag-ului -6.
linuxbox$ ip -6 adddress show linuxbox$ ip -6 route show

Unele comenzi pot fi scrise n form scurt, dar avnd acelai rezultat:
linuxbox$ ip a

Pentru adugarea unei adrese noi, putem folosi o comand de tipul:


ip addr add ADRES_IPV6/PREFIX dev INTERFA

Pentru a aduga o rut folosim o comand de tipul:


ip route add ADRES_REEA_IPV6 via ADRES_IPV6_ROUTER_URMTOR

Atenie! nainte ca maina Linux s poat comuta pachete IPv6, trebuie activat optiunea de rutare n kernel, prin editarea fiierului /etc/sysctl.conf i setarea liniei net.ipv6.conf.all.forwarding=1. Pentru a activa schimbarea trebuie rulat comanda sysctl p.

4.3.2 Cisco IOS


Implicit, facilitatea de a comuta pachete IPv6 este dezactivat pe Cisco IOS. Ea trebuie activat prin comanda ipv6 unicast-routing.
(config)# ipv6 unicast-routing

Adugarea de adrese IP pe interfa i rute n tabela de rutare se face similar cu comenzile pentru IPv6, adugndu-se cuvntul cheie ipv6.
(config)# interface INTERFA (conf-interface)# ipv6 address ADRES_IPV6/PREFIX_MASC_REEA

Implicit, o interfa pe un router Cisco ce are o adres IPv6 configurat, va trimite mesaje de tip RA (router adverisments) pentru a anuna staiilor din reea informaii despre ruter. Putem dezactiva acest comportament la nivel de interfa:
(conf-interface)# ipv6 nd suppress-ra

4.3.3 Windows
Dei Windows XP are un suport minimal de IPv6, abia n Windows Vista i Windows 7 exist un mod de configurare i adminstrare uoar a stivei TCP/IPv6. n Windows 7, configurrile pentru IPv6

138 | R e e l e l o c a l e d e c a l c u l a t o a r e se fac similar cu cele pentru IPv4. Din interfaa grafic, din fereastra specific unei interfee de reea, se alege protocolul Internet Protocol Version 6 (TCP/IPv6).

4-19: Configurare setri IPv6 n Windows 7 Configurarea adresei poate fi fcut fie automat, prin DHCP, fie specificnd manual adresa de staie, prefixul (lungimea) mtii de reea, gateway-ul implicit i adresa IPv6 a serverului DNS.

4-20: Atribuirea unei adrese IPv6 unei interfee n Windows 7

P r o t o c o l u l I P v 6 | 139 n linia de comand, putem s ne folosim de utilitarul ipconfig pentru a vedea setrile unei interfee, inclusiv adresele IPv6. Acelai tool poate fi folosit pentru a cere o nou adres IPv6 prin DHCP:
ipconfig /all ipconfig /release6 ipconfig /renew6

Pentru setri mai avansate, vom folosi netsh. Cu acest utilitar putem lista interfeele ce au suport pentru IPv6, care sunt adresele IPv6 configurate pe interfa i care este tabela de rutare IPv6:
netsh interface ipv6 show address netsh interface ipv6 show interface netsh interface ipv6 show route

Pentru a aduga o adres IPv6 se folosete o comand de tipul:


netsh interface ipv6 add address NUME_INTERFA ADRES_IPV6/PREFIX

Numele interfeei este fie un ir de caractere (ex. Local Area Connection), fie indexul interfeei ce poate fi obinut cu netsh interface ipv6 show interface. O rut poate fi adugat printr-o comand de tipul:
netsh interface ipv6 add route REEA NUME_INTERFA ADRES_IPV6_PAS_URMTOR METRIC

4.4 Scenarii de folosire


4.4.1 Topologie folosind configurare automat
2001::/64
Sw2

CR

W 4-21: Topologie simpl cu o reea local n care ruleaz IPv6 Pentru topologii simple (exemplu Fig. 4-21), ce au un singur ruter cu multiple staii de lucru n spate, ne putem folosi de facilitile de autoconfigurare pentru a minimiza munca pe care trebuie s o facem. CR este un router Cisco, ce va fi i ruterul implicit ar reelei. Vom configura o adres IPv6, folosind mecanismul EUI64 de generare a adresei:
cr(config)# interface f0/0 cr(config-if)#ipv6 address 2001::/64 eui-64 cr(conf-interface)# no shutdown cr#sh ipv6 int brief FastEthernet0/0 [up/down] FE80::226:BFF:FEB8:6CE8 2001::226:BFF:FEB8:6CE8 cr#sh int f0/0 FastEthernet0/0 is up, line protocol is up Hardware is MV96340 Ethernet, address is 0026.0bb8.6ce8 (bia 0026.0bb8.6ce8)

Pe staia Windows (W) putem cere configurarea automat a adresei IP prin comanda ipconfig:
ipconfig ipconfig ipconfig Ethernet /release6 /renew6 /all adapter Local Area Connection:

140 | R e e l e l o c a l e d e c a l c u l a t o a r e
IPv6 Address. . . . . . Temporary IPv6 Address. Link-local IPv6 Address IPv4 Address. . . . . . Subnet Mask . . . . . . Default Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : 2001::3c58:818:76f7:e4e8 2001::198b:4f1b:52cf:ab89 fe80::3c58:818:76f7:e4e8%13 192.168.254.92 255.255.255.0 fe80::226:bff:feb8:6ce8%13

Similar, pe staia Linux (L), adresa IPv6 i ruta implicit se vor configura cu ajutorul RA-urilor trimise de ruterul CR, odat cu activarea interfetei la nivelul doi:
l# ip link set up dev eth0 l# ip addr show dev eth0 1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100 link/ether 00:17:31:49:3a:df brd ff:ff:ff:ff:ff:ff inet6 2001::217:31ff:fe49:3adf/64 scope global tentative dynamic valid_lft 2591999sec preferred_lft 604799sec inet6 fe80::217:31ff:fe49:3adf/64 scope link valid_lft forever preferred_lft forever l# ip -6 route show|grep default default via fe80::226:bff:feb8:6ce8 dev eth0 proto kernel metric 1024 expires 1398sec mtu 1500 advmss 1440 hoplimit 64

4.4.2 Topologie avansat IPv6

2001:1234:AAAA:1::/64 L

2001:1234:AAAA::/64

2001:1234:AAAA:2::/64 W

LR

CR

10.0.0.0/30 4-22: Topologie reea IPv6 desprit de o reea IPv4. LR i CR sunt dou rutere ce sunt conectate ntre ele printr-o reea IPv4. LR este un Linux-box ce va face rutare i CR este un router Cisco. Fiecare are n spate o staie, una rulnd Linux (L) i una rulnd Windows (W). Presupunem c singurul lucru configurat pn acum este conectivitatea IPv4 ntre cele doua rutere. Scopul final este de a avea conectivitate IPv6 ntre cele dou staii. Avem la dispoziie reeaua 2001:1234:AAAA::/48. Vom folosi trei reele /64 din aceasta: 2001:1234:AAAA::/64 pentru reeaua LR-CR 2001:1234:AAAA:1::/64 pentru L-LR 2001:1234:AAAA:2::/64 pentru W-CR ncepem cu configurarea staiei L:
l# ip -6 addr add 2001:1234:AAAA:1::2/64 dev eth0 l# ip -6 route add default via l# ip addr add 2001:1234:AAAA:1::1

Similar,trebuie s adugm o adres IP pe interfaa de pe LR. n plus, cum acest sistem are rol de ruter, trebuie activat opiunea de a comuta pachete IPv6:
lr# ip -6 addr add 2001:1234:AAAA:1::1/64 dev eth0 lr# vi /etc/sysctl.conf net.ipv6.conf.all.forwarding=1 lr# sysctl p

Pe routerul Cisco, trebuie de asemenea activat comutarea de pachete IPv6 i cofigurate adresele IPv6:
cr(config)# ipv6 unicast-routing cr(config)# interface f0/0 cr(conf-interface)# ipv6 address 2001:1234:AAAA:2::1/64 cr(conf-interface)# ipv6 nd suppress-ra

P r o t o c o l u l I P v 6 | 141
cr(conf-interface)# no shutdown

Pe staia Windows trebuie configurat adresa IPv6 pe interfa i ruta implicit.


netsh interface ipv6 add address Local Area Connection 2001:1234:AAAA:2::2/64 netsh interface ipv6 add route ::/0 Local Area Connection 2001:1234:AAAA:2::1 0

Avem conectivitate pentru fiecare dintre cele dou staii cu gateway-urile lor, dar nc nu de la cap al cellalt al reelei deoarece ntre cele dou routere exist o reea IPv4 ce nu comut pachete IPv6. Vom avea nevoie s configurm un tunel IPv6 peste IPv4 pentru a oferi o legtur virtiual IPv6 ntre LR i CR.
cr(config)#int tunnel 0 cr(config-if)#tunnel source fastEthernet 0/1 cr(config-if)#tunnel destination 10.0.0.1 cr(config-if)#tunnel mode ipv6ip cr(config-if)#ipv6 address 2001:1234:AAAA::2/64

lr# ip tun add tun0 local 10.0.0.1 remote 10.0.0.2 mode sit lr# ip addr add 2001:1234:AAAA::1/64 dev tun0 lr# ip link set up dev tun0

Ultimul pas este s configurm rute ntre cele dou reele de margine prin tunelul nou creat:
cr(config)# ipv6 route 2001:1234:AAAA:1::/64 2001:1234:AAAA::1

lr# ip route add 2001:1234:AAAA:2::/64 via 2001:1234:AAAA::2

Nu uitai s testati conectivitatea cu comenzile de tipul ping i traceroute.

4.5 Studiu de caz


n acest capitol am prezentat principala motivaie pentru introducerea adreselor IPv6 dar i modalitatea de migrare a infrastructurii de reea. Apariia noului protocol produce un impact foarte mare nu doar asupra infrastructurii ci i a aplicaiilor. Fr migrarea aplicaiilor ctre protocolul IPv6, infrastructura nu poate fi folosit. Este ca i cum am cumpra autobuze mai mari dar toi cltorii ar continua s foloseasc vechile mijloace de transport n comun. RFC4038 clasific aplicaiile n patru cazuri diferite, n funcie suportul fa de IPv6 pe care acestea l ofer: Aplicaii de tip doar-IPv4, care trebuie migrate pentru a folosi stiva IPv6; Ex. Skype. Aplicaii doar-IPv4 i doar-IPv6, aplicaia a fost migrat pentru a folosi stiva IPv6 dar utilizatorul trebuie s aleag aplicaia corespunztoare n funcie de protocolul folosit (IPv4 sau IPv6); Ex. ping i ping6 pentru Linux. Aplicaii care ofer suport pentru ambele protocoale, migrarea este complet; Ex. Firefox. Aplicaii care ofer suport pentru ambele protocoale ntr-un mediu de tip doar-IPv4, n care sistemul de operare nu ofer suport pentru IPv6. Acest caz nu se mai ntlnete datorit rspndirii suportului pentru IPv6 n sistemele de operare. n acest studiu de caz vom prezenta migrarea unei aplicaii doar-IPv4 pentru a folosi i protocolul IPv6, atunci cnd acesta este disponibil. Aplicaia folosit este de tip client/server i este scris complet n limbajul de programare C. Am ales C pentru c expune toate primitivele necesare comunicrii, astfel procesul poate fi mai bine explicat, existnd ns suport pentru IPv6 n majoritatea limbajelor de programare (ex. Java). Serverul ascult pentru conexiuni de tip TCP i va ntoarce clientului mesajele primite de la aceasta (ecou). Clientul primete ca argument adresa serverului la care se va conecta i apoi interogheaz utilizatorul pentru mesaje ce vor fi trimise ctre server, afind la STDOUT rspunsul de la acesta. n Anexa A am pus la dispoziia cititorului codul surs pentru toate cele patru aplicaii.

142 | R e e l e l o c a l e d e c a l c u l a t o a r e Aplicaia se bazeaz pe folosirea unui socket pentru a transmite informaii ntre client i server. Un socket poate fi vzut, ntr-o form simplificat, ca o pereche de patru elemente: adresa IP client, adresa IP server, port surs i port destinaie. Pentru a simplifica aplicaia folosit ca exemplu am considerat portul destinaie fix, 5000. Fr a detaliat foarte mult subiectul, Fig. 4-23 evideniaz pai necesari pentru a crea o conexiune TCP.

4-23 Crearea unui socket TCP Topologia folosit este prezentat n Fig. 4-24. Cele dou staii folosite sunt direct conectate prin intermediul unui switch i fac parte din domeniul DNS exemplu.rl, DNS ce va rezolva att adrese IPv4 ct i IPv6. Server: a.exemplu.rl 2001::1/64 192.168.17.130 Client b.exemplu.rl 2001::2/64 192.168.17.129

4-24: Topologie aplicaie client server Executm aplicaia n IPv4:


root@rl-vm:~/rl/ipv4# ./server conexiune realizata cu b.exemplu.rl (192.168.17.129) echo: buna root@so-vm:~/rl/ipv4# ./client 192.168.17.130 mesaj: buna echo: buna

Executam clientul cu o adresa IPv6 ca argument. Se observa c nu se poate conecta la server datorit DNS-ului care nu va rezolva corect.
root@so-vm:~/rl/ipv4# ./client 2001::1 (client.c, 33): Nu exista serverul

Primul pas pentru a migra aplicatia este modificarea structurilor folosite. Pentru a crea o aplicatie doar-IPv6 structura folosit pentru a salva datele de conectare este struct sockaddr_in6, cea din IPv4 este struct sockaddr_in. Pentru crearea unei aplicaii independente de protocolul folosit este recomandat folosirea structurii struct sockaddr_storage. Cele dou structuri prezentate nu au loc pentru a mentine informatii despre protocolul folosit (AF Address Family), iar apelul unor funcii cu astfel de structuri impune folosirea AF-ului ca parametru:

P r o t o c o l u l I P v 6 | 143
/* doar-IPv4 */ bar(&in4addr, AF_INET); /* doar-IPv6 */ bar(&in6addr, AF_INET6);

Trebuie fcut clar separaia ntre cod doar-IPv4, doar-IPv4 i cod portabil. n exemplu de mai jos se poate vedea aceast diferen atunci cnd vorbim de structuri: doar-IPv4
struct sockaddr_in addr;

doar-IPv6 cod independent

struct sockaddr_in6 addr;

struct sockaddr_storage addr;

n afara structurilor este necesar i migrarea tuturor funciilor folosite. Funciile getaddrinfo() i getnameinfo() ofer suport pentru IPv4 i pentru IPv6, ele implementeaz funcionalitatea urmtoarelor funcii: gethostbyname(), gethostbyaddr(), inet_ntop(), inet_pton(), getservbyname(), getservbyport(). Dei unele dintre funciile precizate anterior pot fi folosite pentru protocolul IPv6 nu este recomandat utilizarea lor datorit dependenei de protocol. Pentru o descriere detaliat a funciilor consultai paginile de manual. O alt regul recomandat la migrarea ctre o aplicaie independent este eliminarea oricrei referine la protocolul folosit, nu trebuie folosite n program structurile de tipul AF-, aa cum apar ele n exemplul de mai jos.
switch (aip->sa_family) { case AF_INET: clientlen = sizeof(struct sockaddr_in); break; }

Odat cu apariia protocolul IPv6 a aprut i un socket pentru IPv6. Sistemele de operare vor suporta adrese IPv4 peste un socket IPv6 folosind conceptul IPv4-mapped IPv6. O astfel de adres are forma ::IPv4, aa cum a fost ea definit n RFC4291 [13]. Este la alegerea programatorului dac folosete o astfel de adres sau dac va crea un socket special pentru IPv4. Pentru a face asta trebuie ca socketul de IPv6 s fie de tip doar-IPv6. Urmtoarea secven transform un socket IPv6 ntr-un socket doar-IPv6.
#ifdef IPV6_V6ONLY int v6only = 1; if (aip->ai_family == AF_INET6) { n = setsockopt(parinte[nsock], IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)); } #endif

Dup portarea aplicaiei putem observa funcionalitatea att pentru IPv6 ct i pentru IPv4.
root@rl-vm:~/rl/any# ./server conexiune realizata cu b.exemplu.rl (192.168.17.129) echo: buna conexiune realizata cu b.exemplu.rl (2001::2) echo: buna root@so-vm:~/rl/any# ./client 192.168.17.130 mesaj: buna echo: buna root@so-vm:~/rl/any# ./client 2001::1 mesaj: buna echo: buna

Un alt aspect interesant de urmrit este comportamentul aplicaiei atunci cnd conexiunea se realizeaz folosind un nume, nu o adres IP. Se poate observa din exemplul de mai jos ntietatea adreselor IPv6 n faa adreselor IPv4 atunci cnd se folosete serviciul DNS din sistemul de operare. Este recomandat folosirea numelui i nu hard-coding pentru o anumit adres IP.
root@rl-vm:~/rl/any# ./server conexiune realizata cu b.exemplu.rl (2001::2)

144 | R e e l e l o c a l e d e c a l c u l a t o a r e
root@so-vm:~/rl/any# ./client a.exemplu.rl

Dezvoltarea aplicaiilor cu suport pentru IPv6 n mediul Windows a fost introdus nc din Windows Server 2000, odat cu apariia Windows Sockets 2. Acest API dezvoltat de ctre Microsoft ofer o interfa compatibil cu RFC3493 pentru programatori n C/C++. Pentru o mai uoar migrare a aplicaiilor ctre IPv6 Microsoft a dezvoltat un utilitar denumit Checkv4.exe pentru a analiza codul surs al unui program i pentru a identifica eventualele probleme de portabilitate precum folosirea structurilor i a funciilor incompatibile IPv6 (ex. gethostbyname). Acest utilitar face parte din suita Microsoft Windows Software Development Kit (SDK) disponibil pentru Windows Vista i versiunile ulterioare de Windows. n continuare prezentm o analiz folosind Checkv4.exe a programului ipv4_client.c.
C:\Users\Mihai\Desktop>checkv4.exe ipv4_client.c ipv4_client.c(24) : sockaddr_in : use sockaddr_storage instead, or use sockaddr_in6 in addition for IPv6 support ipv4_client.c(25) : hostent : use addrinfo instead ipv4_client.c(30) : AF_INET : use AF_INET6 in addition for IPv6 support ipv4_client.c(32) : gethostbyname : use getaddrinfo instead ipv4_client.c(37) : AF_INET : use AF_INET6 in addition for IPv6 support

4.6 Concluzii
Protocolul IPv6 este, fr ndoial, urmtorul pas n evoluia Interntului. Experiena acumulat n toi anii n care IPv4 a fost rege, a produs acest nou protocol care vine cu soluii noi la probleme veche i ncearc s anticipeze unele probleme ce se vor aprea n viitor. Noile dispozitive, cum sunt cele mobile, cer din ce n ce mai tare nlocuirea protocolului IPv4 iar facilitile noi integrate n noul protocol vor crea oportunitti pentru tehnologii noi n Internet. Dar drumul spre migrare nu este unul usor, deoarece multe schimbri au fost i sunt necesare. Hardware i software nou, infrastructuri cu un nou design i cel mai important, specialiti IT care s lucreze cu acest nou protocol.

4.6.1 Linux
Comand ping6 traceroute6 ip -6 ip -6 address ip -6 route show ip tunel Descriere Msoar latena pn la o adres IPv6 specificat Gsire calea prin Intrernet spre o staie IPv6 Suit de comenzi pentru configurare adrese i rute IPv6 Configurare (listare i setare) adrese IPv6 pe interfee Configurare (listare i setare) rute IPv6 n tabela de rutare Configurare tunele

4.6.2 Cisco IOS


Comand ipv6 address ipv6 route show ipv6 route Descriere Configurare adres IPv6 pe o interfa Configurare rut IPv6 n tabela de rutare Listare tabel de rutare

P r o t o c o l u l I P v 6 | 145

4.6.3 Windows
Comand ping Descriere Msoar latena pn la o adres specificat (inclusiv IPv6) Configurare adrese IPv6 pe o interfa i rute n tabela de rutare

netsh interface ipv6

4.7 ntrebri
1. 2. 3. 4. 5. IPv6, n comparaie cu IPv4, este: Intercompatibil cu IPv4 Funcioneaz la nivelul 6, pe cnd IPv4 funcioneaza la nivelul 4 Vine s nlocuiasc IPv4 Este acelasi protocol, doar c are adrese mai lungi O adres IPv6 are 32 bii 64 bii 128 bii o lungime de dimensiune variabil n IPv6 nu mai existe adrese de tip: Reea Staie Broadcast Multicast Care dintre urmtoarele sunt notaii valide pentru o adres IPv6: 2001.1.2.2/64 2001::0/32 DE:AD:00:00:BE:EF FE80::1:2::0/64 Pentru configurarea unei adrese IPv6 n Linux, este recomandat comanda: iproute2 netsh ifconfig ip

146 | R e e l e l o c a l e d e c a l c u l a t o a r e

4.8 Referine
[1] Understanding IPv6, Second edition, Joseph Davies, Microsoft Press, 2008 [2] Deploying IPv6 Networks, Ciprian Popoviciu, Eric Levy-Abegnoli, Patrick Grossetete, Cisco Press, 2006 [3] http://www.cio.gov/documents/IPv6memofinal.pdf [4] http://europa.eu/rapid/pressReleasesAction.do?reference=IP/08/803 [5] http://www.vyncke.org/ipv6status/ [6] http://www.google.com/ipv6/statistics.html#tab=per-country-ipv6-adoption [7] http://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems [8] RFC 1883 Internet Protocol, Version 6 (IPv6) Specification [9] RFC 4214 Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) [10] RFC 3056 Connection of IPv6 Domains via IPv4 Clouds [11] RFC 4380 Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs) [12] RFC 6052 IPv6 Addressing of IPv4/IPv6 Translators [13] RFC 4291 IP Version 6 Addressing Architecture [14] RFC 3587 IPv6 Global Unicast Address Format [15] RFC 3927 Dynamic Configuration of IPv4 Link-Local Addresses [16] RFC 4193 Unique Local IPv6 Unicast Addresses [17] RFC 2375 IPv6 Multicast Address Assignments [18] RFC 4786 Operation of Anycast Services [19] RFC 4941 Privacy Extensions for Stateless Address Autoconfiguration in IPv6 [20] RFC 5072 IP Version 6 over PPP [21] RFC 1981 Path MTU Discovery for IP version 6 [22] RFC 3697 IPv6 Flow Label Specification [23] RFC 4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification

P a g e | 147

5 Optimizarea reelelor locale


Ce se nva n acest capitol? Cine este Walter David Sincoskie a fost un inginer american n domeniul calculatoarelor. Sincoskie a instalat prima reea local bazat pe Ethernet la Laboratoarele Bell i a fost un pionier al tehnologiei voice over IP. Cercetrile sale n domeniul VoIP l-au condus la inventarea reelelor locale virtuale (VLANs). De asemenea, el este i autorul primei specificaii Local ATM. Pe la mijlocul anilor 90 att Ethernet-ul ct i stiva TCP/IP se impun drept standarde de facto n lumea networking-ului, majoritatea reelelor locale bazndu-se pe aceast combinaie de protocoale. Posednd deja un anumit grad de maturitate, care le-a permis s devin predominante, aceste tehnologii intr n faza optimizrilor. Cele mai multe nouti sunt introduse de ctre productorii de echipamente de reea, rspunznd unor cerine din pia; pentru a evita eventualele probleme de incompatibilitate i pentru a oferi o versiune oficial a protocoalelor, IEEE intervine i standardizeaz unele dintre noile invenii. ntregul proces se desfoar innd cont de doi vectori divergeni: pe de o parte, dorina de a inova i de a corecta slbiciunile specificaiilor istorice ale protocoalelor; pe de alt parte, nevoia pstrrii compatibilitii cu dispozitivele existente, care implementeaz aceste specificaii. n cadrul acestui capitol vom discuta optimizrile efectuate la nivelul doi al stivei OSI, n particular cele specifice Ethernet-ului. Designul reelelor locale bazate pe Ethernet a trecut de-a lungul timpului prin mai multe etape, evoluia topologiilor fiind strns legat de progresele tehnologice nregistrate att n domeniul mediilor de transmisie, la nivel fizic, ct i n cel al dispozitivelor de reea utilizate pentru procesarea pachetelor. Dac la nceputul anilor 90 imaginea predominant n departamentele unei companii era cea Ethernet-ului 10BASE-T peste cabluri telefonice, cu huburi deservind calculatoare i alte echipamente situate n proximitate, odat cu apariia switch-urilor i a standardelor FastEthernet era comunicaiilor half-duplex a nceput s apun, full-duplex-ul extinzndu-se rapid. Pe lng vitezele de transmisie mai mari, evoluia descris mai sus const n special n segmentarea domeniilor de coliziune. Beneficiile acestui proces sunt uor observabile: n topologiile moderne, n care un domeniu de coliziune este echivalent cu portul unui switch, o surs important de ineficien (i anume apariia coliziunilor) este eliminat, cu impact direct asupra performanei reelei. n cele ce urmeaz vom vedea c, asemenea domeniilor de coliziune, domeniile de broadcast implic anumite limitri de ordin tehnic i administrativ care mpiedic extinderea lor necontrolat, ducnd din nou la procesul de segmentare. Reelele locale virtuale, sau VLAN-urile (Virtual LANs), au aprut mai ales ca o soluie practic la aceast problem, introducnd la rndul lor o serie de concepte tehnice care vor fi expuse n continuare. O alt dezvoltare important a constat n apariia tehnologiilor de link aggregation, care ofer posibilitatea gruprii mai multor legturi fizice ntr-o singur legtur logic. Acest proces Reele locale virtuale (VLAN-uri) Rutarea inter-VLAN Legturi agregate de nivel 2 Negocierea i configurarea legturilor agregate Vulnerabiliti, atacuri i msuri de securitate pentru reele locale

148 | R e e l e l o c a l e d e c a l c u l a t o a r e mbuntete limea de band i disponibilitatea reelei, mai ales n zonele sale de backbone. VLAN-urile i tehnologiile de agregare a legturilor fizice sunt exemple timpurii ale procesului de virtualizare, att de rspndit astzi. n acest capitol vom discuta i despre securitate, mai exact despre vulnerabilitile implicite ale implementrilor de Ethernet. n versiunea iniial a standardelor autorii acestora au specificat cum trebuie s se comporte protocolul n condiii normale de funcionare, multe dintre situaiile excepionale nefiind reglementate. Odat cu trecerea timpului, practica a evideniat o serie de slbiciuni exploatate de ctre atacatori; vom analiza aici cteva dintre atacurile des ntlnite, printre care MAC table overflow, DHCP starvation i ARP Poisoning. Pentru fiecare dintre aceste atacuri vom prezenta msuri preventive de securitate.

5.1 Definirea reelelor locale virtuale


5.1.1 Limitri ale topologiilor Ethernet cu un singur domeniu de broadcast
S considerm urmtoarea topologie ca baz a discuiei referitoare la segmentarea domeniilor de broadcast (ilustrat n Fig. 5-1): avem dou departamente ale unei companii, IT i HR, situate la etaje diferite. Echipamentele fiecrui departament sunt conectate ntr-un switch, ITSw, respectiv HRSw, acestea fiind legate la rndul lor la un switch de distribuie care le conecteaz la restul reelei, DSw. Presupunem c infrastructura companiei utilizeaz cablare structurat, toate cele trei switch-uri fiind situate ntr-un rack, conectat prin intermediul unor patch-panel-uri la prizele Ethernet existente la cele dou etaje.

DSw

ITSw

HRSw

IT1

IT2

HR1

HR2

5-1 Exemplu de topologie pentru VLAN-uri Dup cum putem observa, echipamentele din cele dou departamente sunt situate n acelai domeniu de broadcast. Dac am aduga alte departamente n domeniu, conectndu-le la switch-ul de distribuie DSw, sau dac numrul de dispozitive din cele dou departamente ar depi cteva sute, utilizatorii observa o degradare semnificativ a performanei, din motive nu tocmai evidente. Cunoatem faptul c un cadru avnd ca adres destinaie adresa de broadcast este trimis de ctre un switch pe toate porturile sale, mai puin pe cel pe care a fost primit. Acest mod de transmisie este utilizat de mai multe protocoale de comunicaie, dintre cale cele mai importante sunt ARP i DHCP. n cazul topologiei de mai sus, un cadru broadcast de tipul DHCP discovery trimis de ctre calculatorul IT1, prin care acesta ncearc s localizeze un server de DHCP pentru a obine o adres IP, va fi procesat de ctre toate cele trei switch-uri i va ajunge la calculatoarele IT2, HR1, HR2. Frecvena cadrelor de tip broadcast n traficul general al reelei depinde liniar de numrul de dispozitive conectate, astfel nct, de la un anumit prag ncolo, plcile de reea ale dispozitivelor conectate vor irosi resurse importante pentru procesarea (urmat de ignorarea) acestui tip de cadre. O problem nrudit o reprezint cea a broadcast storm-urilor, situaii n care o plac de reea defect genereaz o secven continu de cadre broadcast, afectnd performana reelei. Dei

O p t i m i z a r e a r e e l e l o r l o c a l e | 149 aceast problem este mult mai rar ntlnit n prezent fa de acum civa ani, datorit fiabilitii sporite a echipamentelor, nu trebuie s fie subestimat, dat fiind c afecteaz ntregul domeniu de broadcast. O alt problem serioas, ns destul de rar ntlnit, este generat de prezena unui numr prea mare de echipamente n cadrul aceluiai domeniu de broadcast. Aceast problem se refer la flooding-ul cadrelor cu destinaii necunoscute de ctre switch-uri: dac numrul de dispozitive este att de mare nct tabela MAC a unui switch nu le poate cuprinde adresele fizice, ajungnd n situaia de overflow, switch-ul va trimite chiar i cadrele non-broadcast pe toate porturile, n cazul n care nu gasete adresele destinaie n tabela MAC. Acest fenomen, care poate aprea n mod legitim n cadrul unei reele cu domenii de broadcast supraaglomerate i switch-uri neperformante cu tabele MAC de dimensiuni reduse, st i la baza unui atac de reea cunoscut sub numele de MAC table overflow. Pe lng consideraiile tehnice referitoare strict la performan, trebuie s lum n consideraie i problema securitii n cadrul domeniilor de broadcast. Orice interfa de reea poate fi configurat n modul promiscuous, caz n care capteaz toate pachetele primite din reeaua local; implicit, pachetele de tip broadcast i multicast vor fi disponibile tuturor asculttorilor interesai, i nu este exclus posibilitatea ca ele s conin date confideniale. Mai mult dect att, un host poate ncerca s acceseze direct toate dispozitivele din reeaua sa local, fapt care faciliteaz atacurile. De multe ori, unul dintre primii pai efectuai de hackeri const n compromiterea unei maini din reeaua intern a unei companii, urmat imediat dup aceea de scanarea subreelei mainii compromise, n cutarea unor noi inte. Plasarea diferitelor departamente ale unei companii n reele (domenii de broadcast) diferite reprezint una dintre primele i cele mai importante msuri de securitate ce trebuie implementate, stnd la baza tuturor configurrilor ulterioare precum filtrarea traficului. n exemplul de mai sus este clar c departamentele de HR i IT vehiculeaz clase de informaii diferite i au politici de acces i securitate distincte; decizia natural este de a le plasa n reele diferite. Ultima remarc a paragrafului precedent ne aduce n domeniul administrrii: pe lng cerinele de securitate care sunt specifice departamentelor, exist i alte politici aplicabile tot la acest nivel de exemplu, controlul calitii serviciilor. Departamentul IT va avea n mod uzual nevoie de mai mult lime de band dect cel de HR, nevoie ce poate fi adresat printr-o configurare specific. De asemenea, anumite grupuri de dispozitive (telefoane IP, echipamente de videoconferin) au necesiti de trafic speciale (lime de band, laten), care pot fi asigurate prin politici dedicate dup izolarea acestor echipamente ntr-o reea proprie. O ntrebare legitim este: de ce nu am folosi rutere n scopul segmentrii domeniilor de broadcast n aceste situaii? Motivele sunt numeroase: Costul: ruterele sunt n general mai scumpe dect switch-urile, ele fiind dispozitive mai sofisticate, care acioneaz la un nivel superior al stivei OSI; Latena: tocmai din cauza inteligenei superioare switch-urilor, ruterele efectueaz operaii mai costisitoare care afecteaz timpul de tranzit al pachetelor n reea; Limitarea geografic: domeniile de broadcast sunt asociate interfeelor fizice ale unui ruter, i prin urmare este dificil s grupm dispozitive din locaii diferite n aceeai reea, chiar dac acest lucru ar fi dezirabil, de exemplu, n cazul unui departament dispersat n mai multe cldiri. Ultimul punct de mai sus ne ofer justificarea reelelor locale virtuale, care au fost create n primul i n primul rnd pentru a permite decuplarea topologiei fizice a unei reele de cea logic. Aceast msur ar simplifica considerabil procesul de administrare al reelei: s ne imaginm ce se ntmpl dac, n exemplul de mai sus, jumtate dintre membrii departamentului de HR sunt mutai la etajul departamentului IT. n ipoteza n care un ruter separ cele dou departamente n reele diferite, ar trebui ca administratorul de reea s mute cablurile corespunztoare prizelor noi ocupate n switch-ul corespunztor departamentului HR. Astfel de operaiuni, care sunt destul de frecvente, irosesc timp i pot genera erori; nu ar fi mai simplu dac am putea modifica apartenena unui

150 | R e e l e l o c a l e d e c a l c u l a t o a r e dispozitiv la o reea printr-o configurare software la nivel de switch? Rspunsul este: da. Acest lucru este posibil cu ajutorul VLAN-urilor. Reelele locale virtuale (Virtual LANs - VLANs) sunt domenii de broadcast definite n software, la nivel de switch, i cuprind dispozitive care fac parte din acelai segment logic de reea, fr niciun fel de limitare geografic. Un VLAN poate include echipamente situate oriunde n cadrul reelei, att timp ct exist conectivitate ntre ele. Orice dispozitiv conectat la un VLAN primete cadrele de broadcast trimise de ceilali membri ai VLAN-ului; evident, echipamentele dintr-un alt VLAN nu vor recepiona astfel de pachete.

5.1.2 Tipuri de VLAN-uri


n momentul n care un utilizator se conecteaz la reea prin intermediul unui switch de acces, respectivul echipament trebuie s decid din ce VLAN face parte utilizatorul. n funcie de modul lor de definire, VLAN-urile se mpart n dou categorii: statice i dinamice. n cazul VLAN-urilor statice, apartenena unui utilizator la un VLAN depinde de interfaa fizic a switch-ului la care acesta este legat. Natura lor static se refer la asocierea porturilor switch-ului cu VLAN-urile existente, care este efectuat manual de ctre administratorul de reea. VLAN-urile dinamice utilizeaz un alt criteriu de apartenen, i anume adresa MAC a dispozitivului utilizatorului final. La conectarea unui echipament pe o interfa, switch-ul interogheaz o baz de date pentru a afla VLAN-ul n care s plaseze echipamentul. Aceast baz de date conine mapri ntre adresele MAC ale dispozitivelor din reea i VLAN-ul asociat lor, i trebuie gestionat manual de ctre un administrator de reea. Majoritatea reelelor din ziua de astzi implementeaz VLAN-uri statice, deoarece sunt mai uor de configurat i de monitorizat. De asemenea, nivelul lor de performan este superior VLAN-urilor dinamice, pentru c toate operaiunile se efectueaz n hardware de ctre circuite integrate ale switch-ului, cererile ctre o baz de date extern fiind destul de costisitoare. VLAN-urile dinamice au totui un avantaj major flexibilitatea, utilizatorii putnd s-i mute dispozitivele dintr-un port n altul, sau chiar dintr-o locaie ntr-alta, fr a pierde apartenena la un VLAN i fr a fi nevoie de configurri suplimentare.

5.1.3 Tipuri de legturi i identificarea cadrelor dintr-un VLAN n reea


Legturi acces i legturi trunchi
Existena VLAN-urilor ntr-o reea este transparent pentru echipamentele utilizatorilor finali; de regul, acestea sunt conectate n porturi ale switch-urilor care ofer acces la un singur VLAN. Echipamentele ataate se comport ca i cum ar fi conectate la un segment fizic oarecare al reelei, lsnd n seama dispozitivelor specializate (switch-uri, rutere) implementarea caracteristicilor de trafic specifice VLAN-urilor. Aceste tipuri de legturi care transport trafic pentru un singur VLAN poart numele de legturi acces. n cazul legturilor dintre dou switch-uri, ns, sau dintre un switch i un ruter, poate fi necesar ca pachete din VLAN-uri diferite s fie multiplexate peste aceeai interfa fizic. O asemenea legtur, care transport trafic pentru mai multe VLAN-uri printr-un singur port al unui switch, este denumit legtur trunchi. Legturile trunchi nu sunt asociate unui anumit VLAN, ele putnd transmite cadre din unul, mai multe sau chiar toate VLAN-urile. n Fig. 5-2 putem observa dou switch-uri, Sw1 i Sw2, conectate printr-o legtur de tip trunchi; cte trei calculatoare din VLAN-uri diferite (1, 2, 3) sunt legate de fiecare switch. Pentru a putea oferi conectivitate end-to-end, legtura trunchi dintre Sw1 i Sw2 trebuie s transporte trafic din toate cele trei VLAN-uri. Este posibil ca ntre cele dou switch-uri s folosim i trei legturi fizice dedicate, fiecare transportnd trafic dintr-un singur VLAN i funcionnd ca o legtur acces. Aceast soluie presupune ns costuri suplimentare i nu este scalabil dac n loc de trei VLAN-uri avem douzeci, este foarte probabil s rmnem fr porturi disponibile n switch-uri.

O p t i m i z a r e a r e e l e l o r l o c a l e | 151

Hub9
VLAN 1 VLANs 1, 2, 3

Hub9
VLAN 1

Sw1
VLAN 2

Legtura trunchi (

Sw2
VLAN 2

VLAN 3 (

,VLAN 3

Protocoale pentru etichetarea cadrelor n VLAN-uri

5-2 Multiplexarea VLAN-urilor pe o legtur trunchi 1 2

Dac traficul dintr-un VLAN ar fi limitat la nivelul switch-ului de acces, transmiterea cadrelor ctre destinaiile corecte nu ar reprezenta o problem: fiecare port poate fi asociat unui VLAN, iar un cadru primit din VLAN-ul X este trimis pe toate porturile switch-ului care fac parte din VLAN-ul X. Odat cu introducerea legturilor trunchi apare ns problema identificrii VLAN-ului din care face parte un cadru prin examinarea datelor din antetul su. n exemplul de mai sus, Sw2 nu poate determina apartenena unui cadru primit pe legtur trunchi cu Sw1 la un anumit VLAN numai pe baza portului de intrare. Dup cum menionam mai devreme, tehnologia VLAN a fost la nceput o iniiativ a productorilor de echipamente de reea. Avnd n vedere c nu exista nc un standard oficial, fiecare dintre acetia au propus diverse mecanisme de identificare a VLAN-ului unui cadru, printre care: identificarea dup portul de intrare, identificarea dup adresa MAC surs, identificarea dup adresa IP. Din varii motive, aceste mecanisme s-au dovedit insuficiente din punct de vedere tehnic: identificarea dup portul de intrare nu funcioneaz n cazul legturilor de tip trunchi, asocierea ntre adresele MAC surs i VLAN-uri implic un overhead administrativ considerabil pentru pstrarea corespondenelor actualizate, inspectarea adresei IP a unui cadru ncalc principiul de separare a funcionalitilor ntre nivelurile OSI etc. n cele din urm, s-a ajuns la concluzia c este necesar adugarea unor cmpuri n cadrele Ethernet pentru pstrarea informaiei despre VLAN-uri. Majoritatea productorilor au venit cu specificaii proprietare pentru marcarea (tagging) cadrelor; de exemplu, Cisco a dezvoltat Inter-Switch Link (ISL) ca protocol care s propage informaia despre VLAN-uri pe legturile trunchi ntre dou switch-uri, sau ntre un switch i un ruter. ISL ncapsuleaz cadrele Ethernet, adugnd fiecruia un header i un trailer. n Fig. 5-3 putei examina formatul unui cadru ISL.

ISL Header 26 bytes

Encapslated Ethernet Frame

CRC 4bytes

DA Type User SA LEN AAAA03 HSA VLAN BPDU INDEX RES 5-3 Formatul cadrului ISL

152 | R e e l e l o c a l e d e c a l c u l a t o a r e Cea mai important informaie o reprezint cmpul VLAN, care stocheaz numrul VLAN-ului asociat cadrului. O consecin fireasc a direciilor diferite urmate de productori n implementarea VLAN-urilor a fost problema interoperabilitii echipamentelor: protocoale proprietare, precum Cisco ISL, puteau fi rulate numai pe dispozitivele furnizorului, iar interconectarea unor segmente de reea cu echipamente de la productori diferii putea fi problematic. n cele din urm, funcionarea VLAN-urilor n cadrul unei reele Ethernet a fost reglementat de ctre IEEE prin standardul 802.1q, publicat n 1998. IEEE a ales s modifice antetul Ethernet, adugnd un tag de 4 octei situat ntre cmpurile de adres surs i cel de tip/lungime. Modificarea este ilustrat n Fig. 5-4. 4 Bytes Destination Address Source Address 802.1Q VLAN Tag Type/Len Data Frame Check

2 Bytes

2 Bytes (Tag Control Information)

Tag User Canonical VLAN ID Protocol Priority Format (12 Bits) ID 0x8100 (3 Bits) Indicator (1 Bit) 5-4 Formatul cadrului Ethernet, cu tag-ul 802.1q Tag-ul nou introdus este format din: Tag Protocol Identifier (TPID) un cmp de 16 bii care conine valoarea 0x8100 pentru identificarea cadrului ca fiind de tip 802.1q. Avnd n vedere c acest numr este mai mare ca 1500, va fi interpretat ca tip de ctre plcile de reea Ethernet. Priority Code Point (PCP) un cmp de 3 bii care face referire la prioritate, aa cum este ea definit n IEEE 802.1p. Valorile de la 0 (best effort, prioritate minim) la 7 (prioritate maxim) pot fi folosite n implementri de QoS pentru diferenierea claselor de trafic (voce, video, date etc.). Drop Eligible (DE) un cmp de 1 bit, folosit n conjuncie cu PCP pentru a semnala c pachetul poate fi blocat n condiii de congestie a reelei. VLAN Identifier (VID) un cmp de 12 bii care conine numrul VLAN-ului asociat cadrului. Valorile 0x0000 i 0xFFFF sunt rezervate, deci n total avem 4094 de VLAN-uri disponibile. VLAN-ul 1 (care este valoarea implicit) este adesea folosit drept VLAN de management, aceasta fiind ns o convenie care poate varia de la productor la productor. Modificarea antetului Ethernet a adus i cteva probleme de compatibilitate cu dispozitivele legacy de exemplu, lungimea maxim pentru un cadru Ethernet specificat n standardul IEEE 802.3 este de 1518 octei, ns odat cu adugarea noului tag se poate ajunge la cadre de 1522 octei, care depesc limita admis. Pentru rezolvarea acestei anomalii, comitetul 802.3 a creat subgrupul 802.3ac, nsrcinat cu extinderea lungimii maxime a unui cadru Ethernet la 1522 de octei. Dispozitivele de reea vechi, care nu neleg standardul 802.3ac, pot respinge acest tip de cadre, denumite baby giant, sau le pot procesa cu mesaje de avertizare. Tot din motive de compatibilitate, reelele locale au fost mprite n segmente VLAN-aware, care implementeaz IEEE 802.1q i includ tag-uri VLAN n pachete, respectiv segmente VLANunaware, care implementeaz numai IEEE 802.1D i nu includ tag-uri VLAN n pachete. Cnd un cadru ajunge ntr-un segment de reea care este VLAN-aware, i se adaug un tag, de regul pe baza VLAN-ului asociat portului de intrare. n practic, staiile utilizatorilor genereaz cadre neetichetate,

O p t i m i z a r e a r e e l e l o r l o c a l e | 153 tag-ul cu VLAN-ul fiind adugat de ctre primul switch VLAN-aware din reea n reelele moderne, acesta este chiar switch-ul de acces la care este conectat staia. Intenia care stat la baza crerii IEEE 802.1q a fost ca fiecare cadru transportat pe o legtur fizic de tip trunchi s aib asociat un VLAN tag. Ethernet-ul fiind totui un mediu multiacces, nu putea fi ignorat ipoteza existenei unor gazde ntre capetele trunchiului care s nu fie n stare s proceseze cadre tag-ate, de aceea standardul prevede i posibilitatea trimiterii de trafic neetichetat pe legturi trunchi. Asemenea cadre neetichetate trebuie asociate cu un VLAN de ctre switch-ul care le primete, astfel nct unii productori de echipamente, cel mai notabil fiind Cisco, au introdus conceptul de VLAN nativ. VLAN-ul nativ este utilizat pentru tot traficul neetichetat care traverseaz o legtur trunchi de tip 802.1q. Switch-urile Cisco utilizeaz VLAN-ul nativ pentru transportul cadrelor ce aparin protocoalelor de management de nivel 2 (CDP Cisco Discovery Protocol, DTP Dynamic Trunking Protocol, LACP Link Aggregation Control Protocol). Implicit, VLAN-ul nativ al unui trunchi este VLAN-ul 1, ns, pentru a adresa vulnerabiliti de securitate care permit atacuri de tip VLAN hopping, acesta poate fi modificat de administratorul de reea. Mai mult dect att, switch-urile Cisco pot fi configurate astfel nct chiar i traficul din VLAN-ul nativ s fie etichetat cu un VLAN ID. Una dintre restriciile n configurarea unei legturi trunchi pe dispozitive Cisco este c VLAN-urile native trebuie s fie identice pentru cele dou capete ale legturii. Relund una dintre topologiile anterioare n Fig. 5-5, observm ase staii din trei VLAN-uri diferite, cele dou switch-uri de acces fiind conectate printr-o legtur de tip trunchi cu VLAN nativ 1. Vom examina formatul cadrelor schimbate ntre A1 i B1, respectiv A2 i B2, pe toate segmentele reelei.
Hub9
A1 - VLAN 1 VLANs 1, 2, 3

Hub9
B1 - VLAN 1

Sw1
A2 - VLAN 2

( (

Legtura trunchi VLAN nativ 1 (

Sw2
B2 - VLAN 2

A3 - VLAN 3

B3 - VLAN 3

5-5 Marcarea cadrelor la transmiterea pe o legtur trunchi A1 i B1 sunt situate n VLAN-ul nativ al trunchiului, 1 etichetate ntre Sw1 i Sw2: A1 Sw1: MAC Dst MAC Src Lungime/Tip MAC B1 MAC A1 0x0800 Sw1 Sw2: MAC Dst MAC Src Lungime/Tip MAC B1 MAC A1 0x0800 Sw2 B1: MAC Dst MAC Src Lungime/Tip MAC B1 MAC A1 0x0800 deci cadrele transmise de ele nu vor fi 2 Date X Date X Date X CRC X CRC X CRC X

154 | R e e l e l o c a l e d e c a l c u l a t o a r e A2 i B2 se afl n VLAN-ul 2, deci traficul generat de ele va fi etichetat cu un tag 802.1q peste trunchi: A2Sw1: MAC Dst MAC Src Lungime/Tip Date CRC MAC B2 MAC A2 0x0800 X X Sw1Sw2: MAC Dst MAC B2

MAC Src MAC A1

802.1q TAG TPID PCP DE VLAN ID 0x8100 x x 2

Date CRC X X

Sw2 B2: MAC Dst MAC B2

MAC Src MAC A2

Lungime/Tip 0x0800

Date X

CRC X

5.1.4 Tipuri de VLAN-uri i distribuirea lor n reea


Dup cum vom vedea n seciunea 5.4 Utilitare, configurarea VLAN-urilor statice, a legturilor de acces i a legturilor trunchi pe un switch este un proces destul de intuitiv i uor de efectuat n reele de dimensiuni mici i medii. n reelele corporate sau ale ISP-urilor, ns, existena a zeci, poate sute de switch-uri interconectate complic semnificativ procesul de administrare al VLAN-urilor. Imaginai-v cum ar fi dac, la configurarea unui nou VLAN al unui client, un operator telecom ar trebui s definesc manual VLAN-ul respectiv pe toate echipamentele din reea! Productorii de switch-uri au rezolvat aceast problem prin dezvoltarea unor protocoale care s trateze distribuirea automat a VLAN-urilor n cadrul reelei; cel mai cunoscut dintre acestea este VLAN Trunking Protocol (VTP), introdus de ctre Cisco. VTP ofer posibilitatea adugrii, tergerii i redenumirii VLAN-urilor din toat reeaua dintr-un punct central de administrare. Fig. 5-6 ilustreaz procesul de propagare a unui VLAN de pe switch-ul pe care a fost definit pe toate switch-urile din reea. Un switch care particip n procesul VTP cunoate i poate utiliza toate VLAN-urile administrate de ctre VTP. VTP trimite cadre speciale pe legturi de tip trunchi ntre switch-uri; el este organizat n domenii de administrare (management domains) cu caracteristici comune. Un switch poate aparine unui singur domeniu de administrare i n cadrul domeniului respectiv poate schimba informaii referitoare la VLAN-uri cu toi vecinii si.
Sw2 Sw3 Hub9

Definire VLAN 7
Sw5 b9 Sw VLAN1 7 Sw7
SRV2

VLAN 7

VLAN 7 Sw1

IP

VLAN 7 VLAN 7 2

Sw4

VLAN 7
Fa 0/0

VLAN 7 Sw8
IP

Sw6

5-6 Distribuirea automat a VLAN-urilor n reea Alternativa propus de IEEE n vederea standardizrii distribuiei automate a VLAN-urilor ntr-o 192.168.0 reea este Multiple VLAN Registration Protocol (MVRP), care a aprut n amendamentul 802.1ak la Fa 0/0 standardul 802.1Q-2005. MVRP face parte dintr-un framework mai general al IEEE, Multiple 1
Cl

O p t i m i z a r e a r e e l e l o r l o c a l e | 155 Registration Protocol (MRP), care permite dispozitivelor de reea setarea i modificarea valorilor pentru diverse atribute ntr-o infrastructur comun, cum ar fi identificatorii de VLAN-uri sau grupurile de multicast. La fel ca i VTP-ul, MVRP permite switch-urilor s partajeze automat informaii referitoare la VLAN-uri, ajutnd la meninerea consistenei configuraiei acestora n reea n mod dinamic, pe baza setrilor introduse de administratorul de reea.

5.1.5 Rutarea ntre reele locale virtuale


Dac design-ul unei reele locale include VLAN-uri, dispozitivele dintr-un VLAN trebuie s se gseasc n aceeai subreea. Din consideraii similare, dispozitive din VLAN-uri diferite trebuie s fie plasate n subreele diferite; aceast coresponden ntre un concept de nivel 2, VLAN-urile, i unul de nivel 3, subreelele, este necesar pentru a realiza izolarea astfel nct pachetele dintr-un VLAN s nu ajung ntr-un altul. Pentru transmiterea pachetelor ntre VLAN-uri este nevoie de un echipament de nivel 3; n mod tradiional, aceast funcie revine unui ruter. Ruter-ul trebuie s aib o conexiune fizic sau logic cu fiecare VLAN pentru a putea direciona pachete ntre ele. Acest proces poart numele de interVLAN routing. VLAN 100 VLAN 200
Sw1 R1

VLAN 300

VLANs 100, 200, 300


Sw2

Trunk

R2

5-7 Rutare inter-VLAN: interfee dedicate vs. router-on-a-stick Cea mai frecvent situaie este cea n care un ruter extern este conectat la toate VLAN-urile definite pe un switch. Exist dou opiuni de implementare, una care presupune existena unor legturi fizice separate pentru fiecare VLAN (link-urile fiind n acest caz de tip acces), sau o legtur de tip trunchi pe care sunt multiplexate mai multe VLAN-uri. n Fig. 5-7 avei ilustrate cele dou variante pentru realizarea rutrii ntre VLAN-urile 100, 200 i 300. Ca i n cazul legturilor trunchi ntre dou switch-uri, opiunea doi din figur este mai convenabil din punctul de vedere al costului, deoarece necesit o singur interfa fizic. Acest tip de configuraie poart numele de router-on-a-stick, sau one-armed-router, i implic mprirea interfeei fizice n subinterfee, fiecare dintre acestea avnd asociat o adres IP din VLAN-ul din care face parte. Avantajul folosirii unui echipament extern de tip router-on-a-stick este flexibilitatea, rolul su putnd fi ndeplinit att de un dispozitiv hardware dedicat, cum ar fi un ruter Cisco sau Juniper, dar i de o main Linux configurat corespunztor. Totui, procesul de transmitere a pachetului de la switch ctre router i napoi ctre switch este destul de ineficient, iar n reelele corporative de astzi se utilizeaz un dispozitiv cunoscut ca switch de nivel 3, care combin cele dou funcii: comutarea pachetelor la nivel 2 i rutare la nivel 3 a reelelor direct conectate (VLAN-uri).

156 | R e e l e l o c a l e d e c a l c u l a t o a r e

5.2 Agregarea legturilor de nivel 2


5.2.1 Considerente generale
Odat cu progresele tehnice nregistrate de tehnologia Ethernet, limea de band disponibil utilizatorilor prin intermediul porturilor de acces ale switch-urilor crete dramatic, viteze de 100Mbps devenind ceva obinuit. Pe msur ce reelele locale devin din ce n ce mai mari, cuprinznd mai multe echipamente, iar aplicaiile folosite de ctre utilizatori necesit din ce n ce mai mult lime de band, traficul agregat al reelei crete. Drept urmare, n cele mai multe cazuri, performana unei reele locale este direct corelat cu funcionarea adecvat a porturilor de uplink, care fac legtura ntre segmentele terminale ale reelei i centrul acesteia. Cele mai importante dou aspecte care afecteaz funcionarea legturilor de uplink sunt limea de band i disponibilitatea este evident c douzeci de calculatoare cu plci de reea funcionnd la 100Mbps conectate la un switch care are un singur port de uplink, de 1Gbps, nu vor putea transmite date simultan la vitez maxim; mai mult dect att, n situaia regretabil n care legtura de uplink ar pica, toate calculatoarele ar pierde accesul n afara segmentului de reea local. 2 2 8 A B
w
3

3
Sw3

23 4 4
Sw2

Hub9

4 4

3
Sw7

5-8 Exemplu de topologie pentru agregarea legturilor de nivel 2 1 2 Pentru a adresa aceste probleme, o practic comun o reprezint utilizarea mai multor legturi de uplink ntre switch-uri; un exemplu ar fi chiar cele dou link-uri, pe porturile 3 i 4, ntre Sw3 i Sw2 din fragmentul de topologie de mai jos, n Fig. 5-8. La prima vedere, problemele de lime de band i disponibilitate par rezolvate: avem acum dou legturi, deci lime de band dubl i redundan n cazul n care una dintre ele cade. Din pcate, aceste legturi redundante introduc i posibilitatea unei bucle, care, dup cum am vzut, va fi tratat de STP prin nchiderea unuia dintre cele patru porturi. Dup aceast operaiune, limea de band efectiv ntre cele dou switch-uri este cea a unei singure legturi. Ct despre redundan, aceasta este ntr-adevr asigurat de STP, ns trebuie subliniat faptul c activarea legturii de backup nu este instantanee, ntrzierea fiind generat de timpul de convergen al STP-ului. Discuia se complic dac lum n calcul situaia n care cele dou legturi redundante transport trafic din mai multe VLAN-uri. Dup cum vom vedea n studiul de caz de la sfritul capitolului consacrat MSTP-ului, exist posibilitatea configurrii echipamentelor astfel nct traficul din unele VLAN-uri s fie transportat pe un link, traficul din celelalte pe cel de-al doilea link, i s pstrm totodat opiunea de failover oferit de STP. Aceast rezolvare nu este total adecvat, ea transfernd practic problemele indicate mai sus la nivel de VLAN; soluia optim const n agregarea legturilor. Agregarea legturilor (link aggregation) reprezint gruparea mai multor conexiuni fizice de reea paralele ntr-o singur conexiune logic, cu scopul de a mri limea de band i de a crete disponibilitatea. Aceast tehnologie a aprut la mijlocul anilor 90 sub forma unor implementri proprietare ale productorilor de switch-uri i a fost reglementat de IEEE n cadrul standardului 802.3ad din 2000,

O p t i m i z a r e a r e e l e l o r l o c a l e | 157 care s-a transformat ulterior n 2008 n standardul 802.1AX. Ea poate purta diverse nume, n funcie de productor, precum port trunking, link bundling, network bonding, Etherchannel, NIC teaming etc. Conform standardului 802.1AX-2008, principalele obiective ale procesului de agregare a legturilor sunt urmtoarele: Posibilitatea creterii liniare a limii de band prin combinarea capacitii mai multor legturi fizice ntr-una logic, limea de band poate fi mrit liniar, i nu n ordine de magnitudine, cum se ntmpl n cazul upgrade-urilor de nivel fizic (10Mbps, 100 Mbps, 1 Gbps etc.) Disponibilitate sporit - funcionarea defectuoas a unei singure legturi fizice dintr-un grup agregat nu afecteaz protocoalele de nivel inferior, care vd grupul ca pe o singur interfa logic disponibil n continuare. Load sharing traficul ce urmeaz s traverseze legtura agregat poate fi distribuit peste mai multe legturi fizice. Configurare automat dac nu exist configurri manuale n acest sens, legturile agregate sunt configurate automat, interfeele fizice fiind alocate grupurilor agregate. Dac un set de legturi fizice pot fi agregate, ele vor fi agregate. Timp de convergen rapid n cazul modificrilor la nivelul fizic al topologiei (link-uri defecte, interfee adugate etc.), legturile agregate vor converge la o nou configuraie, de obicei n mai puin de o secund. Evitarea duplicrii cadrelor sau a trimiterii lor n alt ordine att n timpul funcionrii normale ct i n perioadele de convergen, cadrele nu trebuie s fie duplicate sau trimise n ordine invers ctre destinaie. Standardul prevede i cteva restricii pentru interfeele care pot fi grupate ntr-o legtur agregat; cea mai important dintre ele este necesitatea ca toate interfeele fizice s funcioneze la aceeai vitez. Totui, 802.1AX-2008 nu impune ca porturile dintr-o legtur agregat s foloseasc aceeai tehnologie de nivel 1, astfel nct o interfa pe fibr optic cu viteza de 1Gbps poate fi grupat cu o interfa pe cupru care opereaz la aceeai vitez. Este important de punctat faptul c o legtur agregat este vzut de ctre switch-uri i majoritatea protocoalelor de nivel 2 drept o entitate logic similar unei interfee fizice: de exemplu, STP-ul o consider n calculele sale drept o singur interfa, cu un cost specific. Un avantaj implicit al legturilor agregate l reprezint i protecia pe care o ofer mpotriva buclelor i a broadcast-storm-urilor: cadrele avnd ca destinaie adrese de broadcast sau multicast sunt trimise numai pe una dintre interfeele fizice dintr-o legtur agregat, anume cea aleas de algoritmul de distribuie discutat n seciunea urmtoare.

5.2.2 Distribuia traficului pe legturi agregate


Algoritmul de distribuire a cadrelor pe interfeele fizice care alctuiesc o legtur agregat trebuie s in seama de dou considerente: pe de o parte, pentru a evita sosirea pachetelor n dezordine la destinaie, se dorete ca cele care fac parte din aceeai sesiune s fie trimise pe aceeai legtur fizic; pe de alt parte, se vrea ca traficul s fie distribuit uniform pe legturile fizice din aceeai legtur agregat, pentru a atinge un randament optim de load-sharing. Cele mai comune implementri de legturi agregate folosesc algoritmi de hashing la nivelurile 2, 3 i 4 din stiva OSI, care pot distribui pachetele pe baza unor combinaii de adres MAC surs sau destinaie, adres IP surs sau destinaie, port TCP/UDP surs sau destinaie. S examinm un exemplu tipic de distribuire a cadrelor pe porturile dintr-o legtur agregat considernd topologia de mai sus, din Fig. 5-9. Presupunem c algoritmul de hashing efectueaz o simpl operaiune XOR ntre adresele IP surs i destinaie ale unui pachet. n cazul de fa, avem patru interfee care alctuiesc legtura agregat, astfel nct vom avea nevoie de un XOR pe ultimii doi bii ai adreselor IP pentru multiplexare rezultatele vor fi, prin urmare: pentru traficul de la calculatorul Client la SRV1: 10 XOR 00 = 10, deci link-ul ales pentru trimiterea cadrelor va fi Fa 0/2;

158 | R e e l e l o c a l e d e c a l c u l a t o a r e pentru traficul de la calculatorul Client la SRV2: 10 XOR 10 = 00, deci link-ul ales pentru trimiterea cadrelor va fi Fa 0/0.
it

Fa 0/0 0/3
Sw1 Client 192.168.0.10 Sw2

Hub9 SRV1 192.168.0.128

IP

Legtur agregat

H w SRV2 192.168.0.130

5-9 Distribuirea cadrelor pe legturi agregate Dei profilul de distribuie optim a traficului pe o legtur agregat format din dou interfee 4 fizice este 50/50, n implementrile reale acesta se situeaz de obicei ntre 70/30 i 60/40. Pe msur ce includem n algoritmul de hashing valori din nivelurile superioare ale stivei OSI (numere de port 1 TCP/UDP), profilul de distribuie se mbuntete, apropiindu-se de optim.

5.2.3 Protocoale de negociere a legturilor agregate


O legtur agregat poate fi configurat n dou moduri: static sau dinamic, printr-un protocol de negociere. O configurare static specific pur i simplu ce porturi de pe un switch vor fi grupate n 192.168.0.Fa aceeai legtur agregat. Modul n care o legtur este configurat nu i schimb principiile de 0/1 operare expuse n seciunile precedente, ns configurarea dinamic prin intermediul protocoalelor maximum 2 de negociere posed cteva avantaje: MACs Monitorizare i failover pentru legturile ce conin un dumb device n cazul unei interfee fizice care nu permite detectarea defeciunilor, din cauza existenei unor dispozitive intermediare (de exemplu un Media Converter), o legtur agregat configurat manual nu va trata aceste excepii i va continua s trimit trafic pe link-ul IPIPIPI defect. Legturile configurate dinamic prin protocoale de negociere opresc trimiterea traficului pe interfee care nu funcioneaz. Detectarea erorilor de configurare erorile de cablare sau configurrile greite sunt IPIPIPI ignorate n cazul legturilor agregate statice, care nu efectueaz nicio verificare prealabil. Protocoalele de negociere pot determina eventualele erori, mpiedicnd A1 Fa 0/1 formarea legturii agregate. Porturi de tip hot-standby (doar n cazul LACP) ofer posibilitatea de a plasa interfee de backup ntr-o legtur agregat, care s fie utilizate doar n cazul n care un port activ se defecteaz. IPIPIPI

Link Aggregation Control Protocol


n cadrul standardului 802.1ax-2008, IEEE definete Link Aggregation Control Protocol (LACP) ca IPIPIPI protocol de negociere i configurare automat a legturilor agregate dintre dispozitive. LACP trimite pachete ntre switch-uri pe porturile selectate pentru configurarea dinamic a legturii agregate; X Fa 0/1 primul pas const n identificarea vecinilor, urmat de compararea capabilitilor porturilor i a indicelui legturii agregate dorite. Pentru gestionarea automat a unei legturi agregate, LACP definete roluri pe care le asociaz capetelor legturii.
IPIPIPI

IPIPIPI

Fa 0/1

O p t i m i z a r e a r e e l e l o r l o c a l e | 159 LACP poate fi configurat n modul active, n care switch-ul iniiaz procesul de negociere cu dispozitivul de la cellalt capt, sau n modul passive, n care switch-ul rspunde la procesul de negociere numai dac dispozitivul de la cellalt capt l iniiaz. Switch-ul cu cea mai mic prioritate de sistem (system priority format dintr-o valoare de prioritate pe 2 octei i adresa MAC a switch-ului pe 6 octei) este desemnat pentru a lua decizii privind porturile care sunt active ntr-o legtur agregat la un moment dat. n mod similar are loc selectarea i activarea porturilor, pe baza prioritii de port (port priority format dintr-o valoare de prioritate pe 2 octei i numrul de port pe 2 octei). Acest proces este legat de limita de 16 interfee care pot participa ntr-o legtur agregat LACP, dintre care numai 8 pot fi simultan active. LACP activeaz porturile cu prioriti mai mici, plasndu-le pe celelalte n starea de hot-standby, gata s fie utilizate n cazul n care un port activ se defecteaz.

Port Aggregation Control Protocol


Cea mai cunoscut alternativ la LACP este protocolul proprietar Cisco, Port Aggregation Protocol (PAgP). La fel ca i LACP-ul, acesta identific iniial vecinii i capabilitile porturilor, comparndu-le cu setrile locale. PAgP formeaz o legtur agregat (EtherChannel, n terminologia Cisco) numai dac interfeele sunt configurate la ambele capete ca trunk-uri sau au definite aceleai VLAN-uri statice. n plus, PAgP adapteaz n timp real parametrii unui EtherChannel dac configuraia unui port membru se schimb de exemplu, dac VLAN-ul asociat, viteza sau modul de operare duplex al unei interfee este modificat, PAgp reconfigureaz acel parametru pentru toate interfeele din EtherChannel. PAgP poate fi configurat n modul desirable, n care switch-ul solicit n mod activ vecinilor negocierea unei legturi agregate, sau n modul auto, care este i cel implicit, n care switch-ul negociaz o legtur agregat numai la cererea unui vecin.

5.3 Securizarea reelelor locale


Stiva OSI a fost conceput astfel nct diferitele niveluri s funcioneze independent unele de altele; din pcate, acest principiu face ca n cazul n care un atacator compromite comunicaia la un anumit nivel, celelalte s nu detecteze acest lucru. Se tie c nivelul de securitate al unui sistem este determinat de cea mai slab verig a acestuia iar n networking de multe ori nivelul 2 este o verig foarte slab. Dac, de exemplu, compromiterea unei conexiuni HTTPS este foarte greu de realizat, interceptarea traficului ntr-o reea local prost configurat poate fi trivial de efectuat. n cele ce urmeaz, vom analiza cele mai comune tipuri de atacuri la nivelul 2 al stivei OSI, accentul cznd pe msurile de securitate ce pot fi implementate pe switch-uri pentru prevenirea lor.

5.3.1 Limitarea numrului de adrese MAC


Unul dintre primele atacuri intind echipamentele de nivel 2 al stivei OSI a fost CAM table overflow. Tabelele CAM n care switch-urile stocheaz adrese MAC sunt limitate ca mrime, iar dac suficiente noi intrri sunt introduse nainte ca cele vechi s expire, tabelele se umplu i nu mai accept alte adrese MAC. Acesta este i modul de operare tipic al unui atacator, care flood-eaz switch-ul cu un numr imens de adrese MAC invalide, astfel nct tabela sa CAM s devin plin. Cnd acest lucru se petrece, switch-ul va trimite traficul primit pe toate porturile, deoarece nu poate gsi portul asociat unei adrese MAC valide n tabela CAM; n esen, se comport ca un hub. Atacurile de acest tip provoac flood-area traficului numai n cadrul VLAN-ului local, astfel nct atacatorul poate intercepta trafic numai din VLAN-ul n care este conectat. Un alt atac nrudit este MAC address spoofing, care presupune utilizarea unei adrese MAC cunoscute a unei staii din reea pentru a convinge un switch s trimit traficul destinat acelei staii ctre atacator. n acest caz, tabela CAM a switch-ului este corupt prin generarea de pachete cu adresa MAC surs a staiei int de ctre maina atacatorului.

160 | R e e l e l o c a l e d e c a l c u l a t o a r e Nu n ultimul rnd, n reelele care distribuie adrese IP staiilor prin intermediul DHCP sunt posibile atacurile de tip DHCP starvation. Un asemenea atac este efectuat prin generarea de pachete broadcast, de tip DHCP Request, cu adrese MAC invalide (spoofed). Dac sunt trimise suficiente cereri, atacatorul poate epuiza spaiul de adrese definit pe server-ele de DHCP pentru o perioad semnificativ de timp, mpiedicnd alocarea de adrese IP clienilor legitimi, care nu mai pot accesa reeaua. Aceast operaiune este frecvent asociat cu plasarea unui server de DHCP pirat (rogue) n reea, aflat sub controlul atacatorului vom analiza aceast posibilitate n seciunea urmtoare. Majoritatea productorilor de switch-uri ofer posibilitatea identificrii i a limitrii adreselor MAC permise pe un anumit port; denumirea care s-a impus n acest sens este cea de port security, introdus de ctre Cisco, ns alte companii folosesc termeni precum MAC limiting (Juniper). CAM Table: MAC X SMAC: A1 Fa 0/1 Atacator
b9
IPIPIPI IPIPIPI IPIPIPI IPIPIPI SMAC:

X Fa 0/1 A1 Fa 0/1
IPIPIPI

Hub9 Sw2 2 H

Sw1 IPIPIPI

A2
.Fa

IPIPIPI IPIPIPI

IPIPIPI IPIPIPI IPIPIPI

0/1 IPIPIPI Sw 2 MACs maximum


IPIPIPI

IPIPIPI 5-10 mpiedicareaA1 atac de tip CAM table overflow prin port security SMAC: unui IPIPIPI

SRV2 Port security funcioneaz prin asocierea unui set de adrese MAC valide unui anumit port din IPIPIPI switch. Portul respectiv nu comut pachete cu adrese MAC surs din afara setului definit, iar dac IPIPIPI detecteaz un cadruIPIPIPI cu adres MAC invalid poate fie doar s blocheze staia cu respectiva adres, SMAC: A2 IPIPIPI fie s nchid administrativ legtura pe care a fost primit cadrul. 192.168.0 Setul de adrese valide poate fi definit manual pentru fiecare port, dar n topologii extinse aceast 1 procedur poate deveni un comar administrativ. O soluie mai adecvat o reprezint opiunea de IPIPIPI dynamic port security,IPIPIPI care administratorul de reea configureaz un numr maxim de adrese prin Cl MAC pe un anumit port, adrese care sunt nvate automat de ctre switch. n Fig. 5-10, observm rezultatul unui atac de tip CAM table overflow n condiiile n care switchul int (Sw1) are configurat o limitare de maxim 2 adrese MAC pe portul de acces Fa 0/1. Tabela IPIPIPI CAM a lui Sw1 conine deja asocierea MAC X Fa 0/1, i va aduga n plus primul MAC spoof-at n cadrul atacului, cel cu adresa surs A1. Al doilea pachet ns, cel cu adresa MAC surs A2, va fi respins, deoarece pe interfaa Fa 0/1 s-a atins numrul maxim de adrese permis prin port security.

5.3.2 DHCP snooping


n seciunea precedent, am vzut cum limitarea adreselor MAC la nivelul unui port mpiedic atacurile simple de tip DHCP starvation n varianta prezentat, fiecare DHCP Request avea asociat un MAC unic spoof-at, setat ca adres surs n cadrul Ethernet generat. Din pcate, exist i o variant mai sofisticat a atacului, care nu poate fi prevenit prin port security i care se bazeaz pe manipularea unui cmp specific al pachetului DHCP. Aceast variant evoluat a atacului folosete o singur adres MAC surs, modificnd n schimb valoarea cmpului Client Hardware Address (CHADDR) din DHCP Request (vezi Fig. 5-11). Acest cmp are rolul de a identifica clientul de DHCP pentru ca rspunsurile server-ului s ajung napoi la destinaia corect; dac clientul i server-ul de DHCP se afl n aceeai reea, valoarea lui coincide cu adresa MAC surs, reprezentnd o informaie redundant, ns n cazul configuraiilor de tip DHCP Relay Agent, CHADDR este indispensabil n transmiterea pachetelor DHCP ctre clieni. Pentru prevenirea acestei variante de DHCP starvation, avem nevoie de un mecanism mai avansat de protecie.

O p t i m i z a r e a r e e l e l o r l o c a l e | 161 De asemenea, funcionarea server-elor de DHCP rogue nu poate fi mpiedicat prin limitarea MAC-urilor la nivel de port, lucru care i permite atacatorului s furnizeze informaii maliioase gazdelor din reeaua local (adres IP, default gateway, server de DNS etc.), punnd bazele unui atac de tip Man-in-the-Middle prin care va intercepta traficul staiilor int. OP Code Hardware Type Hardware Length HOPS Transaction ID (XID) Seconds Client IP Address (CIADDR) Your IP Address (YIADDR) Server IP Address (SIADDR) Gateway IP Address (GIADDR) Client Hardware Address (CHADDR) 16 bytes Server Name (SNAME) 64 bytes Filename 128 bytes DHCP Options 5-11 Formatul unui pachet HTTP, cu cmpul CHADDR n fine, un alt atac nu foarte cunoscut care exploateaz funcionarea protocolului DHCP este IP address hijacking. n mod normal, cnd un client dorete s renune la adresa alocat lui prin DHCP, trimite un mesaj de tip DHCP Release prin care anun server-ul c poate aduga acea adres IP napoi n pool-ul de adrese disponibile. Un atacator care cunoate o adres IP legitim obinut prin DHCP de ctre o staie poate trimite un pachet DHCP Release server-ului prin care s solicite eliberarea IP-ului respectiv; atacatorul poate ncerca ulterior s obin chiar el acel IP, sau s se mulumeasc cu perturbarea comunicaiei n reea prin aceast form de Denial of Service. Pentru a preveni atacurile descrise mai sus, avem la dispoziie mecanismul de DHCP snooping. DHCP snooping se bazeaz pe conceptul de port-uri trusted (sigure, de ncredere) i port-uri untrusted (nesigure). Port-urile trusted sunt de obicei interfee ale switch-ului conectate la echipamente aflate sub strict control administrativ (uplink-uri ctre alte switch-uri de distribuie sau core, legturi cu servere de DHCP autorizate etc.). Port-urile untrusted sunt ndreptate spre zona de acces, unde dispozitivele utilizatorilor nu pot fi considerate ca fiind sigure. n timpul funcionrii, DHCP snooping construiete o baz de date, denumit omonim DHCP snooping database. Practic, switch-ul inspecteaz pachetele DHCP primite pe port-urile untrusted i populeaz baza de date cu asocieri de tipul port-adres IP-adres MAC-VLAN. De exemplu, dac switch-ul detecteaz un pachet DHCP trimis ctre un client pe interfaa Fa 0/1 cu scopul de a-i aloca IP-ul 192.168.1.5, el va ti de acum nainte c interfaa Fa 0/1 va avea asociat IP-ul 192.168.1.5. Baza de date creat prin procesul de DHCP snooping este foarte important, deoarece joac un rol critic n implementarea altor tehnologii precum dynamic ARP inspection (DAI) i IP source guard. Mai jos putei observa un exemplu de baz de date specific DHCP snooping-ului, pe un switch Juniper:
user@switch> show dhcp snooping binding DHCP Snooping Information: MAC address IP address Lease (seconds) 00:05:85:3A:82:77 00:05:85:3A:82:79 00:05:85:3A:82:80 192.0.2.17 192.0.2.18 192.0.2.19 600 653 720 Type dynamic dynamic dynamic VLAN employee employee employee Interface ge-0/0/1.0 ge-0/0/1.0 ge-0/0/2.0

Flags

Aciunile prin care DHCP snooping-ul mpiedic tipurile de atacuri descrise mai sus sunt urmtoarele:

162 | R e e l e l o c a l e d e c a l c u l a t o a r e Dac un switch primete un pachet DHCP care provine de la un server (DHCPOFFER, DHCPACK, DHCPNAK sau DHCPLEASEQUERY) pe un port untrusted, pachetul este respins. Aceasta previne funcionarea unui server de DHCP rogue n reea pe port-uri untrusted. Dac un switch primete un pachet DHCP pe un port untrusted i adresa din cmpul CHADDR nu coincide cu adresa MAC surs a cadrului, pachetul este respins. Acest comportament se manifest dac opiunea de verificare a adreselor MAC este activat, i previne atacurile de tip DHCP starvation bazate pe exploatarea cmpului CHADDR. Dac un switch primete un pachet de tip DHCPRELEASE sau DHCPDECLINE pe un port untrusted, el va cuta adresa IP ce urmeaz a fi eliberat n DHCP snooping database. Dac exist o intrare asociat IP-ului respectiv, dar interfaa de pe care a fost trimis mesajul de DHCPRELEASE sau DHCPDECLINE nu este cea corespunztoare, switch-ul va respinge pachetul. Astfel se mpiedic atacul de tip IP address hijacking.

5.3.3 Prevenirea atacurilor de tip ARP poisoning


Unul dintre cele mai des ntlnite i mai eficiente atacuri n cadrul reelelor locale este ARP poisoning; acesta permite interceptarea traficului IP ntre dou calculatoare i se bazeaz pe manipularea tabelelor ARP ale staiilor int. Dup cum tim, dou staii din acelai domeniu de broadcast al unei reele Ethernet trebuie s-i cunoasc adresele MAC pentru a putea comunica nainte de trimiterea cadrelor, staia surs i verific tabela ARP pentru a identifica adresa MAC corespunztoare IP-ului staiei destinaie. Dac tabela ARP nu conine respectiva intrare, staia surs genereaz un cadru de tip ARP Request, avnd drept adres destinaie adresa de broadcast, prin care interogheaz toate gazdele din reea pentru a afla adresa MAC a staiei destinaie. Evident, numai staia ce posed IP-ul specificat n ARP Request trebuie s rspund cererii, trimindu-i adresa MAC staiei surs. Dup efectuarea acestui proces, asocierea MAC-IP a staiei destinaie este cache-uit n tabela ARP a gazdei, fiind utilizat pentru comunicaiile ulterioare. Din pcate, ARP-ul este un protocol stateless, care nu necesit autentificare, astfel nct oricine, inclusiv un atacator, poate trimite un cadru de tip ARP Reply pentru a fora o intrare n tabela ARP a unei staii. Mai mult dect att, prin mecanismul de gratuitous ARP, un ARP Reply poate fi trimis oricnd, chiar dac nu rspunde unei cereri. Astfel, staia int poate ajunge n situaia de a trimite trafic ctre MAC-ul atacatorului, care este n mod incorect asociat unei adrese IP valide. Cu ajutorul unui sniffer, atacatorul poate inspecta ulterior traficul capturat. Dup efectuarea operaiunii descrise mai sus, un atacator primete traficul ctre un anumit IP i poate realiza o situaie de tip Man-in-the-Middle, acionnd ca un intermediar transparent ntre staiile surs i destinaie. Pentru aceasta este nevoie de un pas suplimentar, i anume re-rutarea traficului interceptat ctre destinaia corect. Acest pas este crucial, deoarece interceptarea de informaii privilegiate implic mai nti realizarea unei conexiuni la nivelele superioare ale stivei OSI (TCP, HTTP etc.), lucru care nu poate avea loc dac staiile nu comunic. Fr rutare, avem doar un caz de Denial of Service. n Fig 5-12, atacatorul efectueaz procesul de rutare a traficului ntre cele dou gazde, staia A i staia B. Observai c doar tabela ARP a atacatorului reflect topologia real, cele dou staii deinnd intrri corupte care l indic n mod greit pe atacator ca destinaie. n practic, cea mai comun implementare a acestui tip de atac vizeaz traficul dintre o gazd i default-gateway-ul acesteia. Atacurile de tip ARP poisoning sunt izolate la nivelul reelei sau VLANului n care origineaz; ele nu funcioneaz peste Internet i necesit accesul n reeaua int.

O p t i m i z a r e a r e e l e l o r l o c a l e | 163

Sw1

Staia A IP A/MAC A
b9 IPIPIPI B IPIPIPI

2 SwIP 1

Hub9 H

IP MAC X
b9

MAC A B

Staia B IP B/MAC B IP MAC A IPIPIPI X


IPIPIPI IPIPIPI

A Atacator IP X/MAC X B

IPIPIPI SRV2 IPIPIPI

SMAC: A2 IPIPIPI IPIPIPI 1SMAC: A2 Pentru prevenirea acestor tipuri de atacuri, un switch trebuie s verifice pachetele de tip ARP IPIPIPI IPIPIPI Request i ARP Reply comutate, permind doar mesajele valide. Prin intermediul opiunii de 192.168.0 IPIPIPI 192.168.0 Dynamic ARP Inspection (DAI), switch-urile verific pachetele ARP interceptate, cutnd o pereche IP-MAC IPIPIPI nainte de a actualiza tabela ARP local i de a trimite pachetul ctre destinaie; valid IPIPIPI IPIPIPI IPIPIPI IPIPIPI pachetele invalide sunt respinse. Validitatea unui IPIPIPI ARP este determinat prin examinarea pachet Cl SMAC: A2 intrrilor din bazaCl date construit prin DHCP snooping, care conine corespondene valide ntre de SMAC: A2 SMAC: adrese MAC i adrese IP. Pentru staiile cu IP-uriSMAC: A2 poate valida pachetele ARP prin statice, DAI A2 IPIPIPI IPIPIPI compararea lor cu ACL-uri (Access Control Lists liste de acces) definite manual pe switch n acest scop. IPIPIPI IPIPIPI Ca i DHCP snooping-ul, DAI-ul mparte interfeele unui switch n trusted i untrusted. Pachetele IPIPIPI primite pe port-uri trusted nu sunt sunt supuse verificrilor DAI, ns cele care sosesc pe interfee IPIPIPI untrusted trec prin ntreg procesul de validare. n mod tipic, toate interfeele de acces ale unui switch IPIPIPI sunt configurate ca untrusted, n timp ce legturile trunchi care se conecteaz la alte switch-uri sunt IPIPIPI IPIPIPI considerate trusted astfel se asigur c toate pachetele ARP care intr n reea printr-un switch sunt IPIPIPI verificate prin DAI. Configurarea interfeelor ca trusted sau untrusted trebuie s fie efectuat cu mare grij pe de o parte, dorim s mpiedicm existena vulnerabilitilor n cadrul reelei, pe de alt parte o setare greit poate duce la pierderea conectivitii ntre staii. DHCP Server

IPIPIPI SRV2 Rutarea traficului ntr-un atac de tip ARP poisoning IPIPIPI 5-12

Fa 0/2
Sw1

IPIPIPI

Fa 0/3 Fa 0/1 IPIPIPI H1


IPIPIPI IPIPIPI IPIPIPI IPIPIPI IPIPIPI

Fa 0/3
Sw2

Fa 0/1
IPIPIPI

Sw 1 IPIPIPI

H2

IPIPIPI

5-13 Exemplu de topologie pentru funcionarea DAI


IPIPIPI IPIPIPI n Fig. 5-13, switch-urile Sw1 i Sw2 ruleaz DAI pe VLAN-ul din care fac parte H1 i H2, iar cele dou staii i obin adresele IP prin DHCP de la server-ul conectat la Sw1. Presupunnd c att Sw1 ct i Sw2 au activat DHCP snooping, numai Sw1 va nregistra perechea IP H1 - MAC H1 rezultat n IPIPIPI IPIPIPI IPIPIPI

164 | R e e l e l o c a l e d e c a l c u l a t o a r e urma alocrii adresei IP staiei H1. Prin urmare, dac interfaa Fa 0/3 care conecteaz cele dou switch-uri este configurat ca untrusted, pachetele ARP trimise de H1 vor fi respinse de Sw2, mpiedicnd comunicaia ntre H1 i H2. DAI nu permite gazdelor conectate la un switch pe interfee untrusted s corup tabela ARP a altor staii din reea; n schimb, nu poate opri gazde din alte segmente ale reelei s corup tabela ARP a staiilor conectate la switch. n topologia de mai sus, dac Sw1 nu ruleaz DAI, staia H1 poate corupe tabela ARP a switch-ului Sw2 i a gazdei H2, dac interfaa Fa 0/3 este configurat ca trusted, chiar dac switch-ul Sw2 are DAI-ul activ. n asemenea situaii, n care unele switch-uri dintr-un VLAN ruleaz DAI n timp ce altele nu implementeaz aceast msur, interfeele care se conecteaz la switch-uri non-DAI trebuie configurate ca untrusted. Pentru a valida pachetele ARP primite de la switch-uri non-DAI, este necesar fie configurarea de ARP ACL-uri pe switch-urile ce ruleaz DAI; dac aceast msur nu este fezabil, se recomand izolarea switch-urilor non-DAI ntr-o reea diferit, la nivel 3.

5.3.4 Controlul storm-urilor n cadrul reelei


n ciuda tuturor precauiilor i a msurilor de securitate implementate, uneori nu putem evita anumite incidente care afecteaz performana reelei storm-urile dintr-un LAN reprezint un exemplu tipic. Acest fenomen, care const ntr-un numr foarte mare de pachete primite pe un singur port i care se amplific ulterior, flood-nd reeaua, poate avea diverse cauze: erori n configurarea echipamentelor de reea, bug-uri n implementarea protocoalelor, chiar i utilizatori care iniiaz un Denial-Of-Service. Majoritatea productorilor de switch-uri ofer opiunea monitorizrii nivelului de trafic nregistrat pe un anumit port, tocmai n ideea de a detecta asemenea evenimente i de a le izola de restul reelei. Detaliile de implementare difer, ns principiul este acelai: cnd numrul de pachete de un anumit tip (broadcast, multicast sau unicast) primit pe un port depeste un prag definit de administratorul de reea, exprimat ca procent din limea de band a interfeei, pachetele de acel tip sunt blocate, sau portul este nchis temporar. Valoarea pragului trebuie corelat cu nivelul uzual de trafic nregistrat cnd reeaua funcioneaz normal o anumit rat de pachete de tip broadcast, multicast i unicast este legitim n toate reelele.

5.4 Utilitare
5.4.1 Linux
Configurarea unei interfee ca trunchi 802.1q
Linux ofer posibilitatea configurrii unei interfee Ethernet ca trunchi 802.1q, permind trimiterea i primirea de pachete din mai multe VLAN-uri. Aceast opiune este implementat n modulul de kernel 802.1q, care poate fi configurat de ctre utilizatori prin comanda ip link, inclus n iproute2, sau prin intermediul utilitarului mai vechi vconfig. Cele dou comenzi de mai jos arat cum putem aduga o interfa virtual carespunztoare VLAN-ului 10 la interfaa fizic eth0:
root@HQ:~# ip link add link eth0 name eth0.10 type vlan id 10

sau
root@HQ:~# vconfig add eth0 10

Efectul acestei configuraii este c pachetele cu ncapsulare 802.1q primite pe eth0 ce au VLAN ID-ul egal cu 10 vor fi tratate ca pachete netagate, primite pe interfaa virtual eth0.10, iar cadrele ce au ca interfa de ieire eth0.10 vor fi marcate cu un tag 802.1q, cu VLAN ID egal cu 10, i trimise pe interfaa fizic eth0.

O p t i m i z a r e a r e e l e l o r l o c a l e | 165 Modificrile realizate cu aceste utilitare nu sunt persistente; n scenariul 5.6.2 Configurarea de VLAN-uri pe un ruter Linux vom vedea cum putem folosi fiierul /etc/network/interfaces pentru a realiza schimbri de durat.

Bonding
Linux ofer posibilitatea configurrii legturilor agregate prin intermediul driver-ului de bonding. Interfeele fizice agregate pot fi active simultan, cnd sunt configurate pentru load balancing, sau pot fi configurate ca active/backup, n modul hot standby. Driver-ul de bonding ofer i opiunea monitorizrii integritii intefeelor fizice dintr-o legtur agregat. Utilitarul folosit pentru administrarea legturilor agregate n user-space se numete ifenslave, primul pas n configurare fiind chiar instalarea pachetului asociat:
root@HQ:~# apt-cache search ifenslave ifenslave-2.6 Attach and detach slave interfaces to a bonding device root@HQ:~# apt-get install ifenslave-2.6

Metoda preferat de configurare pe distribuiile bazate pe Debian apeleaz la fiierul /etc/network/interfaces. Instalarea pachetului ifenslave va ncrca automat modulul de bonding n kernel i va pune la dispoziie opiunile de tip bond-* n /etc/network/interfaces. nainte de editarea fiierului, se vor opri interfeele fizice ce urmeaz a fi agregate, precum i serviciul de networking:
root@HQ:~# ifdown eth1 ... root@HQ:~# ifdown eth2 ...

Adugm ulterior urmtoarea intrare corespunztoare interfeei agregate bond0 n /etc/network/interfaces, editnd n acelai timp i intrrile interfeelor fizice:
auto bond0 iface bond0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.0 gateway 192.168.1.1 bond-slaves none bond-mode active-backup bond-miimon 100 auto eth1 iface eth1 inet manual bond-master bond0 bond-primary eth1 eth2 auto eth2 iface eth2 inet manual bond-master bond0 bond-primary eth1 eth2

Sintaxa este uor modificat fa de vechile versiuni, n care toate opiunile erau specificate n intrarea bond0 (de exemplu bond-slaves eth1 eth2, bond-primary eth1 eth2), iar intrrile eth1 i eth2 nu trebuiau configurate. Modificarea se datoreaz existenei unui race condition ntre activarea driver-ului hardware pentru interfeele fizice i activarea interfeei agregate; de aceea, interfaa agregat este iniializat acum pornind de la membri, prin directivele bond-master bond0. n exemplul prezentat, observm ca setrile de nivel 3 ale interfeei bond0 se configureaz identic cu cele ale unei interfee fizice, avnd n plus numai trei intrri: bond-slaves none, obligatorie; bond-mode active-backup, care specific modul de funcionare al interfeei agregate; bond-miimon 100, care seteaz frecvena de monitorizare a legturilor fizice la 100ms. Pentru eth1 i eth2, pe lng specificarea interfeei agregate (bond-master bond0), avem definit i prioritatea interfeelor pentru a fi activate n modul active-backup (bond-primary eth1 eth2, mai nti eth1 i apoi eth2).

166 | R e e l e l o c a l e d e c a l c u l a t o a r e Pentru a verifica configuraia unei interfee agregate i starea interfeelor slave, putem inspecta fiierul corespunztor din directorul /proc/net/bonding:
root@HQ:~# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: eth1 (primary_reselect always) Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 00:0c:29:f5:74:94 Slave queue ID: 0 Slave Interface: eth2 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 00:0c:29:f5:74:9e Slave queue ID: 0

Setrile interfaei bond0 pot fi afiate rulnd comanda ifconfig:


root@HQ:~# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:0c:29:f5:74:94 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fef5:7494/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:1574 errors:0 dropped:240 overruns:0 frame:0 TX packets:435 errors:1 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:241686 (241.6 KB) TX bytes:39846 (39.8 KB)

Exist de asemenea i posibilitatea configurrii manuale a bonding-ului, prin comenzi ifenslave, util n cazul distribuiilor care nu ofer fiierul /etc/network/interfaces. Urmtorul script ce poate fi rulat la startup ncarc modulele de bonding i Eternet cu parametrii dorii, apoi configureaz interfaa agregat bond0, format din cele dou interfee fizice eth1 i eth2.
modprobe bonding mode=active-backup miimon=100 modprobe e100 ifconfig bond0 192.168.1.10 netmask 255.255.255.0 up ifenslave bond0 eth1 ifenslave bond0 eth2

5.4.2 Cisco IOS


VLAN-uri, legturi acces i legturi trunchi
Pentru definirea de VLAN-uri statice n Cisco IOS, este necesar introducerea numrului VLANului dorit n modul global de configurare al switch-ului, urmat de setarea numelui, care este opional:
Switch(config)# vlan 2 Switch(config-vlan)# name Engineering

Dup definirea unui VLAN, o operaiune important o reprezint asocierea porturilor de acces. Aceast operaiune se efectueaz prin intermediul a dou comenzi, introduse n modul de configurare al interfeei. n exemplul de mai jos, portul FastEthernet 0/5 este configurat ca legtur de acces n VLAN-ul 10:
Switch(config)# interface Fa 0/5 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10

O p t i m i z a r e a r e e l e l o r l o c a l e | 167 Pentru a vizualiza VLAN-urile definite pe un switch i porturile asociate acestora, se folosete comanda show vlan:
Switch#sh vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4 Fa0/6, Fa0/7, Fa0/8, Fa0/9 Fa0/10, Fa0/11, Fa0/12, Fa0/13 Fa0/14, Fa0/15, Fa0/16, Fa0/17 Fa0/18, Fa0/19, Fa0/20, Fa0/21 Fa0/22, Fa0/23, Fa0/24 10 Engineering active Fa0/5 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup ...

Pentru configurarea interfeelor de tip trunchi, avem la dispoziie comenzi care specific tipul de ncapsulare, VLAN-ul nativ al legturii, VLAN-urile permise pe trunchi i modul de operare al trunchiului. Lista de comenzi de mai jos configureaz interfaa FastEthernet 1/1 ca trunchi 802.1q, cu VLAN-ul nativ 100, permind trafic numai din VLAN-urile 200 i 300 i funcionnd n mod permanent, explicit ca trunchi.
Switch(config)# interface FastEthernet 1/1 Switch(config-if)# switchport trunk encapsulation dot1q Switch(config-if)# switchport trunk native vlan 100 Switch(config-if)# switchport trunk allowed vlan 200, 300 Switch(config-if)# switchport mode trunk

Primele dou comenzi sunt clare, cu meniunea ca switchport trunk encapsulation permite i opiunile ISL, respectiv negotiate. Multe dintre switch-urile din prezent au renunat la aceast comand, adoptnd implicit ncapsularea 802.1q. Cea de-a treia comand, switchport trunk allowed vlan definete o list de VLAN-uri al cror trafic este permis pe trunchi; aceast opiune este util, de exemplu, pentru evitarea propagrii de cadre broadcast pe legturi trunchi ctre zone ale reelei fr interfee de acces n VLAN-ul de origine. n cazul de fa, lista este definit explicit prin indici ai VLAN-urilor, ns se pot folosi i cuvintele cheie add, except, remove pentru obinerea unui comportament mai flexibil i mai granular. Ultima comand, switchport mode, care pe lng trunk ofer i opiunile dynamic desirable, respectiv dynamic auto, este legat de DTP (Dynamic Trunking Protocol), un protocol proprietar Cisco care permite negocierea dinamic a legturilor de tip trunchi ntre switch-uri. n general, majoritatea legturilor trunchi sunt configurate manual la ambele capete (switchport mode trunk). Pentru verificarea strii unei interfee trunchi, folosim comanda show interface type mod/port trunk:
Switch# show interface FastEthernet 2/1 trunk Port Mode Encapsulation Fa 2/1 on 802.1q Port Vlans allowed on trunk Fa 2/1 1-4094 Port Vlans allowed and active in management domain Fa 2/1 1-2, 100, 200, 300, 1002-1005 Port Vlans in spanning tree forwarding state and not pruned Fa 2/1 1-2, 100, 200, 300, 1002-1005 Status trunking Native vlan 1

Router-on-a-stick
Pentru configurarea rutrii inter-VLAN de tip router-on-a-stick, este necesar configurarea de subinterfee ale portului fizic din ruter conectat la legtura trunchi a switch-ului. Urmtoarea comand creeaz subinterfaa FastEthernet 0/0.100 (o convenie des ntlnit este ca indicele subinterfeei s coincid cu numrul VLAN-ului rutat):

168 | R e e l e l o c a l e d e c a l c u l a t o a r e
Router#config t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface fastEthernet 0/0.100 Router(config-subif)#

Ulterior, n modul de configurare a subinterfeei, trebuie s specificm tipul de ncapsulare (802.1q) i VLAN-ul asociat subinterfeei. Nu n ultimul rnd, trebuie configurat o adres IP corespunztoare i subinterfaa trebuie activat:
Router(config-subif)#encapsulation dot1Q 100 Router(config-subif)#ip address 192.168.100.1 255.255.255.0 Router(config-subif)#no shutdown

Aceti pai trebuie urmai pentru toate VLAN-urile ce vor fi rutate pe interfaa respectiv. Interfaa fizic propriu-zis a ruter-ului nu necesit configurarea unei adrese IP, ci doar activarea sa.
Router(config)#interface fastEthernet 0/0 Router(config-if)#no shutdown

Legturi agregate
n cadrul acestei seciuni, vom examina comenzile necesare configurrii unei legturi agregate ce utilizeaz LACP drept protocol de negociere n Cisco IOS. La nivel global, putem configura o prioritate LACP, care permite unui switch s devin factorul de decizie n negocierea legturii agregate, n defavoarea vecinului: o valoare mai mic indic o prioritate mai mare. Acest pas opional este ilustrat n comanda de mai jos, care seteaz prioritatea LACP a switch-ului la 5000 (implicit este 32768):
Switch#configure terminal Switch(config)# lacp system-priority 5000

Pasul doi l reprezint configurarea porturilor fizice n aceeai legtur agregat, cu specificarea protocolului LACP. Setul de comenzi de mai jos are ca efect gruparea configurarea interfeelor FastEthernet 0/1, 0/2, 0/3 i 0/4 pentru o legtur agregat cu indicele 1, cu mod de negociere LACP active:
Switch(config)# interface range FastEthernet 0/1 4 Switch(config-if)# channel-protocol lacp Switch(config-if)# channel-group 1 mode active

De asemenea, se pot configura prioriti LACP la nivel de port, care determin care interfee sunt active n cazul legturilor agregate ce conin membri n standby. Urmtoarea comand aplic prioritatea 1000 celor patru porturi configurate mai sus (la fel ca prioritatea global, valoarea implicit este 32768 i valori mai mici indic prioriti mai mari):
Switch(config-if)# lacp port-priority 100

Configurarea PAgP n locul LACP implic comenzi similare, modurile de funcionare fiind ns schimbate (desirable i auto n loc de active i passive). Exist i posibilitatea de a seta algoritmul de load-balancing a legturilor agregate, la nivel de switch, n modul global de configurare. n exemplul de mai jos, IP-ul destinaie este selectat drept criteriu de distribuire a pachetelor.
Switch(config)#port-channel load-balance ? dst-ip Dst IP Addr dst-mac Dst Mac Addr src-dst-ip Src XOR Dst IP Addr src-dst-mac Src XOR Dst Mac Addr src-ip Src IP Addr src-mac Src Mac Addr Switch(config)#port-channel load-balance dst-ip

Odat creat, o legtur agregat se acceseaz i se configureaz la fel ca una fizic:


Switch(config)#interface port-channel 1 Switch(config-if)#switchport mode trunk

O p t i m i z a r e a r e e l e l o r l o c a l e | 169

Port security
Switch-urile Cisco de tip Catalyst ofer opiunea de port security pentru a controla accesul la o interfa pe baza adresei MAC. Aceasta este disponibil numai pe porturile de tip acces, i se activeaz prin urmtoarea comand, n modul de configurare a interfeei:
Switch(config-if)# switchport port-security

Dup efectuarea acestui pas, trebuie configurat un numr maxim de adrese MAC crora li se va permite accesul; acestea pot fi specificate manual, sau pot fi nvate dinamic de ctre switch. Urmtoarea comand seteaz limita maxim de adrese MAC asociat unui port la valoarea 3:
Switch(config-if)# switchport port-security maximum 3

Pentru configurarea unei adrese MAC statice creia s i se permit accesul pe un port, folosim urmtoarea comand (exemplul este pentru adresa MAC 0025.D3DC.B86B):
Switch(config-if)# switchport port-security mac-address 0025.D3DC.B86B

Dac numrul de adrese statice este mai mic dect limita maxim configurat, switch-ul nva restul adreselor n mod dinamic. Adresele dinamice asociate unui port pot fi configurate s expire dup un anumit interval de timp, ns, n mod implicit, ele sunt reinute pentru o perioad nedefinit. Totui, ele se terg dac interfaa cade sau switch-ul este repornit. Cisco IOS ofer posibilitatea ca adresele MAC nvate dinamic s fie salvate n running-config, urmnd ca ele s fie disponbile dup un restart, dac configuraia este salvat n prealabil. Aceast opiune poart numele de sticky learning, i poate fi activat prin comanda:
Switch(config-if)# switchport port-security mac-address sticky

De asemenea, trebuie definit modul n care o interfa reacioneaz la violarea securitii de ctre o adres MAC, lucru care se petrece cnd numrul de adrese MAC nvate depete limita maxim configurat, sau o adres necunoscut diferit de cele configurate static este detectat:
Switch(config-if)#switchport port-security violation ? protect Security violation protect mode restrict Security violation restrict mode shutdown Security violation shutdown mode Switch(config-if)#switchport port-security violation shutdown

n exemplul de mai sus, opiunea shutdown pune portul n starea de Errdisable, nchizndu-l la detectarea unei violri; interfaa va trebui repornit manual de ctre administratorul de reea. Restrict pstreaz portul n stare operaional, ns pachetele de la staiile cu adrese MAC invalide sunt respinse switch-ul numr pachetele respinse i poate trimite SNMP trap-uri pentru alertare. Protect pstreaz de asemenea portul operaional, respingnd pachetele invalide, ns nu ofer faciliti de logging.

DHCP Snooping
Primul pas n configurarea DHCP snooping pe o platform Cisco IOS const n activarea sa la nivel de switch, n modul global de configurare:
Switch(config)# ip dhcp snooping

Ulterior, trebuie identificate VLAN-urile pentru care se implementeaz opiunea; exemplul de mai jos prezint configurarea DHCP snooping pentru VLAN-ul 10:
Switch(config)# ip dhcp snooping vlan 10

Urmeaz configurarea interfeelor ca trusted sau untrusted implicit, toate porturile unui switch sunt considerate untrusted, ceea ce duce la respingerea pachetelor primite de tip DHCP Reply. Pentru configurarea ca trusted a unei interfee conectate ctre un server legitim de DHCP, folosim urmtoarea comand, exemplificat pentru Fast Ethernet 0/1:
Switch(config)# interface FastEthernet 0/1 Switch(config-if)# ip dhcp snooping trust

170 | R e e l e l o c a l e d e c a l c u l a t o a r e Implicit, switch-ul nu impune limite privind numrul de DHCP Requests primite pe o interfa untrusted, facilitnd atacurile de tip DHCP starvation. Acest comportament poate fi modificat prin configurarea unei limite de pachete DHCP care pot fi primite pe secund; n exemplul de mai jos, interfaa Fast Ethernet 0/5 permite un trafic de maxim 5 pachete DHCP pe secund:
Switch(config)# interface range FastEthernet 0/5 Switch(config-if)# ip dhcp snooping limit rate 5

Pentru mpiedicarea atacurilor avansate de tip DHCP starvation, care se bazeaz pe manipularea cmpului CHADDR, putem activa verificarea adresei MAC surs dintr-un pachet DHCP pe porturile untrusted, care este comparat cu valoarea Client Hardware Address. Comanda este disponibil n modul global de configurare, avnd sintaxa:
Switch(config)# ip dhcp snooping verify mac-address

Dynamic ARP Inspection


Configurarea DAI n Cisco IOS este similar cu cea a DHCP snooping-ului, pe ale crui mapri se i bazeaz. Prima oar este nevoie ca DAI-ul s fie activat pe VLAN-urile int, printr-o comand introdus n modul global de configurare (n cazul de fa, este activat pentru VLAN-ul 20):
Switch(config)# ip arp inspection vlan 20

La fel ca la configurarea DHCP snooping, n mod implicit toate porturile switch-ului asociate cu VLAN-urile pe care DAI este activ sunt considerate untrusted. Un port de tip trunk, care se conecteaz la un alt switch dintr-o parte sigur a reelei, poate fi configurat ca trusted prin urmtoarea comand, exemplificat pentru interfaa FastEthernet 0/4:
Switch(config)# interface FastEthernet 0/4 Switch(config-if)# ip arp inspection trust

n mod implicit, DAI-ul valideaz doar adresele MAC i IP din corpul ARP Reply-urilor, fr a examina i antetul Ethernet. Pentru a asigura faptul ca un rspuns ARP vine chiar de la adresa specificat n corpul su, putem apela la comanda:
Switch(config)# ip arp inspection validate {[src-mac] [dst-mac] [ip]}

Pot fi selectate una sau mai multe dintre cele trei opiuni, care efectueaz urmtoarele verificri: src-mac: valideaz adresa MAC surs din antetul Ethernet fa de adresa MAC a expeditorului dintr-un rspuns ARP; dst-mac: valideaz adresa MAC destinaie din antetul Ethernet fa de adresa MAC int dintr-un rspuns ARP; ip: verific adresa IP surs n cererile ARP i valideaz adresa IP a expeditorului fa de adresa IP int n rspunsurile ARP. Un subiect avansat l reprezint securizarea prin DAI a reelelor cu IP-uri configurate static, unde nu se mai poate apela la baza de date generat prin DHCP snooping. n asemenea cazuri, este necesar definirea unei liste de acces cu mapri statice de tip MAC-IP ale staiilor legitime, care s fie utilizat de DAI.

Storm Control
Pentru configurarea storm control, este necesar mai nti s definim pragurile de trafic pentru activarea sa la nivel de interfa. Exemplul de mai jos prezint setarea unor praguri de 10% din traficul total pentru pachetele de tip broadcast i multicast, pe interfaa FastEthernet 0/4:
Switch# configure terminal Switch (config)# interface FastEthernet 0/4 Switch (config-if)# storm-control broadcast level 10 Switch (config-if)# storm-control multicast level 10

n mod similar poate fi setat i pragul de trafic unicast. Pasul urmtor l reprezint configurarea aciunii efectuate la nivel de port, n cazul apariiei unui storm: putem nchide portul, punndu-l n

O p t i m i z a r e a r e e l e l o r l o c a l e | 171 starea Error Disabled, sau genera un mesaj SNMP pentru alertare. Comanda de mai jos activeaz opiunea shutdown pentru interfaa FastEthernet 0/4:
Switch(config)# interface FastEthernet 0/4 Switch(config-if)# storm-control action shutdown

5.5 Scenariu
O reea local de dimensiuni reduse, ilustrat n topologia de mai jos (vezi Fig. 5-14), este pe cale de a suferi transformri semnificative. Momentan, reeaua nu este conectat la Internet, iar cele trei calculatoare ilustrate n figur, A, C i E se afl n acelai VLAN, 10, definit static pe toate switch-urile din topologie. Adresele IP ale celor trei staii sunt: A: 80.0.10.2/24 B: 80.0.10.3/24 C: 80.0.10.4/24 2 2

Sw9

Sw3

7 A

1 3 4 C 9
Sw8

4
Sw1

1
Sw7

8 E

5-14 Scenariu topologie iniial Porturile active ale celor cinci switch-uri sunt configurate fie n mod acces (cele la care se conecteaz staiile), fie n mod trunk (cele dintre switch-uri), permind traficul tuturor VLAN-urilor. Orice alte configurri sunt cele implicite, existente deja pe switch-uri. Iniial, reeaua funcioneaz corect, oferind conectivitate ntre staiile A, C i E. n urma schimbrilor efectuate, topologia se extinde, varianta sa final fiind prezentat mai jos, n Fig. 5-15 (de interes este doar partea pn la ruter-ul HQ). Modificrile care au avut loc sunt urmtoarele: au fost adugate staiile B, D i F, care vor trebui plasate ntr-un nou VLAN 20 cu adresele 80.0.20.2/24, 80.0.20.3/24, respectiv 80.0.20.4/24; a fost introdus ruter-ul HQ, care are rolul de a efectua rutarea ntre cele dou VLAN-uri i de a oferi conexiune la Internet; pentru asigurarea redundanei n cadrul reelei, a fost introdus switch-ul Sw2. Att echipamentele nou introduse, ct i cele existente n reea vor trebui configurate pentru stabilirea conectivitii end-to-end. De asemenea, zona de acces a switch-ului Sw7 va fi deschis vizitatorilor i se dorete implementarea unor msuri de securitate minime pentru evitarea incidentelor.

172 | R e e l e l o c a l e d e c a l c u l a t o a r e 2 2 8 A B 3
Sw3

3 4 4 2 4 1 1
Sw7 Sw2

Sw9

1 3 4

4 4 4 Sw1

2
BR

M 3
ISP

9
Sw8

2 3

2 3

4
HQ

8 D

8 E

29 F 21 4 W

5-15 Scenariu topologie final Vom ncepe cu configurarea noului VLAN 20 i a porturilor de acces corespunztoare pe switchurile Sw7, Sw8, Sw9:
Sw9#conf t Enter configuration commands, one per line. Sw9(config)#vlan 20 Sw9(config-vlan)#name VLAN_NOU Sw9(config-vlan)#exit Sw9(config)#int fa 0/8 Sw9(config-if)#sw mode access Sw9(config-if)#sw access vlan 20 End with CNTL/Z.

Sw8#conf t Enter configuration commands, one per line. Sw8(config)#vlan 20 Sw8(config-vlan)#name VLAN_NOU Sw8(config-vlan)#exit Sw8(config)#int fa 0/8 Sw8(config-if)#sw mode access Sw8(config-if)#sw access vlan 20

End with CNTL/Z.

Sw7#conf t Enter configuration commands, one per line. Sw7(config)#vlan 20 Sw7(config-vlan)#name VLAN_NOU Sw7(config-vlan)#exit Sw7(config)#int fa 0/9 Sw7(config-if)#sw mode access Sw7(config-if)#sw access vlan 20

End with CNTL/Z.

De asemenea, este necesar configurarea VLAN-ului 20 i pe cele trei switch-uri de distribuie, deoarece majoritatea echipamentelor nu comut pachete dintr-un VLAN nedefinit (care nu exist n baza lor de date local) peste legturi de tip trunchi. Efectum configurarea pe switch-urile Sw3 i Sw1, Sw2 nefiind momentan activ n topologie:
Sw3(config)#vlan 20 Sw3(config-vlan)#name VLAN_NOU

Sw1(config)#vlan 20 Sw1(config-vlan)#name VLAN_NOU

Verificm acum VLAN-urile active pe switch-urile din topologie, prin comanda sh vlan, ilustrat pentru switch-ul Sw7:

O p t i m i z a r e a r e e l e l o r l o c a l e | 173
Sw7#sh vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5 Fa0/6, Fa0/7, Fa0/10, Fa0/11 Fa0/12, Fa0/13, Fa0/14, Fa0/15 Fa0/16, Fa0/17, Fa0/18, Fa0/19 Fa0/20, Fa0/21, Fa0/22, Fa0/23 Fa0/24 10 VLAN_VECHI active Fa0/8 20 VLAN_NOU active Fa0/9 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup ...

Observm cele dou VLAN-uri, 10 i 20, cu porturile de acces asociate: Fa0/8, respectiv Fa0/9. Implicit, toate celelalte interfee sunt plasate n VLAN-ul 1. Testm conectivitatea ntre staiile din VLAN-ul 20 printr-un ping de la F la B:
F>ping 80.0.20.2 Pinging 80.0.20.2 with 32 bytes of data: Reply Reply Reply Reply from from from from 80.0.20.2: 80.0.20.2: 80.0.20.2: 80.0.20.2: bytes=32 bytes=32 bytes=32 bytes=32 time=19ms time=22ms time=15ms time=21ms TTL=128 TTL=128 TTL=128 TTL=128

Ping statistics for 80.0.20.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 15ms, Maximum = 22ms, Average = 19ms

Trecem acum la pasul doi, introducerea i configurarea ruter-ului HQ n topologie, pentru a asigura rutarea ntre VLAN-urile 10 i 20. Pentru redundan, HQ se conecteaz la switch-ul Sw7 prin dou legturi. Momentan, doar legtura Fa 0/2 este activ, ea urmnd a fi configurat cu subinterfee pentru VLAN-urile 10 i 20 prin urmtoarele comenzi:
HQ(config)#interface Fa 0/2 HQ(config)#no shut HQ(config-if)#interface Fa 0/2.10 HQ(config-subif)#encapsulation dot1Q 10 HQ(config-subif)#ip address 80.0.10.1 255.255.255.0 HQ(config-subif)#no shut HQ(config-subif)#interface Fa 0/2.20 HQ(config-subif)#encapsulation dot1Q 20 HQ(config-subif)#ip address 80.0.20.1 255.255.255.0 HQ(config-subif)#no shut HQ#sh ip int brief Interface IP-Address OK? Method Status [...] FastEthernet0/2 unassigned YES unset up FastEthernet0/2.10 80.0.10.1 YES manual up FastEthernet0/2.20 80.0.20.1 YES manual up

Protocol up up up

Observm c interfeele ruter-ului au fost configurate cu dou IP-uri din spaiile de adrese corespunztoare VLAN-urilor 10 i 20, 80.0.10.1, respectiv 80.0.20.1. Dup configurarea acestor adrese ca default gateway pe staiile din cele dou VLAN-uri, putem testa funcionarea procesului de rutare inter-VLAN printr-un ping de la staia A la staia F:
A>ping 80.0.20.4 Pinging 80.0.20.4 with 32 bytes of data: Request Request Request Request timed timed timed timed out. out. out. out.

Ping statistics for 80.0.20.4: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Conexiunea nu este funcional. Verificm conectivitatea cu default-gateway-ul, operaiune obiuit n procesul de troubleshooting:

174 | R e e l e l o c a l e d e c a l c u l a t o a r e
A>ping 80.0.10.1 Pinging 80.0.10.1 with 32 bytes of data: Request Request Request Request timed timed timed timed out. out. out. out.

Ping statistics for 80.0.10.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Concluzia este c nu exist conectivitate ntre staia A i ruter-ul HQ. Cel mai probabil, problema ine de configuraia switch-ului Sw7, care se conecteaz la HQ. O simpl comand pe switch-ul Sw7 ne indic originea acesteia:
Sw7#sh interfaces trunk Port Mode Fa0/1 on Port Fa0/1 Port Fa0/1 Port Fa0/1 Encapsulation 802.1q Status trunking Native vlan 1

Vlans allowed on trunk 1-1005 Vlans allowed and active in management domain 1,10,20 Vlans in spanning tree forwarding state and not pruned 1,10,20

Observm c interfaa Fa 0/2, care se conecteaz la ruter-ul HQ, nu a fost configurat ca trunchi: ea este implicit plasat n VLAN-ul 1, n mod acces, nefiind capabil s transporte trafic din VLAN-urile 10 i 20. Configurarea ei ca trunchi ar trebui s rezolve problema:
Sw7(config)#int fa 0/2 Sw7(config-if)#sw mode trunk

Verificm din nou conectivitatea ntre staiile A i F:


A>ping 80.0.20.4 Pinging 80.0.20.4 with 32 bytes of data: Request timed out. Reply from 80.0.20.4: bytes=32 time=25ms TTL=127 Reply from 80.0.20.4: bytes=32 time=26ms TTL=127 Reply from 80.0.20.4: bytes=32 time=22ms TTL=127 Ping statistics for 80.0.20.4: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 22ms, Maximum = 26ms, Average = 24ms

Rutarea inter-VLAN a fost configurat cu succes; este timpul s trecem la asigurarea redundanei reelei prin introducerea noului switch Sw2. Primul pas n configurarea acestuia este agregarea celor dou legturi ntre Sw2 i Sw3 ntr-un Etherchannel negociat prin LACP. Dorim ca switch-ul Sw3 s fie cel care iniiaz negocierea legturii agregate prin LACP i cel care ia deciziile referitoare la activarea interfeelor fizice din legtur. De asemenea, se vrea ca algoritmul de distribuire a traficului pe Etherchannel s ia n calcul numai adresa IP destinaie. Pentru realizarea cerinelor enumerate, este necesar ca interfeele FastEthernet 0/3 i 0/4 ale switch-ului Sw3 s fie configurate n modul LACP active, iar prioritatea global LACP a lui Sw3 s fie mai mic dect valoarea implicit, 32768:
Sw3(config)#interface range FastEthernet 0/3-4 Sw3(config-if-range)#channel-protocol lacp Sw3(config-if-range)#channel-group 1 mode active Sw3(config-if-range)#exit Sw3(config)#lacp system-priority 1000 Sw3(config)#port-channel load-balance dst-ip

La cellalt capt al legturii, pe Sw2, trebuie introduse comenzi similare, singurele diferene fiind c vom plasa interfeele n modul LACP passive i nu vom configura prioritatea global LACP:
Sw2(config)#interface range FastEthernet 0/3-4 Sw2(config-if-range)#channel-protocol lacp Sw2(config-if-range)#channel-group 1 mode passive

O p t i m i z a r e a r e e l e l o r l o c a l e | 175
Sw2(config-if-range)#exit Sw2(config)#port-channel load-balance dst-ip

Putem verifica starea legturilor agregate definite pe un switch printr-una dintre comenzile show etherchannel summary sau show etherchannel port-channel:
Sw3#sh etherchannel port-channel Channel-group listing: ---------------------Group: 1 ---------Port-channels in the group: --------------------------Port-channel: Po1 (Primary Aggregator) -----------Age of the Port-channel = 00d:00h:18m:10s Logical slot/port = 2/1 Number of ports = 2 GC = 0x00000000 HotStandBy port = null Port state = Port-channel Protocol = LACP Port Security = Disabled Ports in the Port-channel: Index Load Port EC state No of bits ------+------+------+------------------+----------0 00 Fa0/4 Active 0 0 00 Fa0/3 Active 0 Time since last port bundled: 00d:00h:02m:37s Fa0/3

Dup realizarea legturii agregate, este necesar configurarea noilor interfee dintre switch-urile Sw2 i Sw1, Sw3, ca trunchiuri, nsoit de o msur de securitate preventiv: singurele VLAN-uri permise pe cele trei interfee s fie 10 i 20. ncepem cu switch-ul Sw2:
Sw2(config)#interface port-channel 1 Sw2(config-if)#switchport mode trunk Sw2(config-if)#switchport trunk allowed vlan 10,20 Sw2(config-if)#interface Fa 0/1 Sw2(config-if)#switchport mode trunk Sw2(config-if)#switchport trunk allowed vlan 10,20

Configurm apoi cellalt capt al Etherchannel-ului, Sw3:


Sw3(config)#int port-channel 1 Sw3(config-if)#switchport mode trunk Sw3(config-if)#switchport trunk allowed vlan 10,20 Sw3(config-if)#interface fa 0/1 Sw3(config-if)#switchport trunk allowed vlan 10,20

Pentru a ncheia cu Sw1:


Sw1(config)#interface FastEthernet 0/2 Sw1(config-if)#switchport mode trunk Sw1(config-if)#switchport trunk allowed vlan 10,20 Sw1(config-if)#interface FastEthernet 0/3 Sw1(config-if)#switchport trunk allowed vlan 10,20

n cele din urm, verificm starea interfeelor trunchi definite pe Sw2:


Sw2#show interfaces trunk Port Mode Encapsulation Fa0/1 on 802.1q Fa0/3 on 802.1q Fa0/4 on 802.1q Po1 on 802.1q Port Fa0/1 Fa0/3 Fa0/4 Po1 Port Fa0/1 Fa0/3 Fa0/4 Po1 Port Fa0/1 Vlans allowed on trunk 10,20 1-1005 1-1005 10,20 Vlans allowed and active in management domain none 1 1 none Vlans in spanning tree forwarding state and not pruned none Status trunking trunking trunking trunking Native vlan 1 1 1 1

176 | R e e l e l o c a l e d e c a l c u l a t o a r e
Fa0/3 Fa0/4 Po1 1 1 none

Ultima modificare major n cadrul reelei o reprezint crearea unei zone de acces pentru oaspei, ntr-un VLAN separat, care s aib conectivitate la Internet. n acest sens, interfeele FastEthernet 0/21-24 de pe switch-ul Sw7 vor fi configurate n VLAN-ul 100, care va avea adrese din clasa 80.0.100.0/24, alocate prin DHCP. Acest VLAN va fi rutat n Internet pe legtura de backup ntre Sw7 i HQ, care va fi configurat n mod acces; n cadrul acestui scenariu ne intereseaz strict setrile de securitate ce trebuie configurate pe Sw7. Cerinele de securitate impuse pentru interfeele de acces din VLAN-ul sunt urmtoarele: maxim 3 adrese MAC permise per port, cu opiunea de nvare sticky. La detectarea unui incident de securitate, interfaa asociat va fi nchis; pe VLAN-ul 100 vor fi activate opiunile de DHCP Snooping i Dynamic ARP Inspection. Vor fi verificate cmpurile CHADDR din pachetele de DHCP, respectiv adresele MAC surs i destinaie din antetul Ethernet al cadrelor ARP. Rat maxim acceptat a pachetelor DHCP pe interfeele de acces va fi de 10/secund. Pentru nceput, activm port security, urmrind cerinele exprimate mai sus:
Sw7(config)#interface range Fa0/21-24 Sw7(config-if-range)#switchport mode access Sw7(config-if-range)#switchport access vlan 100 Sw7(config-if-range)#switchport port-security Sw7(config-if-range)#switchport port-security maximum 3 Sw7(config-if-range)#switchport port-security mac-address sticky Sw7(config-if-range)#switchport port-security violation shutdown

Pentru afiarea unui sumar al setrilor de port security configurate pe switch, introducem comanda show port security:
Sw7#show port-security Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action (Count) (Count) (Count) -------------------------------------------------------------------Fa0/21 3 0 0 Shutdown Fa0/22 3 0 0 Shutdown Fa0/23 3 0 0 Shutdown Fa0/24 3 0 0 Shutdown ----------------------------------------------------------------------

Continum cu activarea opiunii de DHCP Snooping observai configurarea celor trei uplink-uri ale switch-ului Sw7 ca interfee trusted:
Sw7(config)#ip dhcp snooping vlan 100 Sw7(config)#ip dhcp snooping verify mac-address Sw7(config)#interface range FastEthernet 0/21 24 Sw7(config-if)#interface gigabitethernet 0/1 Sw7(config-if)#interface range FastEthernet 0/1 3 Sw7(config-if)#ip dhcp snooping trust

Configuraia curent a opiunii de DHCP Snooping poate fi vizualizat prin comanda show ip dhcp snooping:
Sw7#show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 100 Insertion of option 82 is enabled Interface Trusted Rate limit (pps) --------------------------------------------FastEthernet0/1 yes unlimited FastEthernet0/2 yes unlimited FastEthernet0/3 yes unlimited FastEthernet0/21 no 10 FastEthernet0/22 no 10 FastEthernet0/23 no 10 FastEthernet0/24 no 10

Dup configurarea DHCP snooping-ului, putem trece la pasul final, activarea DAI:
Sw7(config)#ip arp inspection vlan 100 Sw7(config)#ip arp inspection validate src-mac dst-mac Switch(config)#interface range FastEthernet 0/1 3

O p t i m i z a r e a r e e l e l o r l o c a l e | 177
Switch(config-if)#ip arp inspection trust

Pentru a vedea setrile curente de DAI i counter-ele asociate, introducem comanda show ip arp inspection:
Sw7# show ip arp inspection Source Mac Validation : Enabled Destination Mac Validation : Enabled IP Address Validation : Disabled Vlan ---100 Vlan ---100 Vlan ---100 Vlan ---100 Vlan ---100 Configuration ------------Enabled ACL Logging ----------Deny Forwarded --------22 DHCP Permits -----------22 Operation --------Active ACL Match --------Static ACL ----------

DHCP Logging -----------Deny Dropped ------2

Probe Logging ------------Off ACL Drops --------0 Source MAC Failures ------------------0 Invalid Protocol Data --------------------0

DHCP Drops ---------2

ACL Permits Probe Permits ----------- ------------0 0 IP Validation Failures ---------------------0

Dest MAC Failures ----------------0

5.6 Studiu de caz


5.6.1 Rutare inter-VLAN pe Linux
n acest studiu de caz, vom examina modul de configurare a unei interfee fizice de pe un sistem Linux ca trunchi 802.1q i efectuarea rutrii inter-VLAN pe maina respectiv. Vom folosi datele din cadrul scenariului din seciunea 5.5 a capitolului, prin nlocuirea ruterului hardware HQ cu o main Debian Linux (vezi Fig. 5-15). Aceasta va trebui s asigure rutarea ntre VLAN-urile 10 i 20, cu adrese IP de gateway 80.0.10.1, respectiv 80.0.20.1. n acest sens, vom configura subinterfee asociate eth1 pentru VLAN-urile 10 i 20, prin intermediul utilitarului ip link:
root@HQ:~# ip link add link eth1 name eth1.10 type vlan id 10 root@HQ:~# ip link add link eth1 name eth1.20 type vlan id 20 root@HQ:~# ip addr add 80.0.10.1/24 dev eth1.10 root@HQ:~# ip addr add 80.0.20.1/24 dev eth1.20 root@HQ:~# ip addr show [...] 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noop state UP link/ether 00:0c:29:f5:74:94 brd ff:ff:ff:ff:ff:ff 3: eth1.10@eth1: <BROADCAST,MULTICAST UP,LOWER_UP> mtu 1500 qdisc noop state UP link/ether 00:0c:29:f5:74:94 brd ff:ff:ff:ff:ff:ff inet 80.0.10.1/24 scope global eth2.10 4: eth1.20@eth1: <BROADCAST,MULTICAST UP,LOWER_UP> mtu 1500 qdisc noop state UP link/ether 00:0c:29:f5:74:94 brd ff:ff:ff:ff:ff:ff inet 80.0.20.1/24 scope global eth2.20

Implicit, un sistem Linux nu este configurat pentru funcia de rutare, adic nu comut pachete nici chiar ntre reele direct conectate. Pentru efectuarea rutrii inter-VLAN, trebuie activat opiunea de IP forwarding, prin comanda:
root@HQ:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Testm conectivitatea reelei printr-un ping ntre dou staii aflate n VLAN 10, respectiv 20:
A>ping 80.0.20.2 Pinging 80.0.20.2 with 32 bytes of data: Reply Reply Reply Reply from from from from 80.0.20.2: 80.0.20.2: 80.0.20.2: 80.0.20.2: bytes=32 bytes=32 bytes=32 bytes=32 time=19ms time=22ms time=15ms time=21ms TTL=128 TTL=128 TTL=128 TTL=128

178 | R e e l e l o c a l e d e c a l c u l a t o a r e
Ping statistics for 80.0.20.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 15ms, Maximum = 22ms, Average = 19ms

Din pcate, att configurarea VLAN-urilor prin comanda ip link, ct i activarea rutrii prin modificarea fiierului ip_forward din procfs sunt setri temporare, ele nefiind pstrate la repornirea sistemului. Pentru a obine o configuraie permanent, putem utiliza un script care s ruleze la startup, sau putem edita fiierele /etc/network/interfaces, respectiv /etc/sysctl.conf. Setrile din /etc/network/interfaces sunt procesate de ctre utilitarul mai vechi, vconfig. Dac acesta nu este disponibil pe sistem, trebuie instalat pachetul vlan:
root@HQ:~# apt-get install vlan

Vom defini cte o interfa pentru fiecare VLAN n cadrul fiierului, folosind convenia de nume ethx.y, unde ethx este denumirea interfeei fizice iar y este numrul VLAN-ului. n rest, sintaxa configurrii este identic cu cea utilizat pentru descrierea interfeelor fizice:
auto eth1.10 iface eth1.10 inet static address 80.0.10.1 netmask 255.255.255.0

Configurarea persistent a rutrii se efectueaz net.ipv4.ip_forward n fiierul /etc/sysctl.conf:


net.ipv4.ip_forward = 1

prin

editarea

opiunii

5.6.2 Multiple Spanning Tree Protocol


Odat cu apariia VLAN-urilor n cadrul reelelor Ethernet, s-a ivit necesitatea implementrii mai multor instane de Spanning Tree, astfel nct traficul provenind din VLAN-uri diferite s utilizeze legturi diferite. n cele mai multe reele, ntre oricare dou switch-uri exist mcar un traseu redundant; de exemplu, un switch de acces deine n mod uzual dou legturi de uplink, fiecare conectndu-se la un switch diferit de distribuie. n variantele clasice de STP, bazate pe standardul 802.1D, exist o singur instan de STP; aceasta nseamn c numai o singur topologie lipsit de bucle este activ la un moment dat n reea i c numai una dintre cele dou legturi de uplink a switch-ului de acces va transporta trafic, cealalt fiind blocat. Evident, configurarea echipamentelor astfel nct cele dou uplink-uri s fie utilizate simultan este de preferat unul dintre uplink-uri poate s transporte un set de VLAN-uri, cellalt alt set de VLAN-uri, ntr-o form de load balancing. Pentru a putea efectua aceast operaiune, productorii de echipamente de reea introduc variante proprietare de STP, care implementeaz cte o instan de Spanning Tree pentru fiecare VLAN. Cele mai cunoscute protocoale de acest tip sunt PVST (Per-VLAN Spanning Tree) i PVST+(PerVLAN Spanning Tree Plus), dezvoltate de ctre Cisco. PVST+ reuete s ndeplineasc scopul de distribuire difereniat a traficului din VLAN-uri diferite, ns ridic probleme de scalabilitate: odat cu creterea numrului de VLAN-uri, se mrete numrul instanelor independente de STP. Cum fiecare instan de STP necesit resurse de CPU i memorie, cu ct avem mai multe instane, cu att switch-ul va avea mai puine resurse de procesare la dispoziie pentru funcia sa de baz, cea de comutare a pachetelor. Mai mult dect att, numrul de topologii active diferite depinde de numrul de legturi redundante, i nu de numrul de VLAN-uri. n cazul switch-ului nostru de acces cu dou legturi de uplink, este evident c putem avea doar dou topologii diferite, indiferent de existena n reea a 2, 10 sau 1000 de VLAN-uri. Rularea a 1000 de instane de STP n condiiile n care exist doar dou posibiliti de topologie fr bucle este ineficient. MSTP (Multiple Spanning Tree Protocol) a fost dezvoltat tocmai pentru a adresa problema numrului fie insuficient (802.1D), fie excesiv (PVST+) de instane de STP n reelele cu VLAN-uri. El permite gruparea mai multor VLAN-uri ntr-o singur instan de STP, oferind flexibilitatea necesar

O p t i m i z a r e a r e e l e l o r l o c a l e | 179 configurrii optime a reelei. MSTP este un standard al IEEE, definit iniial n cadrul 802.1s, n 1998; ulterior, a fost integrat n 802.1Q-2005. Dup cum am precizat, MSTP permite asocierea unuia sau mai multor VLAN-uri cu o singur instan de STP. Evident, pot fi implementate mai multe instane, fiecare avnd asociat un grup diferit de VLAN-uri. Practic, ntr-o implementare de MSTP, trebuie decise urmtoarele: cte instane de STP sunt necesare pentru obinerea topologiilor dorite; ce VLAN-uri se mapeaz pe fiecare instan.

Regiuni i instane MSTP


O problem spinoas generat de evoluia STP de-a lungul timpului o reprezint interoperabilitatea dintre diferitele implementri ale protocolului n cadrul aceleiai reele. MSTP este compatibil att cu 802.1D ct i cu PVST+, dar pentru a putea comunica cu ele switch-urile ce ruleaz MSTP trebuie s determine ce versiune a protocolului implementeaz vecinii. Switch-urile care ruleaz MSTP cu aceiai parametri sunt grupate ntr-o regiune MSTP. n cele mai multe reele, o singur regiune MSTP este suficient; o regiune este identificat prin urmtoarele atribute comune tuturor switch-urilor membre: numele regiunii, care o identific i este format din 32 de caractere; revision number, care indic versiunea configuraiei unei regiuni i are o valoare ntre 0 i 65535; tabela de mapare ntre VLAN-uri i instane MSTP, care poate conine maxim 4096 de intrri.

Regiune MST

MSTI 1

CST

IST MSTI 2 CST

CST 5-16 Funcionarea instanelor MSTI i a instanei IST n cadrul unei regiuni Pentru a putea comunica cu alte forme de STP din cadrul reelei, fiecare regiune MSTP este considerat drept un black-box, fiind abstractizat printr-un switch fa de celelalte regiuni MSTP sau switch-uri izolate ce ruleaz 802.1D, PVST+ etc. La nivelul reelei globale, o topologie comun este determinat de ctre algoritmul STP ce ia n calcul forma abstract a regiunilor MSTP. n interiorul unei regiuni MSTP, o instan special denumit Internal Spanning Tree (IST) are rolul de a calcula aceast topologie global fr bucle pentru legturile de la grania dintre regiunea de MST i arborele asociat celorlalte entiti STP din ntreaga reea. Practic, instana de IST prezint ntrega regiune drept un singur switch virtual entitilor externe.

180 | R e e l e l o c a l e d e c a l c u l a t o a r e Maparea mai multor VLAN-uri ntr-o singur instan de STP are loc cu ajutorul instanelor MST (MSTI) dintr-o regiune. Acestea funcioneaz alturi de IST, cruia i se asociaz ntotdeauna numrul de instan MSTI 0. ntr-o regiune MSTP pot exista mai multe MSTI-uri, cu diveri indici (Ex: 1, 2, 3 etc.) i VLAN-uri asociate diferite (Ex: MSTI 1 10, 11, 12; MSTI 2 20, 21, 22; MSTI 3 31, 32, 33 etc.). n Fig. 5-16 este ilustrat modul de operare a dou instane MST, MSTI 1 i MSTI2, alturi de instana implicit a IST-ului, MSTI 0. n cele ce urmeaz, vom exemplifica procesul de configurare a MSTP pe dispozitive Cisco, pe topologia simpl din Fig 5-17. Topologia conine patru VLAN-uri, 10, 20, 30, 40, staiile din interiorul lor fiind conectate la switch-ul de acces Sw3. Dorim s obinem o configuraie MSTP care s dirijeze traficul VLAN-urilor 10 i 20 pe uplink-ul dintre Sw3 i Sw1, iar cel din VLAN-urile 30 i 40 pe uplink-ul dintre Sw3 i Sw2. Dac oricare dintre cele dou link-uri se defecteaz, VLAN-urile transportate pe interfaa respectiv trebuie comutate pe cellalt uplink. Pentru realizarea acestor cerine, va trebui s crem dou instane de MST: 1 i 2. Switch-ul Sw1 va trebui s devin root pe una dintre cele dou instane, iar Sw2 pe cealalt. Sw2 va fi configurat ca root i pentru instana IST, MSTI 0. Presupunem c interfeele dintre switch-uri au fost configurate n mod corect ca trunk-uri; nu se va insista prea mult pe sintaxa comenzilor de configurare MSTP, acestea putnd fi consultate n sursele indicate ca referin la sfritul capitolului. MSTI 1: VLANs 10, 20 MSTI 2: VLANs 30, 40 Fa 0/1
Sw1

Fa 0/1
Sw2

Fa 0/3 Fa 0/2
Sw3

Fa 0/3

5-17 Exemplu de topologie pentru configurarea MSTP Pe switch-ul Sw2 setrile sunt asemntoare, singura excepie fiind prioritile, care sunt configurate astfel nct Sw2 s devin root pe instana 2 i instana 0, cea corespunztoare Internal Spanning Tree-ului.
Sw2(config)#spanning-tree mode mst Sw2(config)#spanning-tree mst configuration Sw2(config-mst)#name REG1 Sw2(config-mst)#instance 1 vlan 10, 20 Sw2(config-mst)#instance 2 vlan 30, 40 Sw2(config-mst)#exit Sw2(config-mst)#spanning-tree mst 2 priority 8192 Sw2(config-mst)#spanning-tree mst 0 priority 8192

Pe Sw3 este necesar numai activarea MSTP i definirea celor dou instane:
Sw3(config)#spanning-tree mode mst Sw3(config)#spanning-tree mst configuration Sw3(config-mst)#name REG1 Sw3(config-mst)#instance 1 vlan 10, 20 Sw3(config-mst)#instance 2 vlan 30, 40

O p t i m i z a r e a r e e l e l o r l o c a l e | 181 Verificm efectele configuraiei prin dou comenzi de show pe Sw1; prima dintre ele, show spanning-tree mst configuration, afieaz maprile dintre VLAN-uri i instane de MST:
Sw1#show spanning-tree mst configuration Name [REG1] Revision 0 Instances configured 3 Instance Vlans mapped -------- --------------------------------------------------------------------0 1-9,11-19,21-29,31-39,41-4094 1 10,20 2 30,40 --------------------

Cea de-a doua comand, show spanning tree mst, ofer informaii detaliate despre caracteristicile celor trei instane de MSTP (MST0, MST1 i MST0), dintre care cele mai importante sunt adresa root-ului, rolul i starea interfeelor locale ale switch-ului pe fiecare instan, timere etc.
Sw1#show spanning-tree mst ##### MST0 Bridge Root vlans mapped: 1-9,11-19,21-29,31-39,41--4094 address 0019.5684.3700 priority 32768 (32768 sysid 0) address 001e.bdaa.ba80 priority 8192 (8192 sysid 0) port Fa0/1 path cost 0 Regional Root address 001e.bdaa.ba80 priority 8192 (8192 sysid 0) internal cost 200000 rem hops 19 Operational hello time 2 , forward delay 15, max age 20, txholdcount 6 Configured hello time 2 , forward delay 15, max age 20, max hops 20 Interface ---------------Fa0/1 Fa0/2 ##### MST1 Bridge Root Role ---Root Desg Sts --FWD FWD Cost --------200000 200000 Prio.Nbr -------128.15 128.18 Type -------------------------------P2p P2p 8193 (8192 sysid 1)

vlans mapped: 10,20 address 0019.5684.3700 this switch for MST1 Role ---Desg Desg Sts --FWD FWD Cost --------200000 200000

priority

Interface ---------------Fa0/1 Fa0/2 ##### MST2 Bridge Root

Prio.Nbr -------128.15 128.18

Type -------------------------------P2p P2p 32770 (32768 sysid 2) 8194 (8192 sysid 2) 200000 rem hops 19

vlans mapped: 30,40 address 0019.5684.3700 address 001e.bdaa.ba80 port Fa0/1 Role ---Root Altn Sts --FWD BLK Cost --------200000 200000

priority priority cost

Interface ---------------Fa0/1 Fa0/2

Prio.Nbr -------128.15 128.18

Type -------------------------------P2p P2p

Observm c switch-ul Sw1 este root pe instana MST1, n timp ce pe MST0 i MST2 root-ul este switch-ul cu adresa MAC 001e.bdaa.ba80 i prioritate 8192 (tim c acesta este Sw2). Toate porturile sunt n forwarding, fiind fie root port, fie designated port, cu excepia lui Fa 0/2 n instana MST2, care este blocat, ceea ce ne confirm faptul c traseul pachetelor din VLAN-urile 30 i 40 va fi de la Sw3 la Sw2, ndeplinind cerina initial.

5.7 Concluzii
n cadrul acestui capitol au fost prezentate cteva dintre tehnologiile dezvoltate n vederea optimizrii reelelor locale bazate pe Ethernet, precum i msurile de securitate implementate pe switch-uri pentru prevenirea celor mai des ntalnite atacuri la nivelul 2 al stivei OSI. n domeniul interconectrii LAN-urilor, apare posibilitatea separrii topologiei logice a unei reele de cea fizic, din raiuni de performan, securitate i uurin n administrare. Utilizatorii se conecteaz la interfee de acces ale switch-urilor, care i plaseaz automat ntr-un anumit VLAN. Pe legturile trunchi dintre switch-uri, care multiplexeaz traficul din mai multe VLAN-uri, cadrele sunt marcate cu un VLAN tag, introdus n antetul Ethernet de ctre standardul 802.1q, pentru a putea fi identificate. Deoarece VLAN-urile corespund unor domenii de broadcast i spaii de adrese IP

182 | R e e l e l o c a l e d e c a l c u l a t o a r e separate, este necesar introducerea unui echipament de reea de nivel 3 (ruter, switch layer 3) pentru asigurarea conectivitii dintre ele, prin procesul de rutare. O a doua direcie important n optimizarea performanei reelelor locale o reprezint legturile agregate, care ajut la mbuntirea limii de band i a disponibilitii legturilor de tip uplink dintre switch-uri. Prin combinarea mai multor interfee fizice ntr-o singur legtur logic se obine att posibilitatea creterii liniare a limii de band, care se poate adapta astfel la nevoile de trafic ale reelei, ct i toleran la defectarea unei interfee fizice, situaie care n mod tradiional genereaz un downtime semnificativ i pierderea de pachete. Distribuirea pachetelor pe interfeele fizice dintr-o legtur agregat poate fi fcut n funcie de adrese MAC, IP i porturi TCP/UDP surs sau destinaie. Dei legturile agregate pot fi configurate manual, se prefer negocierea acestora prin intermediul protocoalelor dedicate precum LACP (Link Aggregation Control Protocol) i PAgP (Port Aggregation Protocol). Opiunile de securitate la nivel de switch au aprut ca soluii la atacuri specifice care exploateaz vulnerabiliti n design-ul echipamentelor de reea i al protocoalelor precum ARP i DHCP. Astfel, limitarea numrului de adrese MAC la nivel de port mpiedic incidente de tip CAM table overflow, MAC address spoofing i DHCP starvation; DHCP Snooping elimin posibilitatea introducerii unui server de DHCP rogue de ctre atacator i stopeaz variantele avansate de DHCP starvation care manipuleaz cmpul CHADDR, iar Dynamic ARP Inspection oprete atacurile de tip ARP poisoning prin care un hacker poate intercepta i ruta traficul dintre dou gazde din aceeai reea local. n cazul n care o bre de securitate, o eroare de configurare sau defectarea unui echipament genereaz cantiti de trafic care pun n pericol buna funcionare a reelei, putem izola interfaa surs cu ajutorul opiunii de storm control. n practic, toate tehnologiile menionate mai sus sunt implementate prin utilitare i comenzi speciale n sistemele de operare ale switch-urilor; am examinat n acest sens Cisco IOS. De asemenea, pe sisteme Linux pot fi configurate interfee de tip trunchi 802.1q, cu utilitarele vconfig i ip link, i legturi agregate, implementate prin driver-ul de bonding i utilitarul ifenslave.

5.7.1 Linux
Comand ip link add Descriere Creare subinterfa virtual a unei interfee fizice, corespunztoare unui VLAN Creare subinterfa virtual a unei interfee fizice, corespunztoare unui VLAN Configurare interfee agregate

vconfig

ifenslave

5.7.2 Cisco IOS


Comand vlan switchport mode switchport access switchport trunk show vlan Descriere Creare VLAN pe switch Definire mod interfa acces sau trunchi Asociere VLAN pentru un port de acces Configurare legtur trunchi Afiare VLAN-uri definite pe switch i porturi asociate

O p t i m i z a r e a r e e l e l o r l o c a l e | 183 show interfaces trunk interface type mod/port.X encapsulation dot1q X switchport port-security show port-security ip dhcp snooping show ip dhcp snooping ip arp inspection show ip arp inspection storm control show storm control Afiare interfee trunchi i VLAN-uri transportate pe ele Creare subinterfa X, pentru configurarea router-on-astick Asocierea VLAN cu o subinterfa pentru configurarea router-on-a-stick Configurare setri port-security pe un port de acces Afiare sumar setri port-security Configurare setri DHCP Snooping Afiare setri DHCP snooping Configurare setri Dynamic ARP Inspection Afiare configuraie i statistici DAI Configurare setri storm control Afiare setri i statistici storm control

5.8 ntrebri
1. 2. VLAN-urile ndeplinesc urmtoarele funcii: Segmenteaz domeniile de coliziune Segmenteaz domeniile de broadcast Separ topologia logic de topologia fizic Asigur integritatea datelor la nivel 2 Tag-ul de VLAN de tip 802.1q conine cmpurile: Tip interfa VTP domain VLAN ID Priority Code Point

3. Protocolul VTP este folosit pentru negocierea legturilor agregate / Interfeele fizice dintr-o legtur agregat nu pot trimite trafic simultan. Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 4. 5. Limitarea numrului de adrese MAC pe un port mpiedic atacurile de tip: ARP poisoning IP spoofing DHCP starvation CAM table overflow Utilitarul folosit pe Linux pentru configurarea legturilor agregate se numete: ifconfig ip link ifenslave etherchannel

184 | R e e l e l o c a l e d e c a l c u l a t o a r e

5.9 Referine
[1] Andrew S. Tanenbaum, David J. Wetherall. Computer Networks (5th Edition). 2010 October. [2] IEEE 802.1Q-2005 - IEEE Standard for Local and Metropolitan Area Networks---Virtual Bridged Local Area Networks. IEEE 802.1 Standards. IEEE. Accesat la http://standards.ieee.org/findstds/standard/802.1Q-2005.html [1.09.2012]. [3] IEEE 802.1Q-2011 IEEE Standard for Local and metropolitan area networks--Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks. IEEE 802.1 Standards. IEEE. Accesat la http://standards.ieee.org/findstds/standard/802.1Q-2011.html [1.09.2012]. [4] IEEE 802.1AX-2008 - IEEE Standard for Local and metropolitan area networks--Link Aggregation. IEEE 802.1 Standards. IEEE. Accesat la http://standards.ieee.org/findstds/standard/802.1AX-2008.html [1.09.2012]. [5] CCNP SWITCH 642-813 Official Certification Guide. David Hucaby. 2010 February. [6] Network Warrior, Second Edition. Gary A. Donahue. 2011 May. [7] Cisco LAN Switching Configuration Handbook, Second Edition. Stephen McQuerry, David Jansen, David Hucaby. 2009 June. [8] Linux Ethernet Bonding Driver HOWTO. Thomas Davis, Willy Tarreau, Constantine Gavrilov, Chad N. Tindel, Janice Girouard, Jay Vosburgh, Mitch Williams. Accesat la http://www.kernel.org/doc/Documentation/networking/bonding.txt [1.09.2012]. [9] IEEE 802.1Q VLAN Tutorial. Graham Shaw. Accesat la http://www.microhowto.info/tutorials/802.1q.html [1.09.2012]. [10] Configure an Ethernet interface as a VLAN trunk (Debian). Graham Shaw. Accesat la http://www.microhowto.info/howto/configure_an_ethernet_interface_as_a_vlan_trunk _on_debian.html [1.09.2012].

P a g e | 185

6 Rutare
Ce se nva n acest capitol? Cine este Edsger Wybe Dijskstra (1930-2002) a fost un om de tiin olandez, cunoscut mai ales pentru algoritmul care i poart numele i pe care se bazeaz protocoalele de rutare OSPF i IS-IS. Domeniile n care i-a mai lsat amprenta includ programarea paralel (prin conceptul de semafor) i sistemele distribuite (self-stabilization). Comunicarea n afara reelei locale a aprut ca o evoluie predictibil a tehnologiei, realizat prin implementarea unor protocoale de adresare ierarhic (IPv4, IPv6) i prin dezvoltarea procesului de rutare. Rutarea este procesul de selectare a unor ci adecvate de transmitere a datelor ntr-o reea, printr-o analiz a informaiilor de adresare de nivel 3, n vederea atingerii destinaiei finale. Capitolul curent trateaz rutarea la nivelul reelelor de calculatoare, inclusiv toate componentele i protocoalele responsabile de succesul acestui proces. Rolul unui ruter Tabela de rutare Tipuri de rute Protocoale de rutare

6.1 Rolul unui ruter


Echipamentele de comutare a cadrelor, precum switch-ul, realizeaz direcionarea adecvat a datelor prin inspecia informaiilor de adresare din antetele adugate la acest nivel. Datorit design-ului neierarhic al adresrii de nivel 2, crearea unei reele globale interconectate prin astfel de echipamente (i implicit adresate doar prin adrese MAC) ar presupune construirea i parcurgerea unor tabele de comutare de dimensiuni foarte mari. Un astfel de proces ar introduce o degradare acut a performanelor cauzat de timpul necesar parcurgerii secveniale a tuturor intrrilor din aceste tabele, precum i de multitudinea de pachete cu adres destinaie broadcast de nivel 2 (FF-FF-FF-FF-FF-FF). Mai precis, fiecare echipament de comutare ar trebui s construiasc o tabel CAM care s conin intrri pentru toate adresele MAC ale tuturor echipamentelor la nivel global, dup care s parcurg toate intrrile din aceast tabel, n cutarea interfeei de ieire. Aa cum este prezentat i n capitolul 4, adresarea IP este gndit ierarhic, acest lucru permind transmiterea informaiilor n mod eficient la nivel global. Cu toate acestea, pentru a realiza distribuirea adecvat a pachetelor la acest nivel, este necesar un nou tip de echipament specializat n analiza informaiilor de adresare IP i n luarea deciziilor de comutare. Ruterul este echipamentul de interconectare care rezolv aceast problem. n ceea ce privete funcionalitatea, un ruter este similar unui switch de nivel 2. Switch-ul primete pachete IP, le inspecteaz i ia decizii privind transmiterea lor n continuare, pe baza informaiilor din antetele de la acest nivel. Totui, un ruter este diferit de analogul su de nivel 2 prin capabilitile sale extinse i procesele complexe de analiz a informaiilor. Din perspectiv hardware, echipamentul de rutare poate fi asemnat unui calculator personal cu mai multe plci de reea, prin intermediul crora poate comunica. Un ruter are componentele de baz ale unui calculator: o surs de alimentare, o unitate central de procesare, memorie RAM, o

186 | R e e l e l o c a l e d e c a l c u l a t o a r e plac de baz (numita asiu), slot-uri de extensie, precum i memorie special n vederea stocrii pe termen lung a informaiilor. Din punct de vedere hardware, un ruter nu este altceva dect un calculator personal specializat n comutarea pachetelor. Aceast specializare este realizat prin specificaiile tehnice ale tuturor componentelor precizate anterior, precum i de o serie de circuite electronice particulare. Acestea poart numele de ASIC-uri (Application Specific Integrated Circuits) i sunt capabile s analizeze informaii privind pachetele de reea fr a fi necesar intervenia unitii centrale de procesare. Putem nelege aceste circuite prin analogie cu procesoarele grafice specializate, care sunt mult mai eficiente n redarea graficii dect procesoarele de uz general. Practic, orice calculator cu mai mult de dou placi de reea conectate poate juca rolul de ruter. Singura diferen ntre acesta i un echipament dedicat const n eficiena oferit de ASIC-uri i de specificaiile detaliate ale componentelor.

6.1.1 Procesul de rutare


Procesul de rutare const n analiza i transmiterea pachetelor ctre destinaia lor final, pe baza informaiilor din antetul de nivel 3. Procesul are loc la nivelul ruterelor i este efectuat individual pentru fiecare pachet n parte. Pentru a transmite un pachet ctre destinaia final un ruter analizeaz adresa IP destinaie din antetul de nivel 3 al fiecrui pachet i ia o decizie fie privind interfaa de ieire, fie privind urmtorul hop n calea ctre destinaie. Pentru a nelege rutarea este necesar introducerea ctorva concepte i componente noi. Acestea sunt ilustrate la sfritul seciunii, n vederea clarificrii funcionrii lor. Ruta reprezint elementul de baz n procesul de rutare. Rutele pot fi privite ca nite semne de circulaie n lumea reelelor. Acestea indic drumul pe care pachetele trebuie s circule pentru a ajunge la destinaie. O rut este alctuit din dou pri: o regul i o aciune. O rut este definit minimal la nivelul unui ruter prin urmtoarele informaii eseniale (fiind posibile i alte specificri): Adresa reelei destinaie; Masca reelei destinaie; Adresa urmtorului hop (specificat printr-o adres IP) n calea ctre destinaie; Interfaa de ieire. Interpretarea acestor cmpuri este urmtoarea: pentru a ajunge la o destinaie din reeaua specificat prin <adresa reelei destinaie> mpreun cu <masca reelei destinaie>, pachetul trebuie trimis ctre dispozitivul care are adresa IP egal cu adresa din cmpul <adresa urmtorului hop> prin intermediul interfeei <interfaa de ieire>. Dei precizarea adresei urmtorului hop este mereu suficient pentru funcionarea adecvat a unei rute, o rut poate fi specificat i prin precizarea interfeei de ieire. Desigur, o rut specificat printr-o interfa de ieire ntr-un mediu multiaccess, dar care nu include i o adres a hop-ului urmtor, ridic o serie de probleme i poate conduce la netransmiterea pachetelor. Ca msur de precauie, este bine ca rutele s fie specificate folosind adresa IP a urmtorului hop chiar dac n cazul particular al legturilor punct la punct (linii seriale, etc.) o rut poate fi specificat i doar prin interfaa de ieire. Dup cum se poate observa din figura 6-1, fiecare rut conine i informaii cu privire la eficiena sa, pe lng cmpurile prezentate mai sus. Analog reelei de drumuri a unei ri, pot exista mai multe ci pe care o main poate ajunge la destinaie - dar calitatea acestora este variabil. n cazul ruterelor pot exista mai multe ci ctre aceeai destinaie, dar numai una dintre acestea va fi utilizat, i anume, cea considerat cea mai eficient n raport cu un anumit set de criterii. Informaiile pe baza crora este aleas ruta optim sunt prezentate n seciunea urmtoare a acestui capitol.

R u t a r e | 187 Aa cum o intersecie poate conine mai multe semnele de circulaie, i ruterele conin mai multe rute, conducnd ctre toate destinaiile finale n care se poate ajunge prin echipamentul respectiv. Totalitatea rutelor optime prezente pe un ruter formeaz tabela de rutare. Adresa reea 194.230.85.0 194.230.85.128 194.230.85.0 194.230.86.0 Masc /26 /26 /24 /24 Next Hop 172.17.0.9 194.230.5.65 199.17.17.0 Interfaa E0 S0 E1 -

6-1: Tabela de rutare cu patru intrri


Figura 6-1 prezint o tabel de rutare cu patru intrri. Dup cum se poate observa, acestea sunt aezate n ordinea descresctoare a lungimii mtii de reea. Acest lucru se datoreaz modului n care un ruter parcurge tabela de rutare la primirea unui pachet, pentru a asigura transmiterea adecvat a acestuia. Ceea ce trebuie reinut este faptul c o masc mai lung (coninnd mai muli bii setai la valoarea 1) definete o adres de reea mai specific. O destinaie mai specific va avea mereu prioritate n faa unei destinaii cu un nivel mai nalt de generalitate. n momentul n care un ruter primete un pachet, i analizeaz adresa IP destinaie. n cazul n care aceasta coincide cu una dintre adresele IP configurate pe vreuna dintre interfeele sale, ruterul nu mai trimite pachetul mai departe (pachetul i era destinat lui), n cadrul procesului de rutare: ruterul preia pachetul i l d mai departe spre procesare intern n cadrul nivelelor superioare ale stivei OSI. n caz contrar, acesta analizeaz adresa IP i masca de reea configurate pe interfaa pe care a fost primit pachetul. Ruterul efectueaz operaia de i logic ntre cele dou informaii, reine rezultatul, dup care ruleaz operaia din nou - de data aceasta ntre masca de reea a interfeei pe care a sosit pachetul i adresa IP destinaie. n urma comparaiei celor dou rezultate, ruterul poate determina dac pachetul respectiv trebuie rutat sau nu. n cazul n care cele dou rezultate nu difer, pachetul este orientat ctre o destinaie din cadrul reelei din care a venit. Ca atare, ruterul nu intervine asupra acestui pachet i l ignor. n caz contrar, dac rezultatele difer, ruterul decide naintarea pachetului n cadrul procesului de rutare. n acest moment ruterul ncepe parcurgerea tabelei de rutare. Ruterul ia decizia de rutare individual, pentru fiecare pachet n parte, innd cont numai de informaiile coninute n aceast tabel. Astfel, ruterul parcurge secvenial fiecare intrare din tabela de rutare, n ordinea n care acestea sunt memorate (n funcie de lungimea mtii de reea asociate). Ca i n cadrul pailor anteriori, ruterul realizeaz operaia de i logic ntre masca asociat unei intrri din cadrul tabelei de rutare i adresa IP destinaie a pachetului. Rezultatul obinut este apoi comparat cu adresa IP a reelei asociate, conform intrrii din tabela de rutare care este verificat n acest moment. n cazul n care cele dou adrese coincid, partea de identificare a rutei (adic regula) a fost validat, iar pachetul poate fi naintat conform prii de aciune a rutei (adresa hopului urmtor / interfaa de ieire). n caz contrar, pachetul nu este destinat unei adrese definite de ruta verificat i se poate trece la verificarea urmtoarei rute din tabela de rutare. Acest proces are loc pentru fiecare intrare din tabela de rutare, fie pn la gsirea unei rute valide n vederea naintrii pachetului, fie pn la epuizarea intrrilor din tabela de rutare. n cazul n care pachetul primit nu a putut fi naintat conform tabelei, ruterul va trimite napoi ctre surs un pachet ICMP de tip 3: Destination Unreachable. ntregul proces poate fi observat n cadrul figurii 6-2.

188 | R e e l e l o c a l e d e c a l c u l a t o a r e

6-2: Procesul de rutare


Modul de decizie al unui ruter este ilustrat n urmtorul exemplu. Vom considera un ruter care conecteaz mai multe reele, dup cum este prezentat n figura 6-3.

R u t a r e | 189
194.230.85.0/26

E0 194.230.85.0/24 E1 S1 194.230.86.0/24

ISP
S0

194.230.85.128/26

6-3: Ruter cu rute ctre 4 reele


Vom considera c echipamentul din figura 6-3 are construit o tabel de rutare identic cu cea din figura 6-1 i c acesta primete un pachet cu destinaia 194.230.85.66 pe interfaa S1. Procesul de rutare se desfoar n urmtorii pai: 1. Ruterul ncepe prin extragerea informaiilor privind adresa IP de destinaie a pachetului. 2. Aceasta este comparat cu adresele IP configurate pe toate interfeele ruterului i se observ c acesta nu este un pachet destinat ruterului. 3. Ruterul realizeaz operaia de i logic ntre adresa IP i masca de reea configurate pe interfaa pe care a fost primit pachetul. 4. Ruterul realizeaz operaia de i logic ntre adresa IP de destinaie a pachetului i masca de reea configurat pe interfaa pe care a fost primit pachetul. 5. Cele dou rezultate sunt comparate i se ajunge la concluzia c nu sunt egale. 6. Se trece la parcurgerea tabelei de rutare. Ruterul parcurge prima intrare din tabel. 7. Este realizat operaia de i logic ntre adresa IP destinaie a pachetului primit i masca de reea care corespunde respectivei intrri din tabel, obinndu-se urmtorul rezultat: 194.230.85.64 8. Rezultatul obinut la pasul anterior este comparat cu adresa de reea inclus n prima intrare din tabela de rutare. 9. Se observ c cele dou valori nu sunt egale (194.230.85.64 != 194.230.85.0), i ca atare pachetul nu este rutat conform primei rute. 10. Ruterul parcurge urmtoarea intrare din tabel. 11. Se repeta paii 7-10 pn cnd cele dou valori comparate n pasul 9 sunt egale. n cazul de fa acest lucru va avea loc la verificarea celei de-a treia intrri din tabela de rutare. 12. n momentul n care cele dou valori sunt egale, pachetul este trimis conform informaiilor de rutare din ruta validat. n exemplul de fa pachetul iese prin interfaa E1 ctre dispozitivul urmtor n calea ctre destinaie 194.230.5.65 Dac analizm ndeaproape procesul de rutare descris anterior, i n special tabela de rutare construit, vedem c a 3-a rut se suprapune primelor dou intrri. Se poate vedea astfel c rutele sunt aezate n tabela de rutare n ordinea descresctoare a lungimii mtii de reea. Este eficient ca o cale ctre o reea mai specific s aib prioritate n faa unei ci ctre o reea mai general.

190 | R e e l e l o c a l e d e c a l c u l a t o a r e Concret, pentru un ruter care a construit o tabel de rutare ca n figura 6-1, un pachet cu adresa IP destinaie din intervalele 194.230.85.0-194.230.85.63 sau 194.230.85.128-194.230.85.191 nu va fi transmis conform informaiilor de rutare incluse n ce-a de-a treia rut. De asemenea, trebuie menionat c adresele pentru hop-urile urmtoare n calea ctre destinaie sunt adresele primului echipament din calea respectiv, reprezentat n figur printr-un nor. Am explicat i exemplificat mai sus procesul clasic de rutare care are loc la nivelul procesorului echipamentului de rutare. Aa cum am amintit la nceputul acestei seciuni, ruterele dedicate conin o serie de circuite electronice speciale capabile s direcioneze pachete fr intervenia procesorului principal. Acest tip de rutare are loc mult mai repede i este condus de un set diferit de reguli. n cazul echipamentelor Cisco acest tip de rutare poarta numele de Cisco Express Forwarding (CEF).

6.1.2 Tipuri de rute


Intrrile din tabela de rutare au ataate o serie de informaii n plus fa de cele strict necesare naintrii pachetelor. Aceste informaii sunt folosite pentru a alege cea mai eficient cale ctre destinaie. Una dintre caracteristicile cele mai importante ale unei rute este tipul acesteia, aa cum se poate observa n seciunile urmtoare. Dei clasificarea rutelor este comun n toate sistemele de operare, notaiile folosite pentru specificarea tipului rutelor difer.

Rute direct conectate


O rut direct conectat este acea rut care apare n tabela de rutare ca urmare a configurrii unei interfee active a unui echipament de reea cu o combinaie valid de adres IP i masc de reea. O rut direct conectat apare n tabela de rutare n momentul n care unei interfee active i se atribuie o adres IP. n acest moment un ruter va avea configurat o interfa n cadrul unei reele. Ca atare, echipamentul va avea o cale ctre aceast reea prin intermediul interfeei proaspt configurate. Intrarea din cadrul tabelei de rutare asociat acestui tip de rut conine ca adres a reelei destinaie adresa obinut prin operaia de i logic ntre adresa IP configurat pe interfa i masca de reea configurat pe interfa, iar masca va fi aceeai cu cea configurat pe interfa. Ca exemplu vom considera urmtorul scenariu: interfaa Ethernet 0 a unui ruter este configurat cu adresa IP 192.168.1.251 i masca de reea 255.255.192.0. Ca urmare a acestei configurri ruterul va putea trimite pachete ctre reeaua n care are configurat o interfa, prin intermediul rutei direct conectate din figura 6-4. Adresa reea Masc Next Hop Interfaa 192.168.0.0 /18 E0

6-4: Rut direct conectat


O greeal des ntlnit n diagnosticarea conectivitii prin rute direct conectate const n atribuirea unei adrese IP unei interfee inactive a unui ruter. n acest caz nu se vor crea intrri noi la nivelul tabelei de rutare deoarece, dei exista o interfa n interiorul unei reele noi, echipamentul de rutare nu poate comuta pachete spre aceasta. n momentul n care o interfa care are asociat o rut direct conectat pierde conectivitatea, sau dac nu mai are atribuite o adres IP i o masc valide, intrarea corespunztoare din tabela de rutare va fi automat tears de ctre sistemul de operare al echipamentului de rutare. Pe Cisco IOS o rut direct conectat este marcat de obicei n interiorul tabelei de rutare prin caracterul C.

R u t a r e | 191

Rute statice
Rutele statice sunt acele intrri din tabela de rutare care sunt introduse manual de ctre administratorul echipamentului de reea. Acest tip de rute trebuie ntreinut manual de ctre administratorul reelei; prin urmare, se caut utilizarea ct mai rar a acestora n reelele de dimensiuni mari, datorit scalabilitii lor reduse. Cel mai mare dezavantaj al rutelor statice const n necesitatea interveniei administratorului pentru a adapta procesul de rutare la modificrile survenite n interiorul reelei. Pe de alt parte, rutarea static este cel mai predictibil mod de a transmite pachetele, calea unui pachet ctre destinaie fiind foarte uor de determinat. De asemenea, utilizarea rutelor statice la nivelul unei reele reduce ncrcarea procesorului ruterelor, deoarece acesta nu mai trebuie s intervin n procesarea pachetelor generate de protocoalele de rutare. n cazul n care este configurat o rut static, aceasta apare n tabela de rutare doar dac exist o rut ctre hop-ul urmtor specificat sau dac interfaa de ieire specificat este activ. Pe Cisco IOS, de cele mai multe ori, o rut static este identificat n tabela de rutare prin caracterul S.

Rute dinamice
Rutele dinamice sunt acele rute care apar n tabela de rutare ca urmare a rulrii unui protocol de rutare. Aceste rute sunt identificate n interiorul tabelei de rutare prin diverse prescurtri ale protocolului de rutare prin care au fost nvate. Acest tip de rute este cel mai frecvent ntlnit n reelele din ziua de azi. Rutele dinamice din tabela de rutare sunt construite pe baza informaiilor comunicate de protocoalele de rutare ntre diferitele rutere, informaii pe baza crora este estimat i eficiena unei rute. Mai multe informaii privind protocoalele de rutare pot fi gsite n seciunea dedicat din acest capitol.

Rute implicite
O rut implicit este acea rut pe care se trimit toate pachetele care nu au fost trimise conform unei intrri mai specifice din tabela de rutare. Ruta implicit este cea mai general rut i deci este poziionat ultima n tabela de rutare. Aceasta se potrivete oricrui pachet, conform procesului de rutare explicat anterior. Rutele implicite pot fi uor recunoscute deoarece au mereu adresa de reea 0.0.0.0 i masca 0.0.0.0. Rutele implicite sunt de obicei utilizate n interiorul reelelor locale pentru a indica calea ctre Internet. O rut implicit poate intra n tabela de rutare att prin configurarea manual a acesteia de ctre administrator, ct i prin intermediul unui protocol de rutare. Prin urmare, o rut implicit poate fi static sau dinamic. n interiorul unei tabele de rutare pot exista mai multe rute implicite. Desigur, un pachet nu va ajunge niciodat la ce-a de-a dou rut implicit, deoarece va fi rutat conform primei rute. Totui, dat fiind c o rut implicit static dispare n aceleai condiii ca o rut static obinuit, se pot configura mai multe rute implicite n vederea asigurrii redundanei.

Rute de filtrare
Rutele de filtrare sunt acele rute care nu nainteaz traficul n calea ctre destinaie, avnd rolul de a filtra traficul.

192 | R e e l e l o c a l e d e c a l c u l a t o a r e Rutele de filtrare, numite i Black Hole Routes sau Null Routes, sunt configurate static de ctre administratorul reelei. Acest tip de rute nu sunt specificate prin next hop ci doar prin interfaa de ieire. Interfaa de ieire a unei rute de filtrare este mereu o interfa virtual inexistent (de exemplu, n IOS interfaa Null 0). Orice pachet trimis ctre aceast interfa este ignorat de ctre ruter, nefiind trimis pe niciuna dintre interfee. Cel mai des rutele de filtrare se folosesc n acelai timp cu una sau mai multe rute statice care adreseaz mai specific acelai spaiu de adrese, precum n urmtorul exemplu: Adresa reea Masc 192.168.0.0 192.168.0.64 192.168.0.0 0.0.0.0 /26 /26 /24 /0 Next Hop 192.168.1.1 192.168.2.1 194.155.12.11 Interfaa S0 Null0

6-5: Tabela de rutare cu 4 intrri


Spre exemplificare, s considerm un ruter cu tabela de rutare conform figurii 6-5. n acest caz pachetele ctre 192.168.0.0/26 i ctre 192.168.0.64/26 vor fi rutate conform primelor dou intrri. n acelai timp, orice pachet ctre alt destinaie va fi rutat conform rutei implicite, cu excepia pachetelor ctre 192.168.0.128/25, care vor fi ignorate.

6.1.3 Construirea tabelei de rutare


Aa cum a fost amintit n seciunile anterioare, tabelele de rutare sunt construite adugnd rutele n ordinea descresctoare a lungimii mtii de reea. Avnd n vedere aceast regul, o rut mai specific este ntotdeauna plasat naintea unei rute mai generale n interiorul tabelei de rutare. Acest tip de sortare este un principiu elementar care asigur rutarea adecvat ctre destinaie a pachetelor; totui, este insuficient pentru a asigura rutarea eficient a pachetelor. Astfel, pentru a asigura nu numai corectitudinea rutrii ctre destinaie, ci i eficiena acesteia, au fost introduse conceptele descrise mai jos.

Distana administrativ
Distana administrativ este o caracteristic a rutelor care indic sigurana lor, n funcie de metoda prin care au fost nvate. Distana administrativ este o constant asociat fiecrei rute, clasificnd rutele n funcie de nivelul de siguran pe care l asigur. O valoare mai mic este preferabil i indic o prioritate mai mare n rutare. De exemplu, o rut static este ntotdeauna considerat mai de ncredere dect o rut dinamic, nvat prin intermediul unui protocol de rutare; de aceea, distana administrativ a unei rute statice este mai mic dect distana administrativ a unei rute dinamice. Distana administrativ face posibil diferenierea att ntre rutele direct conectate, cele statice i cele dinamice, ct i ntre diferitele protocoale de rutare dinamic. n esen, distana administrativ nu caracterizeaz ruta, ci metoda prin care aceasta a fost nvat. Figura 6-6 ilustreaz valorile distanelor administrative pentru toate tipurile de rute: Tip rut Direct Conectat Static Dinamic Dinamic Protocol de rutare EIGRP (Ruta Agregat) BGP Distana administrativ 0 1 5 20

R u t a r e | 193

Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic

EIGRP IGRP OSPF IS-IS RIP ODR iBGP

90 100 110 115 120 160 200

6-6: Distanele administrative ale protocoalelor de rutare


Dac pentru aceeai reea destinaie i cu aceeai lungime a mtii de reea se cunosc mai multe rute, n tabela de rutare va fi introdus ruta care este nvat prin metoda cu cea mai mic distan administrativ.

Metrica
Metrica este caracteristica rutelor care permite diferenierea acestora n funcie de eficiena cii ctre destinaie. Dac distana administrativ ofer o clasificare a rutelor n funcie de modul n care au fost nvate, metrica creeaz posibilitatea diferenierii rutelor n funcie de capacitatea de transmisie a datelor peste calea propus. Valorile mai mici sunt preferate. n cazul n care pentru aceeai reea destinaie i cu aceeai lungime a mtii de reea se cunosc mai multe rute cu aceeai distan administrativ, n tabela de rutare va fi introdus ruta care are cea mai mic metric. n cazul rutelor statice metrica poate fi configurat manual. Aceast funcionalitate permite configurarea rutelor statice pentru a asigura redundana. Astfel, un administrator poate configura dou rute statice ctre aceeai destinaie, cu metrici diferite. n mod uzual va fi inserat n interiorul tabelei de rutare doar ruta cu metrica mai mic, dar, dac aceasta este indisponibil (deoarece interfaa este czut, sau din cauza lipsei rutei ctre hop-ul urmtor), ruta cu o metric mai mare o va nlocui. n cazul protocoalelor de rutare dinamic metrica este calculat intern de ctre acestea. Fiecare protocol de rutare utilizeaz informaii multiple n vederea determinrii celei mai bune ci ctre destinaie. De altfel, protocoalele sunt evaluate i n funcie de aceste criterii. De exemplu, un protocol de rutare care ia considerare n calculul metricii limea de band ofer o imagine mai bun a capacitii rutei respective de a transmite date, fa de un protocol care ia n calcul numrul de rutere pn la destinaie.

6.1.4 Agregarea rutelor


tim c un ruter i construiete tabela de rutare adugnd intrri pentru toate reelele destinaie ctre care poate direciona pachete. Datorit numrului mare de reele n care un ruter poate nva s ajung, tabela de rutare poate cpta dimensiuni foarte mari. Dat fiind c, pentru a ruta adecvat un pachet, un ruter trebuie s parcurg toate intrrile din tabela de rutare pn la aflarea unei rute potrivite, rutarea crete n complexitate odat cu mrimea tabelei. Agregarea rutelor const n nlocuirea a dou sau mai multe intrri din tabela de rutare cu o singur intrare mai general, cu o masc de reea mai mic. Ruta agregat acoper rutele nlocuite n vederea eficientizrii procesului de rutare. Condiia cea mai important pentru ca agregarea s fie posibil este ca rutele nlocuite s fie consecutive i

194 | R e e l e l o c a l e d e c a l c u l a t o a r e continue. De asemenea, agregarea (denumit i sumarizare) se face mereu asupra unui numr par de reele specifice. Astfel, n cazul n care spaiul de adrese 10.0.0.0/24 este mprit n patru spaii egale ca dimensiune (10.0.0.0/26, 10.0.0.64/26, 10.0.0.128/26, 10.0.0.192/26) nu se vor putea agrega dect reelele consecutive, luate cte 2 sau 4. Pentru a oferi o imagine mai amnunit a procesului de agregare vom examina urmtorul exemplu. S presupunem c dou rutere sunt conectate ca n figura 6-7 i au construite tabelele de rutare. 10.1.2.0/25 Fa0/0 Fa0/1 10.1.2.128/25 6-7: Schem de reea pentru un scenariu de sumarizare Tip Adresa reea Masc C C C S 192.168.1.0 10.1.2.0 10.1.2.128 0.0.0.0 /30 /25 /25 /0 Next Hop 192.168.1.2 Interfaa S0/0 Fa0/0 Fa0/1 BR

.1 S 0/0

192.168.1.0/30

.2 S 0/1

HQ

6-8: Tabela de rutare BR Tip Adresa reea Masc C S S 192.168.1.0 10.1.2.0 10.1.2.128 /30 /25 /25 Next Hop 192.168.1.1 192.168.1.1 Interfaa S0/0 -

6-9: Tabela de rutare HQ fr rute sumarizate Tip Adresa reea Masc C S 192.168.1.0 10.1.2.0 /30 /24 Next Hop 192.168.1.1 Interfaa S0/0 -

6-10: Tabela de rutare HQ cu rute sumarizate Dup cum se poate observa din scenariul prezentat mai sus, ruterul BR are 3 reele direct conectate. Dou dintre acestea sunt reele cu masca /25 continue. Pentru ruterul HQ aceste dou reele sunt configurate prin ruterul BR (nex hop) 192.168.1.1 i au cte o intrare n tabela de rutare. Deoarece subreelele 10.1.2.0/25 i 10.1.2.128/25 sunt consecutive, cele dou intrri din tabela de rutare e ruterului HQ pot fi nlocuite cu o singur intrare mai general care s acopere ambele reele, i anume 10.1.2.0/24 aa cum se poate observa n figura 6-10.

6.2 Protocoale de rutare


Modelul rutrii statice, dei ofer control, devine impracticabil odat cu creterea reelei administrate. Pe lng activitile administrative necesare ntreinerii tabelelor de rutare, dinamica

R u t a r e | 195 unei reele de dimensiuni mari ridic o serie de provocri privind adaptarea la disponibilitatea serviciilor pe care rutarea static nu le poate satisface. Pentru a rezolva aceste probleme au fost introduse protocoalele de rutare. Un protocol de rutare reprezint un serviciu care ruleaz la nivelul ruterelor i faciliteaz schimbul de informaii ntre acestea n vederea construirii tabelei de rutare pentru fiecare echipament. Protocoalele de rutare permit construirea automat a tabelelor de rutare prin schimbul continuu de informaii ntre rutere privind reelele direct conectate i rutele statice configurate pe echipamente. Funcionarea reelelor actuale este posibil prin schimbul continuu de informaii ntre ruterele care ruleaz acelai protocol de rutare i care fac parte din aceeai reea. Informaiile schimbate ntre echipamente difer n funcie de protocolul de rutare utilizat, dar de cele mai multe ori acestea se refer la disponibilitatea unei ci ctre o reea destinaie i la starea echipamentelor prin care un pachet trebuie s treac pentru a ajunge ctre aceasta. Un ruter care ruleaz un protocol de rutare schimb informaii cu ruterele vecine care ruleaz acelai protocol i, pe baza informaiilor deinute, i construiete tabela de rutare. n cazul n care apare o modificare n reea (o interfa ctre o reea nu mai este disponibil, sau un echipament intermediar nu mai este disponibil), informaiile schimbate prin intermediul protocolului de rutare vor permite adaptarea la noua topologie modificnd automat tabele de rutare ale ruterelor care ruleaz acelai protocol. Exist un termen foarte asemntor dar cu un neles cu totul diferit, i anume protocol rutat. Este important ca diferena dintre cei doi termeni s fie clar. Un protocol de rutare, conform definiiei de mai sus, este un serviciu care asigur nvarea automat a cilor ctre diferite subreele. Un protocol rutat este un protocol care asigur transmiterea datelor peste cile nvate printr-un protocol de rutare. ntr-o reea de calculatoare exist ntotdeauna un protocol rutat, dar este posibil s nu fie operaional niciun protocol de rutare. Un protocol rutat este protocolul care asigur transmiterea datelor n reea peste cile nvate prin protocolul de rutare. De exemplu, un protocol de rutare cum ar fi RIP, OSPF, sau EIGRP poate asigura nvarea rutelor pentru un protocol rutat precum IP sau IPX. Un alt termen relevant pentru nelegerea protocoalelor de rutare este cel de convergen. Convergena unei reele de calculatoare const n starea final de stabilitate la care se ajunge n momentul n care toate ruterele au schimbat informaii de rutare i i-au construit tabele de rutare astfel nct s poat accesa toate subreelele administrate.

6.2.1 Clasificarea protocoalelor de rutare


n funcie de capabilitile lor, precum si n funcie de modul n care funcioneaz, protocoalele de rutare sunt clasificate n dou mari categorii: protocoale bazate pe distane vector i protocoale link state. n general protocoalele link state sunt considerate mai de ncredere, avnd o distan administrativ mai mic. Pentru a explica aceste concepte va fi utilizat termenul de vecin. n domeniul protocoalelor de rutare, dou rutere sunt vecine n momentul n care sunt conectate pe una dintre interfee, neexistnd alte echipamente de nivel 3 ntre ele.

Distance vector
Protocoalele de rutare distance vector sunt acele protocoale care permit construirea tabelei de rutare fr ca echipamentul s aib o imagine proprie asupra ntregii reele n care opereaz. Numele acestui tip de protocoale ofer indicii cu privire la modul de operare al acestora. Protocoalele distance vector propag informaii cu privire la direcia n care un pachet trebuie trimis pentru a ajunge la destinaie (vector) i cu privire la distana sau costul cii care ajunge la aceasta (distance).

196 | R e e l e l o c a l e d e c a l c u l a t o a r e Rutarea conform tabelelor de rutare construite prin acest tip de protocoale se mai numete i routing by rumour. n practic, la nivelul unui ruter, direcionarea pachetelor are loc conform informaiilor cu privire la topologia reelei pe care acesta le primete de la vecinii direci. Un ruter care i construiete tabela de rutare schimbnd informaii prin intermediul unui protocol de rutare distance vector nu i construiete el nsui o imagine complet asupra reelei, ci se ncrede n informaiile primite de la vecinii si. Protocoalele de tip distance vector trimit update-uri cu ntreaga tabel de rutare, la intervale periodice, tuturor vecinilor. Aceste update-uri au rolul de anuna indisponibilitatea unei rute, precum i de a indica momentul n care unul dintre vecini nu mai este disponibil pentru a participa la procesul de rutare. Datorita lipsei procesului de construire a unei imagini proprii complete a reelei la nivelul fiecrui echipament, precum i datorit timpului n general mare de convergen, protocoalele de rutare distance vector au asociat de obicei o distan administrativ mai mare fa de protocoalele de rutare de tip link state. n acelai timp, protocoalele distance vector sunt mai puin solicitante pentru procesorul ruterelor i administrarea lor necesit mai puine cunotine din partea administratorului.

Link state
Protocoalele de rutare link state sunt acele protocoale care permit construirea tabelei de rutare a unui echipament pe baza formrii unei topologii complete proprii a ntregii reele. Protocoalele de rutare link state sunt caracterizate de timpi medii de convergen mult mai mici dect cei ai protocoalelor distance vector. De asemenea, acest tip de protocoale permite crearea la nivelul fiecrui ruter a unei imagini complete privind ntreaga topologie de reea. Dac protocoalele distance vector pot fi asemnate cu urmrirea unor indicatoare, protocoalele link state sunt similare utilizrii unei hri. Orice ruter tie nu numai pe unde s trimit pachetul pentru a ajunge la destinaie, ci i toate cile alternative pe care se poate ajunge la aceasta, ci pe care le poate utiliza imediat n cazul n care ruta principal devine inaccesibil. n cadrul protocoalelor de tip link state informaiile privind topologia reelei se trimit doar n momentul n care un nou ruter ncepe participarea la procesul de rutare, rulnd acelai protocol, sau n momentul n care topologia reelei se modific. Aceste modificri nseamn de obicei pierderea sau recuperarea conectivitii pe un segment de reea, dar pot nsemna i modificarea capabilitilor de transmisie ale unui segment. n locul update-urilor periodice care conineau ntreaga tabel de rutare, protocoalele de tip link state trimit pachete de rutare de dimensiuni reduse, numite generic Hello packets. n cazul protocoalelor de tip distance vector prezena unui ruter la procesul de rutare i, implicit, disponibilitatea acestuia n cadrul procesului de rutare este anunat i meninut de update-uri periodice de dimensiuni mari, trimise la intervale de timp periodice dar destul de distante. Spre deosebire de acestea, n cazul protocoalelor de tip link state disponibilitatea ruterelor este comunicat prin intermediul pachetelor de tip hello. Dimensiunea redus a acestora, mult mai mic dect update-urile cu ntreaga tabel de rutare, permite transmiterea la intervale de timp mult mai scurte, fapt ce asigur i un timp de convergen mai mic. Practic, relaia de vecintate n cadrul unui protocol de tip link state este stabilit i meninut de schimbul continuu de pachete de tip hello. n momentul n care o nou relaie de vecintate este stabilit n reea, toate ruterele trimit i primesc update-uri pentru a-i aduga intrri n tabela de rutare sau pentru a-i optimiza intrri deja existente. Odat cu trimiterea i primirea update-urilor, ruterele i construiesc i o imagine a ntregii topologii de reea. Aceast topologie este memorat n interiorul tabelei de topologie, existent la nivelul fiecrui ruter. n momentul n care una dintre rutele din tabela de rutare nu mai este accesibil, un ruter poate promova o intrare din tabela de topologie n tabela de rutare. Dei protocoalele de tip link state ofer timpi de convergen mai mici, ncrcarea procesorului este mai mare. De asemenea, cunotinele necesare unui administrator pentru configurarea acestor protocoale sunt mai complexe dect cele necesare operrii unui protocol distance vector.

R u t a r e | 197

6.2.2 Protocolul RIP


Protocolul de rutare RIP, sau Routing Information Protocol, este cel mai simplu protocol de rutare de tip distance vector. Protocolul este neproprietar (RFC2453), ceea ce nseamn c poate fi implementat pe orice echipament de rutare, indiferent de platform (Cisco, Windows, Linux). De-a lungul timpului au existat dou versiuni ale protocolului, n momentul de fa fiind utilizat doar versiunea a doua. De altfel, aceasta este singura care include suport pentru subnetare cu lungime variabil a mtii de reea. n cadrul protocolului de reea se definesc intervalele de timp conform figurii 6-11. Nume Timer Update Timer Invalid Timer Interval 30 s 180 s Utilizare Intervalul de timp ntre dou update-uri periodice. Dac o rut nu este actualizat prin primirea unui update n mai puin de 180 secunde aceasta este marcat ca invalid n interiorul tabelei de rutare, iar pachetele nu mai sunt trimise pe aceast cale. Dac o rut nu este actualizat prin primirea unui update n mai puin de 240 secunde, aceasta este scoas din tabela de rutare. Pentru o rut pentru care a fost primit un update care a marcat ruta ca fiind inaccesibil sunt ignorate toate update-urile care au informaii privind o rut ctre aceeai destinaie cu o metric egal sau mai proast. Acest timer previne buclele de rutare.

Flush Timer

240 s

Holddown Timer

180 s

6-11: Intervale de timp n cadrul protocolului de rutare


Dei uor de configurat i administrat, protocolul RIP are o scalabilitate redus, neputnd fi utilizat n reele care conin rute cu mai mult de 15 echipamente intermediare. Aceasta este o restricie impus prin specificaiile protocolului, dat fiind faptul c timpul necesar convergenei ntr-o reea mai mare de 15 hop-uri care utilizeaz protocolul RIP ar fi foarte mare. Dei nu este foarte popular n cadrul reelelor companiilor mari, protocolul RIP reprezint o alternativ independent, din punct de vedere al productorului, pentru reelele cu un diametru care nu depete 15 echipamente de rutare.

6.2.3 Protocolul BGP


Protocolul BGP, sau Border Gateway Protocol, este cel mai complex i poate cel mai important protocol de rutare. Acesta este protocolul utilizat n backbone-ul Internet-ului, ocupndu-se de rutarea traficului la nivel global. Protocolul beneficiaz de cele mai multe opiuni de configurare i de numeroase extensii pentru a-i mbunti funcionalitatea. BGP este un protocol excepie, care nu poate fi ncadrat n cele dou categorii enumerate pn acum, fiind considerat un protocol de tip path vector. Protocolul BGP nu face schimb de informaii pentru a crea rute spre reele, ci pentru a crea rute ctre sisteme autonome. Un sistem autonom este o reea sau un grup de reele aflate sub o administrare unitar. Companiile de dimensiuni mari precum i furnizorii de servicii de internet administreaz sisteme autonome. Configurarea protocolului BGP necesit cunotine tehnice avansate, iar explicarea funcionrii acestuia nu face parte dintre obiectivele acestei cri.

198 | R e e l e l o c a l e d e c a l c u l a t o a r e

6.3 Comunicaia din reeaua local


Pn n acest punct a fost explicat comunicaia la nivelul reelelor, aa cum are ea loc ntre echipamentele de rutare. Dar, de cele mai multe ori, acestea nu sunt nici sursa i nici destinaia traficului. De aceea este important s fie explicat modul n care traficul ajunge de la surs pn la primul ruter. Pentru a examina procesul pe care un calculator sau o surs a traficului l realizeaz pentru a transmite un pachet prin reea propunem scenariul din figura 6-12. A

.11
Sw1

.23

.1 Fa0/1

HQ

.1 Fa0/0 Z

.11

6-12: Topologie privind comunicaia n reeaua local


Parametru Adresa IP Masca Gateway Valoare 172.16.0.11 255.255.255.0 172.16.0.1 Parametru Adresa IP Masca Gateway Valoare 172.16.0.23 255.255.255.0 172.16.0.1 Parametru Adresa IP Masca Gateway Valoare 172.16.1.11 255.255.255.0 172.16.1.1

6-13: Adresare staie A

6-14: Adresare staie B

6-15: Adresare staie C

n scenariul de mai sus sunt prezentate un numr de 3 staii interconectate prin intermediul reelei. Dou dintre staii se afl n aceeai reea (172.16.0.0/24) n timp ce o a treia se afl ntr-o reea separat (172.16.1.0/24). Cele dou reele distincte sunt interconectate printr-un ruter care are configurat cte o interfa n fiecare dintre ele, Fa0/0 i respectiv Fa0/1. n momentul n care staia A va dori s transmit un pachet ctre staia B, va analiza adresa destinaie a acesteia (172.16.0.23) i, n urma procesului de i logic ntre aceasta i masca proprie configurat, va determina c destinaia pachetului se afl n aceeai reea. Pentru a trimite pachetul ctre destinaie, staia A trebuie, mai nti, s determine adresa MAC a destinaiei. Pentru a determina adresa MAC asociat IP-ului destinaie, staia A va lansa, conform procesului de ARP, o interogare ARP ctre toate echipamentele din domeniul de broadcast n care va solicita adresa MAC asociat adresei IP a staiei B. Rspunsul l va primi de la staia B, care i va trimite un pachet ARP de tip rspuns (reply) n care i va include propria adresa MAC. n acest moment staia A are toate informaiile necesare trimiterii pachetului ctre destinaie, cunoscnd: Adresa IP destinaie; Faptul c adresa IP a destinaiei se afl n aceeai reea; Adresa MAC a destinaiei. Pentru pachetele viitoare care vor fi trimise att n primul ct i n al doilea exemplu, staia A nu va mai face interogri ARP, deoarece, n urma rspunsurilor iniiale, asocierile adresa MAC - adresa IP vor fi nregistrate n tabela ARP local.

6.3.1 Default Gateway


Unul dintre parametrii cei mai importani care trebuie configurai odat cu atribuirea unei adrese IP unei interfee este parametrul default gateway. Acesta este configurat de obicei cu adresa

R u t a r e | 199 IP a primului ruter care are conectat o interfa n reeaua local din care face parte sursa traficului (calculatorul care este configurat pentru a-i oferi conectivitate). Similar unui ruter, orice calculator i creeaz, pe baza informaiilor de adresare configurate, o tabel de rutare. Dimensiunea acesteia este mult redus fa de o tabel de rutare disponibil pe un ruter dedicat. De asemenea, funcionalitatea oferit este redus, aceasta tabel de rutare oferind doar posibilitatea trimiterii pachetelor iniiate local (de ctre calculatorul care i-a construit tabela de rutare) ctre alte dispozitive din Internet. Atribuirea unei adrese pentru parametrul default gateway n momentul configurrii informaiilor de adresare este similar procesului de configurare a unei rute implicite (ruta default) pe un ruter dedicat. Odat configurat aceast adres, la sfritul tabelei de rutare a staiei este introdus o rut implicit ce are drept adres a urmtorului hop chiar valoarea parametrului default gateway. n practic, un calculator care va dori sa transmit un pachet ctre o destinaie care nu se afl ntr-o reea n care acesta are o interfa, va trimite acest pachet ctre dispozitivul cu IP-ul configurat ca default gateway, conform rutei implicite adugate n tabela proprie de rutare. n momentul n care o staie dorete s transmit un pachet n afara reelei n care are configurat o interfa, are loc un proces celui expus n seciunea 6.3. Pentru exemplificare vom considera aceeai topologie, conform figurii 6-12. n cazul n care staia A dorete s transmit un pachet staiei C, operaia de i logic ntre adresa IP destinaie i masca de reea proprie va indica staiei A c staia C se afl ntr-o alt reea. n acest moment se va cuta n interiorul tabelei proprii de rutare o intrare ctre reeaua destinaie. Deoarece nu exist o reea mai specific, singura rut pe care poate fi trimis pachetul va fi ruta implicit, care este introdus automat n momentul configurrii gateway-ului default. n acest moment staia A a aflat c pentru a trimite un pachet ctre staia C acesta trebuie trimis prin ruterul care interconecteaz cele dou reele (adresa gateway-ului default). Astfel, pentru a transmite pachetul, staia A va face o interogare ARP pentru a afla adresa MAC asociata adresei IP a gatewayului default. Odat ce ruterul i va rspunde prin trimiterea unui pachet ARP de rspuns cu adresa sa MAC, staia A va putea trimite pachetul ctre destinaie, utiliznd urmtoarele informaii: Adresa IP destinaie (adresa IP a staie C); Faptul c adresa IP a destinaiei nu se afl n aceeai reea; Adresa MAC a gateway-ului default.

6.3.2 Proxy ARP


Un scenariu diferit se petrece n momentul n care la nivelul staiei care dorete s transmit nu exist configurat un default gateway. Pentru a ilustra acest scenariu se consider topologia din figura 6-16. A

.11
Sw1

.23

.1 Fa0/1

HQ

.1 Fa0/0 Z

.11

6-16: Topologie privind comunicaia n reeaua local

200 | R e e l e l o c a l e d e c a l c u l a t o a r e Parametru Adresa IP Masca Gateway Valoare 172.16.0.11 255.255.255.0 Nesetat Parametru Adresa IP Masca Gateway Valoare 172.16.0.23 255.255.255.0 172.16.0.1 Parametru Adresa IP Masca Gateway Valoare 172.16.0.23 255.255.255.0 172.16.0.1

6-17: Adresare staie A

6-18: Adresare staie B

6-19: Adresare staie C

Dup cum se poate observa, staia A nu are configurat o adres a gateway-ului implicit. n momentul n care aceasta va dori s trimit un pachet ctre staia C, va ncerca s trimit o cerere ARP pentru a rezolva adresa MAC atribuit adresei IP a staiei C. Deoarece broadcast-ul de nivel 2 nu este naintat de rutere n mod implicit, nici o staie nu va rspunde cererii ARP i pachetul nu va putea fi trimis. Scenariul descris n paragraful anterior are loc n momentul n care primul ruter n calea ctre destinaie nu este configurat pentru a nainta cererile de ARP (no proxy arp). n caz contrar, acesta i d seama de existena unei rute n tabela sa de rutare care permite trimiterea pachetului n reeaua destinaie. Prin urmare, va rspunde iniiatorului traficului (calculatorului A) printr-un pachet ARP de rspuns n care este specificata adresa proprie MAC ca fiind asociat adresei IP a destinaiei, urmnd ca ruterul s se ocupe de transmisia ulterioar a pachetului. Dei ruterul nu are configurat pe nicio interfa adresa IP destinaie a pachetului, rspunsul ctre cererea ARP iniial nu va influena n niciun fel buna transmisie a datelor. n practic, staia A va asocia (n interiorul tabelei ARP interne) adresa primului ruter pentru toate adresele IP din afara reelei locale, proces care elimin nevoia configurrii unui gateway default. Acest proces permite trimiterea pachetelor n afara reelei locale fr a avea specificat parametrul default gateway la nivelul staiei care iniiaz traficul.

6.4 Utilitare pentru gestiunea procesrii de nivel reea


n seciunea curent vor fi prezentate o serie de utilitare de gestionare a procesrii la nivel reea pentru fiecare sistem de operare prezentat.

6.4.1 Linux
Activarea rutrii
La nivelul sistemului de operare Linux rutarea pachetelor nu este activat implicit. Pentru a verifica dac sistemul are activat funcionalitatea de rutare a pachetelor poate fi utilizat oricare dintre urmtoarele comenzi: sysctl net.ipv4.ip_forward sau cat /proc/sys/net/ipv4/ip_forward. Comenzile vor returna 1 dac rutarea este activat sau 0 n cazul n care aceasta nu este activat.
root@eragon:~# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 root@eragon:~# cat /proc/sys/net/ipv4/ip_forward 0

Dup cum se poate observa, la nivelul sistemului administrat rutarea nu este activat. n vederea activrii acesteia exist mai multe posibiliti. Administratorul poate alege s modifice variabila net.ipv4.ip_forward fie prin rularea comenzii sysctl -w net.ipv4.ip_forward=1 sau prin schimbarea valorii din fiierul /proc/sys/net/ipv4/ip_forward n 1 prin comanda echo 1 > /proc/sys/net/ipv4/ip_forward.
root@eragon:~# sysctl net.ipv4.ip_forward = root@eragon:~# echo 1 root@eragon:~# sysctl net.ipv4.ip_forward = -w net.ipv4.ip_forward=1 1 > /proc/sys/net/ipv4/ip_forward net.ipv4.ip_forward 1

R u t a r e | 201
root@eragon:~# cat /proc/sys/net/ipv4/ip_forward 1

n exemplul de mai sus rutarea a fost activat. Cu toate acestea, modificrile efectuate nu sunt persistente, acestea pierzndu-se n momentul n care sistemul este restartat. Pentru ca schimbrile s fie persistente trebuie editat fiierul /etc/sysctl.conf adugndu-se linia net.ipv4.ip_forward = 1.
root@eragon:~# cat /etc/sysctl.conf | grep net.ipv4.ip_forward net.ipv4.ip_forward=1

Acest fiier se interpreteaz i are efect doar n momentul n care este rulat comanda sysctl p /etc/sysctl.conf sau la reboot. Astfel, dup editarea fiierului, trebuie rulat aceast comand sau restartat sistemul pentru ca rutarea sa fie activat.
root@eragon:~# cat /proc/sys/net/ipv4/ip_forward 0 root@eragon:~# sysctl -p /etc/sysctl.conf net.ipv4.ip_forward = 1 root@eragon:~# cat /proc/sys/net/ipv4/ip_forward 1

Afiarea rutelor
Pentru a afia rutele configurate la nivelul unui sistem Linux se poate utiliza comanda ip route list.
root@eragon:~# ip route list default via 192.168.23.2 dev eth0 proto static 169.254.0.0/16 dev eth0 scope link metric 1000 192.168.23.0/24 dev eth0 proto kernel scope link

src 192.168.23.128

metric 1

Alternativ poate fi utilizat comanda netstat r sau comanda route.


root@eragon:~# netstat -r Kernel IP routing table Destination Gateway default 192.168.23.2 link-local * root@eragon:~# route Kernel IP routing table Destination Gateway default 192.168.23.2 link-local * 192.168.2.0 192.168.23.2 192.168.2.0 192.168.23.2 192.168.23.0 * 192.168.23.0 * Genmask 0.0.0.0 255.255.0.0 Genmask 0.0.0.0 255.255.0.0 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 Flags UG U Flags UG U UG UG U U MSS Window 0 0 0 0 Metric Ref 0 0 1000 0 0 0 20 0 1 0 0 0 irtt Iface 0 eth0 0 eth0 Use Iface 0 eth0 0 eth0 0 eth0 0 eth0 0 eth0 0 eth0

Configurarea rutelor
Pentru a configura rute statice la nivelul sistemului Linux se poate utiliza comanda ip route add.
------------------output omis-----------------ip route { add | del | change | append | replace } ROUTE ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ] ... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS ------------------output omis-----------------root@eragon:~# ip route add 192.168.2.0/24 via 192.168.23.2

Alternativ comanda poate primi ca parametru suplimentar i metrica pentru ruta respectiv.
root@eragon:~# ip route add 192.168.2.0/24 via 192.168.23.2 metric 20 root@eragon:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.23.2 0.0.0.0 UG 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 192.168.2.0 192.168.23.2 255.255.255.0 UG 0 0 0 eth0 192.168.2.0 192.168.23.2 255.255.255.0 UG 20 0 0 eth0 192.168.23.0 * 255.255.255.0 U 1 0 0 eth0

202 | R e e l e l o c a l e d e c a l c u l a t o a r e O alt comand care ofer funcionalitate similar este comanda route add.
root@eragon:~# route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.23.2

Pentru o mai bun nelegere a parametrilor disponibili pentru comanda ip route add recomandm parcurgerea paginilor de manual ale utilitarului ip prin rularea comenzii man ip. Similar activrii rutrii, rutele configurate utiliznd utilitarul ip, conform comenzilor indicate pn acum nu sunt persistente i vor fi scoase din tabela de rutare la restart. Pe sistemele de tip Debian, pentru a aduga rute statice persistente este necesar editarea fiierului /etc/network/interfaces.
root@eragon:~# cat /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.42 network 192.168.1.0 netmask 255.255.255.128 broadcast 192.168.1.0 up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.23.2 down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.23.2

n practic, liniile care ncep cu selectorul up sunt rulate la ridicarea interfeei, n timp ce liniile care ncep cu selectorul down sunt rulate n momentul n care interfaa este nchis sau pierde conectivitatea. Pentru mai multe informaii se recomand consultarea paginii de manual interfaces(5) prin rularea comenzii man interfaces.

Testare
n Linux rutarea poate fi testat prin utilizarea comenzilor ping i traceroute.
root@eragon:~# ping google.com -c 4 PING google.com (62.231.75.242) 56(84) bytes of data. 64 bytes from cache.google.com (62.231.75.242): icmp_req=1 ttl=128 64 bytes from cache.google.com (62.231.75.242): icmp_req=2 ttl=128 64 bytes from cache.google.com (62.231.75.242): icmp_req=3 ttl=128 64 bytes from cache.google.com (62.231.75.242): icmp_req=4 ttl=128 --- google.com ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3006ms rtt min/avg/max/mdev = 1.589/1.939/2.512/0.345 ms root@eragon:~# tracepath google.com 1: eragon.local 9.261ms 1: 192.168.23.2 0.429ms 1: 192.168.23.2 0.425ms [...] time=1.79 time=1.58 time=1.86 time=2.51 ms ms ms ms

pmtu 1500

Pentru a afia tabela arp n Linux este utilizat comanda arp.


root@eragon:~# arp Address 192.168.23.254 192.168.23.2 HWtype ether ether HWaddress 00:50:56:ed:6a:83 00:50:56:f5:29:32 Flags Mask C C Iface eth0 eth0

6.4.2 Cisco IOS


Dintre cele trei sisteme de operare capabile de a oferi rutare discutate n capitolul curent, Cisco IOS este singurul sistem care ruleaz pe dispozitive dedicate, fiind i singurul sistem de operare al crui rol principal este oferirea serviciilor de rutare. Fiind un sistem de operare dedicat echipamentelor de rutare, Cisco IOS are performane superioare n ceea ce privete capabilitile i flexibilitatea. Pentru a configura o interfa cu informaii de adresare se va folosi comanda ip address la nivelul interfeei care trebuie configurat. Comanda primete ca parametru informaiile de adresare, respectiv adresa IP i masca de reea utilizat.
HQ(config-if)#ip address 10.0.0.1 255.255.255.0

n mod uzual interfeele de pe un echipament Cisco sunt implicit configurate ca fiind inactive, prezentndu-se n starea administratively shut down. Pentru a deschide o interfa n vederea

R u t a r e | 203 permiterii traficului prin aceasta, se folosete comanda no shutdown la nivelul interfeei care se dorete a fi configurat. Comanda nu primete niciun parametru.
HQ(config-if)#no shutdown

Pentru a verifica informaiile de adresare, precum i starea interfeelor, se utilizeaz comanda show ip interface brief, care poate fi rulat n modul privilegiat. Dei exist mai multe comenzi care ofer informaii despre cum au fost configurate interfeele cu informaii de adresare, aceasta comand este cel mai des folosit de ctre administratori. Mai jos se poate observa output-ul acestei comenzi.
HQ#show ip interface brief Interface IP-Address Ethernet0/0 10.0.0.1 Ethernet0/1 10.0.0.10 Ethernet0/2 192.168.2.1 Ethernet0/3 11.11.22.22 OK? YES YES YES YES Method NVRAM NVRAM NVRAM NVRAM Status Protocol administratively down down up up up up up up

n vederea configurrii rutrii statice pe un echipament Cisco este folosit comanda ip route rulat la nivelul modului global de configurare. Comanda primete ca parametru adresa reelei destinaie, specificat inclusiv prin masca de reea, precum i adresa urmtorului hop n calea ctre destinaie sau interfaa de ieire. Adiional, se pot furniza o serie de parametri opionali precum metrica sau caracterul permanent al rutei.
HQ(config)#ip route 192.168.0.0 255.255.255.0 10.0.0.2 100

n vederea configurrii unui protocol de rutare dinamic pe echipamentele Cisco se utilizeaz comanda router rulat din modul global de configurare. Comanda primete ca parametri protocolul de rutare utilizat, precum i orice ali parametri necesari protocolului.
HQ(config)#router HQ(config)#router HQ(config)#router HQ(config)#router rip eigrp 200 ospf 1 bgp 300

Pentru a verifica tabela de rutare n cazul echipamentelor Cisco se utilizeaz comanda show ip route, care poate fi rulat n modul privilegiat.
HQ#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 11.11.22.21 to network 0.0.0.0 10.0.0.0/30 is subnetted, 1 subnets C 10.0.0.8 is directly connected, Ethernet0/1 11.0.0.0/30 is subnetted, 1 subnets C 11.11.22.20 is directly connected, Ethernet0/3 S 192.168.0.0/24 [200/0] via 10.0.0.9 S 192.168.1.0/24 [1/0] via 10.0.0.9 C 192.168.2.0/24 is directly connected, Ethernet0/2 S* 0.0.0.0/0 [1/0] via 11.11.22.21

n vederea diagnosticrii conectivitii, Cisco IOS pune la dispoziie dou comenzi: traceroute i ping, ambele fiind rulate att n modul neprivilegiat ct i n modul privilegiat.
HQ>ping 192.168.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/73/104 ms HQ>traceroute 192.168.0.1 Type escape sequence to abort. Tracing the route to 192.168.0.1 1 10.0.0.9 40 msec 20 msec 48 msec 2 10.0.0.5 76 msec 88 msec *

204 | R e e l e l o c a l e d e c a l c u l a t o a r e n cazuri speciale este necesar diagnosticarea tabelei ARP de la nivelul echipamentelor pentru a verifica corelarea adresa IP adresa MAC. n cazul echipamentelor Cisco pentru afiarea tabelei ARP poate fi utilizat comanda show arp rulat n modul privilegiat.
HQ#show arp Protocol Address Internet 11.11.22.22 Internet 10.0.0.10 Internet 10.0.0.9 Internet 11.11.22.21 Internet 192.168.2.1 Age (min) 63 64 Hardware Addr cc00.087c.0003 cc00.087c.0001 cc02.087c.0000 cc03.087c.0003 cc00.087c.0002 Type ARPA ARPA ARPA ARPA ARPA Interface Ethernet0/3 Ethernet0/1 Ethernet0/1 Ethernet0/3 Ethernet0/2

6.4.3 Windows
Afiarea rutelor
Pentru afiarea rutelor n cazul sistemului de operare Windows poate fi utilizat utilitarul route. Pentru afiare acestuia trebuie sa i se dea ca parametru irul print. Astfel, pentru afiarea rutelor va fi rulat comanda route print.
C:\Users\eragon>route print =========================================================================== Interface List 12...d0 df 9a cb db 1a ......Atheros AR9002WB-1NG Wireless Network Adapter 11...e8 9d 87 78 e0 2d ......Intel(R) 82579V Gigabit Network Connection 1...........................Software Loopback Interface 1 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 22...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.133.1 192.168.133.104 25 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 192.168.133.0 255.255.255.0 On-link 192.168.133.104 281 192.168.133.104 255.255.255.255 On-link 192.168.133.104 281 192.168.133.255 255.255.255.255 On-link 192.168.133.104 281 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.133.104 281 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.133.104 281 =========================================================================== Persistent Routes: None

Adaugarea rutelor statice


Pentru adugarea rutelor statice va fi utilizat tot utilitarul route, rulnd-ul cu parametrul add.
C:\windows\system32>route add 192.168.232.0 mask 255.255.255.0 192.168.133.1 metric 20 OK! C:\windows\system32>route print =========================================================================== Interface List 12...d0 df 9a cb db 1a ......Atheros AR9002WB-1NG Wireless Network Adapter 11...e8 9d 87 78 e0 2d ......Intel(R) 82579V Gigabit Network Connection 1...........................Software Loopback Interface 1 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 22...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.133.1 192.168.133.104 25 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 192.168.133.0 255.255.255.0 On-link 192.168.133.104 281 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.133.104 281 ===========================================================================

R u t a r e | 205 Parametrul metric este opional, acesta configurnd la nivelul rutei statice introduse i o metric. Similar sistemului de operare Linux, rutele introduse n acest mod nu sunt persistente i vor fi terse din tabela de rutare la restart. Pentru a introduce o rut persistent n tabela de rutare, comenzii route add ii va fi adugat parametrul p.
C:\windows\system32>route add 192.168.232.0 mask 255.255.255.0 192.168.133.1 ric 20 -p OK! C:\windows\system32>route print =========================================================================== Interface List 12...d0 df 9a cb db 1a ......Atheros AR9002WB-1NG Wireless Network Adapter 11...e8 9d 87 78 e0 2d ......Intel(R) 82579V Gigabit Network Connection 1...........................Software Loopback Interface 1 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter 22...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.133.1 192.168.133.104 25 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 192.168.133.0 255.255.255.0 On-link 192.168.133.104 281 192.168.133.104 255.255.255.255 On-link 192.168.133.104 281 192.168.133.255 255.255.255.255 On-link 192.168.133.104 281 192.168.232.0 255.255.255.0 192.168.133.1 192.168.133.104 45 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.133.104 281 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.133.104 281 =========================================================================== Persistent Routes: Network Address Netmask Gateway Address Metric 192.168.232.0 255.255.255.0 192.168.133.1 20

Testare
n vederea testrii reelelor n cazul sistemului de operare Windows se pot utiliza utilitarele tracert, ping i arp.
C:\windows\system32>ping google.com Pinging google.com [173.194.34.6] with 32 bytes of data: Reply from 173.194.34.6: bytes=32 time=39ms TTL=55 Reply from 173.194.34.6: bytes=32 time=14ms TTL=55 Reply from 173.194.34.6: bytes=32 time=14ms TTL=56 Reply from 173.194.34.6: bytes=32 time=16ms TTL=56 Ping statistics for 173.194.34.6: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times n milli-seconds: Minimum = 14ms, Maximum = 39ms, Average = 20ms C:\windows\system32>tracert google.com Tracing route to google.com [173.194.34.6] over a maximum of 30 hops: 1 1 ms 1 ms 1 ms 192.168.133.1 2 11 ms 8 ms 15 ms 10.94.192.1 3 * 14 ms 9 ms ip-145.net-80-236-9.asnieres.rev.numericable.fr [80.236.9.145] 4 * 11 ms 14 ms ip-249.net-80-236-0.static.numericable.fr [80.23 6.0.249] 5 12 ms 11 ms 13 ms cbv2rj-ae1.0.numericable.net [80.236.7.119] 6 22 ms 14 ms 36 ms ip-161.net-80-236-1.static.numericable.fr [80.23 6.1.161] 7 19 ms 15 ms 10 ms 72.14.239.145 8 9 ms 9 ms 12 ms 209.85.242.45 9 10 ms 13 ms 9 ms par03s02-in-f6.1e100.net [173.194.34.6] Trace complete. C:\windows\system32>arp -a Interface: 192.168.133.104 --- 0xc Internet Address Physical Address Type 192.168.133.1 00-14-bf-92-ce-80 dynamic 192.168.133.255 ff-ff-ff-ff-ff-ff static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.252 01-00-5e-00-00-fc static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static

206 | R e e l e l o c a l e d e c a l c u l a t o a r e

6.5 Scenarii
6.5.1 Configurarea rutrii statice
Se consider urmtorul scenariu: o companie dorete configurarea reelei interne care are topologia fizic din figura 6-20. Compania este conectat la Internet prin intermediul sediului central. De asemenea, compania mai are dou sucursale, n locaii fizice diferite. Conectivitatea n cazul locaiilor este de tip full mesh, existnd canale de comunicaie dinspre fiecare sucursal spre HQ precum i ctre cealalt sucursal. Sucursala BR1 este de o importan deosebit pentru activitatea de business, fiind locaia n care i desfoar activitatea cel mai important departament al companiei. n vederea desfurrii proceselor zilnice n acest departament este necesar conectivitatea permanent la Internet. Orice ntrerupere a acestui serviciu duce la imposibilitatea desfurrii activitii i deci la pierderi n productivitate. Din acest motiv, conectivitatea la Internet a sucursalei BR1 este considerat un serviciu critic n interiorul companiei. Ca atare, conducerea acesteia dorete ca reeaua sa fie configurat astfel nct accesul la sucursala BR1 ct i accesul din sucursal ctre Internet s fie redundant. Din punct de vedere al conectivitii companiei la Internet, aceasta beneficiaz de servicii printr-un contract cu un furnizor care se angajeaz sa ofere disponibilitate 99.999% precum i timp maxim de rezolvare a incidentelor de 10 minute, aceste servicii fiind considerate de ctre directoratul companiei ca fiind compensatorii pentru lipsa redundanei conectivitii la Internet. A
Sw1

2 3

E
BR1

B 192.168.0.0/24 C 3
Sw2 2

1 1 1

0 1 0 1 D

0 1 1 1 2
HQ Sw3

2 F

2 3

D 192.168.1.0/24 3

BR2 BR 2

ISP

3 3 1 1

1 192.168.2.0/24 3

6-20: Topologie scenariu

n vederea configurrii echipamentelor compania deine o list cu adresele IP alocate. Aceasta poate fi vzut n figura 6-21. Echipament Interfaa Staie A Staie B Staie C Staie D Staie E Staie F Staie G Router BR1 E0 E0 E0 E0 E0 E0 E0 E0/0 Adresa IP Masca de reea

192.168.0.50 255.255.255.0 192.168.0.51 255.255.255.0 192.168.1.50 255.255.255.0 192.168.1.51 255.255.255.0 192.168.2.50 255.255.255.0 192.168.2.51 255.255.255.0 192.168.2.52 255.255.255.0 10.0.0.2 255.255.255.252

R u t a r e | 207 Router BR1 Router BR1 Router BR2 Router BR2 Router BR2 Router HQ Router HQ Router HQ Router HQ E0/1 E0/2 E0/0 E0/1 E0/2 E0/0 E0/1 E0/2 E0/3 10.0.0.5 192.168.0.1 10.0.0.9 10.0.0.6 192.168.1.1 10.0.0.1 10.0.0.10 192.168.2.1 11.11.22.22 255.255.255.252 255.255.255.0 255.255.255.252 255.255.255.252 255.255.255.0 255.255.255.252 255.255.255.252 255.255.255.0 255.255.255.252

6-21: Schema de adresare scenariu


nainte de configurarea rutrii, n vederea determinrii corectitudinii configuraiilor iniiale de adresare precum i a conectrii echipamentelor la nivelul fizic, administratorul reelei verific configuraia actual a echipamentelor.
HQ#show cdp neighbours Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater Device ID Local Intrfce Holdtme Capability Platform Port ID BR1 Eth 0/0 123 R S I 3640 Eth 0/0 BR2 Eth 0/1 123 R S I 3640 Eth 0/0 ISP Eth 0/3 122 R S I 3640 Eth 0/3 HQ#show ip interface brief Interface IP-Address OK? Method Status Ethernet0/0 10.0.0.1 YES NVRAM up Ethernet0/1 10.0.0.10 YES NVRAM up Ethernet0/2 192.168.2.1 YES NVRAM up Ethernet0/3 11.11.22.22 YES NVRAM up

Protocol up up up up

BR1#show cdp neighbours Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater Device ID Local Intrfce Holdtme Capability Platform Port ID HQ Eth 0/0 139 R S I 3640 Eth 0/0 BR2 Eth 0/1 139 R S I 3640 Eth 0/1 BR1#show ip interface brief Interface IP-Address OK? Method Status Ethernet0/0 10.0.0.2 YES NVRAM up Ethernet0/1 10.0.0.5 YES NVRAM up Ethernet0/2 192.168.0.1 YES NVRAM up Ethernet0/3 unassigned YES NVRAM administratively down

Protocol up up up down

BR2#show cdp neighbours Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater Device ID Local Intrfce Holdtme Capability Platform Port ID HQ Eth 0/0 141 R S I 3640 Eth 0/1 BR1 Eth 0/1 142 R S I 3640 Eth 0/1 BR2#show ip interface brief Interface IP-Address OK? Method Status Ethernet0/0 10.0.0.9 YES NVRAM up Ethernet0/1 10.0.0.6 YES NVRAM up Ethernet0/2 192.168.1.1 YES NVRAM up Ethernet0/3 unassigned YES NVRAM administratively down

Protocol up up up down

De asemenea, nainte de nceperea adugrii rutelor statice sunt analizate rutele direct conectate care apar n mod automat ca urmare a configurrii unei interfee active cu informaii de adresare.
HQ#show ip route [...] 10.0.0.0/30 is C 10.0.0.8 is C 10.0.0.0 is 11.0.0.0/30 is C 11.11.22.20 C 192.168.2.0/24 subnetted, 2 subnets directly connected, Ethernet0/1 directly connected, Ethernet0/0 subnetted, 1 subnets is directly connected, Ethernet0/3 is directly connected, Ethernet0/2

208 | R e e l e l o c a l e d e c a l c u l a t o a r e
BR1#show ip route [...] 10.0.0.0/30 is C 10.0.0.0 is C 10.0.0.4 is C 192.168.0.0/24

subnetted, 2 subnets directly connected, Ethernet0/0 directly connected, Ethernet0/1 is directly connected, Ethernet0/2

BR2#show ip route [...] 10.0.0.0/30 is C 10.0.0.8 is C 10.0.0.4 is C 192.168.1.0/24

subnetted, 2 subnets directly connected, Ethernet0/0 directly connected, Ethernet0/1 is directly connected, Ethernet0/2

Datorit dimensiunii reduse a reelei care trebuie administrat, cerinele companiei pot fi satisfcute prin configurarea rutrii statice. De asemenea, n configurare va fi abordat o metodologie n doi pai, primul urmrind asigurarea conectivitii, cel de-al doilea avnd n vedere asigurarea redundanei accesului la filiala BR1 precum i a accesului acesteia la Internet. Configurarea va fi nceput dinspre Internet ctre interior. Pentru a oferi conectivitate ctre Internet, este configurat o rut default pe ruterul HQ.
HQ(config)#ip route 0.0.0.0 0.0.0.0 11.11.22.21

n continuare se configureaz restul echipamentelor pentru a oferi conectivitate intern ctre toate reelele n care exist staii, dup cum urmeaz: Rute implicite pe ruterele BR1 i BR2 prin ruterul HQ, pentru a oferi o modalitate de trimitere a pachetelor n Internet; Pe ruterul HQ, rute ctre reelele de clieni din spatele ruterelor BR1 i BR2; Pe ruterul BR1, rute ctre reelele de clieni din spatele ruterelor BR2 i HQ; Pe ruterul BR2, rute ctre reelele de clieni din spatele ruterelor BR1 i HQ.
BR1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1 BR2(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.10 HQ(config)#ip route 192.168.0.0 255.255.255.0 10.0.0.2 HQ(config)#ip route 192.168.1.0 255.255.255.0 10.0.0.9 BR1(config)#ip route 192.168.1.0 255.255.255.0 10.0.0.6 BR1(config)#ip route 192.168.2.0 255.255.255.0 10.0.0.1 BR2(config)#ip route 192.168.0.0 255.255.255.0 10.0.0.5 BR2(config)#ip route 192.168.2.0 255.255.255.0 10.0.0.10

Odat finalizat configurarea echipamentelor pentru a oferi conectivitate la nivel local ct i n Internet, aceasta este verificat.
HQ#show ip route [...] Gateway of last resort is 11.11.22.21 to network 0.0.0.0 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.8 is directly connected, Ethernet0/1 C 10.0.0.0 is directly connected, Ethernet0/0 11.0.0.0/30 is subnetted, 1 subnets C 11.11.22.20 is directly connected, Ethernet0/3 S 192.168.0.0/24 [1/0] via 10.0.0.2 S 192.168.1.0/24 [1/0] via 10.0.0.9 C 192.168.2.0/24 is directly connected, Ethernet0/2 S* 0.0.0.0/0 [1/0] via 11.11.22.21 HQ#ping 192.168.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max HQ#ping 192.168.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max

2 seconds: = 4/13/40 ms 2 seconds: = 4/13/32 ms

BR1#show ip route [...] Gateway of last resort is 10.0.0.1 to network 0.0.0.0 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.0 is directly connected, Ethernet0/0 C 10.0.0.4 is directly connected, Ethernet0/1

R u t a r e | 209
C 192.168.0.0/24 is directly connected, Ethernet0/2 S 192.168.1.0/24 [1/0] via 10.0.0.6 S 192.168.2.0/24 [1/0] via 10.0.0.1 S* 0.0.0.0/0 [1/0] via 10.0.0.1 BR1#ping 192.168.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/10/24 ms BR1#ping 192.168.2.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 4/20/48 ms BR1#ping 11.11.22.21 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.22.21, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/67/88 ms

BR2#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP [...] 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.8 is directly connected, Ethernet0/0 C 10.0.0.4 is directly connected, Ethernet0/1 S 192.168.0.0/24 [1/0] via 10.0.0.5 C 192.168.1.0/24 is directly connected, Ethernet0/2 S 192.168.2.0/24 [1/0] via 10.0.0.10 S* 0.0.0.0/0 [1/0] via 10.0.0.10 BR2#ping 192.168.2.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 4/20/36 ms BR2#ping 192.168.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 4/21/44 ms BR2#ping 11.11.22.21 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.22.21, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/69/104 ms

Dup cum se poate observa, reeaua a fost configurat corespunztor i ofer n acest moment conectivitate ntre toate subreelele care conin dispozitive finale. Dac este studiat cu atenie rspunsul echipamentelor la comenzile de verificare a conectivitii se poate observa c n unele cazuri a fost pierdut unul dintre pachete, mereu primul. Acest lucru este cauzat de lipsa unei intrri n tabela ARP a ruterului pentru adresa IP a hop-ului urmtor. Acest eveniment are loc doar la prima conexiune; pe msur ce se transmit pachete n reea tabela ARP este actualizat continuu, cnd este necesar. Pasul urmtor n configurare const n asigurarea redundanei conectivitii la Internet pentru sucursala BR1. Studiind topologia reelei se poate constata c pachetele ctre Internet pot fi trimise din sucursal att pe legtura direct ctre HQ, ct i prin intermediul ruterului din sucursala BR2. Practic, pentru oferirea redundanei vor fi configurate dou rute statice default la nivelul ruterului BR1, cu metrici diferite. Ruta principal va fi pe calea direct ctre HQ, n timp ce o alt rut de backup, cu metrica mai mare, va fi configurat prin intermediul ruterului BR2. n momentul n care interfaa dintre BR1 i HQ va fi inaccesibil, tabela de rutare va fi automat actualizat introducnduse ruta de backup. Aa cum a fost prezentat i n partea teoretic a acestui capitol, acest lucru are loc ca urmare a imposibilitii trimiterii pachetelor ctre dispozitivul configurat ca next hop pentru ruta default. Practic, n momentul n care interfaa dintre BR1 i HQ va fi indisponibil, ruta direct conectat ctre reeaua 10.0.0.0/24 va disprea din tabela de rutare. De asemenea, orice alt rut care are configurat ca next hop un IP din aceast reea va disprea la rndul ei (inclusiv ruta default primar). Urmtoarea aciune a ruterului va consta n instalarea rutei default cu metrica mai mare, deci mai slab din punct de vedere al eficienei, prin BR2.

210 | R e e l e l o c a l e d e c a l c u l a t o a r e Dup cum se poate observa, ruta default existent a fost reconfigurat cu metrica 100 i a fost introdus ruta de backup cu metrica 200. n tabela de rutare apare doar ruta default primar, ruta de backup fiind pstrat n fiierul de configurare pentru a fi introdus automat, dac este necesar.
BR1(config)#no ip route 0.0.0.0 0.0.0.0 10.0.0.1 BR1#show ip route [...] 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.0 is directly connected, Ethernet0/0 C 10.0.0.4 is directly connected, Ethernet0/1 C 192.168.0.0/24 is directly connected, Ethernet0/2 S 192.168.1.0/24 [1/0] via 10.0.0.6 S 192.168.2.0/24 [1/0] via 10.0.0.1 BR1#configure terminal BR1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1 100 BR1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.6 200 BR1(config)#exit BR1#show ip route [...] 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.0 is directly connected, Ethernet0/0 C 10.0.0.4 is directly connected, Ethernet0/1 C 192.168.0.0/24 is directly connected, Ethernet0/2 S 192.168.1.0/24 [1/0] via 10.0.0.6 S 192.168.2.0/24 [1/0] via 10.0.0.1 S* 0.0.0.0/0 [100/0] via 10.0.0.1

Cu toate ca aceast configuraie poate prea suficient, ea nu este. n momentul n care ruta default de backup va fi instalat, la nivelul reelei va exista o modalitate prin care pachetele vor ajunge n Internet de la ruterul BR1 prin BR2 ctre HQ, dar nu va exista nici o cale de ntoarcere a acestora, de la ruterul HQ prin BR2 ctre BR1. Pentru a remedia aceast problem va fi introdus i n cazul ruterului HQ o ruta de backup ctre reeaua din sucursala BR1 prin BR2. i n acest caz va trebui modificat ruta existent, pentru a-i oferi o valoare a metricii mai bun dect cea care va fi configurat pentru ruta de backup ce urmeaz a fi introdus.
HQ#show ip route [...] 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.8 is directly connected, Ethernet0/1 C 10.0.0.0 is directly connected, Ethernet0/0 11.0.0.0/30 is subnetted, 1 subnets C 11.11.22.20 is directly connected, Ethernet0/3 S 192.168.0.0/24 [1/0] via 10.0.0.2 S 192.168.1.0/24 [1/0] via 10.0.0.9 C 192.168.2.0/24 is directly connected, Ethernet0/2 S* 0.0.0.0/0 [1/0] via 11.11.22.21 HQ#configure terminal HQ(config)#no ip route 192.168.0.0 255.255.255.0 10.0.0.2 HQ(config)#ip route 192.168.0.0 255.255.255.0 10.0.0.2 100 HQ(config)#ip route 192.168.0.0 255.255.255.0 10.0.0.9 200 HQ(config)#exit HQ#show ip route [...] 0.0 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.8 is directly connected, Ethernet0/1 C 10.0.0.0 is directly connected, Ethernet0/0 11.0.0.0/30 is subnetted, 1 subnets C 11.11.22.20 is directly connected, Ethernet0/3 S 192.168.0.0/24 [100/0] via 10.0.0.2 S 192.168.1.0/24 [1/0] via 10.0.0.9 C 192.168.2.0/24 is directly connected, Ethernet0/2 S* 0.0.0.0/0 [1/0] via 11.11.22.21

Odat terminat, configuraia trebuie verificat pentru ambele scenarii, att cel de funcionare normal cat i cel de funcionare n regim de backup.
BR1#show ip interface brief Interface IP-Address OK? Method Status Ethernet0/0 10.0.0.2 YES NVRAM up Ethernet0/1 10.0.0.5 YES NVRAM up Ethernet0/2 192.168.0.1 YES NVRAM up Ethernet0/3 unassigned YES NVRAM administratively down BR1#show ip route [...] 10.0.0.0/30 is subnetted, 2 subnets C 10.0.0.0 is directly connected, Ethernet0/0 C 10.0.0.4 is directly connected, Ethernet0/1 C 192.168.0.0/24 is directly connected, Ethernet0/2 Protocol up up up down

R u t a r e | 211
S 192.168.1.0/24 [1/0] via 10.0.0.6 S 192.168.2.0/24 [1/0] via 10.0.0.1 S* 0.0.0.0/0 [100/0] via 10.0.0.1 BR1#ping 11.11.22.21 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.22.21, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/18/36 ms

Verificarea configuraiei de backup poate fi observat n continuare.


HQ#show ip interface brief Interface IP-Address OK? Method Status Protocol Ethernet0/0 10.0.0.1 YES NVRAM administratively down down Ethernet0/1 10.0.0.10 YES NVRAM up up Ethernet0/2 192.168.2.1 YES NVRAM up up Ethernet0/3 11.11.22.22 YES NVRAM up up HQ#show ip route [...] 10.0.0.0/30 is subnetted, 1 subnets C 10.0.0.8 is directly connected, Ethernet0/1 11.0.0.0/30 is subnetted, 1 subnets C 11.11.22.20 is directly connected, Ethernet0/3 S 192.168.0.0/24 [200/0] via 10.0.0.9 S 192.168.1.0/24 [1/0] via 10.0.0.9 C 192.168.2.0/24 is directly connected, Ethernet0/2 S* 0.0.0.0/0 [1/0] via 11.11.22.21 HQ#traceroute 192.168.0.1 source 11.11.22.22 Type escape sequence to abort. Tracing the route to 192.168.0.1 1 10.0.0.9 28 msec 16 msec 36 msec 2 10.0.0.5 8 msec 60 msec *

BR1#show ip interface brief Interface IP-Address OK? Method Status Protocol Ethernet0/0 10.0.0.2 YES NVRAM administratively down down Ethernet0/1 10.0.0.5 YES NVRAM up up Ethernet0/2 192.168.0.1 YES NVRAM up up Ethernet0/3 unassigned YES NVRAM administratively down down BR1#show ip route [...] 10.0.0.0/30 is subnetted, 1 subnets C 10.0.0.4 is directly connected, Ethernet0/1 C 192.168.0.0/24 is directly connected, Ethernet0/2 S 192.168.1.0/24 [1/0] via 10.0.0.6 S* 0.0.0.0/0 [200/0] via 10.0.0.6 BR1#ping 11.11.22.21 source 192.168.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.22.21, timeout is 2 seconds: Packet sent with a source address of 192.168.0.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/19/40 ms BR1#traceroute 11.11.22.21 source 192.168.0.1 Type escape sequence to abort. Tracing the route to 11.11.22.21 1 10.0.0.6 36 msec 32 msec 20 msec 2 10.0.0.10 12 msec 32 msec 52 msec 3 11.11.22.21 8 msec 68 msec *

6.5.2 Modificarea ncapsulrii datelor


Pe msur ce datele sunt rutate ntr-o reea, ncapsularea acestora se modific. Chiar dac adresele IP surs i destinaie rmn aceleai pe tot parcursul reelei, antetul de nivel 2 sufer modificri pentru a asigura distribuirea adecvat a pachetelor. Pentru a ilustra modificarea ncapsulrii datelor se consider reeaua din figura 6-22.

212 | R e e l e l o c a l e d e c a l c u l a t o a r e

1
R1

0
R2

IPS: 192.168.1.1 IPD:192.168.2.1 MACS: AA:AA:AA:AA:AA:AA MACD: 11:11:11:11:11:11

IPS: 192.168.1.1 IPD:192.168.2.1 MACS: 22:22:22:22:22:22 MACD: 33:33:33:33:33:33

IPS: 192.168.1.1 IPD:192.168.2.1 MACS: 44:44:44:44:44:44 MACD: BB:BB:BB:BB:BB:BB

6-22: Topologie ncapsulare date


La nivelul acesteia interfeele sunt configurate conform tabelului din figura 6-23. Echipament Interfaa Staie A Staie B R1 R1 R2 R2 E1 E1 E1 E0 E0 E1 Adresa MAC AA:AA:AA:AA:AA:AA BB:BB:BB:BB:BB:BB 11:11:11:11:11:11 22:22:22:22:22:22 33:33:33:33:33:33 44:44:44:44:44:44 Adresa IP 192.168.1.1 192.168.2.1 192.168.1.253 10.0.0.1 10.0.0.2 192.168.2.253 Masca /24 /24 /24 /30 /30 /24

6-23: Adresare topologie ncapsulare


n momentul n care staia dorete s trimit un pachet ctre staia B, aceasta va ncapsula datele la nivel 2 folosind adresa MAC surs, adresa proprie, iar ca adresa MAC destinaie adresa MAC a gateway-ului default. Odat ajuns pe segmentul de reea dintre rutere, antetul de nivel 2 al pachetului va fi schimbat pentru a acomoda transferul cadrului (frame-ului) peste segmentul curent. Astfel va fi folosit ca surs adresa MAC a ruterului R1 de pe interfaa E0, i ca destinaie adresa MAC a ruterului R2 de pe interfaa E0. Odat ajuns pe ultimul segment, antetul de nivel 2 va fi din nou modificat folosind MAC surs, adresa ruterului R2 de pe interfaa E1 i ca destinaie adresa MAC a staiei B. Modificarea antetelor de nivel 2 este necesar pentru a trimite pachetul la nivelul segmentului de reea n care acesta este rutat. Pentru fiecare segment de reea parcurs adresarea de nivel 2 va fi modificat. Aceste modificri sunt realizate n mod automat de ctre ruterele care se ocup de decapsularea i rencapsularea datelor. Pe msur ce pachetele parcurg o reea, un alt cmp alterat este cmpul TTL din interiorul antetului de nivel 3. Acesta este decrementat pentru fiecare echipament de nivel 3 pe care pachetul l parcurge. n cazul n care acest cmp ajunge la valoarea 0 pachetul nu mai este transmis. Dup cum a fost prezentat n capitolele anterioare ale acestei cri, la nivelul antetului de nivel 3 se calculeaz o sum de control care este transmis odat cu acesta. Deoarece cmpul TTL face parte din antetul de nivel 3, suma de control de la acest nivel trebuie recalculat pentru fiecare echipament de nivel 3 parcurs de pachet.

6.6 Studiu de caz


6.6.1 Depanarea unei conexiuni la Internet
Una dintre cele mai frecvente activiti de depanare este cea de diagnostic i remediere a conectivitii ctre Internet. n depanarea oricrui eveniment exista dou abordri: Analiza top-down

R u t a r e | 213 Analiza bottom-up Denumirea celor dou abordri vine de la sensul de parcurgere al stivei OSI n vederea determinrii problemei: de sus n jos sau, respectiv, de jos n sus. Cele dou metode de abordare nu difer n ceea ce privete eficiena, fiecare dintre ele putnd fi folosit pentru diagnosticare i remediere. Studiul de caz curent propune diagnosticarea i depanarea lipsei conectivitii la Internet a unui PC. Dup cum se poate observa i n figura 6-24, lipsa conectivitii la Internet se manifest prin imposibilitatea accesrii unei pagini web.

6-24: Pagin inaccesibil


Abordarea folosit n diagnosticare va fi de top-down. Primul pas const n verificarea serverelor de DNS. Se poate ca acestea s nu fie configurate corespunztor i astfel rezolvarea numelui de domeniu s nu se fac adecvat. Astfel, se verific configuraia de la nivelul dispozitivului care ncearc sa acceseze site-ul pentru a observa existena intrrilor care indica serverul DNS utilizat.
C:\windows\system32>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : kevin88 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : noos.fr Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : noos.fr Description . . . . . . . . . . . : Atheros AR9002WB-1NG Wireless Network Adapter Physical Address. . . . . . . . . : D0-DF-9A-CB-DB-1A DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::7d4c:3c6f:2efb:5b37%12(Preferred) IPv4 Address. . . . . . . . . . . : 192.168.133.104(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Lease Obtained. . . . . . . . . . : Sunday, October 14, 2012 10:09:53 AM Lease Expires . . . . . . . . . . : Monday, October 15, 2012 10:09:53 AM Default Gateway . . . . . . . . . : 192.168.133.1 DHCP Server . . . . . . . . . . . : 192.168.133.1 DHCPv6 IAID . . . . . . . . . . . : 399564698 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-17-FB-C0-20-E8-9D-87-78-E0-2D DNS Servers . . . . . . . . . . . : 89.2.0.1 89.2.0.2 NetBIOS over Tcpip. . . . . . . . : Enabled

Se observ ca serverele DNS sunt configurate adecvat, acestea fiind 89.2.0.1 i respectiv 89.2.0.2. Cu toate acestea, se poate ca serverele s nu rspund la cererile DNS efectuate de PC. Pasul urmtor const n verificarea rspunsului din partea serverelor DNS.

214 | R e e l e l o c a l e d e c a l c u l a t o a r e
C:\windows\system32>ping 89.2.0.1 Pinging 89.2.0.1 with 32 bytes of data: Reply from 89.2.0.1: bytes=32 time=12ms TTL=60 Reply from 89.2.0.1: bytes=32 time=9ms TTL=60 Ping statistics for 89.2.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 9ms, Maximum = 13ms, Average = 11ms C:\windows\system32>ping 89.2.0.2 Pinging 89.2.0.2 with 32 bytes of data: Reply from 89.2.0.2: bytes=32 time=40ms TTL=60 Reply from 89.2.0.2: bytes=32 time=13ms TTL=60 Ping statistics for 89.2.0.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 13ms, Maximum = 40ms, Average = 25ms C:\windows\system32>nslookup Default Server: ns1.numericable.net Address: 89.2.0.1 > www.google.com Server: ns1.numericable.net Address: 89.2.0.1 Non-authoritative answer: Name: www.google.com Addresses: 2a00:1450:4007:802::1014 173.194.34.17 173.194.34.16 173.194.34.18 173.194.34.20 173.194.34.19

Se observ ca serverele DNS sunt accesibile i rspunsul din partea serverelor DNS este adecvat. n cazul n care acesta nu era corespunztor, sau n cazul n care serverele DNS nu puteau fi accesate, o soluie putea consta n configurarea manual a unui server DNS public, cum ar fi serverul 8.8.8.8. De asemenea, o alt surs a problemei poate fi reprezentat de proasta configurare a gatewayului default.
C:\windows\system32>ipconfig Windows IP Configuration Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : IPv4 Address. . . . . . . . . . . : Subnet Mask . . . . . . . . . . . : Default Gateway . . . . . . . . . : C:\windows\system32>ping 192.168.133.1 noos.fr fe80::7d4c:3c6f:2efb:5b37%12 192.168.133.104 255.255.255.0 192.168.133.1

Pinging 192.168.133.1 with 32 bytes of data: Reply from 192.168.133.1: bytes=32 time=1ms TTL=64 Reply from 192.168.133.1: bytes=32 time=1ms TTL=64 Ping statistics for 192.168.133.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 2ms, Average = 1ms C:\windows\system32>arp -a Interface: 192.168.133.104 --- 0xc Internet Address Physical Address 192.168.133.1 00-14-bf-92-ce-80 192.168.133.255 ff-ff-ff-ff-ff-ff 224.0.0.22 01-00-5e-00-00-16 224.0.0.252 01-00-5e-00-00-fc 239.255.255.250 01-00-5e-7f-ff-fa 255.255.255.255 ff-ff-ff-ff-ff-ff Type dynamic static static static static static

Se observ c gateway-ul default este configurat corespunztor i rspunde la pachete ICMP de tip request. Aceast verificare confirm i configurarea corespunztoare a parametrilor de nivel 3, staia aflndu-se n aceeai reea cu gateway-ul default, intrrile n tabela ARP pentru acesta fiind corecte. Ultimul pas n abordarea top down l reprezint verificarea mediului fizic, i anume al conectivitii la nivelul interfeei.
C:\windows\system32>ipconfig Windows IP Configuration Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : noos.fr

R u t a r e | 215
Link-local IPv6 IPv4 Address. . Subnet Mask . . Default Gateway Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : fe80::7d4c:3c6f:2efb:5b37%12 192.168.133.104 255.255.255.0 192.168.133.1

Dup cum se poate observa interfaa wireless pe care este ncercat transmisia este activ. n acest moment diagnosticarea top down a fost efectuat cu succes stabilindu-se c lipsa conectivitii ctre site-ul dorit nu este cauzat de configuraii greite la nivel local. n acest caz cea mai probabil cauz a lipsei serviciilor este indisponibilitate server-ului web care gzduiete site-ul. Verificarea acestui scenariu confirm imposibilitatea trimiterii pachetelor ctre acesta.
C:\windows\system32>ping google.com Pinging Request Request Request Request google.com [173.194.34.1] with 32 bytes of data: timed out. timed out. timed out. timed out.

Ping statistics for 173.194.34.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

6.7 ntrebri
1. Existena unei intrri n tabela de rutare de forma 141.85.37.0/24 141.85.254.37 nseamn: Trimite toate pachetele venite din reeaua 141.85.37.0/24 ctre 141.85.254.37 Trimite toate pachetele venite ctre reeaua 141.85.37.0/24 ctre 141.85.254.37 Trimite toate pachetele venite din reeaua 141.85.37.0/24 sau din orice alt subreea cuprins n acest spaiu de adrese ctre 141.85.254.37 Trimite toate pachetele venite ctre reeaua 141.85.37.0/24 sau ctre orice alt subreea cuprins n acest spaiu de adrese ctre 141.85.254.37 2. 3. 4. Decizia de a ruta sau nu un pachet se bazeaz pe Adresa sursa Adresa destinaie Adresa surs i portul surs Adresa destinaie i portul destinaie Care dintre urmtoarele descrie cel mai bine convergena reelei Cnd mesajele ajung simultan la un ruter i apare o coliziune Cnd mai multe rutere direcioneaz simultan pachete pe aceeai cale Cnd mai multe rutere ntr-o reea au aceleai cunotine despre structura i topologia reelei Cnd mai multe mesaje sunt transmise ctre aceeai destinaie Timpul cel mai redus de convergen l au Protocoalele de rutare static Protocoalele de tip distance vector Protocoalele de tip link state Protocoalele de rutare inter-AS

216 | R e e l e l o c a l e d e c a l c u l a t o a r e 5. Ctre ce interfa va fi direcionat un pachet cu destinaia 171.15.68.0 dac tabela de rutare este cea de mai jos Adresa reea Masc 171.15.63.0 171.15.64.0 0.0.0.0 Va fi trimis pe S0 Va fi trimis pe S1 Va fi trimis pe S2 Nu va fi rutat /24 /23 /0 Next Hop 172.17.0.9 194.230.5.65 Interfaa S0 S1 S2

6.8 Referine
[1] Andrew S. Tanenbaum, David J. Wetherall. Computer Networks (5th Edition). 2010 October. [2] CCNA ICND1 640-822 Official Cert Guide, Third Edition. Wendell Odom. 2011 October [3] CCNA ICND2 640-816 Official Cert Guide, Third Edition. Wendell Odom. 2011 October [4] Building Scalable Cisco Internetworks Self-Study Guide, Third Edition. Diane Teare, Catherine Paquet. 2006 December [5] Routing TCP/IP Volume I Second Edition. Jeff Doyle, Jennifer DeHaven Carroll. 2005 October [6] Routing TCP/IP Volume II, Second Edition. Jeff Doyle, Jennifer DeHaven Carroll. 2001 April [7] MCTS Self-Paced Training Kit (Exam 70-642): Configuring Windows Server 2008 Network Infrastructure. Second Edition. Tony Northrup, J.C. Mackin. 2011 August

P a g e | 217

7 Securizarea reelei
Ce se nva n acest capitol? Cine este Vint Cerf este un om de tiin american, n domeniul calculatoarelor, fiind recunoscut ca unul din prinii internetului, mprind acest titlu cu Bob Kahn. La nceput, Cerf a fost managerul unui proiect din cadrul (DARPA) Departamentului de Aprare, Agenia pentru Proiecte de Cercetare Avansate al Statelor Unite ale Americii, ce se ocupa cu finanarea tehnologiei TCP/IP. Bruce Schneier este un specialist n securitate. Schneier este autorul Applied Cryptography i Practical Cryptography. Schneier a proiectat sau contribuit la proiectarea mai multor algoritmi de criptare precum Blowfish, Twofish, Helix. n acest moment, Schneier este CSTO la BT Counterpane, companie pe care a nfiinat-o. Dup cum s-a prezentat n capitolele anterioare, dezvoltarea internetului a adus beneficii nenumrate utilizatorilor, prin schimbul rapid de informaii. O problem important aprut a fost modul n care protejm aceste informaii. De exemplu, n reeaua local a unei companii, exist un dispozitiv pe care sunt stocate informaii confideniale, la care trebuie s aib acces doar angajaii firmei, din punctele de lucru teritoriale. Pe acelai dispozitiv este publicat i o pagin web, care trebuie s fie accesibil oricui din exterior, potenialii clieni s poat vedea serviciile oferite de companie. Aadar exist un singur dispozitiv, ce este identificat n Internet printr-o adres (nivelul 3 reea). Nu se poate limita accesul dup informaiile de la nivelul reea (adresa dispozitivului), deoarece pagina web nu ar mai fi disponibil public. Trebuie folosit un alt mecanism, dup care s se fac limitarea dorit. Problema se poate rezolva prin blocarea pachetelor nedorite n funcie de informaiile oferite de antetul de nivel 4, nivelul transport. Rolul nivelului transport Protocoale de nivel transport (TCP/UDP) Ce este un firewall Cum securizm o reea Cum securizm o conexiune

7.1 Nivelul transport


Unul dintre principalele roluri ale nivelului transport este s permite accesul mai multor aplicaii, concomitent, ctre Internet, folosind aceeai adres de nivel reea (adres IP n cazul stivei TCP/IP). Acest lucru este posibil prin introducerea unui nou tip de adresare, la nivelul transport. Aceast adresare poart numele de port. Practic se asigur multiplexarea adresei de nivel reea: mai multe aplicaii pot folosi simultan aceeai adres de nivel 4, s comunice n reea. Se poate face o analogie cu multiplexarea semnalului, prezentat n capitolul ce descrie nivelul fizic, unde mai multe semnale puteau fi compuse i transmise simultan folosind un singur mediu de transmisie. O aplicaie folosete adresa de nivel reea i un port (adresa de nivel transport) pentru a realiza o legtur logic cu o alta, aflat n Internet. Aceast legtur poart numele de conexiune. Alte roluri oferite de nivelul transport sunt: iniierea conexiunii care are rolul de a negocia i de a crea legtura logic ntre dou aplicaii. n funcie de acest lucru exist dou tipuri de protocoale: orientate conexiune

218 | R e e l e l o c a l e d e c a l c u l a t o a r e (menin o conexiune logic pe tot parcursul transmisiei) i neorientate conexiune (datele sunt trimise direct la destinaie, fr stabilirea unei conexiuni logice prealabile) controlul fluxului care are rolul de a controla ct de multe date s fie trimise la un moment dat. Dac o conexiune este mai lent, trebuie s se atepte ca datele s ajung la destinaie, pentru a trimite un nou set. Altfel noul set trimis se va pierde, influennd transmisia ntregului coninut. sigurana transmisiei care are grij ca datele s ajung la destinaie. n cazul n care acestea s-au modificat n timpul transmisiei (din zgomotului pe mediul de transmisie) sau se pierd, protocolul va retrimite acele date. segmentarea datelor care are rolul de a mpri, datele primite de la aplicaie, n mai multe buci, numite segmente. Ulterior sunt transmise nivelului reea. Segmentul este unitatea de transmisie folosit de nivelul transport. Nu toate protocoalele de nivel transport asigur absolut toate rolurile prezentate anterior. Dup cum vom vedea n seciunile urmtoare, n cazul protocolului UDP, sigurana transmisiei nu exist. Pentru a asigura toate serviciile prezentate, pe lng avantaje, exist i dezavantaje, cum ar fi latena introdus de sigurana datelor (se tot retrimit segmente pn cnd se primesc la destinaie). n funcie de serviciile necesare ntr-o transmisie, exist mai multe protocoale implementate n stiva TCP/IP: TCP, UDP i ICMP. ATENIE: singura stiv folosit este cea TCP/IP, cea OSI fiind doar un model teoretic.

7.1.1 TCP vs. UDP


Dup cum s-a precizat anterior, dou din protocoalele implementate la nivelul stivei TCP/IP sunt TCP (care este inclus i n denumirea stivei, fiind principalul protocol de nivel 4) i UDP. TCP sau Transmission Control Protocol, este un protocol orientat conexiune care stabilete o legtur logic, nainte de transmisia efectiv a datelor. Acesta este un protocol sigur (reliable), garantnd faptul c datele ajung n ordine la destinaie (controlul fluxului) i sunt coerente, asigurnd i controlul erorii. n cazul, n care, circuitul pe care se transmite este congestionat, protocolul TCP este capabil s ncetineasc transmisia, asigurnd controlul congestiei. TCP a fost prima dat descris n lucrarea lui Vint Cerf [1], unde nu era separat de protocolul IP i purta numele de Transmission Control Program. Mai trziu acestea au fost separate, TCP fiind descris n RFC793 [2]. Spre deosebire de TCP, UDP (User Datagram Protocol) este neorientat conexiune (datele se trimit fr a se stabili o conexiune n prealabil), nesigur (unreliable) se pot pierde segmente i fr controlul fluxului, segmentele neavnd o anumit ordine. Mai multe detalii despre protocolul UDP se gsesc n RFC 768 [3], unde a fost prima dat definit formal. Din cele prezentate anterior, TCP i UDP sunt total opuse din punct de vedere al serviciilor oferite (sau rolurilor ndeplinite), UDP-ul fiind mai slab dect TCP-ul. De ce am avea nevoie de un protocol care nu ofer dect adresarea de nivel transport (multiplexarea), cum este UDP-ul? Rspunsul la aceast ntrebare este simplu: exist servicii la care este nevoie ca transferul s fie sigur, chiar dac apare o mic ntrziere n transmiterea datelor (ex. HTTP afiarea integral a paginii web), i servicii la care pierderea unui pachet nu este important, dac datele sunt trimise ct mai repede (ex. IPTV se vrea afiat coninutul de la momentul actual de timp, nu de acum X secunde. Dac se pierde un cadru, ochiul uman oricum nu sesizeaz). n tabelul urmtor, sunt rezumate diferenele dintre protocolul TCP i protocolul UDP:

S e c u r i z a r e a r e e l e i | 219

Criteriu Multiplexare Segmentarea datelor Conexiune Protocol sigur (reliable) Controlul fluxului Controlul erorii

TCP Da Da Orientat conexiune Da Da Da

UDP Da Da Neorientat conexiune Nu Nu Nu

7.1.2 TCP descrierea protocolului


Dup cum am precizat n seciunea anterioar, TCP este un protocol sigur, orientat conexiune. Acesta are un cmp de 8 bii, n antetul de nivel transport, care identific diverse stri ale protocolului, folosite pentru a asigura toate aceste servicii. Civa parametri (flag-uri) importani din acest cmp sunt: SYN este folosit n protocolul de stabilire a conexiunii. Stabilete numerele de secven folosite n trimiterea pachetelor pe conexiunea creat (numrul de secven este un identificator al unui pachet pe o legtur logic). FIN este folosit n partea de protocol ce se ocup cu nchiderea conexiunii. ACK (acknowledge) bitul este setat cnd se confirm primirea unui pachet (a fost primit
fr erori). Valideaz cmpul Numr de confirmare din antet, acest numr fiind egal cu identificatorul pachetului ce a fost primit plus unu (+1).

7-1 Three-way handshake Iniierea conexiunii, n cadrul protocolului TCP, se realizeaz printr-un proces n 3 pai, care se mai numete i three-way handshake. Pentru descriera acestuia, termenul de client va desemna iniiatorul conexiunii, iar serverul este destinaia la care se conecteaz. Astfel n primul pas, clientul trimite un pachet, avnd un numr de secven X, generat local, i flag-ul SYN setat. n al doilea pas, cnd serverul primete un astfel de pachet, aceasta va confirma cererea, trimind un rspuns care are numrul de secven diferit de cel primit, generat local (Y), iar flag-urile SYN i ACK setate.

220 | R e e l e l o c a l e d e c a l c u l a t o a r e Cmpul Numr de confirmare, din cadrul antetului, va avea valoarea egal cu numrul de secven primit plus unu (X+1). n ultimul pas, clientul va trimite o confirmare a pachetului primit, cu flag-ul ACK
setat, ncepnd transferul efectiv de date. O ilustrare a modului n care se realizeaz conexiunea se gsete n Fig. 7-1 [4]. n momentul terminrii transmisiei, conexiunea se va nchide, urmnd aceeai

succesiune de pai, cu diferena c n loc de flag-ul SYN, va fi folosit flag-ul FIN. Dup cum s-a precizat anterior, prin intermediul acestor parametri, se menine starea conexiunii TCP. Pe baza lor se vor putea face limitri de acces n reea, pentru cerinele de securitate impuse.

7.1.3 ICMP
Un alt protocol din cadrul stivei TCP/IP este Internet Control Message Protocol (ICMP). Acesta este folosit n special pentru diagnosticarea reelelor, nefiind utilizat pentru transportul efectiv de date. Cele mai importante programe care se bazeaz pe acest protocol sunt: ping msoar latena pn la o adres IP traceroute afieaz ruterele prin intermediul crora trece un pachet pn la destinaie. Pentru o descriere mai ampl a antetului ICMP, se poate consulta RFC792 [5]. Spre deosebire de TCP/UDP, acest protocol nu asigur multiplexarea, neexistnd o form de adresare la nivelul transport. ICMP funcioneaz folosind diferite tipuri de mesaje, cele mai folosite fiind: Echo request cerere de rspuns (folosit de ping) Echo reply rspuns la cererea primit
Destination Unreachable nu se gsete destinaia

Time exceeded numrul maxim de rutere permis pentru tranzitarea unui pachet (cmpul TTL din cadrul antetului IPv4) a fost atins.

Dup cum s-a descris anterior, principalul rol al nivelului transport este de a asigura o modalitate de adresare (portul), pentru a face distincia ntre diferite servicii (HTTP vs FTP). Acest lucru permite realizarea limitrii propus la nceputul acestui capitol, existnd o separaie clar ntre cele dou servicii (web i sistem de stocare securizat), pe baza portului folosit de fiecare dintre acestea. Limitarea efectiv este realizat de un firewall, aceasta purtnd, numele de filtrare.

7.2 Firewall
Dup cum s-a precizat n seciunea anterioar, un firewall are rolul de a limita accesul la anumite servicii, n funcie de cerinele companiei. Un alt rol important este de a ne apra de atacurile venite din Internet, care nu urmresc ndeosebi accesul la acele informaii securizate. Este foarte important de tiut scopul atacului, deoarece exist mijloace specifice pentru a bloca atacurile. n funcie de inteniile atacatorului, exist mai multe tipuri de atacuri: de recunoatere ce servicii ruleaz pe server (port scan), ce sisteme dintr-o reea sunt deschise (ping sweep), ce sistem de operare ruleaz pe un calculator din reea. Acest tip de atac poate fi prevenit prin nchiderea porturilor nefolosite i blocarea pachetelor ICMP (fr ICMP, ping-ul nu funcioneaz) de ntrerupere a accesului (DoS sau Distributed DoS) folosind metode specifice (SYN Flood) se suprancarc reeaua i sistemul atacat, acestea nemai rspunznd cererilor legitime. Acest tip de atacat poate fi prevenit prin limitarea numrului de pachete ce conin flag-ul SYN setat (se mai numesc i conexiuni half-open) de acces obinerea unei parole. Acest tip de atac poate fi prevenit prin securizarea conexiunii, descris n seciunea urmtoare. Fiecare tip de atac poate fi prevenit, prin filtre ce acioneaz la diferite nivele ale stivei de protocoale. n funcie de aceste nivele, firewall-urile se pot clasifica n: Stateless - nu menin starea conexiunii, avnd nevoie doar de informaiile de nivel 3 i 4.

S e c u r i z a r e a r e e l e i | 221 Stateful - menin starea conexiunii, avnd nevoie de informaiile din antetele 3, 4 i 5 (ex. acestea sunt capabile s fac distinia ntre pachetele de rspuns de la o anumit destinaie i o ncercare de iniiere a unei conexiuni de la aceeai destinaie). De nivel aplicaie (proxy firewall) acestea inspecteaz inclusiv poriunea de date pentru a realiza criptri (ex. este capabil s reconstruiasc un e-mail n vederea analizei acestuia). n Fig. 7-2 sunt ilustrate nivelurile la care aceste trei tipuri de firewall acioneaz:

7-2 Clasificarea firewall-urilor O alt clasificare a firewall-ului se poate realiza n funcie de serviciile pe care le ofer: IDS (Intrusion Detection System) se ocup doar cu detecia atacurilor, informnd alte dispozitive pentru a realiza blocarea atacul. Acesta nu este, de obicei, poziionat n fluxul de trafic (datele nu trec n mod direct prin el), datele ajungnd la firewall prin duplicare (vezi Fig 7-3). Astfel, n cazul unei ncrcri foarte mari de trafic, acesta nu va influena cu nimic perfomana reelei, ci doar nu va mai reui s analizeze tot traficul. Monitorizarea efectuat de IDS se mai numete i monitorizare pasiv.
IDS

3
ISP

1 1 2
Sw

1 2
IPS

8 A B

9 21 4 C

7-3 IDS/IPS IPS (Intrusion Prevention System) se ocup cu detecia i blocarea atacurilor, fiind poziionat n fluxul de trafic (vezi Fig 7-3). Deseori acesta este integrat n Gateway-ul

222 | R e e l e l o c a l e d e c a l c u l a t o a r e reelei locale (exist echipamente ce pot deservi ambele funcii). n cazul unui atac, acesta poate bloca n mod automat traficul maliios, dar n cazul n care traficul este foarte mare, analiza fiecrui pachet duce la scderea performanei reelei. Monitorizarea efectuat de IPS se mai numete i monitorizare activ. O alta clasificare a firewall-ului poate fi fcut n funcie de modul de implementare. Un firewall poate fi implementat ca un dispozitiv dedicat, folosind proceseoare de analiz specializate, numite ASIC-uri (Cisco ASA, Fortinet Fortigate). Acestea au perfomane foarte ridicate, dar i costurile de achiziie i mentenan sunt ridicate. O soluie alternativ pentru aceste firewall-uri sunt cele implementate n software, pe calculatoare cu procesoare de uz general (ZoneAlarm, Windows Firewall, Netfilter/Iptables). Netfilter/Iptables este framework-ul de firewall-ing cel mai des folosit n sistemele de operare Linux, att pe servere, ct i pe staiile de lucru obinuite. Popularitatea lui se datoreaz flexibilitii ridicate n filtrarea traficului. Mai multe detalii, despre cum este construit i cum se folosete, se gsesc n seciunea Utilitare.

7.3 Securizarea conexiunii


n seciunile anterioare, s-a descris cum se poate realiza filtrarea unui anumit tip de trafic (de exemplu doar punctele de lucru s aib acces la un serviciu) i prevenirea unor atacuri. Un alt criteriu foarte important n transferul datelor confideniale peste o reea este securitatea conexiunii. Ce nseamn o conexiune sigur? Criteriile ce trebuie ndeplinite, pentru a securiza o conexiune sunt: autentificare permiterea accesului n sistem doar anumitor persoane (sursa i destinaia unei conexiuni sunt cine spun c sunt). confidenialitate doar sursa i destinaia unei conexiuni pot vizualiza informaia. Astfel, chiar dac cineva reuete s obin un flux de date al transferului, s nu l poat folosi. Un exemplu este atunci cnd se trimite parola unui utilizator ctre un server de e-mail. Aceasta nu trebuie s fie vizibil unui potenial atacator. integritate mesajul de la destinaie nu a fost modificat pe parcurs. De exemplu, n cadrul unui transfer bancar electronic, este foarte important ca suma specificat s nu fie modificat. Securizarea comunicaiilor n Internet poate fi comparat cu semnarea unei scrisori i trimiterea acesteia ntr-un plic sigilat. Semntura d autenticitatea scrisorii (autentificare), iar plicul sigilat i confer acesteia confidenialitatea i integritatea necesar (datele nu pot fi vzute, nici modificate). Unul din cele mai importante protocoale ce ofer toate criteriile de securitate menionate mai sus este SSH (Secure SHell). Acesta este folosit ndeosebi pentru accesul sigur la distan, permind execuia de comenzi pe maina accesat sau transfer de fiiere. Exist dou versiuni majore ale protocolului: SSH-1 (are vulnerabiliti majore) i SSH-2 care este descris n RFC4250 [6], RFC4251 [7], RFC4252 [8], RFC4253 [9], RFC4254 [10], RFC4255 [11], RFC4256 [12], RFC4335 [13], RFC4344 [14], RFC4345 [15]. Cartea va aborda n continuare versiunea 2 a protocolului. SSH a fost conceput pentru a nlocui rlogin, rsh i telnet pentru a asigura securizarea conexiunii dintre dou staii ce comunic ntr-o reea nesigur, aa cum este Internetul. Prin canalul oferit pot fi redirectate i conexiuni X11 i porturi arbitrare ale protocoalelor de nivel 4 din stiva TCP/IP, orice comunicaie nesigur putnd fi securizat. SSH utilizeaz ca protocol de nivel transport TCP-ul, componenta server ascultnd pe portul 22. Confidenialitatea, n cadrul protocolului SSH, este asigurat prin criptarea datelor de transmis. Criptografia reprezint procesul de transformare a unui text clar ntr-un text cifrat. Ea st la baza multor servicii i mecanisme de securitate folosite n Internet, folosind metode matematice pentru transformarea datelor, cu intenia de a ascunde coninutul lor sau de a le proteja mpotriva modificrii. Criptarea unui mesaj este realizat cu ajutorul unei chei secrete, folosind un algoritm asociat. Versiunea criptat a mesajului poate fi citit de destinatar numai dac acesta posed cheia secret i algoritmul de decriptare. Exist dou tipuri de sisteme criptografice:

S e c u r i z a r e a r e e l e i | 223 simetrice (cu chei secrete), care folosesc aceeai cheie att la criptarea ct i la decriptarea mesajelor. asimetrice (cu chei publice/private), care folosesc chei distincte de criptare i decriptare. Una din chei este inut secret i este cunoscut doar de proprietarul ei (cheia privat). A doua cheie (perechea ei) este fcut public, fiind dificil de obinut matematic o cheie din cealalt. Criptografia cu chei publice/private funcioneaz n modul urmtor: o persoan care dorete s primeasc mesaje secrete deine dou chei, una public i una privat. Cheia public poate fi afiat pe pagina Web personal sau fcut public printr-un alt mijloc, aceasta putnd fi vzut de ctre oricine. Cheia privat, n schimb, va fi inut secret pe staia local. Dac n aceste condiii cineva va dori s trimit mesaje secrete acestei persoane, va lua cheia public afiat pe pagina Web personal i va cripta mesajul. Cnd mesajul va ajunge la destinaie, persoana ce deine cheia privat (perechea cheii publice care a fost utilizat n criptarea mesajului trimis) va decripta mesajul cu ajutorul acesteia. n absena cheii private mesajul nu va putea fi decriptat, astfel nct numai destinatarul lui de drept l va putea citi. Protocolul SSH folosete algoritmi de criptare simetric, pentru a oferi confidenialitate mesajelor: AES (Advanced Encryption Standard), 3DES (Triple Data Encryption Standard), IDEA, DES, ARCFOUR, BLOWFISH, TSS. 3DES este o cea mai popular variant, necesitnd o cheie comun pe 168, 112 sau 56 de bii (cu ct cheia e mai lung, criptarea este mai puternic, dar dureaz mai mult). Se pune problema partajrii cheii comune. Nu se poate trimite cheia pe canalul de comunicaie, ntre cele dou entiti, deoarece poate fi interceptat i compromis. Trebuie stabilit o cheie comun, fr ca aceasta s fie transmis pe canal, folosind algoritmul Diffie-Hellman Key Exchange, prezentat n Fig. 7-4.

7-4 Algoritm Diffie-Hellman Serverul ine o list de perechi (p,g) cu proprieti matematice speciale. p este un numr prim sigur (are forma p = 2*q + 1, unde q este numr prim), iar g este rdcin primitiv (mod p), adic pentru fiecare numr a prim cu p, exist un k cu proprietatea gk = a (mod p). Clientul face o cerere, pentru a primi perechea de numere (p,g). Fiecare genereaz cte un numr aleator i calculeaz expresia gx mod p, unde x este numrul generat aleator (n exemplul din figur sunt valorile A i B).

224 | R e e l e l o c a l e d e c a l c u l a t o a r e Clientul i serverul i trimit unul altuia valorile calculate, iar fiecare la rndul lui calculeaz cheia simetric, ridicnd numrul primit la valoarea generat aleator ((ga mod p) b mod p = (gb mod p)a mod p). Astfel ambele vor avea aceeai cheie, fr ca aceasta s fie transmis efectiv pe canalul de comunicaie. SSH suport dou moduri de autentificare: prin parol prin chei asimetrice La autentificarea prin parol, aceasta este trimis serverului, dup stabilirea unui canal criptat cu Diffie-Hellman. Astfel, parola este transmis printr-un canal criptat, iar serverul va decripta parola pentru a valida autentificarea. n caz c serverul este compromis, parola va fi descoperit. Pentru a elimina acest neajuns, se folosete autentificarea folosind cheile asimetrice (publice/private). Astfel, dup ce se realizeaz canalul criptat cu Diffie-Hellman, serverul trimite clientului un string aleator. Clientul va cripta stringul aleator cu cheia lui privat (numai de el tiut) i trimite napoi stringul criptat. Serverul l decripteaz folosind cheia lui public, iar dac rezultatul obinut n urma decriptrii este identic cu stringul trimis, atunci clientul este autentificat (cheia public putnd decripta doar mesajele criptate cu perechea ei, cheia privat). Dup autentificare, schimbul de mesaje se realizeaz folosind chei simetrice deoarece cheile asimetrice sunt ineficente n operaiile de criptare/decriptare, iar impactul asupra traficului este mult prea mare. Aadar, n cadrul protocolului SSH, autentificarea se face prin chei asimetrice, confidenialitatea asigurndu-se prin chei simetrice. Una dintre metodele de autentificare, folosind chei asimetrice, folosit de protocolul SSH este bazat pe algoritmul RSA (Rivest-Shamir-Adleman), publicat nc din 1977 [15].

7-5 Asigurarea integritii mesajelor Pentru ca protocolul SSH s asigure conexiuni sigure, acesta trebuie s ofere i integritatea datelor transmise (s ajung nemodificate la destinaie). Integritatea se poate realiza printr-un rezumat (digest/hash) al mesajului, funcie realizat prin MAC (Message Authentication Code), fiind un hash care folosete o cheie. Algoritmii de hashing folosii sunt MD5 i SHA-1. Ambii algoritmi au vulnerabiliti. Exist i algoritmul SHA-2, dar nu este diposnibil n protocolul SSH. SHA-3 este n dezvoltare, fiind preconizat anul 2012 pentru finalizare (la scrierea acestei cri nu era definitivat).

S e c u r i z a r e a r e e l e i | 225

n Fig. 7-5 este prezentat modul cum se verific integritatea unui mesaj, folosind o cheie secret comun. Exemplele de utilizare a programelor-client, ce folosesc protocolul SSH, cu toate facilitile acestuia, se gsesc n seciunea de utilitare. n cadrul studiului de caz, va fi prezentat modul de instalare i configurare a unui server SSH.

7.4 Utilitare
n acest subcapitol, se vor prezenta utilitare prin care: se pot vedea porturile folosite pe un calculator. se simuleaz o aplicaie client/server. se realizeaz filtrri de pachete folosind un firewall. este implementat protocolul SSH.

7.4.1 Linux
netstat/ss
netstat este un utilitar prin care se pot vedea informaii despre subsistemul de reea, n sistemul de operare Linux. Tipul informaiilor afiate este controlat prin primul parametrul, dup cum urmeaz: nici unul o list de conexiuni descrise. Dac nu este specificat tipul de adresare (Ipv4 sau Ipv6), atunci vor fi afiate conexiunile active pentru tipurile de adresare configurate:
root@HQ:~# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 localhost:mysql tcp 0 0 HQ.ro:ssh tcp 0 0 localhost:34374 tcp 0 0 localhost:51132 [...] Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State unix 2 [ ] DGRAM [...] Foreign Address localhost:51132 79-117-24-159.rds:50514 localhost:www localhost:mysql I-Node 3530 State ESTABLISHED ESTABLISHED TIME_WAIT ESTABLISHED

Path /var/spool/postfix/dev/log

--route afieaz tabela de rutare (echivalent ip route):


Genmask 255.255.255.224 255.255.255.224 255.255.255.192 255.255.255.192 0.0.0.0 Flags U U U U UG MSS 0 0 0 0 0 Window 0 0 0 0 0 irtt 0 0 0 0 0 Iface eth3 eth1 eth3 eth0 eth0

root@HQ:~# netstat --route Kernel IP routing table Destination Gateway 192.168.254.128 * 192.168.254.0 * localnet * 86.122.60.0 * default 86.122.60.1.con

--groups afieaz grupurile multicast --interfaces afieaz interfeele de reea. --masquerade afieaz toate adrese pentru care se face NAT (vezi capitolul Alterarea pachetelor) --statistics statistici pentru fiecare protocol n parte.

Cel mai adesea, netstat se folosete pentru a vedea porturile pe care ascult diverse servicii. n momentul n care nu v putei conecta pe un server la un serviciu (HTTP, SSH), primul pas este s verificai dac serviciul ascult pe portul asociat. Pentru a afia doar porturile pe care ascult o staie se poate folosi parametrul --listening (-l).

226 | R e e l e l o c a l e d e c a l c u l a t o a r e

root@HQ:~# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:https *:* LISTEN tcp 0 0 *:www *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:smtp *:* LISTEN [...] udp 0 0 localhost:domain *:* [...] Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 2450 @/com/ubuntu/upstart unix 2 [ ACC ] STREAM LISTENING 7482 /var/run/clamav/clamd.ctl [...]

Se observ c n prima seciune sunt afiate serviciile care accept conexiuni din Internet/reea (Active Internet connections). n a doua seciune sunt afiate conexiunile folosite la comunicarea inter-proces, prin intermediul subsistemului de reea. n general se dorete afiarea tuturor serviciilor ce ascult pe anumit port, dar care folosesc un anumit protocol. Pentru acest lucru exist opiunile: --tcp (-t) - afieaz doar conexiunile ce folosesc ca protocol TCP-ul. Se observ mai jos c se pot combina mai multe opiuni, folosind forma lor prescurtat, iar ordinea nu conteaz (t este pentru --tcp, iar l pentru --listening). O alt observaie este legat de faptul c apare i protocolul tcp6, acest lucru semnificnd c protocolul de nivel reea folosit este Ipv6:
root@HQ:~# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address tcp 0 0 *:https [...] tcp6 0 0 localhost:953 Foreign Address *:* [::]:* State LISTEN LISTEN

--udp (-u) - afieaz doar conexiunile ce folosesc ca protocol UDP-ul:


Foreign Address *:* *:* [::]:* State

root@HQ:~# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address udp 0 0 *:49251 udp 0 0 *:mdns [...] udp6 0 0 [::]:domain

Dac se dorete s se afieze i numele programului (imaginea lui de pe disc) ce ascult pe un port i ofer acel serviciu, se poate folosi opiunea --program (-p) n combinaie cu celelalte opiuni prezentate. n acest caz, este obligatoriu ca netstat s se ruleze cu drepturi privilegiate, altfel nu va afia nimic n dreptul seciunii PID/Program name.
root@HQ:~# netstat -ltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 *:https *:* [...] State LISTEN PID/Program name 1347/apache2

Se observ ca pe portul https (443), programul care ascult este apache2, avnd PID-ul 1347. De asemenea, o alt observaie este legat de faptul c se folosesc nume, n loc de numere (https n loc de 443, localhost n loc de 127.0.0.1). Aceast transformare n nume, poate fi evitat, pentru rapiditate, prin folosirea parametrului --numeric (-n):
root@HQ:~# netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 0.0.0.0:443 0.0.0.0:* [...] State LISTEN PID/Program name 1347/apache2

Transformarea numelor n adrese IP se face cu ajutorul DNS-ului (vezi capitolul Servicii de reea). Maparea ntre port/protocol i nume se face local, n sistemul de operare, n fiierul /etc/services. Dac se dorete s se vad, portul pe care ascult serviciul SSH i ce protocol se utilizeaz, cutm

S e c u r i z a r e a r e e l e i | 227 numele ssh n fiierul respectiv. Se observ maparea cu portul 22 al protocolului de nivel transport TCP:
root@HQ:~# cat /etc/services | grep ssh ssh 22/tcp # SSH Remote Login Protocol

O dat cu evoluia nucleului sistemului de operare, au aprut alte utilitare cu ajutorul crora se pot monitoriza conexiunile dintr-un sistem, acestea fiind mult mai rapide. Un nlocuitor al lui netstat este ss. ss este mult mai rapid i ofer exact aceleai opiuni ca i netstat, modul n care este apelat fiind identic. Aadar este recomandat folosirea lui ss n locul lui netstat:
root@HQ:~# ss -ltpn Recv-Q Send-Q Local Address:Port Peer Address:Port 0 128 *:443 *:* users:(("apache2",1347,4),("apache2",3201,4),("apache2",3208,4),("apache2",3209,4),("apache2", 3210,4),("apache2",3303,4),("apache2",4519,4),("apache2",27075,4),("apache2",27086,4),("apache 2",27088,4),("apache2",27089,4),("apache2",30362,4)) [...]

Se observ c forma n care sunt afiate informaiile difer. De asemenea, n loc s afieze doar procesul principal, din care s-a pornit aplicaia i s-a deschis portul aferent, afieaz toate firele de execuie, ce fac parte din procesul iniial, fiecare avnd un alt PID. Al doilea numr, respectiv 4, este numrul descriptorului de fiier asociat conexiunii curente n procesul respectiv.

netcat (nc)
netcat (nc) este un utilitar cu ajutorul cruia se poate simula o aplicaie client-server, protocolul i portul folosite putnd fi configurate. Putei folosi interschimbabil nc i netcat, n general ambele fiind link-uri simbolice ctre acelai executabil (este configurabil, deci vor exista excepii). Dup rulare, se pot scrie mesaje text n terminale, acestea fiind transmise la cellalt capt. Serverul se simuleaz rulnd netcat cu opiune -l (listen), dup care specificm adresa IP pe care va asculta (din cele configurate pe interfee) i portul. Adresa IP poate fi omis, serverul ascultnd pe toate IP-urile configurate. Pentru a folosi porturi mai mari de 1024, trebuie s avei drepturi privilegiate (root). Pentru client, se ruleaz netcat, urmat de adresa IP a serverului i portul configurat. n exemplul urmtor, vom folosi adresa IP 86.122.60.17 pentru server i portul 666: server
root@HQ:~# netcat -l 86.122.60.17 666 ce faci?

client

root@A:~# nc 86.122.60.17 666 ce faci?

Orice mesaj scris la client sau la server, urmat de tasta Enter, va aprea la cellalt capt. nainte de a trimite mesajul ce faci?, s-a rulat utilitarul tcpdump, avnd ca filtru de selecie portul 666 (dst port 666) i opiunea prin care s afieze coninutul pachetelor capturate (-X):
root@HQ:~# tcpdump dst port 666 -X tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 17:10:04.671900 IP A.61047 > HQ.666: Flags [P.], seq 128857460:128857469, ack 27922159, win 1795, options [nop,nop,TS val 97953349 ecr 754844774], length 9 0x0000: 4500 003d e473 0000 3706 9d9a 8d55 e1cc E..=.s..7....U.. 0x0010: 567a 3c11 ee77 029a 07ae 3574 01aa 0eef Vz<..w....5t.... 0x0020: 8018 0703 f940 0000 0101 080a 05d6 a645 .....@.........E 0x0030: 2cfe 0466 6365 2066 6163 693f 0a ,..fce.faci?.

Se observ c pachetul trimis de la A la HQ (de la client la server) nu este criptat, n coninutul acestuia aprnd mesajul trimis (ce faci?). Un exemplu de utilizare al netcat este atunci cnd vrem s simulm o conexiune ntre dou puncte, pe un anumit port, cu scopul de a vedea dac acel port este filtrat/blocat.

228 | R e e l e l o c a l e d e c a l c u l a t o a r e

iptables
iptables este un utilitar, cu care se pot aduga reguli de filtrare i alterare a pachetelor, exclusiv pentru Linux, acesta fcnd parte din proiectul Netfilter [16]. iptables permite unei
maini Linux s:

filtreze pachete. translateze adrese (s schimbe adresa de nivel 3 cu o alta). rescrie cmpuri n antetul pachetelor. iptables introduce noiunea de tabel, pentru fiecare funcie de mai sus, existnd cte un tabel predefinit, n care se adaug reguli: filter conine reguli care spun ce trafic poate s treac i ce trafic trebuie blocat (de exemplu dorim ca toate conexiunile SSH s fie acceptate, iar cele TELNET s fie blocate pentru a nu permite conexiuni nesigure din reea) nat conine reguli pentru translatarea adreselor, permind calculatoarelor cu adrese private din reea s acceseze Internetul prin rescrierea cmpului IP surs din antet, cu un IP surs rutabil. mangle conine reguli de alterarea a pachetelor (pot fi modificate diferite cmpuri ale antetelor). n aceast seciune vom insista pe filtrarea pachetelor, translatarea i alterarea pachetelor fiind descris pe larg n capitolul Alterarea pachetelor. Firewall-ul se configureaz prin scriere de reguli iptables. O regul are dou seciuni principale: selecie se specific ce trafic va fi preluat, pe baza cmpurile din antete. aciune ce se ntmpl cu pachetele selectate (sunt acceptate, ignorate sau se modific).

7-6 iptables fluxul de trafic Traficul, de pe un ruter Linux, este mprit de iptables n mai multe tipuri, aceste tipuri purtnd numele de lanuri (chains). Dup specificarea tabelului, trebuie specificat lanul, dup cum urmeaz:

S e c u r i z a r e a r e e l e i | 229 INPUT traficul care se adreseaz mainii locale (pe care se adaug regulile). OUTPUT traficul ce are ca origine (este generat de) maina local. PREROUTING traficul nainte de procesul de rutare (nainte s se stabileasc pe ce interfa va pleca). POSTROUTING traficul dup procesul de rutare (deja s-a stabilit interfaa pe care va pleca). FORWARD traficul ce va trece prin procesul de rutare, deci sigur nu este adresat staiei locale. Tabele i lanurile predefinite sunt n strns legtur, lanurile neexistnd n fiecare tabel. n Fig. 7-6, sunt prezentate lanurile cu tabelele n care se pot folosi. n continuare se va prezenta modul de configurare al unui firewall folosind iptables, pornind de la urmtorul exemplu:
root@HQ:~# iptables t filter A INPUT s 10.0.0.0/8 p tcp --dport 22 j DROP

Se observ c tabela se specific cu ajutorul parametrului t. n cazul de fa regula se va aduga n tabela filter. Dac nu se specific nici o tabel, cea implicit este filter. Deci comanda de sus este echivalent cu:
root@HQ:~# iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 22 -j DROP

Toate opiuni premise pentru parametrul t sunt: filter blocarea traficului dorit nat translatarea de adrese mangle alterarea pachetelor raw configurarea excepiilor de monitorizare a conexiunilor (nu face subiectul acestei cri). Toate opiunile de selecie prezentate n continuare, vor fi fcute pe tabela filter, celelalte dou tabele fiind prezentate pe larg n capitolul Alterarea pachetelor. Dup specificarea tabelei (dac este cazul), trebuie precizat lanul pentru selecia tipului de trafic. n exemplul dat, se folosete lanul INPUT pentru a selecta traficul destinat staiei HQ. INPUT poate fi nlocuit cu orice lan predefinit, acceptat de tabela filter. De exemplu, dac dorim s selectm traficul ce pleac de la staia HQ vom folosi lanul OUTPUT. ntr-un lan se pot aduga, terge, afia reguli. Acest lucru este controlat de parametrul folosit naintea lanului. n cazul de fa s-a folosit A ce are ca semnificaie adugare la sfritul listei de reguli. Operaiile posibile i semnificaia lor sunt, dup cum urmeaz: -A sau --append adugarea unei reguli la finalul listei. -D sau --delete tergerea unei reguli. -L sau --list afiarea regulilor adugate. Dac se omite specificarea lanului, sunt afiate regulile din toate lanurile existente n tabel. -F sau --flush tergerea tuturor regulilor. Dac se omite specificarea lanului, sunt terse regulile din toate lanurile. -N sau --new-chain crearea unui nou lan customizat n funcie de necesiti. De exemplu se dorete un lan ce selecteaz tot traficul ce tranziteaz firewall-ul, dar care are ca surs doar clasele de IP ale Google. Trebuie adugat o regul pentru fiecare clas de IP-uri ale Google. Dac la selecie s-ar dori adugarea unei destinaii, atunci pentru fiecare destinaie ar trebuie adugate cte o regul corespunztoare fiecrei clase de IP Google, astfel numrul de reguli se multiplic. Dac se folosete lanul creat, atunci va exista doar cte o regul pentru fiecare destinaie. Vom vedea n fragmentele urmtoare c numrul de reguli afecteaz n mod direct performana unui ruter. -X sau --delete-chain terge un lan creat anterior. Nu se pot terge lanurile predefinite.

230 | R e e l e l o c a l e d e c a l c u l a t o a r e -P sau --policy specific politica implicit a unui lan. Politica implicit a unui lan se refer la aciunea pe care acesta o ia, n cazul n care un pachet nu corespunde nici unei reguli din lan. Valorile permise, dup specificarea lanului, sunt ACCEPT (dac nu poate fi selectat cu nici o regul este trimis mai departe) sau DENY (dac nu corespunde nici unei reguli, este blocat). Lanurile create de utilizator nu pot avea politic implicit. Dup specificarea tipului de trafic, selecia se poate face mai specific, dup informaiile din antetele pachetului. n exemplu de fa s-a dorit selecia pachetelor ce au ca surs un IP din clasa 10.0.0.0/8, acest lucru realizndu-se cu parametrul -s (surs). Parametri posibili sunt: -i urmat de inferfaa de intrare -o urmate de inferfaa de ieire -d urmat de adresa IP destinaie -s urmat de adresa IP surs. Opiunile prezentate anterior permit practic selectarea unui pachet dup informaiile din antetul de nivel reea (surs-destinaie). iptables extinde procesul de selecie, permind specificarea protocolui de nivel transport folosind parametrul p urmat de numele protocolului (tcp, udp sau icmp). Dup protocolul folosit, se poate specifica i portul surs sau destinaie folosind parametrii --sport (source port) i --dport (destination port). Pentru protocolul TCP, se pot face selecii i dup flag-urile ce sunt setate n cadrul antetului (SYN ACK FIN RST URG PSH) folosind opiunea --tcp-flags. Aceasta primete doi parametri: primul specific flag-urile ce vor fi analizate, separate de virtul, iar al doilea specific flagurile ce trebuie s fie setate pentru ca pachetul s fie selectat). De exemplu, comanda urmtoare va selecta traficul ce folosete procolul TCP i are flag-ul SYN setat, iar restul flag-urile, ACK, FIN, RST nesetate (acesta este un exemplu cnd se dorete selecia pachetelor ce sunt folosite la deschiderea unei conexiuni):
root@HQ:~# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN

Selecia prezentat este foarte des folosit i de aceea iptables pune la dispoziie o form prescurtat i anume parametrul --syn, n loc de --tcp-flags. Astfel comanda anterioar este echivalent cu urmtoarea:
root@HQ:~# iptables -A FORWARD -p tcp --syn

Protocolul ICMP (-p ICMP), n cadrul comenzii iptables, ofer posibiliti de selecie n funcie de tipul pachetului ICMP (echo-request, echo-reply, time-excedeed), folosind parametrul --icmp-type urmat de unul din tipurile menionate anterior. Pentru a vedea toate opiunile unui protocol, se recomand folosirea comenzii: iptables -p nume_protocol -h sau consultarea paginilor de manual (man iptables). Dup cum s-a precizat la nceputul seciunii, o regul iptables are dou seciuni: una de selecie i una de aciune. Pn la parametrul j al regulii se afl partea de selecie, j specificnd aciunea ce trebuie ntreprins pentru pachetul selectat. Aciunea poate fi omis, caz n care nu se ntmpl nimic cu pachetul selectat, doar este incrementat un contor de selecie. n terminologia iptables, -j vine de la jump, iar ceea ce urmeaz dup el este un target, cele mai uzuale valori pentru tabela filter fiind: ACCEPT pachetul selectat este acceptat DROP pachetul selectat este blocat LOG adaug n log-urile sistemului o nregistrare ce descrie pachetul selectat. Pn n acest punct, s-a descris din ce e compus o regul iptables i cum o construim. Ce se ntmpl n momentul n care exist mai multe reguli n acelai lan? Cum sunt acestea parcurse pentru a vedea dac pachetul curent se potrivete cu vreuna din ele? Rspunsul este simplu: acesta parcurge regulile de sus n jos (ca i tabela de rutare) de la prima regul pn la ultima, verificarea fcndu-se secvenial. n momentul n care s-a gsit o regul ce poate selecta pachetul curent, se

S e c u r i z a r e a r e e l e i | 231 aplic aciunea corespunztoare regulii, iar procesarea se termin (nu se mai verific i restul intrrilor din tabel). Aadar ordinea n care sunt regulile n lan conteaz, de aceea existnd dou opiuni de adugare: -A la sfritul listei i -I oriunde n list (dac nu se specific poziia, se adaug n capul listei). n Fig. 7-7 este prezentat un exemplu de parcurgere a regulilor din lanul FORWARD pentru un pachet dat.

7-7 iptables pacurgere reguli Ce se ntmpl cnd nicio regul nu selecteaz pachetul curent? S-a discutat anterior despre configurarea unei politici implicite. Aceasta este cea care se aplic n cazul n care nici o regul nu se potrivete. n mod implicit, politica este ACCEPT (toate pachetele se accept). Problem: se dorete s se blocheze tot traficul de la clasa de IP-uri 10.0.0.0/8 i de la 192.168.0.0/24, dar traficul de la clasa de IP-uri 10.0.1.0/24, ce face parte din 10.0.0.0/8 s fie acceptat. Vom bloca traficul de la clasele de IP-uri date, pe lanul FORWARD (este lanul prin care trec pachetele ce vin dinspre reea i trebuie rutate ctre exterior).
root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination root@HQ:~# iptables -A FORWARD -s 10.0.0.0/8 -j DROP root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.0/8 anywhere root@HQ:~# iptables -A FORWARD -s 192.168.0.0/24 -j DROP root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.0/8 anywhere DROP all -- 192.168.0.0/24 anywhere

Se observ c regulile au fost adugate n ordine. Acum vom aduga o regul care s accepte traficul de la clasa 10.0.1.0/24:
root@HQ:~# iptables -A FORWARD -s 10.0.1.0/24 -j ACCEPT root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.0/8 anywhere DROP all -- 192.168.0.0/24 anywhere ACCEPT all -- 10.0.1.0/24 anywhere

Regula a fost adugat la sfrit i aceasta nu va avea nici un efect pentru c selecia se va opri la prima regul. Pentru a avea efect, trebuie tears i adugat la nceput.
root@HQ:~# iptables -D FORWARD -s 10.0.1.0/24 -j ACCEPT root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.0/8 anywhere DROP all -- 192.168.0.0/24 anywhere root@HQ:~# iptables -I FORWARD -s 10.0.1.0/24 -j ACCEPT root@HQ:~# iptables -L FORWARD Chain FORWARD (policy ACCEPT) target prot opt source destination

232 | R e e l e l o c a l e d e c a l c u l a t o a r e
ACCEPT DROP DROP all all all ---10.0.1.0/24 10.0.0.0/8 192.168.0.0/24 anywhere anywhere anywhere

Se observ i politica implicit a lanului FORWARD ca fiind ACCEPT (policy ACCEPT). O opiune recomandat cnd se afieaz coninutul unui lan este n (numeric) pentru c iptables s nu mai ncerce s rezolve numele (s nu mai fac cereri DNS vezi capitolul Servicii de reea), astfel execuia este mult mai rapid. Dac se dorete afiarea unor informaii suplimentare despre regulile introduse (de exemplu ce porturi surs/destinaie au fost folosite la scrierea regulii, cte pachete au fost selectate de o anumit regul), se poate folosi opiunea -v n combinaie cu -L. Acestea se pot scrie mpreun, chiar i cu -n, dar este obligatoriu ca L s fie ultimul, altfel iptables se va ntoarce cu o eroare, nu foarte sugestiv:
root@HQ:~# iptables -A FORWARD -s 172.16.10.0/24 -p tcp --sport 22 -j DROP root@HQ:~# iptables -nLv FORWARD iptables v1.4.4: Invalid rule number `FORWARD' Try `iptables -h' or 'iptables --help' for more information. root@HQ:~# iptables -nvL FORWARD Chain FORWARD (policy ACCEPT 59M packets, 19G bytes) pkts bytes target prot opt in out source destination 4 400 ACCEPT all -- * * 10.0.1.0/24 0.0.0.0/0 3 325 DROP all -- * * 10.0.0.0/8 0.0.0.0/0 10 1320 DROP all -- * * 192.168.0.0/24 0.0.0.0/0 5 523 DROP tcp -- * * 172.16.10.0/24 0.0.0.0/0

tcp spt:22

Trebuie menionat faptul c toate configurrile fcute cu iptables sunt n memoria Linuxului. Aadar, la un restart al sistemului de operare, toate aceste configurri se pierd, comenzile iptables trebuind executate din nou. iptables-save este un utilitar cu care se pot salva configurrile fcute ntr-un fiier, pentru ca apoi s fie folosit utilitarul iptables-restore pentru a reface coninutul tabelelor.
root@HQ:~# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source destination destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 10.0.1.0/24 0.0.0.0/0 DROP all -- 10.0.0.0/8 0.0.0.0/0 DROP all -- 192.168.0.0/24 0.0.0.0/0 DROP tcp -- 172.16.10.0/24 0.0.0.0/0 root@HQ:~# iptables-save > iptables_rules

tcp spt:22

S-au salvat regulile existente n fiierul iptables_rules. Se vor terge toate regulile existente folosind opiunea F (flush). Se poate observa c nu mai exist nici o regul:
root@HQ:~# iptables F root@HQ:~# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source

destination destination destination

Cu ajutorul lui iptables-restore se vor reface regulile, dup cum se poate observa mai jos.
root@HQ:~# iptables-restore < iptables_rules root@HQ:~# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source ACCEPT all -- 10.0.1.0/24 DROP all -- 10.0.0.0/8 DROP all -- 192.168.0.0/24 DROP tcp -- 172.16.10.0/24 destination destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0

tcp spt:22

S e c u r i z a r e a r e e l e i | 233 Un exemplu avansat de configurare, folosind porturi ale protocoalelor i modificri ale politicilor implicite, se gsete n seciunea Scenariu de utilizare.

TCP Wrapper
TCP Wrapper este un sistem de limitarea a accesului din reea/Internet la anumite servicii folosind liste de acces (access constrol lists ACL). Funcia lui este echivalent cu cea a aplicrii unei filtrri, folosind iptables, pe lanul de INPUT. Un avantaj al acesteia este faptul c serviciile se filtreaz dup nume, i nu dup portul pe care-l folosesc. Astfel dac se blocheaz portul 22, iar serverul ssh ascult pe portul 22000, accesul ctre acesta va fi liber dac limitarea se face dup port. Exist totui un dezavantaj major n folosirea TCP Wrapper: aplicaiile trebuie s fie compilate cu biblioteca libwrap.so. Pentru a verifica acest lucru, pentru serviciul de ssh de exemplu, se procedeaz n felul urmtor:
root@HQ:~# whereis sshd sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz root@HQ:~# ldd /usr/sbin/sshd linux-vdso.so.1 => (0x00007fff4fe44000) libpam.so.0 => /lib/libpam.so.0 (0x00007fa1b10a1000) libdl.so.2 => /lib/libdl.so.2 (0x00007fa1b0e9d000) libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007fa1b0b0c000) libutil.so.1 => /lib/libutil.so.1 (0x00007fa1b0909000) libz.so.1 => /lib/libz.s o.1 (0x00007fa1b06f2000) libnsl.so.1 => /lib/libnsl.so.1 (0x00007fa1b04d7000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007fa1b029e000) libresolv.so.2 => /lib/libresolv.so.2 (0x00007fa1b0085000) libc.so.6 => /lib/libc.so.6 (0x00007fa1afd01000) /lib64/ld-linux-x86-64.so.2 (0x00007fa1b12bb000)

Se poate observa c acest serviciu, nu a fost compilat cu libwrap.so. Fiierele folosite pentru configurare sunt /etc/hosts.allow (pentru a specifica serviciile pentru care se accept conexiuni) sau /etc/hosts.deny (pentru a specifica serviciile pentru care nu se accept conexiuni). De menionat c mai nti se parcurge fiierul /etc/hosts.allow, dup care /etc/hosts.deny. Liniile din aceste fiiere au urmtorul format:
list_servicii : list_clieni

list_servicii o list cu unul sau mai multe nume de procese list_clieni o list cu unul sau mai multe nume de staii, adrese IP, expresii regulate sau wildcard-uri (ALL orice client, LOCAL orice nume de staie ce nu conine puncte). Toate acestea sunt descrise pe larg n paginile de manual: man 5 hosts_access. n continuare vom prezenta cteva exemple de configurare pe un sistem Unix: n fiierul /etc/hosts.allow, permitem accesul numai anumitor IP-uri din reea la serviciile popd (192.168.1.205 192.168.1.103), imapd (192.168.1.0/255.255.255.0) i ssh (192.168.1.2 172.16.23. este corect forma 172.16.23., aceasta semnificnd 172.16.23.0/24; .pub.ro specific toate numele care se termin cu acest sufix, exceptnd cs.pub.ro):
popd : 192.168.1.205 192.168.1.103 imapd : 192.168.1.0/255.255.255.0 sshd : 192.168.1.2 172.16.23. .pub.ro EXCEPT cs.pub.ro

n fiierul /etc/hosts.deny, blocm restul traficului:

ALL : ALL

Exist dou utilitare de verificare a funcionalitii TCP Wrapper: tcpdchk verific fiierul de configurare pentru corectitudine. Pentru informaii suplimentare folosii parametrul -v (verbose). tcpdmatch daemon adresa_surs verific cum trateaz TCP Wrapper o conexiune de la adresa adresa_surs la serviciul daemon:

234 | R e e l e l o c a l e d e c a l c u l a t o a r e
root@HQ:~# tcpdmatch sshd 127.0.0.1 client: address 127.0.0.1 server: process sshd access: granted

SSH
Cea mai popular implementare a protocolului SSH o reprezint pachetul OpenSSH, un proiect open source, lansat i creat de cei de la OpenBSD. n prezent, cea mai nou versiune de OpenSSH este 6.0p1, lansat pe 20 aprilie 2012. Pachetul ssh este compus dintr-un server (sshd), un client (ssh - disponibil implicit pe majoritatea distribuiilor) i un set de utilitare, pentru gestiunea cheilor. n general sshd este pornit de scripturile de iniializare ale sistemului i ruleaz permanent n background. Instalarea serverului SSH include instalarea unor module adiionale cum ar fi: sshd component server (va fi prezentat n seciunea Studiu de caz). ssh client SSH. ssh-keygen utilitar folosit pentru generarea cheilor. ssh-keyscan utilitar folosit pentru administrarea cheilor publice. scp utilitar pentru copierea sigur de fiiere. ssh-agent component folosit pentru stocarea cheilor private. ssh-copyid se copiaz o cheie public n contul de utilizator la care se dorete accesul. Pentru instalarea pachetului SSH pe sistemele Linux debian-based, se execut urmtoarea comand:
root@HQ:~# apt-get install ssh [...]

Odat instalat, serverul SSH este pornit automat. Pentru pornirea sau repornirea sa se poate folosi utilitarul service:
root@HQ:~# service ssh {start|stop|reload|force-reload|restart|try-restart|status}

Comanda de conectare la un server SSH are doi parametri importani: numele utilizatorului i adresa (numele) serverului destinaie. Serverul de SSH la care se va face conectarea, n exemplul de mai jos, este: securessh.ro, acest nume fiind un nume public, pe care serviciul de DNS l va traduce ntr-o adres IP. Dac se dorete conectarea la un server, dar nu se cunoate numele su DNS, se poate introduce direct IP-ul serverului. Cnd un client iniiaz o conexiune ssh pe un server, trebuie s se conecteze folosind un nume de utilizator existent pe acel server, pentru a putea avea acces la interpretorul de comenzi (linia de comand). Parametrul mihai din exemplul urmtor specific utilizatorul n contul cruia se va intra, la stabilirea conexiunii:
root@HQ:~# ssh mihai@securessh.ro mihai@securessh.ro's password: Last login: Tue Aug 28 12:19:16 2012 from 188.26.195.166 mihai@securessh:~$

n rezultatul comenzii de mai sus se poate observa faptul ca s-au mai fcut conexiuni anterioare pe acel server de SSH, fiind oferit att ora i data ultimei conexiuni, ct i adresa IP de la care s-a realizat conexiunea. Cnd un client de SSH iniiaz pentru prima dat o conexiune ctre un server nou, acesta din urm va trebui sa se autentifice ctre client. Fiecare server de SSH are un identificator unic (host key) cu care se autentific clienilor. Acest ID este implementat prin chei publice i chei private. La primirea unei conexiuni de la un client, serverul ofer cheia sa public, fcnd astfel posibil autentificarea. La acceptarea cheii publice de la server, clientul adaug aceast cheie n fiierul known_hosts. Astfel, urmtoarea conexiune, pe care acest client o va face la server, nu va mai necesita transferul cheii publice, aceasta existnd deja stocat la client. Pentru a realiza acest lucru, clientul SSH va salva cheia serverului n fiierul local $HOME/.ssh/known_hosts. La urmtoarea conectare pe acelai server, clientul SSH va

S e c u r i z a r e a r e e l e i | 235

verifica acest fiier i, dac va gsi cheia public oferit de acesta, se va afia pentru autentificare doar parola. Un exemplu de fiier known_hosts este urmtorul:
root@HQ:~# cat ~/.ssh/known_hosts v20z.zefyris.com,213.41.253.7 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEhlOViodZrqIUApSibzamwo+6fNGu6UESh1kpdRsFqG6gcDSj0uUtmb00DMK9tt PwOfVyhnx+/EIKBhuah11hzjCeztAb2IntjVpdNO26PVOGjXVLlOXRP3uodKQj8VHeS2HmeSOdEPCoXAfTkN9broAuaU5j Hyb3rPaT2T1Tc3jFsj750FyQ4HY9078Nnfz2nsAloOmCOjGA1vDR5tU+URBdzdsrVq5oxCE4+h7Kb0FQSrSianDMz3Hx+K RjEOMAczUWsgAtZ3csR1gR7MJcvOMlUW9NHaffuv/lhkbE4o2GIDDIuRT/MECps9tlft+otv9Xqe1EF5LjL77kBXJh 141.85.227.118 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuSQeZhVimxizhtOdcS1hx1OYW8u8iZjCHwrtrmjyfiHmZRDxC9zEnTTU32472azIX2 dHV3UMA3ynVyqLsVcwUcR3k6OI6lHJaDkEwWMXfQ2BDOxYp1wo77u9Mqh4stjRtLEHCe1XXdBsqvFsFm0PWqgdnsjukk2h EdL/cTsikF8g7u5C+dUqu3ky5CJnsE086n45Qv8w4kV0pWMa1hi9d3ndTiAlVCA/2RyCqmJC/U98XCFmW/bLLOwi2QYdFH 8sc84MUME8rkFHLMUcEyQm18JwxoCVvZxYOUuVha7ftLDau03qSWmTVsYCkzu1bAPe2M4aSwaGoQmMUbBwiVOGlw== securessh.ro,69.163.100.198 ssh-rsa AAAB3NzaC1yc2EAAAABIwAAAIEA4JhuSSNp2/BZljjRTdii61PObXJI6UdJ9wdg6lZJMEIWdl6ZGJauPRgFDzsTuz6bdUI TZadhsgs5vfXYRIVupvwflfP1V/ihJFe1juTRN+WAZqla0nOKdR3/XHLhue2pWjIZYDkBFgwWB29biFdBv7FxJCBObcW8e HNyfOOgb8E=

Pe prima linie sunt trecute numele serverului de la distan (dac acesta are un nume DNS) i adresa IP a acestuia, apoi urmnd cheia public. n exemplul de mai sus exist trei servere la care utilizatorul s-a conectat n prealabil i a cror cheie public a fost salvat. Aceste chei se pot afla n dou locuri din sistemul de fiiere: /etc/ssh/ssh_known_hosts, fiier a crui locaie poate fi schimbat prin alterarea directivei GlobalKnownHostsFile din fiierul de configurare /etc/ssh/ssh_config. $HOME/.ssh/known_hosts, fiier a crui locaie poate fi schimbat prin alterarea directivei UserKnownHostsFile din acelai fiier de configurare. n captura de mai jos, se poate observa cum la prima conexiune realizat la un server, clientul reine amprenta acestuia n fiierul known_hosts:
root@HQ:~# ssh mihai@micosconstruct.ro The authenticity of host 'micosconstruct.ro (86.122.60.17)' can't be established. RSA key fingerprint is 2d:40:d6:d8:f6:70:ee:a3:57:7b:a6:d6:35:d3:72:2e. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'micosconstruct.ro,86.122.60.17' (RSA) to the list of known hosts. mihai@micosconstruct.ro's password:

Sintaxa complet a utilitarului ssh permite precizarea unei liste de parametri, a utilizatorului i a adresei destinaie, precum i a unei comenzi ce va fi rulat dup stabilirea sesiunii SSH. Dac nu este precizat o comand, se va rula un interpretor de comenzi (cel mai adesea /bin/bash). n exemplul de mai jos, sunt rulate local dou comenzi separate prin ;. Apoi se ruleaz aceleai comenzi (de data aceasta protejate, ntre ghilimele), rezultatul afiat este cel al executrii lor pe staia destinaie, dup autentificarea cu utilizatorul mihai.
root@HQ:~# hostname; pwd hQ /root root@HQ:~# ssh mihai@micosconstruct.ro "hostname; pwd" mihai@micosconstruct.ro's password: micos /home/mihai

Dup cum s-a observat, exist dou modaliti de execuie a comenzilor prin SSH. Prima presupune executarea comenzilor dorite dup realizarea conexiunii, n interpretorul de comenzi deschis la distan, iar n cea de-a doua metod, comenzile dorite sunt date ca argumente clientului SSH. Pentru aceasta din urm, de fiecare dat cnd se va executa o anumit comand, va trebui introdus parola utilizatorului ce deschide sesiunea. Pentru a prentmpina acest dezavantaj, se poate folosi autentificarea pe baz de chei, fiind necesar generarea unei perechi de chei (public/privat). Acest lucru se realizeaz folosind utilitarul ssh-keygen care creaz dou fiiere, unul pentru fiecare cheie. Implicit, n fiierul ~/.ssh/id_rsa este pstrat cheia privat, iar n fiierul ~/.ssh/id_rsa_pub cheia public. Deoarece cheia privat nu trebuie inut la vedere, ssh-keygen ofer posibilitatea introducerii unei parole (passphrase), ce va proteja fiierul n care se pstreaz aceasta. Rulat

236 | R e e l e l o c a l e d e c a l c u l a t o a r e fr nici un parametru, acesta va genera o pereche de chei RSA. Dac se dorete alt tip (de exemplu DSA), se poate folosi parametrul -t, urmat de cuvntul cheie ce specific tipul respectiv.
root@HQ:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 94:52:e2:0f:ee:1d:9c:5f:ad:90:fd:9a:b7:22:2e:91 root@HQ [...]

n cazul n care se dorete schimbarea passphrase-ului se poate folosi opiunea p (ATENIE la cheia privat specificat):
root@HQ:~# ssh-keygen -p Enter file in which the key is (/root/.ssh/id_rsa): Key has comment '/root/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.

Pentru conectarea fr parol pe serverul la distan, utilizatorul trebuie s i copieze cheia public la sfitul fiierului $HOME/.ssh/authorized_keys, aflat pe server. Acest lucru se poate face manual sau folosind utilitarul ssh-copy-id, ce simplific aceast operaiune. Parametrii ce trebuie specificai sunt utilizatorul n contul cruia se copiaz cheia public i serverul. n mod implicit, ssh-copy-id va copia cheia public aflat n $HOME/.ssh/id_rsa.pub. Dac se dorete copierea unei alte chei, se poate folosi parametrul -i urmat de fiierul ce conine cheia public.
root@HQ:~# ssh-copy-id -i /root/.ssh/id_rsa.pub mihai@micosconstruct.ro mihai@micosconstruct.ro's password: Now try logging into the machine, with "ssh 'mihai@micosconstruct.ro'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. root@HQ:~# ssh mihai@micosconstruct.ro Last login: Tue Aug 28 13:28:18 2012 from 188.26.195.166 mihai@micos:~$

Se observ c autentificarea s-a realizat fr parol. ssh folosete n mod implicit cheia privat aflat n fiierul $HOME/.ssh/id_rsa. n cazul n care cheia nu se afl n fiierul implicit, se poate specifica cu parametrul -i (exact ca la ssh-copy-id). Se va muta cheia privat n alt locaie i se va realiza din nou autentificarea:
root@HQ:~# mv ~/.ssh/id_rsa ~/.ssh/cheia_privat root@HQ:~# ssh mihai@micosconstruct.ro mihai@micosconstruct.ro's password: Last login: Tue Aug 28 16:19:46 2012 from 188.26.195.166 mihai@micos:~$ exit logout Connection to micosconstruct.ro closed. root@HQ:~# ssh -i ~/.ssh/cheia_privata mihai@micosconstruct.ro Last login: Tue Aug 28 16:28:02 2012 from 188.26.195.166 mihai@micos:~$

Dup cum se poate observa, dup mutarea cheii private, autentificarea nu s-a mai putut face cu ajutorul cheilor. ATENIE: o greeal frecvent este generarea cheii n alt loc dect cel implicit, iar la autentificarea se omite specificarea ei. Astfel autentificarea pe baz de chei nu va funciona. Ce se ntmpl dac adugm un passphrase cheii private, pentru a mpiedica folosirea ei de ctre persoane neautorizate?
root@HQ:~# ssh-keygen -p Enter file in which the key is (/root/.ssh/id_rsa): /root/.ssh/cheia_privata Key has comment '/root/.ssh/cheia_privata' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase. root@HQ:~# ssh -i ~/.ssh/cheia_privata mihai@micosconstruct.ro Enter passphrase for key '/root/.ssh/cheia_privata':

S e c u r i z a r e a r e e l e i | 237
Last login: Tue Aug 28 16:32:57 2012 from 188.26.195.166 mihai@micos:~$

Se observ c ni s-a cerut introducerea passphrase-ului nainte de folosirea cheii. Aadar, avantajul cheilor n acest moment este nul. Pentru a prentmpina acest dezavantaj, exist un serviciu de stocare al cheilor private, passphrase-ul introducndu-se doar la adugarea cheii n baza de date a serviciului. Serviciul trebuie activat rulndu-se utilitarul ssh-agent, iar cheile se adaug folosind comanda ssh-add.
root@HQ:~# ssh-agent SSH_AUTH_SOCK=/tmp/ssh-DZswn30361/agent.30361; export SSH_AUTH_SOCK; SSH_AGENT_PID=30362; export SSH_AGENT_PID; echo Agent pid 30362; root@HQ:~# ssh-add

Dac fiierul cu cheia privat nu este n locul implicit ($HOME/.ssh/id_rsa), atunci acesta trebuie specificat ca parametru:
root@HQ:~# ssh-add ~/.ssh/cheia_privata Enter passphrase for /root/.ssh/cheia_privata: Identity added: /root/.ssh/cheia_privata (/root/.ssh/cheia_privata) root@HQ:~# ssh -i ~/.ssh/cheia_privata mihai@micosconstruct.ro Last login: Tue Aug 28 16:33:19 2012 from 188.26.195.166 mihai@micos:~$

Unul dintre utilitarele importante ce aparin pachetului OpenSSH este scp (Secure Copy). SCP este un protocol folosit n transferul sigur de fiiere ntre dou staii, pe durata transferului datele fiind criptate de o sesiune SSH. Protocolul n sine nu asigur autentificarea i securitatea comunicaiei, acestea fiind asigurate de ctre protocolul SSH. Astfel, dac se dorete copierea unui fiier de pe staia local pe o staie la distan se poate folosi urmtoarea sintax:
scp cale_fiier_local utilizator@staie_distan:/cale_fiier

n schimb, dac se dorete copierea unui fiier de pe o staie la distan pe staia local se poate folosi urmtoarea sintax:
scp utilizator@staie_distan:/cale_fiier_remote /cale_fiier

Adresarea de dup : este relativ la home-ul utilizatorului. n exemplul de mai jos, se va copia fiierul test.txt de pe staia local (directorul local) pe staia micosconstruct.ro. Fiierul va fi copiat n directorul home al utilizatorului mihai, cu numele copy_of_test.txt:
root@HQ:~# scp test.txt mihai@micosconstruct.ro:copy_of_test.txt test.txt 100% 5 0.0KB/s 00:00

Se observ c nu s-a cerut nici o parol, autentificarea fcndu-se pe baza cheilor adugate anterior. n caz contrar, trebuia s se introduc parola utilizatorului mihai. Pentru a pstra numele original al fiierului ce trebuie copiat, se omite specificarea noului nume:
root@HQ:~# scp test.txt mihai@micosconstruct.ro: test.txt root@HQ:~# ssh mihai@micosconstruct.ro ls copy_of_test.txt [...] test.txt 100% 5 0.0KB/s 00:00

Pentru copierea unui ntreg director trebuie s se foloseasc opiunea -r (recursive), asemenea utilitarului cp. n exemplul urmtor, vom copia directorul test. Se observ copierea recursiv a ntregului director, inclusiv coninutul subdirectoarelor (ierarhia de directoare se pstreaz):
root@HQ:~# scp -r test mihai@micosconstruct.ro:copy_of_test test _cfa1.ir_dfa CoolIr__.g Program.java [...] Makefile 100% 0 100% 385 100% 2738 100% 2744 100% 239 0.0KB/s 0.4KB/s 2.7KB/s 2.7KB/s 0.2KB/s 00:00 00:00 00:00 00:00 00:00

238 | R e e l e l o c a l e d e c a l c u l a t o a r e Pentru copierea fiierului root_test.txt de pe staia micosconstruct.ro, aflat n subdirectorul test1/test2 (relativ la directorul home al utilizatorului mihai), n directorul curent putem folosi urmtoarea sintax:
root@HQ:~# scp mihai@micosconstruct.ro:test1/test2/root_test.txt . root_test.txt 100% 5 0.0KB/s 00:00

Tunele SSH
Tunelarea SSH reprezint folosirea protocolului SSH i a capabilitilor acestuia, pentru a securiza un transfer de date. Pentru crearea unui tunel SSH, clientul SSH este configurat s redirecteze un port specificat i o adres IP (existente pe serverul SSH la distan) pe un port al staiei locale. Odat ce conexiunea SSH a fost stabilit, utilizatorul se poate conecta la portul local pentru accesarea serviciilor aflate pe staia la distan (pe serverul SSH), servicii ce altfel ar fi putut fi accesibile prin conectarea direct pe portul i adresa IP a staiei la distan. Aceast metod rezolv dou probleme: asigur criptarea traficului pentru un serviciu ce nu ofer aceast facilitate poate ocoli firewall-urile ce filtreaz anumite servicii ctre Internet (de exemplu este blocat portul 443, iar portul 22 al SSH-ului funcioneaz). Pentru a ilustra ct mai bine cele menionate mai sus se consider urmtorul scenariu. Un utilizator obinuit dorete s i citeasc email-ul, folosind un client de email (Thunderbird, fetchmail, mutt, Outlook, etc.). Dac utilizatorul se conecteaz direct la serverul de e-mail, clientul de e-mail va trimite numele de utilizator i parola n text clar, necriptat. Acest lucru reprezint o mare vulnerabilitate n cazul n care un intrus ascult cu un sniffer mediul de transmisie (vezi capitolul Atacuri de reea). Pentru prevenirea acestui atac se pot folosi capabilitile de tunelare oferite de SSH. Un tunel SSH va fi folosit n modul urmtor: n loc s se realizeze conectarea direct la serverul de e-mail, se va stabili o conexiune SSH ctre un server din interiorul reelei n care respectivul server de e-mail se afl, sau direct ctre serverul nsui, aa cum se ntmpl cel mai adesea, cnd serverul de e-mail ofer i serviciu SSH. Clientul SSH va realiza redirectarea portului, astfel nct traficul ce ajunge la staia local pe portul 143 (portul folosit de protocolul IMAP), ajunge s fie redirectat prin tunelul criptat ctre serverul de e-mail. Apoi clientul de e-mail poate fi configurat s utilizeze portul local, fiind pus astfel n legtur cu serverul de la distan. Pentru a deschide un tunel, se folosete parametrul -L al utilitarului ssh. Vom face un tunel ntre staia local A i serverul micosconstruct.ro pe portul IMAP. Se observ c este ca o conectare la serverul ssh obinuit. ATENIE: dup conectarea la server, nu trebuie s ieii, altfel tunelul se va nchide.
root@HQ:~# netstat -tlnp | grep 143 root@HQ:~# ssh -L143:micosconstruct.ro:143 mihai@micosconstruct.ro Last login: Wed Aug 29 10:21:13 2012 from 141.85.225.204 mihai@micos:~$

Dup parametrul -L, se specific portul local pe care s asculte serviciul (n cazul nostru 143 se putea specifica orice port liber), serverul ce are un serviciu de IMAP i portul pe care ascult. Toate acestea sunt separate de dou puncte (:). Din alt consol, verificm dac ascult vreun serviciu pe portul 143:
root@HQ:~# netstat -tlnp | grep 143 tcp 0 0 127.0.0.1:143 0.0.0.0:* LISTEN 9138/ssh

Se observ c pe portul 143, pe localhost (127.0.0.1), ascult serviciul de SSH.


root@HQ:~# telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. QUIT QUIT NO Error in IMAP command received by server.

S e c u r i z a r e a r e e l e i | 239 Dei serviciul care ascult local pe portul 143 este SSH, serverul de e-mail este cel care a rspuns. n momentul n care s-a deschis conexiunea pe portul 143, s-a rulat tcpdump, pentru a analiza coninutul pachetelor:
root@HQ:~# tcpdump -i eth0 -X dst micosconstruct.ro 10:35:06.996304 IP HQ.local.46991 > micosconstruct.ro.ssh: Flags [.], ack 1073, win 425, options [nop,nop,TS val 147151295 ecr 778445030], length 0 0x0000: 4500 0034 1a27 4000 4006 dc68 ac10 0599 E..4.'@.@..h.... 0x0010: 567a 3c11 b78f 0016 c922 99fa 329c daa2 Vz<......"..2... 0x0020: 8010 01a9 445b 0000 0101 080a 08c5 59bf ....D[........Y. 0x0030: 2e66 20e6 .f.. [...]

Dup cum se poate observa, coninutul este criptat, comanda trimis (QUIT) neaprnd n captur. Vom ncerca s ne conectm n mod direct la serverul de IMAP:
root@A:~# telnet micosconstruct.ro 143 Trying 86.122.60.17... Connected to micosconstruct.ro. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. QUIT QUIT NO Error in IMAP command received by server.

n analiza tcpdump, se poate vedea c textul trimis QUIT, a aprut n clar, n captura pachetului:
root@HQ:~# tcpdump -i eth0 -X dst micosconstruct.ro 10:37:27.754502 IP mjolnir-2.local.50526 > micosconstruct.ro.imap2: Flags [P.], seq 0:6, ack 289, win 245, options [nop,nop,TS val 147186484 ecr 778458236], length 6 0x0000: 4510 003a fabc 4000 4006 fbbc ac10 0599 E..:..@.@....... 0x0010: 567a 3c11 c55e 008f d14b 201d 5233 8bf1 Vz<..^...K..R3.. 0x0020: 8018 00f5 4461 0000 0101 080a 08c5 e334 ....Da.........4 0x0030: 2e66 547c 5155 4954 0d0a .fT|QUIT..

Un alt tip de tunel oferit de utilitarul ssh este unul de tip reverse (-R). Acesta permite deschiderea unui port pe serverul de la distana ce face legtur cu staia de pe care se realizeaz tunelul, acesta fiind util atunci cnd staia respectiv nu poate fi accesat n mod direct din Internet (are IP privat vezi capitolul Alterarea pachetelor). Vom deschide portul 10022 pe serverul de la adresa micosconstruct.ro care va redirecta traficul ctre portul 22 (serviciul SSH) al staiei locale :
root@HQ:~# ssh -R10022:localhost:22 mihai@micosconstruct.ro Last login: Wed Aug 29 10:57:22 2012 from 141.85.225.204 mihai@micos:~$ root@A:~# ssh -p 10022 root@micosconstruct.ro root@micosconstruct.ro's password: [...] Last login: Wed Aug 29 10:32:36 2012 from 141.85.225.204 root@HQ:~#

S-a realizat SSH de pe o alt staie (A), pe portul 10022 al serverul micosconstruct.ro, folosind utilizatorul root. Parola cerut este cea a utilizatorului root de pe staia HQ. Se observ c s-a realizat redirectarea ctre HQ automat. Un alt tip de tunelare oferit de utilitarul ssh este redirectarea protocolului X11, putndu-se rula aplicaii grafice printr-o conexiune SSH, la distan. Pentru a activa tunelarea X11 se folosete parametrul -X.
root@HQ:~# ssh -X mihai@micosconstruct.ro mihai@micos:~$ xclock

7.4.2 Cisco IOS


Liste de acces
n cadrul sistemului de operare IOS ce ruleaz pe echipamente CISCO, exist un sistem de firewall asemntor iptables, bazat de reguli. Acestea poart numele de liste de acces (ACL access control list) i sunt identificate printr-un numr. Ca i regulile iptables, acestea sunt compuse

240 | R e e l e l o c a l e d e c a l c u l a t o a r e din dou seciuni, o parte de selecie i o parte ce specific aciunea aplicat. n funcie de complexitatea seleciei, exist dou tipuri de liste de acces: standard (standard) acestea pot face selecia doar n funcie de adresa IP surs. Pentru a folosi listele standard, intervalul de numere de identificare asociat este 1-99. extinse (extended) acestea pot face selecia n funie de adresa IP surs sau destinaie, dar i n funcie de protocolul de nivel 4 (tipul protocolului, portul). Pentru a folosi acest tip de liste, intervalul de numere de identificare asociat este 100-199. Pentru a exemplifica cele prezentate mai sus, vom scrie o regul ce blocheaz traficul de la IP-ul 192.168.10.10, folosind o list standard. Listele de acces se adaug n modul global de configurare (router(config)#):
router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. router(config)#access-list ? <1-99> IP standard access list <100-199> IP extended access list router(config)#access-list 1 ? deny Specify packets to reject permit Specify packets to forward remark Access list entry comment router(config)#access-list 1 deny ? A.B.C.D Address to match any Any source host host A single host address router(config)#access-list 1 deny 192.168.10.10 ? A.B.C.D Wildcard bits <cr> router(config)#access-list 1 deny 192.168.10.10 0.0.0.0 router(config)#exit router#show access-lists Standard IP access list 1 deny 192.168.10.10 0.0.0.0

Se observ c pentru a aduga o regul, se folosete comanda access-list, urmat de numrul regulii, acesta indicnd i tipul listei de acces. Urmeaz cele dou seciune menionate anterior: aciunea ce trebuie aplicat (deny/permit) i selecia. Fiind o list standard se poate specifica doar adresa IP surs sub trei forme: clas de IP-uri la care se mai specific i un wildcard, acesta fiind o masc de reea inversat logic. Biii de 1 din wildcard sunt biii ce vor fi ignorai la ncercarea de gsire a unei potriviri. ns, principala deosebire fa de o masc de reea este alta: un wildcard permite intercalarea biilor de 1 cu cei de 0, pe cnd la o masc nu se permit astfel de intercalri (0.0.255.0 este un wildcard valid, pe cnd echivalentul lui reprezentat ca o masc 255.255.0.255 nu este). cuvntul cheie any orice adres IP surs. cuvntul cheie host urmat de adresa IP cnd se dorete blocarea unui singur IP. Se poate rescrie regula anterioar folosind cuvntul cheie host. Mai nti trebuie tears regula anterioar, executnd aceeai regul precedat de cuvntul cheie no, deoarece aceasta nu va fi rescris, ci se va aduga o nou regul, la finalul listei:
router(config)#no access-list 1 deny 192.168.10.10 0.0.0.0 router(config)#access-list 1 deny host 192.168.10.10 router#show access-lists Standard IP access list 1 deny host 192.168.10.10

Dup cum am precizat anterior, orice regul nou adugat, folosind acelai identificator, va fi pus la finalul listei. Regulile sunt parcuse ca i la iptables, de sus n jos, iar la prima selecie reuit se aplic aciunea corespunztoare, restul regulilor nemaifiind parcurse. ATENIE: Nu exist nici un mecanism prin care putei schimba ordinea sau putei influena unde n cadrul listei va fi adugat o nou regul (cum exist la iptables opiunea de insert: -I). Este recomandat s scriei nainte toate regulile pentru un identificator, ntr-un editor de text, iar dup aceea s le executai pe ruter.

S e c u r i z a r e a r e e l e i | 241 La iptables exist noiunea de politic implicit: ce se ntmpl dac un pachet nu se potrivete cu nici o regul de selecie. n cadrul ACL-urilor, exist n mod implicit, la sfritul listei, o directiv prin care se blocheaz orice trafic. Aadar n exemplul nostru am blocat traficul de la IP-ul 192.18.10.10, dar n mod automat, s-au blocat i restul pachetelor. Pentru a funciona conform cerinei de filtrare, mai trebuie adugat o regul:
router(config)#access-list 1 permit any router(config)#exit router#sho access-lists Standard IP access list 1 deny host 192.168.10.10 permit any

Pn n acest moment, n procesul de selecie, nu s-a specificat absolut nimic despre interfee. Pe Cisco IOS, orice list de acces definit, nu are nici un efect asupra traficului pn cnd nu se specific interfaa asupra creia acioneaz. Acest lucru se poate realiza n modul de configurare al interfeei, conform exemplului de mai jos:
router(config)#interface fastEthernet 0/0 router(config-if)#ip access-group 1 in

S-a aplicat lista de acces cu numrul 1, pe interfata fastEthernet 0/0, pe direcia in, adic traficul ce intr pe interfa, folosind comanda ip access-group. Pentru traficul ce iese pe o interfa, se poate folosi cuvntul cheie out. O alt particularitate a listelor de acces este c nu se aplic pentru traficul generat de ruter, ci numai traficul pentru care se asigur rutarea. Dup cum am precizat mai sus, pentru o selecie mai complex, se folosesc listele extinse. Modul de funcionare este identic cu cel al listelor standard, acestea oferind n plus mai multe opiuni de selecie. Pentru a exemplifica, se dorete blocarea accesului la serverele SSH (port 22), pentru traficul originat din clasa de IP-uri 172.16.0.0/24.
router(config)#access-list 100 deny tcp 172.16.0.0 0.0.0.255 any eq 22

Dup aciunea dorit (deny), se specific protocolul dorit (tcp), sursa pachetului urmat de portul surs i destinaia pachetului urmat de portul destinaie. Porturile pot lipsi (n cazul de fa portul surs), acest lucru nsemnnd orice port al protocolului. Dup cuvntul cheie eq, se specific portul destinaie. Ca i la listele standard, mai trebuie adugat o regul care s permite orice alt trafic:
router(config)#access-list 100 permit ip any any

Se observ folosirea protocolului ip, acesta cuprinznd practic toate protocoalele de nivel superior. ATENIE: Nu uitai s adugai listele n configurarea interfeelor. Listele de acces, identificate pe baza numerelor, sunt greu de administrat. Pentru a combate acest dezavantaj, Cisco IOS a introdus listele de acces bazate pe nume. Acestea au acelai principiu de funcionare, existnd tot n ambele forme: standard i extinse. Pentru a defini o list de acces identificat prin nume se folosete comanda ip access-list standard|extended, urmat de nume. Dup executarea comenzii, se intr n modul de configurare al listei de acces, sintaxa fiind aceeai cu cea a listelor de acces normale, ncepnd cu specificarea aciunii.
router(config)#ip access-list ? extended Extended Access List standard Standard Access List router(config)#ip access-list extended ? <100-199> Extended IP access-list number WORD name router(config)#ip access-list extended test router(config-ext-nacl)#deny tcp 172.16.0.0 0.0.0.255 any eq 22 router(config-ext-nacl)#permit ip any any router#show access-lists test Extended IP access list test deny tcp 172.16.0.0 0.0.0.255 any eq 22 permit ip any any

242 | R e e l e l o c a l e d e c a l c u l a t o a r e Ca i cele normale, listele de acces cu nume trebuie aplicate pe o interfa, altfel nu vor avea nici un efect.

SSH
Sistemul de operare Cisco IOS integreaz n componena sa un client de ssh, acesta avnd funcionaliti asemntoare cu cel de pe Linux. Comanda ssh este urmat de parametrul l, prin care se specific numele utilizatorului, i mai apoi urmat de numele staiei la care se conecteaz:
router#ssh l mihai micosconstruct.ro

Cisco IOS are inclus i un server de SSH. Configurarea acestuia va fi prezentat n seciunea Studiu de caz.

7.4.3 Windows
SSH
Cel mai folosit client din Windows, disponibil gratuit, pentru accesul la diferite dispozitive, este PuTTY. Acesta suport principalele protocoale folosite pentru acces la consolele echipamentelor: Telnet, Rlogin, SSH i Serial. n cadrul acestei seciuni, vom prezenta modul de lucru cu PuTTY, folosind protocolul SSH.

7-8 PuTTY Conexiune SSH n Fig. 7-8, este prezentat fereastra principal a utilitarului PuTTY. Se va selecta tipul conexiunii SSH, iar portul automat va fi configurat la valoarea 22. n caz c, serviciul SSH are o configuraie special (ascult pe alt port) se poate modifica manual portul. n cmpul Host Name, se introduce adresa serverului la care dorim s ne conectm. Programul are o opiune de salvare a configuraiilor: n cmpul Saved Sessions, se introduce numele dorit i se apas butonul Save pentru stocare. Pentru ncrcarea configuraiilor, se selecteaz din list configuraia dorit i se apas butonul Load. Pentru a configura informaii specifice protocolului SSH (tipul de autentificare, cheie privat, crearea de tunele SSH), se acceseaz subcategoria SSH, din categoria Connections. n Fig. 7-8, n imaginea din dreapta, se observ c avem opiunea s introducem o comand care s se execute la conectare, ca i utilitarul ssh din Linux. n subcategoria Auth, putem specifica o cheie privat pentru a fi folosit n realizarea autentificrii. n acest caz, lucrurile difer fa de Linux. PuTTY funcioneaz cu un format special de chei private, numit fiier Putty Private Key, cu extensia *.ppk. Aadar nu se poate folosi n mod direct,

S e c u r i z a r e a r e e l e i | 243 cheia generat cu utilitarul ssh-keygen din Linux. Pentru a rezolva aceast problem, se folosete utilitarul PuTTYGen. Acesta are posibilitatea de a importa o cheie privat i a o salva sub forma unui fiier Putty Private Key. Tot cu ajutorul acestuia, se pot genera noi perechi de chei publice i private, cele private putnd fi exportate att n formatul *.ppk, ct i n formatul OpenSSH. Pentru a converti o cheie, se ruleaz PuTTYGen, se import cheia privat dorit, n format OpenSSH (Conversions > Import Key), dup care se apas pe butonul Save private key, pentru a obine cheia n format *.ppk. Aceasta poate fi folosit de PuTTY pentru autentificarea pe baz de chei, completndu-se calea ctre cheie, din sistemul de fiiere, n cmpul Private key file for authentication, din subcategoria Auth. Pentru a activa redirectarea protocolului X11, n cadrul subcategoriei X11, se bifeaz csua Enable X11 forwarding. Pentru a putea rula aplicaii, la distan, ce au o interfa grafic, staia local trebuie s aib instalat un server X. Pe sistemele Linux, serverul X este prezent deoarece pe baza lui funcioneaz interfaa grafic. Pentru sistemele Windows, trebuie instalat un astfel de server, un exemplu fiind Xming (X Window Server for Microsoft XP/2008/Windows7) [17]. PuTTY este capabil s configureze tunele SSH, exact ca i utilitarul ssh din Linux. Acest lucru se realizeaz din subcategoria Tunnels. Trebuie selectat tipul de tunel: Local este echivalentul lui L al ssh, iar Remote este echivalentul opiunii R la ssh. n cmpul Source port se completeaz portul pe care serviciul va asculta conexiuni, iar n cmpul Destination se pune adresa i portul unde vor fi redirectate conexiunile, separate prin dou puncte (:). Dup completarea acestora, se apas butonul Add pentru memorarea tunelului. Dup finalizarea configuraiilor, v putei ntoarce la categoria Session, iar apsnd butonul Save, toate configuraiile fcute vor fi salvate, fiind atribuite doar sesiunii curente, completat manual sau ncrcat din cele memorate anterior. Pentru deschiderea unei conexiuni ctre serverul specificat, se apas butonul Open.

7.5 Scenariu de utilizare


n reeaua din Fig. 7-9, sursa de alimentare a ruterului HQ, ce asigur accesul la Internet, s-a defectat din cauza unei supratensiuni pe reeaua de electricitate. O dat cu sursa, mediul de stocare permanent (HDD-ul) s-a ars, iar datele de pe acesta nu au mai putut fi recuperate. Administratorul a primit noile componente (sursa i HDD-ul), avnd sarcina de a reinstala sistemul de operare Linux pe ruter. De asemenea acesta trebuie s refac toate politicile de securitate pentru accesul din i n reea, acestea neavnd un back-up fcut anterior pe alt dispozitiv. Toate switch-urile din topologie (vezi Fig. 7-9), sunt configurate astfel nct staiile sunt mprite n diferite reele, folosind VLAN-uri, astfel: A cu IP-ul 141.85.10.2/24 i C cu IP-ul 141.85.10.3/24 VLAN 10 B cu IP-ul 141.85.20.2/24 i D cu IP-ul 141.85.20.3/24 VLAN 20 E cu IP-ul 141.85.30.2/24 i F cu IP-ul 141.85.30.3/24 VLAN 30 Accesul ctre ruterul HQ se realizeaz pe portul 2, pentru VLAN-urile 10 i 20, iar pentru VLAN-ul 30 pe portul 3. Portul 3 (interfaa eth3) este configurat n mod acces, iar portul 2 n mod trunk, existnd dou interfee virtuale, una pentru fiecare vlan: eth2.10 i eth2.20. Interfeele sunt configurate cu primul IP din fiecare clas asociat VLAN-ului respectiv. Accesul ctre internet se face prin portul 1 (interfaa eth1), IP-ul fiind configurat automat folosind clientul de DHCP.

244 | R e e l e l o c a l e d e c a l c u l a t o a r e 2 2 8 A B 3
Sw3

3
Sw2

Sw9

2
BR

M 3
ISP

1 3 4

4
Sw1

4 2 1

1
Sw7

9
Sw8

2 3

2 3

4
HQ

4 D

8 E

29 F 21 4 W

7-9 Topologie scenariu Dup instalarea sistemului de operare Linux, se vor configura interfeele ruterului:
root@HQ:~# vconfig add eth2 10 Added VLAN with VID == 10 to IF -:eth2:root@HQ:~# vconfig add eth2 20 Added VLAN with VID == 20 to IF -:eth2:root@HQ:~# ip addr add 141.85.10.1/24 dev eth2.10 root@HQ:~# ip addr add 141.85.20.1/24 dev eth2.20 root@HQ:~# ip addr add 141.85.30.1/24 dev eth3 root@HQ:~# ip addr show [...] 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:4b:89:9f brd ff:ff:ff:ff:ff:ff inet 86.122.60.17/26 scope global eth1 inet6 fe80::20c:29ff:fe4b:899f/64 scope link valid_lft forever preferred_lft forever 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:4b:89:a9 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe4b:89a9/64 scope link valid_lft forever preferred_lft forever 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:4b:89:b3 brd ff:ff:ff:ff:ff:ff inet 141.85.30.1/24 scope global eth3 inet6 fe80::20c:29ff:fe4b:89b3/64 scope link valid_lft forever preferred_lft forever 6: eth2.10@eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether 00:0c:29:4b:89:a9 brd ff:ff:ff:ff:ff:ff inet 141.85.10.1/24 scope global eth2.10 7: eth2.20@eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether 00:0c:29:4b:89:a9 brd ff:ff:ff:ff:ff:ff inet 141.85.20.1/24 scope global eth2.20

IP-urile sunt rutabile, deci pot accesa Internetul n mod direct i pot fi accesate din exterior. Pentru a asigura accesul la internet, trebuie activat rutarea:
root@HQ:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Dup realizarea configurrilor de nivel reea, se vor defini i configura regulile de securitate pe ruterul HQ. Acestea vor fi implementate cu ajutorul utilitarului iptables. Se dorete s nu se permit accesul din Internet, la serviciul TELNET al serverului, acesta fiind un protocol necriptat. Fiind vorba de traficul destinat staiei locale, politica trebuie adugat pe lanul INPUT, cu interfaa de intrare eth1 (conexiunile dinspre Internet):
root@HQ:~# iptables -A INPUT -i eth1 p tcp --dport 23 -j DROP

Pentru ca serverul s nu fie infectat cu virui, deschiderea conexiunile de pe ruter n exteriorul reelei trebuie s fie interzis:
root@HQ:~# iptables -A OUTPUT -o eth1 -j DROP

S e c u r i z a r e a r e e l e i | 245 n cazul unei conectri ilegale la reea, se dorete ca doar IP-urile staiilor prezentate s aib acces ctre Internet. Astfel trebuie s acceptm traficul ce are ca surs IP-urile staiilor, traficul ce are ca destinaie IP-urile staiilor (pentru pachete de rspuns) i n ultimul rnd trebuie blocat restul traficului. Filtrele se adaug pe lanul FORWARD. Blocarea traficului se poate realiza prin dou metode: adugarea unei noi reguli la sfritul listei cu aciunea DROP sau modificarea politicii implicite a lanului FORWARD la DROP (toate pachetele ce nu sunt selectate de nici o regul, vor fi aruncate). Vom merge pe a doua configuraie:
root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables -P -A -A -A -A -A -A -A -A -A -A -A -A FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD FORWARD DROP s 141.85.10.2 s 141.85.10.3 s 141.85.20.2 s 141.85.20.3 s 141.85.30.2 s 141.85.30.3 d 141.85.10.2 d 141.85.10.3 d 141.85.20.2 d 141.85.20.3 d 141.85.30.2 d 141.85.30.3 j j j j j j j j j j j j ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT ACCEPT

Se dorete ca staiile A, B, C i D s nu poat fi accesate din Internet, prevenind astfel eventuale atacuri. Pentru acest lucru trebuie s tergem regulile adugate anterior, n care ca destinaie apar IP-urile staiilor mai sus menionate. Dac se terg acele reguli, atunci pachetele de rspuns, la cererile fcute de staii ctre exterior, vor fi blocate. Trebuie adugate noi reguli, ce accept doar pachetele ce NU au flag-ul SYN setat. Acest criteriu poate fi folosit doar pentru protocolul TCP, deoarece numai acesta are flag-ul SYN, fiind orientat conexiune. Protocoalele neorientate conexiune vor rmne n continuare blocate. Pentru a rezolva aceast problem, iptables ofer un modul prin care se poate reine starea conexiunii, fcndu-l un firewall stateful. Pentru protocoalele neorientate conexiune se folosesc anumite criterii specifice fiecrui protocol [18] pentru a menine starea conexiunii. Modulul se specific cu parametrul -m state, iar acesta introduce 3 stri generice ale conexiunii, specificate cu opiunea --state: NEW deschiderea unei noi conexiuni. ESTABLISHED conexiunea a fost stabilit. RELATED conexiunea este nou, dar este legat de o alta care a fost permis deja.
root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# root@HQ:~# iptables iptables iptables iptables iptables -D -D -D -D -A FORWARD FORWARD FORWARD FORWARD FORWARD d d d d i 141.85.10.2 j ACCEPT 141.85.10.3 j ACCEPT 141.85.20.2 j ACCEPT 141.85.20.3 j ACCEPT eth1 m state --state ESTABLISHED,RELATED j ACCEPT

Se observ c a fost nevoie doar de o singur regul pentru tot traficul ce intr pe interfaa eth1 (-i eth1), aceasta acceptnd numai pachete ce sunt n starea ESTABLISHED sau RELATED. Nu a fost nevoie s adugm cte o regul pentru fiecare destinaie deoarece, oricum singurele pachete de rspuns vor fi de la IP-urile ce pot iniia conexiuni din interiorul reelei. Staiile E (141.85.30.2) i F (141.85.30.3) trebuie s poat fi accesate din exterior, fiind dou servere ce asigur servicii publice. Pentru serverul E vom deschide porturile HTTP (80) i HTTPS (443), pentru acces la serviciul WEB, i portul de SSH (22) pentru administrare, toate porturile fiind ale protocolului TCP:
root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.2 -p tcp --dport 80 -j ACCEPT root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.2 -p tcp --dport 443 -j ACCEPT root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.2 -p tcp --dport 22 -j ACCEPT

Pe serverul F este instalat serviciul de DNS, care folosete portul 53 al protocoalelor TCP i UDP. Pe lng acest port, vom deschide i portul SSH (22) pentru administrare:
root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.3 -p tcp --dport 53 -j ACCEPT root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.3 -p udp --dport 53 -j ACCEPT root@HQ:~# iptables -A FORWARD -i eth1 -d 141.85.30.3 -p tcp --dport 22 -j ACCEPT

246 | R e e l e l o c a l e d e c a l c u l a t o a r e Dup cum s-a observat anterior, pentru serverele E i F am deschis portul de SSH n scopul accesului la distan pentru administrare. Pentru a spori msurile de securitate, vom permite ca autentificarea la serviciul SSH, s se fac doar pe baz de chei publice/private, nu i prin parol. Vom genera o nou pereche de chei, cu care vom realiza autentificarea:
root@HQ:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/my_key Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/my_key. Your public key has been saved in /root/.ssh/my_key.pub.

Cheia public generat, trebuie copiat n fiierul $HOME/.ssh/authorized_keys al utilizatorului root, de pe staiile E i F. Acest lucru se poate face automat cu utilitarul ssh-copyid:
root@HQ:~# ssh-copy-id -i /root/.ssh/my_key.pub root@141.85.30.2 root@141.85.30.2's password: Now try logging into the machine, with "ssh 'root@141.85.30.2'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. root@HQ:~# ssh-copy-id -i /root/.ssh/my_key.pub root@141.85.30.3 root@141.85.30.3's password: Now try logging into the machine, with "ssh 'root@141.85.30.3'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.

Verificm c funcioneaz autentificarea pe baz de chei:


root@HQ:~# ssh -i /root/.ssh/my_key root@141.85.30.2 Last login: Fri Aug 31 03:19:41 2012 from 141.85.30.1 root@E:~$

Se va restriciona autentificarea pe baz de parol, modificnd fiierul /etc/ssh/sshd_config, adugndu-se o nou directiv (vezi Studiu de caz). Dup configurare, trebuie resetat serviciul SSH. Configurarea pentru staia F este identic.
root@E:~# cat /etc/ssh/sshd_config | grep "PasswordAuthentication" PasswordAuthentication no root@E:~# service ssh restart ssh start/running, process 3912

De pe staia HQ, se observ c nu mai putem s ne autentificm pe baz de parol.


root@HQ:~# ssh root@141.85.30.2 Permission denied (publickey). root@HQ:~# ssh -i /root/.ssh/my_key root@141.85.30.2 Last login: Fri Aug 31 04:21:41 2012 from 141.85.30.1 root@E:~$

Staiile A i C sunt n departamentul de contabilitate i se dorete ca traficul de la celelalte departamente (staiile B, D, E i F) ctre acestea s fie blocat. Pentru aceasta, trebuie adugate reguli ce blocheaz pachetele ce au ca surs clasele de IP-uri corespunztoare staiilor B, D, E i F (141.85.20.0/24 i 141.85.30.0/24) i destinaie clasa de IP-uri a departamentului de contabilitate (141.85.10.0/24). Filtrrile trebuie adugate pe lanul FORWARD. ATENIE: dorim ca acestea s poat accesa serverele prezente pe staiile E i F. Pentru acest lucru, trebuie s blocm doar pachetele ce sunt n starea NEW.
root@HQ:~# iptables -A FORWARD -s 141.85.20.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP root@HQ:~# iptables -A FORWARD -s 141.85.30.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP

n acest moment, am realizat toate configurrile de securitate necesare, dar staiile B, D, E i F nc au acces la departamentul de contabilitate. Regulile pe care le-am adugat nu au nici un efect. n cazuri ca acesta, n primul rnd, trebuie inspectat coninutul tabelei de reguli:

S e c u r i z a r e a r e e l e i | 247
root@HQ:~# iptables -nvL Chain INPUT (policy ACCEPT 77 packets, 8272 bytes) pkts bytes target prot opt in out source 6 100 DROP tcp -- eth1 * 0.0.0.0/0 Chain FORWARD (policy DROP 1244 packets, 100520 bytes) pkts bytes target prot opt in out source 2 245 ACCEPT all -- * * 141.85.10.2 4 431 ACCEPT all -- * * 141.85.10.3 3 232 ACCEPT all -- * * 141.85.20.2 5 553 ACCEPT all -- * * 141.85.20.3 25 4540 ACCEPT all -- * * 141.85.30.2 10 1303 ACCEPT all -- * * 141.85.30.3 49 7303 ACCEPT all -- eth1 * 0.0.0.0/0 RELATED,ESTABLISHED 4 434 ACCEPT tcp -- eth1 * 0.0.0.0/0 6 700 ACCEPT tcp -- eth1 * 0.0.0.0/0 12 1535 ACCEPT tcp -- eth1 * 0.0.0.0/0 17 2325 ACCEPT tcp -- eth1 * 0.0.0.0/0 23 4545 ACCEPT udp -- eth1 * 0.0.0.0/0 70 6004 ACCEPT tcp -- eth1 * 0.0.0.0/0 0 0 DROP all -- * * 141.85.20.0/24 0 0 DROP all -- * * 141.85.30.0/24 Chain OUTPUT (policy ACCEPT 910 packets, 234960 bytes) pkts bytes target prot opt in out source 23 1477 DROP all -- * eth1 0.0.0.0/0

destination 0.0.0.0/0 tcp dpt:23 destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 141.85.30.2 141.85.30.2 141.85.30.2 141.85.30.3 141.85.30.3 141.85.30.3 141.85.10.0/24 141.85.10.0/24 destination 0.0.0.0/0

state tcp dpt:80 tcp dpt:443 tcp dpt:22 tcp dpt:53 udp dpt:53 tcp dpt:22 state NEW state NEW

Afiarea s-a realizat folosind flag-ul v (verbose). Dac se urmresc regulile ce blocheaz traficul ctre staiile de la contabilitate (ultimile 2, din lanul FORWARD), se observ o neregul: acestea au contorii de pachete i octei pe 0. Acest lucru nseamn c regulile nu au selectat nici un pachet. De aici se poate deduce faptul c pachetele sunt selectate de alte reguli anterioare (tabela parcurgndu-se n ordinea regulilor) sau lanul nu a fost tranzitat de pachet. Ultima supoziie nu este adevrat, deoarece pachetul este rutat ntre dou reele, aparinnd de vlan-uri diferite, deci pachetul trece prin lanul FORWARD. La parcurgerea tabelei de reguli din lanul FORWARD, se observ c pachetele ce au ca surs IPurile staiilor B (141.85.20.2), D (141.85.20.3), E (141.85.30.2) i F (141.85.30.3) sunt selectate de primele reguli. Primele reguli sunt mai generale dect ultimele, ultimele specificnd i destinaia i starea conexiunii. Soluia este mutarea ultimelor 2 reguli n capul listei. Acest lucru se face tergnd regulile i adugndu-le cu opiunea -I (insert), la nceput:
r@HQ:~# iptables -D FORWARD -s 141.85.30.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP r@HQ:~# iptables -D FORWARD -s 141.85.20.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP rt@HQ:~# iptables -I FORWARD -s 141.85.30.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP r@HQ:~# iptables -I FORWARD -s 141.85.20.0/24 -d 141.85.10.0/24 -m state --state NEW -j DROP r@HQ:~# iptables -nvL Chain INPUT (policy ACCEPT 77 packets, 8272 bytes) pkts bytes target prot opt in out source destination 6 100 DROP tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:23 Chain FORWARD (policy DROP 1244 packets, 100520 bytes) pkts bytes target prot opt in out source 2 232 DROP all -- * * 141.85.20.0/24 0 0 DROP all -- * * 141.85.30.0/24 2 245 ACCEPT all -- * * 141.85.10.2 4 431 ACCEPT all -- * * 141.85.10.3 3 232 ACCEPT all -- * * 141.85.20.2 5 553 ACCEPT all -- * * 141.85.20.3 25 4540 ACCEPT all -- * * 141.85.30.2 10 1303 ACCEPT all -- * * 141.85.30.3 49 7303 ACCEPT all -eth1 * 0.0.0.0/0 RELATED,ESTABLISHED 4 434 ACCEPT tcp -- eth1 * 0.0.0.0/0 6 700 ACCEPT tcp -- eth1 * 0.0.0.0/0 12 1535 ACCEPT tcp -- eth1 * 0.0.0.0/0 17 2325 ACCEPT tcp -- eth1 * 0.0.0.0/0 23 4545 ACCEPT udp -- eth1 * 0.0.0.0/0 70 6004 ACCEPT tcp -- eth1 * 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 910 packets, 234960 bytes) pkts bytes target prot opt in out source 23 1477 DROP all -- * eth1 0.0.0.0/0 destination 141.85.10.0/24 141.85.10.0/24 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 141.85.30.2 141.85.30.2 141.85.30.2 141.85.30.3 141.85.30.3 141.85.30.3 destination 0.0.0.0/0

state NEW state NEW

state tcp tcp tcp tcp udp tcp dpt:80 dpt:443 dpt:22 dpt:53 dpt:53 dpt:22

Dup realizarea tuturor configuraiilor iptables, se dorete salvarea lor ntr-un fiier i configurat sistemul de operare, s execute acel fiier la pornire. Pentru salvare se va folosi utilitarul iptables-save:

248 | R e e l e l o c a l e d e c a l c u l a t o a r e
root@HQ:~# iptables-save > /root/reguli_firewall

Sistemul Linux instalat este unul debian-based. Cea mai simpl metod pentru a ncrca regulile iptables la boot-time este prin crearea unui script n directorul /etc/network/if-up.d/, care ruleaz iptables-restore, utilitarul ifupdown ocupndu-se cu executarea lui.
root@HQ:~# echo "#!/bin/sh" > /etc/network/if-up.d/iptables root@HQ:~# echo "iptables-restore < /root/reguli_firewall" >> /etc/network/if-up.d/iptables root@HQ:~# chmod +x /etc/network/if-up.d/iptables

O form mai elegant se obine prin crearea unui script de iniializare de tip Sys-v [19], firewall-ul
putnd fi administrat ca un serviciu cu opiuni de start, stop, restart, etc.

7.6 Studiu de caz


n cadrul acestei seciuni, se va prezenta configurarea unui server de SSH pe Linux, folosind pachetul OpenSSH, i pe Cisco IOS, folosind serverul integrat n sistemul de operare. Un alt subiect abordat va fi configurarea firewall-ului integrat pe un sistem de operare Windows.

7.6.1 Server SSH Linux


Serverul de SSH este instalat automat, odat cu instalarea pachetului ssh, pe toate distribuiile debian-based (apt-get install ssh). Fiierul principal pentru configurarea serverului SSH este /etc/ssh/sshd_config. ATENIE: o greeal des ntlnit este folosirea fiierului /etc/ssh/ssh_config, care este fiierul de configurarea al clientului ssh. Cteva directive importante pentru configurarea serviciului de SSH sunt prezentate n cele ce urmeaz. Fiecare directiv trebuie scris pe o linie separat. Nici o directiv nu este obligatorie, existnd valori implicite pentru oricare din ele: Port 22 specific portul pe care ascult serverul; portul implicit este 22. Se pot specifica mai multe porturi prin directive separate. ListenAddress 192.168.1.2 specific interfaa pe care ascult daemon-ul sshd. Adresa implicit este 0.0.0.0, reprezentnd faptul c se ascult pe toate interfeele. Pentru a asculta pe mai multe adrese IP, fiecare se specific prin cte o comand nou separat. HostKey /etc/ssh/ssh_host_key specific fiierul n care este inut cheia privat a utilizatorului. ServerKeyBits 1024 definete numrul de bii din server key (implicit 768). KeyRegenerationInterval 3600 specific dup ct timp va fi regenerat cheia serverului. Aceasta poate fi o metod de a preveni decriptarea n cazul interceptrii unei sesiuni n urma unui atac man-in-the-middle (vezi capitolul Atacuri de reea). PermitRootLogin yes|no|nopwd se refer la posibilitatea autentificrii prin SSH folosind contul utilizatorului privilegiat root; nopwd semnific faptul c nu este permis autentificarea cu parol. Aceast opiune trebuie ntotdeauna setat pe no din motive de securitate. PubkeyAuthentication yes|no specific faptul c este permis autentificare pe baz de chei publice/private. AuthorizedKeysFile .ssh/authorized_keys specific locaia fiierului ce conine cheile publice ale persoanelor autorizate s acceseze serviciul, folosind cheia lor privat. Locaia implicit este n .ssh/authorized_keys. PasswordAuthentication yes|no permite autentificarea pe baz de parol. PermitEmptyPasswords yes|no se permite sau nu autentificarea pe baza parolelor nule. Din motive de securitate, se recomand ca aceasta s fie setat pe no.

S e c u r i z a r e a r e e l e i | 249 X11Forwarding yes|no specific dac este permis redirectarea protocolului X11 peste o conexiune de SSH. RSAAuthentication yes|no specific folosirea autentificrii folosind protocolul RSA. AllowUsers admin specific utilizatorii care se pot conecta prin acest serviciu. Implicit poate accesa orice utilizator serviciul. PrintMotd yes|no specific dac sshd-ul va afia coninutul fiierului /etc/motd dup autentificarea unui utilizator. MOTD (Message of the Day) reprezint un text afiat utilizatorului dup autentificare, dar nainte de apariia promptului, care conine mesaje de la administrator. Dup modificarea fiierului de configurare, trebuie resetat serviciul de SSH, pentru ca noile configuraii s fie valabile:
root@HQ:~# service ssh restart ssh start/running, process 27424

7.6.2 Server SSH Cisco IOS


Pentru a configura serverul de SSH, trebuie mai inti, configurat numele domeniului de care aparine ruterul (poate fi identic cu hostname-ul) i generat o pereche de chei (public/privat):
router(config)#crypto key generate rsa % Please define a domain-name first. router(config)#ip domain-name router router(config)#crypto key generate rsa The name for the keys will be: router.router Choose the size of the key modulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes. How many bits in the modulus [512]: % Generating 512 bit RSA keys, keys will be non-exportable...[OK]

n acest moment serviciul de ssh este activ. Pentru a putea s v autentificai, trebui s creai un utilizator, folosind comanda username:
router(config)#username rl password carte_rl

Este recomandat folosirea protocolui SSH, versiune 2, dar pentru acest lucru avei nevoie de o cheie de minim 768 de bii:
router(config)#ip ssh version 2 Please create RSA keys (of at least 768 bits size) to enable SSH v2. router(config)#crypto key generate rsa % You already have RSA keys defined named router.router . % Do you really want to replace them? [yes/no]: yes The name for the keys will be: router.router Choose the size of the key modulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes. How many bits in the modulus [512]: 768 % Generating 768 bit RSA keys, keys will be non-exportable...[OK] *mar. 1 3:12:4.615: %SSH-5-ENABLED: SSH 1.99 has been enabled router(config)#ip ssh version 2

De pe staia Linux HQ, putem realiza o conexiune SSH ctre ruterul Cisco, folosind utilizatorul rl. Acesta are adresa IP 192.168.0.1:
root@HQ:~# ssh rl@192.168.0.1 Open Password: router>

7.6.3 Configurare Windows Firewall


Windows Firewall este unul de tip stateful, adic urmrete starea conexiunilor de reea ale unui sistem, examinnd att traficul direcionat spre reea ct i cel spre exterior. Pentru traficul dinspre

250 | R e e l e l o c a l e d e c a l c u l a t o a r e exterior, comportamentul implicit al su este de a bloca orice pachet care sosete nesolicitat, adic nu reprezint rspunsul la o cerere sau nu face parte din traficul unei conexiuni iniiate de calculatorul propriu. Totui, cnd este necesar, pot fi configurate excepii pentru a permite anumitor tipuri de trafic s fie recepionate de ctre anumite aplicaii, pe anumite porturi. Comportamentul implicit pentru traficul originat din sistemul propriu este unul permisiv, nefiind filtrate niciun fel de cereri. Totui, pot fi implementate reguli care s limiteze accesul anumitor aplicaii la Internet. Pentru configurarea Windows Firewall pe un sistem Windows Server 2008 exist dou moduri: fereastra de dialog Windows Firewall Settings, disponibil i pentru Windows XP i accesibil direct din Control Panel. interfaa de administrare pentru Windows Firewall with Advanced Security, accesibil de la Administrative Tools sau din Server Manager.

7-10 Aplicaiile permise prin Windows Firewall Pentru a deschide fereastra de dialog Windows Firewall Settings (vezi Figura 7-10), se poate alege opiunea Allow a Program Through the Windows Firewall din Control Panel, sub categoria Security sau direct accesnd Windows Firewall, tot din Control Panel, ca i n Windows XP (n funcie de modul de vizualizare activ). Setrile de baz ale lui Windows Firewall sunt separate n trei categorii: General: n acest tab se gsesc cele mai simple opiuni, de pornire i oprire a firewallului. De asemenea, exist i posibilitatea de blocare a tuturor conexiunilor iniiate din

S e c u r i z a r e a r e e l e i | 251 exterior (Block all incoming connections) pentru a activa rapid protecia total n reele publice, nesecurizate. Aceast opiune ignor toate excepiile active la acel moment. Exceptions: Lista cuprinde aplicaiile detectate n sistem iar bifarea lor are ca efect activarea permisiunii aplicaiilor de a deschide porturi. Pot fi adugate noi programe (executabile, de fapt) la lista de excepii sau pot fi adugate separat i porturi. Advanced: Aici pot fi selectate conexiunile de reea pe care Windows Firewall s le monitorizeze. De asemenea, de aici pot fi restaurate setrile implicite legate de funcionarea firewall-ului i de excepiile sale. Dup cum se observ, fereastra de dialog descris mai sus nu ofer o multitudine de opiuni legate de configurarea Windows Firewall i nu poate fi considerat efectiv o unealt administrativ deoarece ofer un grad extrem de sczut de flexibilitate. Dac se dorete modificarea unor setri mai avansate (reguli, n spe, care, la rndul lor, formeaz politicile de securitate) trebuie utilizat interfaa Windows Firewall with Advanced Security, accesibil din Server Manager sau de la Start > Administrative Tools. Aceasta ofer opiunea de a gestiona regulile de intrare i ieire a pachetelor i de a crea reguli de securitate pentru conexiuni care pot restriciona conectarea la un server pe baza unor informaii de autentificare mai complexe, cum ar fi apartenena la un domeniu.

7-11 Interfaa de administrare Windows Firewall with Advanced Security Interfaa este mprit n trei panouri: n stnga, un panou ce afieaz diferitele elemente de configurare, cum sunt regulile sau opiunile de monitorizare;

252 | R e e l e l o c a l e d e c a l c u l a t o a r e n partea dreapt panoul de aciuni, comun celor mai multe interfee de administrare din Server Manager; n partea central panoul de detalii, al crui coninut se modific dinamic, n funcie de seleciile din primul panou. n mod implicit, panoul central, de detalii, afieaz (atunci cnd n stnga este selectat rdcina firewall-ului: Windows Firewall with Advanced Security on Local Computer) o list cu trei profiluri: Domain, Public i Private. Aceste profiluri se afl n legtur cu tipurile de conexiuni afiate i de interfaa Network and Sharing Center i conin setri diferite n funcie de riscurile pe care diferite tipuri de conexiuni le prezint. Ele au relevan n contextul lui Windows Firewall dup cum urmeaz: Domain: Calculatoarele ce ruleaz Windows Vista sau Windows Server 2008 pot detecta dac se poate realiza apartenena la un domeniu ntr-o anumit reea la care sunt conectate. Acest profil necesit ca toate calculatoarele s fie membre ale unui domeniu pentru a putea accesa controller-ul de domeniu. Public: Profilul Public este folosit de ctre firewall pentru a proteja sistemul cnd acesta este conectat la o reea public, spre exemplu una wireless. Practic, pentru Windows Server 2008, o reea public reprezint orice reea care nu se afl n interiorul perimetrului reelei delimitate de firewall-ul acesteia. Private: Profilul comunic firewall-ului modul n care s protejeze sistemul n momentul n care acesta este membru al unei conexiuni private, adic aparine unei reele protejate de un firewall hardware.

7-12 Interfaa proprietilor unui profil Pentru c fiecare dintre cele trei profiluri poate stoca setri distincte cu privire la regulile firewall-ului, acestea ofer un grad sporit de flexibilitate n optimizarea nivelului de securitate oferit de firewall pentru diferite tipuri de conexiuni. Spre exemplu, conexiunile spre reelele publice vor

S e c u r i z a r e a r e e l e i | 253 folosi profilul Public care va impune un set de reguli mai restrictive, n timp ce conectarea la reelele locale izolate, securizate i/sau aflate sub propria administrare poate necesita un set mai permisiv de reguli, cum ar fi partajarea fiierelor i a imprimantelor n reea, reguli configurate n cadrul profilului Private. Modificarea tipului unei conexiuni se poate face manual (mai puin pentru tipul Domain, care are cerine suplimentare). Windows aplic, ns, i n mod automat aceste profiluri n funcie de tipul de trafic inspectat pe interfaa conectat. Astfel c, n cazul apartenenei la un domeniu, se aplic nti profilul Domain, ajungndu-se ulterior la opiunea de a aplica unul dintre celelalte dou profiluri. Pentru situaia de mai sus, peste profilul Domain se aplic automat profilul Private deoarece se consider c zona delimitat de staiile dintr-o reea, membre ale unui domeniu, reprezint deja o zon de un anumit grad de securitate i siguran. Dac interfaa nu este autentificat la un controller de domeniu (deci conexiunea sa nu este membr a unui domeniu) atunci se aplic automat profilul Public. Pentru a accesa setrile profilurilor implicite, se poate face clic pe link-ul Windows Firewall Properties din panoul de detalii, la baza regiunii Overview, n care sunt listate aceste profiluri (vezi Fig. 7-12). Se observ c toate cele trei profiluri se configureaz similar, specificndu-se starea firewall-ului i modul de tratare a conexiunilor n funcie de sensul n care au fost iniiate. La apsarea butonului Customize sunt disponibile opiuni suplimentare ce adreseaz notificarea utilizatorului n momentul n care firewall-ul blocheaz o aplicaie i comportamentul permis de firewall n cazul n care sistemul ncearc s rspund prin unicast n urma unui trafic de broadcast sau multicast din reea.

Modificarea regulilor implicite


Lund n considerare setrile anterioare, disponibile la nivel de profil, este evident faptul c diferenierea cea mai drastic i totodat cea mai granular dintre profiluri se reduce la implementarea regulilor. Practic, la nivel de trafic, regulile sunt cele care dicteaz comportamentul lui Windows Firewall. Acestea se mpart n trei categorii: inbound rules (pentru traficul care intr printr-o conexiune), outbound rules (pentru traficul adresat spre exterior) i connection security rules. Regulile de tip inbound se refer, de fapt, la deblocarea traficului venit din exterior. Dup cum s-a menionat i n seciunea anterioar, pentru toate cele trei tipuri de profiluri (Domain, Private i Public), comportamentul implicit al firewall-ului pentru conexiunile iniiate din exterior este de a le bloca. n contrast, comportamentul implicit pentru conexiunile iniiate de maina pe care ruleaz firewall-ul este permiterea tuturor acestora prin firewall, astfel c regulile de tip outbound adreseaz care dintre aceste conexiuni vor fi, de fapt, blocate. Att pentru regulile de tip inbound ct i pentru cele outbound, categoriile de reguli pe care Windows Firewall permite s fie create sunt n numr de trei, cu posibilitatea de a crea i reguli Custom: Program: Decizia se ia n funcie de programul care iniiaz o conexiune (regul outbound) sau care dorete deschiderea unui port (regul inbound). Informaia care identific aplicaia cuprinde doar calea spre executabilul su. Port: Astfel de reguli au n vedere conexiunile pe baza numerelor de port (unul sau un interval) pe care acestea le utilizeaz. Tot aici se poate specifica i pentru ce protocol de nivel transport (TCP sau UDP) se aplic regula. Predefined: Aceste reguli generalizeaz anumite programe sau servicii ale sistemului simplificnd detaliile funcionrii lor. Spre exemplu, o astfel de regul poate fi instituit pentru a controla accesul la partajarea fiierelor sau imprimantelor sau pentru a permite funcionarea protocolului Remote Desktop (pentru administrarea de la distan). Afiarea regulilor definite implicit n Windows Firewall se face printr-un simplu clic pe categoria dorit n panoul din stnga: Inbound Rules sau Outbound Rules. Deoarece lista poate deveni destul de cuprinztoare, mai ales dup definirea regulilor proprii i pe servere cu o multitudine de aplicaii i servicii instalate, acesteia i se pot aplica filtre din panoul de aciuni. Este de la sine neles c filtrele

254 | R e e l e l o c a l e d e c a l c u l a t o a r e afecteaz doar afiarea anumitor reguli; ele nu afecteaz n niciun fel funcionarea lor. Pentru aceasta se folosete proprietatea Enabled disponibil pentru fiecare regul. Aplicarea filtrelor poate adresa profilul de care acestea aparin, starea lor (active sau nu) i grupul din care fac parte (adic aplicaia sau serviciul de care aparin). Filtrele pot fi aplicate secvenial. Pentru tergerea tuturor filtrelor active se face clic pe link-ul Clear all filters. Pentru a vizualiza proprietile unei reguli (indiferent dac este de tip inbound sau outbound), se poate face dublu clic pe regul din panoul central (indiferent de prezena filtrelor). ATENIE: nu se pot modifica toate proprietile regulilor predefinite; n cele mai multe dintre cazuri, executabilul asociat regulii nu poate fi schimbat, la fel ca i porturile i setul de protocoale incluse n regul. Aceste restricii sunt impuse deoarece regulile implicite adreseaz funcionarea serviciilor Windows care folosesc porturi i protocoale standard pentru a comunica.

7-13 Proprietile unei reguli inbound Fereastra de dialog a proprietilor unei reguli conine urmtoarele seciuni: General: Cuprinde numele i o descriere textual a regulii, ofer posibilitatea de a activa sau dezactiva regula i tipul aciunii descrise de regul: permiterea conexiunii, blocarea ei sau permiterea n condiii securizate (IPSec). Pentru cea din urm, trebuie s existe i o regul corespunztoare de tipul Connection Security Rule. Dac regula cere ca o conexiune permis s fie criptat, pentru cele necriptate se vor aplica alte reguli dac exist sau se vor conforma comportamentului implicit descris n profilul conexiunii. Opiunea Override block rules specific faptul c aceast regul va suprascrie orice alte reguli care ar putea bloca conexiunea n cauz. Opiunea este necesar pentru a permite o conexiune pentru c, n mod normal, regulile de blocare au prioritate sporit fa de cele permisive. Programs and Services: Specific executabilul sau serviciul de sistem pentru care se va aplica regula. Orice program i serviciu poate fi adugat atta timp ct ruleaz prin propriul su executabil. Atenie la adugarea container-elor de servicii sau a programelor care gzduiesc executabile, ca svchost.exe, dllhost,exe, inetinfo.exe pentru c pot

S e c u r i z a r e a r e e l e i | 255 reprezenta riscuri de securitate. Regulile care se aplic pentru un anumit program sau serviciu pot fi folosite i pentru a permite unor aplicaii s accepte conexiuni din Internet, atta timp ct acestea folosesc Windows Sockets (winsock) pentru a deschide propriile porturi. Users and computers: Permite specificarea care calculatoare sau utilizatori (sau grupuri de utilizatori) au dreptul de a se conecta la calculatorul local n contextul serviciului sau programului cruia regula i este asociat. Opiunile legate de utilizatori i calculatoare pot fi utilizate doar dac s-a specificat ca aciune a regulii permiterea conexiunilor dac acestea sunt securizate. De asemenea, configuraia este valabil doar pentru reguli de tip inbound, iar utilizatorii sau calculatoarele ce se pot autentifica trebuie s fie accesibile prin Active Directory Domain Services. Protocols and ports: Regula poate fi particularizat n continuare specificnd porturile i protocoalele (TCP, UDP, GRE, IPv6, L2TP, etc.) necesare pentru o conexiune prin aceast regul. Pentru ICMP sunt disponibile opiuni suplimentare, n funcie de codurile mesajelor. De asemenea, filtrarea pe baz de port se poate face att pentru porturile surs ct i pentru cele destinaie (proprii, n cazul de fa). Scope: Sunt permise specificarea unor adrese IP, intervale de adrese IP sau chiar subreele ntregi de la care sunt acceptate conexiunile. Aceiai parametri pot fi configurai i pentru maina local, caz n care regula se va aplica tuturor conexiunilor dintre adresele locale i adresele de la distan care ndeplinesc ambele criterii configurate. Advanced: Se poate specifica profilul pentru care regula este activ (toate sau numai unul dintre cele trei) i conexiunea de reea pentru care regula se aplic.

Adugarea de noi reguli


Windows Firewall permite crearea de noi reguli pentru a le suplimenta pe cele implicite, particularizate pentru necesitile fiecrui sistem sau reea. Pentru a crea o nou regul, se selecteaz categoria de Inbound sau Outbound i se face clic pe New Rule n panoul de aciuni. n prima etap se selecteaz tipul regulii: Program, Port, Predefined sau Custom, dup cum au fost prezentate n seciunea anterioar. Pentru a avea acces la toate opiunile, pentru exemplul de fa se va considera c se creeaz o regul de tip Custom. Urmtoarea pagin ofer trei opiuni: All programs: Regula va fi aplicat tuturor programelor ale cror conexiuni se potrivesc cu setrile regulii. This program path: Regula se va aplica doar conexiunilor iniiate din sau spre un anumit program selectabil prin executabilul su. Services: Permite selectarea unui anumit serviciu din lista de servicii instalate n sistem, deoarece majoritatea ruleaz gzduit n interiorul altor executabile, ca services.exe (utilitar responsabil cu pornirea i oprirea serviciilor, pornirea automat a lor la iniializarea sistemului si oprirea lor la nchiderea sa) sau lsass.exe (utilitar cu multiple responsabiliti de securitate, incluznd autentificarea utilizatorilor, fiind inta pentru numeroi virui). n continuare (vezi Fig. 7-14) se poate alege protocolul i, eventual, porturile pentru care regula va fi aplicat. Dac la pasul anterior s-a selectat o aplicaie, nu e necesar selectarea protocolului deoarece Windows l va identifica din interfaa winsock. n continuare se pot specifica adresele IP, att locale ct i de la distan pe a cror conexiuni se va aplica regula. Pot fi definite adrese, intervaluri de adrese sau subreele. De asemenea, se pot alege aici i tipurile conexiunilor de tip reea pe care va fi aplicat regula. Aciunea ce poate fi aplicat n momentul n care regula firewall-ului intr n funciune, poate s permit realizarea conexiunii n orice situaie (deci crearea unei reguli de tip Allow), doar n cazul n

256 | R e e l e l o c a l e d e c a l c u l a t o a r e care conexiune este securizat (mai multe detalii n seciunea 6.4.1.2) sau poate bloca realizarea conexiunii (crearea unei reguli de tip Deny). n urmtoarea seciune se pot bifa profilurile pentru care regula s se aplice: Private, Public sau Domain. n fine, n ultima etap se d un nume regulii i, eventual o descriere care rezum parametrii i aciunile sale (preferabil i scopul pentru care a fost creat regula). Butonul Finish creeaz regula, ce poate fi editat ulterior ca orice alt regul implicit.

7-14 Specificarea porturilor i protocolului pentru regul

Reguli de securizare a conexiunilor


Regulile de tip inbound i outbound controleaz strict fluxurile de date dintr-un calculator. Windows Firewall permite i crearea de reguli de securizare a conexiunilor (connection security rules) care controleaz autentificarea dintre dou calculatoare (dou servere dintr-o reea, spre exemplu) pentru a asigura faptul c orice conexiune stabilit ntre aceste calculatoare este una securizat, folosind diferite metode, precum certificatele. n Windows Firewall nu sunt reguli de securizare a conexiunilor configurate n mod implicit. Ele pot fi create explicit de ctre administrator i pot fi mprite n urmtoarele categorii: Isolation: Regula restricioneaz conectarea la un anumit calculator (deci l izoleaz) pe baza unor criterii de autentificare, precum apartenen la un domeniu sau a unor diferite politici de securitate implementate. Authentication exemption: Regula poate permite accesul fr informaii de autentificare al altor calculatoare la calculatorul propriu. Acordarea dreptului de conectare se face pe baz de adres IP. Server to server: Regula este folosit pentru a realiza o conexiune securizat ntre dou servere. Este nevoie de specificarea serverelor care vor fi implicate n conexiune i de configurarea autentificrii ce se dorete a se realiza ntre ele.

S e c u r i z a r e a r e e l e i | 257 Tunnel: Regul pentru controlul parametrilor unei conexiuni securizate ntre dou puncte, peste o reea public, nesecurizat. Se specific cele dou puncte ale conexiunii (endpoints) i metoda de autentificare. Custom: Regul complet configurabil. Pentru a crea o astfel de regul se selecteaz Connection Security Rules din panoul stng i se face clic pe link-ul New Rule din panoul de aciuni, dup care se urmeaz etapele urmtoare. Pentru nceput, se alege tipul regulii ce se dorete a fi creat. Pentru a avea acces la toate opiunile, pentru exemplul de fa se va alege tipul Custom. Urmtoarea opiune cere configurarea capetelor conexiunii (endpoints). Endpoint-ul 1 poate fi calculatorul local sau o subreea de adrese IP ce pot fi atribuite calculatorului local, iar endpoint-ul 2 va fi ceallalt capt al conexiunii, specificat printr-o adres IP sau un interval.

7-15 Definirea captelor unei conexiuni securizate n pagina urmtoare se selecteaz tipul de autentificare ce va fi folosit: Request authentication for inbound and outbound connections: Autentificarea nu este obligatorie, dar este de preferat. Conexiunile inbound i outbound nesecurizate vor reui dar dac se dorete utilizarea unei autentificri se poate realiza acest lucru. Require authentication for inbound connections and request authentication for oubound connections: Conexiunile iniiate n exterior trebuie s fie autentificate, dar pentru cele iniiate local este opional. Require authentication for inbound and outbound connections: Att conexiunile iniiate din exterior ct i cele iniiate local trebuie autentificate, altfel regula va bloca realizarea lor. Do not authenticate: Nu este necesar autentificarea. n urmtoarea pagin se selecteaz metoda de autentificare folosit de regul. Opiunea Default folosete autentificarea implicit a profilului. Se mai pot selecta metode de autentificare bazate pe

258 | R e e l e l o c a l e d e c a l c u l a t o a r e utilizator i calculator (ceea ce necesit apartenen la un domeniu), doar n funcie de calculator, sau pe baza unui certificat. Prin opiunea Advanced se pot specifica dou sesiuni de autentificri, secveniale, fiecare prin metodele sale. Pe pagina Profile se aleg profilurile pentru care regula va fi activ. n ultima pagin se introduce un nume i o descriere a profilului. Dup creare, regula apare n lista de Connection Security Rules i i se pot modifica proprietile ca i n cazul regulilor Inbound sau Outbound.

Configurri IPSec
IPSec (IP Security Protocol) reprezint o serie de servicii i protocoale de securitate orientate spre asigurarea confidenialitii datelor transferate n interiorul unei reele sau prin conexiuni de tip VPN. Avantajul major al IPSec este c datele pot fi securizate indiferent dac dispozitivele de pe parcurs suport sau nu aceste protocoale. Criptarea n IPSec se face separat pentru fiecare pachet iar ca metode de autentificare pot fi folosite certificatele digitale.

7-16 Setri IPSec n Windows Server 2008, setrile ce adreseaz IPSec sunt incluse n Windows Firewall i sunt accesibile la pagina IPSec Settings din cadrul ferestrei de proprieti a firewall-ului. Modificarea setrilor implicite sunt accesibile prin apsarea butonului Customize. Acestea vor afecta toate regulile de tip Connection Security Rule definite n firewall. Configurrile pentru IPSec se ncadreaz n trei categorii: schimbul de chei (key exchange), protejarea datelor (data protection) i modalitatea de autentificare (authentication method). Pentru a schimba modul n care se realizeaz schimbul de chei, se alege optiunea Advanced din grupul Key Exchange i se face clic pe butonul Customize.

S e c u r i z a r e a r e e l e i | 259

7-17 Opiuni pentru schimbul de chei

7-18 Opiuni pentru protecia datelor Modul implicit folosete algoritmul Diffie-Hellman Group 2 (bazat pe o cheie public i una privat). Exist posibilitatea optrii pentru un algoritm mai puternic, ca Elliptic Curve Diffie-Hellman P-384. Trebuie avut n vedere i faptul c selectarea acestui algoritm impune clientului restricia ca acesta s ruleze cel puin Windows Vista iar serverul Windows Server 2008. Tot aici poate fi modificat i durata de via a cheilor. Teoretic, securitatea unei chei este invers proporional cu durata sa de via. Tot din fereastra principal a setrilor IPSec poate fi modificat i metoda folosit pentru asigurarea securitii datelor (criptare). Pentru aceasta se selecteaz opiunea Advanced din categoria Data protection (Quick Mode) i se apas butonul Customize.

260 | R e e l e l o c a l e d e c a l c u l a t o a r e Implicit se folosesc doi algoritmi pentru a asigura integritatea i securitatea datelor: ESP i AH. Protocolul Encapsulating Security Payload (ESP) ofer autentificarea sursei datelor, integritate i protecie mpotriva atacurilor de tip replay pentru coninutul pachetelor IP. Protocolul Authentication Header (AH) ofer securitate pentru antetul IP. Ultima categorie de opiuni se refer la metoda de autentificare folosit pentru a realiza conexiuni securizate: Computer and User (Using Kerberos V5) autentific att calculatorul ct i utilizatorul. Kerberos V5 folosete un sistem de chei sau tichete atribuite calculatoarelor din domeniu. Mesajele trimise de aceste calculatoare sunt autentificate prin tichet, care este ataat n date. Computer (Using Kerberos V5) autentific doar calculatorul. User (Using Kerberos V5) autentific doar utilizatorul. Computer certificate from this certification authority necesit specificarea unui CA (Certificate Authority) iar autentificarea se face baza certificatelor digitale.

7.7 Concluzii
Odat cu creterea numrului de utilizatori n Internet, au crescut i riscurile de pierdere a informaiilor confideniale transmise, securizarea reelei devenind prioritatea numrul unu n proiectarea unei reele de calculatoare. Pentru asigurarea securitii unei reele, trebuie limitat accesul din exterior (Internet) ctre serviciile ce ofer acces la informaii confideniale. Pentru acest lucru, serviciile trebuie difereniate. Diferenierea se realizeaz la nivelul transport, prin multiplexare, introducnd un nou tip de adresare: portul. Astfel fiecare serviciu poate fi identificat printr-un protocol (TCP, UDP, ICMP) i printr-un port (un numr ntreg pe 16 bii). Protocolul folosit variaz n funcie de necesitile aplicaiei. Dac se dorete un transfer sigur, fr pierderi de pachete se folosete protocolul TCP (ex.: HTTP, SSH, etc), iar dac se dorete un transfer mai rapid, fr confirmri de pachete, se folosete protocolul UDP. ICMP este, n general, folosit la diagnosticarea problemelor dintr-o reea. Dipozitivul care controleaz accesul la servicii poart numele de firewall. Acesta poate fi clasificat n mai multe tipuri: stateless (nu menine starea conexiunii), stateful (menine starea conexiunii) i de nivel aplicaie (inspecteaz i coninutul de date al unui pachet pentru a identifica tipul acestuia). O alt clasificare a acestora poate fi fcut n funcie de serviciile oferite: IDS (doar detecteaz un posibil atac, fiind o entitate pasiv) sau IPS (detecteaz i blocheaz un posibil atac, fiind o entitate activ prin care trece efectiv traficul). Firewall-ul poate fi implementat n hardware, folosind procesoare specializate numite ASIC-uri, sau n software, pe calculatoarele cu procesoare de uz general. Cea mai popular implementare de firewall n software e suita iptables/Netfilter pe sistemele de operare Linux. n general, nu se poate bloca, pur i simplu, accesul la un serviciu din exterior, avnd nevoie de acces la informaiile puse la dispoziie de acesta. Aadar avem nevoie de o conexiune securizat, obinndu-se prin folosirea unor protocoale ce asigur autentificare (persoanele sunt cine zic c sunt), confidenialitate (datele nu pot fi vzute dect de persoanele autentificate) i integritate (datele ajung nemodificate la destinaie). Cel mai popular protocol de acces la distan, ce satisface toate condiiile anterior prezentate, este SSH. Acesta permite autentificarea pe baz de parol sau chei publice/private, traficul transmis este criptat cu ajutorul unei chei simetrice, fiind mult mai rapid dect criptarea cu chei asimetrice, iar integritate este oferit prin folosirea unor hash-uri (MD5, SHA-1).

S e c u r i z a r e a r e e l e i | 261

7.7.1 Linux
Comand netstat/ss Descriere Vizualizare informaii despre reea (porturile pe care ascult serviciile, conexiunile deschise, etc.) Simularea unei conexiuni client-server Administrare reguli firewall Conectare la un server, ce ruleaz serviciul de SSH i creare de tunele SSH

netcat iptables ssh

7.7.2 Cisco IOS


Comand access-list ip access-list Descriere Adugare liste de acces n vederea filtrrii traficului Adugare liste de acces cu nume n vederea filtrrii traficului Configurare list de acces pe o interfa. Se execut din modul de configurare al acesteia Vizualizare liste de acces Conectare la un server, ce ruleaz serviciul de SSH

ip access-group

show access-lists ssh

7.7.3 Windows
Comand netstat putty.exe Descriere Vizualizare conexiuni active Conectare la un server, ce ruleaz serviciul de SSH i creare de tunele SSH

262 | R e e l e l o c a l e d e c a l c u l a t o a r e

7.8 ntrebri
1. Nivelul transport ofer aproape ntotdeauna: Multiplexarea adresei IP Controlul transmisiei Controlul fluxului Integritatea datelor

2. Un IDS poate asigura i funcia de rutare a pachetelor. / Un IDS asigur blocarea atacurilor atunci cnd acesta este notificat de ctre o alt entitate Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 3. Protocolul TCP garanteaz recepia corect a datelor. / Folosirea protocolul UDP nu necesit stabilirea unei conexiuni. Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 4. Pentru conexiuni bazate pe protocolul TCP, pentru a permite doar accesul pachetelor de rspuns pe o interfa, care tip de pachete trebuie filtrat? Cele care au flag-ul SYN setat Cele care au flag-ul ACK setat Cele care au flag-urile FIN i ACK setate Cele care au flag-urile SYN i ACK setate 5. Protocolul SSH folosete pentru asigurarea confidenialiti: Criptarea simetric Criptarea asimetric Criptare simetric sau asimetric, n funcie de configurare O alt metod dect cele dou criptri menionate anterior

S e c u r i z a r e a r e e l e i | 263

7.9 Referine
[1] Vinton G. Cerf and Robert E. Kahn. A protocol for Packet Network Intercommunication. IEEE; 1974 May 5. Accesat la http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf [28.08.2012]. [2] Information Sciences Institute University of Southern California. Transmission Control Protocol. 1981 September. Accesat la http://tools.ietf.org/html/rfc793 [29.08.2012]. [3] J. Postel. User Datagram Protocol. 1980 August 28. Accesat la http://tools.ietf.org/html/rfc768 [29.08.2012]. [4] Three way handshake. 2010 March 4, 01:17. Accesat la http://talkanadas.wordpress.com/2010/03/04/0x0002-three-way-handshake/ [29.08.2012].
[5] J. Postel. Internet Control Message Protocol. 1981 September. Accesat la http://www.ietf.org/rfc/rfc792.txt [29.08.2012]. [6] T. Ylonen, SSH Communications Security Crop, C. Lonvick, Cisco Systems. The Secure Shell (SSH) Protocol Architecture. 2006 January. Accesat la http://tools.ietf.org/html/rfc4251

[29.08.2012].
[7] T. Ylonen, SSH Communications Security Crop, C. Lonvick, Cisco Systems. The Secure Shell (SSH) Protocol Architecture. 2006 January. Accesat la http://tools.ietf.org/html/rfc4252

[29.08.2012].
[8] T. Ylonen, SSH Communications Security Crop, C. Lonvick, Cisco Systems. The Secure Shell (SSH) Protocol Architecture. 2006 January. Accesat la http://tools.ietf.org/html/rfc4253

[29.08.2012].
[9] T. Ylonen, SSH Communications Security Crop, C. Lonvick, Cisco Systems. The Secure Shell (SSH) Protocol Architecture. 2006 January. Accesat la http://tools.ietf.org/html/rfc4254

[29.08.2012].
[10] J. Schlyter, OpenSSH, W. Griffin, SPARTA. Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints. 2006 January. Accesat la http://tools.ietf.org/html/rfc4255 [29.08.2012]. [11] F. Cusack, savecore.net, M. Forssen, AppGate Network Security AB. Generic Message Exchange Authentication for the Secure Shell Protocol (SSH). 2006 January. Accesat la http://tools.ietf.org/html/rfc4256 [29.08.2012]. [12] J. Galbraith, VanDyke Software, P. Remaker, Cisco Systems. The Secure Shell (SSH) Session Channel Break Extension. 2006 January. Accesat la http://tools.ietf.org/html/rfc4335 [29.08.2012]. [13] M. Bellare, T. Kohno, UC San Diego, C. Namprempre, Thammasat University. The Secure

Shell

(SSH)

Transport

Layer

Encryption

Modes.

2006

January.

Accesat

la

http://tools.ietf.org/html/rfc4344 [29.08.2012]. [14] B. Harris. Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol. 2006 January. Accesat la http://tools.ietf.org/html/rfc4345 [29.08.2012]. [15] R.L. Rivest, A. Shamir, and L. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. 1977 September 1. Accesat la http://people.csail.mit.edu/rivest/Rsapaper.pdf [29.08.2012]. [16] netfilter/iptables project. Accesat la http://www.netfilter.org/ [30.08.2012]. [17] Xming X Server for Windows. Accesat la http://sourceforge.net/projects/xming/

[30.08.2012].
[18] The state machine iptables. Accesat la http://www.iptables.info/en/connection-state.html

[01.09.2012].
[19] Steve Kemp. Making scripts to run at boot time with Debian. 2004 Octombre 11, 13:01. Accesat la http://www.debian-administration.org/articles/28 [01.09.2012].

264 | R e e l e l o c a l e d e c a l c u l a t o a r e

P a g e | 265

8 Alterarea pachetelor
Ce se nva n acest capitol? Moduri de alterare a pachetelor Metode de translatare a adreselor Avantaje i dezavantaje ale translatrii de adrese Tunelare

Paul Rusty Russell este un programator open-source australian, care a scris sistemul de filtrare de pachete din Linux (netfilter/iptables). n 2003, Linus Torvalds l-a numit pe Russel unul dintre cei mai buni locoteneni ai si. Reelele de calculatoare urmresc conectarea utilizatorilor aflai la distan prin intermediul dispozitivelor folosite de acetia, a dispozitivelor de reea i a mediilor de transmisie. Interreelele (internetworks) conecteaz mai multe reele locale i, astfel, un numr mai mare i divers de clieni. Internetul, cea mai mare interreea, conecteaz utilizatorii la nivel global. Pe infrastructura fizic a Internetului, constituit din staii, dispozitive de interconectare i medii de transmisie, se construiesc numeroase conexiuni logice prin care utilizatorii i staiile pot comunica. O astfel de conexiune logic este stabilit ntre dou staii i poart denumirea de conexiune end-toend, ntre dou capete din Internet. ntr-un capt se poate gsi un utilizator cu un dispozitiv mobil, iar n cellalt capt un server. O conexiune este dat de transmiterea unor pachete, respectnd specificaiile unor protocoale, ntre cele dou capete (end-to-end). n cadrul acestei conexiuni, pachetele parcurg numeroase dispozitive. De exemplu, accesarea unui server Facebook de la o staie din cadrul Universitii POLITEHNICA din Bucureti trece prin cel puin 25 de rutere. Pe lng acestea exist i alte dispozitive precum switch-uri, firewall-uri sau IDS/IPS-uri (Intrusion Detection/Prevention System). Fiecare dintre aceste dispozitive opereaz asupra pachetului. Operaiile pe care le realizeaz un dispozitiv de reea asupra unui pachet pot fi doar de analiz (pot fi gndite ca operaii de tip read-only) sau de analiz i alterare (pot fi gndite ca operaii de tip read-write). Un exemplu de operaie de analiz este comutarea realizat de un switch. n cadrul operaiei de comutare, switch-ul parcurge adresa MAC destinaie a pachetului primit i, dup consultarea tabelei de comutare, livreaz pachetul pe portul corespunztor, ctre staia destinaie sau ctre alt switch. Switch-ul nu altereaz coninutul pachetului, doar l parcurge. Pe de alt parte, un switch poate nu numai s analizeze, ci i s modifice coninutul unui pachet n cazul folosirii de VLAN-uri. n momentul primirii unui pachet de la o staie, dac portul aferent folosete VLAN-uri, atunci switch-ul adaug eticheta (tag-ul) de VLAN. Cnd trimite pachete la o staie, elimin eticheta de VLAN. Astfel de operaii conduc, de asemenea, la actualizarea cmpului CRC al pachetului. n mod similar, un ruter altereaz cmpul TTL din antetul IPv4 la fiecare rutare; aceast operaie conduce, de asemenea, la actualizarea cmpului checksum. n cazul IPv6 cmpul checksum a fost eliminat pentru a reduce efortul de procesare a pachetului. Aadar, pe parcursul transferului ntre dou capete, un pachet sufer actualizri din partea dispozitivelor prin care trece. Putem clasifica aceste actualizri sau alterri n dou tipuri: alterri implicite, realizate de dispozitiv ca urmare a rolului pe care acesta l ndeplinete, sau explicite, indicate explicit de administrator ca aciuni de alterare. Aciuni de alterare implicit (lista nu este exhaustiv) sunt: adugarea/eliminarea tag-ului de VLAN de switch-uri; corectarea valorilor CRC i checksum n cazul unei alterri a pachetului;

266 | R e e l e l o c a l e d e c a l c u l a t o a r e actualizarea adreselor MAC ale pachetului de un ruter n momentul rutrii; actualizarea cmpului TTL al pachetului de un ruter n momentul rutrii; Dei orice form de prelucrare a pachetului este costisitoare, prelucrarea este necesar pentru funcionarea Internet-ului. De exemplu, dac un ruter nu ar decrementa cmpul TTL, s-ar putea ajunge la bucle n Internet. Dac un switch nu ar completa corect tag-ul de VLAN, pachetul nu ar mai ajunge la destinaie. Pe lng operaiile de alterare implicit, administratorul unui dispozitiv de interconectare poate s configureze alterarea explicit a pachetelor. Administratorul va descrie reguli prin care pachetul va fi modificat n momentul trecerii prin dispozitiv. Motivele pentru care un administrator va configura alterarea explicit a pachetelor pot fi mprite n dou categorii: nevoia de conectivitate i nevoia de securitate. n ceea ce privete conectivitatea, natura hibrid a Internetului conduce la existena unor protocoale diferite care trebuie comunice ntre ele. Un exemplu l reprezint insulele IPv6 aflate n oceanul IPv4. Pentru comunicarea ntre insule, i ntre insule i ocean, se folosesc tehnici de ncapsulare. Pachetul iniial (IPv6) este ncapsulat ntr-un alt pachet (IPv4) de ctre un dispozitiv de la grania insulei. Aceast alterare a pachetului (ncapsularea) permite conexiunea ntre staii care nu sunt direct conectate prin protocolul IPv6. Motivele principale ale alterrii explicite a pachetelor, derivate din de nevoia de conectivitate, sunt: a) numrul redus de adrese IPv4 n Internet, de unde poate aprea nevoia alterrii prin NAT, discutat n continuare n acest capitol, i b) absena unei ci complete pe care s poat fi folosit un protocol de nivel reea (de exemplu, un protocol IPv6). Poate fi vorba, de asemenea, de conexiunea limitat, motiv pentru care pachetul va fi trecut printr-un alt dispozitiv, cu legturi mai bune (urmnd aciuni de redirectare i proxying). n ceea ce privete securitatea, un dispozitiv poate s activeze criptarea pachetelor care pleac din reeaua local, pentru a nu permite atacuri de tipul eavesdropping. O astfel de alterare poate fi realizat de dispozitive cu suport IPSec; n urma criptrii, coninutul pachetului este actualizat complet. Motivul alterrii explicite pe partea de securitate const n nevoia existenei unui canal sigur ntre dou capete. Costul de realizare a unei conexiuni fizice dedicate fiind mare, se folosete infrastructura public a Internetului peste care se realizeaz o conexiune sigur. n general, aciunea de criptare este realizat odat cu ncapsularea pachetului, aa cum se ntmpl n reele private virtuale (VPNs Virtual Private Networks).

8.1 Moduri de alterare a pachetelor


Alterarea explicit a pachetelor presupune existena unor anumite reguli din partea administratorului pentru a satisface nevoile de conectivitate sau de securitate. Alterarea explicit se realizeaz la diverse niveluri din stiva OSI, depinznd de cerinele utilizatorilor i de dispozitivele pe care administratorul le are la dispoziie. Astfel: La nivelul 2 (Legtur de date) din stiva OSI se poate realiza tunelarea/ncasularea pachetelor folosind protocolul L2TP. Acesta permite crearea unui tunel la nivelul 2. La nivelul 3 (Reea) din stiva OSI se poate realiza tunelarea/ncapsularea pachetelor de forma IPIP, 6to4, GRE. Tot la acest nivel se poate realiza criptarea informaiilor folosind IPSec i translatarea de adrese de baz (NAT de baz), adic schimbarea unei adrese IP cu alt adres IP. La nivelul 4 (Transport) din stiva OSI una dintre principalele forme de alterare este NAT/NAPT (Network Address and Port Translation) n care o pereche <adres IP, port> este substituit unei alte perechi <adres IP, port>. Tot aici pot fi realizate diverse forme de VPN, prin tunelarea n pachete UDP sau TCP. La nivelul 7 (Aplicaie) alterarea pachetelor este, n general, realizat direct de capete, nu de dispozitivele de pe parcursul unei ci. Alterarea de aici const n tunelarea la nivelul aplicaie, exemple uzuale fiind tunelarea SSH sau tunelarea HTTP.

A l t e r a r e a p a c h e t e l o r | 267 Pe baza exemplelor de mai sus, cele mai frecvente dou forme de alterare, care vor fi detaliate n restul capitolului, sunt translatarea de adrese i tunelarea. Translatarea de adrese, denumit NAT (Network Address Translation), nseamn nlocuirea unei adrese (surs sau destinaie) cu o alt adres. Poate fi vorba doar de adresa de nivel 3 (n cazul NAT de baz) sau poate fi vorba de adresa de nivel 3 i de port (n cazul NAPT / PAT). NAT este soluia conservatoare pentru epuizarea adreselor IPv4 din Internet; soluia radical este IPv6. Cu ajutorul NAT o singur adres IP poate fi folosit de un numr mare de staii dintr-o reea local. NAT conduce la existena unor reele locale care folosesc adrese private. Aceste adrese nu sunt rutabile, nu pot comunica n Internet. Pentru a asigura conectivitatea, gateway-ul reelei locale folosete NAT i translateaz aceste adresele private ntr-una sau mai multe adrese IP publice. Gateway-ul, denumit n acest caz translator de adrese, faciliteaz accesul staiilor din reeaua local la Internet. Translatarea de adrese ofer, aadar, conectivitate, economisirea adreselor i, n acelai timp, securitate. Securitatea este asigurat chiar prin izolarea staiilor din reeaua local cu adrese private nerutabile. Dei aceasta reprezint un incovenient n conectare, reprezint i o facilitate de securitate, ntruct nu permite conexiunea implicit de la alte staii din Internet. Tunelarea se refer la construirea unui canal virtual de comunicare, denumit tunel, care folosete un alt protocol sau o alt pereche de adrese pentru realizarea conexiunii. Cele dou capete (end point-uri) nu sunt preocupate de actualizrile care au loc pe parcurs. Din punctul de vedere al capetelor, tunelul reprezint un singur hop n trafic, indiferent de numrul de rutere parcurse. Tunelarea se realizeaz att din raiuni de conectivitate (transfer de pachete IPv6 peste o infrastructur IPv4) ct i de securitate, cuplat cu funcii de criptare (transfer sigur de pachete peste o infrastructur public). Tunelarea are loc prin ncapsularea unui protocol ntr-un alt protocol de nivel cel puin egal. ncapsularea unui protocol de nivel 3 (fie acesta IPv6) poate fi realizat numai ntr-un protocol de nivel 3 (de exemplu IPv4) sau de nivel superior (UDP la nivelul 4). ncapsularea unui protocol de nivelul 3 ntr-unul de nivelul 2 este operaia obinuit de ncapsulare realizat de implementarea de stiv de reea; aceasta nu este o operaie de tunelare. n seciunile de mai jos vor fi prezentate detaliat translatarea de adrese i tunelarea, inclusiv modul de implementare i configurare a acestora. Accentul va fi pus pe implementarea i configurarea acestora n Linux.

8.2 Translatarea de adrese


La nceputul anilor '90 a devenit evident c Internet-ul nu va scala prin intermediul adreselor IPv4. Adresele IPv4, pe 32 de bii, nu puteau acoperi numrul crescnd de cereri. Au aprut dou soluii: soluia radical de transformare, anume IPv6, i soluia conservatoare de ajustare, constnd n translatarea de adrese (NAT Network Address Translation). IPv6 permite generarea unui numr impresionat de adrese, pentru care nu se estimeaz probleme de epuizare n urmtorii zeci de ani. Cu toate acesta, adoptarea IPv6 este dificil. La mai mult de 15 ani de la introducerea protocolului, acesta nc nu are o pondere semnificativ. Soluia bazat pe NAT permite folosirea n continuare a adreselor IPv4, reuind s ocoleasc problema epuizrii adreselor. Cnd se folosete NAT, staiile din cadrul reelei locale folosesc adrese private (nerutabile). La comunicarea prin Internet, gateway-ul joac rolul de translator de adrese i traduce adresele private n adrese publice. Pachetelor transmise de staiile din reeaua local le este alterat adresa surs, iar celor venite din exterior le este modificat adresa destinaie. Astfel devine posibil comunicaia ntre staiile din reeaua local i staiile din Internet. NAT constituie i o form de securizare a reelei locale. Staiile din reeaua local folosesc adrese private, nerutabile n Internet. Aceste adrese nu pot fi accesate din exterior n mod direct, dect n cazul unei configurri explicite de NAT. n acest fel, staiile din reeaua local sunt protejate de posibile atacuri din afara reelei locale.

268 | R e e l e l o c a l e d e c a l c u l a t o a r e Translatarea se poate realiza doar la nivelul adreselor de nivel 3 (n general, adrese IPv4) sau la nivelul adreselor de nivel 3 i porturilor (nivel 4). Primul caz poart numele de NAT de baz, iar al doilea de NAPT (Network Address and Port Translation). De obicei, denumirea NAT se folosete pentru cazul NAPT. Dispozitivul care realizeaz translatarea este translatorul de adrese. Spunem c staiile din reeaua local sunt staiile din spatele translatorului de adrese, sau din spatele NAT. Translatorul de adrese este, n general, gateway-ul reelei locale, ndeplinind, astfel, multiple roluri: ruter: dirijarea pachetelor din reeaua local n Internet i invers; firewall: filtrarea pachetelor care pot compromite reeaua; translator de adrese: asigurarea conectivitii staiilor din reeaua local, staii ce folosesc adrese private. Adresele folosite de staiile din reeaua local din spatele unui NAT sunt de obicei adrese private. Adresele private sunt adrese care se folosesc doar n reelele locale. Acestea nu sunt rutabile n Internet i nu pot fi folosite pentru identificarea unei staii n Internet, fiind folosite n cazuri de testare a unei reele locale (pentru uz intern) sau pentru a economisi adrese. n cea de-a doua eventualitate, gateway-ul/translatorul de adrese are o adres IP public, folosit pentru comunicarea pe Internet, i o adres IP privat pentru comunicarea, n reeaua local, cu celelalte staii cu adrese IP private. Toate pachetele din reeaua local ce necesit comunicare cu Internet-ul trec pe la gateway i sunt translatate, adresa lor surs fiind nlocuit cu adresa IP public a gateway-ului. n continuare vor fi prezentate cele dou tipuri de NAT: NAT de baz i NAPT, mpreun cu avantajele i dezavantajele tehnicilor de translatare de adres. n general, abrevierea NAT face referire la NAPT.

8.2.1 NAT de baz


NAT de baz este forma simpl a translatrii de adrese, n care se substituie doar adresa de nivel 3. Adresa IP privat este substituit cu o adres IP public. Pentru a permite funcionarea NAT de baz, gateway-ul trebuie s aib disponibile att de multe adrese IP publice cte adrese IP private sunt n reeaua local, pentru a permite conexiuni cu toate staiile. Este vorba de o mapare unu-launu ntre adresele IP private (din reeaua local) i adresele IP publice disponibile gateway-ului. Modul de funcionare a NAT de baz este prezentat mai jos. ntruct este necesar prezena unui numr considerabil de adrese IP publice, NAT de baz nu ofer avantajul economiei de adrese. Ofer, n schimb, avantajul securitii, prin ascunderea adreselor folosite de staiile din reeaua privat, n cazul n care asocierea dintre adresa IP privat i adres IP public se realizeaz dinamic. ntruct nu reduce folosirea adreselor, NAT de baz are o rspndire redus, majoritatea implementrilor de NAT folosind NAPT. Cu toate acestea, NAT de baz are avantajul simplitii i este util pentru nelegerea conceptului de translatare de adrese. Pentru realizarea translatrii, gateway-ul menine o tabel de translatare, gestionat de administrator, care conine regulile de translatare. Tabela de translatarea poate conine, la un moment dat, intrri precum cele de mai jos: Tip Altereaz Sursa Altereaz Sursa Altereaz Destinaia Altereaz Destinaia Iniial 10.38.0.2 10.38.0.3 141.85.37.252 141.85.37.253 Dup NAT 141.85.37.252 141.85.37.253 10.38.0.2 10.38.0.3

n figurile urmtoare s-au folosit 2 staii (A i B) care comunic printr-un ruter cu o staie C din Internet. Intrrile din tabel conduc la urmtorul comportament:

A l t e r a r e a p a c h e t e l o r | 269 n momentul n care, pe interfaa eth0, gateway-ul primete un pachet cu adresa surs 10.38.0.2, acesta translateaz adresa surs la adresa 141.85.37.252; adresa destinaie nu este modificat (vezi Figura 8-1); IP Dest IP Surs B 10.38.0.2 1 IP Dest C
R1

IP Surs 141.85.37.252 2

Figura 8-1 NAT de baz pentru staia A (alterare surs) La fel, n momentul n care, pe interfaa eth0, gateway-ul primete un pachet cu adresa surs 10.38.0.3, acesta translateaz adresa surs la adresa 141.85.37.253 i apoi transmite pachetul mai departe pe interfaa eth1; adresa destinaie nu este modificat (vezi Figura 8-2);

A IP Dest C
R1

IP Surs 141.85.37.253 4

IP Dest IP Surs C 10.38.0.3 3

Figura 8-2 NAT de baz pentru staia B (alterare surs) n momentul n care, pe interfaa eth1, gateway-ul primete un pachet cu adresa destinaie 141.85.37.252, acesta translateaz adresa destinaie n 10.38.0.2; adresa surs nu este modificat (vezi Figura 8-3);

270 | R e e l e l o c a l e d e c a l c u l a t o a r e

IP Dest 10.38.0.2

IP Surs C 6 IP Dest 141.85.37.252


R1

IP Surs C 5

Figura 8-3 NAT de baz pentru staia A (alterare destinaie) n momentul n care, pe interfaa eth1, gateway-ul primete un pachet cu adresa destinaie 141.85.37.253, acesta translateaz adresa destinaie n 10.38.0.3; adresa surs nu este modificat (vezi Figura 8-4);

A IP Dest 141.85.37.253
R1

IP Surs C 7

IP Dest 10.38.0.3

IP Surs C 8

Figura 8-4 NAT de baz pentru staia B (alterare destinaie) Intrrile din tabela de translatare pot fi specificate static, de administrator, sau pot fi construite dinamic. n cazul construirii dinamice, o conexiune din interior ctre exterior, de la staia A cu o adres privat dat (fie aceasta 10.38.0.3), coduce la selectarea unei adrese publice din pool-ul de adrese publice (fie aceast adres 141.85.37.253). Se creeaz o intrare cu perechea <10.38.0.3, 141.85.37.253> i se urmrete comportamentul descris mai sus. Intrarea dureaz ct timp exist o conexiune activ de la staia A ctre exterior.

8.2.2 NAPT
NAPT (Network Address and Port Translation), denumit i PAT (Port Address Translation) este forma principal de NAT din Internet i este, de obicei, folosit interschimbabil cu termenul NAT. Dup cum reiese i din denumire, NAPT lucreaz cu porturi, adic adrese de nivel 4. Altfel spus, dac NAT de baz altereaz doar adresele de nivelul 3, PAT altereaz adresele de nivelul 3 i porturile. Avantajul esenial al NAPT const n posibilitatea economisirii adreselor IP publice. Astfel, un gateway/translator de adrese va folosi o singur adres IP public pentru a asigura conectivitatea tuturor staiilor din reeaua local; aceste staii vor utiliza, ca de obicei n reelele cu NAT, adrese IP private.

A l t e r a r e a p a c h e t e l o r | 271 Un gateway care folosete NAPT traduce adresa surs i portul surs ale pachetelor ce vin din reeaua local i pleac n Internet, i traduce adresa destinaie i portul destinaie al pachetelor ce sosesc din Internet ctre reeaua local. Tabela de translatare reflect acest mod de funcionare. Dac, n cazul NAT de baz, tabela de translatare coninea doar adresa IP privat i cea public, acum se precizeaz i portul surs i portul destinaie. O tabel de translatare NAPT poate avea urmtorul format: Tip Iniial Dup NAT Altereaz Sursa 10.38.0.2:44444 141.85.37.252:12345 Altereaz Sursa 10.38.0.3:55555 141.85.37.253:54321 Altereaz Destinaia 141.85.37.252:12345 10.38.0.2:44444 Altereaz Destinaia 141.85.37.253:54321 10.38.0.3:55555 n figurile urmtoare s-au folosit 2 staii (A i B) care comunic printr-un ruter cu o staie C din Internet. Intrrile din tabel conduc la urmtorul comportament: n momentul n care, pe interfaa eth0, gateway-ul primete un pachet cu adresa/portul surs 10.38.0.2:44444, acesta translateaz adresa surs la adresa 141.85.37.252:12345 i l trimite mai departe pe interfaa eth1; adresa destinaie nu este modificat (vezi Figura 8-5); A IP Dest IP / Port Surs B 10.38.0.2:44444 1 IP Dest C
R1

IP/Port Surs 141.85.37.252:12345 2

Figura 8-5 NAPT pentru staia A (alterare surs) n momentul n care, pe interfaa eth0, gateway-ul primete un pachet cu adresa/portul surs 10.38.0.3:55555, acesta translateaz adresa surs la adresa 141.85.37.253:54321 i l trimite mai departe pe interfaa eth1; adresa destinaie nu este modificat (vezi Figura 8-6); A IP Dest C
R1

IP/Port Surs 141.85.37.253:54321 4

IP Dest IP/Port Surs C 10.38.0.3:5555 5 3

Figura 8-6 NAPT pentru staia B (alterare surs)

272 | R e e l e l o c a l e d e c a l c u l a t o a r e n momentul n care, pe interfaa eth1, gateway-ul primete un pachet cu adresa destinaie 141.85.37.252:12345, acesta translateaz adresa destinaie n 10.38.0.2:44444 i l trimite mai departe pe interfaa eth0; adresa surs nu este modificat (vezi Figura 8-7); A IP/Port Dest 10.38.0.2:44444 IP Surs C 6

R1

IP/Port Dest 141.85.37.252:12345

IP Surs C 5

Figura 8-7 NAPT pentru staia A (alterare destinaie) n momentul n care, pe interfaa eth1, gateway-ul primete un pachet cu adresa destinaie 141.85.37.253:54321, acesta translateaz adresa destinaie n 10.38.0.3:55555 i l trimite mai departe pe interfaa eth0; adresa surs nu este modificat (vezi Figura 8-8). A IP/Port Dest 141.85.37.253:54321
R1

IP Surs C 7

IP/Port Dest 10.38.0.3:55555

IP Surs C 8

Figura 8-8 NAPT pentru staia B (alterare destinaie) Intrrile din tabela NAT sunt adugate fie direct de administrator, fie indirect, pe baza unor reguli specificate de acesta. Astfel, dac se dorete ca o staie din interiorul reelei locale s poate accesa Internet-ul, se activeaz translatarea adresei surs (ip nat inside source pe Cisco sau SNAT pe Linux). Aceast activare propune modificarea adresei surs private i portului surs cu adres public pus la dispoziie de gateway i un port dat. Acel port este ales de gateway n momentul primirii unui pachet de la o staie din reeaua local; n acel moment (i nu n momentul adugrii regulii de ctre administrator!) se adug o intrare n tabela NAT. Primirea unui pachet de la alt staie duce la generarea unui alt port i, astfel, la adugarea unui noi intrri. Primirea unui pachet de la aceeai staie, dar ctre alt destinaie, duce de asemenea la generarea unei noi intrri. n acest mod, pe baza unei singure reguli de activare a inside nat/SNAT de administrator, se pot genera foarte multe intrri n tabela NAT, conform cu numrul de conexiuni active din reeaua local. Pachetele de

A l t e r a r e a p a c h e t e l o r | 273 rspuns din Internet vor parcurge intrarea creat i vor fi dirijate ctre staia ce a expediat mesajul. Intrrile sunt eliminate n momentul ncheierii conexiunii, n cazul unui protocol de forma TCP, sau dup un timeout, n cazul unui protocol de forma UDP sau ICMP. Activarea inside NAT/SNAT nseamn c o staie din interior poate folosi comanda ping pentru a testa staii din Internet. Dac se dorete ca o staie din exterior s acceseze un serviciu din interior, atunci trebuie ca administratorul s adauge explicit o regul. Aceast mapare explicit, static, va permite pachetelor ce ajung ctre un port al gateway-ului s fie redirectate ctre un port al unei staii din reeaua local. Acest tip de regul poart i numele de regul de port forwarding (redirectare de port). Intrrile sunt intrri statice i nu expir. n cadrul regulii administratorul precizeaz toate elementele necesare: portul dechis pe gateway, i adresa i portul staiei din reeaua local peste care este mapat acel port. Dup ce administratorul creeaz regula, pachetele ce ajung din exterior pe portul dat sunt redirectate ctre staia din reeaua local, pe portul indicat de aceasta. n mod informal, se spune c gateaway-ul deschide un port pentru staia A din reeaua local. Tehnica de port forwarding este foarte util n reelele Peer-to-Peer (de tip BitTorrent), pentru a permite peer-ilor din exterior accesarea unei staii din reeaua local. Intrrile din tabela NAT nu in cont doar de adresa surs, portul surs, adresa destinaie i portul destinaie. Pentru a face diferena ntre pachetele UDP i TCP, acestea menin i informaii legate de protocol. Va exista, intern, o regul separat pentru o comunicaie UDP i alta pentru comunicaia TCP. n cazul ICMP, neexistnd porturi, trebuie s existe un mecanism diferit de a identifica regulile. De exemplu, n cazul n care dou staii diferite din reeaua local trimit pachete ICMP echo request ctre aceeai staie din exterior, este necesar un mecanism de identificare a acestor staii n momentul primirii pachetului de rspuns de tip ICMP echo reply. Acesta vine cu adresa surs - adresa staiei din exterior, iar cu adresa destinaie - adresa gateway-ului. n momentul primirii pachetului, regula de NAT trebuie s tie cui s trimit pachetul i s nlocuiasc adresa destinaie. Pentru aceasta, regula respectiv menine i un identificator al pachetului ICMP (denumit ICMP Query ID). Acesta este echivalentul portului din TCP i UDP i este folosit pentru a identifica regula ce va fi folosit.

8.2.3 Avantajele i dezavantajele NAT


Principalul avantaj al tehnicilor de translatare a adreselor const n economisirea adreselor IPv4. Forma cea mai folosit de NAT (NAPT) permite folosirea unei singure adrese IPv4 publice (adresa gateway-ului/translatorului de NAT) pentru a asigura conectarea unui numr mare de staii din reeaua local. Staiile din reeaua local vor folosi, pentru aceasta, adrese private adrese nerutabile care nu conduc la epuizarea stocului de adrese IPv4. Dup cum am discutat anterior, izolarea staiilor locale folosind adrese IP private nseamn c, n absena unor reguli explicite de port forwarding, acestea nu pot fi accesate din exterior. Aceasta poate fi vzut ca un dezavantaj al lipsei de conectivitate, dar i un avantaj de securitate. Staiile din reeaua local vor fi, n acest caz, mai puin vulnerabile la atacuri survenite din exterior. Izolarea staiilor folosind adrese IP reprezint o problem de conectivitate. Astfel, staiile din reeaua local nu vor fi accesibile din exterior, un lucru problematic mai ales n lumea protocoalelor Peer-to-Peer, n care fiecare participant ntr-o reea Peer-to-Peer ofer servicii celorlali participani. Pentru aceasta, o soluie simpl - dar nescalabil - const n redirectarea de porturi; acest proces necesit ns acces ntr-o form sau alta la gateway, care, la rndul su, dispune de un numr limitat de porturi. O alt soluie const n folosirea tehnicilor de traversare NAT, prezentate n seciunea urmtoare. Totui, soluia stabil la aceast problem const n migrarea pe IPv6, astfel nct toate staiile s poat fi conectate. Un alt dezavantaj al NAT ine de performan. Orice pachet de comunicare n reea care trece prin gateway va parcurge tabela NAT pentru a realizarea translatarea. n cazul n care exist un numr mare de conexiuni iniiate de staiile din reeaua local, vor rezulta acelai numr de intrri n tabela NAT a gateway-ului. Pe msur ce dimensiunea acestei tabele crete, cutarea n tabel va dura mai mult timp. Aceast parcurgere trebuie realizat pentru fiecare pachet. n cazul unui numr

274 | R e e l e l o c a l e d e c a l c u l a t o a r e mare de pachete ce trece prin gateway, pe lng durata operaiei de rutare, va dura foarte mult i operaia de translatare de adrese. Evident, n cazuri extreme, se poate ajunge la atingerea limitei de intrri n tabela de translatare. Aceste probleme de performan pot fi evitate complet numai prin folosirea IPv6.

8.2.4 Traversarea NAT


Prin intermediul NAT staiile din reeaua local pot accesa staiile din exterior. Dac este necesar ca staiile din exterior s acceseze staiile din reeaua local, atunci trebuie configurat corespunztor gateway-ul folosind port forwarding. Cerinele sunt uzuale n reele Peer-to-Peer, unde partenerii trebuie s fie conectabili, aa cum se ntmpl n cazul BitTorrent sau n cazul Skype. Totui, configurarea folosind port forwarding nseamn operaii pe gateway i, n general, impune i configurri pe client. De exemplu, dac se realizeaz maparea unui port pe gateway cu un port al staiei, clientul BitTorrent trebuie s ruleze pe acel port al staiei o configuraie suplimentar pe partea de client. Soluia radical const n folosirea IPv6, care rezolv definitiv problemele de conectivitate prin eliminarea adreselor private IPv4 folosite de staiile din reeaua local. Soluia conservatoare const n folosirea tehnicilor de traversare NAT. Aceste tehnici in cont de caracteristicile implementrii de NAT i vor fi detaliate n continuare.

Tipuri de NAT din perspectiva conectivitii


Tipurile de NAT din Internet, aa cum sunt specificate n RFC 3489 [6], in cont de modul de conectare la staiile din cadrul reelei locale. Fiecare tip de NAT ofer particulariti de funcionare a tehnicilor de traversare NAT. Aceste tipuri de NAT sunt date, n primul rnd, de implementarea translatorului. Cele patru tipuri de NAT incluse n RF3489 sunt Full Cone, Restricted Cone, Port-Restricted Cone i Symmetric. Aceste tipuri se refer la comportamentul datagramelor UDP prin translatorul de NAT. Full Cone este tipul de NAT n care o adres intern (de forma adres IP i port) este mapat la o adres extern (adres de gateway) pentru toate cererile de la acea adres intern. Staiile din exterior pot comunica cu staiile din interior folosind adresa extern (adresa gateway-ului). Restricted Cone este similar cu Full Cone, dar o staie din exterior (fie aceasta staia X) poate trimite un mesaj ctre o staie din interior folosind adresa extern doar dac staia din interior a trimis anterior un mesaj ctre staia X. Port Restricted Cone este similar cu Restricted Cone, dar, n acest caz, staia X poate trimite un mesaj ctre staia din interior doar dac staia din interior a trimis nainte un mesaj ctre staia X pe portul pe care aceasta l folosete ca port surs pentru a trimite noul mesaj. n fine, n cazul Symmetric, cererile trimise de la o adres intern sunt mapate ctre o adres extern, dar, n cazul n care de la aceeai adres intern se trimit cereri ctre alt staie din Internet, maparea se schimb. Aceste clasificri sunt considerate depite n ziua de azi, ntruct multe implementri folosesc soluii hibride. La un moment dat, o implementare poate folosi att Symmetric NAT ct i Full Cone NAT, pentru a obine comportamentul dorit n soluiile de traversare NAT. O estimare a proporiilor peer-ilor n reele Peer-to-Peer, n funcie de tipul de NAT n spatele cruia se regsesc, este discutat n [14]: 12.5% nu se gsesc n spatele unui NAT 12.5% se gsesc n spatele unui Full Cone NAT 5% se gsesc n spatele unui Restricted Cone NAT 40% se gsesc n spatele unui Port Restricted Cone NAT 16% se gsesc n spatele unui Symmetric NAT 14% se gsesc n spatele unui dispozitiv n care UDP-ul este blocat.

A l t e r a r e a p a c h e t e l o r | 275 ntruct Symmetric NAT nu poate fi traversat de soluiile obinuite de traversare NAT, rezult c circa 30% dintre peerii unei reele Peer-to-Peer nu pot fi accesai prin tehnici de traversare NAT.

Tehnici de traversare NAT


Aa cum a fost menionat anterior, principalul beneficiar al tehnicilor de traversare NAT l constituie reelele Peer-to-Peer, precum swarm-urile BitTorrent. ntr-un sistem Peer-to-Peer fiecare peer (partener) din reea este simultan client i server. Astfel, un peer ofer servicii celorlali peeri i trebuie s fie conectabil. Tehnicile de traversare NAT sunt descrise detaliat n RFC 5128 [7]. Cea mai simpl, dar i cea mai puin eficient, este tehnica de relaying (redirectare), n care comunicaia trece prin intermediul unui server dedicat, dup nregistrarea n prealabil a peer-ilor. Aceasta nseamn c se pierde de fapt caracteristica de orizontalitate a Peer-to-Peer n arhitectura sistemului i c viteza de transfer poate fi afectat de ncrcarea serverului de relaying. O alt tehnic este cea de inversare a conexiunii. Aceast tehnic se aplic doar pe acele perechi de peeri n care unul dintre ei nu este situat n spatele NAT. Peer-ul din spatele NAT va iniia o conexiune suplimentar ctre peer-ul care nu se gsete n spatele NAT. Pe aceast conexiune suplimentar, peer-ul care nu se gsete n spatele NAT poate realiza conexiuni tunelate ctre peer-ul din spatele NAT. Limitarea acestei tehnici ine de numrul relativ redus (aproximativ 12.5%) de peeri care nu se gsesc n spatele unui NAT. Unele dintre tehnicile cele mai folosite sunt tehnicile de UDP hole punching. Acestea pot fi folosite doar pe implementri de NAT non-simetrice (adic Full Cone, Restricted Cone i Port Restricted Cone). Aceste tipuri de NAT se mai numesc EIM-NAT (Endpoint-Independent Mapping NAT). n linii mari, aceast tehnic se bazeaz pe un timeout al unei reguli cu UDP n translatorul de NAT. Dac unul dintre peerii din spatele NAT-ului trimite mesaje UDP n exterior, de pe un port dat, atunci acel port va fi deschis pentru conexiuni din exterior. Pentru pornirea comunicaiei este nevoie de un server iniiator care s permit descoperirea i nregistrarea; rolul su poate fi asigurat, ulterior, de oricare dintre peerii care acum sunt conectabili. O tehnic similar este TCP hole punching. Aceast tehnic ine cont de comportamentul handshake-ului iniial al TCP care permite realizarea unei conexiuni ntre cei doi peeri din spatele NAT. Pentru peerii care nu implementeaz EIM-NAT pot fi folosite tehnici de predicie a numrului de port UDP sau TCP, ntruct n cazul acestora o conexiune nou, de la aceeai adres intern ctre o destinaie diferit, conduce la folosirea unei adrese externe noi, care trebuie deci s fie determinat. Deoarece de obicei porturile sunt alese succesiv, se poate ncerca folosirea urmtorului port (N+1). Datorit complexitii acestei tehnici i a faptului c nu funcioneaz n mai multe niveluri de NAT, RFC 5128 menioneaz c ansele de funcionare ale acestei tehnici sunt mici [7].

Implementri de traversare NAT


Implementrile cele mai rspndite de traversare NAT sunt UPnP [5], STUN [6] i ICE [10]. UPnP (Universal Plug and Play) reprezint un set de protocoale folosite pentru asigurarea conectivitii ntre dispozitivele din Internet. UPnP este dezvoltat i susinut de forumul UPnP, un consoriu format din vendori implicai n networking i dispozitive pentru utilizatori obinuii. Arhitectura UPnP se bazeaz pe dispozitive dedicate, denumite puncte de control (control points), care menin informaii despre dispozitivele din sistem. IGD Protocol (Internet Gateway Device) este o form de traversare NAT bazat pe UPnP. STUN (Session Traversal Utilities for NAT) este un protocol client-server. Serverul STUN rezid n Internet, are adres public, n vreme ce clientul NAT rezid n spatele unui NAT. Serverul STUN are rolul unui relay/rendez-vous/introduction server. n funcie de tipurile de NAT, acesta i stabilete rolul prin care faciliteaz conectivitatea peer-ilor. STUN nu este un protocol de traversare NAT, ci este un instrument folosit ca parte a unei soluii mai ample. STUN este folosit, printre altele, de protocolul ICE.

276 | R e e l e l o c a l e d e c a l c u l a t o a r e ICE (Interactive Connectivity Establishment) este un protocol pentru traversarea NAT. Pentru a asigura conectivitatea ntre doi peeri din spatele NAT, ICE ncearc sistematic mai multe perechi de adrese pn cnd ajunge la unele care sunt conectabile; acest lucru este realizat prin schimbarea porturilor din cadrul adreselor celor doi peeri.

8.3 Implementarea translatrii de adrese


n continuare vor fi prezentate implementrile NAT pe sisteme Linux, pe dispozitive Cisco i utilitare i comenzile folosite pentru configurarea lor. Dei comenzile i argumentele sunt diferite, modul de implementare i configurare respect noiunile teoretice prezentate n seciunile de mai sus.

8.3.1 Implementarea NAT pe Linux


n Linux, translatarea adreselor se realizeaz folosind utilitarul iptables. Utilitarul iptables este folosit pentru NAT i pentru filtrarea pachetelor (firewall software). Dup cum i spune i numele, utilitarul dispune de tabele asociate anumitor scopuri: tabela nat este folosit pentru NAT; tabela filter este folosit pentru filtrarea pachetelor; tabela mangle este o tabel folosit pentru alterarea avansat a pachetelor. Fiecare tabel conine un set de lanuri dedicate unui anumit tip de aciune. n fiecare lan pot fi adugate reguli specifice care definesc modul n care vor fi prelucrate diversele pachete. Pentru translatarea de adrese se folosete tabela nat. n aceast tabel exist trei lanuri predefinite: PREROUTING - modific pachetul imediat ce acesta intr n router, nainte de a fi rutat, OUTPUT - modific pachetele generate local nainte ca acestea s intre n procesul de rutare, i POSTROUTING - modific pachetele ce urmeaz s plece din router, dup ce acestea au fost rutate. intele valide sunt ACCEPT, DROP, QUEUE, REJECT, LOG, SNAT, DNAT, MASQUARADE, REDIRECT.

Aciuni n cadrul tabelei nat


Aciunile posibile n cadrul tabelei NAT sunt SNAT, DNAT, MASQUARADE, REDIRECT. SNAT se folosete pentru a indica o translatare de adrese de tip PAT pe adresa surs. Adresa surs a pachetului va fi modificat la una din intervalul specificat prin opiunea --to-source. Cu aceeai opiune se poate specifica i intervalul n care se va alege portul surs cnd se face translatarea de adrese. Aceast int este valid numai n lanul POSTROUTING (i lanurile apelate din acest lan). DNAT se folosete pentru o translatare de adrese de tip PAT pe adresa destinaie. Adresa destinaie a pachetului va fi modificat la una din intervalul specificat prin opiunea --todestination. Aceast int este valid numai n lanurile PREROUTING i OUTPUT (i lanurile apelate din acest lan). MASQUERADE este echivalent cu SNAT. Adresa surs va fi nlocuit cu adresa setat a interfeei pe care va fi trimis pachetul. Trebuie folosit n loc de SNAT dac adresa la care se face translatarea este setat dinamic (prin DHCP de exemplu). REDIRECT se folosete pentru a redirecta pachetul, local, pe portul specificat de opiunea -to-port. Aceast int este valid numai n lanurile PREROUTING i OUTPUT.

Exemple de utilizare a tabelei nat


Pentru a ilustra mecanismele prezentate mai sus se pot urmri regulile de mai jos:
iptables -t nat -A POSTROUTING -o eth1 s 192.168.0.0/24 -j SNAT --to-source 1.2.3.4 iptables -t nat -A PREROUTING i eth0 -d 14.15.16.17 -j DNAT --to-destination 192.168.100.1

Prima regul poate fi interpretat n felul urmtor: toate pachetele ce vin cu adresa IP surs din reeaua 192.168.0.0/24 vor fi trimise pe interfaa eth1 cu adresa IP surs 1.2.3.4, dup ce acestea

A l t e r a r e a p a c h e t e l o r | 277 vor fi rutate. Cea de-a doua regul va schimba adresa IP destinaie (14.15.16.17) a pachetelor ce intr pe interfaa eth0 cu adresa IP 192.168.100.1, nainte ca acestea s fie rutate. n exemplul de mai jos a fost prezentat configurarea iptables pentru translatarea de adrese pe sistemul 141.85.37.1 din reeaua 192.168.1.0/24. Aceast main este doar router, iar serverul de web, serverul de e-mail i serverul de DNS ruleaz pe servere diferite, n reeaua intern. Routerul are conectat interfaa eth0 la reeaua intern i interfaa eth1 la Internet.
iptables iptables 192.168.1.2 iptables 192.168.1.3 iptables 192.168.1.4 iptables 192.168.1.4 -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 141.85.37.1 -t nat -A PREROUTING -i eth1 -p tcp --destination-port 80 -j DNAT --to-destination -t nat -A PREROUTING -i eth1 -p tcp --destination-port 25 -j DNAT --to-destination -t nat -A PREROUTING -i eth1 -p tcp --destination-port 53 -j DNAT --to-destination -t nat -A PREROUTING -i eth1 -p udp --destination-port 53 -j DNAT --to-destination

Prima linie din exemplu este folosit pentru ca staiile din reea s poat accesa Internetul. La trecerea pachetelor prin router, adresa surs a staiilor (adres privat) va fi nlocuit cu adresa routerului (adres public). Urmtoarele linii vor trimite traficul de web, e-mail i DNS ctre serverele din interior. n acest context, din exterior, aparent routerul este i server de web, e-mail i DNS. Ce se ntmpl dac se dorete ca serviciile din reeaua intern, care sunt fcute publice, s fie vzute din exterior ca rulnd pe porturi diferite fa de cele standard? Metoda ce poate fi aplicat aici se numete port forwarding. Aceast metod permite unei staii (firewall) s trimit cererile ce i sunt adresate ctre o alt staie ce va procesa aceste cereri. Cea mai folosit ntrebuinare a acestei metode apare cnd serverele ruleaz pe staii aflate n reeaua intern (dup firewall). Cu alte cuvinte, se presupune existena unui gateway cu dou interfee, eth0 fiind conectat la reeaua intern i eth1 la Internet. Fie 141.85.37.1 adresa IP public a interfeei eth1 i 192.168.0.2 adresa IP a staiei pe care ruleaz un serviciu web, pe portul implicit 80, staie ce va putea fi accesat din exterior. n exemplul de mai jos se va face redirectarea conexiunilor ce vin pe 141.85.37.1:8888 (<IP_extern:port>) ctre 192.168.0.2:80 (IP_intern:port).
iptables -t nat -A PREROUTING -i eth1 -p tcp d 141.85.37.1 --dport 8888 j DNAT -todestination 192.168.0.2:80

8.3.2 Implementarea NAT pe Cisco


Datorita modificrii adreselor IP n pachetele supuse procesului de NAT, diferite adrese sunt denumite n funcie de originea lor i de punctul de referin: Inside local: adrese private, n interiorul reelei locale; Inside global: adresa IP public ce este ataat traficului unei staii din reeaua local cnd iese n Internet prin ruterul NAT; aceasta poate fi chiar adresa public de pe interfaa ruterului. Outside global: adresa IP public asignat unei staii din Internet; aceast adres nu se modific n procesul de NAT, deoarece trebuie conservat pn cnd pachetele ajung la destinaie. Outside local: de cele mai multe ori egal cu outside global, este adresa local a unei staii din Internet; nu are relevan n cazul n care NAT se aplic doar adreselor surs.

Configurarea NAT static


Realizarea de NAT static presupune o mapare 1 la 1 ntre o adres privat i una public. Sintaxa comenzii este urmtoarea:
R2(config)#ip nat inside source static 192.168.1.1 89.221.57.81

278 | R e e l e l o c a l e d e c a l c u l a t o a r e

192.168.1.1/24

192.168.1.2/24

89.221.57.81/30

89.221.57.82/30

Surs: 192.168.1.1:27081 Destinaie: 89.221.57.83:80

Surs: 89.221.57.81:27081 Destinaie: Figura 8-9: NAT static 89.221.57.83:80

NAT

Web Server

Comanda introduce o mapare permanent ntre adresa local 192.168.1.1 i adresa public 89.221.57.81. Pentru a defini i direcia n care se realizeaz translatarea adreselor, trebuie specificate interfeele inside (spre reeaua local) si cele de outside (spre Internet):
R2(config)#int fast1/0 R2(config-if)#ip nat inside R2(config-if)#int fast0/0 R2(config-if)#ip nat outside

Comanda de verificare show ip nat translations arat asocierea static definit:


R2#sh ip nat trans Pro Inside global --- 89.221.57.81 Inside local 192.168.1.1 Outside local --Outside global ---

Configurarea NAT dinamic


Realizarea de NAT dinamic ofer un surplus de flexibilitate, n sensul c permite definirea adreselor mai multor staii din reeaua local, ce vor fi translatate, precum i definirea unei mulimi de adrese publice n care acestea vor putea fi translatate. Drept exemplu de configurare, se va considera c toate adresele din reeaua local 192.168.100.0/24 vor putea fi translatate la adresele publice din intervalul 200.100.99.226 200.100.99.240. Pentru definirea listei de adrese private ce vor fi supuse procesului de NAT, se creeaz un ACL ce trebuie s permit doar adresele dorite:
R2(config)#access-list 1 permit 192.168.100.0 0.0.0.255

Mulimea adreselor publice se definete prin crearea unui pool de adrese ce cuprinde prima i ultima adres:
R2(config)#ip nat pool MYPOOL 200.100.99.226 200.100.99.240 netmask 255.255.255.224

n final, se configureaz procesul NAT s opereze cu ACL-ul si pool-ul definite anterior i se marcheaz interfeele de inside i de outside:
R2(config)#ip nat inside source list 1 pool MYPOOL R2(config)#int fast1/0 R2(config-if)#ip nat inside R2(config-if)#int fast0/0 R2(config-if)#ip nat outside

Configurare NAPT
Configurarea NAPT este similar configurrii de NAT dinamic i poate fi realizat n dou moduri: folosind doar adresa public de pe interfaa conectat la Internet; folosind un pool de adrese publice. Pentru ambele cazuri, comanda primete argumentul suplimentar overload. Exemplul de mai jos folosete adresa IP public de pe interfa:
R2(config)#ip nat inside source list 1 interface FastEthernet 0/0 overload

A l t e r a r e a p a c h e t e l o r | 279 Exemplul urmtor folosete un pool predefinit de adrese publice:


R2(config)#ip nat inside source list 1 pool MYPOOL overload

n cazul n care se opteaz pentru folosirea unui pool de adrese publice, adresele suplimentare vor fi utilizate doar pentru cazurile n care apar conflicte cu privire la numerele de port n momentul stabilirii de noi conexiuni.

Port forwarding
Tehnica de port forwarding permite accesarea din exterior a unui port de pe o staie dintr-o reea privat aflat n spatele unui ruter care ruleaz NAT. Pentru a putea realiza acest lucru, ruterul NAT trebuie configurat astfel nct s direcioneze toate conexiunile iniiate pe un anumit port al su de pe interfaa spre Internet spre un alt port al unei staii din reeaua intern. Spre exemplu, o staie cu adresa 192.168.12.13 care ruleaz un server web ntr-o reea local va putea fi accesat de ctre ceilali membri ai reelei prin adresa sa privat i va rspunde la conexiunile iniiate pe portul TCP 80. Deoarece staia se afl n reeaua privat 192.168.0.0/16, ea nu va putea fi accesat din exterior. n consecin, ruterul NAT poate fi configurat astfel nct s redirecteze toate conexiunile externe iniiate pe portul su 80 al interfeei publice spre portul 80 al staiei 192.168.12.13, fcnd astfel portul din interiorul reelei accesibil din Internet. Nu exist restricii cu privire la alegerea porturilor ce vor fi forwardate. Exemplul de mai jos reprezint modul de configurare al scenariului anterior. Pentru acest exemplu, portul TCP 8080 de pe ruter va fi forwardat i va trimite conexiunile spre portul 80 al staiei 192.168.12.13 din LAN:
R2(config)# ip nat inside source static tcp 192.168.12.13 80 interface FastEthernet0/0 8080

Observaie: n general, la configurarea NAT, atunci cnd exist opiunea de a specifica o adres public sau interfaa configurat cu acea adres, se prefer utilizarea variantei bazate pe numele interfeei, pentru a nu crea dificulti n cazul n care adresa IP public oferit de ctre ISP se schimb periodic. Specificnd o interfa i nu o anumit adres IP, ruterul va folosi de fiecare dat adresa IP existent la momentul respectiv, indiferent de valoarea ei.

8.4 Tunelarea
Conceptul de tunelare se refer la ncapsularea unui protocol n interiorul altui protocol, alternd ordinea normal a stivei OSI. Un protocol aflat la un anumit nivel poate ncapsula un alt protocol de la acelai nivel; de asemenea, un protocol superior poate s ncapsuleze unul inferior. Pornind de la aceast noiune, exist multe tipuri de protocoale de tunelare, oferind facilitti diferite. Metoda prin care se realizeaz tunelurile const n adugarea unui antet suplimentar (cel al protocolului de tunelare) n pachetul original. Modificarea trebuie s fie transparent pentru nodurile intermediare (adic echipamentele de interconectare nu trebuie s fie contiente de existena unui tunel), dar trebuie s fie cunoscut de ambele capete ale tunelului. Motivul principal pentru care se creeaz tuneluri const n rezolvarea unor probleme de conectivitate, n situaii n care dou regiuni dintr-o reea nu pot comunica datorit unor limitri ale echipamentelor de interconectare (motivele pot fi tehnice sau organizatorice, politice). Conectivitatea dorit se realizeaz prin crearea unei legturi virtuale, configurate cu protocolul dorit, peste o serie de legturi fizice ce ruleaz protocoalele admise de limitri. Al doilea motiv const n raiuni de securitate. Unele tipuri de tuneluri pot implementa criptarea traficului, ascunznd astfel coninutul traficului de nodurile intermediare i datele fiind vizibile doar la captul tunelului. Un alt motiv este nevoia de a fora traficul de a trece prin anumite noduri, fiind aplicat o politic de trafic egineering. Protocoalele de tunelare pot:

280 | R e e l e l o c a l e d e c a l c u l a t o a r e ncapsula acelasi protocol (ex. tuneluri ipip, ipv6ipv6); ncapsula un protocol ce se gsete la acelai nivel (ex. tuneluri IPv6-over-IPv4, PPPoE); ncapsula un protocol ce gsete la un nivel inferior (IP over SSL).

8.4.1 Modul general de tunelare a pachetelor


Dei tunelurile pot fi diferite, implimentrile urmresc un model comun. n primul rnd, trebuie s existe o conectivitate (la un anumit nivel, n funcie de protocolul folosit) ntre nodurile ce reprezint capetele tunelelor. Pachetele protocolului de ncapsulare a tunelului trebuie s poat ajunge ntre cele dou noduri. Capetele tunelului trebuie s fie contiente unul de cellalt i s fie configurate cu acelai tip de tunel. Fiecare dintre capete va avea o interfa virtual de reea ce va reprezenta tunelul. Sistemele vor trebui s tie s trimit traficul dorit prin interfeele virtuale ale tunelului, i nu prin interfeele normale. Datele ce trebuie trimise prin tunel sunt mai nti ncapsulate n protocolul tunelat (antetul interior) atunci cnd sunt rutate spre interfeele virtuale. nainte ca ele s fie trimise pe interfeele fizice, se va face dubla ncapsulare, cu protocolul de transfer al interfeei.

8.4.2 Tunel ipip


Unul dinte cele mai simple tipuri de tuneluri este tunelul ipip. Este un tunel care se formeaz peste protocolul IPv4 la nivelul 3. Protocolul este descris n RFC 2003. Pachetul iniial este unul IP (cu un antet clasic) ce conine un payload (tipul este dat de cmpul Protocol din antet). ncapsularea pentru tunel se face cu un alt antet IP ce are Protocolul de tip IPIP. Acest tip de tunel nu face nici un fel de criptare i nu poate transporta dect pachete IP unicast. Un exemplu de utilizare a tunelului ipip este conectarea a dou reele cu adrese IP private peste o reea de adrese publice.

8.4.3 Tunel GRE


GRE (Generic Routing Encapsulation) este un protocol propus iniial de Cisco ce vine s rezolve limitarea tunelelor ipip. Peste un tunel GRE se pot trimite inclusiv pachete multicast, ce nu puteau fi folosite n tunelurile ipip. Un pachet (al unui protocol de nivel Reea) ce este trimis printr-un tunel GRE este mai nti ncapsulat cu un antet propriu GRE (tip protocol 47); acesta este, la rndul su, ncapsulat ntr-un antet al altui (posibil acelai) protocol de nivel Reea. Una dintre principalele faciliti oferite de GRE (de unde i ia i numele) este faptul c permite tranzitul pachetelor trimise de protocoalele de rutare (ce sunt, de obicei, multicast) peste tunel. De asemenea, existena GRE i mai ales modularitatea sa au permis crearea unui mecanism de migrare de la IPv4 la IPv6.

8.4.4 Tunelare IPv6/IPv4


Probabil cea mai rspndit folosire a tunelelor nesecurizate este tunelarea IPv6 peste IPv4. Aceast tehnic presupune ncapsularea pachetelor IPv6 cu antete IPv4. Adresele din antetul Ipv4 sunt de fapt adresele surs i destinaie ale ruterelor de border care sunt capetele tunelului. Se va studia un exemplu de tunelare generic pe topologia de mai jos:

A l t e r a r e a p a c h e t e l o r | 281

Reea IPv4
A B

Reea IPv6

Antet IPv6

Antet IPv4

Antet IPv6

Date

Antet IPv6

Date

Figura 8-10: Tunelare IPv6 peste o reea IPv4 Cnd pachetul cu antet IPv6 ajunge la ruterul A, acesta verific destinaia folosind tabela de rutare. Dac destinaia este cunoscut prin tunel atunci ruterul ncapsuleaz pachetul cu un antet IPv4 astfel: Surs: adresa sa IPv4 dinspre reeaua IPv4; Destinaie: adresa IPv4 a ruterului B dinspre reeaua IPv4. Dup ncapsulare pachetul este rutat n Internetul IPv4 pn cnd acesta ajunge la ruterul B. Pentru c pachetul a venit prin tunel, ruterul B va elimina antetul IPv4 i l va ruta n funcie de tabela de rutare IPv6. Exist dou criterii principale dup care se clasific tunelele n IPv6: Dac tunelul este manual sau automat; Dac tunelul este point-to-point sau point-to-multipoint. Tunelele point-to-point precum MCT (Manually Configured Tunnel) sau GRE (Generic Router Encapsulation) trebuie configurate pentru fiecare pereche surs destinaie. Cu alte cuvinte, pentru fiecare tunel trebuie creat o nou interfa de tunel n ambele capete. n anumite situaii astfel de tunele nu scaleaz, fiind nevoie de mult efort administrativ pentru configurarea lor. Soluia n aceste situaii const n utilizarea tunelelor automate. Aceste tipuri de tunele nu au nevoie de specificarea destinaiei, deoarece au ncorporat n protocol o metod prin care pot s o determine automat. Efortul de configurare se reduce astfel la crearea unei singure interfee de tunel n care trebuie specificat doar sursa tunelului, indiferent de numrul de tunele necesar. Astfel de tunele poart numele de point-to-multipoint. n cele ce urmeaz se va studia modul de funcionare al unui tunel automat point-to-multipoint: Tunelul 6to4. Dac se dorete un tunel automat i scalabil, o prim observaie este c trebuie s existe o metod de descoperire a adresei IP destinaie cu care trebuie ncapsulat pachetul. Pentru a avea aceast funcionalitate, tunelele 6to4 definesc un prefix special ce trebuie folosit n cadrul reelelor IPv6 care doresc s comunice: 2002::/16. Orice insul IPv6 ce dorete s comunice cu alt insul trebuie s aib adrese IPv6 create astfel: 32 de bii ai adresei IPv4 surs a tunelului Subnet Interface ID

2002

Figura 8-11: Formatul unei adrese 6to4 Dup cum se observ din figura de mai sus, o adres 6to4 trebuie creat folosind cei 32 de bii ai adresei surs de tunel. Adresa IPv6 de tunel pentru fiecare dintre cele dou capete ale tunelului

282 | R e e l e l o c a l e d e c a l c u l a t o a r e trebuie s foloseasc acest format de adresare pentru a fi posibil extragerea adresei IPv4, folosit de tunel la ncapsulare. Cei 16 bii de subnet pot fi folosii n interiorul fiecrei insule pentru a aloca adrese n acelai format cu primii 48 de bii comuni n toate reelele. n continuare se va analiza un scenariu simplu pentru a evidenia comportamentul unui tunel 6to4. Prefix insul: 2002:C80F:F01::/48 200.15.15.1 Insul IPv6 Reea IPv4
A B

Prefix insul: 2002:D81A:10C1::/48 216.26.16.193 Insul IPv6

Tunnel0: 2002:C80F:F01::1/48

Tunnel0: 2002:D81A:10C1:200::1/64

Figura 8-12: Tunelarea 6to4 n afar de configuraiile din figur, fiecare ruter mai are o rut spre 2002::/16 care are ca interfa de ieire Tunnel0. Se va presupune c o staie din insula legat la ruterul A trimite un ping ctre o staie din insula B. Pentru c toate subreele din spatele ruterului A folosesc aceiai 48 de bii (sunt difereniate prin biii de subnet), pachetul va pleca cu adres IPv6 surs: 2002:C80F:F01::X. Cnd va ajunge la ruterul A acesta l va trimite prin interfaa de tunel. nainte de a putea ns trimite pachetul n tunel, ruterul A trebuie s realizeze ncapsularea IPv4 de tunel. Adresa IP surs este configurat pe tunel, ns adresa IP destinaie trebuie dedus. Ruterul analizeaz adresa IPv6 destinaie a pachetului i extrage cei 32 de bii dintre bitul 16 i bitul 48 care reprezint adresa IPv4 a celuilalt capt de tunel. Pachetul este acum ncapsulat i poate fi trimis peste reeaua IPv4.

8.4.5 Virtual Private Networks


Reelele Virtuale Private (VPN) au la baz tunelurile IP, dar adaug n plus un nivel de securitate. Tunelurile VPN pot implementa autentificarea, respectiv criptarea traficului trimis prin tunel. Astfel, VPN-urile asigur facilitile unui tunel normal, dar adaug i protecie mpotriva atacurilor datelor. Printre cele mai cunoscute tipuri de VPN sunt IPSec i OpenVPN. IPSec este o suit de standarde i protocoale pentru crearea de tuneluri securizate i autentificarea i criptarea traficului ce trece prin ele. IPSec funcioneaz pe baz de tuneluri create la nivel Reea. Acesta a fost dezvoltat ca a o extensie a IPv4, pe cnd n IPv6 opiunea de IPSec este integrat n specificaiile protocolului ca antet de extensie IPv6. OpenVPN este o soluie VPN ce vine ca aplicaie, bazndu-se pe tuneluri la nivel Transport peste SSL. OpenVPN funcioneaz pe modelul client-server, fiind mai uor de instalat, dar are limitri de scalabilitate, spre deosebire de IPSec.

8.4.6 PPPoE
PPPoE combin dou protocoale de nivel Legtur de Date, i anume Ethernet i PPP. Ethernet este un protocol de tip acces multiplu, cu broadcast, pe cnd PPP este un protocol punct-la-punct. PPPoE creaz tuneluri punct-la-punct, ce ncapsuleaz datele n antete PPP, peste legtura Ethernet. Astfel, PPPoE ofer facilitile (n principal de autentificare) ale PPP, dar funcioneaz peste reelele des ntlnite, de tip Ethernet.

A l t e r a r e a p a c h e t e l o r | 283

8.5 Configuarea tunelurilor


8.5.1 Linux
n Linux, tunelurile de tip ipip, ipv6-over-ipv4 (sit) sau GRE se pot configura folosind utilitarul ip din suita iproute2. Comenzile sunt de tipul:
ip tunnel

Pentru a aduga un tunel, avem nevoie s specificm IP-urile celor dou capete ale tunelului i tipul su:
ip tunnel TIP_TUNEL add tunel_nou local IP_INTERFA_LOCAL remote IP_INTERFA_PARTENER mode

Pe cele dou sisteme, IP-urile remote i local trebuie configurate n oglind, iar tipul tunelului trebuie s coincid. Dup ce interfaa tunel este creat, ea poate fi folosit ca orice interfa n Linux: i se pot atribui IP-uri (IPv4, IPv6) i se pot aduga rute ce au respectiva interfa next-hop. Interfaa trebuie activat la nivelul 2.

8.5.2 Cisco IOS


Similar cu Linux, pentru a configura un tunel trebuie configurat o interfa de tip tunel pe ambele rutere. Este necesar specificarea interfeei (nu adresa IP) surs a tunelului i adresa IP a ruterului destinaie. Pe ruterul partener, adresa IP a destinaiei trebuie s coincid cu adresa IP a interfeei de pe primul ruter i interfaa surs s coincid cu adresa IP specificat ca destinaie pe primul ruter. Tipul tunelului trebuie s fie acelai pe ambele interfee tunel.
R(config)# interface INTERFA_TUNEL R(config-if)# no shutdown R(config-if)# tunnel source interface INTERFA_SURS R(config-if)# tunnel destination IP_INTERFA_PARNETEN R(config-if)# tunnel mode MOD_TUNEL

8.6 Scenarii de folosire a tunelrii


8.6.1 Configurare tunel IPv6-over-IPv4 (sit) n Linux
tun0 2001:AAAA:BBBB:1::/64 tun0

L1

L2

eth0: 28.28.28.28

eth0: 42.42.42.42

Figura 8-13 Configurare tunel IPv6-over-IPv4 (sit) n Linux Considerm dou staii Linux care sunt conectate la o reea Internet IPv4. Se dorete ca cele dou staii s poat trimite pachete IPv6, chiar dac ISP-ul nu ofer suport pentru IPv6. Pentru acest lucru vom configura un tunel de tip sit. Pornim cu adugarea interfeelor de tip tunel ce vor crea tunelul ntre cele dou staii:

284 | R e e l e l o c a l e d e c a l c u l a t o a r e
L1# ip tunnel add tun0 local 28.28.28.28 remote 42.42.42.42 mode sit L1# ip link set up dev tun0

L2# ip tunnel add tun0 local 42.42.42.42 remote 28.28.28.28 mode sit L2# ip link set up dev tun0

Avnd tunelul activ ntre staii, putem s folosim legtura virtual ca i cum am avea un cablu direct conectat ntre cele dou sisteme (legtura punct-la-punct):
L1# ip addr add 2001:AAAA:BBBB::1/64 dev tun0

L2# ip addr add 2001:AAAA:BBBB::2/64 dev tun0

Dac presupunem c n spatele lui L1 avem mai multe reele IPv6 (L1 este un ruter pentru aceste reele), avem nevoie s configurm L2 s poat ajunge la aceste reele prin setarea unei rute implicite:
L2# ip route add ::/0 via 2001:AAAA:BBBB::1 dev tun0

8.6.2 Configurare tunel GRE n IOS pentru pachete multicast

200.1.3.0/2 4 200.1.0.0/2 4 200.1.0.0/2 4

R1

R2

R3

200.1.2.0/2 4

200.2.3.0/2 4

Figura 8-14 Configurare tunel GRE n IOS pentru pachete multicast n reeaua din topologie, dorim ca ruterele R1 i R3 s poat schimba informaii RIPv2, dar fr ca R2 s aib RIPv2 configurat pe el. Putem configura un tunel ntre R1 i R3, iar relaia de adiacen s nu se stabileasc ntre R1 i R2, respectiv R2 i R2, ci ntre R1 i R3 direct, prin legtura virtual. Dei avem nevoie doar de adrese IPv4, un tunel ipip nu este suficient deoarece RIPv2 trimite pachete multicast. Vom avea deci nevoie de un tunel GRE.
R1 R1 R1 R1 R1 R1 (config)# interface Tunnel0 (config-if)# tunnel source F0/0 (config-if)# tunnel destination 200.2.3.3 (config-if)# tunnel mode gre ip (config-if)# ip address 200.1.3.1 255.255.255.0 (config-if)# no shutdown

R3(config)# interface Tunnel0 R3 (config-if)# tunnel source F0/1 R3 (config-if)# tunnel destination 200.1.2.1 R3 (config-if)# tunnel mode gre ip R3 (config-if)# ip address 200.1.3.3 255.255.255.0 R3 (config-if)# no shutdown

Vom include reeaua de pe legtura virtual n RIP pentru a trimite informaii despre aceast reea i pentru a descoperi vecini n aceast reea.
R1(config)# router rip R1(config-router)# network 200.1.3.0

A l t e r a r e a p a c h e t e l o r | 285

R3(config)# router rip R3(config-router)# network 200.1.3.0

8.7 Studii de caz


8.7.1 Aplicaie pentru tunel IPv6 dinamic n Windows
gogoClient (http://www.gogo6.com/) este o aplicaie uor de folosit n Windows ce creaz un tunel peste Internet i ofer conectivitate IPv6 prin serverele gogoNET.

Figura 8-15 Aplicaie pentru tunel IPv6 dinamic n Windows Aplicaia creaz automat o interfa n sistemul de operare ce se va conecta la un server disponibil atunci cnd se solicit din aplicaie. Clientul va avea o adres IPv6 i o rut implicit IPv6 peste tunelul creat. Instalarea i configurarea se face n cteva minute i ofer utilizatorului conectivitate IPv6.

286 | R e e l e l o c a l e d e c a l c u l a t o a r e

8.7.2 OpenVPN
OpenVPN este o aplicaie client server ce ofer serviciu de VPN peste SSL (Transport Layer VPN). Este mai flexibil de instalat dect IPSec, dar nu este la fel de performant ca vitez, deoarece funcioneaz la nivelul Transport i nivelul Aplicaie (spre deosebire de IPSec care este la Nivelul 3). Considerm dou maini Linux, un Client i un Server ce au conectivitate Layer 4 (clientul poate fi n spatele unui NAT). Pe cele dou maini trebuie instalat pachetul openvpn:
# apt-get update # apt-get install openvpn

Funcionnd peste SSL, este nevoie de generarea unor perechi de chei. Cheile vor fi generate pe Server. Pentru generarea cheilor, ne vom folosi de scripturile easy-rsa 2.0 aflate n directorul usr/share/doc/openvpn/examples/easy-rsa/2.0. Copiai scripturile n directorul etc/openvpn pentru a v fi mai uor.
server# cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/

n continuare vom lucra n directorul /etc/openvpn:


server# cd /etc/openvpn

Editati fiierul vars pentru a configura variabilele de mediu.


export export export export export export KEY_SIZE=1024 KEY_COUNTRY="RO" KEY_PROVINCE="B" KEY_CITY="Bucharest" KEY_ORG="CS" KEY_EMAIL="rl@cs.pub.ro"

Setai variabilele de mediu configurate folosind source vars:


server# source vars server# ./clean-all

Generm certificatul pentru CA folosind build-ca. Rspundei la ntrebri cu rspunsurile default.


server#./build-ca

Cheia pentru Diffie Hellman se genereaz cu buid-dh:


server#./build-dh

Pentru server generm cheia folosind build-key-server, iar pentru fiecare client, generm o cheie folosind *build-key*. Rspundei la ntrebri cu rspunsurile default.
server#./build-key-server server server#./build-key client1

Examinai coninutul directorului keys pentru a vedea fiierele create. Pe Server trebuie creat fiierul /etc/openvpn/server.conf cu urmtorul coninut:
port 1194 proto tcp dev tap client-to-client server 172.16.123.0 255.255.255.0 push "redirect-gateway" push "dhcp-option DNS 141.85.37.1" ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem client-to-client cipher AES-128-CBC max-clients 10 user nobody group nogroup persist-key persist-tun chroot /etc/openvpn

A l t e r a r e a p a c h e t e l o r | 287
log server.log comp-lzo

Pe Client trebuie creat fisierul /etc/openvpn/client1.conf cu urmtorul coninut:


client tls-client dev tap proto tcp remote 28.28.28.2 1194 persist-key persist-tun ca keys/ca.crt cert keys/client1.crt key keys/client1.key cipher AES-128-CBC comp-lzo log client1.log

Vor trebui copiate pe cei clieni fiierele cu certificatele i cu cheile. Vom folosi scp.
client# scp -r root@28.28.28.2:/etc/openvpn/keys/ /etc/openvpn/
Pornim OpenVPN pe toate staiile configurate folosind # /etc/init.d/openvpn start

Observm interfaa tap0 creat pe server i pe fiecare client.

8.8 ntrebri
1. Care este maparea de numr de adrese publice la numr de adrese private n cazul unui NAT static: Unu-la-unu Unu-la-mai-multe Mai-multe-la-unul Mai-multe-la-mai-multe 2. 3. 4. 5. Ce antete sunt alterate n cazul n care un pachet trece printr-un NAT de tip NAPT? 3 4 3 i 4 3,4 i 7 Care dintre urmtoarele aplicaii pot avea probleme n reele ce folosesc NAT: Web browsing E-mail IRC Peer-to-peer Care dintre urmtoarele tipuri de tuneluri pot transporta multicast: ipip sit GRE 6to4 Care dintre urmtoarele nu este o configuraie necesar pentru activarea unui tunel: Adres IP surs (local) Adres IP destinaie (la distan) Activarea la nivel 2 Configurarea unei adrese IP pe interfa

288 | R e e l e l o c a l e d e c a l c u l a t o a r e

8.9 Referine
[1] Tony Bautts, Terry Dawson, Gregor Purdy. Linux Network Administrator's Guide, 3rd Edition. O'Reilly, 2005 [2] Gregor Purdy. Linux iptables Pocket Reference. O'Reilly, 2004 [3] James Turnbull, Peter Lieverdink, Dennis Matotek. Pro Linux System Administration. Apress, 2009 [4] Markus Feilner. OpenVPN: Building and Integrating Virtual Private Networks. Packt Publishing, 2006 [5] ISO/IEC 29341-1:2011, UPnP [6] RFC 3489/5389 (STUN) [7] RFC 5128 (State of Peer-to-Peer Communication across Network Address Translators) [8] RFC 2663 (IP Network Address Translator (NAT) Terminology and Considerations) [9] RFC 1918 (Address Allocation for Private Internets) [10] RFC 5245 (ICE) [11] RFC 1853 (IP in IP Tunneling) [12] RFC 1702 (GRE over IPv4 Networks) [13] RFC 3056 (Connection of IPv6 Domains via IPv4 Clouds) [14] L. DAcunto, J.A. Pouwelse, H.J. Sips. A Measurement of NAT & Firewall Characteristics in Peer to Peer Systems. Proceedings of 15th ASCI Conference, 2009

P a g e | 289

9 Servicii de reea
Ce se nva n acest capitol? Modelul client-server Serviciul DNS Serviciul web Serviciul de e-mail (SMTP, POP3, IMAP)

Cine este Sir Timothy John (Tim) Berners Lee a studiat fizica la Universitatea din Oxford i a devenit inginer software. n 1980, n timp ce lucra la CERN n Geneva, a descris pentru prima dat conceptul unui sistem global, bazat pe conceptul de "hypertext", care s permit cercettorilor din lumea ntreag partajarea informaiei. n 1989, el a publicat un articol intitulat "Information Management: A Proposal" n care a conectat conceptele de hypertext i Internet, pentru a crea un sistem de partajare i distribuire a informaiei la nivel global. El a numit acest sistem World Wide Web. nc din era ARPANET reelele de calculatoare au mediat comunicarea interuman prin intermediul dispozitivelor i a mediilor de transmisie disponibile. Pe msura evoluiei reelelor i a apariiei Internetului, comunicarea mediat tehnologic s-a diversificat, incluznd printre altele transferul de fiiere, comunicarea sincron (instant messaging) sau asincron (e-mail), accesul la distan, tranzacii online, aplicaii colaborative sau prelucrarea distribuit. O reea de calculatoare ofer servicii. Un serviciu de reea reprezint o facilitate pe care un sistem de calcul, un dispozitiv sau o reea l ofer unui utilizator sau unui grup de utilizatori. Serviciile de reea permit o acoperire mult mai rapid i eficient a nevoilor unui utilizator dect serviciile similare offline: spre exemplu, comunicarea prin pot electronic (e-mail) este cvasi-instantanee i gratuit (per mesaj), comparativ cu serviciul clasic de pot. n acelai timp, serviciile de reea au deschis zone noi de dezvoltare a sociabilitii, ducnd la apariia unor noi nevoi i la soluii pentru acestea: de exemplu jocurile de tipul MMORPG (Massive Multiplayer Online Role Playing Game) sau lumile virtuale, care atrag milioane de utilizatori. Un serviciu de reea se bazeaz, la fel ca alte componente specifice reelelor, pe protocoale de comunicare. Aceste protocoale specific modul n care se formuleaz solicitri pentru serviciul respectiv, modul n care acesta rspunde, modul n care se trateaz erorile. n cadrul stivei de reea serviciile reprezint nivelul aplicaie. Nivelul aplicaie este cel care cuprinde totalitatea serviciilor furnizate de o reea de calculatoare. n vreme ce nivelurile inferioare se ocup n principal de adresarea i identificarea dispozitivelor i proceselor de reea, nivelul aplicaie este responsabil cu oferirea efectiv a serviciilor de reea. Un protocol de comunicare de nivel aplicaie, specific unui serviciu, presupune existena unui ofertant al serviciului i a unui solicitant al acestuia. Ofertantul prezint facilitile serviciului iar solicitantul i prezint interesul ctre ofertant, n forma unor cereri de serviciu. Cele dou entiti poart numele de server i client i vor fi descrise n detaliu n seciunea urmtoare.

290 | R e e l e l o c a l e d e c a l c u l a t o a r e

9.1 Modelul client server


Serverul (sau ofertantul) i clientul (sau solicitantul) sunt cele dou entiti necesare pentru existena unui serviciu. Serverul ofer serviciul clientului, iar clientul solicit serverului facilitile aferente. Spre exemplu, s analizm un serviciu de aflare a timpului. Serverul dispune de informaii legate de timpul exact, iar clientul doreste s afle aceste informaii. Serverul i prezint serviciul clientului n Internet, asemenea unui magazin de ceasuri care i etaleaz marfa la vitrin. Clientul afl de existena serverului i de faptul c acesta i poate furniza timpul exact, i dorete s apeleze la acesta (aa cum un client real afl de magazinul dorit i dorete s achiziioneze un ceas). Urmeaz o tranzacie n care clientul cere serverului timpul exact, iar serverul i spune acest lucru. Clientul este mulumit (sau poate nemulumit) de informaia aflat i de calitatea interaciunii, iar serverul ateapt ali clieni. Sistemul de comunicare descris mai sus poart numele de modelul client-server sau paradigma client-server, fiind modelul dominant folosit n Internet pentru oferirea de servicii, un alt exemplu ar fi modelul Peer-to-Peer. Modelul implic o prezen mai mare a clienilor dect a serverelor: un server este, n general, contactat de mai muli clieni, de multe ori simultan, aa cum un magazin de pantofi, de exemplu, nu vinde marf unui singur client. Mai sus s-a precizat c un serviciu are asociat un protocol. Protocolul descrie interaciunea ntre server i client, paii urmai de fiecare pentru oferirea, respectiv primirea serviciului. Att clientul ct i serverul cunosc protocolul i l folosesc. n consecin, clientul i serverul beneficiaz de o implementare software a protocolului, iar, la nivelul unui sistem de calcul, cele dou entiti reprezint cte un proces. n termeni strict tehnici, un client este, de fapt, un proces client de pe un sistem de calcul/dispozitiv client, iar un server este, de fapt, un proces server de pe un sistem de calcul/dispozitiv server. Termenul de server are dou semnificaii n lumea calculatoarelor: sistem server sau proces server. Un proces server este un proces care ofer servicii de reea ctre procese client. Un sistem server este un sistem hardware cu putere ridicat pe care ruleaz servicii locale sau de reea, n forma unor procese. Fa de un sistem desktop, un sistem server dispune de putere de calcul i de stocare mai mare pentru a permite servirea, n condiii optimale, a utilizatorilor i clienilor. Probabil un element caracteristic pentru un sistem server este prezena unei plci grafice modeste, rolul su nefiind acela de procesare grafic sau rulare de jocuri pe calculator la rezoluie maxim. Pe un sistem de calcul dat pot rula simultan mai multe servere sau mai muli clieni sau att servere ct i clieni, n forma unor procese. Identificarea local a unui proces se realizeaz prin intermediul Process ID-ului (PID). Similar, un proces de reea trebuie s poat identifica partenerul de comunicaie (peer-ul): procesul client de pe sistemul client trebuie s poat identifica procesul server de pe sistemul server i viceversa. Pentru aceasta se folosete nivelul inferior din stiva de reea. Serverele i clienii, implementate la nivelul aplicaie din stiva de reea, se bazeaz pe nivelul Transport; n general, este vorba despre protocoalele UDP i TCP (n majoritate TCP). Pe lng roluri precum controlul fluxului sau gestiunea conexiunii, protocoalele de nivel Transport au rolul de demultiplexare a comunicaiei: mai multe canale simultane pot ajunge ctre acelai sistem. Demultiplexarea se realizeaz prin porturi. n contextul serviciilor de reea, un port este identificatorul unui proces de reea. Astfel, un proces de reea (client sau server), este identificat, n Internet, printr-o pereche <adres IP, port>: adresa IP identific sistemul de calcul, iar portul identific procesul din cadrul sistemului calcul; cu aceast pereche fiecare partener (peer) poate identifica cellalt partener. O conexiune sau comunicaie este un tuplu de forma <adres IP sistem server, port proces server, adres IP sistem client, port sistem client>. Modelul client server este modelul natural folosit pentru implementarea serviciilor de reea. Din acest motiv exist o corelare strns ntre API-ul de reea i modelul de client server. API-ul de reea, sau API-ul de sockei, este interfaa de programare a aplicaiilor de reea - fie clieni, fie servere.

S e r v i c i i d e r e e a | 291

9.1.1 Sockei i servicii


n dezvoltarea de aplicaii de reea i, aadar, i a serverelor i clienilor se folosete interfaa de sockei, existent pe majoritatea sistemelor de operare. Se numete i BSD socket API, ntruct a fost proiectat iniial pe sistemele BSD Unix, la nceputul anilor '80. Informaii detaliate despre sockei i programarea cu sockei se gsesc n cartea lui Richard Stevens Unix Network Programming [11]. Interfaa de lucru cu sockei este strns legat de modelul client server. Fluxul de apeluri pentru implementarea unui server difer de fluxul de apeluri pentru implementarea unui client, n conformitate cu rolul diferit al fiecruia. Astfel, interfaa trebuie s urmeze un set de reguli care garanteaz funcionarea serviciului: serverul trebuie s porneasc naintea clientului; n momentul n care serverul pornete, acesta trebuie s fie identificat de ctre client; adic trebuie s aib o pereche <adres IP, port> asociat; datele de identificare ale serverului trebuie s fie disponibile clientului; acesta trebuie s tie cum s ajung la server pentru a solicita serviciul; serverul nu trebuie s tie dinainte datele de identificare ale clientului, deoarece acesta i va furniza datele n momentul n care iniiaz conexiunea ctre server; ntre timp, serverul ateapt contactul de la client; clientul declaneaz tranzacia prin iniierea unei conexiuni ctre server; pe conexiunea realizat, acesta solicit serviciul; dup realizarea conexiunii, serverul transmite pe canalul de comunicaie aferent rspunsul la solicitarea clientului; tot clientul este cel care ncheie conexiunea, marcnd ncheierea tranzaciei; dup ce clientul a ncheiat conexiunea, serverul revine n starea de ateptare a unor noi clieni. Regulile de mai sus genereaz un set de stri i evenimente n comunicaia dintre client i server care se regsesc i n folosirea API-ului de sockei: a) evenimentul de identificare a serverului n Internet/reea; b) starea n care serverul ateapt conexiuni; c) evenimetul de iniiere a conexiunii (conectare) din partea clientului; d) evenimentul de ncheiere a conexiunii (deconectare) din partea clientului. Aceste evenimente sunt descrise n figura de mai jos, prezentnd fluxul uzual de apeluri pe client S C

Socket Bind Listen Accept

Socket

Blocked

Connect

Close

9-1 Fluxul de apeluri in modelul client-server

292 | R e e l e l o c a l e d e c a l c u l a t o a r e i pe server pentru TCP (pentru UDP schema difer ntruct nu exist conexiune). Astfel: evenimentul a) este marcat de apelurile socket(), bind() i listen() pe server, semnificnd crearea unui socket de tip listener, capabil s primeasc solicitri din reea; starea b) este marcat de apelul accept(), prin intermediul cruia serverul ntr in starea de ateptare (listening) a conexiunilor de la clieni; socketul n cauz se mai numete i listener socket sau server socket; in starea b) serverul este blocat pana se primeste o conexiune, acest lucru este reprezentat de linia dublata; evenimentul c) este declanat de apelul connect() din partea clientului; n acel moment, pe server se creeaz un socket dedicat, care intr n parteneriat (peer) cu socketul de pe client; cei doi sockei realizeaz conexiunea identitificat prin <adres IP sistem server, port proces server, adres IP sistem client, port sistem client>; evenimentul d) este declanat de apelul close() din partea clientului; apelul close semnific ncheierea comunicaiei dintre client i server; clientul i ncheie execuia, iar serverul revine n starea de ateptare b). Pe baza acestui flux programatic sunt implementate aplicaiile client i server n Internet, indiferent de limbajul de programare sau platforma folosite. Comunicaia dintre client i server ntre etapele de iniiere i, respectiv, de ncheiere a conexiunii se realizeaz prin respectarea protocolului aferent serviciului.

9.1.2 Modelul Peer-to-Peer


Modelul client-server se bazeaz pe un model al interaciunii umane cunoscut mai ales n comer: o entitate (serverul) ofer servicii n vreme ce mai multe entiti (clienii) solicit servicii. Exist, ns, cazuri n care interaciunea mediat tehnologic este simetric: partenerii n comunicaie ofer unul altuia servicii. Cel mai des ntlnit caz este transferul de fiiere: un partener (peer) solicit fiiere celuilalt, oferindu-i, n schimb, alte fiiere. Ambii parteneri pot avea, simultan sau alternativ, rol de client i de server. Acest stil de interaciune este sursa modelului (sau paradigmei) Peer-to-Peer. Modelul Peer-to-Peer este unul n care participanii la comunicare ofer i solicit servicii. Fiecare partener (peer) este egal n comunicaie cu cellalt. n general, n cadrul acestui model se formeaz reele Peer-to-Peer, n care fiecare partener din reea poate contacta pe toi ceilali parteneri. Exemple de protocoale i reele Peer-to-Peer sunt cele de transfer de fiiere: BitTorrent, DirectConnect, eDonkey, Kazaa. Reeaua Skype este o reea care folosete paradigma Peer-to-Peer, ncercnd, pe ct posibil, ca legtura de voce ntre doi parteneri s se realizeze direct ntre acetia, fr intermedierea unui server. Dei poate prea o alternativ la modelul client-server, modelul Peer-to-Peer, este, de fapt, un model client-server ascuns. Fiecare partener are, n cadrul implementrii, rol de server i client. La nivel de implementare acest lucru poate nsemna folosirea simultan a unui proces client i unui proces server de resurse comune (de exemplu, fiiere partajate), folosirea unui sistem cu mai multe fire de execuie sau folosirea de operaii asincrone pe sockei. Indiferent care este opiunea de implementare, att fluxurile programatice pentru client ct i cele pentru server se regsesc n implementarea partenerului, n forma prezentat la finele seciunii anterioare. n consecin, modelul client-server este modelul fundamental de implementare a serviciilor la nivelul Internet-ului, indiferent de forma acestora: servicii centralizate sau descentralizate/Peer-toPeer. Dezvoltarea unui nou serviciu este motivat de o anumit nevoie; din punct de vedere tehnic, formularea unei soluii nseamn dezvoltarea unui nou protocol de comunicare la nivel aplicaie i implementarea de clieni i servere care s l foloseasc.

S e r v i c i i d e r e e a | 293

9.2 Tipuri de servicii


Diversitatea solicitrilor i soluiilor imaginate de oameni creeaz o diversitate corespunztoare a serviciilor n Internet. Putem clasifica serviciile dup tipul de probleme pe care acestea le rezolv, sau conform cu specificul protocolului folosit pentru comunicare. Probabil cea mai comun form de clasificare este cea care ine cont de nevoia rezolvat. n acest sens putem considera: servicii de transfer de fiiere: un fiier este transmis n reea de la un nod la altul; exemple: FTP, HTTP; servicii de conexiune la distan (remote connection): sunt utile pentru accesarea unui dispozitiv fr a necesita prezena fizic lng acesta; exemple: telnet, rsh, SSH, VNC, RDP; servicii de comunicare: faciliteaz comunicarea ntre persoane care se pot afla pe continente diferite; exemple: pot electronic (SMTP, POP3, IMAP), instant messanging (XMPP, IRC); servicii de nume: mapeaz un nume/denumire uor de reinut pe o alt valoare, de obicei numeric; exemple: DNS, NIS, JNI, DHCP; servicii de acces la resurse: poate fi vorba de accesarea unei baze de date sau a unui echipament sau a unei resurse; exemple: servicii de printing (CUPS, IPP), LDAP, SNMP; servicii de informare: ofer informaii utile clientului; exemple: NTP. Aceste clase de servicii nu sunt exhaustive, iar clasificarea de mai sus este lax. De exemplu, se poate considera c i SSH poate fi folosit pentru transferul de fiiere, folosind scp. Sau c HTTP poate fi folosit pentru accesarea unor informaii, cnd URL-ul su nu conduce la accesarea unui fiier. n orice caz, e de avut n vedere c serviciile sunt diverse i c rolul acestora ine de natura problemelor ntlnite n experiena uman1. innd cont de modul de interconectare, putem considera serviciile ca fiind: centralizate: un server central rspunde cererilor clienilor; descentralizate: nu exist un singur server, iar clienii pot fi la rndul lor servere. Ambele folosesc modelul client server, depinznd de numrul i repartizarea serverelor. n cazul descentralizat, putem vorbi despre sisteme cluster, sisteme cloud sau sisteme Peer-to-Peer cu serviciile i protocoalele aferente. Din punctul de vedere al implementrii, putem considera dou criterii de clasificare: protocolul de nivel transport folosit i formatul mesajelor de protocol de nivel aplicaie. Protocolul de nivel transport folosit de un spectru larg de servicii este TCP. Facilitile oferite de acesta, precum prezena unei conexiuni, transmiterea sigur i controlul fluxului, l fac protocolul preferat pentru majoritatea protocoalelor de nivel aplicaie cunoscute (HTTP, FTP, SSH, SMTP etc.). Protocolul UDP, un protocol simplu i fr facilitti precum transmiterea sigur, este folosit, n general, de protocoale de nivel aplicaie simple sau pentru care pierderea unor pachete nu este critic. Astfel de protocoale sunt DNS, SNMP, RTP. Formatul mesajelor de protocol de nivel aplicaie mparte protocoalele (i, implicit, serviciile) n protocoale text i protocoale binare. Protocoalele text sunt acelea n care mesajele sunt trimise n format text, direct inteligibil pentru oameni (human-readable); folosirea unui sniffer de reea2 permite vizualizarea coninutului mesajului. Protocoalele binare codific mesajele transmise n format binar (machine-readable), care nu poate fi direct neles de om. Folosirea unui format sau altul nu ine de raiuni de securitate3, ci, mai degrab, de raiuni de implementare. Un protocol care se dorete simplu i eficient, precum DNS, va mpacheta mesajele n format binar. Protocolul SSH transmite informaii criptate, motiv pentru care acestea sunt tot timpul
1 2

O list exhaustiv cu serviciile din Internet este disponibil n fiierul /etc/services wireshark sau tcpdump 3 Cu un sniffer l poi captura i decodifica.

294 | R e e l e l o c a l e d e c a l c u l a t o a r e binare. Protocolul LDAP transmite informaiile n mod binar din raiuni de eficien a mpachetrii acestora. De partea cealalt, protocoale precum HTTP sau SMTP, orientate n primul rnd pe funcionalitate i abia apoi pe eficien, sunt protocoale cu mesaje text. Numrul mare de servicii n Internet, ca i protocoalele folosite, face improbabil folosirea tuturor de ctre o singur persoan, cu att mai puin nelegerea acestora. Exist, ns, un set de servicii i protocoale care, n zilele noastre, sunt folosite, direct sau indirect, de majoritatea utilizatorilor de Internet: serviciul DNS, serviciul web, serviciul de e-mail. Acestea vor fi prezentate n seciunile urmtoare.

9.3 Serviciul DNS


La nceputul Internetului, numrul de staii existente era suficient de mic nct acestea s poat fi reinute sub forma unei liste. Pentru a realiza o asociere ntre un nume i adresa staiei se folosea un fiier dedicat4 n care fiecare utilizator completa intrri; fiecare intrare reprezenta o asociere/mapare ntre un nume i o adres. Ct timp numrul de staii a fost mic, actualizarea i folosirea fiierului a fost fezabil. n momentul apariiei adresrii IP i Internetului, odat cu creterea numrului de staii, gestiunea acestui fiier a devenit mult prea dificil. Era nevoie de un serviciu de mapare ntre nume i adrese IP care s rspund rapid interogrilor clienilor. Numrul tot mai mare de staii i de interogri au devenit tot mai dificil de gestionat; prin urmare, folosirea unui mod centralizat de stocare a maprilor nu mai reprezenta o soluie. Rspunsul consta n folosirea unui sistem descentralizat. n acelai timp, dinamica Internetului i nevoia de actualizare a intrrilor din diverse regiuni nsemna c nici gestiunea nu putea fi realizat centralizat. Era nevoie de un serviciu descentralizat cu gestiune descentralizat. Acest serviciu este DNS. DNS (Domain Name System) este un serviciu de Internet responsabil cu asocierea ntre nume uor de reinut (precum insecure.org sau cs.curs.pub.ro) cu adrese IP care nu sunt uor de reinut. Pentru a accesa o staie, un utilizator va putea folosi doar numele; serviciul DNS este consultat pe ascuns fa de utilizator, pentru a obine adresa IP aferent. Serviciul DNS este standardizat ntr-un numr impresionant de documente RFC i este folosit de toate celelate servicii de reea. n momentul n care un utilizator folosete serviciul web, va folosi un URL care conine numele unui server. Pentru conectare, acel nume este translatat n adres IP prin interogarea serviciului DNS. Trimiterea unui e-mail ctre o adres de e-mail presupune o interogare DNS de aflare a serviciului de mail al domeniului. Fiind un serviciu de baz, cunoaterea funcionrii sale i a componentelor specifice este util pentru nelegerea funcionrii Internetului, pentru depanarea problemelor de reea i pentru gestiunea eficien a reelei.

9.3.1 Ierarhia de domenii n DNS


n general, descentralizarea este strns legat de existena unei ierarhii. De exemplu, ntr-o companie, managerul de top deleg reponsabiliti managerilor de departament. Fiecare departament are un rol iar managerul de departament este responsabil pe acesta. n cadrul unui departament exist echipe de lucru. De obicei, un team leader sau lead developer este responsabilizat cu gestiunea echipei i a proiectelor la care lucreaz aceasta. Toate echipele fac parte din acelai departament i ndeplinesc rolul departamentului, dar realizeaz activiti diferite, cu responsabilitate delegat team leader-ului. innd cont de nevoia de descentralizare menionat anterior, serviciul DNS i constituie funcionarea pe existena unei ierarhii. Este vorba de o ierarhie de domenii. Exist un domeniu rdcin, care dispune de domenii de nivel inferior, referite ca subdomenii. Fiecare dintre aceste subdomenii are, la rndul su, alte subdomenii, i aa mai departe.
4

/etc/hosts

S e r v i c i i d e r e e a | 295 Un domeniu DNS reprezint un spaiu de nume. n cadrul domeniului se pot gsi mai multe nume, iar un set de servere responsabile vor translata acele nume n adresele corespunztoare. Un subdomeniu DNS este, la rndul su, un nume pentru care s-a realizat o delegare ctre un alt server. Este ns, i un spaiu de nume, incluznd numele de care acesta este responsabil. De exemplu: pub.ro este un domeniu, adic un spaiu de nume; www.pub.ro, mail.pub.ro sunt intrri n domeniul pub.ro; n domeniul pub.ro este un server responsabil (ns.pub.ro, de asemenea o intrare) care poate translata adresele www.pub.ro i mail.pub.ro n adrese IP. cs.pub.ro este un subdomeniu pentru pub.ro. Poate fi considerat un nume, la fel ca www.pub.ro sau mail.pub.ro; rolul su de domeniu este dat de faptul c este un spaiu de nume cu intrri precum wiki.cs.pub.ro sau mail.cs.pub.ro sau elf.cs.pub.ro. La fel ca n cazul www.pub.ro, un server dedicat (ns.cs.pub.ro) poate translata adresele din spaiul de nume n adrese IP. n concluzie, un domeniu: a) este un nume: un ir care identific numele domeniului; b) este un spaiu de nume: conine subnume de care este responsabil; c) este gestionat de unul sau mai multe servere responsabile; acestea traduc numele din spaiul de nume n adrese IP; d) poate conine subdomenii ctre care deleg responsabilitatea maprii de nume la adrese IP. Dup cum s-a precizat mai sus, domeniile DNS sunt aezate ierarhic, avnd n vrf domeniul rdcin, aa cum este descris n Figura 9-2. .

.com

.ro

.pub

.google

ns.cs.pub.ro ns

.cs

.curs

.elf cs.pub.ro ZONE

.mail

9-2 Ierarhia de domenii Domeniul rdcin n DNS este . (punct). Caracteristicile domeniului rdcin, aezate peste cele patru elemente de mai sus sunt: a) numele su este . (punct, dot); b) este un spaiu de nume care conine subnume precum org, com, info, ro; c) este gestionat de mai multe servere referite prin a.root-servers.net, ..., l.rootservers.net
$ host . name . name . name [...] -t ns . server l.root-servers.net. server d.root-servers.net. server b.root-servers.net.

d) toate subnumele sale sunt subdomenii, i pentru fiecare dintre ele deleag responsabilitatea.

296 | R e e l e l o c a l e d e c a l c u l a t o a r e Domeniile org, com, info, ro sunt subdomenii pentru domeniul rdcin. Numele lor complet este org., com., info., ro. n DNS, numele subdomeniilor sunt trecute la stnga domeniului, separate prin punct. Similar domeniul pub este subdomeniu pentru ro., numele su complet fiind pub.ro. n folosirea obinuit, punctul aferent domeniului rdcin poate fi omis, astfel c, ntr-un browser, URL-urile http://cs.curs.pub.ro sau http://cs.curs.pub.ro. sunt echivalente. La fel ca pentru domeniul rdcin, caracteristicile domeniului ro., aezate peste cele patru elemente de mai sus sunt: numele su este ro.; este un spaiu de nume care conine subnume precum pub.ro., google.ro.; este gestionat de mai multe servere de nume (primary.rotld.ro., secondary.rotld.ro.); subnumele sale pot fi nume de subdomenii, precum pub.ro., lug.ro. Serverele responsabile cu intrrile unui domeniu sunt servere de nume. Un server de nume este responsabil (se mai zice autoritar) pe un domeniu, gestioneaz intrrile din acel domeniu i rspunde interogrilor pentru intrri din acel domeniu. Adugarea, tergerea sau modificarea de intrri din domeniu pot fi realizate doar prin intermediul serverului (serverelor) de nume; similar, un client va interoga serverul de nume pentru a afla adresa IP a unui nume din cadrul domeniului.

Nume de domenii i nume de staii


Un domeniu are asociat un nume, de exemplu cs.pub.ro. Dar acelai nume de domeniu poate fi i nume de staie. Spre exemplu, numelui cs.pub.ro i este asociat adresa IP 141.85.227.111. n general, un nume poate reprezenta fie un nume de domeniu, fie un nume de staie, fie amndou. Un nume este un nume de domeniu n momentul n care exist un server de nume responsabil pe acel domeniu. De exemplu, ro. este nume de domeniu pentru c exist servere de nume aferente acestuia (primary.rotld.ro, secondary.rotld.ro). Pe de cealalt parte, un nume este un nume de staie n momentul n care exist o intrare n care acel nume este mapat cu o adres IP. De exemplu, elf.cs.pub.ro are mapat adresa 141.85.227.116. Un caz dual, reprezentnd att un nume de domeniu ct i un nume de staie, este cs.pub.ro. Acesta este att nume de domeniu, pentru c exist un server de nume responsabil (ns.cs.pub.ro), ct i nume de staie, pentru c i este asociat adresa 141.85.227.111. De reinut este faptul c un nume este nume de domeniu sau de staie sau amndou la un moment dat. Printr-un procedeu de delegare, un nume de staie poate deveni i nume de domeniu. La fel prin, ataarea unei adrese IP unui nume de domeniu, aceasta poate deveni i nume de staie. Diferenierea ntre nume de domeniu sau de staie se face, de cele mai multe ori, innd seama de context.

Domenii i zone
Pentru a oferi informaii despre numele din spaiul su de nume, fie c sunt nume de staii sau nume de subdomenii, un domeniu necesit unul sau mai multe servere de nume. Serverele de nume gestioneaz intrrile domeniului i pot rspunde la cereri din partea clienilor. Spunem c un astfel server de nume este autoritar (responsabil) pe un domeniu. Autoritatea unui server de nume se rsfrnge asupra domeniului i eventual asupra subdomeniilor acestuia. Dac dorete, un server de nume poate delega autoritatea (responsabilitatea) pentru un subdomeniu unui alt server de nume. Acel nou server de nume devine autoritar pentru subdomeniu. Ariile de autoritate ale serverelor de nume poart numele de zone, sau zone de autoritate. O zon DNS cuprinde totalitatea domeniilor, subdomeniilor i intrrilor din acestea de care este responsabil un server de nume. Dac un server de nume deleg autoritatea pe un subdomeniu, atunci se creeaz o nou zon. De acea nou zon este responsabil noul server de nume. Presupunem domeniul start.info este gestionat de serverul de nume ns.start.info. Acest server de nume gestioneaz domeniul, intrrile din acesta (www.start.info, mail.start.info) dar i

S e r v i c i i d e r e e a | 297 subdomeniul comp.start.info. Intrrile din subdomeniul comp.start.info (db.comp.start.info i users.comp.start.info) sunt gestionate tot de ns.start.info. Pe de alt parte, subdomeniul sales.start.info este delegat unui server de nume nou (ns.sales.start.info). Acest nou server de nume este responsabil pe subdomeniu i pe intrrile din cadrul acestuia (store.sales.start.info i accounts.sales.start.info). n situaia descris mai sus, exist dou zone. O zon, cuprinznd domeniul start.info i subdomeniul comp.start.info, este gestionat de serverul de nume ns.start.info. Cealalt zon, cuprinznd subdomeniul sales.start.info, este gestionat de serverul de nume ns.sales.start.info. n cadrul configurrilor serverelor de nume se folosete, n general, terminologia de zone. Un server este responsabil pe o zon i, n acest fel, pe domeniul i, eventual, subdomeniile ce formeaz acea zon. De notat este faptul c relaia de asociere dintre zone i servere de nume nu este de unu la unu, ci este de mai multe la mai multe. Astfel, de o zon pot fi responsabile mai multe servere5; toate serverele responsabile/autoritare vor gestiona sincronizat acea zon6. n acelai timp, un server de nume poate fi responsabil de mai multe zone. Spre exemplu, furnizorii de servicii DNS ofer solicitanilor de nume posibilitatea de folosire a serverelor de nume proprii. Serverele de nume ale furnizorilor de servicii DNS vor gestiona, aadar, zona aferent domeniului solicitantului. Noiunile de domeniu, subdomeniu i zone sunt strns legate de proiectarea descentralizat a serviciului DNS. n cadrul DNS se creeaz o ierarhie de domenii i subdomenii, iar intrrile aferente sunt coagulate n zone care intr n gestiunea a cel puin unui server de nume. Serverele de nume se numesc autoritare pe acele zone i pot rspunde interogrilor clienilor7.

9.3.2 nregistrri DNS


Serviciul DNS are ca rol principal translatarea numelor n adrese IP, deoarece este mult mai uor pentru o persoan s rein nume dect adrese IP. n momentul n care este folosit un nume, serviciul DNS este interogat pentru a furniza adresa IP aferent numelui i pentru a permite, astfel, conectarea la dispozitivul de reea identificat prin adresa IP. Pentru aceasta, serviciul reine asocieri/mapri ntre nume i adrese IP. Este similar tabelei ARP din cadrul unui sistem de operare care reine asocieri ntre adrese IP i adrese MAC. Aceste mapri sunt gestionate, n cadrul fiecrei zone de DNS, de serverul de nume (sau serverele de nume) responsabil de acea zon. Un client va trimite o cerere DNS de translatare a unui nume, iar serverul de nume i va rspunde, dup consultarea listei de intrri, cu adresa IP aferent. Intrrile gestionate de un server de nume poart numele de nregistrri DNS (DNS records) sau nregistrri de resurse (resource records). Pentru fiecare zon, serverul de nume aferent gestioneaz o baz de date de nregistrri. Aceast baz de date este actualizat atunci cnd se adaug, se terg sau se modific intrri, sau cnd este interogat n momentul primirii unei solicitri de la un client DNS. Procesul de servire a unei cereri din partea clientului se cheam rezolvare DNS (DNS resolution). Rezolvarea DNS presupune interogarea serviciului DNS i, n consecin, a bazei de date cu nregistrri, i furnizarea rspunsului la solicitarea clientului. Solocitarea clientului poart numele de interogare DNS (DNS query). La nivel schematic, o baz de date de nregistrri este compus din intrri cu dou elemente: nume i adrese IP, la fel ca mai jos:
www.start.info. 141.85.227.9 mail.start.info. 141.85.227.10 db.comp.start.info. 141.85.227.11 users.comp.start.info. 141.85.227.12

De obicei ntr-o formul master slave. Sincronizat nseamn c i vor comunica actualizrile pentru a menine informaiile consecvente. 7 Adic traduc nume n adrese IP.
6

298 | R e e l e l o c a l e d e c a l c u l a t o a r e n momentul n care un client trimite o interogare pentru numele db.comp.start.info., baza de date este consultat, se parcurge lista de nume i, n momentul unei potriviri, se extrage adresa IP corespunztoare (n cazul de fa 141.85.227.11).

Tipuri de nregistrri
Interogrile astfel trimise de client poart numele de cereri de rezolvare direct (forward DNS resolution). Clientul deine numele i dorete s afle adresa IP. Exist ns situaii n care se dorete interogarea DNS pentru a afla numele corespunztor unei adrese IP. Aceasta poart numele de rezolvare invers (reverse DNS resolution). Un caz de folosire a rezolvrii inverse apare n tehnicile antispam pentru serviciul de e-mail: n momentul primirii unui mesaj de la o adres IP, se realizeaz o cerere de rezolvare invers pentru a verifica dac numele aferent acelei adrese IP este compatibil cu adresa de e-mail a expeditorului. Nevoia de translatare a adreselor IP n nume este una dintre cauzele pentru care, n DNS, exist tipuri de intrri (DNS record types). Astfel, intrrile pentru rezolvare direct sunt intrri de tipul A (address record), iar intrrile de rezolvare invers sunt intrri de tipul PTR (pointer record). Cu aceste adugiri, intrrile din baza de date DNS, precizat mai sus devin:
www.start.info. mail.start.info. db.comp.start.info. users.comp.start.info. 141.85.227.9 141.85.227.10 141.85.227.11 141.85.227.12 A A A A PTR PTR PTR PTR 141.85.227.9 141.85.227.10 141.85.227.11 141.85.227.12 www.start.info. mail.start.info. db.comp.start.info. users.comp.start.info.

Un alt tip de intrare DNS este cea specific adreselor IPv6. n cadrul unei zone, se pot realiza asocieri ntre nume i adrese IPv6; mai mult, un nume poate avea asociat att adrese IPv4 ct i adrese IPv6. Intrrile IPv6 se gsesc n nregistrri de tipul AAAA, ca mai jos:
www.start.info. mail.start.info. AAAA AAAA 2a00:1450:400d:7f5::e292 2a00:1450:400d:7f5::e293

Dac, pentru echilibrarea ncrcrii (load balancing), se doresc mai multe staii aferente unui nume, se pot folosi mai multe intrri de tipul A sau AAAA. Astfel, unui nume i corespund mai multe adrese IP; unui client i este ntoars o singur adres IP, n cazul unei interogri, n general dup o parcurgere round robin8. n mod similar apare situaia n care mai multe nume s refere aceeai adres IP. Un caz de folosire este pentru virtual hosting n lumea serverelor web sau a serverelor de e-mail. Pentru aceasta se folosesc alias-uri DNS, n care un nume refer un alt nume, similar link-urilor din sistemul de fiiere. Un alias este o nregistrare care mapeaz un nume la alt nume. n cazul unei interogri, se parcurg alias-urile din baza de date pn la extragerea adresei IP corespunztoare. nregistrrile DNS de tip alias sunt cunoscute ca tip CNAME (Canonical NAME for an alias). Intrrile au o form precum cea de mai jos:
ftp.start.info. CNAME www.start.info.

n cazul intrrii de mai sus, ftp.start.info. este alias pentru www.start.info., care are adresa IP 141.85.227.9. n acest caz, o interogare pentru numele ftp.start.info. va ntoarce adresa 141.85.227.9. nregistrrile din baza de date a unei zone nu se refer doar la nume de staii ci i la nume de domenii. Astfel, n cadrul unei zone, pentru un domeniu sau subdomeniu trebuie precizat care este serverul de nume aferent acelui domeniu, adic ce server de nume este autoritar i trebuie interogat pentru intrri din acel domeniu. Aceste intrri sunt de tipul NS i au formatul urmtor:

Round robin este un algoritm de alegere secvenial a elementelor dintr-o mulime cu revenire la primul element dup epuizarea elementelor.

S e r v i c i i d e r e e a | 299
start.info. ns.start.info. sales.start.info. ns.sales.start.info. NS A NS A ns.start.info. 141.85.227.225 ns.sales.start.info. 141.85.37.92

n listarea de mai sus, domeniul start.info. are ca server de nume ns.start.info. La fel, subdomeniul sales.start.info. are ca server nume ns.sales.start.info. Intrrile de tipul NS fac asocierea ntre dou nume: un nume de domeniu (domeniul) i un nume de staie (serverul de nume autoritar pe domeniu). Pentru ca un server de nume s poat fi contactat, este nevoie de adresa lui IP. De aceea intrrile de tipul NS sunt mperecheate cu intrri de tipul A n care se precizeaz adresa IP a serverului. Aceste intrri poart numele de glue records9 i sunt necesare pentru funcionarea serviciului de nume. Serviciul DNS este folosit de serviciul de e-mail. n cadrul acestuia, trebuie identificat serverul de e-mail responsabil pentru o adres de e-mail. Astfel trimiterea unui mesaj ctre contact@start.info nseamn contactarea serverului de e-mail aferent domeniului start.info. Acest server de mail este identificat printr-o intrare de tipul MX (mail exchange) din baza de date a serverului, la fel ca mai jos:
start.info. mail.start.info. MX A mail.start.info. 141.85.227.10

n listarea de mai sus, domeniul start.info. are ca server de e-mail mail.start.info. La fel ca n cazul intrrilor NS, asocierea este realizat ntre un nume de domeniu (domeniul) i un nume de staie (server de e-mail). Pe lng intrrile de tipul A, PTR, AAAA, CNAME, NS, MX, exist mai multe intrri ntr-o baz de date a unei zone DNS. O list exhaustiv a acestora10 se gsesc n documentele RFC. RFC-ul 1035 cuprinde intrrile de baz; intrrile noi, precum cele legate de securitate, se gsesc n documente RFC mai recente. Este de ateptat ca noi RFC-uri s introduc alte tipuri de intrri conform nevoilor.

DNS i IPv6
n mod tradiional, DNS a fost responsabil cu translatarea numelor n adrese IPv4. Pe msura proliferrii adreselor IPv6, DNS va ncepe s fie folosit pentru translatarea numelor n adrese IPv6. O schimbare rapid de la adresare IPv4 la adresare IPv6 nu va avea loc, astfel c este de ateptat ca cele dou tipuri de intrri s coexiste. n acest sens, pentru un nume dat vor exista, n multe cazuri, o adres IPv4 i o adres IPv6. Favorizarea uneia dintre cele dou tipuri de adrese va ine de opiunea utilizatorului i de facilitilor oferite de implementarea clientului. Astfel, apelul gethostbyname permite preluarea tuturor adreselor aferente unui nume, n timp ce apelul gethostbyaddr permite selectarea interogrii doar dup adrese IPv4 (AF_INET4) sau doar dup adrese IPv6 (AF_INET6) sau ambele (AF_UNSPEC). innd cont de latena DNS, selectarea dup una dintre cele dou tipuri de adrese poate fi un factor de eficien. n general, datorit implementrilor cu probleme de IPv6 de pe diverse echipamente, furnizorii de servicii Internet, n special furnizorii de servicii web (precum Google, Facebook) evit furnizarea prioritar de adrese IPv6. Astfel c un client care folosete att IPv4 ct i IPv6, va primi, n cazul unei interogri DNS, adrese IPv4. n cazul primirii unei adrese IPv6 i a unei implementri nevalide pe sistemul propriu sau pe ruter, site-ul n cauz nu ar funciona, utilizatorul concluzionnd, n general, c este vina furnizorului serviciului. Pentru rezolvarea unor probleme precum cele de mai sus i pentru a facilita adoptarea IPv6, o serie de companii n domeniul tehnologiilor web (precum Google, Facebook, Yahoo!) particip la World IPv6 Day11. n aceast zi, nume precum www.google.com sau www.facebook.com sunt traduse la adrese IPv6 pentru acei clieni care sunt conectabili la norul IPv6.
9

http://faq.domainmonster.com/dns/glue_record/ http://en.wikipedia.org/wiki/List_of_DNS_record_types 11 http://www.worldipv6day.org/participants/


10

300 | R e e l e l o c a l e d e c a l c u l a t o a r e ntr-un alt efort de facilitare a adoptrii IPv6, Stuart Cheshire a propus apelul connectbyname. Acest apel este folosit pentru a permite conectarea unui client la un serviciu dat, fr a fi nevoie de aflarea, n prealabil a adresei IP a acestuia (printr-un apel de forma gethostbyname). Apelul connectbyname primete ca argument un nume n locul unei adrese IP, realizeaz n spate interogarea DNS corespunztoare, i, n cazul disponibilitii unei adrese IPv6, realizeaz conectarea la acea adres. Adoptarea IPv6 n Internet depinde de implementri funcionale pe un numr ct mai mare de echipamente. ntruct este improbabil o trecere brusc de la IPv4 la IPv6, este ateptat o migrare lent care nseamn coexistena celor dou protocoale. Serviciul DNS trebuie s asigure suportul pentru aceast coexisten cu meninerea unor nregistrri de tipul A i de tipul AAAA pentru numele din Internet. Clienii DNS, prin apelurile de bibliotec aferente, trebuie s ofere utilizatorului posibilitatea conectrii pe IPv4 i pe IPv6 cu recomandarea folosirii ct mai intense a IPv6.

9.3.3 Funcionarea serviciului DNS


La fel ca majoriatea serviciilor din Internet, serviciul DNS este un serviciu client server. Particularitatea sa st n faptul c este un serviciu distribuit, dar comun la nivelul ntregului Internet. Putem vorbi despre un singur serviciu DNS n Internet, implementat cu ajutorul mai multor servere DNS, denumite i servere de nume. n virtutea descentralizrii i ierarhiei domeniilor, fiecare server este responsabil pe anumite domenii. Un client va trebui s ajung la acel server pentru a obine informaii despre acel domeniu. Interogrile realizate de client ctre serverul DNS sunt interogri simple (de obicei, se solicit adresa IP corespunztoare unui nume). Din acest motiv, protocolul de comunicare DNS este un protocol cu format binar care ruleaz peste UDP. Serverele de nume ateapt interogri DNS pe portul 53. Clientul DNS este folosit, n mod transparent, n cazul majoritii celorlalte servicii. n momentul accesrii unui site web, se realizeaz n spate o cerere DNS pentru rezolvarea numelui. n cazul trimiterii unui e-mail se realizeaz o cerere DNS pentru determinarea serverului de mail aferent domeniului destinatarului, urmat de o cerere de rezolvare a numelui serverului de e-mail. Pentru aceasta, clientul (denumit i resolver) este implementat, la nivelul sistemului de operare, printr-un set de apeluri de bibliotec. Clienii web i alte procese de reea vor invoca apelurile de bibliotec dedicate pentru a afla adresa IP a partenerului de comunicaie. Serverele de nume gestioneaz intrrile din cadrul zonelor pe care sunt autoritare. Serverul de nume ns.start.info, autoritar pe domeniul start.info, va rspunde cererii de aflare a adresei IP pentru numele www.start.info. Pentru aceasta va consulta baza de date aferent zonei, va cuta numele www.start.info i va oferi ca rspuns adresa IP din cadrul nregistrrii.

Cereri recursive i nerecursive


Fiecare staie din Internet are configurate local unul sau mai multe servere de nume. Acestea sunt interogate de clientul local i se obin informaiile cerute. Pentru a menine clientul simplu, serverul de nume este obligat s rezolve cererilor clientului indiferent dac este sau nu responsabil/autoritar pe acestea. Folosindu-se de ierarhia serviciului DNS, acesta va realiza cereri ctre alte servere de nume i va obine informaia pe care o va trimite clientului. Se spune c, n situaia de mai sus, clientul trimite cereri recursive serverului configurat local. O cerere recursiv impune serverului rezolvarea acesteia chiar n absena datelor la nivel local. ntruct cererile recursive necesit procesare suplimentar, serverele de nume sunt configurate s rspund la cereri doar din partea unui subset de clieni, de obicei clienii dintr-o reea local. n cazul unei cereri recursive, dac serverul de nume nu deine informaia solicitat, va interoga alte servere de nume din Internet; n aceast situaie serverul de nume local va avea rolul de client. Cererile pe care le va emite ctre acestea vor fi cereri nerecursive, pentru a nu ncrca serverele. Pentru o cerere nerecursiv fie primete un rspuns pozitiv, cu informaia solicitat (pe care o va

S e r v i c i i d e r e e a | 301 transmite ulterior clientului), fie un rspuns negativ cu un indiciu (hint) legat de alt server de nume pe care s-l contacteze. n general, cererile recursive vor fi emise de staiile dintr-o reea local ctre serverul de nume configurat local, iar cererile nerecursive vor fi emise de serverele de nume care interogheaz alte servere de nume.

Caching
Dat fiind latena procesului de interogare, n special datorat interogrilor nerecursive dintre servere, serverele DNS pot folosi mecanisme de caching. Astfel, pentru o perioad de timp rezolvrile cererilor clienilor sunt meninute n cache-ul serverului pentru interogri ulterioare. Pe lng reducerea latenei de interogare, un beneficiu al cache-ului este acela c menine informaii pentru care serverul autoritar este picat sau neresponsiv, ca form de toleran la defecte. Cache-ul poate avea i un efect negativ, acela al transmiterii unei informaii neactualizate. Pentru aceasta, intrrile n cache au un timp de via dup care sunt invalidate. Timpul de via este, n general, de ordinul orelor; astfel, n cazul actualizrii unei nregistrri, poate dura mai multe ore pn cnd schimbarea este vizibil la nivelul Internetului.

Scenarii de interogare DNS


n continuare sunt prezentate o serie de scenarii de utilizare a serviciului DNS, innd cont de diverse configurri i informaii prezente pe server. Se presupune c un client DNS dorete s obin adresa IP pentru numele www.start.info i are configurat un server local pe care l interogheaz. Scenariul cel mai simplu este acela n care serverul de nume configurat local pe client este autoritar pe domeniul start.info; fie ns.start.info acest server. n aceast situaie, serverul ns.start.info deine n baza de date nregistrarea aferent intrrii www.start.info i i-o furnizeaz clientului. Operaia se ncheie aici. Scenariile din continuare vor presupune c serverul de nume configurat local pe client nu este autoritar pe domeniul start.info. Un scenariu simplu este acela n care serverul de nume deine nregistrarea aferent intrrii www.start.info. n acest caz, la primirea cererii din partea clientului, serverul verific nti dac este autoritar pe domeniu. ntruct nu este, serverul consult cache-ul. Intrarea este prezent n cache astfel c este returnat clientului. Dac intrarea nu este ns prezent n cache, scenariul se complic. n momentul n care serverul primete cererea (recursiv) i realizeaz c intrarea nu se gsete n cache, trebuie s consulte alte servere pentru determinarea informaiei. Pentru aceasta, caut n cache dac are o nregistrare de tipul NS pentru domeniul start.info. Dac aceast intrare exist, nseamn c poate determina serverul de nume pentru domeniul start.info (adic ns.start.info). n mod obinuit va gsi n cache i o nregistrare de tipul A pentru ns.start.info, astfel c se va putea conecta la adresa IP a ns.start.info. Va trimite o cerere nerecursiv ctre ns.start.info, n care va solicita adresa IP a numelui www.start.info; ns.start.info este autoritar pe domeniul start.info i deine nregistrarea cerut, pe care i-o ntoarce serverului. Serverul i actualizeaz cache-ul cu nregistrarea obinut i i-o transmite clientului. Viitoare interogri pentru www.start.info vor fi servite din cache. Dac, n scenariul de mai sus, serverul de nume local nu deine n cache nregistrarea de tipul NS pentru start.info, atunci trebuie s interogheze un alt server de nume care o deine. Pentru aceasta, se uit n cache dup intrarea NS aferent domeniului info. Dac deine aceast intrare atunci va putea investiga serverul de nume al domeniului info (fie ns.info.). Acest server de nume, autoritar pe domeniul info, i va putea transmite nregistrarea de tip NS pentru domeniul start.info. i trimite aceast intrare, n urma interogrii cu o cerere nerecursiv, i serverul local i actualizeaz cache-ul. n continuare urmeaz paii definii anterior. Dac, n cazul de mai sus, server de nume local nu deine n cache nregistrarea de tip NS pentru info, atunci trebuie s apeleze la unul dintre servererele de nume pentru domeniul rdcin care se gsesc tot timpul n cache. Aceste servere de nume se gsesc n configuraia de bootstrap a

302 | R e e l e l o c a l e d e c a l c u l a t o a r e implementrii oricrui server de nume. n cazul Bind, fiierul aferent de configuraie este db.root. Serverul de nume local va interoga, cu o cerere nerecursiv, unul dintre serverele rdcin pentru nregistrarea de tip NS pentru domeniul info. O dat furnizat aceast intrare, serverul poate interoga serverul autoritar pe domeniul ns.info (cel de mai sus) i se reiau paii de mai sus. De observat c interogrile din scenariile prezentate anterior erau interogri pozitive, adic solicitau o adres IP pentru un nume existent. Putem considera noiunea de interogri negative n cazul n care intrarea nu exist. i n acest caz, pentru a preveni overhead-ul de comunicare n Internet, intrrile negative sunt pstrate n cache. Un client care va solicita adresa IP pentru numele zgja.wqwq.info, absent din Internet, va primi rspuns negativ de la serverul de nume local (dup parcurgerea tuturor pailor de mai sus), iar serverul de nume local va popula cache-ul cu intrare negativ. Cereri ulterioare pentru acel nume vor rezulta n consultarea cache-ului i furnizarea rapid a unui rspuns negativ. Situaia de mai sus poate fi problematic atunci cnd se configureaz o intrare nou n cadrul unui server nou de nume. n cazul n care serverul nu a fost configurat corespunztor, nregistrarea nu va fi disponibil. Atunci, toate serverele de nume de reele locale care l-au interogat vor avea n cache o intrare negativ. Presupunnd c greeala de configurare este reparat, informaia va fi disponibil clienilor de reele locale doar dup expirarea intrrilor n cache. Intervalul de expirare al unei nregistrri n cache se numete TTL (time to live). Se recomand un echilibru n configurarea acestuia: suficient de mare nct s fie eficient procesul de rezolvare i s acopere ct mai puini pai; suficient de mic nct actualizrile intrrilor s se propage rapid n Internet. n general, valorile tipice sunt de ordinul orelor, uneori chiar zilelor, innd i de specificul i dinamica domeniilor gestionate de serverele de nume.

Clieni DNS i utilitare de interogare


Mai sus a fost precizat c majoritatea proceselor de reea folosesc, fr intervenia utilizatorului, serviciul DNS. Un client web va consulta serviciul DNS pentru a determina adresa IP a numelui din URL; un client de e-mail va consulta serviciul DNS pentru a determina serverul de mail (intrarea de tipul MX) al domeniului adresei destinatarului. Pentru folosirea resolverului DNS, sistemul local configureaz un server de nume, de obicei furnizat de ISP (Internet Service Provider), care s fie interogat pentru rezolvarea cererilor DNS. Pentru validarea configurrii serviciului DNS se folosesc utilitare specifice de interogare DNS. Aceste utilitare au rolul de a formula cereri DNS i de a le transmite, spre rezolvare, unui server de nume. Astfel de utilitare sunt host, dig sau nslookup pe Linux, sau nslookup pe Windows. Utilitarele de mai sus implementeaz funcionalitatea de client, dar ele nu sunt folosite n vreun fel de procesele de reea. Implementarea de client de DNS este proprie, nefolosind apelurile de bibliotec ale resolverului. Rolul acestora este, n general, de depanare a serviciului DNS i de validare a configuraiilor realizate. Dou moduri recomandate pentru a valida funcionarea serviciului DNS sunt folosirea ping sau folosirea host. Ambele trimit cereri recursive ctre serverul de nume configurat local, dar difer ca implementare. Ping folosete resolverul DNS al sistemului (accesibil prin apeluri de bibliotec), n vreme ce host deine o implementare proprie de client DNS.

9.3.4 Implementarea resolverului DNS pe Linux


Resolverul DNS este entitatea folosit, n mod transparent, de toate procesele de reea pentru rezolvarea numelor. Resolverul conine o implementare de client DNS care realizeaz cererile recursive necesare ctre serverul de nume local i ofer procesului de reea informaiile solicitate. Interfaa cu resolverul este asigurat, n API-ul POSIX (i, deci, n Linux), de apelurile gethostbyname12 i gethostbyaddr, sau de versiunile mai noi ale acestora: getnameinfo i
12

http://www.kernel.org/doc/man-pages/online/pages/man3/gethostbyname.3.html

S e r v i c i i d e r e e a | 303 getaddrinfo13. Aceste apeluri ntorc, pentru un nume dat, adresele IP corespunztoare. gethostbyaddr, versiune mai nou a gethostbyname, permite selectarea tipurilor de nregistrri cerute: fie IPv4 (de tipul A), fie IPv6 (de tipul AAAA). Resolverul DNS reprezint doar o parte din operaiile efectuate de funciile gethostbyname/gethostbyaddr. Pentru gestiunea numelor pe sistemul local, pe lng baza de date DNS, mai pot fi folosite i baza de date local (/etc/hosts) sau serviciul de multicast DNS14. Resolverul DNS este corelat bazei de date DNS. Configurarea bazelor de date care vor fi consultate se gsete n fiierul /etc/nsswitch.conf, fiierul de configurare a Name Service Switch. Name Service Switch15 (NSS) este folosit pentru configurarea serviciilor de nume. Nu ne referim doar la nume de staii, ci i la nume de utilizatori, de protocoale, de servicii. Acest mecanism este configurat n fiierul /etc/nsswitch.conf, linia de configurare specific fiind:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Aceast linie spune c pentru serviciul de nume de staii (hosts) sunt consultate, alternativ, baza de date local (files), reprezentat prin fiierul /etc/hosts, baza de date multicast DNS (mdns4_minimal), reprezentat de serviciul avahi pe Linux, sau baza de date DNS, accesibil prin intermediul resolverului DNS. Fiierul /etc/hosts16 este o baz de date static, controlat de administratorului sistemului local, n care sunt precizate mapri ntre nume sau adrese IP. n general, are preceden n faa DNS (dac files apare nainte de dns n linia de mai sus); astfel c, adugarea unei linii de forma
1.2.3.4 google.com

nseamn c folosirea numelui google.com n procesele de reea va conduce la ncercarea de conectare la adresa IP 1.2.3.4. Serviciul multicast DNS este un serviciu din reeaua local care realizeaz o mapare implicit a adreselor IP ale staiilor la nume de forma <nume-statie>.local. Astfel, dac ntr-o reea local, exist dou staii cu numele alamar i jeddite i ambele staii au configurat multicast DNS17 vor putea s se identifice cu numele alamar.local, respectiv jeddite.local. Serviciul DNS nseamn consultarea resolverului DNS implementat local. Acesta va transmite cereri DNS recursive serverului DNS configurat local. Configurarea serverului DNS se realizeaz n fiierul /etc/resolv.conf, cu o linie sau mai multe de forma:
nameserver 141.85.226.5 nameserver 141.85.241.113

n cazul prezenei mai multor servere, al doilea va fi folosit doar n caz de nefuncionare a primului. Serverele DNS din fiierul /etc/resolv.conf sunt configurate doar n format de adres IP. Nu se poate configura un server de nume n format de nume pentru c atunci ar fi nevoie de un server de nume care s ofere adresa acestuia. n cazul prezenei liniei de mai sus din fiierul /etc/nsswitch.conf, se va interoga nti baza de date local, apoi baza de date multicast DNS, apoi serviciul DNS. Acest lucru se poate observa i prin captura apelurilor open pentru procesul ping, cu ajutorul comenzii strace. Comanda strace permite inspectarea apelurilor de sistem realizate de un proces. n cazul nostru urmrim bibliotecile deschise de proces prin inspecia apelului open (cu opiunea -e open):
$ sudo strace -e open ping -c 1 google.com > /dev/null [...] open("/etc/resolv.conf", O_RDONLY) = 4 open("/etc/nsswitch.conf", O_RDONLY) = 4
13 14

http://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo.3.html http://en.wikipedia.org/wiki/Multicast_DNS 15 http://www.gnu.org/software/libc/manual/html_node/Name-Service-Switch.html 16 http://www.kernel.org/doc/man-pages/online/pages/man5/hosts.5.html 17 avahi pe Linux

304 | R e e l e l o c a l e d e c a l c u l a t o a r e
open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY) = 4 open("/etc/host.conf", O_RDONLY) = 4 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4 open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY) = 4 open("/lib/x86_64-linux-gnu/libnss_dns.so.2", O_RDONLY) = 4 open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY) = 4 [...]

Toate apelurile de sistem de mai sus sunt realizate de apelul de bibliotec gesthostbyname(). Din listarea de mai sus au fost extrase unele apeluri pentru a le prezenta doar pe cele importante. Explicaia pentru fiecare linie dintre cele de mai sus este prezentat mai jos: prima linie deschide fiierul /etc/resolv.conf pentru extragerea serverului de nume; a doua linie deschide fiierul /etc/nsswitch.conf pentru a determina ce baze de date de nume de staii trebuie consultate i n ce ordine; conform liniei precizate mai sus ordinea va fi files, mdns4_minimal i dns; n primul pas se consult baza de date files, prin ncrcarea i folosirea bibliotecii aferente (libnss_files.so.2); configurarea bazei de date files se realieaz n fiierul /etc/host.conf, care este deschis i interpretat; baza de date se gsete n fiierul /etc/host; n cadrul fiierului /etc/host se caut intrarea google.com; ntruct nu este gsit, se trece la urmtoarea baz de date; urmtoarea baz de date este mdns4_minimal; consultarea acesteia se realizeaz prin ncrcarea i folosirea bibliotecii aferente (libnss_mdns4_mininal.so.2); serviciul multicast DNS nu dispune de intrare pentru google.com, aa c se trece la urmtoarea baz de date; baza de date interogat n continuare este baza de date dns; consultarea acesteia se realizeaz prin ncrcarea bibliotecii libnss_dns.so.2; n cadrul acestei biblioteci se apeleaz resolverul DNS, implementat n biblioteca libresolv.so.2; resolverul DNS este cel care realizeaz cererile DNS ctre serverul DNS din fiierul /etc/resolv.conf i apoi ntorc rezultatul n apelant (adic n procesul care a apelat gethostbyname). Aadar, pe Linux, resolverul DNS este implementat n forma unei biblioteci integrate n biblioteca standard C. Apelurile gethostbyname sau gethostbyaddr proceselor de reea constituie o interfa pentru mai multe baze de date de rezolvare a numelor de staii, printre care i resolverul DNS.

9.3.5 Utilitarul host


Resolverul DNS este folosit de procesele de reea n dou situaii: pentru determinarea unei adrese IP, cnd se cunoate numele staiei (rezolvare direct), i pentru determinarea unui nume cnd se cunoate adresa IP (rezolvare invers). Cu toate acestea, un server DNS ofer mai multe faciliti care trebuie s fie verificate. Pentru situaiile de validare a configurrii unui server DNS, precum i pentru depanarea problemelor de folosire a serviciului DNS, se folosesc utilitare de interogare specifice, precum host, dig i nslookup. Toate utilitarele au funcionaliti similare; n continuare prezenta utilitarul host. Ca utilitare de interogare a serviciului DNS, host permite realizarea de cereri (recursive sau nerecursive) pentru toate tipurile de nregistrri. n mod implicit, serviciul realizeaz cereri pentru interogri de tipul A dac i se transmite ca argument un nume de staie, de tipul MX dac i se trimite ca argument un nume de domeniu, sau de tipul PTR dac i se transmite ca argument o adres IP, aa cum se observ aici:

S e r v i c i i d e r e e a | 305
$ host cursuri.cs.pub.ro cursuri.cs.pub.ro has address 141.85.227.111 $ host pub.ro pub.ro mail is handled by 5 mail.pub.ro. pub.ro mail is handled by 50 relay.roedu.net. $ host 141.85.227.118 118.227.85.141.in-addr.arpa domain name pointer swarm.cs.pub.ro.

n cadrul primei rulri a comenzii, se transmite ca argument numele cursuri.cs.pub.ro. Rspunsul conine nregistrarea de tipul A, adic adresa IP a numelui de staie cursuri.cs.pub.ro (141.85.227.111). Cea de-a doua rulare folosete argumentul pub.ro, care este numele unui domeniu. Rezultatul const n afiarea serverelor de mail ale domeniului, n urma transmiterii unor nregistrri de tipul MX de la server. n fine, ultima rulare primete ca argument o adres IP, ntorcndu-se numele staiei aferente, swarm.cs.pub.ro, n cadrul unei nregistrri ARP. n cazul n care un nume este numele unei staii care are aferente mai multe adrese IPv4, sau mai multe adrese IPv6, sau i adrese IPv4 i adrese IPv6, atunci se afieaz toate adresele. Mai jos se realizeaz o interogare pentru numele de staie ftp.ines.lug.ro, rezultnd ntr-o adres IPv4 i dou adrese IPv6:
$ host ftp.ines.lug.ro ftp.ines.lug.ro has address 83.166.201.99 ftp.ines.lug.ro has IPv6 address 2002:53a6:c978::da7a ftp.ines.lug.ro has IPv6 address 2a02:2a00:2c00:feed::da7a

Dac numele transmis ca argument este att nume de staie, ct i nume de domeniu, se realizeaz o interogare de tip A pentru staie pentru determinarea adresei IP i o interogare de tip MX pentru domeniu pentru determinarea serverului de mail. Mai jos se realizeaz o interogare pentru lug.ro, care este att nume de staie ct i nume de domeniu. Rezult adresele IPv4 i IPv6 n urma unor interogri de tip A i serverul de e-mail aferent domeniului mail.lug.ro.
$ host lug.ro lug.ro lug.ro lug.ro lug.ro has address 83.166.201.98 has IPv6 address 2a02:2a00:2c00:feed::80 has IPv6 address 2002:53a6:c978::80 mail is handled by 10 mail.lug.ro.

n cazul n care numele este un alias, se afieaz rezultatul intrrii CNAME aferente (sau a mai multor intrri n caz de alias recurent) i o intrare de tipul A cu adresa IP a numelui efectiv. n rularea de mai jos, se trimite ca argument numele wiki.cs.pub.ro. Acesta este un alias la koala.cs.pub.ro, informaie ntoars ntr-o nregistrare de tip CNAME; koala.cs.pub.ro are adresa IP 141.85.227.114, informatie ntoars ntr-o nregistrare de tip A:
$ host wiki.cs.pub.ro wiki.cs.pub.ro is an alias for koala.cs.pub.ro. koala.cs.pub.ro has address 141.85.227.114

n exemplele de mai sus, valorile ntoarse sunt valori implicite pentru argumentul primit. Dac se dorete extragerea unui anumit tip de intrare atunci se poate folosi opiunea -t urmat de tipul cererii, ca mai jos:
$ host -t A lug.ro lug.ro has address 83.166.201.98 $ host -t AAAA lug.ro lug.ro has IPv6 address 2002:53a6:c978::80 lug.ro has IPv6 address 2a02:2a00:2c00:feed::80 $ host -t MX lug.ro lug.ro mail is handled by 10 mail.lug.ro. $ host lug.ro lug.ro lug.ro lug.ro -t NS lug.ro name server ns2.lug.ro. name server ns-1.ines.ro. name server ns1.lug.ro. name server ns3.lug.ro.

$ host -t CNAME lug.ro lug.ro has no CNAME record $ host -t SOA lug.ro

306 | R e e l e l o c a l e d e c a l c u l a t o a r e
lug.ro has SOA record ns1.lug.ro. hostmaster.lug.ro. 2012013001 3600 7200 86400 3600

Rulrile de mai sus realizeaz urmtoarele tipuri de interogri: adresa IP a staiei lug.ro printr-o interogare de tipul A (-t A); adresele IPv6 ale staiei lug.ro printr-o interogare de tipul AAAA (-t AAAA); serverul de e-mail al domeniului lug.ro printr-o interogare de tipul MX (-t MX); serverele de nume ale domeniului lug.ro printr-o interogare de tipul NS (-t NS); dac lug.ro este un alias, printr-o interogare de tipul CNAME (-t CNAME); rezult din rspuns c nu este; informaii autoritare pentru domeniul lug.ro, precum serverul de nume, adresa de e-mail a administratorului, un id de actualizare (de obicei data ultimei actualizri) i TTL-uri pentru cache n secunde; acestea sunt obinute printr-o interogare de tipul SOA (Start of Authority) (-t SOA). n mod implicit, utilitarul host folosete serverul de nume configurat pe sistemul local n fiierul /etc/resolv.conf. Dac se dorete testarea specific a unui server de nume, acesta poate fi transmis ca ultimul argument. De exemplu, dac vrem s aflm adresa IPv6 a staiei cu numele facebook.com prin interogarea unuia dintre serverele public DNS ale Google (8.8.8.8), vom folosi comanda de mai jos:
$ host -t AAAA facebook.com 8.8.8.8 Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: facebook.com has IPv6 address 2a03:2880:10:8f01:face:b00c:0:25 facebook.com has IPv6 address 2a03:2880:10:cf01:face:b00c:: facebook.com has IPv6 address 2a03:2880:2110:3f01:face:b00c:: facebook.com has IPv6 address 2a03:2880:2110:9f01:face:b00c::

Se observ c rezulatul rulrii difer de cel standard prin adugarea unor informaii despre serverul DNS folosit. Pentru depanarea serviciului DNS, sau pentru depanarea sau validarea unui server de nume, este esenial folosirea unui utilitar de interogare DNS. Utilitarul host ndeplinete acest rol, oferind o interfa simpl ctre utilizator.

9.4 Serviciul web


La nceputurile sale, Internetul era cuprins dintr-un numr redus de staii i resurse pentru reea. Pe msura dezvoltrii sistemelor de calcul, a dispozitivelor i mediilor de transmisie i a protocoalelor de comunicaie, Internetul a cptat din ce n ce mai multe noduri i mai multe resurse utilizate n reea. Boom-ul Internetului de la nceputul anilor '90 a accelerat aceast cretere. n contextul unui numr divers de resurse localizate pe multe staii n Internet, s-a pus problema accesrii acestora. Cum poate un nod din Internet s aib acces la resursele unui alt nod? Pentru un astfel de acces, este nevoie de: un mod de identificare a nodului, a resursei de pe acel nod, un mecanism de accesare a acesteia i forme de referire la alte resurse. Soluia pentru problema diversitii i dezorganizrii resurselor n Internet a fost dezvoltarea serviciului web (sau World Wide Web). Sir Tim Berners-Lee, inventatorul World Wide Web (WWW) are meritul de a fi proiectat sistemul ce permitea organizarea i referirea resurselor din Internet. Succesul acestei iniiative este demonstrat de prevalena World Wide Web n viaa de zi cu zi a utilizatorului de Internet. Interfaa web este, probabil, cea mai uzual interfa prin care un utilizator folosete Internetul. World Wide Web-ul este un spaiu global de informaie n Internet, n care resursele din Internet sunt identificate printr-o schem proprie (denumit URL Uniform Resource Locator) i care prezint legturi ctre alte resurse (denumite hyperlink-uri). n general, un web de informaie const n resurse interconectate accesibile unui set de utilizatori. World Wide Web-ul este web-ul global n Internet cu resursele disponibile tuturor utilizatorilor. Vom folosi interschimbabil, pe parcursul acestei seciuni, denumirea de serviciul web sau de World Wide Web (WWW).

S e r v i c i i d e r e e a | 307 Datorit popularitii World Wide Web pentru utilizatorii de Internet, acesta poate fi confundat cu Internetul. n vreme ce Internetul reprezint totalitatea reelelor interconectate de pe glob, World Wide Web este un serviciu care ruleaz n Internet i se folosete de infrastructura acestuia. World Wide Web este un serviciu similar serviciului DNS i serviciului de e-mail. Confuzia poate fi accentuat i de faptul c alte servicii din Internet pot fi configurate i utilizate tot dintr-o interfa web (spre exemplu, interfa webmail pentru e-mail, sau aplicaii web precum phpmyadmin sau phpldapadmin pentru gestiunea serviciilor MySQL sau LDAP). Tot popularitatea serviciul a condus la diversificarea cazurilor de utilizare a acestora. Gndit iniial ca mod de acces i structurare a resurselor, n zilele noastre este folosit n aplicaii colaborative, comunicare i socializare, de tranzacii financiare, online gaming, administrare de servicii. Acest lucru a condus la apariia i evoluia unei ramuri tehnice denumit dezvoltare web (web development) n care sunt implicate multe companii i multe persoane. Companii celebre precum Google, Facebook, Yahoo! i datoreaz existena i succesul World Wide Web-ului i unui numr din ce n ce mai mare de profesioniti n web development.

9.4.1 Dezvoltarea i standardizarea WWW


Deciziile de proiectare a serviciului web au inut de particularitatea Internetului. Punctul de pornire const ntr-un spaiu relativ haotic de resurse diverse cu legturi ntre ele. Pe baza acestor particulariti au aprut elementele ce constituie baza WWW: pagin web: n general o resurs web descris ntr-un format specific, denumit HTML (HyperText Markup Language) care poate fi accesat i apoi redat (rendered) utilizatorului; hyperlink: legtur prezent ntr-o pagin web ctre o alt pagin web; de obicei poate fi accesat printr-un click de mouse de utilizator; URL (Uniform Resource Identifier): mod unic de identificare a resursei/paginii web n Internet; este folosit de utilizator pentru accesarea resursei; un hyperlink este de fapt un URL al unei alte pagini; HTTP (HyperText Transfer Protocol): este protocolul folosit pentru accesarea paginilor/resurselor web; pe baza URL-ului resursa este localizat i apoi este accesat. Proiectarea protocolului HTTP, protocolul fundamental al web-ului, ine de particularitile acestuia. Protocol de tip client-server (clientul se mai numete browser), protocolul HTTP se remarc prin faptul c nu este orientat conexiune. Adic, dup obinerea unei resurse, conexiunea cu serverul se ncheie. Pentru a obine aceeai resurse sau a alteia, este nevoie de o alt conexiune. Aceast decizie ine cont de organizarea informaiilor n pagini de dimensiune redus i prezena hyperlinkurilor. n general, un utilizator va accesa o pagin din clientul web, acesta va reda pagina i apoi clientul o va urmri local. Accesarea unei noi pagini presupune, n general, accesarea unui hyperlink din cadrul paginii iniiale care poate duce ctre alt server. Meninerea unei conexiuni ctre serverul iniial ar nsemna un consum inutil de resurse. Nepersistena conexiunii n HTTP sporete eficiena consumului de resurse, dar creeaz probleme atunci cnd aceasta este necesar. De exemplu, atunci cnd un utilizator se autentific pe un site, este de ateptat s nu i fie cerute datele de autentificare la fiecare acces al paginii. Pentru aceast problem au fost gsite soluii specifice, descrise n. Protocolul HTTP i alte elemente specifice serviciului Web sunt disponibile n documente RFC. Pe lng acestea, ns, dezvoltarea rapid a serviciului a condus la nevoia standardizrii unor aspecte legate de structura, formatarea i redarea paginilor, precum HTML, CSS (Cascade Style Sheets), XML, XHTML, CGI. Efortul de standardizare a web-ului este coordonat de World Wide Web Consortium (W3C), condus de Sir Tim Berners-Lee. Consoriul dezvolt standarde deschise (open standards) care s fie folosite n web, n concordan cu moto-ul Leading the Web to its Full Potential. Procesul de standardizare n W3C urmeaz cinci niveluri: se ncepe cu Working Draft i se ncheie cu W3C

308 | R e e l e l o c a l e d e c a l c u l a t o a r e Recommendation. n momentul n care o propunere atinge nivelul W3C Recommendation, poate fi considerat un standard care s fie implementat de clienii i serverele web. Avansul web din ultimii ani de zile a determinat apariia a ceea ce s-a numit Web 2.0. Considerat n unele cercuri un termen de marketing, Web 2.0 se refer la avansul tehnologiilor web n materie de aplicaii colaborative i sociale: wiki-uri, blog-uri, site-uri de social networking, site-uri de partajare media etc. Web 2.0 marcheaz schimbarea paradigmei serviciului Web de la accesarea unor resurse la o paradigm n care utilizator interacioneaz activ cu acele resurse, putnd aduga, modifica sau terge aceste resurse; de exemplu, pe un wiki, un utilizator poate crea noi pagini, poate edita pagini existente, poate terge pagini, poate aduga imagini sau exemple de cod surs, poate uploada fiiere sau poate lega alte resurse n cadrul wiki-ului. Forma de participare activ i implicare a utilizatorului n dezvoltarea coninutului web au condus la apariia terminologiei Web 2.0. O evoluie a Web-ului, propus de Sir Tim Berners-Lee, este Web-ul semantic (Sematic Web). Web-ul semantic i propun ca, pe lnga organizarea resurselor n Internet, s ofere i metainformaii despre aceste resurse, despre conectarea inteligent cu alte resurse. Serviciul Web semantic ar trebui s rezolve cerinele utilizatorului n mod inteligent, putnd face recomandri sau lua decizii n locul utilizatorului.

9.4.2 Identificarea resurselor n Web


Proiectat pentru a structura cantitatea crescnd de informaie n Internet, web-ul folosete o schem care s permit identificarea unic a resurselor. Identificatorul fiecrei resurse n web se numete URL (Uniform Resource Locator). Un URL este irul introdus de utilizator n browser pentru accesarea unei resurse web i este modul n care sunt descrise legturile ntre resurse (hyperlinkurile). Un hyperlink este un URL care permite referirea unei resurse/pagini web din cadrul altei resurse i pagini. URL-ul a oferit Web-ului posibilitatea de identificare a staiei n Internet i a resursei din cadrul acelei pagini. n acest fel, orice fel de resurs pe care o staie o pune la dispoziie spaiului web va fi referit prin URL. n mod tipic, URL-ul este preocupat de identificarea staiei i a resursei. Astfel, folosirea n cadrul unui browser a URL-ului www.start.info va conduce la afiarea resursei rdcin de pe sistemul www.start.info. URL-ul este echivalent URL-ului www.start.info/; caracterul / precizeaz faptul c este vorba de directorul rdcin web pus la dispoziie de sistem18, similar directorului rdcin pe un sistem Unix. Folosind protocolul HTTP, browserul iniiaz o conexiune la serverul web (care este un proces) de pe staia identificat de numele www.start.info i i solicit acestuia resursa aferent directorului rdcin web. Serverul web i va rspunde i va nchide conexiunea. Dac utilizatorul dorete s extrag o anumit resurs/pagin, va putea transmite calea complet ctre acea resurs. De exemplu, la transmiterea cii www.start.info/networking/lectures/lecture-01.html, browserul va contacta serverul www.start.info i va solicita pagina networking/lectures/lecture-01.html, relativ la rdcina directorului rdcin web. n general, URL-ul precizeaz i protocolul folosit pentru comunicare. n mod implicit, browserele consider acest protocol ca fiind HTTP, astfel c este echivalent folosirea URL-urilor www.start.info/hello.html sau http://www.start.info/hello.html. Exist i alte protocoale care pot fi folosite n web; probabil cel mai cunoscut alt protocol este protocolul HTTP securizat sau HTTPS. Pentru folosirea acestuia, URL-ul folosete ca prefix irul https://, un exemplu de URL fiind https://www.start.info/hello.html pentru accesarea prin HTTPS a paginii hello.html din directorul rdcin web. n cazurile de mai sus, browserul iniiaz conexiuni ctre serverul web pe portul pe care acesta iniiaz conexiuni. n mod implicit, acest port este portul 80 pentru HTTP i 443 pentru HTTPS. n

18

DocumentRoot

S e r v i c i i d e r e e a | 309 cadrul URL-ului, utilizatorul poate preciza portul. Astfel perechile de URL-uri de mai jos sunt echivalente: http://www.start.info/hello.html i http://www.start.info:80/hello.html https://www.start.info/hello.html i https://www.start.info:443/hello.html Dac serverul web a fost configurat s asculte conexiuni pe alt port (diferit de 80 sau 443), atunci acesta trebuie precizat explicit n URL. Spre exemplu, dac serverul web a fost configurat s asculte conexiuni pe portul 8080 atunci URL-ul de obinere a paginii hello.html descrise mai sus va fi http://www.start.info:8080/hello.html. Schema de URL nu este folosit doar pentru protocolul HTTP sau HTTPS. Pot fi folosite i alte protocoale, ct timp clientul care folosete URL-ul cunoate acel protocol. Un protocol care poate fi folosit din browser este protocolul FTP i se poate folosi URL pentru acesta. De exemplu, URL-ul ftp://ftp.start.info/download/iso/udpcd.iso ofer accesul la resursa download/iso/udpcd.iso din directorul rdcin al serverul FTP, folosind protocolul FTP. Acest URL poate fi folosit doar n browserele care cunosc protocolul FTP, caz n care acioneaz pe post de client FTP. Alte protocoale care pot fi folosite n cadrul unui URL sunt IMAP (imap://), IMAPS (imaps://), FTPS (ftps://), SFTP (sftp://), LDAP (ldap://), LDAPS (ldaps://) i altele. Pentru ca un URL s aib sens, acesta trebuie s trimit la o resurs recunoscut de serverul n cauz, iar clientul trebuie s cunoasc protocolul specificat n URL. Schema de URL, n cazul n care protocolul folosete autentificare, permite specificarea numelui de utilizator i s parolei. Astfel, dac pentru accesarea unei resurse prin FTP este nevoie de autentificarea folosind utilizatorul tirion cu parola argent, se va folosi un URL de forma ftp://tirion:argent@ftp.start.info/download/iso/udpcd.iso. Formal, schema complet unui URL are aadar formatul: protocol://username:password@servername:port/path/to/resource protocol este protocolul folosit; este nevoie ca serverul care ateapt conexiuni i clientul s foloseasc acel protocol; username:password reprezint credenialele de autentificare; servername este numele staiei server, fie ca nume DNS fie ca adres IP; port este portul pe care procesul server ascult conexiuni pentru a comunica, folosind protocolul dat, cu procesul client; path/to/resource este calea ctre resurs, relativ la directorul rdcin al procesului serverului. Pentru testarea diverselor forme de URL, recomandm consultarea utilitarului curl. Acesta este un client pentru o diversitate de protocoale i implicit URL-uri (HTTP, FTP, LDAP, IMAP etc.). Am precizat c URL-ul este un mod de identificare a unei resurse n Internet. n fapt, un URL este modul de identificare a resursei pe baza modului n care aceast resurs este accesat, adic pe baza locaiei sale (location) n configurarea serverului. n Internet, noiunea care reflect n mod generic identificarea unei resurse n internet poart numele de URI (Uniform Resource Identifier). Un URI identific o resurs abstract sau fizic folosind un ir de caractere dup o schem specific, similar URL-ului. Nu este nevoie de precizarea unui mod de acces la acea resurs. Din acest motiv toate URL-urile sunt URI-uri, dar unele URI-uri nu sunt URL-uri. Exemplu de URI care nu este URL este adresa de e-mail. Formatul unei adrese de e-mail este mailto:abaddon@darksiders.com sau, simplificat, abaddon@darksiders.com. O astfel de adres este un URI, identificnd datele de contact i csua potal a unui utilizator, fr a specifica ns un mod de localizare a acesteia, deci nu este URL. Schemele posibile pentru URI-uri sunt numeroase i pot fi create i scheme noi, ct timp respect cerinele specificate n documentul RFC aferent. Spre exemplu, scheme de forma man:gcc i info:gcc acceseaz, respectiv, paginile de manual i info ale comenzii gcc. Detalii despre URI-uri se gsesc consultnd pagina de manual aferent de pe toate sistemele Linux (man-uri). Folosirea URL-urilor (i deci i a URI-urilor) specifice World Wide Web depinde de protocolul HTTP, protocolul de baz al web-ului, prezentat n continuare.

310 | R e e l e l o c a l e d e c a l c u l a t o a r e

9.4.3 HTTP
Dup cum a fost precizat anterior, particularitile legate de distribuirea datelor n Internet au condus la proiectarea unui serviciu neorientat conexiune. Dup obinerea fiecrei resurse, conexiunea se nchide, urmnd s se deschid o conexiune nou pentru alt resurs, de multe ori pe alt server. Meninerea conexiunii active ctre un anumit server ar reprezenta, de multe ori, un consum inutil de resurse att pe client ct i pe server. Protocolul HTTP (HyperText Transfer Protocol), protocolul esenial al serviciului web, este rezultatul deciziilor de proiectare de mai sus. HTTP este un protocol simplu, n mod text, fr conexiune persistent. Clientul web, denumit i browser, formuleaz o cerere HTTP care apoi este transmis serverului web, unde este prelucrat, dup care clientului i este servit rspunsul. Protocolul este asociat portului 80 TCP, port pe care ascult conexiuni serverul web. HTTP funcioneaz peste TCP, fiind nevoie de facilitile de livrare sigur i control al fluxului pentru transmiterea de fiiere de dimensiune mare. n mod convenional, dac un server web ascult conexiuni pe alt port, acesta este corelat numrului 80: fie portul 8000, fie portul 8080 sau altele similare. Protocolul este un protocol text i, ct vreme nu se face ncrcarea sau descrcarea de fiiere binare, pot fi urmrite ntr-o captur de sniffer (de tipul tcpdump sau wireshark) att cererea clientului, ct i rspunsul serverului. Cea mai simpl form de interogare din partea clientului, forma implicit, se realizeaz printr-un mesaj de tipul GET. Un astfel de mesaj solicit o resurs de la serverul Web. De exemplu, un client, dup conectare la un server web, i transmite acestuia mesajul:
GET /networking/lectures/lecture-01.html

Mesajul ajunge la server i este prelucrat. Serverul verific existena, n directorul su rdcin, a resursei /networking/lectures/lecture-01.html. n cazul existenei resursei, el i trimite un rspuns clientului, mpreun cu acea resurs. Rspunsul pozitiv este de forma
200 OK

Dup acest rspuns urmeaz resursa solicitat. Dup ce resursa este transmis, conexiunea este nchis. Acest mesaj este transmis de un browser n momentul folosirii URL-ului http://www.start.info/networking/lectures/lecture-01.html (desigur, poate fi vorba de alt server). URL-ul i transmite clientului ce server web s contacteze, folosind HTTP i o conexiune pe portul 80, i ce argument s foloseasc pentru mesajul de tip GET, adic /networking/lectures/lecture-01.html, calea ctre resursa dorit. Se observ traducerea simpl i rapid din URL ntr-o interogare ctre serverul web pentru obinerea resursei. n general, dac resursa este disponibil, serverul rspunde cu un mesaj pozitiv (200 OK) i cu resursa obinut n continuarea mesajului. n cazul unei probleme, serverul rspunde cu un mesaj de eroare. Exemple sunt: 400 Not found 500 Forbidden 600 Server Error Rspunsurile negative sunt, de obicei, prelucrate de clientul web i redate utilizatorului n forma unui mesaj de eroare.

Protocolul HTTP/1.1
La nceputurile web-ului, unei adrese IP i corespundea, n DNS, un singur nume. n acest fel, o conexiune pe portul 80 la staia cu adresa IP aferent nsemna c se folosise un URL ce coninea acel nume. Pe msura dezvoltrii Internetului a aprut situaia n care mai multe nume refereau aceeai adres IP i, prin gzduire virtual (virtual hosting), fiecare nume putea referi anumite resurse; fiecare nume referea alte resurse, chiar de pe acelai sistem. Spre exemplu, dac new.start.info era

S e r v i c i i d e r e e a | 311 un alias (CNAME n DNS) la www.start.info, ambele refereau aceeai adres IP. Cu o configuraie corespunztoare de gzduire virtual, URL-urile http://new.start.info/hello.html sau http://www.start.info/hello.html ar afia, probabil, alte informaii. Fiecare nume dispune de propriul director rdcin. n aceast situaie s-a pus problema identificrii, n cadrul cererii HTTP, a numelui la care face referire. Acest lucru nu se poate face n momentul conectrii. Din punctul de vedere al protocolului TCP, n momentul conectrii se realizeaz conectarea ntre dou adrese IP, nu ntre dou nume. Indiferent c este vorba despre numele new.start.info sau www.start.info, conexiunea se realizeaz la fel. Pentru aceasta, n versiunea 1.1 a protocolului HTTP s-a introdus completarea cmpului Host cu numele ctre care se adreseaz cererea. Astfel, o cerere complet pentru cazuri de gzduire virtual este:
GET /hello.html HTTP/1.1 Host: new.start.info

n cadrul cererii de mai sus, se precizeaz c se dorete obinerea resursei hello.html din directorul rdcin al serverului web pentru numele new.start.info. Dac ar fi aprut numele www.start.info, s-ar fi recuperat resursa din directorul rdcin al acestui nume, probabil diferit de anteriorul.

Alte tipuri de mesaje HTTP


Cea mai mare parte a mesajelor transmise de un client web serverului sunt mesaje de tipul GET. Aceste mesaje solicit resurse de la serverul web care apoi sunt transmise clientului. Interogarea serviciului Web poate presupune i moduri de personalizare a interogrii, pentru cazul unor cereri dinamice. Dac, spre exemplu, se dorete o listare i prelucrare a unor intrri dintro baz de date, cererea poate fi sufixat de un ir de forma &table=names&list=yes. n cadrul acestui ir se definesc dou variabile (table i list) ale cror valori pot fi folosite de server n prelucrarea sa dinamic. Aceste variabile pot fi transmise i din cadrul unui format HTML. n cazul acesta transmiterea lor nu se mai face direct URL, n cadrul unui mesaj GET, ci printr-un mesaj POST. Mesajele de tip POST i propun obinerea unor resurse cu precizarea variabilelor n mesajul de interogare, nu n URL. Forma POST este o form mai ascuns dect cea GET, n care datele sunt vizibile n URL, dar nu mpiedic parcurgerea variabilelor i valorilor acestora printr-un sniffer. Pe lng mesajele de tip POST i GET, protocolul HTTP ofer i alte tipuri de mesaje, folosite mai rar n Internet gen PUT sau DELETE. Proiectat pentru a rezolva ct mai eficient accesul la un numr vast de resurse din Internet, protocolul HTTP are, totui, dou dezavantaje importante. Primul este c nu are nici o form implicit de autentificare i securizare a transferului; innd cont de popularitatea protocolului, este important ca, dac se dorete, transferul ntre clientul i serverul web s fie securizat; pentru aceasta se folosete HTTPS. Al doilea dezavantaj ine de nepersistena conexiunii; dac un client se autentific la un server, datele de autentificare ar trebui trimise la fiecare cerere, ntruct fiecare cerere nseamn o nou conexiune.

9.4.4 HTTPS
Odat cu dezvoltarea i diversificarea Internetului, a crescut i numrul de atacuri de reea i numrul celor care le realizeaz. Din acest motiv, securizarea protocoalelor existente, precum HTTP, SMTP, IMAP, FTP, a devenit important. Cu att mai mult pentru HTTP, unul dintre cele mai uzuale protocoale din Internet. Securizarea protocoalelor de nivel aplicaie se realizeaz, n general, prin folosirea SSL/TLS (Secure Sockets Layer/Transport Layer Security). Este vorba de o specificaie de nivel Prezentare n stiva OSI care creeaz canale sigure de comunicare pentru transferul informaiei. Suprapunerea

312 | R e e l e l o c a l e d e c a l c u l a t o a r e protocoalelor de nivel aplicaie peste SSL/TLS a dat natere formelor securizate a protocoalelor de mai sus, precum HTTPS, SMTP+TLS, IMAPS, FTPS. HTTPS este forma securizat a protocolului HTTP. Pentru a putea fi folosit ntre clientul web i serverul web, ambele trebuie s foloseasc o implementare de SSL/TLS19. URL-urile de HTTPS substituie prefixul http:// cu https://. Portul implicit folosit de un server cu suport HTTPS este 443, diferit de portul 80 folosit de HTTP. Pe portul 443 serverul ascult cereri de conexiune doar de la clieni cu suport HTTPS. n general, un server web va asculta simultan conexiuni pe portul 80 (nesecurizate) i pe portul 443 (securizate). Securizarea comunicaiei n HTTPS (de fapt n tranzaciile securizate cu SSL/TLS) se realizeaz prin intermediul certificatelor digitale. n general, serverul i va demonstra identitatea clientului folosind un certificat digital. Clientul/Browser-ul dispune de un set de certificate de CA (Certification Authority) care valideaz certificatul serverului i, n consecin, identitatea acestuia (faptul c numele folosit corespunde, ntr-adevr, serverului contactat). n urma unei validri reuite, se stabilete o cheie de criptare comun care va asigura canalul securizat de comunicare prin criptarea traficului. Traficul, chiar dac este capturat i analizat de altcineva, nu va putea fi neles. n cazul n care browserul nu dispune de un certificat de CA care s valideze certificatul serverului, i va afia clientului faptul c nu este o conexiune sigur, cu eventuala afiare a unui mesaj solicitnd acceptarea certificatului serverului (afiare folosit de Mozilla Firefox sau Google Chrome). n general, site-urile importante sunt securizate n mod corect, iar browserele dein certificate de CA pentru a valida acele site-uri. Este recomandat ca, n cazul unui transfer de date directe, de exemplu autentificare cu nume de utilizator i parol, s se foloseasc HTTPS. Pentru site-urile publice unde se folosete HTTPS este, de asemnea, recomandat folosirea de certificate care s fie recunoscute de browsere. Costul unui certificat variaz20, dar este considerat important ca un site public s dispun de un certificat valid. n cazul unui site de prestigiu, aceast condiie se impune. Securizarea unui protocol, precum HTTPS, ofer un canal sigur de comunicare, garantnd astfel confidenialitatea transferului. ntotdeauna, ns, criptarea nseamn un consum mai mare de resurse att din partea clientului ct i din cea a serverului. nainte de a fi transmise pe reea, datele trec printr-un nivel suplimentar de prelucrare, care nseamn costuri de procesor i memorie. Pentru a preveni consumul de resurse datorat criptrii, se recomand folosirea acestui mod doar la nevoie. De exemplu, un wiki open, n care oricine are acces de scriere, nu necesit nici un fel de criptare; autentificarea, dac exist, nu ofer o protecie utilizatorului i datelor: nu conteaz cine scrie ct timp le scrie. n acest caz, nu are sens folosirea HTTPS; folosirea HTTP este suficient. Dac, ns, autentificarea folosete nite conturi importante pentru utilizator, ale cror credeniale se doresc a rmne ascunse, atunci se poate folosi HTTPS pentru criptarea tranzaciilor de autentificare. Dup ncheierea tranzaciilor de autentificare, restul tranzaciilor pot fi realizate nesecurizat, folosind HTTP. Eventual, alte pagini, precum cele de administrare, pot fi, de asemenea, securizate21. n fine, dac datele de pe wiki sunt critice, wiki-ul va fi ascuns i ntreg setul de tranzacii vor fi securizate folosind HTTPS; de avut n vedere c acest lucru va nseamna o ncrcare suplimentar a clientului i serverului web.

9.4.5 Servere web


Un serviciu foarte folosit i divers din Internet, serviciul Web impune prezena unui numr considerabil de feature-uri att din partea clientului ct i din partea serverului, depinznd de preferinele utilizatorului. n cazul serverelor web, sunt dorite funcionaliti precum criptarea traficului (HTTPS), suport pentru limbaje de web development (precum PHP, Ruby, Python, Perl), suport pentru forme de CGI (Common Gateway Interface), gestiunea accesului la pagini web, redirectri, pagini proprii fiecrui utilizator etc. Desigur, se dorete ca prelucrarea s fie ct mai
19 20

openssl/gnutls pe Linux http://www.whichssl.com/comparisons/price.html 21 Wordpress FORCE_LOGIN_SSL

S e r v i c i i d e r e e a | 313 eficient22 i ca serverul s aib un footprint de memorie ct mai mic - dou criterii de regul conflictuale. La fel ca n cazul browserelor, Internetul ofer clasamente de popularitate a serverelor web. Datorit numrului mare de staii server din Internet care ofer servicii Web, numrul de instane de servere web pentru primele poziii din clasamente este de ordinul milioanelor. Netcraft public unul dintre cele mai recunoscute clasamente ale serverelor web din Internet. Un astfel de clasament este publicat n fiecare an de Netcraft, prezentnd evoluia numrului de servere web pn la acel moment. Cel mai rspndit i cel mai recunoscut server web din Internet este Apache23. Aprut nc de la nceputul epocii web, serverul Apache este recunoscut pentru numr remarcabil de feature-uri, fie parte a core-ului Apache, fie disponibile prin module. Aceste feature-uri confer Apache o poziie solid pe lng celelalte servere, muli utilizatori prefernd configurabilitatea n faa eficienei. Majoritatea tutorialelor legate de instalarea i configurarea unei aplicaii web fac referire la Apache. Apache este instalabil i configurabil att pe Linux ct i pe Windows, fiind rspndit mpachetarea acestuia i altor aplicaii n LAMP sau WAMP (Linux/Windows Apache MySQL PHP/Perl/Python). n general, pentru cea mai mare parte a aplicaiilor web, serverul Apache este preferat, datorit numrului mare de feature-uri. n lumea Windows, Microsoft ofer, ca alternativ la Apache, serverul web din cadrul IIS (Internet Information Services). n vreme ce configurarea Apache se realizeaz, similar modului Unix, prin fiiere text de configurare i editoare, IIS se configureaz cu ajutorul interfeei grafice de administrare. Pentru integrarea cu alte servicii Microsoft i pentru servirea de paginii cu tehnologii specifice Microsoft (de exemplu, ASP), se recomand folosirea Microsoft IIS. n lumea Unix, cazurile de utilizare n care serverul Apache nu este preferat sunt acelea n care se dorete servire rapid i consum mic de resurse (low memory footprint). Datorit numrului mare de feature-uri, Apache este recunoscut ca un consumator de resurse (resource hog); n aceste cazuri se recomand un server light, opiunile cele mai rspndite fiind lighttpd i nginx. Att lighttpd ct i nginx au fost proiectate ca reacie la consumul mare de resurse i la eficiena redus a Apache. Cu un numr mai mic de feature-uri, dar cu ncorporarea funcionalitilor care asigur eficien ridicat (precum event-based serving), cele dou soluii sunt recomandate acelor site-uri care trebuie s rspund unui numr mare de conexiuni pe secund i pentru care consumul de resurse este critic.

9.4.6 Clieni web


Din perspectiva utilizatorului, componenta cea mai relevant pentru utilizarea serviciului web este clientul web, denumit i browser. Acesta reprezint interfaa utilizatorului cu resurse din Internet, pagini web, forme de colaborare, social networking, comunicare i altele. Un browser este mai mult dect un client HTTP. Folosirea unui URL conduce la conectarea la server i transmiterea unui mesaj de tipul GET ctre server. Serverul rspunde cu resursa/pagina. n general pagina este o pagin HTML. HTML (HyperText Markup Language) este un limbaj care descrie afiarea informaiilor pe ecran. Paginile HTML sunt transmise clientului care, prin parcurgerea fiierului HTML, realizeaz redarea; redarea nseamn plasarea textului, formatarea acestuia, culori, plasarea i dimensiunile imaginilor, tabele. Partea component a browserului responsabil de redare, una dintre cele mai importante componente, este engine-ul de redare (rendering engine). O clas special de clieni web sunt utilitarele folosite n linia de comand, precum wget sau curl. Acestea prezint avantajul vitezei de acces la o anumit resurs i posibilitatea de automatizare, cu dezavantajele unei experiene de utilizare reduse i a lipsei de interactivitate.

22 23

http://www.kegel.com/c10k.html http://httpd.apache.org/

314 | R e e l e l o c a l e d e c a l c u l a t o a r e Pe msura dezvoltrii web-ului, browserele au devenit o component din ce n ce mai important. n ziua de azi, browserul reprezint una dintre componentele software cele mai cunoscute i utilizate din cadrul unui unui sistem de operare. Din acest motiv, de-a lungul timpului au existat conflicte legate de folosirea unui browser sau altul. Astfel de conflicte sunt celebrele browser wars24, conflicte care s-au amplificat prin intervenia companiilor productoare. O prim ediie a fost competiia dintre Netscape i Microsoft i, respectiv, browserele Netscape Navigator i Internet Explorer, la finele anilor '90. Ctigtor a ieit Microsoft. Putem considera c a doua ediie a browser wars a avut loc la mijlocul anilor 2000, ca o competiie ntre Mozilla Firefox i Internet Explorer. Aceast competiie este nc activ, ambele browsere avnd cote semnificative pe pia cu apariia n topul ultimilor ani a Google Chrome. n cadrul anului 2012, clasamentul browserelor cuprinde ca prime trei browsere Internet Explorer, Google Chrome i Mozilla Firefox, cu ponderi ntre 20% i 30%. Pe msura evoluiei Internetul i web-ului, dar i a competiiei dintre browsere, acestea au din ce n ce mai multe funcionaliti, rezultnd ntr-o putere de personalizare foarte mare a utilizatorilor. Astfel de funcionaliti sunt tab-uri de browser, amintirea parolelor, bar de cutare, bookmark-uri, plugin-uri i extensii, elemente anti-phishing, private browsing, module ncorporate pentru dezvoltare (aa cum este Firebug de la Mozilla Firefox). Apariia de standarde noi, precum HTML5 sunt un factor suplimentar de competiie ntre browsere. O form de browsere care au ctig de popularitate n ultimii ani sunt browserele de pe dispozitive mobile (n special smartphones). O dat cu dezvoltarea acestor dispozitive, n special pe sistemele de operare Android i iOS, browserele au primit un interes i mai ridicat. n plaja browserele pe dispozitive mobile, direct corelate cu sistemul de operare folosit, cele mai folosite sunt Safari (pe iOS), Android Browser i Opera. Ponderea ridicat a aplicaiilor web n experiea de Internet a utilizatorului fac din clientul web (browser-ul) una dintre aplicaiile de cpti n cadrul sistemului de operare. Browserele ofer un set amplu de funcionaliti pentru o ct mai bun experien de utilizare, cu interes crescut, n ultima perioad, pentru dispozitivele mobile.

9.4.7 Utilitarele wget i curl


Forma uzual prin care un utilizator acceseaz serviciul web este prin intermediul unui browser. n bara de adrese utilizatorul introduce URL-ul i acceseaz resursa cutat. n general, sunt folosite browsere cu interfa grafic i un numr mare de caracteristici: Internet Explorer, Mozilla Firefox, Google Chrome. Exist, ns i browsere n mod text, precum lynx, links sau w3m. Un caz separat de clieni web l reprezint utilitarele folosite n linia de comand pentru descrcarea unei resurse. Avantajele unor astfel de utilitare sunt: folosirea n orice mediu (nu necesit interfa grafic), posibilitatea de automatizare (pot fi folosite n scripturi) i eficiena pentru utilizare simpl: dac doreti doar s descarci un fiier ISO, o folosire a utilitarului wget este mai rapid dect deschiderea unui browser i alegerea directorului de download. Dou utilitare care ndeplinesc rolul de mai sus (client web n linia de comand) sunt wget i curl. Ambele sunt utilitare pentru descrcarea resurselor folosind protocoale web (HTTP i HTTPS), dar i FTP i, n cazul curl, IMAP, SFTP i altele. n general, utilitarele primesc un URL i descarc resursa web identificat prin acel URL. Astfel, pentru descrcarea unui fiier folosind wget se folosete comanda:
$ wget http://www.start.info/download/iso/udpcd.iso

Fiierul resurs udpcd.iso va fi salvat n directorul curent n care a fost rulat comanda de mai sus. Sunt cazuri n care se dorete descrcarea unei resurse sub un alt nume. n acest caz, se folosete opiunea -O urmat de numele fiierului n care se va salva resurse:
$ wget -O udpcd-20120828.iso http://www.start.info/download/udpcd.iso

24

http://en.wikipedia.org/wiki/Browser_wars

S e r v i c i i d e r e e a | 315 n comanda de mai sus resursa este salvat ntr-un fiier cu numele udpcd-20120828.iso. wget raporteaz informaii despre rularea comenzii. Dac se dorete colectarea acestor informaii ntr-un fiier, de obicei n scripturi ca s nu produc output suplimentar, se folosete opiunea -o urmat de numele fiierului, ca mai jos:
$ wget -o wget.log -O udpcd-20120828.iso http://www.start.info/download/udpcd.iso

n cadrul comenzii de mai sus, mesajele de dowload afiate de utilitarul wget sunt stocate n fiierul wget.log. Dac se dorete ignorarea acestora se poate folosi, ca nume de fiier, /dev/null. Utilitarul poate fi folosit peste HTTPS, caz n care URL-ul folosit este prefixat de https://. O situaie posibil este aceea n care serverul interogat nu emite un certificat recunoscut de wget, caz n care apare un mesaj de eroare de forma celui de mai jos:
$ wget https://koala.cs.pub.ro --2012-08-28 15:53:08-- https://koala.cs.pub.ro/ Resolving koala.cs.pub.ro (koala.cs.pub.ro)... 141.85.227.114 Connecting to koala.cs.pub.ro (koala.cs.pub.ro)|141.85.227.114|:443... connected. ERROR: The certificate of `koala.cs.pub.ro' is not trusted. ERROR: The certificate of `koala.cs.pub.ro' hasn't got a known issuer.

n cadrul mesajului de eroare se precizeaz faptul c nu este de ncredere. n aceas situaie, se poate folosi opiunea --no-check-certificate, care permite descrcarea resursei chiar dac certificatul nu este recunoscut, rezultnd doar ntr-un warning:
$ wget --no-check-certificate https://koala.cs.pub.ro [...] WARNING: The certificate of `koala.cs.pub.ro' is not trusted. WARNING: The certificate of `koala.cs.pub.ro' hasn't got a known issuer. HTTP request sent, awaiting response... 200 OK Length: 177