Déi lescht Kéier hu mir iwwer d'Fäegkeete vum NSX Edge geschwat wat statesch an dynamesch Routing ugeet, an haut wäerte mir mam Lastbalancer beschäftegen.
Ier mer d'Opstellung ufänken, wëll ech Iech kuerz un d'Haaptarte vu Balance erënneren.
Theorie
All d'Notzlaaschtbalancéierungsléisungen vun haut sinn meeschtens an zwou Kategorien opgedeelt: Balance um véierten (Transport) a siwenten (Applikatioun) Niveau vum Modell
- Balancer L4 meeschtens ass et e Mëttelproxy, deen tëscht dem Client an enger Rei vu verfügbare Backends steet, deen TCP Verbindungen ofschléisst (dat heescht onofhängeg op SYN reagéiert), e Backend wielt an eng nei TCP Sessioun a seng Richtung initiéiert, onofhängeg SYN schéckt. Dës Zort ass ee vun de Basis, aner Optiounen sinn méiglech.
- Balancer L7 verdeelt Traffic iwwer verfügbare Backends "méi sophistikéiert" wéi de L4 Balancer mécht. Et kann entscheeden wéi ee Backend ze wielen baséiert op, zum Beispill, den Inhalt vun der HTTP Message (URL, Cookie, etc.).
Onofhängeg vun der Aart, de Balancer kann déi folgend Funktiounen ënnerstëtzen:
- Service Entdeckung ass de Prozess fir de Set vu verfügbare Backends ze bestëmmen (Statesch, DNS, Consul, Etcd, etc.).
- Iwwerpréift d'Funktionalitéit vun den entdeckten Backends (aktiv "Ping" vum Backend mat enger HTTP-Ufro, passiv Detektioun vu Probleemer an TCP-Verbindungen, d'Präsenz vu verschiddenen 503 HTTP-Coden an den Äntwerten, etc.).
- D'Balance selwer (Ronn Robin, zoufälleg Auswiel, Quell IP Hash, URI).
- TLS Terminatioun an Zertifikat Verifizéierung.
- Sécherheetsbezunnen Optiounen (Authentifikatioun, DoS Attack Präventioun, Geschwindegkeetsbegrenzung) a vill méi.
NSX Edge bitt Ënnerstëtzung fir zwee Lastbalancer Deployment Modi:
Proxy Modus, oder eenarm. An dësem Modus benotzt NSX Edge seng IP Adress als Quelladress wann Dir eng Ufro un ee vun de Backends schéckt. Also mécht de Balancer gläichzäiteg d'Funktioune vu Quell an Destinatioun NAT. De Backend gesäit all Traffic wéi aus dem Balancer geschéckt a reagéiert direkt drop. An esou engem Schema muss de Balancer am selwechte Netzwierksegment mat den internen Serveren sinn.
Hei ass wéi et geet:
1. De Benotzer schéckt eng Ufro un d'VIP Adress (Balancer Adress), déi op der Edge konfiguréiert ass.
2. Edge wielt ee vun de Backends a mécht Destinatioun NAT, ersetzt d'VIP Adress mat der Adress vum gewielten Backend.
3. Edge mécht Quell NAT, ersetzt d'Adress vum Benotzer, deen d'Ufro mat senger eegener geschéckt huet.
4. De Package gëtt op de gewielte Backend geschéckt.
5. De Backend reagéiert net direkt op de Benotzer, mee op den Edge, well d'Original Adress vum Benotzer op d'Adress vum Balancer geännert gouf.
6. Edge iwwerdréit d'Äntwert vum Server un de Benotzer.
D'Diagramm ass hei ënnen.
Transparent, oder inline, Modus. An dësem Szenario huet de Balancer Interfaces op intern an extern Netzwierker. Zur selwechter Zäit gëtt et keen direkten Zougang zum internen Netzwierk vum externen. Den agebaute Lastbalancer handelt als NAT-Paart fir virtuell Maschinnen am internen Netzwierk.
De Mechanismus ass wéi follegt:
1. De Benotzer schéckt eng Ufro un d'VIP Adress (Balancer Adress), déi op der Edge konfiguréiert ass.
2. Edge wielt ee vun de Backends a mécht Destinatioun NAT, ersetzt d'VIP Adress mat der Adress vum gewielten Backend.
3. De Package gëtt op de gewielte Backend geschéckt.
4. De Backend kritt eng Ufro mat der originaler Adress vum Benotzer (Quell NAT gouf net gemaach) a reagéiert direkt op et.
5. De Verkéier gëtt erëm vum Lastbalancer akzeptéiert, well an engem Inline Schema ass et normalerweis als Standardpaart fir de Serverfarm.
6. Edge mécht Quell NAT fir de Verkéier un de Benotzer ze schécken, mat sengem VIP als Quell IP Adress.
D'Diagramm ass hei ënnen.
Praxis
Meng Testbank huet 3 Serveren déi Apache lafen, déi konfiguréiert ass fir iwwer HTTPS ze schaffen. Edge wäert Round Robin Balance vun HTTPS Ufroen ausféieren, all nei Ufro un en neie Server proxying.
Loosst eis ufänken.
Generéiere vun engem SSL Zertifika deen vum NSX Edge benotzt gëtt
Dir kënnt e gültege CA Zertifika importéieren oder e selbst ënnerschriwwenen benotzen. Fir dësen Test benotzen ech selwer ënnerschriwwen.
- An der vCloud Director Interface, gitt op d'Edge Services Astellungen.
- Gitt op d'Zertifikater Tab. Wielt aus der Lëscht vun Aktiounen en neien CSR derbäi.
- Fëllt déi erfuerderlech Felder aus a klickt op Keep.
- Wielt déi nei erstallt CSR a wielt d'Selbstzeechen CSR Optioun.
- Wielt d'Validitéit Period vum Zertifikat a klickt Keep
- De selbst ënnerschriwwenen Zertifika erschéngt an der Lëscht vun verfügbaren.
Applikatioun Profil Ariichten
Applikatiounsprofile ginn Iech méi komplett Kontroll iwwer den Netzverkéier a maachen et einfach an effektiv ze managen. Si kënne benotzt ginn fir Verhalen fir spezifesch Zorte vu Verkéier ze definéieren.
- Gitt op de Load Balancer Tab an aktivéiert de Balancer. D'Acceleration aktivéiert Optioun hei erlaabt dem Balancer méi séier L4 Balance ze benotzen anstatt L7.
- Gitt op den Applikatiounsprofil Tab fir den Applikatiounsprofil ze setzen. Klickt op +.
- Setzt den Numm vum Profil a wielt d'Zort vum Traffic fir deen de Profil ugewannt gëtt. Loosst mech e puer Parameteren erklären.
Persistenz - späichert a verfollegt Sessiounsdaten, zum Beispill: wéi ee spezifesche Server am Pool d'Benotzer Ufro servéiert. Dëst garantéiert datt Benotzer Ufroe fir d'Liewensdauer vun der Sessioun oder spéider Sessiounen un dee selwechte Poolmember geréckelt ginn.
Aktivéiert SSL Passthrough - Wann dës Optioun ausgewielt ass, stoppt NSX Edge SSL ofzeschléissen. Amplaz geschitt Terminatioun direkt op de Serveren déi ausgeglach sinn.
X-Forwarded-For HTTP Header setzen - erlaabt Iech d'Quell IP Adress vum Client ze bestëmmen deen mam Webserver verbënnt duerch de Lastbalancer.
Aktivéiert Pool Side SSL - erlaabt Iech ze spezifizéieren datt de gewielte Pool aus HTTPS Serveren besteet.
- Well ech den HTTPS-Traffic balancéieren, muss ech Pool Side SSL aktivéieren a wielt de virdru generéierte Certificat an der Virtuelle Server Certificates -> Service Certificate Tab.
- Ähnlech fir Pool Zertifikater -> Service Zertifikat.
Mir schafen e Pool vun Serveren, de Verkéier op déi equilibréiert ginn Pools
- Gitt op d'Pools Tab. Klickt op +.
- Mir setzen den Numm vum Pool, wielt den Algorithmus (ech wäert Round Robin benotzen) an d'Aart vun der Iwwerwaachung fir de Gesondheetscheck-Backend.D'Transparent Optioun weist op ob d'initial Quell-IPs vu Cliente fir intern Serveren siichtbar sinn.
- Wann d'Optioun behënnert ass, kënnt de Verkéier fir intern Serveren aus der Quell IP vum Balancer.
- Wann d'Optioun aktivéiert ass, gesinn intern Serveren d'Quell IP vun de Clienten. An dëser Konfiguratioun muss NSX Edge als Standardpaart handelen fir sécherzestellen datt zréckginn Päck duerch NSX Edge passéieren.
NSX ënnerstëtzt déi folgend Equiliberalgorithmen:
- IP_HASH - Serverauswiel baséiert op d'Resultater vun enger Hashfunktioun fir d'Quell- an Destinatiouns-IP vun all Paket.
- LEASTCONN - Balance vun erakommen Verbindungen, ofhängeg vun der Zuel déi schonn op engem bestëmmte Server verfügbar ass. Nei Verbindunge ginn op de Server mat de mannste Verbindungen geleet.
- ROUND_ROBIN - nei Verbindunge ginn op all Server am Tour geschéckt, am Aklang mat dem zougewisen Gewiicht.
- URI - de lénksen Deel vun der URI (virum Fro Zeechen) ass hashed an gedeelt duerch d'Gesamtgewiicht vun Serveren am Pool. D'Resultat weist un wéi ee Server d'Ufro kritt, a garantéiert datt d'Ufro ëmmer op dee selwechte Server geréckelt gëtt, soulaang all Server verfügbar bleiwen.
- HTTPHEADER - Balance baséiert op engem spezifesche HTTP Header, deen als Parameter spezifizéiert ka ginn. Wann den Header fehlt oder kee Wäert huet, gëtt de ROUND_ROBIN Algorithmus applizéiert.
- URL - All HTTP GET Ufro sicht no den URL Parameter, deen als Argument spezifizéiert ass. Wann de Parameter vun engem Gläichzeechen an engem Wäert gefollegt ass, da gëtt de Wäert gehasht an gedeelt duerch d'Gesamtgewiicht vun de lafen Serveren. D'Resultat weist un wéi ee Server d'Ufro kritt. Dëse Prozess gëtt benotzt fir d'Benotzer-IDen an Ufroen ze verfollegen an ze garantéieren datt déiselwecht Benotzer-ID ëmmer op dee selwechte Server geschéckt gëtt, soulaang all Server verfügbar bleiwen.
- Am Member Block, klickt op + fir Serveren an de Pool ze addéieren.
Hei musst Dir uginn:- Server Numm;
- Server IP Adress;
- den Hafen op deem de Server Traffic kritt;
- Hafen fir Gesondheetscheck (Monitor Healthcheck);
- Gewiicht - mat dësem Parameter kënnt Dir de proportional Betrag vum Verkéier fir e spezifesche Pool Member ajustéieren;
- Max Connections - maximal Unzuel u Verbindunge mam Server;
- Min Connections - d'Mindestzuel u Verbindungen déi de Server muss veraarbecht ier de Verkéier op den nächste Poolmember weidergeleet gëtt.
Dëst ass wéi de leschte Pool vun dräi Serveren ausgesäit.
Virtuell Server addéieren
- Gitt op de Virtuell Server Tab. Klickt op +.
- Mir aktivéieren de virtuelle Server mat Enable Virtual Server.
Mir ginn et en Numm, wielt de virdru erstallten Applikatiounsprofil, Pool a gitt d'IP Adress un déi de virtuelle Server Ufroe vu baussen kritt. Mir spezifizéieren den HTTPS Protokoll an den Hafen 443.
Optional Parameteren hei:
Verbindung Limit - déi maximal Unzuel u simultan Verbindungen déi de virtuelle Server kann veraarbechten;
Connection Rate Limit (CPS) - déi maximal Unzuel vun neien Ufroe pro Sekonn.
Dëst fäerdeg d'Konfiguratioun vum Balancer; Dir kënnt seng Funktionalitéit kontrolléieren. D'Server hunn eng einfach Konfiguratioun, déi Iech erlaabt ze verstoen, wéi ee Server aus dem Pool d'Ufro veraarbecht huet. Wärend der Konfiguratioun hu mir de Round Robin Balancealgorithmus gewielt, an de Gewiichtparameter fir all Server ass gläich wéi een, sou datt all spéider Ufro vum nächste Server aus dem Pool veraarbecht gëtt.
Mir gitt déi extern Adress vum Balancer am Browser a gesinn:
Nodeems Dir d'Säit erfrëscht hutt, gëtt d'Ufro vum folgende Server veraarbecht:
An nach eng Kéier - fir den drëtten Server aus dem Pool ze kontrolléieren:
Wann Dir iwwerpréift, kënnt Dir gesinn datt den Zertifika deen Edge eis schéckt ass dee selwechte wéi mir am Ufank generéiert hunn.
Iwwerpréift Balancer Status vun der Edge Gateway Konsole. Fir dëst ze maachen, gitt weisen Service Loadbalancer Pool.
Service Monitor konfiguréieren fir de Status vun de Serveren am Pool ze kontrolléieren
Mat Service Monitor kënne mir de Status vun de Serveren am Backend Pool iwwerwaachen. Wann d'Äntwert op eng Ufro net wéi erwaart ass, kann de Server aus dem Pool geholl ginn, sou datt et keng nei Ufroe kritt.
Par défaut sinn dräi Verifizéierungsmethoden konfiguréiert:
- TCP Monitor,
- HTTP Monitor,
- HTTPS-Monitor.
Loosst eis en neien erstellen.
- Gitt op d'Service Monitoring Reiter, klickt op +.
- Wielt:
- Numm fir déi nei Method;
- den Intervall an deem d'Ufroe geschéckt ginn,
- Timeout waart op eng Äntwert,
- Iwwerwaachungstyp - HTTPS Ufro mat der GET Method, erwaart Statuscode - 200 (OK) an Ufro URL.
- Dëst fäerdeg de Setup vum neie Service Monitor; elo kënne mir et benotzen wann Dir e Pool erstellt.
Ariichten Applikatioun Regelen
Applikatiounsregele sinn e Wee fir den Traffic op Basis vu bestëmmten Ausléiser ze manipuléieren. Mat dësem Tool kënne mir fortgeschratt Belaaschtungsregele kreéieren déi vläicht net méiglech sinn duerch Applikatiounsprofiler oder aner Servicer verfügbar um Edge Gateway.
- Fir eng Regel ze kreéieren, gitt op d'Uwendungsregelen Tab vum Balancer.
- Wielt en Numm, e Skript deen d'Regel benotzt a klickt op Keep.
- Nodeems d'Regel erstallt ass, musse mir de scho konfiguréierte virtuelle Server änneren.
- An der Advanced Tab füügt d'Regel un déi mir erstallt hunn.
Am Beispill hei uewen hu mir tlsv1 Support aktivéiert.
E puer méi Beispiller:
Redirect Traffic an en anere Pool.
Mat dësem Skript kënne mir de Verkéier op en anere Balancepool viruleeden wann den Haaptpool erof ass. Fir datt d'Regel funktionnéiert, musse verschidde Poole um Balancer konfiguréiert sinn an all Membere vum Haaptpool mussen am Down State sinn. Dir musst den Numm vum Pool uginn, net seng ID.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
Redirect Traffic op eng extern Ressource.
Hei redirect mir Verkéier op déi extern Websäit wann all Membere vun der Haaptrei Pool sinn erof.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
Nach méi Beispiller
Dat ass alles fir mech iwwer de Balancer. Wann Dir Froen hutt, frot, ech si prett ze äntweren.
Source: will.com