«Arhitecturi moderne de retea»

Partea a 3-a

 

Grad de dificultate

Public tinta

mic

utilizatori simpli

mediu

utilizatori avansati

mare

specialisti

 


In partea a doua a articolului am prezentat succint o arhitectura de retea LAN devenita deja “clasica” de vreo 10 ani, bazata in exclusivitate pe comutare la nivel L2. Eliminarea hub-urilor si folosirea exclusiva a switch-urilor a permis obtinerea unei retele eficiente, capabile sa transfere tot traficul companiei, in conditiile in care incarcarea procesoarelor echipamentelor centrale nu depaseste in momentele de virf 20%. Rezerva de putere de procesare pare suficienta pentru urmatorii 5 ani si constatam cu satisfactie ca timp de cel putin 2 ani nu va trebui sa studiem ipotezele unui upgrade de retea. Asa ca incepem, relaxati,  sa ne gindim la modul in care se va comporta reteaua  noastra in conditiile aparitiei unor  evenimente nedorite, dar foarte probabile. In astfel de situatii speciale, fragilitatea arhitecturii flat network iese in evidenta si ne pune din nou la munca, de data aceasta dintr-o cu totul alta perspectiva.

     Data trecuta am trecut in revista problemele potentiale si  ne-am propus sa le atenuam efectul. In cei peste 10 ani de existenta a switching-ului L2, s-au cautat si s-au gasit solutii de creare a redundantei, dar ele s-au dovedit dificil de inteles, dificil de implementat, iar performantele lor se dovedesc insuficiente pentru nevoile de azi. De aceasta data, noi vrem sa le rezolvam intr-o maniera actualizata, simplificind implementarea prin inglobarea tuturor avantajelor existente la momentul actual pe piata. Intr-adevar, switch-urile de constructie mai recenta ofera multe facilitati. Procesoarele tot mai rapide si cipurile ieftine de memorie RAM permit chiar si switch-urilor low-cost sa integreze facilitati ce acum 5 ani erau apanajul switch-urilor “cu management” (store-and-forward, de exemplu). Noile generatii de switch-uri “cu pretentii” au deja inglobate capabilitati de nivel L3, chiar si in varianta “basic firmware”. Fenomenul globalizarii, specific mediului de business, a obligat jucatorii importanti de pe piata echipamentelor de retea sa faca “pasul inainte” si sa ofere tot mai mult la preturi din ce in ce mai mici. Insa facilitatile de nivel L3 sint mult mai complexe, ele iesind din sfera optimizarilor general-valabile si depind esential de contextul parametrarilor IP. Toate aceste facilitati nu vor avea nici o utilitate pentru noi daca ele vor ramine nefolosite.

 

Dar, inainte de a alege o solutie din multele combinatii posibile, a sosit momentul sa definim...


...citeva concepte abstractizate, utile in proiectarea unei arhitecturi moderne de retea.

 

Domeniul de defectare (failure domain)

Un grup de switch-uri L2 conectate impreuna formeaza un domeniu comutat L2 (Layer 2 switched domain). Un domeniu comutat L2 poate fi considerat un domeniu de defectare unic, deoarece un PC gresit configurat, sau avind o interfata de retea defecta, poate introduce erori si/sau un trafic masiv de date care sa conduca in final la scaderea sesizabila a performantei intregului domeniu de retea, sau chiar la blocarea acestuia. Pare greu de crezut, dar cei ce au trecut prin asa ceva pot sa confirme acest lucru. O placa de retea avind «urechea» defecta (a se citi “canalul de receptie”) poate umple intreg domeniul de retea cu pachete de «transmisie generala» incercind cu disperare sa gaseasca un corespondent care sa-i raspunda la salut. O statie de lucru avind o adresa IP/masca de retea gresita se poate transforma intr-o «gaura neagra» in care se vor pierde pachetele de date valide din retea apartinind altor PC-uri conectate in acelasi domeniu de defectare. Un switch de retea nou adaugat in retea si avind o versiune de firmware noua, mai performanta, dar care prezinta anumite incompatibilitati cu versiunile anterioare poate tine toate celelalte switch-uri «ocupate» cu transmiterea repetata a tabelei de adrese MAC cunoscute la nesfirsit. Intr-o retea L2 nestructurata (flat network), toate aceste probleme vor fi sesizate imediat, dar vor fi greu de localizat si, implicit, de rezolvat. Din aceste motive se recomanda sa se renunte la o arhitectura simpla de tip  flat network si sa se creeze domenii de defectare mai mici, prin crearea de VLAN-uri, care vor “sparge” astfel un domeniu de defectare L2 in domenii multiple, mai mici.

 

In mod ideal este bine sa se creeze cite un singur VLAN pentru fiecare switch de acces. Portul de uplink al switch-ului de acces va fi legat la un port L3 de 1 Gbps in switch-ul ierarhic superior (core secundar) , dupa cum va voi explica mai tirziu, asigurind comunicatia necesara intre VLAN-uri. Mai mult decit atit, se pot agrega doua astfel de VLAN-uri, obtind astfel si repartizarea uniforma a traficului (balansarea).

 

Domeniul de transmisie generala (broadcast domain)

Functionarea normala a unei retele L2 necesita folosirea sporadica a broadcast-ului la nivel de adrese MAC (L2),  pentru translatarea destinatiilor logice in destinatii fizice, sau, altfel spus, pentru a realiza maparea adreselor IP pe adrese MAC. Un exemplu clasic este acela al protocolului DHCP. Aceste transmisii generale initiate de un PC nou pornit in retea “inunda” intregul domeniu  comutat L2 si de aceea putem spune ca o retea simpla (flat network) prezinta un singur domeniu de broadcast. Asta este, o statie nou pornita cauta in toata reteaua prin broadcast server-ul de DHCP care ii va furniza o adresa IP fara de care nu poate sa comunice in retea.

 

Prin folosirea switch-urilor L3 evoluate, se poate folosi comutarea la nivel L3 pentru a reduce necesitatea broadcast-ului, deoarece inteligenta logicii de comutare la nivel 3 transforma transmisia generala (broadcast-ul) in transmisie directionata (unicast). Aceasta facilitate este specifica router-elor, dar a fost inglobata cu succes in switch-urile L3, amplificindu-i avantajele.

 

Domeniul de redundanta clasica (spanning-tree domain)

Reteaua comutata L2 nestructurata foloseste protocolul de redundanta (denumit de mine clasic) pentru a intrerupe aparitia buclelor la nivelul L2. Caile alternative se folosesc in proiectarea retelelor cu comutare la nivel L2 in scopul crearii de cai redundante, care sa permita retelei sa “supravietuiasca” in cazul aparitiei unei intreruperi a unor legaturi critice, sau in cazul defectarii unor echipamente “critice” de retea (parca am mai auzit noi de asa ceva). Protocolul spanning-tree are “venerabila” virsta de 18 ani si are drept scop trecerea porturilor necesare in “modul blocat” (blocking-mode), pentru a preveni aparitia “buclelor” in retea. In plus, existenta a doua cai de legatura posibile in cadrul unei retele (una normala si una de rezerva) reprezinta o risipa inutila in conditiile in care, ulterior aparitiei spanning-tree-ului, a fost definit si implementat protocolul de agregare (trunking). Este preferabil sa se evite prin proiectare buclele L2 si sa fie folosit protocolul L3 in ambele scopuri: atit pentru a controla balansarea legaturilor, cit si realizarea cailor redundante, folosind astfel pentru trafic de date toate legaturile dintre segmentele de retea disponibile.

Protocolul spanning-tree are nevoie de 30 pina la 50 de secunde pentru a converge. Aceste valori sint inacceptabile pentru legaturile “critice”, ca de exemplu legaturile de backbone, cele pentru retelele industriale, sau pentru o retea de bancomate. Pentru a preveni aparitia evenimentelor de convergenta, toate legaturile de backbone vor trebui  sa fie de nivel OSI-L3 si, de asemenea, sa nu existe agregari VLAN (VLAN trunks). Legaturile de backbone de nivel L3 vor limita astfel atit domeniile de broadcast, cit si domeniile de defectare explicate mai devreme.

 

Intr-o retea logico-structurata se va folosi deci comutarea de nivel L3 in scopul  reducerii dimensiunilor domeniilor de spanning-tree. Se va folosi apoi un protocol de nivel L3, de exemplu OSPF sau Enhanced IGRP, pentru a realiza balansarea legaturii, redundanta si rezolvarea buclelor de backbone.

 

Virtual LAN (VLAN)

     Un VLAN reprezinta in esenta o delimitare a unui domeniu comutat L2 si in consecinta va mosteni aceleasi inconveniente legate de stabilitate a retelei in cazul aparitiei unor probleme majore de retea. In cazul in care mai multe VLAN-uri coexista intr-o retea flat network, fiecare VLAN in parte va face deci parte din acelasi domeniu de defectare (failure domain), domeniu de transmisie generala (broadcast domain)si  domeniu de redundanta (spanning-tree domain). Pe de alta parte, VLAN-urile pot fi folosite pentru a segmenta logic o retea, cu avantajele aferente aduse de structurarea logica a acesteia, dar in esenta deployment-ul masiv de VLAN-uri mareste complexitatea unei retele in toate fazele sale: si la proiectare si (mai ales) in exploatare.

     Una din motivatiile dezvoltarii tehnologiei VLAN-urilor a fost reprezentata de faptul ca ea permitea preluarea avantajelor vitezei mari de comutare la nivel L2 (ce avea loc la nivel hardware), in comparatie cu comutarea software ce avea loc in router-e. Dar odata cu aparitia tehnologiei comutarii hardware la nivel L3, folosirea VLAN-urilor nu mai poate fi justificata prin performanta comutarii.

     Un VLAN poate fi folosit insa cu succes pentru a asocia din punct de vedere logic un grup de lucru cu o politica de acces (acces policy) definita cu ajutorul unei liste de control al accesului (Acces Control List, a.k.a. ACL). In mod similar, VLAN-urile pot fi folosite in fermele de servere (server farm) pentru a asocia un grup de server-e cu o politica de acces definita prin intermediului ACL-urilor.

     In concluzie,  tehnologia VLAN-urilor in sine nu prezinta nici un beneficiu din punctul de vedere al redundantei si al tolerantei la defecte majore. Mai mult, folosirea masiva a VLAN-urilor creste complexitatea administrarii retelei. Pentru  a minimiza complexitatea folosirii la scara mare a VLAN-urilor pastrind avantajele in ceea ce priveste evitarea buclelor si segmentarea logica a retelei, se recomanda ca  acestea sa fie folosite cu conditia restringerii VLAN-urilor la unul singur pentru fiecare switch L2 de acces.

 

IP subnet

     Un subnet IP se mapeaza pe un domeniu comutat de nivel L2; se poate spune ca un subnet IP este echivalentul logic la nivelul L3 al VLAN-urilor ce sint definite la nivel L2. Adresa unui subnet IP se defineste la nivelul L3, acolo unde domeniul de comutare L2 se termina. Avantajul folosirii subnetting-ului va apare in momentul in care vom activa facilitatea de intercomunicare a Sumarului Informatiei de  Accesibilitate (Summarized Reachability Information), in loc sa asteptam ca switch-urile sa descopere singure “din mers” calea catre fiecare client in parte. Sumarizarea reprezinta cheia cu ajutorul careia  reteaua poate obtine beneficiile scalabilitatii protocoalelor de rutare (routing protocols), ca de exemplu OSPF si Enhanced IGRP.

Intr-o arhitectura complet structurata, un singur subnet IP se mapeaza pe un VLAN unic, care se mapeaza pe un singur switch de acces. Aceasta arhitectura este destul de restrictiva, dar obtine beneficii uriase prin simplitate si usurinta depanarii.

 

Domeniul politicii de acces in retea (policy domain)

Politica de acces (policy domain) este de obicei definita in router-e sau in switch-urile L3 din intranet-ul retelei. O cale facila de definire a politicii se poate implementa cu ajutorul Listei de Control a Accesului (ACL), care se aplica apoi pe subnet-uri IP.  In acest fel, mai multe server-e care au o politica de acces similara pot fi grupate intr-un acelasi VLAN si acelasi subnet IP intr-un mod foarte facil. Alte servicii, ca de exemplu DHCP-ul, sint definite tot pe baza de subnet IP.

O facilitate noua si utila, prezenta la familia de switch-uri Catalyst 6000, se numeste Lista de Control al Accesului VLAN-urilor (VACL=VLAN Access Control List). Intr-un switch Catalyst 6000/6500 se poate folosi atit ACL-ul conventional, cit si VACL. Utilizarea VACL-ului permite insa realizarea unui control al politicii diferentiat (granular), aplicat tuturor statiilor plasate intr-un acelasi VLAN.

 


 

Aici se incheie lista elementelor de analiza ce ne vor permite sa definim arhitectura unei retele logico-structurate. Si fiindca vorbim de retele mari, este mai practic sa definim niste unitati elementare de retea (elemente logico-structurate scalabile), care ne vor permite sa construim reteaua la marimea necesara prin asamblarea lor, intr-un mod foarte asemanator unui joc LEGO. Pina luna viitoare cind voi publica partea a 4-a, va ofer “in avans” schema unui astfel de element si va invit sa identificati in structura lui  atit conceptele prezentate mai sus, cit si elementele de redundanta discutate in luna aprilie.


Fig. 4 - unitati elementare de retea (elemente logico-structurate scalabile)



partea_a_2-a

comentarii pe blog

partea a 4-a


vizitatori.

Site alternativ: sorin-p.xhost.ro

Home  Eu  Muzica mea  Stil de viata  Copyright  Revista