VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Prvi del. uvodni
Drugi del. Konfiguracija požarnega zidu in pravil NAT
Tretji del. Konfiguriranje DHCP
četrti del. Nastavitev usmerjanja

Prejšnjič smo govorili o zmogljivostih NSX Edge v smislu statičnega in dinamičnega usmerjanja, danes pa se bomo ukvarjali z izravnalnikom obremenitve.
Preden začnemo z nastavitvijo, bi vas rad na kratko spomnil na glavne vrste uravnoteženja.

Teorija

Vse današnje rešitve za uravnoteženje tovora so najpogosteje razdeljene v dve kategoriji: uravnoteženje na četrti (transportni) in sedmi (aplikacijski) ravni modela. ALI ČE. Model OSI ni najboljša referenčna točka pri opisovanju metod uravnoteženja. Na primer, če izravnalnik L4 podpira tudi zaključek TLS, ali potem postane izravnalnik L7? Ampak je, kar je.

  • Balancer L4 najpogosteje je srednji proxy, ki stoji med odjemalcem in nizom razpoložljivih ozadij, ki prekine povezave TCP (torej se neodvisno odzove na SYN), izbere ozadje in sproži novo sejo TCP v njegovi smeri, neodvisno pa pošlje SYN. Ta vrsta je ena izmed osnovnih, možne so tudi druge možnosti.
  • Balancer L7 distribuira promet med razpoložljivimi zaledji "bolj sofisticirano" kot to počne L4 Balancer. Lahko se odloči, katero zaledje bo izbral na podlagi, na primer, vsebine sporočila HTTP (URL, piškotek itd.).

Ne glede na vrsto lahko balanser podpira naslednje funkcije:

  • Odkrivanje storitev je postopek določanja nabora razpoložljivih ozadij (Static, DNS, Consul, Etcd itd.).
  • Preverjanje funkcionalnosti zaznanih ozadij (aktivni “ping” zaledja z zahtevo HTTP, pasivno zaznavanje težav v povezavah TCP, prisotnost več kod 503 HTTP v odgovorih itd.).
  • Samo uravnoteženje (krožno, naključno izbiranje, zgoščevanje izvornega IP-ja, URI).
  • Prekinitev TLS in preverjanje certifikata.
  • Možnosti, povezane z varnostjo (preverjanje pristnosti, preprečevanje napadov DoS, omejevanje hitrosti) in še veliko več.

NSX Edge ponuja podporo za dva načina uvajanja izravnalnika obremenitve:

Proxy način ali enoročno. V tem načinu NSX Edge uporablja svoj naslov IP kot izvorni naslov, ko pošlje zahtevo enemu od ozadij. Tako uravnoteženje istočasno opravlja funkcije izvornega in ciljnega NAT. Zaledje vidi ves promet, kot je bil poslan iz izravnalnika, in se nanj neposredno odzove. V takšni shemi mora biti izravnalnik v istem omrežnem segmentu z notranjimi strežniki.

Takole gre:
1. Uporabnik pošlje zahtevo na naslov VIP (naslov izravnalnika), ki je konfiguriran na napravi Edge.
2. Edge izbere enega od ozadij in izvede ciljni NAT, pri čemer naslov VIP nadomesti z naslovom izbranega ozadja.
3. Edge izvede izvorni NAT in zamenja naslov uporabnika, ki je poslal zahtevo, s svojim.
4. Paket je poslan v izbrano zaledje.
5. Zaledje se ne odziva neposredno na uporabnika, ampak na Edge, saj je bil prvotni naslov uporabnika spremenjen v naslov izravnalnika.
6. Edge posreduje odgovor strežnika uporabniku.
Diagram je spodaj.
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Transparentni ali inline način. V tem scenariju ima izravnalnik vmesnike v notranjem in zunanjem omrežju. Hkrati ni neposrednega dostopa do notranjega omrežja iz zunanjega. Vgrajeni izravnalnik obremenitve deluje kot prehod NAT za virtualne stroje v notranjem omrežju.

Mehanizem je naslednji:
1. Uporabnik pošlje zahtevo na naslov VIP (naslov izravnalnika), ki je konfiguriran na napravi Edge.
2. Edge izbere enega od ozadij in izvede ciljni NAT, pri čemer naslov VIP nadomesti z naslovom izbranega ozadja.
3. Paket je poslan v izbrano zaledje.
4. Zaledje prejme zahtevo z izvirnim naslovom uporabnika (izvorni NAT ni bil izveden) in nanjo neposredno odgovori.
5. Izravnalnik obremenitve ponovno sprejme promet, saj v vgrajeni shemi običajno deluje kot privzeti prehod za farmo strežnikov.
6. Edge izvaja izvorni NAT za pošiljanje prometa uporabniku, pri čemer uporablja njegov VIP kot izvorni naslov IP.
Diagram je spodaj.
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Practice

Moja preskusna naprava ima 3 strežnike, na katerih se izvaja Apache, ki je konfiguriran za delo prek HTTPS. Edge bo izvedel krožno uravnoteženje zahtev HTTPS, pri čemer bo vsako novo zahtevo posredoval novemu strežniku.
Začnimo.

Ustvarjanje potrdila SSL, ki ga bo uporabljal NSX Edge
Uvozite lahko veljavno potrdilo CA ali uporabite samopodpisano. Za ta test bom uporabil samopodpisano.

  1. V vmesniku vCloud Director pojdite na nastavitve storitev Edge.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. Pojdite na zavihek Certifikati. Na seznamu dejanj izberite dodajanje novega CSR.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  3. Izpolnite zahtevana polja in kliknite Obdrži.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  4. Izberite novo ustvarjeno CSR in izberite možnost samopodpisa CSR.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  5. Izberite obdobje veljavnosti potrdila in kliknite Obdrži
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  6. Samopodpisano potrdilo se prikaže na seznamu razpoložljivih.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Nastavitev profila aplikacije
Profili aplikacije vam omogočajo popolnejši nadzor nad omrežnim prometom ter omogočajo enostavno in učinkovito upravljanje. Z njimi je mogoče definirati vedenje za določene vrste prometa.

  1. Pojdite na zavihek Load Balancer in omogočite uravnoteženje. Možnost omogočenega pospeševanja tukaj omogoča, da balansirnik uporablja hitrejše uravnoteženje L4 namesto L7.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. Pojdite na zavihek Profil aplikacije, da nastavite profil aplikacije. Kliknite +.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  3. Nastavite ime profila in izberite vrsto prometa, za katerega bo profil uporabljen. Naj razložim nekaj parametrov.
    Vztrajnost – shranjuje in spremlja podatke o seji, na primer: kateri specifični strežnik v skupini servisira zahtevo uporabnika. To zagotavlja, da so uporabniške zahteve usmerjene k istemu članu skupine za celotno življenjsko dobo seje ali naslednjih sej.
    Omogoči prehod SSL – Ko je izbrana ta možnost, NSX Edge preneha prekinjati SSL. Namesto tega pride do prekinitve neposredno na strežnikih, ki se uravnotežijo.
    Vstavite glavo X-Forwarded-For HTTP – vam omogoča, da določite izvorni naslov IP odjemalca, ki se povezuje s spletnim strežnikom prek izravnalnika obremenitve.
    Omogoči SSL na strani bazena – vam omogoča, da določite, da je izbrano področje sestavljeno iz strežnikov HTTPS.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  4. Ker bom uravnaval promet HTTPS, moram omogočiti SSL na strani bazena in izbrati predhodno ustvarjeno potrdilo v zavihku Potrdila navideznega strežnika -> Potrdilo storitve.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  5. Podobno za Pool Certificates -> Service Certificate.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Ustvarimo skupino strežnikov, katerih promet bo uravnotežen

  1. Pojdite na zavihek Bazeni. Kliknite +.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. Nastavimo ime bazena, izberemo algoritem (uporabil bom krožno) in vrsto nadzora za zaledje preverjanja stanja.Možnost Transparent označuje, ali so začetni izvorni IP-ji odjemalcev vidni notranjim strežnikom.
    • Če je možnost onemogočena, prihaja promet za notranje strežnike z izvornega IP-ja izravnalnika.
    • Če je možnost omogočena, notranji strežniki vidijo izvorni IP odjemalcev. V tej konfiguraciji mora NSX Edge delovati kot privzeti prehod, da zagotovi, da vrnjeni paketi prehajajo skozi NSX Edge.

    NSX podpira naslednje algoritme uravnoteženja:

    • IP_HASH – izbira strežnika na podlagi rezultatov zgoščevalne funkcije za izvorni in ciljni IP vsakega paketa.
    • NAJMANJPOVEZ – izravnava dohodnih povezav glede na število, ki je že na voljo na posameznem strežniku. Nove povezave bodo usmerjene na strežnik z najmanj povezavami.
    • ROUND_ROBIN – nove povezave se pošljejo vsakemu strežniku po vrsti, v skladu s težo, ki mu je dodeljena.
    • URI – levi del URI (pred vprašajem) je zgoščen in deljen s skupno težo strežnikov v bazenu. Rezultat nakazuje, kateri strežnik prejme zahtevo, kar zagotavlja, da je zahteva vedno usmerjena na isti strežnik, dokler so vsi strežniki na voljo.
    • HTTPHEADER – uravnoteženje na podlagi specifične glave HTTP, ki jo lahko podate kot parameter. Če glava manjka ali nima nobene vrednosti, se uporabi algoritem ROUND_ROBIN.
    • URL – Vsaka zahteva HTTP GET išče parameter URL, naveden kot argument. Če parametru sledita znak enačaja in vrednost, potem je vrednost zgoščena in deljena s skupno težo delujočih strežnikov. Rezultat nakazuje, kateri strežnik prejme zahtevo. Ta postopek se uporablja za spremljanje ID-jev uporabnikov v zahtevah in zagotavljanje, da se isti ID uporabnika vedno pošlje istemu strežniku, dokler so vsi strežniki na voljo.

    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

  3. V bloku Člani kliknite +, da dodate strežnike v skupino.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

    Tukaj morate navesti:

    • ime strežnika;
    • IP naslov strežnika;
    • vrata, na katerih bo strežnik prejemal promet;
    • vrata za pregled stanja (Monitor healthcheck);
    • teža – s tem parametrom lahko prilagodite sorazmerno količino prometa, prejetega za določenega člana skupine;
    • Max Connections – največje število povezav s strežnikom;
    • Najmanjše število povezav – najmanjše število povezav, ki jih mora strežnik obdelati, preden se promet posreduje naslednjemu članu skupine.

    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

    Takole izgleda končni nabor treh strežnikov.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Dodajanje navideznega strežnika

  1. Pojdite na zavihek Virtual Servers. Kliknite +.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. Virtualni strežnik aktiviramo z možnostjo Enable Virtual Server.
    Damo mu ime, izberemo predhodno ustvarjen profil aplikacije, bazen in označimo naslov IP, na katerega bo virtualni strežnik prejemal zahteve od zunaj. Določimo protokol HTTPS in vrata 443.
    Izbirni parametri tukaj:
    Omejitev povezave – največje število sočasnih povezav, ki jih virtualni strežnik lahko obdela;
    Omejitev hitrosti povezave (CPS) – največje število novih dohodnih zahtev na sekundo.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

S tem je konfiguracija uravnoteženja končana; lahko preverite njegovo funkcionalnost. Strežniki imajo preprosto konfiguracijo, ki vam omogoča razumevanje, kateri strežnik iz skupine je obdelal zahtevo. Med nastavitvijo smo izbrali algoritem uravnoteženja Round Robin, parameter Weight za vsak strežnik pa je enak ena, tako da bo vsako naslednjo zahtevo obdelal naslednji strežnik iz skupine.
V brskalnik vnesemo zunanji naslov izravnalnika in vidimo:
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Po osvežitvi strani bo zahtevo obdelal naslednji strežnik:
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

In še enkrat - preverite tretji strežnik iz skupine:
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Pri preverjanju lahko vidite, da je potrdilo, ki nam ga pošlje Edge, enako tistemu, ki smo ga ustvarili na samem začetku.

Preverjanje statusa izravnalnika s konzole prehoda Edge. Če želite to narediti, vnesite pokaži področje uravnavalnika obremenitve storitve.
VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Konfiguriranje nadzornika storitev za preverjanje statusa strežnikov v področju
Z uporabo Service Monitorja lahko spremljamo stanje strežnikov v zalednem bazenu. Če odziv na zahtevo ni tak, kot je pričakovan, lahko strežnik odstranite iz skupine, tako da ne prejme novih zahtev.
Privzeto so konfigurirani trije načini preverjanja:

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

Ustvarimo novo.

  1. Pojdite na zavihek Service Monitoring, kliknite +.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. izberite:
    • ime za novo metodo;
    • interval, v katerem bodo poslane zahteve,
    • časovna omejitev čakanja na odgovor,
    • vrsta spremljanja – HTTPS zahteva z metodo GET, pričakovana statusna koda – 200(OK) in zahteva URL.
  3. S tem je nastavitev novega nadzornika storitev končana; zdaj ga lahko uporabimo pri ustvarjanju bazena.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

Nastavitev aplikacijskih pravil

Pravila aplikacij so način za manipulacijo prometa na podlagi določenih sprožilcev. S tem orodjem lahko ustvarimo napredna pravila za uravnoteženje obremenitve, ki morda niso mogoča prek aplikacijskih profilov ali drugih storitev, ki so na voljo na Edge Gateway.

  1. Če želite ustvariti pravilo, pojdite na zavihek Application Rules v izravnalniku.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  2. Izberite ime, skript, ki bo uporabljal pravilo, in kliknite Obdrži.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  3. Ko je pravilo ustvarjeno, moramo urediti že konfiguriran virtualni strežnik.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve
  4. Na zavihku Napredno dodajte pravilo, ki smo ga ustvarili.
    VMware NSX za najmlajše. 5. del: Konfiguriranje izravnalnika obremenitve

V zgornjem primeru smo omogočili podporo tlsv1.

Še par primerov:

Preusmerite promet na drug bazen.
S tem skriptom lahko preusmerimo promet na drugo izravnalno skupino, če glavno skupino ne deluje. Da pravilo deluje, mora biti na izravnalniku konfiguriranih več bazenov in vsi člani glavnega bazena morajo biti v neaktivnem stanju. Določiti morate ime bazena, ne ID-ja.

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

Preusmeri promet na zunanji vir.
Tukaj preusmerimo promet na zunanje spletno mesto, če vsi člani glavne skupine ne delujejo.

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

Še več primerov tukaj.

To je zame vse glede balanserja. Če imate kakršna koli vprašanja, vprašajte, pripravljen sem odgovoriti.

Vir: www.habr.com

Dodaj komentar