
Eelmisel korral rÀÀkisime NSX Edge'i vĂ”imalustest staatilise ja dĂŒnaamilise marsruutimise osas ning tĂ€na tegeleme koormuse tasakaalustajaga.
Enne seadistamise alustamist tahaksin teile lĂŒhidalt meelde tuletada peamisi tasakaalustamise liike.
ĐąĐ”ĐŸŃĐžŃ
KÔik tÀnapÀevased kasuliku koormuse tasakaalustamise lahendused jagunevad kÔige sagedamini kahte kategooriasse: tasakaalustamine mudeli neljandal (transport) ja seitsmendal (rakendus) tasemel. . OSI mudel ei ole tasakaalustamismeetodite kirjeldamisel parim vÔrdluspunkt. NÀiteks kui L4 tasakaalustaja toetab ka TLS-i lÔpetamist, siis kas sellest saab siis L7 tasakaalustaja? Aga see on, mis see on.
- Tasakaalustaja L4 enamasti on see keskmine puhverserver, mis asub kliendi ja saadaolevate taustaprogrammide komplekti vahel, mis lĂ”petab TCP-ĂŒhendused (st vastab iseseisvalt SYN-ile), valib taustaprogrammi ja algatab selle suunas uue TCP-seansi, saates iseseisvalt SYN-i. See tĂŒĂŒp on ĂŒks pĂ”hilistest, vĂ”imalikud on ka muud vĂ”imalused.
- Tasakaalustaja L7 jaotab liiklust saadaolevate taustaprogrammide vahel "keerulisemalt" kui L4 tasakaalustaja. See vĂ”ib nĂ€iteks HTTP-sĂ”numi sisu (URL, kĂŒpsis jne) pĂ”hjal otsustada, millist taustaprogrammi valida.
Olenemata tĂŒĂŒbist vĂ”ib tasakaalustaja toetada jĂ€rgmisi funktsioone:
- Teenuse avastamine on saadaolevate taustaprogrammide (staatiline, DNS, konsul, jne jne) mÀÀramise protsess.
- Tuvastatud taustaprogrammide funktsionaalsuse kontrollimine (taustaprogrammi aktiivne "ping" HTTP pĂ€ringu abil, TCP-ĂŒhenduste probleemide passiivne tuvastamine, mitme 503 HTTP-koodi olemasolu vastustes jne).
- Tasakaalustamine ise (ringhÀÀling, juhuslik valik, allika IP-rÀsi, URI).
- TLS-i lÔpetamine ja sertifikaadi kontrollimine.
- Turvalisusega seotud valikud (autentimine, DoS rĂŒnnakute vĂ€ltimine, kiiruse piiramine) ja palju muud.
NSX Edge pakub tuge kahele koormuse tasakaalustaja juurutusreĆŸiimile:
Puhverserveri reĆŸiim vĂ”i ĂŒhe kĂ€ega. Selles reĆŸiimis kasutab NSX Edge oma IP-aadressi lĂ€hteaadressina, kui saadab pĂ€ringu ĂŒhele taustaprogrammidest. Seega tĂ€idab tasakaalustaja samaaegselt Source ja Destination NAT funktsioone. Taustaprogramm nĂ€eb kogu tasakaalustajast saadetud liiklust ja vastab sellele otse. Sellise skeemi puhul peab tasakaalustaja olema siseserveritega samas vĂ”rgusegmendis.
See kÀib jÀrgmiselt.
1. Kasutaja saadab pÀringu Edge'is konfigureeritud VIP-aadressile (tasakaaluaadressile).
2. Edge valib ĂŒhe taustaprogrammidest ja teostab sihtkoha NAT-i, asendades VIP-aadressi valitud taustaprogrammi aadressiga.
3. Edge teostab lÀhte-NAT-i, asendades pÀringu saatnud kasutaja aadressi oma aadressiga.
4. Pakk saadetakse valitud taustaprogrammi.
5. Taustaprogramm ei vasta otse kasutajale, vaid Edge'ile, kuna kasutaja algne aadress on muudetud tasakaalustaja aadressiks.
6. Edge edastab kasutajale serveri vastuse.
Diagramm on allpool.

LĂ€bipaistev vĂ”i tekstisisene reĆŸiim. Selle stsenaariumi korral on tasakaalustajal sise- ja vĂ€lisvĂ”rkude liidesed. Samal ajal puudub vĂ€lisvĂ”rgust otsene juurdepÀÀs sisevĂ”rgule. Sisseehitatud koormuse tasakaalustaja toimib sisevĂ”rgus olevate virtuaalsete masinate NAT-lĂŒĂŒsina.
Mehhanism on jÀrgmine:
1. Kasutaja saadab pÀringu Edge'is konfigureeritud VIP-aadressile (tasakaaluaadressile).
2. Edge valib ĂŒhe taustaprogrammidest ja teostab sihtkoha NAT-i, asendades VIP-aadressi valitud taustaprogrammi aadressiga.
3. Pakk saadetakse valitud taustaprogrammi.
4. Taustaprogramm saab pÀringu kasutaja algse aadressiga (allika NAT-i ei tehtud) ja vastab sellele otse.
5. Koormuse tasakaalustaja aktsepteerib taas liiklust, kuna siseskeemis toimib see tavaliselt serveripargi vaikelĂŒĂŒsina.
6. Edge teostab kasutajale liikluse saatmiseks lÀhte-NAT-i, kasutades lÀhte-IP-aadressina oma VIP-i.
Diagramm on allpool.

Tava
Minu katsestendil on 3 serverit, kus töötab Apache, mis on konfigureeritud töötama ĂŒle HTTPS-i. Edge tasakaalustab HTTPS-i pĂ€ringuid ĂŒmberringi, edastades iga uue pĂ€ringu uude serverisse.
Alustame.
SSL-sertifikaadi genereerimine, mida NSX Edge kasutab
Saate importida kehtiva CA-sertifikaadi vÔi kasutada iseallkirjastatud sertifikaati. Selle testi jaoks kasutan ise allkirjastatud.
- Avage vCloud Directori liideses Edge'i teenuste seaded.

- Minge vahekaardile Sertifikaadid. Valige toimingute loendist uue CSR-i lisamine.

- TÀitke nÔutud vÀljad ja klÔpsake nuppu SÀilita.

- Valige vastloodud CSR ja valige CSR-i iseallkirjastamise valik.

- Valige sertifikaadi kehtivusaeg ja klÔpsake nuppu SÀilita

- Iseallkirjastatud sertifikaat kuvatakse saadaolevate sertifikaatide loendis.

Rakenduse profiili seadistamine
Rakenduste profiilid annavad teile tĂ€ielikuma kontrolli vĂ”rguliikluse ĂŒle ning muudavad selle haldamise lihtsaks ja tĂ”husaks. Neid saab kasutada teatud tĂŒĂŒpi liikluse kĂ€itumise mÀÀratlemiseks.
- Minge vahekaardile Load Balancer ja lubage tasakaalustaja. Siinne valik Kiirendus lubab vÔimaldab tasakaalustajal kasutada L4 asemel kiiremat L7 tasakaalustamist.

- Rakenduse profiili mÀÀramiseks minge vahekaardile Rakenduse profiil. KlÔpsake +.

- MÀÀrake profiili nimi ja valige liikluse tĂŒĂŒp, mille jaoks profiili rakendatakse. Lubage mul selgitada mĂ”ningaid parameetreid.
PĂŒsivus â salvestab ja jĂ€lgib seansiandmeid, nĂ€iteks: milline konkreetne puuli server kasutaja pĂ€ringut teenindab. See tagab, et kasutajate pĂ€ringud suunatakse seansi vĂ”i jĂ€rgnevate seansside jooksul samale puuliliikmele.
SSL-i lĂ€bipÀÀsu lubamine â Kui see suvand on valitud, lĂ”petab NSX Edge SSL-i lĂ”petamise. Selle asemel toimub lĂ”petamine otse tasakaalustatavates serverites.
Sisestage X-Forwarded-For HTTP pĂ€is â vĂ”imaldab mÀÀrata koormuse tasakaalustaja kaudu veebiserveriga ĂŒhenduse loova kliendi lĂ€hte IP-aadressi.
Luba basseinipoolne SSL â vĂ”imaldab mÀÀrata, et valitud kogum koosneb HTTPS-serveritest.

- Kuna ma tasakaalustan HTTPS-i liiklust, pean lubama basseinipoolse SSL-i ja valima varem genereeritud sertifikaadi vahekaardil Virtuaalserveri sertifikaadid -> Teenuse sertifikaat.

- Samamoodi basseini sertifikaatide jaoks -> teenuse sertifikaat.

Loome serverite basseini, mille liiklus on tasakaalustatud kogumid
- Minge vahekaardile Basseinid. KlÔpsake +.

- MÀÀrame basseini nime, valime algoritmi (kasutan round robin âi) ja tervisekontrolli taustaprogrammi monitooringu tĂŒĂŒbi Valik Transparent nĂ€itab, kas klientide algsed lĂ€htekoodid on siseserveritele nĂ€htavad.
- Kui valik on keelatud, pÀrineb sisemiste serverite liiklus tasakaalustaja lÀhte-IP-st.
- Kui see valik on lubatud, nĂ€evad siseserverid klientide lĂ€hte-IP-d. Selles konfiguratsioonis peab NSX Edge toimima vaikelĂŒĂŒsina, et tagada tagastatud pakettide lĂ€bimine NSX Edge'i kaudu.
NSX toetab jÀrgmisi tasakaalustamisalgoritme:
- IP_HASH â serveri valik iga paketi lĂ€hte- ja sihtkoha IP rĂ€sifunktsiooni tulemuste pĂ”hjal.
- LEASTCONN â sissetulevate ĂŒhenduste tasakaalustamine, sĂ”ltuvalt konkreetses serveris juba saadaval olevast numbrist. Uued ĂŒhendused suunatakse serverisse, millel on kĂ”ige vĂ€hem ĂŒhendusi.
- ROUND_ROBIN â uued ĂŒhendused saadetakse kordamööda igasse serverisse vastavalt sellele mÀÀratud kaalule.
- URI â URI vasak osa (enne kĂŒsimĂ€rki) rĂ€sitakse ja jagatakse basseinis olevate serverite kogukaaluga. Tulemus nĂ€itab, milline server pĂ€ringu saab, tagades, et pĂ€ring suunatakse alati samasse serverisse, kuni kĂ”ik serverid on saadaval.
- HTTPHEADER â tasakaalustamine konkreetse HTTP pĂ€ise alusel, mida saab mÀÀrata parameetrina. Kui pĂ€is puudub vĂ”i sellel pole vÀÀrtust, rakendatakse algoritmi ROUND_ROBIN.
- URL â Iga HTTP GET-i pĂ€ring otsib argumendina mÀÀratud URL-i parameetrit. Kui parameetrile jĂ€rgneb vĂ”rdusmĂ€rk ja vÀÀrtus, siis vÀÀrtus rĂ€sitakse ja jagatakse töötavate serverite kogukaaluga. Tulemus nĂ€itab, milline server pĂ€ringu saab. Seda protsessi kasutatakse pĂ€ringutes olevate kasutajatunnuste jĂ€lgimiseks ja selle tagamiseks, et samasse serverisse saadetakse alati sama kasutaja ID, kuni kĂ”ik serverid on saadaval.

- Serverite basseini lisamiseks klÔpsake plokis Liikmed nuppu +.

Siin peate mÀrkima:- serveri nimi;
- serveri IP-aadress;
- port, mille kaudu server liiklust vastu vÔtab;
- tervisekontrolli port (Monitor healthcheck);
- kaal â selle parameetri abil saate reguleerida konkreetse puuliliikme jaoks vastuvĂ”etud liikluse proportsionaalset hulka;
- Max Connections â maksimaalne ĂŒhenduste arv serveriga;
- Minimaalsed ĂŒhendused â minimaalne ĂŒhenduste arv, mida server peab töötlema enne liikluse edastamist jĂ€rgmisele kogumi liikmele.

Selline nÀeb vÀlja lÔplik kolmest serverist koosnev kogum.

Virtuaalserveri lisamine
- Minge vahekaardile Virtuaalsed serverid. KlÔpsake +.

- Virtuaalserveri aktiveerime kÀsuga Enable Virtual Server.
Anname sellele nime, valime eelnevalt loodud rakendusprofiili, basseini ja nÀitame IP-aadressi, millele virtuaalserver saab vÀljastpoolt pÀringuid. MÀÀrame HTTPS-protokolli ja pordi 443.
Valikulised parameetrid siin:
Ăhenduse piirang â maksimaalne samaaegsete ĂŒhenduste arv, mida virtuaalserver saab töödelda;
Ăhenduskiiruse piirang (CPS) â maksimaalne uute sissetulevate pĂ€ringute arv sekundis.

See lĂ”petab tasakaalustaja seadistamise ja saate kontrollida selle funktsionaalsust. Serveritel on lihtne konfiguratsioon, mis vĂ”imaldab teil mĂ”ista, milline basseini server pĂ€ringu töötles. Seadistamise kĂ€igus valisime Round Robini tasakaalustamisalgoritmi ja iga serveri parameeter Weight on vĂ”rdne ĂŒhega, nii et iga jĂ€rgnevat pĂ€ringut töötleb basseini jĂ€rgmine server.
Sisestame brauserisse tasakaalustaja vÀlisaadressi ja nÀeme:

PÀrast lehe vÀrskendamist töötleb pÀringut jÀrgmine server:

Ja veel kord - kolmanda serveri kontrollimiseks basseinist:

Kontrollides on nÀha, et sertifikaat, mille Edge meile saadab, on sama, mille genereerisime kohe alguses.
Tasakaalustaja oleku kontrollimine Edge gateway konsoolist. Selleks sisestage show service loadbalancer pool.

Service Monitori konfigureerimine basseinis olevate serverite oleku kontrollimiseks
Service Monitori abil saame jÀlgida taustaprogrammi serverite olekut. Kui vastus pÀringule ei vasta ootustele, saab serveri basseinist vÀlja viia, et see ei saaks uusi pÀringuid.
Vaikimisi on konfigureeritud kolm kinnitusmeetodit:
- TCP-monitor,
- HTTP monitor,
- HTTPS-monitor.
Loome uue.
- Minge vahekaardile Teenuse jÀlgimine, klÔpsake nuppu +.

- Valige:
- uue meetodi nimi;
- taotluste saatmise intervall,
- ajalÔpp vastuse ootamisel,
- jĂ€lgimise tĂŒĂŒp â HTTPS-i pĂ€ring GET-meetodil, eeldatav olekukood â 200(OK) ja pĂ€ringu URL.
- See lĂ”petab uue Service Monitori seadistamise; nĂŒĂŒd saame seda kasutada basseini loomisel.

Rakendusreeglite seadistamine
Rakendusreeglid on viis liiklusega manipuleerimiseks teatud pÀÀstikute alusel. Selle tööriista abil saame luua tÀpsemaid koormuse tasakaalustamise reegleid, mis ei pruugi olla vÔimalikud rakenduseprofiilide vÔi muude Edge Gateways saadaolevate teenuste kaudu.
- Reegli loomiseks minge tasakaalustaja vahekaardile Rakendusreeglid.

- Valige nimi, reeglit kasutav skript ja klÔpsake nuppu SÀilita.

- PĂ€rast reegli loomist peame redigeerima juba konfigureeritud virtuaalserverit.

- Lisage vahekaardile TĂ€psemalt meie loodud reegel.

Ălaltoodud nĂ€ites lubasime tlsv1 toe.
Paar nÀidet veel:
Suunake liiklus ĂŒmber teise basseini.
Selle skriptiga saame suunata liikluse teise tasakaalustavasse basseini, kui pÔhikogum on maas. Reegli toimimiseks peab tasakaalustajal olema konfigureeritud mitu kogumit ja kÔik pÔhikogumi liikmed peavad olema maasolekus. Peate mÀÀrama basseini nime, mitte selle ID.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Suunake liiklus ĂŒmber vĂ€lisele ressursile.
Siin suuname liikluse ĂŒmber vĂ€lisele veebisaidile, kui kĂ”ik pĂ”hipuuli liikmed ei tööta.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Veel rohkem nÀiteid .
See on minu jaoks tasakaaluliikuri kohta kĂ”ik. Kui teil on kĂŒsimusi, kĂŒsige, olen valmis vastama.
Allikas: www.habr.com
























