Viime kerralla puhuimme NSX Edgen ominaisuuksista staattisen ja dynaamisen reitityksen suhteen, ja tänään käsittelemme kuormantasainta.
Ennen kuin aloitamme asettamisen, haluaisin lyhyesti muistuttaa sinua tärkeimmistä tasapainotuksista.
teoria
Kaikki nykyiset hyötykuorman tasapainotusratkaisut jaetaan useimmiten kahteen luokkaan: tasapainotukseen mallin neljännellä (kuljetus) ja seitsemännellä (sovellus) tasolla.
- Tasapainotin L4 Useimmiten se on asiakkaan ja käytettävissä olevien taustaohjelmien välissä oleva keskimmäinen välityspalvelin, joka katkaisee TCP-yhteydet (eli vastaa itsenäisesti SYN:ään), valitsee taustajärjestelmän ja aloittaa uuden TCP-istunnon sen suuntaan lähettäen itsenäisesti SYN:n. Tämä tyyppi on yksi perustyypeistä, muut vaihtoehdot ovat mahdollisia.
- Tasapainotin L7 jakaa liikenteen käytettävissä olevien taustajärjestelmien välillä "kehittyneemmin" kuin L4-tasapainotin. Se voi päättää, minkä taustajärjestelmän valitaan esimerkiksi HTTP-viestin sisällön (URL, eväste jne.) perusteella.
Tyypistä riippumatta tasapainotin voi tukea seuraavia toimintoja:
- Palvelun etsintä on prosessi, jossa määritetään käytettävissä olevien taustaohjelmien joukko (Staattinen, DNS, Consul, jne.).
- Havaittujen taustaohjelmien toimivuuden tarkistaminen (taustajärjestelmän aktiivinen "ping" HTTP-pyynnön avulla, TCP-yhteyksien ongelmien passiivinen havaitseminen, useiden 503 HTTP-koodien läsnäolo vastauksissa jne.).
- Itse tasapainotus (round robin, satunnainen valinta, lähde-IP-hash, URI).
- TLS:n lopettaminen ja varmenteen vahvistus.
- Turvallisuuteen liittyvät vaihtoehdot (todennus, DoS-hyökkäysten esto, nopeudenrajoitus) ja paljon muuta.
NSX Edge tukee kahta kuormantasaajan käyttöönottotilaa:
Välityspalvelintila tai yksikätinen. Tässä tilassa NSX Edge käyttää IP-osoitettaan lähdeosoitteena lähettäessään pyynnön johonkin taustajärjestelmistä. Siten tasapainotin suorittaa samanaikaisesti Source- ja Destination NAT -toiminnot. Taustaohjelma näkee kaiken liikenteen tasapainottimesta lähetettynä ja vastaa siihen suoraan. Tällaisessa järjestelmässä tasapainottimen on oltava samassa verkkosegmentissä sisäisten palvelimien kanssa.
Näin se menee:
1. Käyttäjä lähettää pyynnön VIP-osoitteeseen (tasapainotusosoitteeseen), joka on määritetty Edgessä.
2. Edge valitsee yhden taustaohjelmista ja suorittaa kohde-NAT:n korvaten VIP-osoitteen valitun taustaohjelman osoitteella.
3. Edge suorittaa lähde-NAT:n ja korvaa pyynnön lähettäneen käyttäjän osoitteen omalla osoitteellaan.
4. Paketti lähetetään valittuun taustajärjestelmään.
5. Backend ei vastaa suoraan käyttäjälle, vaan Edgelle, koska käyttäjän alkuperäinen osoite on muutettu tasapainottimen osoitteeksi.
6. Edge lähettää palvelimen vastauksen käyttäjälle.
Kaavio on alla.
Läpinäkyvä tai sisäänrakennettu tila. Tässä skenaariossa tasapainottimella on liitännät sisäiseen ja ulkoiseen verkkoon. Samanaikaisesti ulkoisesta ei ole suoraa pääsyä sisäiseen verkkoon. Sisäänrakennettu kuormituksen tasapainotin toimii NAT-yhdyskäytävänä sisäisessä verkossa oleville virtuaalikoneen.
Mekanismi on seuraava:
1. Käyttäjä lähettää pyynnön VIP-osoitteeseen (tasapainotusosoitteeseen), joka on määritetty Edgessä.
2. Edge valitsee yhden taustaohjelmista ja suorittaa kohde-NAT:n korvaten VIP-osoitteen valitun taustaohjelman osoitteella.
3. Paketti lähetetään valittuun taustajärjestelmään.
4. Backend vastaanottaa pyynnön käyttäjän alkuperäisellä osoitteella (lähde-NAT:ta ei suoritettu) ja vastaa siihen suoraan.
5. Kuormantasaaja hyväksyy jälleen liikenteen, koska inline-mallissa se yleensä toimii palvelinfarmin oletusyhdyskäytävänä.
6. Edge suorittaa lähde-NAT:n lähettääkseen liikenteen käyttäjälle käyttämällä sen VIP-osoitetta lähde-IP-osoitteena.
Kaavio on alla.
Käytäntö
Testipenkissäni on kolme palvelinta, joissa on Apache, joka on määritetty toimimaan HTTPS:n yli. Edge suorittaa HTTPS-pyyntöjen round robin -tasapainotuksen ja välittää jokaisen uuden pyynnön uudelle palvelimelle.
Aloitetaan.
Luodaan SSL-varmenne, jota NSX Edge käyttää
Voit tuoda voimassa olevan CA-varmenteen tai käyttää itse allekirjoitettua varmennetta. Tässä testissä käytän itse allekirjoitettua.
- Siirry vCloud Director -käyttöliittymässä Edge-palveluasetuksiin.
- Siirry Sertifikaatit-välilehteen. Valitse toimintoluettelosta uuden CSR:n lisääminen.
- Täytä vaaditut kentät ja napsauta Säilytä.
- Valitse äskettäin luotu CSR ja valitse itse allekirjoitus CSR-vaihtoehto.
- Valitse varmenteen voimassaoloaika ja napsauta Säilytä
- Itse allekirjoitettu varmenne näkyy käytettävissä olevien varmenteiden luettelossa.
Sovellusprofiilin määrittäminen
Sovellusprofiilit antavat sinulle täydellisemmän hallinnan verkkoliikenteestä ja tekevät sen hallinnasta yksinkertaista ja tehokasta. Niitä voidaan käyttää määrittämään tietyntyyppisen liikenteen käyttäytymistä.
- Siirry Load Balancer -välilehdelle ja ota tasapainotin käyttöön. Kiihdytys käytössä -vaihtoehto sallii tasapainottimen käyttää nopeampaa L4-tasapainotusta L7:n sijaan.
- Siirry Sovellusprofiili-välilehdelle asettaaksesi sovellusprofiilin. Napsauta +.
- Aseta profiilin nimi ja valitse liikennetyyppi, jolle profiilia käytetään. Selitän joitain parametreja.
Sitkeys – tallentaa ja seuraa istuntotietoja, esimerkiksi: mikä tietty palvelin poolissa palvelee käyttäjän pyyntöä. Tämä varmistaa, että käyttäjien pyynnöt reititetään samalle poolin jäsenelle istunnon tai sitä seuraavien istuntojen ajan.
Ota SSL-läpivienti käyttöön – Kun tämä vaihtoehto valitaan, NSX Edge lopettaa SSL:n lopettamisen. Sen sijaan lopettaminen tapahtuu suoraan palvelimilla, joita tasapainotetaan.
Lisää X-Forwarded-For HTTP-otsikko – mahdollistaa verkkopalvelimeen yhteyden muodostavan asiakkaan lähde-IP-osoitteen määrittämisen kuormituksen tasapainottimen kautta.
Ota allaspuolen SSL käyttöön – voit määrittää, että valittu pooli koostuu HTTPS-palvelimista.
- Koska aion tasapainottaa HTTPS-liikennettä, minun on otettava käyttöön Pool Side SSL ja valittava aiemmin luotu varmenne Virtual Server Certificates -> Service Certificate -välilehdellä.
- Samoin allasvarmenteille -> Palveluvarmenne.
Luomme palvelinpoolin, jonka liikenne on tasapainotettuja pooleja
- Siirry Uima-altaat-välilehteen. Napsauta +.
- Asetamme poolin nimen, valitsemme algoritmin (käytän round robinia) ja valvonnan tyypin kuntotarkastuksen taustajärjestelmää varten.. Transparent-vaihtoehto osoittaa, ovatko asiakkaiden alkuperäiset lähde-IP:t sisäisten palvelimien nähtävissä.
- Jos vaihtoehto ei ole käytössä, sisäisten palvelimien liikenne tulee tasapainottimen lähde-IP:stä.
- Jos vaihtoehto on käytössä, sisäiset palvelimet näkevät asiakkaiden lähde-IP-osoitteet. Tässä kokoonpanossa NSX Edgen on toimittava oletusyhdyskäytävänä varmistaakseen, että palautetut paketit kulkevat NSX Edgen kautta.
NSX tukee seuraavia tasapainotusalgoritmeja:
- IP_HASH – palvelimen valinta kunkin paketin lähde- ja kohde-IP:n hash-funktion tulosten perusteella.
- LEASTCONN – saapuvien yhteyksien tasapainottaminen tietyllä palvelimella jo käytettävissä olevan määrän mukaan. Uudet yhteydet ohjataan palvelimelle, jolla on vähiten yhteyksiä.
- ROUND_ROBIN – uudet yhteydet lähetetään vuorotellen jokaiselle palvelimelle sille osoitetun painon mukaan.
- URI – URI:n vasen osa (ennen kysymysmerkkiä) tiivistetään ja jaetaan poolissa olevien palvelimien kokonaispainolla. Tulos osoittaa, mikä palvelin vastaanottaa pyynnön ja varmistaa, että pyyntö reititetään aina samalle palvelimelle niin kauan kuin kaikki palvelimet ovat käytettävissä.
- HTTPHEADER – tasapainotus tietyn HTTP-otsikon perusteella, joka voidaan määrittää parametriksi. Jos otsikko puuttuu tai sillä ei ole arvoa, käytetään ROUND_ROBIN-algoritmia.
- URL – Jokainen HTTP GET -pyyntö etsii argumentiksi määritettyä URL-parametria. Jos parametria seuraa yhtäläisyysmerkki ja arvo, arvo tiivistetään ja jaetaan käynnissä olevien palvelimien kokonaispainolla. Tulos osoittaa, mikä palvelin vastaanottaa pyynnön. Tätä prosessia käytetään seuraamaan pyyntöjen käyttäjätunnuksia ja varmistamaan, että sama käyttäjätunnus lähetetään aina samalle palvelimelle, kunhan kaikki palvelimet ovat käytettävissä.
- Napsauta Jäsenet-lohkossa + lisätäksesi palvelimia pooliin.
Tässä sinun on ilmoitettava:- palvelimen nimi;
- Palvelimen IP-osoite;
- portti, jolla palvelin vastaanottaa liikennettä;
- portti terveystarkastusta varten (Monitor healthcheck);
- paino – tällä parametrilla voit säätää tietyn poolin jäsenen vastaanotetun liikenteen suhteellista määrää;
- Max Connections – yhteyksien enimmäismäärä palvelimeen;
- Minimiyhteydet – yhteyksien vähimmäismäärä, joka palvelimen on käsiteltävä ennen kuin liikenne välitetään seuraavalle poolin jäsenelle.
Tältä näyttää lopullinen kolmen palvelimen pooli.
Virtuaalipalvelimen lisääminen
- Siirry Virtuaalipalvelimet-välilehteen. Napsauta +.
- Aktivoimme virtuaalipalvelimen Enable Virtual Server -toiminnolla.
Annamme sille nimen, valitsemme aiemmin luodun sovellusprofiilin, poolin ja ilmoitamme IP-osoitteen, johon virtuaalipalvelin vastaanottaa pyynnöt ulkopuolelta. Määritämme HTTPS-protokollan ja portin 443.
Valinnaiset parametrit täällä:
Yhteysrajoitus – samanaikaisten yhteyksien enimmäismäärä, jonka virtuaalipalvelin voi käsitellä;
Yhteysnopeuden raja (CPS) – uusien saapuvien pyyntöjen enimmäismäärä sekunnissa.
Tämä viimeistelee tasapainottimen konfiguroinnin; voit tarkistaa sen toimivuuden. Palvelimilla on yksinkertainen kokoonpano, jonka avulla voit ymmärtää, mikä poolin palvelin käsitteli pyynnön. Asennuksen aikana valitsimme Round Robin -tasapainotusalgoritmin, ja kunkin palvelimen paino-parametri on yhtä suuri kuin yksi, joten jokaisen myöhemmän pyynnön käsittelee poolista seuraava palvelin.
Kirjoitamme tasapainottimen ulkoisen osoitteen selaimeen ja näemme:
Sivun päivityksen jälkeen seuraava palvelin käsittelee pyynnön:
Ja jälleen - tarkistaaksesi kolmannen palvelimen poolista:
Tarkistaessasi näet, että Edgen meille lähettämä varmenne on sama, jonka loimme heti alussa.
Tasapainottimen tilan tarkistus Edge-yhdyskäytäväkonsolista. Voit tehdä tämän syöttämällä näytä palvelu kuormituksen tasapainottaja allas.
Service Monitorin määrittäminen tarkistamaan poolissa olevien palvelimien tilaa
Service Monitorin avulla voimme valvoa palvelinten tilaa backend poolissa. Jos vastaus pyyntöön ei ole odotetusti, palvelin voidaan poistaa poolista, jotta se ei vastaanota uusia pyyntöjä.
Oletuksena on määritetty kolme vahvistusmenetelmää:
- TCP-näyttö,
- HTTP-näyttö,
- HTTPS-näyttö.
Luodaan uusi.
- Siirry Palvelun valvonta -välilehdelle ja napsauta +.
- Valita:
- uuden menetelmän nimi;
- aikaväli, jolloin pyynnöt lähetetään,
- aikakatkaisu odottaa vastausta,
- seurantatyyppi – HTTPS-pyyntö GET-menetelmällä, odotettu tilakoodi – 200(OK) ja pyynnön URL-osoite.
- Tämä viimeistelee uuden Service Monitorin asennuksen; nyt voimme käyttää sitä poolia luotaessa.
Sovellussääntöjen määrittäminen
Sovellussäännöt ovat tapa manipuloida liikennettä tiettyjen laukaisimien perusteella. Tämän työkalun avulla voimme luoda edistyneitä kuormituksen tasapainotussääntöjä, jotka eivät välttämättä ole mahdollisia sovellusprofiilien tai muiden Edge Gatewayn palveluiden kautta.
- Luo sääntö siirtymällä tasapainottimen Sovellussäännöt-välilehteen.
- Valitse nimi, sääntöä käyttävä komentosarja ja napsauta Säilytä.
- Kun sääntö on luotu, meidän on muokattava jo määritettyä virtuaalipalvelinta.
- Lisää Lisäasetukset-välilehdelle luomamme sääntö.
Yllä olevassa esimerkissä otimme käyttöön tlsv1-tuen.
Pari esimerkkiä lisää:
Ohjaa liikenne toiseen pooliin.
Tämän skriptin avulla voimme ohjata liikennettä toiseen tasapainotuspooliin, jos pääpooli on alhaalla. Jotta sääntö toimisi, tasapainottimeen on määritettävä useita pooleja ja kaikkien pääpoolin jäsenten on oltava alas-tilassa. Sinun on määritettävä poolin nimi, ei sen tunnus.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Uudelleenohjaa liikenne ulkoiseen resurssiin.
Täällä ohjaamme liikenteen ulkoiselle verkkosivustolle, jos kaikki pääpoolin jäsenet eivät ole käytössä.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Vielä lisää esimerkkejä
Siinä kaikki minulle tasapainottimesta. Jos sinulla on kysyttävää, kysy, olen valmis vastaamaan.
Lähde: will.com