VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Pjesa e parë. Hyrja
Pjesa e dytë. Konfigurimi i rregullave Firewall dhe NAT
Pjesa e tretë. Konfigurimi i DHCP
Pjesa e katërt. Konfigurimi i Routingut

Herën e kaluar folëm për mundësitë e NSX Edge në lidhje me routingun statik dhe dinamik, dhe sot do të shqyrtojmë balancuesin.
Para se të fillojmë konfigurimin, do të doja të përmendja shkurtimisht llojet kryesore të balancimit.

Teoria

Të gjitha zgjidhjet e sotme për balancimin e ngarkesës zakonisht ndahen në dy kategori: balancimi në nivelin e katërt (transport) dhe balancimi në nivelin e shtatë (aplikativ) të modelit OSI. Modeli OSI nuk është pikë reference e shkelqyer kur flasim për metodat e balancimit. Për shembull, nëse një balancues L4 gjithashtu mbështet terminimin TLS, a bëhet ai me këtë rast një balancues L7? Por kjo është situata.

  • Balancuesi L4 zakonisht pĂ«rbĂ«n njĂ« proxy nĂ« mes tĂ« klientit dhe njĂ« grupi tĂ« disponueshĂ«m backend, i cili terminon lidhjet TCP (do tĂ« thotĂ«, pĂ«rgjigjet vetĂ« ndaj SYN), zgjedh backend dhe inicon njĂ« seancĂ« tĂ« re TCP nĂ« drejtim tĂ« tij, duke dĂ«rguar vetĂ« SYN. Ky tip Ă«shtĂ« njĂ« nga bazikĂ«t, janĂ« tĂ« mundshme dhe variante tĂ« tjera.
  • Balancuesi L7 distribuon trafikun tek backendet e disponueshme mĂ« "sofistikuar" se çfarĂ« bĂ«n balancuesi L4. Ai mund tĂ« marrĂ« vendime mbi zgjedhjen e backendit nĂ« bazĂ«, pĂ«r shembull, tĂ« pĂ«rmbajtjes sĂ« mesazhit HTTP (URL, cookie etj.).

Pavarësisht nga tipi, balancuesi mund të mbështesë funksione të tjera si:

  • Zbulimi i shĂ«rbimeve – procesi i identifikimit tĂ« grupit tĂ« backendave tĂ« disponueshĂ«m (Static, DNS, Consul, Etcd etj.).
  • Kontrolli i disponueshmĂ«risĂ« sĂ« backendave tĂ« zbuluar (ping aktiv tĂ« backendit me kĂ«rkesĂ« HTTP, zbulimi pasiv i problemeve nĂ« lidhjet TCP, prania nĂ« pĂ«rgjigje tĂ« disa kodeve HTTP 503 njĂ«pasnjĂ«shĂ«m etj.).
  • VetĂ« balancimi (round robin, zgjedhje rastĂ«sore, hash i IP burimit, URI).
  • Terminimi TLS dhe verifikimi i certifikatat.
  • Opsionet e lidhura me sigurinĂ« (autentikimi, parandalimi i sulmeve DoS, kufizimi i shpejtĂ«sisĂ«) dhe shumĂ« tĂ« tjera.

NSX Edge ofron mbështetje për dy moda të vendosjes së balancuesit:

Rejimi proxy, ose one-arm. Në këtë mënyrë, NSX Edge, kur dërgon një kërkesë te një nga backend-et, përdor adresën e tij IP si adresën burimore. Kështu, balancuesi kryen njëkohësisht funksionet Source dhe Destination NAT. Backend-i e sheh të gjithë trafikun si të dërguar nga balancuesi dhe i përgjigjet drejtpërsëdrejti atij. Në një skemë të tillë, balancuesi duhet të jetë në të njëjtin segment rrjeti me serverat e brendshëm.

Ja si ndodh:
1.       Përdoruesi dërgon një kërkesë për adresën VIP (adresën e balancuesit), e cila është e konfiguruar në Edge.
2.       Edge zgjedh një nga backend-et dhe kryen destination NAT, duke zëvendësuar adresën VIP me adresën e backend-it të zgjedhur.
3.       Edge kryen source NAT, duke zëvendësuar adresën e përdoruesit që dërgoi kërkesën me adresën e tij.
4.       Paketa dërgohet te backend-i i zgjedhur.
5.       Backend-i përgjigjet jo drejtpërsëdrejti përdoruesit, por Edge-it, pasi adresa fillestare e përdoruesit u ndryshua në adresën e balancuesit.
6.       Edge kalon përgjigjen e serverit te përdoruesi.
Skema më poshtë.
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

ReĆŸimi transparent ose inline. NĂ« kĂ«tĂ« skenar, balancuesi ka ndĂ«rfaqe nĂ« rrjetin e brendshĂ«m dhe tĂ« jashtĂ«m. NĂ« kĂ«tĂ« rast, nuk ka qasje tĂ« drejtpĂ«rdrejtĂ« nĂ« rrjetin e brendshĂ«m nga jashtĂ«. Balancuesi i ngarkesĂ«s vepron si njĂ« gateway NAT pĂ«r makinat virtuale nĂ« rrjetin e brendshĂ«m.

Mekanizmi është si vijon:
1.       Përdoruesi dërgon një kërkesë për adresën VIP (adresën e balancuesit), e cila është e konfiguruar në Edge.
2.       Edge zgjedh një nga backend-et dhe kryen destination NAT, duke zëvendësuar adresën VIP me adresën e backend-it të zgjedhur.
3.       Paketa dërgohet te backend-i i zgjedhur.
4.       Backend-i merr kërkesën me adresën fillestare të përdoruesit (source NAT nuk është kryer) dhe i përgjigjet asaj drejtpërsëdrejti.
5.       Trafiku përsëri merret nga balancuesi i ngarkesës, pasi në skemën inline ai zakonisht vepron si gateway i parazgjedhur për fermën e serverëve.
6.       Edge kryen source NAT për të dërguar trafikun te përdoruesi, duke përdorur VIP-in e tij si adresë IP burimore.
Skema më poshtë.
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Praktika

Në skenarin tim të testimit, janë konfiguruar 3 serverë me Apache, i cili është konfiguruar për të punuar përmes HTTPS. Edge do të kryejë balancimin e kërkesave HTTPS sipas metodës round robin, duke proxy-uar çdo kërkesë të re në një server të ri.
Le të fillojmë.

Krijojmë një certifikatë SSL, e cila do të përdoret nga NSX Edge
Mund të importoni një certifikatë valide CA ose të përdorni një të vetëshkruar. Në këtë test, unë do të përdor një të vetëshkruar.

  1. Në ndërfaqen e vCloud Director kalojmë në konfigurimet e shërbimeve Edge.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Kalojmë në skedën Certifikatat. Nga lista e veprimeve zgjedhim shtimin e një CSR të ri.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  3. Plotni fushat e nevojshme dhe klikoni mbi Keep.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  4. Zgjidhni CSR-në e sapor krijuar dhe zgjidhni opsionin self-sign CSR.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  5. Zgjidhni periudhën e vlefshmërisë të certifikatës dhe klikoni mbi Keep.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  6. Certifikata e vetë-nënshkruar u shfaq në listën e atyre që janë në dispozicion.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Konfigurojmë Profilin e Aplikacionit
Profilat e aplikacionëve ofrojnë kontroll më të plotë mbi trafikun në rrjet dhe e bëjnë menaxhimin e tij të thjeshtë dhe efektiv. Me ndihmën e tyre, mund të përcaktojmë sjelljen për lloje të veçanta të trafik.

  1. Kalo në skedën Load Balancer dhe aktivizo balancuesin. Opsioni Acceleration enabled këtu lejon balancuesin të përdorë balancimin më të shpejtë L4 në vend të L7.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Kalo në skedën Application profile për të vendosur profilin e aplikacionit. Klikoni +.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  3. Vendosni emrin e profilit dhe zgjidhni llojin e trafik që do të aplikohet për profilin. Do të shpjegoj disa parametra.
    PersistencĂ« – ruan dhe ndjek tĂ« dhĂ«nat e sesionit, pĂ«r shembull: cili server i veçantĂ« nga grupi shĂ«rben kĂ«rkesĂ«n e pĂ«rdoruesit. Kjo garanton qĂ« kĂ«rkesat e pĂ«rdoruesit dĂ«rgohen nĂ« tĂ« njĂ«jtin anĂ«tar tĂ« grupit gjatĂ« gjithĂ« jetĂ«s sĂ« sesionit ose sesioneve tĂ« ardhshme.
    Aktivizo SSL passthrough – duke zgjedhur kĂ«tĂ« opsion, NSX Edge ndalon terminimin e SSL. NĂ« vend tĂ« kĂ«saj, terminimi ndodh direkt nĂ« serverat pĂ«r tĂ« cilĂ«t kryhet balancimi.
    Shto header-in X-Forwarded-For HTTP – lejon pĂ«rcaktimin e IP-nĂ« origjinale tĂ« klientit, qĂ« lidhet me serverin e uebit nĂ«pĂ«rmjet balancuesit.
    Aktivizo SSL nĂ« anĂ«n e grupit – lejon ta pĂ«rshkruash se grupi i zgjedhur pĂ«rbĂ«het nga servera HTTPS.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  4. Pasi do tĂ« balancoj trafik HTTPS, duhet tĂ« aktivizoj SSL-nĂ« nĂ« anĂ«n e grupit dhe tĂ« zgjidh njĂ« certifikatĂ« tĂ« krijuar mĂ« parĂ« nĂ« skedĂ«n Virtual Server Certificates —> Service Certificate.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  5. E njĂ«jta gjĂ« pĂ«r Pool Certificates —> Service Certificate.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Krijo një grup serverash, trafik për të cilët do të balancohet

  1. Kalo në skedën Pools. Klikoni +.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Vendosni emrin e grupit, zgjidhni algoritmin (do të përdor round robin) dhe llojin e monitorimit për kontrollin e shëndetit të backendit. Opsioni Transparent tregon nëse IP-të origjinale të klientëve janë të dukshme për serverat e brendshëm.
    • NĂ«se opsioni Ă«shtĂ« i çaktivizuar, trafiku pĂ«r serverat e brendshĂ«m shkon me IP-nĂ« origjinale tĂ« balancuesit.
    • NĂ«se opsioni Ă«shtĂ« aktivizuar, serverat e brendshĂ«m shohin IP-nĂ« origjinale tĂ« klientĂ«ve. NĂ« njĂ« konfigurim tĂ« tillĂ«, NSX Edge duhet tĂ« veprojĂ« si gateway-i i parazgjedhur pĂ«r tĂ« siguruar qĂ« paketat e kthimit kalojnĂ« nĂ«pĂ«r NSX Edge.

    NSX mbështet algoritmet e mëposhtme të balancimit:

    • IP_HASH – zgjedhja e serverit nĂ« bazĂ« tĂ« rezultateve tĂ« funksionit hash pĂ«r IP-nĂ« source dhe destination tĂ« çdo pakete.
    • LEASTCONN – balancimi i lidhjeve tĂ« ardhshme, nĂ« varĂ«si tĂ« numrit tĂ« lidhjeve qĂ« tashmĂ« ekzistojnĂ« nĂ« serverin pĂ«rkatĂ«s. Lidhjet e reja do tĂ« dĂ«rgohen nĂ« serverin me numrin mĂ« tĂ« vogĂ«l tĂ« lidhjeve.
    • ROUND_ROBIN – lidhjet e reja dĂ«rgohen nĂ« çdo server nĂ« mĂ«nyrĂ« tĂ« rregullt, nĂ« pĂ«rputhje me peshĂ«n qĂ« i Ă«shtĂ« caktuar.
    • URI – pjesa e majtĂ« e URI (deri te pika e pyetjeve) hash-it dhe ndahet nĂ« peshĂ«n totale tĂ« serverĂ«ve nĂ« grup. Rezultati tregon se cili server merr kĂ«rkesĂ«n, duke garantuar qĂ« kĂ«rkesa gjithmonĂ« dĂ«rgohet nĂ« tĂ« njĂ«jtin server, pĂ«r sa kohĂ« qĂ« tĂ« gjithĂ« serverĂ«t mbeten tĂ« aksesueshĂ«m.
    • HTTPHEADER – balancimi nĂ« bazĂ« tĂ« njĂ« header-i tĂ« caktuar HTTP, i cili mund tĂ« vihet si parametrik. NĂ«se header-i mungon ose nuk ka ndonjĂ« vlerĂ«, aplikohet algoritmi ROUND_ROBIN.
    • URL – nĂ« çdo kĂ«rkesĂ« HTTP GET, bĂ«het njĂ« kĂ«rkim mbi parametrin e URL-sĂ«, tĂ« caktuar si argument. NĂ«se pas parametrin ka njĂ« barazim dhe vlerĂ«, atĂ«herĂ« vlera hash-it dhe ndahet nĂ« peshĂ«n totale tĂ« serverĂ«ve tĂ« aktivizuar. Rezultati tregon se cili server merr kĂ«rkesĂ«n. Ky proces pĂ«rdoret pĂ«r tĂ« ndjekur identifikuesit e pĂ«rdoruesve nĂ« kĂ«rkesa dhe pĂ«r tĂ« siguruar qĂ« id e njĂ«soj pĂ«rdoruesi gjithmonĂ« dĂ«rgohet nĂ« tĂ« njĂ«jtin server, pĂ«r sa kohĂ« qĂ« tĂ« gjithĂ« serverĂ«t mbeten tĂ« aksesueshĂ«m.

    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

  3. Në pjesën Members kliko + për të shtuar serverë në grup.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

    Këtu duhet të tregoni:
    • emrin e serverit;
    • IP-adresĂ«n e serverit;
    • portin, nĂ« tĂ« cilin serveri do tĂ« marrĂ« trafik;
    • portin pĂ«r kontrollin shĂ«ndetĂ«sor (Monitor healthcheck);
    • peshĂ«n (Weight) – me kĂ«tĂ« parameter mund tĂ« rregulloni sasinĂ« proporcionale tĂ« trafikut tĂ« marrĂ« pĂ«r çdo anĂ«tar tĂ« grupit;
    • Max Connections – numri maksimal i lidhjeve nĂ« server;
    • Min Connections – numri minimal i lidhjeve qĂ« duhet tĂ« pĂ«rpunojĂ« serveri, para se trafiku tĂ« redirektohet te anĂ«tari tjetĂ«r i grupit.

    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

    Kështu duket grupi përfundimtar i tre serverëve.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Shtojmë Virtual Server

  1. Kalo në kartelën Virtual Servers. Kliko +.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Aktivizoni serverin virtual me Enable Virtual Server.
    I përcaktojmë emrin, zgjedhim Application Profile, Pool të krijuar më parë dhe çojmë IP-në e adresës ku Serveri Virtual do të pranojë kërkesat nga jashtë. Të cilat janë protokolli HTTPS dhe porta 443.
    Parametrat opsionalë këtu:
    Limiti i lidhjes – numri maksimal i lidhjeve tĂ« pĂ«rkohshme qĂ« mund tĂ« pĂ«rpunojĂ« serveri virtual;
    Limiti i ritmit tĂ« lidhjes (CPS) – numri maksimal i kĂ«rkesave tĂ« reja qĂ« i pranohen nĂ« sekondĂ«.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Me këtë, konfigurimi i balancuesit përfundon, mund të kontrollojmë funksionalitetin e tij. Serverat kanë një konfigurim të thjeshtë, e cila lejon të kuptojmë se cili server nga pool-i ka procesuar kërkesën. Gjatë konfigurimit, ne zgjodhëm algoritmin e balancimit Round Robin, dhe parametri Weight për çdo server është një, kështu që çdo kërkesë e ardhshme do të përpunojë serverin pasues nga pool-i.
Shkruajmë në shfletues adresën e jashtme të balancuesit dhe shohim:
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Pasi të përditësohet faqja, kërkesa do të përpunojë serverin pasues:
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Dhe njĂ« herĂ« tjetĂ«r – pĂ«r tĂ« kontrolluar dhe serverin e tretĂ« nga pool-i:
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Gjatë kontrollit, mund të shohim se certifikata, e cila na dërgon Edge, është ajo e cila u gjenerua në fillim.

Kontrollimi i statusit të balancuesit nga konsola e Gateway-it Edge. Për këtë, shkruani show service loadbalancer pool.
VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Konfigurojmë Monitorin e Shërbimeve për të kontrolluar gjendjen e serverëve në pool
Me ndihmën e Monitorit të Shërbimeve, ne mund të mbikëqyrim gjendjen e serverëve në pool-in e bllokuar. Nëse përgjigjja në kërkesë nuk përputhet me atë të pritur, serveri mund të përjashtohet nga pool-i, në mënyrë që të mos pranojë kërkesa të reja.
Në parazgjedhje janë konfiguruar tre metoda kontrolli:

  • TCP-monitor,
  • HTTP-monitor,
  • HTTPS-monitor.

Krijojmë një të re.

  1. Kalojmë në tab-in e Monitorimit të Shërbimeve, shtypim +.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Zgjedhim:
    • emrin pĂ«r metodĂ«n e re;
    • intervalin me tĂ« cilin do tĂ« dĂ«rgohen kĂ«rkesat,
    • kohĂ«n e pritjes pĂ«r pĂ«rgjigjen,
    • tipin e monitorimit – kĂ«rkesĂ« HTTPS duke pĂ«rdorur metodĂ«n GET, kodin e pritur tĂ« statusit – 200(OK) dhe URL-nĂ« e kĂ«rkesĂ«s.
  3. Me këtë, konfigurimi i Monitorit të Shërbimeve të ri përfundon, tani mund ta përdorim atë gjatë krijimit të pool-it.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Konfigurojmë Rregullat e Aplikacioneve

Rregullat e Aplikacioneve – njĂ« mĂ«nyrĂ« pĂ«r tĂ« manipuluar trafikun, e bazuar nĂ« disa triggerr. Me kĂ«tĂ« mjet mund tĂ« krijojmĂ« rregulla tĂ« avancuara pĂ«r balancimin e ngarkesave, konfigurimi i tĂ« cilave mund tĂ« jetĂ« i pamundur pĂ«rmes profileve tĂ« Aplikacioneve ose shĂ«rbimeve tĂ« tjera tĂ« disponueshme nĂ« Gateway-in Edge.

  1. Për të krijuar një rregull, kalojmë në skedën Rregullat e Aplikacionit të balancuesit.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  2. Zgjidhni emrin, skriptin që do të përdorë rregulli, dhe kliko në Ruaj.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  3. Pasi të krijohet rregulli, na nevojitet të redaktojmë Serverin Virtual të konfigurueshëm.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës
  4. Në skedën Avancuar, shtojmë rregullin që krijuam.
    VMware NSX për të vegjlit. Pjesa 5. Konfigurimi i balancuesit të ngarkesës

Në shembullin e mësipërm, aktivizuam mbështetje për tlsv1.

Disa shembuj të tjerë:

Rredirectimi i trafikut në një grup tjetër.
Me këtë skript mund të drejtojmë trafikun në një grup tjetër balancimi nëse grupi kryesor nuk funksionon. Për të vepruar rregulli, balancuesi duhet të ketë disa grupe të konfiguruara dhe të gjitha anëtarët e grupit kryesor duhet të jenë në gjendje down. Duhet të specifikohet emri i grupit, jo ID-ja e tij.

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME

Rredirectimi i trafikut në një burim të jashtëm.
Këtu ne drejtojmë trafikun në një uebfaqe të jashtme, nëse të gjithë pjesëmarrësit e grupit kryesor janë në gjendje down.

acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down

Edhe më shumë shembuj këtu.

Këtu për balancuesin kam përfunduar. Nëse keni pyetje, pyetni, jam gati të përgjigjem.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster