{"id":35973,"date":"2019-10-31T22:08:54","date_gmt":"2019-10-31T19:08:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\/"},"modified":"2019-10-31T22:08:54","modified_gmt":"2019-10-31T19:08:54","slug":"avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","title":{"rendered":"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00cen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">\u00een edi\u021bia precedent\u0103<\/a><\/noindex> am descris cadrul de automatizare a re\u021belei. Conform feedback-ului, unii oameni au reu\u0219it s\u0103 clarifice anumite \u00eentreb\u0103ri legate de aceast\u0103 prim\u0103 abordare a problemei. \u0218i acest lucru m\u0103 bucur\u0103 foarte mult, deoarece scopul nostru \u00een acest ciclu nu este s\u0103 acoperim Ansible cu scripturi Python, ci s\u0103 construim un sistem.<\/p>\n<p>Acest cadru stabile\u0219te ordinea \u00een care vom aborda \u00eentrebarea.<br \/>\n\u0218i virtualizarea re\u021belei, despre care se vorbe\u0219te \u00een aceast\u0103 edi\u021bie, nu se \u00eencadreaz\u0103 foarte bine \u00een tema ADMS, unde discut\u0103m despre automatizare. <\/p>\n<p>Dar s\u0103 ne uit\u0103m la ea dintr-un alt unghi.<\/p>\n<p>De mult timp, multe servicii folosesc aceea\u0219i re\u021bea. \u00cen cazul operatorului de telecomunica\u021bii, este vorba despre 2G, 3G, LTE, broadband \u0219i B2B, de exemplu. \u00cen cazul centrului de date: conectivitate pentru diferi\u021bi clien\u021bi, Internet, stocare bloc, stocare obiect.<\/p>\n<p>\u0218i toate serviciile necesit\u0103 izola\u021bia unii de ceilal\u021bi. A\u0219a au ap\u0103rut re\u021belele overlay.<\/p>\n<p>\u0218i toate serviciile nu vor s\u0103 a\u0219tepte ca cineva s\u0103 le configureze manual. A\u0219a au ap\u0103rut orchestratoarele \u0219i SDN.<\/p>\n<p>Prima abordare pentru automatizarea sistematic\u0103 a re\u021belei, mai precis a unei p\u0103r\u021bi a acesteia, a fost adoptat\u0103 de mult timp \u0219i implementat\u0103 \u00een multe locuri: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.<\/p>\n<p>Asta vom analiza ast\u0103zi. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/e0bf73b7b71c383c5526da48a6f6b776.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Cuprins<\/h1>\n<p><\/p>\n<ul>\n<li><b>Cauzele<\/b><\/li>\n<li><b>Terminologie<\/b><\/li>\n<li><b>Underlay \u2014 re\u021bea fizic\u0103<\/b><\/li>\n<li><b>Overlay \u2014 re\u021bea virtual\u0103<\/b>\n<ul>\n<li>Overlay cu ToR-urile<\/li>\n<li>Overlay de pe gazd\u0103<\/li>\n<li>Pe exemplul Tungsten Fabric\n<ul>\n<li>Comunicarea \u00een interiorul unei ma\u0219ini fizice<\/li>\n<li>Comunicarea \u00eentre VM-uri situate pe ma\u0219ini fizice diferite<\/li>\n<li>Ie\u015fire \u00een lumea exterioar\u0103<\/li>\n<\/ul>\n<p>\n <\/li>\n<\/ul>\n<p>\n <\/li>\n<li><b>\u00centreb\u0103ri frecvente<\/b><\/li>\n<li><b>Concluzie<\/b><\/li>\n<li><b>Linkuri utile<\/b><\/li>\n<\/ul>\n<p><\/p>\n<h1>Cauzele<\/h1>\n<p>\n\u0218i pentru c\u0103 am men\u021bionat acest lucru, ar trebui s\u0103 amintim premisele virtualiz\u0103rii re\u021belei. De fapt, acest proces nu a \u00eenceput de ieri. <\/p>\n<p>Probabil c\u0103 a\u021bi auzit de nenum\u0103rate ori c\u0103 re\u021beaua a fost \u00eentotdeauna cea mai inert\u0103 parte a oric\u0103rui sistem. \u0218i acest lucru este adev\u0103rat \u00een toate sensurile. Re\u021beaua este baza pe care se sprijin\u0103 totul, iar a face modific\u0103ri \u00een ea este destul de complicat \u2014 serviciile nu accept\u0103 atunci c\u00e2nd re\u021beaua este c\u0103zut\u0103. De multe ori, scoaterea din func\u021biune a unui nod poate afecta o mare parte din aplica\u021bii \u0219i poate influen\u021ba mul\u021bi clien\u021bi. Par\u021bial din acest motiv, echipa de re\u021bea poate rezista la orice modific\u0103ri \u2014 pentru c\u0103 acum func\u021bioneaz\u0103 cumva (<i>poate c\u0103 nici nu \u0219tim cum<\/i>), iar acum trebuie s\u0103 configur\u0103m ceva nou, \u0219i nu \u0219tim cum va influen\u021ba re\u021beaua.<\/p>\n<p>Pentru a nu a\u0219tepta ca administratorii de re\u021bea s\u0103 implementeze VLAN \u0219i pentru a evita configurarea serviciilor pe fiecare nod al re\u021belei, au fost dezvoltate overlay-uri \u2014 re\u021bele suprapuse, dintre care exist\u0103 o mare varietate: GRE, IPinIP, MPLS, MPLS L2\/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE etc.<\/p>\n<p>Atrac\u021bia lor const\u0103 \u00een dou\u0103 lucruri simple:<\/p>\n<ul>\n<li>Se configureaz\u0103 doar nodurile finale \u2014 nu trebuie s\u0103 intervenim asupra transitului. Aceasta accelereaz\u0103 semnificativ procesul \u0219i, uneori, permite chiar excluderea departamentului de infrastructur\u0103 de re\u021bea din procesul de implementare a noilor servicii.<\/li>\n<li>\u00cenc\u0103rc\u0103tura este ascuns\u0103 ad\u00e2nc \u00een antete \u2014 nodurile de tranzit nu trebuie s\u0103 \u0219tie nimic despre aceasta, despre adresare pe gazde, rutele re\u021belei suprapuse. Asta \u00eenseamn\u0103 c\u0103 trebuie s\u0103 stoc\u0103m mai pu\u021bine informa\u021bii \u00een tabele, ceea ce permite utilizarea unor dispozitive mai simple\/mai ieftine.<\/li>\n<\/ul>\n<p>\n\u00cen aceast\u0103 emisiune nu foarte complet\u0103, nu inten\u021bionez s\u0103 discut toate tehnologiile posibile, ci mai degrab\u0103 s\u0103 descriu cadrul de func\u021bionare al re\u021belelor overlay \u00een data center.<\/p>\n<p>\u00centreaga serie va descrie un data center format din r\u00e2nduri de rack-uri identice, \u00een care este instalat acela\u0219i echipament server. <\/p>\n<p>Pe acest echipament se ruleaz\u0103 ma\u0219ini virtuale\/containeri\/serverless, care implementeaz\u0103 servicii.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/a6863eb2804a298304d1e93daecf90d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Terminologie<\/h1>\n<p>\n\u00cen ciclul <b>serverul<\/b> voi numi programul care realizeaz\u0103 partea de server a comunica\u021biei client-server.<\/p>\n<p>Ma\u0219inile fizice din rack-uri vor fi numite servere <b>nu<\/b> deci.<\/p>\n<p><b>Ma\u0219ina fizic\u0103<\/b> \u2014 computer x86 instalat \u00eentr-un rack. Cel mai frecvent folosit termen <b>host<\/b>. A\u0219a o vom numi \u201e<b>ma\u0219in\u0103<\/b>\u201e sau <b>host<\/b>.<\/p>\n<p><b>Hypervisor<\/b> \u2014 aplica\u021bie care ruleaz\u0103 pe o ma\u0219in\u0103 fizic\u0103, emul\u00e2nd resursele fizice pe care sunt rulante Ma\u0219inile Virtuale. Uneori, \u00een literatur\u0103 \u0219i pe internet, cuv\u00e2ntul \u201ehypervisor\u201d este folosit ca sinonim pentru \u201ehost\u201d.<\/p>\n<p><b>Ma\u0219in\u0103 virtual\u0103<\/b> \u2014 un sistem de operare care ruleaz\u0103 pe o ma\u0219in\u0103 fizic\u0103 deasupra unui hipervizor. Pentru noi, \u00een cadrul acestui ciclu, nu este at\u00e2t de important dac\u0103 este \u00eentr-adev\u0103r o ma\u0219in\u0103 virtual\u0103 sau doar un container. O vom numi \u201e<b>VM<\/b>\u00ab<\/p>\n<p><b>Tenant<\/b> \u2014 un concept larg, pe care \u00een acest articol \u00eel voi defini ca un serviciu distinct sau un client distinct.<\/p>\n<p><b>Multi-tenancy<\/b> sau multi-chirie \u2014 utilizarea acelea\u0219i aplica\u021bii de c\u0103tre diferi\u021bi clien\u021bi\/servicii. \u00cen acest caz, izolarea clien\u021bilor unii de al\u021bii se realizeaz\u0103 datorit\u0103 arhitecturii aplica\u021biei, nu prin instan\u021be separate rulante.<\/p>\n<p><b>ToR \u2014 Comutator de Tip Top of the Rack<\/b> \u2014 un comutator instalat \u00een rack la care sunt conectate toate ma\u0219inile fizice.<\/p>\n<blockquote><p> Pe l\u00e2ng\u0103 topologia ToR, diferi\u021bi furnizori practic\u0103 End of Row (EoR) sau Middle of Row (de\u0219i acest din urm\u0103 este rar \u00eent\u00e2lnit \u0219i nu am \u00eent\u00e2lnit abrevierile MoR).\n<\/p><\/blockquote>\n<p> <b>Re\u021bea Underlay<\/b> sau re\u021bea subiacente \u2014 infrastructura fizic\u0103 a re\u021belei: comutatoare, routere, cabluri.<\/p>\n<p><b>Re\u021bea Overlay<\/b> sau re\u021bea suprapus\u0103 \u2014 o re\u021bea virtual\u0103 de tuneluri care func\u021bioneaz\u0103 peste fizic\u0103.<\/p>\n<p><b>Fabric\u0103 L3 sau fabric\u0103 IP<\/b> \u2014 o inven\u021bie uimitoare a umanit\u0103\u021bii, care permite ca \u00een discu\u021bii s\u0103 nu se repete STP \u0219i s\u0103 nu se \u00eenve\u021be TRILL. O concept, \u00een care \u00eentreaga re\u021bea p\u00e2n\u0103 la nivelul de acces este exclusiv L3, f\u0103r\u0103 VLAN-uri \u0219i \u00een consecin\u021b\u0103 f\u0103r\u0103 domenii de difuzare extinse. De unde provine termenul \"fabric\u0103\" vom discuta \u00een partea urm\u0103toare.<\/p>\n<p><b>SDN<\/b> \u2014 Software Defined Network. Cu greu are nevoie de prezentare. O abordare de gestionare a re\u021belei \u00een care modific\u0103rile \u00een re\u021bea sunt efectuate nu de oameni, ci de programe. De obicei, \u00eenseamn\u0103 mutarea Control Plane dincolo de dispozitivele finale de re\u021bea pe un controler.<\/p>\n<p><b>NFV<\/b> \u2014 Network Function Virtualization \u2014 virtualizarea dispozitivelor de re\u021bea, presupun\u00e2nd c\u0103 o parte din func\u021biile re\u021belei pot fi rulate sub form\u0103 de ma\u0219ini virtuale sau containere pentru a accelera desf\u0103\u0219urarea de noi servicii, organizarea Service Chaining \u0219i o scalabilitate orizontal\u0103 mai simpl\u0103.<\/p>\n<p><b>VNF<\/b> \u2014 Func\u021bie de Re\u021bea Virtual\u0103. Un dispozitiv virtual specific: router, comutator, firewall, NAT, IPS\/IDS etc.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/971b6a28a9caab5f3a7067ce4d25749c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p> \u00cen prezent, simplific descrierea la o realizare specific\u0103, pentru a nu confunda prea mult cititorul. Pentru o lectur\u0103 mai aprofundat\u0103, \u00eel \u00eendemn s\u0103 consulte sec\u021biunea <noindex><a rel=\"nofollow\" href=\"#LINKS\">Linkuri<\/a><\/noindex>. \u00cen plus, Roma Gorge, care critic\u0103 acest articol pentru inexactit\u0103\u021bi, promite s\u0103 scrie o edi\u021bie separat\u0103 despre tehnologiile de virtualizare a serverelor \u0219i re\u021belelor, mai detaliat\u0103 \u0219i atent\u0103 la detalii.<\/p><\/blockquote>\n<p>Majoritatea re\u021belelor de ast\u0103zi pot fi \u00eemp\u0103r\u021bite clar \u00een dou\u0103 p\u0103r\u021bi: <\/p>\n<p><b>Underlay<\/b> \u2014 re\u021beaua fizic\u0103 cu o configura\u021bie stabil\u0103.<br \/>\n<b>Overlay<\/b> \u2014 o abstra\u021bie deasupra Underlay pentru izolarea chiria\u0219ilor. <\/p>\n<p>Aceasta este valabil at\u00e2t pentru cazul DC (pe care \u00eel vom discuta \u00een acest articol), c\u00e2t \u0219i pentru ISP (pe care nu-l vom discuta, deoarece a fost deja \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/linkmeup.ru\/sdsm\">SDN<\/a><\/noindex>). Situa\u021bia cu re\u021belele enterprise este, desigur, pu\u021bin diferit\u0103. <\/p>\n<p>Imaginea focalizat\u0103 pe re\u021bea:<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/7b7dabc6d9f3b87c598346bf9195d568.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Underlay<\/h1>\n<p>\nUnderlay este re\u021beaua fizic\u0103: comutatoare hardware \u0219i cabluri. Dispozitivele din underlay \u0219tiu cum s\u0103 ajung\u0103 la ma\u0219inile fizice.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/776a77a3821fe79a7323947e0bdf67e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSe bazeaz\u0103 pe protocoale \u0219i tehnologii standard. Nu \u00een ultimul r\u00e2nd pentru c\u0103 dispozitivele hardware de ast\u0103zi func\u021bioneaz\u0103 pe software proprietar care nu permite nici programarea chip-ului, nici implementarea propriilor protocoale, prin urmare, este necesar\u0103 compatibilitatea cu al\u021bi furnizori \u0219i standardizarea.<\/p>\n<blockquote><p>Dar cineva ca Google \u00ee\u0219i poate permite s\u0103 dezvolte comutatoare proprii \u0219i s\u0103 renun\u021be la protocoalele acceptate pe scar\u0103 larg\u0103. Dar LAN_DC nu este Google.\n<\/p><\/blockquote>\n<p> Underlay se schimb\u0103 relativ rar, deoarece sarcina sa este - conectivitatea IP de baz\u0103 \u00eentre ma\u0219inile fizice. Underlay nu \u0219tie nimic despre serviciile, clien\u021bii, tenantii care ruleaz\u0103 deasupra sa - trebuie doar s\u0103 livreze un pachet de la o ma\u0219in\u0103 la alta.<br \/>\nUnderlay poate fi, de exemplu, astfel: <\/p>\n<ul>\n<li>IPv4+OSPF<\/li>\n<li>IPv6+ISIS+BGP+L3VPN<\/li>\n<li>L2+TRILL<\/li>\n<li>L2+STP<\/li>\n<\/ul>\n<p>\nRe\u021beaua Underlay se configureaz\u0103 \u00eentr-un mod clasic: CLI\/GIU\/NETCONF.<\/p>\n<p>Manual, prin scripturi, utilitare proprietare.<\/p>\n<p>\u00cen detaliu, underlay-ul va fi dedicat urm\u0103torului articol din ciclu.<\/p>\n<p><\/p>\n<h1>Overlay<\/h1>\n<p>\nOverlay este o re\u021bea virtual\u0103 de tuneluri \u00eentinse deasupra Underlay, care permite VM-urilor unui client s\u0103 comunice \u00eentre ele, asigur\u00e2nd totodat\u0103 izola\u021bia de al\u021bi clien\u021bi.<\/p>\n<p>Datele clientului sunt encapsulate \u00een antete de tunelare pentru a fi transmise prin re\u021beaua comun\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/3060bc4913c55c21b785083fbe0b603b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAstfel, VM-urile unui client (unui serviciu) pot comunica \u00eentre ele prin Overlay, f\u0103r\u0103 a fi con\u0219tiente de adev\u0103ratul traseu parcurs de pachet. <\/p>\n<p>Overlay poate fi, de exemplu, a\u0219a cum am men\u021bionat mai sus:<\/p>\n<ul>\n<li>tunel GRE<\/li>\n<li>VXLAN<\/li>\n<li>EVPN<\/li>\n<li>L3VPN<\/li>\n<li>GENEVE<\/li>\n<\/ul>\n<p>\nRe\u021beaua Overlay se configureaz\u0103 \u0219i se sus\u021bine de obicei printr-un controler central. De aici, configura\u021bia, Control Plane-ul \u0219i Data Plane-ul sunt livrate pe dispozitivele care se ocup\u0103 cu rutarea \u0219i \u00eencapsularea traficului clien\u021bilor. Pu\u021bin <noindex><a rel=\"nofollow\" href=\"#TF\">mai jos<\/a><\/noindex> vom analiza aceasta prin exemple.<\/p>\n<p><b>Da, acesta este SDN \u00een forma sa pur\u0103. <\/b><\/p>\n<p>Exist\u0103 dou\u0103 abord\u0103ri fundamental diferite pentru organizarea unei re\u021bele Overlay:<\/p>\n<ol>\n<li>Overlay cu ToR-urile<\/li>\n<li>Overlay de pe gazd\u0103<\/li>\n<\/ol>\n<h2>Overlay cu ToR-urile<\/h2>\n<p>\nOverlay poate \u00eencepe pe un comutator de acces (ToR) situat \u00een rack, a\u0219a cum se \u00eent\u00e2mpl\u0103, de exemplu, \u00een cazul unei fabrici VXLAN. <\/p>\n<p>Este un mecanism dovedit de timp pe re\u021belele ISP \u0219i to\u021bi furnizorii de echipamente de re\u021bea \u00eel sus\u021bin.<\/p>\n<p>Cu toate acestea, \u00een acest caz, switch-ul ToR trebuie s\u0103 fie capabil s\u0103 separa diferitele servicii, iar administratorul de re\u021bea trebuie s\u0103 colaboreze \u00eentr-o anumit\u0103 m\u0103sur\u0103 cu administratorii ma\u0219inilor virtuale \u0219i s\u0103 fac\u0103 modific\u0103ri (chiar \u0219i automat) \u00een configura\u021bia dispozitivelor.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/9a5fe4d4a0cbb7e5c3bbac82527c6a6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAici voi trimite cititorul la articolul despre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">VxLAN pe Habr<\/a><\/noindex> al nostru vechi prieten <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/bormoglotx\/\">@bormoglotx<\/a><\/noindex>.<br \/>\n\u00cen aceast\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">prezentare de la ENOG<\/a><\/noindex> sunt descrise \u00een detaliu abord\u0103rile pentru construirea unei re\u021bele de DC cu o fabric\u0103 EVPN VXLAN. <\/p>\n<p>\u0218i pentru a avea o \u00een\u021belegere mai complet\u0103 a realit\u0103\u021bilor, se poate citi cartea Cisco <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cisco.com\/c\/dam\/en\/us\/td\/docs\/switches\/datacenter\/nexus9000\/sw\/vxlan_evpn\/VXLAN_EVPN.pdf\">A Modern, Open, and Scalable Fabric: VXLAN EVPN<\/a><\/noindex>.<\/p>\n<blockquote><p> Men\u021bionez c\u0103 VXLAN este doar un metod\u0103 de \u00eencapsulare \u0219i terminarea tunelurilor poate avea loc nu pe ToR, ci pe gazd\u0103, a\u0219a cum se \u00eent\u00e2mpl\u0103 \u00een cazul OpenStack, de exemplu.<\/p>\n<p>Cu toate acestea, fabrica VXLAN, unde overlay-ul \u00eencepe la ToR, este unul dintre designurile consacrate ale re\u021belei overlay.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Overlay de pe gazd\u0103<\/h2>\n<p>\nO alt\u0103 abordare este de a \u00eencepe \u0219i de a termina tunelurile pe gazdele finale.<br \/>\n\u00cen acest caz, re\u021beaua (Underlay) r\u0103m\u00e2ne c\u00e2t mai simpl\u0103 \u0219i static\u0103.<br \/>\nIar gazda face toate encapsul\u0103rile necesare.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/c9c2971369d1b3e5f026d6844afeb67f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPentru aceasta, va trebui, f\u0103r\u0103 \u00eendoial\u0103, s\u0103 ruleze o aplica\u021bie special\u0103 pe gazde, dar merit\u0103. <\/p>\n<p>\u00cen primul r\u00e2nd, este mai simplu s\u0103 lansezi un client pe o ma\u0219in\u0103 Linux sau, s\u0103 spunem, \u2014 este chiar posibil \u2014 \u00een timp ce pe switch, cel mai probabil, va trebui s\u0103 recurgi la solu\u021bii SDN proprietare, ceea ce distruge ideea de multivendor.<\/p>\n<p>\u00cen al doilea r\u00e2nd, comutatorul ToR poate fi l\u0103sat c\u00e2t mai simplu, at\u00e2t din perspectiva Control Plane-ului c\u00e2t \u0219i a Data Plane-ului. De fapt, cu un controler SDN nu trebuie s\u0103 comunice acela \u0219i nu trebuie s\u0103 stocheze re\u021bele\/ARP-urile tuturor clien\u021bilor conecta\u021bi \u2014 este suficient s\u0103 \u0219tie adresa IP a ma\u0219inii fizice, ceea ce simplific\u0103 considerabil tabelele de comutare\/rutare.<\/p>\n<p>\n\u00cen seria ADSM aleg abordarea overlay-ului de pe gazd\u0103 \u2014 \u00een continuare discut\u0103m doar despre aceasta \u0219i nu ne vom mai \u00eentoarce la fabrica VXLAN.<\/p>\n<p>\nCel mai u\u0219or este s\u0103 discut\u0103m pe exemple. Iar ca subiect de studiu, vom lua platforma SDN OpenSource OpenContrail, cunoscut\u0103 acum ca <noindex><a rel=\"nofollow\" href=\"https:\/\/tungsten.io\">Tungsten Fabric<\/a><\/noindex>.<\/p>\n<blockquote><p> La sf\u00e2r\u0219itul articolului, voi aduce c\u00e2teva reflec\u021bii pe tema analogiei cu OpenFlow \u0219i OpenvSwitch.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Pe exemplul Tungsten Fabric<\/h2>\n<p>\nPe fiecare ma\u0219in\u0103 fizic\u0103 exist\u0103 <b>vRouter<\/b> \u2014 un router virtual care cunoa\u0219te re\u021belele conectate la el \u0219i clien\u021bii c\u0103ror le apar\u021bin \u2014 \u00een esen\u021b\u0103 \u2014 router PE. Pentru fiecare client, men\u021bine o tabel\u0103 de rutare izolat\u0103 (cunoscut\u0103 ca VRF). \u0218i, de fapt, vRouter-ul realizeaz\u0103 tunelizarea Overlay.<\/p>\n<p>C\u00e2teva detalii despre vRouter \u2014 la finalul articolului.<\/p>\n<p>Fiecare VM situat pe hipervizor se conecteaz\u0103 la vRouter-ul acestei ma\u0219ini prin <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/TUN\/TAP\">interfa\u021ba TAP<\/a><\/noindex>.<\/p>\n<p><b>TAP<\/b> \u2014 Terminal Access Point \u2014 o interfa\u021b\u0103 virtual\u0103 \u00een nucleul Linux, care permite interac\u021biunea de re\u021bea.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/a6fa1b4370ba4e787303ae647a28f5ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDac\u0103 \u00een spatele vRouter-ului sunt mai multe re\u021bele, atunci pentru fiecare dintre acestea se creeaz\u0103 o interfa\u021b\u0103 virtual\u0103, la care se atribuie o adres\u0103 IP \u2014 aceasta va fi adresa gateway-ului implicit.<br \/>\nToate re\u021belele unui client sunt plasate \u00eentr-un <b>VRF<\/b> (un singur tabel), iar cele diferite \u2014 \u00een tabele diferite.<br \/>\n<i>Fac aici o observa\u021bie, c\u0103 nu totul este at\u00e2t de simplu, \u0219i trimit cititorul curios la finalul articolului.<\/i>.<\/p>\n<p>Pentru ca vRouter-urile s\u0103 poat\u0103 comunica \u00eentre ele, \u0219i, prin urmare, \u0219i VM-urile care se afl\u0103 \u00een spatele lor, ele schimb\u0103 informa\u021bii de rutare prin <b>controlerul SDN<\/b>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/sdn-controller.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/8b133e10582dbde9c0670ad98c1840de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Pentru a ie\u0219i \u00een lumea extern\u0103, exist\u0103 un punct de ie\u0219ire din matrice \u2014 gateway-ul re\u021belei virtuale <b>VNGW<\/b> \u2014 Virtual Network GateWay (<i>termenul este al meu<\/i>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/vngw.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/9ac4d084d9b58b7ed1bc2c0ed6d06059.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\nAcum s\u0103 examin\u0103m exemplele de comunicare \u2014 \u0219i va fi clar.<\/p>\n<p><\/p>\n<h3>Comunicarea \u00een interiorul unei ma\u0219ini fizice<\/h3>\n<p>\nVM0 dore\u0219te s\u0103 trimit\u0103 un pachet c\u0103tre VM2. S\u0103 presupunem deocamdat\u0103 c\u0103 acestea sunt VM-uri ale aceluia\u0219i client.<\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>VM-0 are un rutare predeterminat\u0103 \u00een interfa\u021ba sa eth0. Pachetul este trimis acolo.<br \/>\n Aceast\u0103 interfa\u021b\u0103 eth0 este, de fapt, conectat\u0103 virtual la routerul virtual vRouter prin interfa\u021ba TAP tap0.<\/li>\n<li>vRouter analizeaz\u0103 ce interfa\u021b\u0103 a primit pachetul, adic\u0103 cui client (VRF) \u00eei apar\u021bine, compar\u0103 adresa destinatarului cu tabelul de rutare al acestui client.<\/li>\n<li>Descoperind c\u0103 destinatarul este pe aceea\u0219i ma\u0219in\u0103, pe un alt port, vRouter-ul trimite pur \u0219i simplu pachetul c\u0103tre acesta f\u0103r\u0103 niciun fel de anteturi suplimentare \u2014 pentru acest caz, vRouter-ul are deja o \u00eenregistrare ARP. <\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/a42da3f48a3f538eb92c1908d9d66921.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPachetul \u00een acest caz nu ajunge \u00een re\u021beaua fizic\u0103 \u2014 a fost rutat \u00een interiorul vRouter-ului.<\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nHipervizorul, la pornirea ma\u0219inii virtuale, \u00eei comunic\u0103:<\/p>\n<ul>\n<li>Adresa sa IP proprie.<\/li>\n<li>Ruta implicit\u0103 \u2014 prin adresa IP a vRouter-ului \u00een aceast\u0103 re\u021bea.<\/li>\n<\/ul>\n<p>\nvRouter-ului printr-un API special hipervizorul \u00eei comunic\u0103:<\/p>\n<ul>\n<li>C\u0103 trebuie s\u0103 creeze o interfa\u021b\u0103 virtual\u0103.<\/li>\n<li>Ce Virtual Network (VN) trebuie s\u0103 creeze (VM).<\/li>\n<li>La ce VRF s\u0103 conecteze acest VN.<\/li>\n<li>\u00cenregistrarea ARP static\u0103 pentru aceast\u0103 VM \u2014 care interfa\u021b\u0103 are adresa sa IP \u0219i la ce adres\u0103 MAC este ata\u0219at\u0103.<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p> \u0218i din nou, procedura real\u0103 de interac\u021biune este simplificat\u0103 \u00een favoarea \u00een\u021belegerii conceptului.\n<\/p><\/blockquote>\n<p> <img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/593d7ad41782e882a88732b475bf91cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAstfel, toate VM-urile unui client pe aceast\u0103 ma\u0219in\u0103 vRouter le vede ca re\u021bele direct conectate \u0219i poate ruteze \u00eentre ele.<\/p>\n<p>\n\u00cen schimb, VM0 \u0219i VM1 apar\u021bin unor clien\u021bi diferi\u021bi, prin urmare, se afl\u0103 \u00een tabeluri diferite ale vRouter-ului.<\/p>\n<p>Dac\u0103 pot comunica direct, depinde de set\u0103rile vRouter-ului \u0219i de designul re\u021belei.<br \/>\nDe exemplu, dac\u0103 VM-urile ambilor clien\u021bi folosesc adrese publice, sau NAT se efectueaz\u0103 pe \u00eensu\u0219i vRouter, atunci se poate face \u0219i rutare direct\u0103 pe vRouter.<\/p>\n<p>\u00cen contrar\u0103, este posibil s\u0103 existe suprapuneri \u00een spa\u021biile de adrese \u2014 trebuie s\u0103 treac\u0103 printr-un server NAT pentru a ob\u021bine o adres\u0103 public\u0103 \u2014 asta seam\u0103n\u0103 cu ie\u0219irea \u00een re\u021belele externe de care vorbim mai jos.<\/p>\n<h3>Comunicarea \u00eentre VM-uri situate pe ma\u0219ini fizice diferite<\/h3>\n<p><\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>\u00cenceputul este exact acela\u0219i: VM-0 trimite un pachet cu destinatarul VM-7 (172.17.3.2) prin intermediul predeterminat.<\/li>\n<li>vRouter-ul \u00eel prime\u0219te \u0219i de data aceasta vede c\u0103 destinatarul se afl\u0103 pe o ma\u0219in\u0103 diferit\u0103 \u0219i este accesibil prin tunelul Tunnel0.<\/li>\n<li>Mai \u00eent\u00e2i, el adaug\u0103 o etichet\u0103 MPLS, care identific\u0103 interfa\u021ba de distan\u021b\u0103, astfel \u00eenc\u00e2t, pe partea opus\u0103, vRouter-ul s\u0103 poat\u0103 determina unde s\u0103 plaseze acel pachet f\u0103r\u0103 ad\u0103ugiri suplimentare de linii de cod.\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-dp.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/1e159049376e2bf458b8c6cb5878cc17.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex>\n <\/li>\n<li>Pentru Tunnel0, sursa este 10.0.0.2, iar receptori: 10.0.1.2.<br \/>\n vRouter-ul adaug\u0103 antete GRE (sau UDP) \u0219i un nou IP la pachetul ini\u021bial.<\/li>\n<li>\u00cen tabela de rutare a vRouter-ului exist\u0103 o rut\u0103 implicit\u0103 prin adresa ToR1 10.0.0.1. Acolo trimite.\n<p> <img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/8cb98a8ec43d202259acf6a1fcaeb3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n \n <\/li>\n<li>ToR1, ca participant \u00een re\u021beaua Underlay, \u0219tie (de exemplu, prin OSPF), cum s\u0103 ajung\u0103 la 10.0.1.2 \u0219i trimite pachetul pe ruta stabilit\u0103. Observa\u021bi c\u0103 aici se activeaz\u0103 ECMP. \u00cen ilustra\u021bie sunt dou\u0103 next-hop-uri, iar diferitele fluxuri vor fi distribuite \u00een ele prin hashing. \u00cen cazul unei fabrici adev\u0103rate, ar exista mai degrab\u0103 4 next-hop-uri.\n<p>\u00cen acest timp, el nu are nevoie s\u0103 \u0219tie ce se afl\u0103 sub antetul IP extern. Asta \u00eenseamn\u0103 c\u0103, de fapt, sub IP ar putea fi un sandwich din IPv6 peste MPLS peste Ethernet peste MPLS peste GRE.<\/li>\n<li>Astfel, pe partea receptorului, vRouter-ul \u00eendep\u0103rteaz\u0103 GRE \u0219i, pe baza etichetei MPLS, \u00een\u021belege \u00een ce interfa\u021b\u0103 trebuie s\u0103 transmit\u0103 acel pachet, \u00eel descompune \u0219i \u00eel trimite \u00een forma sa ini\u021bial\u0103 destinatarului.<\/li>\n<\/ol>\n<h4>Control Plane<\/h4>\n<p>\nC\u00e2nd se porne\u0219te ma\u0219ina, se petrece tot ceea ce a fost descris mai sus.<\/p>\n<p>\u0218i \u00een plus, urm\u0103toarele:<\/p>\n<ul>\n<li>Fiecare client are o etichet\u0103 MPLS alocat\u0103 de vRouter. Aceasta este o etichet\u0103 de servicii L3VPN, pe baza c\u0103reia clien\u021bii vor fi separa\u021bi \u00een cadrul acelea\u0219i ma\u0219ini fizice.<br \/>\n<blockquote><p> De fapt, eticheta MPLS este asignat\u0103 de c\u0103tre vRouter f\u0103r\u0103 excep\u021bie \u00eentotdeauna \u2014 c\u0103ci nu se \u0219tie dinainte c\u0103 ma\u0219ina va interac\u021biona doar cu alte ma\u0219ini aflate \u00een acela\u0219i vRouter \u0219i este cel mai probabil c\u0103 nici nu este a\u0219a. \n <\/p><\/blockquote>\n<\/li>\n<li>vRouter stabile\u0219te o conexiune cu controllerul SDN prin protocolul BGP (sau similar \u2014 \u00een cazul TF, acesta este XMPP 0_o).<\/li>\n<li>Prin aceast\u0103 sesiune, vRouter informeaz\u0103 controllerul SDN despre rutele c\u0103tre re\u021belele conectate:\n<ul>\n<li>Adresa re\u021belei<\/li>\n<li>Metoda de incapsulare (MPLSoGRE, MPLSoUDP, VXLAN)<\/li>\n<li>Eticheta MPLS a clientului<\/li>\n<li>Adresa sa IP ca nexthop<\/li>\n<\/ul>\n<p>\n <\/li>\n<li>Controllerul SDN prime\u0219te astfel de rute de la to\u021bi vRouter-ii conecta\u021bi \u0219i le reflect\u0103 altora. Cu alte cuvinte, el ac\u021bioneaz\u0103 ca un Route Reflector.<\/li>\n<\/ul>\n<p>\nAcela\u0219i lucru se \u00eent\u00e2mpl\u0103 \u0219i \u00een sens invers.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-cp.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/feef9181133f3a50a5cb21aa7ba16dc0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Overlay-ul se poate schimba chiar la fiecare minut. Cam a\u0219a se \u00eent\u00e2mpl\u0103 \u00een serviciile cloud publice, c\u00e2nd clien\u021bii pornesc \u0219i opresc frecvent ma\u0219inile lor virtuale.<\/p>\n<p>Controllerul central preia toate complexit\u0103\u021bile legate de men\u021binerea configura\u021biei \u0219i de controlul tabelelor de comutare\/rutare pe vRouter.<\/p>\n<p>Dac\u0103 vorbim pe scurt, controllerul se conecteaz\u0103 la toate vRouter-urile prin BGP (sau un protocol similar) \u0219i pur \u0219i simplu transmite informa\u021biile despre rute. BGP, de exemplu, deja are Address-Family pentru a transmite metoda de \u00eencapsulare. <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc4023\">MPLS-in-GRE<\/a><\/noindex> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7510\">MPLS-in-UDP<\/a><\/noindex>.<\/p>\n<p>\u00cen acest context, configura\u021bia re\u021belei Underlay nu se schimb\u0103 \u00een niciun fel, care, de altfel, este mult mai dificil de automatizat, \u0219i se poate strica mai u\u0219or cu un gest neglijent.<\/p>\n<h3>Ie\u015fire \u00een lumea exterioar\u0103<\/h3>\n<p>\nUndeva, simularea trebuie s\u0103 se \u00eencheie, iar din lumea virtual\u0103 trebuie s\u0103 ie\u0219im \u00een cea real\u0103. Este nevoie de un gateway de tip taxofon.<\/p>\n<p>Se practic\u0103 dou\u0103 abord\u0103ri:<\/p>\n<ol>\n<li>Se instaleaz\u0103 un router hardware.<\/li>\n<li>Se lanseaz\u0103 un appliance care \u00eendepline\u0219te func\u021biile unui router (da, da, dup\u0103 SDN ne-am confruntat \u0219i cu VNF). S\u0103-l numim gateway virtual.<\/li>\n<\/ol>\n<p><\/p>\n<blockquote><p> Avantajul celei de-a doua abord\u0103ri const\u0103 \u00een scalabilitatea horizontal\u0103 ieftin\u0103 \u2014 dac\u0103 nu este suficient\u0103 puterea \u2014 se lanseaz\u0103 \u00eenc\u0103 o ma\u0219in\u0103 virtual\u0103 cu gateway. Pe orice ma\u0219in\u0103 fizic\u0103, f\u0103r\u0103 a fi necesar\u0103 c\u0103utarea unui rack liber, unit\u0103\u021bi, surse de alimentare, cump\u0103rarea hardware-ului, transportul acestuia, instalarea, conectarea, configurarea \u0219i apoi schimbarea componentelor defecte.<\/p>\n<p>Dezavantajele unui gateway virtual sunt c\u0103 unitatea fizic\u0103 a routerului este, totu\u0219i, cu mult mai puternic\u0103 dec\u00e2t o ma\u0219in\u0103 virtual\u0103 multi-core, iar software-ul s\u0103u, adaptat la suportul hardware, func\u021bioneaz\u0103 semnificativ mai stabil (<i>nu<\/i>). Este greu de negat c\u0103 complexul software-hardware func\u021bioneaz\u0103 pur \u0219i simplu, necesit\u00e2nd doar configurare, \u00een timp ce lansarea \u0219i \u00eentre\u021binerea unui gateway virtual reprezint\u0103 o provocare pentru ingineri puternici.\n<\/p><\/blockquote>\n<p> Cu o parte a sa, gateway-ul se conecteaz\u0103 la re\u021beaua virtual\u0103 Overlay, ca o Ma\u0219in\u0103 Virtual\u0103 obi\u0219nuit\u0103, \u0219i poate interac\u021biona cu toate celelalte VM-uri. \u00cen acela\u0219i timp, aceasta poate termina re\u021belele tuturor clien\u021bilor \u0219i, \u00een consecin\u021b\u0103, poate efectua rutare \u00eentre acestea.<\/p>\n<p>Cu cealalt\u0103 parte, gateway-ul se conecteaz\u0103 la re\u021beaua principal\u0103 \u0219i \u0219tie cum s\u0103 ias\u0103 pe Internet.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/552fa0428ff8dd3aed76091a86a72109.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Data Plane<\/h4>\n<p>\nA\u0219adar, procesul arat\u0103 astfel: <\/p>\n<ol>\n<li>VM-0, av\u00e2nd set\u0103rile implicite \u00een acela\u0219i vRouter, trimite un pachet cu destina\u021bia \u00een lumea extern\u0103 (185.147.83.177) c\u0103tre interfa\u021ba eth0.<\/li>\n<li>vRouter prime\u0219te acest pachet \u0219i caut\u0103 adresa de destina\u021bie \u00een tabela de rutare \u2013 g\u0103se\u0219te ruta implicit\u0103 prin gateway-ul VNGW1 prin Tunnel 1. <br \/>\n De asemenea, el observ\u0103 c\u0103 acest tunel este un GRE cu SIP 10.0.0.2 \u0219i DIP 10.0.255.2, iar mai \u00eent\u00e2i trebuie s\u0103 ata\u0219eze eticheta MPLS a acestui client, a\u0219teptat\u0103 de VNGW1.\n <\/li>\n<li>vRouter \u00eempacheteaz\u0103 pachetul ini\u021bial \u00een antete MPLS, GRE \u0219i un nou IP \u0219i \u00eel trimite c\u0103tre adresa ToR1 10.0.0.1 conform set\u0103rilor implicite.<\/li>\n<li>Re\u021beaua de subteran livreaz\u0103 pachetul c\u0103tre gateway-ul VNGW1.<\/li>\n<li>Gateway-ul VNGW1 elimin\u0103 antetele de tunelare GRE \u0219i MPLS, vede adresa de destina\u021bie, consult\u0103 tabela sa de rutare \u0219i \u00een\u021belege c\u0103 aceasta este destinat\u0103 pe Internet \u2014 adic\u0103 prin Full View sau Default. Dac\u0103 este necesar, efectueaz\u0103 o traducere NAT.<\/li>\n<li>\u00centre VNGW \u0219i border poate fi o re\u021bea IP obi\u0219nuit\u0103, ceea ce este pu\u021bin probabil.<br \/>\n Ar putea fi o re\u021bea MPLS clasic\u0103 (IGP+LDP\/RSVP TE), sau ar putea fi o fabric\u0103 inversat\u0103 cu BGP LU sau un tunel GRE de la VNGW la border prin re\u021beaua IP.<br \/>\n \u00cen orice caz, VNGW1 efectueaz\u0103 incapsul\u0103rile necesare \u0219i trimite pachetul ini\u021bial \u00een direc\u021bia border.<\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-dp.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/a66e490c75f8220349398af814d4ebf2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Traficul \u00een direc\u021bia opus\u0103 parcurge acelea\u0219i etape \u00een ordine invers\u0103. <\/p>\n<ol>\n<li>Border-ul trimite pachetul c\u0103tre VNGW1<\/li>\n<li>Acesta \u00eel analizeaz\u0103, se uit\u0103 la adresa destinatarului \u0219i vede c\u0103 acesta este accesibil prin tunelul Tunnel1 (MPLSoGRE sau MPLSoUDP).<\/li>\n<li>Prin urmare, ata\u0219eaz\u0103 eticheta MPLS, antetul GRE\/UDP \u0219i noul IP, \u0219i \u00eel trimite c\u0103tre ToR3 10.0.255.1.<br \/>\n Adresa de destina\u021bie a tunelului \u2014 adresa IP a vRouter-ului, dup\u0103 care urmeaz\u0103 VM-ul \u021bint\u0103 \u2014 10.0.0.2.<\/li>\n<li>Re\u021beaua de subliniere livreaz\u0103 pachetul c\u0103tre vRouter-ul dorit. <\/li>\n<li>vRouter-ul \u021bint\u0103 desface GRE\/UDP, determin\u0103 interfa\u021ba prin eticheta MPLS \u0219i trimite pachetul IP pur \u00een interfa\u021ba sa TAP, conectat\u0103 la eth0 a VM-ului.<\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-dp-reverse.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/ba6748694a822fc04f4e872658d1fbbb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nVNGW1 stabile\u0219te o rela\u021bie de vecin\u0103tate BGP cu controllerul SDN, de la care prime\u0219te toat\u0103 informa\u021bia de rutare despre clien\u021bi: dup\u0103 ce adres\u0103 IP (vRouter) se afl\u0103 care client \u0219i ce etichet\u0103 MPLS \u00eel identific\u0103.<\/p>\n<p>Similar, el \u00eensu\u0219i controllerului SDN \u00eei comunic\u0103 ruta implicit\u0103 cu eticheta acestui client, indic\u00e2ndu-se pe sine ca next-hop. Apoi, aceast\u0103 rut\u0103 implicit\u0103 ajunge la vRouter-e.<\/p>\n<p>Pe VNGW se face, de obicei, agregarea rutelor sau traducerea NAT.<\/p>\n<p>\u0218i \u00een cealalt\u0103 direc\u021bie \u00een sesiunea cu borderele sau Route Reflector-ii el transmite exact aceast\u0103 rut\u0103 agregat\u0103. De la ei prime\u0219te ruta implicit\u0103 sau Full-View, sau altceva.<\/p>\n<p>\u00cen ceea ce prive\u0219te \u00eencapsularea \u0219i schimbul de trafic, VNGW nu se deosebe\u0219te de vRouter. <br \/>\nDac\u0103 se extinde un pic domeniul, la VNGW \u0219i vRouter-e se pot ad\u0103uga alte dispozitive de re\u021bea, cum ar fi firewall-uri, ferme de cur\u0103\u021bare sau \u00eembog\u0103\u021bire a traficului, IPS etc.<\/p>\n<p>\u0218i prin crearea secven\u021bial\u0103 a VRF-urilor \u0219i anun\u021barea corect\u0103 a rutelor, se pot face ca traficul s\u0103 circule a\u0219a cum \u00ee\u021bi dore\u0219ti, ceea ce se nume\u0219te Service Chaining.<\/p>\n<p>Deci, aici \u0219i controllerul SDN ac\u021bioneaz\u0103 ca un Route-Reflector \u00eentre VNGW, vRouter-e \u0219i alte dispozitive de re\u021bea.<\/p>\n<p>Dar, de fapt, controllerul transmite \u0219i informa\u021bii despre ACL \u0219i PBR (Policy Based Routing), for\u021b\u00e2nd fluxuri separate de trafic s\u0103 nu se deplaseze conform rutei dictate.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-cp.png\"><img decoding=\"async\" alt=\"Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 zero). Virtualizarea re\u021belei.\" src=\"\/wp-content\/uploads\/2019\/07\/dbba5a93d64edf56dc9c2b82311c5a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h1>\u00centreb\u0103ri frecvente<\/h1>\n<p><b>De ce tot timpul faci remarci despre GRE\/UDP?<\/b><\/p>\n<p>Ei bine, \u00een general, aceasta este, s\u0103 spunem, specific\u0103 pentru Tungsten Fabric \u2014 se poate ignora complet.<\/p>\n<p>Dar dac\u0103 vorbim despre TF, acesta, \u00eenc\u0103 sub numele de OpenContrail, suporta ambele \u00eencapsul\u0103ri: MPLS \u00een GRE \u0219i MPLS \u00een UDP. <\/p>\n<p>UDP este bun prin faptul c\u0103 \u00een Source Port-ul din antetul s\u0103u este foarte u\u0219or s\u0103 codifici o func\u021bie hash din IP+Proto+Port-urile originale, ceea ce va permite realizarea echilibr\u0103rii. <\/p>\n<p>\u00cen cazul GRE, din p\u0103cate, exist\u0103 doar anteturile externe IP \u0219i GRE, care sunt identice pentru tot traficul \u00eencapsulat \u0219i nu se discut\u0103 despre echilibrare \u2014 pu\u021bini pot privi at\u00e2t de ad\u00e2nc \u00een interiorul pachetului.<\/p>\n<p>P\u00e2n\u0103 nu demult, routerele, chiar dac\u0103 aveau capabilit\u0103\u021bi pentru tuneluri dinamice, \u0219tiau doar de MPLSoGRE \u0219i, abia recent, au \u00eenv\u0103\u021bat s\u0103 utilizeze MPLSoUDP. De aceea, este necesar s\u0103 men\u021bion\u0103m \u00eentotdeauna posibilitatea a dou\u0103 tipuri diferite de encapsulare.<\/p>\n<p>Ca s\u0103 fim corec\u021bi, merit\u0103 s\u0103 men\u021bion\u0103m c\u0103 TF suport\u0103 \u0219i conectivitate L2 prin VXLAN.<\/p>\n<p>\n<b>Ai promis s\u0103 faci paralele cu OpenFlow.<\/b><br \/>\nA\u0219a este, chiar se impun. vSwitch-ul din acela\u0219i OpenStack face lucruri foarte similare, folosind VXLAN, care, de altfel, are \u0219i un antet UDP.<\/p>\n<p>\u00cen Data Plane, ele func\u021bioneaz\u0103 aproximativ la fel, \u00eens\u0103 Control Plane-ul se diferen\u021biaz\u0103 semnificativ. Tungsten Fabric folose\u0219te XMPP pentru livrarea informa\u021biilor despre rute c\u0103tre vRouter, \u00een timp ce \u00een OpenStack func\u021bioneaz\u0103 Openflow.<\/p>\n<p>\n<b>Dar po\u021bi s\u0103 ne spui mai multe despre vRouter?<\/b><br \/>\nAcesta se \u00eemparte \u00een dou\u0103 p\u0103r\u021bi: vRouter Agent \u0219i vRouter Forwarder.<\/p>\n<p>Primul ruleaz\u0103 \u00een User Space al sistemului de operare gazd\u0103 \u0219i comunic\u0103 cu controlerul SDN, schimb\u00e2nd informa\u021bii despre rute, VRF \u0219i ACL.<\/p>\n<p>Al doilea realizeaz\u0103 Data Plane-ul \u2014 de obicei \u00een Kernel Space, dar poate fi rulat \u0219i pe SmartNIC-uri \u2014 pl\u0103ci de re\u021bea cu CPU \u0219i un cip programabil de comutare, ceea ce permite desc\u0103rcarea sarcinii de pe CPU-ul ma\u0219inii gazd\u0103, \u00eembun\u0103t\u0103\u021bind astfel viteza \u0219i predictibilitatea re\u021belei. <\/p>\n<p>De asemenea, este posibil un scenariu \u00een care vRouter este o aplica\u021bie DPDK \u00een User Space. <\/p>\n<p>vRouter Agent transmite configura\u021biile c\u0103tre vRouter Forwarder.<\/p>\n<p>\n<b>Ce este re\u021beaua virtual\u0103?<\/b><br \/>\nAm men\u021bionat la \u00eenceputul articolului despre VRF, cum c\u0103 fiecare chiria\u0219 este legat de propriul VRF. \u0218i dac\u0103 pentru o \u00een\u021belegere superficial\u0103 a func\u021bion\u0103rii re\u021belei overlay acest lucru a fost suficient, deja la urm\u0103toarea itera\u021bie trebuie s\u0103 facem clarific\u0103ri.<\/p>\n<p>De obicei, \u00een mecanismele de virtualizare, entitatea Virtual Network (se poate considera un nume propriu) este introdus\u0103 separat de clien\u021bi\/tenan\u021bi\/ma\u0219ini virtuale \u2014 un element complet independent. Aceast\u0103 Virtual Network poate fi conectat\u0103 prin interfe\u021be la un tenant, la altul, la dou\u0103, sau oriunde dorim. A\u0219a se realizeaz\u0103, de exemplu, Service Chaining, atunci c\u00e2nd traficul trebuie s\u0103 treac\u0103 prin noduri specifice \u00eentr-o anumit\u0103 ordine, pur \u0219i simplu cre\u00e2nd \u0219i asociind Virtual Network-uri \u00een ordinea corect\u0103.<\/p>\n<p>Prin urmare, nu exist\u0103 o coresponden\u021b\u0103 direct\u0103 \u00eentre Re\u021beaua Virtual\u0103 \u0219i chiria\u0219.<\/p>\n<h1>Concluzie<\/h1>\n<p>\nAceasta este o descriere destul de superficial\u0103 a func\u021bion\u0103rii unei re\u021bele virtuale cu overlay de pe host \u0219i a controlerului SDN. Dar indiferent de platforma de virtualizare pe care o alege\u021bi ast\u0103zi, aceasta va func\u021biona \u00eentr-un mod similar, fie c\u0103 este vorba de VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric sau Juniper Contrail. Vor exista diferen\u021be \u00een tipurile de \u00eencapsul\u0103ri \u0219i capete, protocoalele de livrare a informa\u021biei c\u0103tre dispozitivele de re\u021bea finale, dar principiul re\u021belei overlay programabil configurabil, care func\u021bioneaz\u0103 pe o re\u021bea underlay relativ simpl\u0103 \u0219i static\u0103, va r\u0103m\u00e2ne acela\u0219i.<br \/>\nSe poate spune c\u0103 domeniile de creare a unui cloud privat, \u00een zilele noastre, SDN pe baz\u0103 de re\u021bea overlay a c\u00e2\u0219tigat. Cu toate acestea, aceasta nu \u00eenseamn\u0103 c\u0103 Openflow nu are loc \u00een lumea modern\u0103 \u2014 este folosit \u00een OpenStack \u0219i \u00een acela\u0219i VMWare NSX, \u00eel folose\u0219te, din c\u00e2te \u0219tiu, Google pentru configurarea re\u021belei underlay.<\/p>\n<p>Mai jos am inclus linkuri c\u0103tre materiale mai detaliate, dac\u0103 dori\u021bi s\u0103 explora\u021bi subiectul mai \u00een profunzime. <\/p>\n<p>Dar ce se \u00eent\u00e2mpl\u0103 cu Underlay-ul nostru? <\/p>\n<p>De fapt, nu se schimb\u0103 nimic. Acesta a r\u0103mas constant pe tot parcursul. Tot ce trebuie s\u0103 fac\u0103 \u00een cazul unui overlay de pe gazd\u0103 este s\u0103 actualizeze rutele \u0219i ARP-urile pe m\u0103sur\u0103 ce vRouter\/VNGW apar \u0219i dispar \u0219i s\u0103 transporte pachetele \u00eentre ele.<\/p>\n<p>Hai s\u0103 formul\u0103m o list\u0103 de cerin\u021be pentru re\u021beaua Underlay.<\/p>\n<ol>\n<li>Trebuie s\u0103 suporte un protocol de rutare, \u00een situa\u021bia noastr\u0103 \u2014 BGP.<\/li>\n<li>S\u0103 aib\u0103 l\u0103\u021bime de band\u0103 mare, preferabil f\u0103r\u0103 rescriere, pentru a nu pierde pachete din cauza suprasarcinilor.<\/li>\n<li>Suport pentru ECMP \u2014 o parte esen\u021bial\u0103 a fabricii.<\/li>\n<li>S\u0103 fie capabil s\u0103 asigure QoS, inclusiv lucruri sofisticate, precum ECN.<\/li>\n<li>Suport pentru NETCONF \u2014 preg\u0103tire pentru viitor.<\/li>\n<\/ol>\n<p>\nAm dedicat foarte pu\u021bin timp func\u021bion\u0103rii re\u021belei Underlay aici. Acest lucru se datoreaz\u0103 faptului c\u0103 \u00een continuare \u00een serie m\u0103 voi concentra tocmai pe ea, iar Overlay-ul \u00eel vom aborda doar \u00een trecere.<\/p>\n<p>Este evident c\u0103 m\u0103 restric\u021bionez foarte mult pe noi to\u021bi, folosind ca exemplu re\u021beaua DC construit\u0103 pe fabrica Closa cu rutare IP pur\u0103 \u0219i overlay de pe host.<\/p>\n<p>Cu toate acestea, sunt \u00eencrez\u0103tor c\u0103 orice re\u021bea cu un design poate fi descris\u0103 \u00een termeni formali \u0219i automatizat\u0103. Scopul meu aici este pur \u0219i simplu s\u0103 \u00een\u021beleg abord\u0103rile de automatizare, nu s\u0103 \u00eei complic pe to\u021bi, rezolv\u00e2nd problema \u00een mod general.<\/p>\n<p>\u00cen cadrul ADMSM, eu \u0219i Roman Gorge pl\u0103nuim s\u0103 public\u0103m un num\u0103r separat despre virtualizarea resurselor computa\u021bionale \u0219i interac\u021biunea acesteia cu virtualizarea re\u021belei. R\u0103m\u00e2ne\u021bi al\u0103turi.<\/p>\n<p><\/p>\n<h1>Linkuri utile<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/\">Arhitectura Tungsten Fabric<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Kr6WIYPts8I?t=3157\">despre:cloud<\/a><\/noindex>. 6 ore despre Yandex.Cloud, care abordeaz\u0103 \u00een special re\u021beaua virtual\u0103 pe TF.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openvswitch.org\/en\/latest\/intro\/what-is-ovs\/\">Ce este Open vSwitch?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">Introducere \u00een VxLAN<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7348\">RFC 7348. Re\u021bea Local\u0103 Virtual\u0103 eXtensibil\u0103 (VXLAN): Un Cadru pentru Overlayarea Re\u021belelor Virtualizate de Nivel 2 peste Re\u021belele de Nivel 3.<br \/>\n <\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">Abordarea Scaleway pentru VXLAN EVPN Fabric<\/a><\/noindex>. Aici se discut\u0103 despre \u00eentreaga re\u021bea a centrului de date, inclusiv Underlay, Overlay, abord\u0103ri pentru multi-homing \u0219i management.<\/li>\n<\/ul>\n<p><\/p>\n<h5>Mul\u021bumesc<\/h5>\n<p><\/p>\n<ul>\n<li><noindex>Roman Gorghe<\/noindex> \u2014 fostul gazd\u0103 al podcastului linkmeup, acum expert \u00een platforme de cloud. Mul\u021bumiri pentru comentarii \u0219i corecturi. A\u0219tept\u0103m \u00een cur\u00e2nd articolul s\u0103u mai detaliat despre virtualizare.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.alexander-shalimov.com\">Alexandru Shalimov<\/a><\/noindex> \u2014 colegul meu \u0219i expert \u00een dezvoltarea re\u021belelor virtuale. Mul\u021bumiri pentru comentarii \u0219i corecturi.<\/li>\n<li><noindex>Valentin Sini\u021b\u00een<\/noindex> \u2014 colegul meu \u0219i expert \u00een Tungsten Fabric. Mul\u021bumiri pentru comentarii \u0219i corecturi.<\/li>\n<li><noindex>Artiom Cernobai<\/noindex> \u2014 ilustrator linkmeup. Mul\u021bumiri pentru KDPV.<\/li>\n<li>Alexandru Limonov. Mul\u021bumiri pentru meme-ul \u201eautomato\u201d.<\/li>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458622\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 \u0434\u0430\u0436\u0435 \u044d\u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u0443\u0436\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c. \u0418 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u043d\u044f \u0440\u0430\u0434\u0443\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u2014 \u043d\u0435 \u043e\u0431\u043c\u0430\u0437\u0430\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0430\u043d\u0437\u0438\u0431\u043b\u044c, \u0430 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u042d\u0442\u043e\u0442 \u0436\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0414\u043b\u044f \u0421\u0430\u043c\u044b\u0445 \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0439). \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Automatizarea pentru cei mai mici. Partea \u00eent\u00e2i (care vine dup\u0103 partea zero). Virtualizarea re\u021belei | ProHoster","description":"\u00cen edi\u021bia anterioar\u0103, am descris cadrul de automatizare a re\u021belelor.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0414\u043b\u044f \u0421\u0430\u043c\u044b\u0445 \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0439). \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 | ProHoster","og:description":"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:08:54+00:00","article:modified_time":"2019-10-31T19:08:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35973","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:28:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:53:30","updated":"2026-01-22 01:28:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/35973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=35973"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/35973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/26892"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=35973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=35973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=35973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}