Fiind implicat in ultimul timp intr-un design pentru un datacenter , trebuie si ma incapatanez sa fac lucrurile corect de la inceput pentru a asigura scalibilitatea si performantele ulterioare. Problema este ca intr-un datacenter sunt hostati mai multi clienti.
De regula , de lene , din lipsa de experienta , din comoditate cum se pune problema in realitate :
Un datacenter in cele mai multe cazuri are una sau mai multe clase publice de IP-uri , un AS propriu , abonamente de BGP ,tot tacamul de tehnologii. Design-ul gresit pe care din pacate il vad la multi clienti este :
Hai sa analizam ce se intampla in cazul de mai sus , repet ,in cazul asta se afla multe datacentere.
Bineinteles ca am simplificat diagrama, reduntante, firewall,etc. In primul rand se irosesc o gramada de ip-uri reale , vorbind despre un datacenter nu intra din discutie ip-uri private.
Fiecare client trebuie sa aiba VLAN-ul lui. (100 de clienti 100 de vlan-uri)
Fiecare client trebuie sa aiba subnetul lui,dar ce te faci daca clientul 1 mai doreste un server ? Mai faci alt VLAN pentru ca nu mai ai ip liber si pentru inca un server. Poate ca clientul doreste ca un server sa comunice cu altul si trebuie facuta routare , configurat permisii pe switch-ul de core.
In ceea ce priveste switch-ul de CORE va avea si el 100 de vlan-uri si 100 de ip-uri si daca faceti HSRP intre doua switch-uri de CORE pentru fiecare client nou trebuie adaugat config pe ambele switch-uri plus acl-uri.
Situatia dupa cate vedeti se complica groaznic.
Am mai vazut o solutie pentru a simplifica aceasta situatie , solutie de care sunt profund dezamagit. Aici vorbim de datacenter , scalabilitate , securitate , redundanta. Dar sa va explic solutia , mirifica.
Se arunca toate serverele CLIENTILOR in aceeasi clasa. PUF…..clasa servere clienti. Adica de la ip-ul 100.100.100.2 la 100.100.100.254 sunt clientii imbulziti in acelasi VLAN . Crima !!! Tehnic functioneaza ,dar hai sa ne gandim putin mai in profunzime :
Serverul dedicat intr-un datacenter
Imi cumpar un server dedicat intr-un datacenter. Ma astept ca acel server sa fie izolat , firewall-uit , ca si cand ar fi singur pe plantatie. Va dati seama ca eu vad daca am de exemplu windows 7 vad la network and sharing 😛 celelalte servere ? Ca daca scanez reteaua , nu exista nici un firewall care sa ma opreasca fiind in acelasi lan ?
Stiu ca toti ce au datacentere se lauda cu IPS , firewall , appliance-uri imprastiate inaintea amenintatorului internet , ca logheaza tot traficul de WAN. Dar ce te faci in interior ? Ca serverul meu este legat in acelasi switch , in acelasi vlan cu serverul altui client , si daca eu atac clientul respectiv , sau pe toti clientii , si pun in cap tot datacenterul ?
Cu ce log-uri o sa vina administratorul de retea cand , clientul o sa ceara log-urile de trafic , in cazul in care i s-a spart serverul ?
Haideti sa punem lucrurile la punct. Ideal ar fi odata cu design-ul initial al Datacenter-ului sa faceti acest lucru ,fiind foarte greu sa modificati dupa. Ceea ce va voi arata mai jos va fi atat de elegant , atat de simplu , atat de frumos 🙂
Si totul datorita unei tehnologii numite PRIVATE VLAN.
Va arat design-ul si dupa vom discuta pe seama lui si cum facem posibil acest lucru.
Avem desenat mai sus aproximativ aceeasi topologie . Dupa cum se vede intreaga topologie care un singur VLAN parinte , respectiv VLAN 100.
In tot acest VLAN parinte avem o SINGURA clasa de ip-uri (in poza ip-urile sunt private,in realitate sunt reale) , pe router un singur ip care este si default gateway-ul tuturor serverelor.
Dupa cate se vede :
- Clientul ROSU are doua servere cele cu ip-urile 2 si 3.
- Clientul VERDE are 3 servere cu ip-urile 4 , 5 , 6
- Clientul ALBASTRU are doar in singur server cel cu ip-ul 7.
Beneficii
Servere clientului , daca sunt in acelasi PRIVATE VLAN intre ele fac switch-ing fiind in acelasi LAN,nu incarca switch-ul L3 de core.
Serverele clientilor avand culori diferite NU pot comunica intre ele.
Toate serverele indiferent de culoare pot comunica cu port-ul la care este legat router-ul care este defaul gateway.
Fara a intra foarte mult in detalii tehnice : port-urile intr-un PRIVATE VLAN pot fi :
- Promiscuous – Un port pe care toata lumea il poate vedea . In cazul nostru portul pe care este legat router-ul.
- Isolated – Porturi izolate . Nu pot comunica cu alte port-uri decat cu porturile promiscuous.
- Comunity – Porturi care pot comunica cu alte porturi din acelasi Private-vlan si bineinteles si cu porturile promiscuous. (in acest caz avem porturile clientului ROSU si VERDE.
Configuratia ,odata intelese conceptele este destul de simpla de facut , va voi da link-uri spre site-uri unde altii au explicat mai bine configurarea.
Ceea ce am discutat aici e doar pentru a atrage atentia asupra unor considerente de design care ar trebui sa le luati in calcul atunci cand ati ajuns in ipostaza de a face design-ul unui datacenter. Eleganta , simplitate ,scalabilitate , securitate.
Pe cat de simplu , pe atat de rar intalnit acest “best practice” la noi in Romania.
Cuprins articol: