Informazioni sui programmi di bilanciamento del carico di rete

È possibile utilizzare IBM Cloud® Network Load Balancer for VPC (NLB) per distribuire il traffico tra più istanze di server all'interno della stessa regione del VPC.

Gli NLB possono accettare membri in tutte e tre le zone di disponibilità, ma l'NLB stesso risiede in una zona specifica. Per ulteriori informazioni, consultare Supporto Multi - zona.

È possibile assegnare le porte per cliente, ma non vi è alcuna applicazione della porta a livello del gateway VP.

Tipi di bilanciatori di carico di rete

Come descritto in Panoramica dei programmi di bilanciamento del carico per VPC, sono disponibili molti tipi di NLB:

  • Pubblico- Un programma di bilanciamento del carico pubblico è un programma di bilanciamento del carico con un indirizzo IP accessibile pubblicamente registrato con DNS.

  • Private- Un programma di bilanciamento del carico privato è accessibile solo dall'interno della rete VPC, dove il client si trova nello stesso VPC o ha una raggiungibilità (ad esempio, tramite Direct Link, Transit Gatewayo entrambi). Per i balzi di carico privati è necessario disporre di una sottorete dedicata senza instradamenti personalizzati configurati per la sottorete.

  • Privato con modalità di routing abilitata- Gli NLB privati con modalità di routing abilitata supportano i dispositivi Virtual Network Function (VNF) come target back-end. Eseguono un instradamento diretto senza NAT, consentendo ai dispositivi VNF di ispezionare i pacchetti così come sono.

    Sono supportati sia il traffico simmetrico che quello asimmetrico: in ciascuna zona, più NLB privati con modalità di routing possono ricevere il traffico in modo asincrono in qualsiasi momento utilizzando l'inoltro ponderato. Per ulteriori informazioni, consultare la sezione " Creazione di un bilanciatore di carico di rete con modalità di instradamento ".

  • Percorso privato- i provider di servizi utilizzano gli NLB del percorso privato per connettere in modo sicuro IBM Cloud con servizi di terze parti ospitati da VPC sulla rete privata IBM Cloud. Gli NLB Private Path sono necessari quando si utilizzano i servizi Private Path per mantenere il traffico di rete su un percorso privato che non si interseca mai con Internet. Per ulteriori informazioni, consultare la Guida alle soluzioni Private Path.

    Gli NLB Private Path possono essere utilizzati solo con un servizio Private Path.

Introduzione

Per iniziare a utilizzare i programmi di bilanciamento del carico di rete, attieniti alla seguente procedura:

  1. Esaminare i problemi noti per i bilanciatori di carico di rete.
  2. Segui le istruzioni per il tuo particolare NLB:

Per ulteriori informazioni, vedi Tipi di programmi di bilanciamento del carico e il grafico di confronto del programma di bilanciamento del carico.

Metodi di bilanciamento del carico

Sono disponibili tre metodi di bilanciamento del carico per la distribuzione del traffico attraverso i server delle applicazioni di back-end: round - robin, round - robin ponderati e meno connessioni.

Connessioni minime

Con questo metodo, l'istanza del server back-end che gestisce il minor numero di connessioni in un determinato momento riceve la connessione del client successivo.

I percorsi privati NLB non supportano il metodo della minima connessione.

ROUND-ROBIN

Round-robin è il metodo di bilanciamento del carico predefinito. Con questo metodo, il bilanciatore di carico inoltra le connessioni in entrata dei client ai server back-end secondo il principio del round-robin. Di conseguenza, tutti i server di back-end ricevono all'incirca un numero uguale di connessioni client.

Inoltro ponderato

L'inoltro ponderato è supportato solo sugli NLB privati che utilizzano la modalità di routing.

Con l'instradamento ponderato, l'NLB utilizza un algoritmo di hash IP per distribuire i pacchetti tra le destinazioni in base ai pesi loro assegnati. Poiché l'instradamento ponderato è senza stato, l'NLB non mantiene lo stato della connessione. Ogni pacchetto viene invece valutato in modo indipendente in base alle proprie intestazioni e inoltrato in base al risultato dell'hash corrente e ai pesi configurati. Di conseguenza, il traffico viene accettato e inoltrato anche in assenza di uno stato di connessione esistente.

Questo comportamento consente di supportare scenari di routing asimmetrico, comprese le implementazioni in cui i flussi di traffico all'interno della stessa zona non sono simmetrici, come nel caso dell'utilizzo di un intervallo di indirizzi IP pubblici. Un altro scenario supportato è un'implementazione multizona in cui gli NLB privati configurati con l'algoritmo di pool " weighted_forwarding " possono ricevere traffico in modo asincrono in qualsiasi zona. Per i flussi di traffico simmetrici, l’NLB continua a garantire un inoltro deterministico basato su hash, analogamente ad altri algoritmi di pool, rendendo l’inoltro ponderato adatto a qualsiasi implementazione dell’NLB in modalità route.

Se un NLB in modalità route diventa non funzionante a causa di una zona non funzionante o perché non sono rimasti membri back-end funzionanti, l’NLB ritira automaticamente l’annuncio di routing in ingresso VPC ad esso associato. Il traffico viene quindi reindirizzato verso gli NLB in modalità "route" funzionanti, situati nelle zone operative.

Ad esempio, si consideri un NLB privato in modalità route con due membri back-end attivi: il Server A con un peso pari a 8 e il Server B con un peso pari a 2. Su 1.000 pacchetti in entrata, circa 800 vengono inoltrati al Server A e 200 al Server B. Tuttavia, poiché l'inoltro ponderato è stateless, l'NLB non mantiene lo stato della connessione. Ogni pacchetto viene valutato in modo indipendente sulla base delle informazioni contenute nell'intestazione e inoltrato in base al risultato dell'hash corrente e ai pesi configurati. Ciò significa che i pacchetti appartenenti allo stesso flusso possono arrivare e tornare attraverso diversi NLB in modalità route e venire comunque inoltrati correttamente, anche quando la distribuzione osservata differisce dal rapporto di ponderazione configurato.

Questo comportamento consente di realizzare scenari di routing asimmetrico. Per ulteriori informazioni, consultare il Caso d'uso 8: Configurazione multizona ad alta disponibilità tramite routing asimmetrico.

Round-robin ponderato

Con questo metodo, il bilanciatore di carico inoltra le connessioni in entrata dei client ai server back-end in proporzione al peso assegnato a tali server. A ogni server viene assegnato un peso predefinito pari a 50, che può essere personalizzato con qualsiasi valore compreso nell'intervallo 0 - 100.

Ad esempio, se i server applicativi A, B e C hanno i pesi 60, 60 e 30, allora i server A e B ricevono lo stesso numero di connessioni, mentre il server C ne riceve la metà.

I valori di peso del server sono applicabili solo con il metodo round-robin ponderato. Vengono ignorati con i metodi di bilanciamento del carico rotondo e meno connessioni.

L'impostazione del peso di un server su 0 significa che a tale server non verrà inoltrata alcuna nuova connessione ma l'eventuale traffico esistente continua a fluire. L'utilizzo di un peso pari a 0 può aiutare a ridurre gradualmente il carico su un server e a escluderlo dalla rotazione dei servizi.

Listener front-end e pool di back-end

Gli ascoltatori front-end sono porte di applicazione per i balanzatori di carico per ricevere richieste in arrivo mentre i pool di back-end sono i server delle applicazioni dietro i balzi di carico. È possibile definire fino a 10 listener front-end e associarli ai pool back-end sui server applicativi back-end. Nel caso di un NLB pubblico, il nome FQDN assegnato al bilanciatore di carico e le porte del listener front-end sono visibili su Internet. Le richieste utente in entrata vengono ricevute su queste porte. TCP e UDP sono i protocolli supportati per gli ascoltatori front-end e i pool back-end.

Puoi collegare fino a 50 VSI (virtual server instance) a un pool di back-end. Il traffico viene inviato ad ogni istanza sulla relativa porta dati specificata. Questa porta dati non deve essere necessariamente uguale alla porta del listener di front-end.

Politiche di failsafe del pool di back-end

Quando si modifica un pool back-end in un bilanciatore di carico, è possibile specificare una delle seguenti azioni di politica failsafe:

  • Inoltro:- Il bilanciatore di carico instrada le richieste verso un pool di backup designato. In questo modo si ottiene un percorso di failover pulito verso un altro set di server applicativi. È necessario che un pool di backup esistente sia configurato e pronto a ricevere il traffico.
  • Bypass:- Il bilanciatore di carico invia le richieste direttamente agli indirizzi IP di destinazione del membro, bypassando completamente il bilanciatore di carico. Questa opzione viene utilizzata in genere in specifiche configurazioni di rete, come ad esempio con i bilanciatori di carico di rete e i dispositivi di funzione di rete virtuale (VNF).
  • Drop:- Il bilanciatore di carico elimina tutte le richieste in arrivo e il client non riceve alcuna risposta.

È possibile scegliere una destinazione failsafe da un elenco di pool di backup applicabili.

Requisiti del pool Failsafe Target (se l'azione è Forward):

  • devono appartenere allo stesso bilanciatore di carico
  • devono avere un protocollo uguale o compatibile ( TCP è compatibile solo con TCP, ma qualsiasi combinazione di HTTP e HTTPS è compatibile)

Numero massimo di connessioni

Non esiste un numero definito di connessioni predefinite o di connessioni massime per un bilanciatore di carico di rete. Il numero totale di connessioni contemporanee dipende da fattori quali le risorse allocate e il throughput della rete.

Rappresentazione VPC di un bilanciatore di carico di rete

La Figura 1 mostra la rappresentazione VPC di una tipica configurazione del programma di bilanciamento del carico di rete. Il NLB viene fornito su una sottorete VPC. Per configurare il percorso dati di rete sull'NLB, è necessario creare un listener, un lotto e almeno un membro. Un listener è la porta front-end su cui l'NLB è in ascolto per richieste del cliente. Queste richieste vengono inoltrate ai destinatari presenti nel pool associato al listener. Un pool è un gruppo di destinazioni utilizzate per distribuire le richieste di rete in entrata nell'NLB per un listener specifico. Un membro è un server di back-end con una porta specificata che è configurata per ascoltare le richieste.

di lavoro del bilanciatore di carico di rete*Flusso di lavoro del bilanciatore di carico di
di lavoro del bilanciatore di carico di rete

Bilanciamento del carico di livello 4

Network Load Balancer for VPC fornisce uno strato 4 (noto come strato di trasporto) servizio di bilanciamento del carico ai server dell'utente in un VPC. Decide dove il traffico è diretto in base agli indirizzi IP di origine e di destinazione e alla porta nell'intestazione del pacchetto. Il programma di bilanciamento del carico non effettua un controllo del contenuto del pacchetto.

Dal momento che il bilanciamento del carico di layer 4 richiede meno elaborazioni rispetto al bilanciamento del carico più sofistito, come lo strato 7, l'utilizzo della CPU e la memoria vengono utilizzati in modo più efficiente.

Caso di utilizzo 1: programma di bilanciamento del carico di rete pubblico

Un NLB pubblico supporta DSR (Direct Server Return). I programmi di bilanciamento del carico dell'applicazione non supportano questa capacità.

La figura 2 illustra come funziona un NLB pubblico. Il Consumer registra l'indirizzo IP del programma di bilanciamento del carico con DNS utilizzando l'FQDN del programma di bilanciamento del carico. Il consumer facoltativamente interroga il server DNS. DNS risponde con l'indirizzo IP del programma di bilanciamento del carico. Il consumatore invia una richiesta di dati al load balancer all'indirizzo TCP e il load balancer inoltra la richiesta a un target back-end. La destinazione genera una risposta e la risposta viene inviata direttamente al consumer con DSR.

Bilanciatore di carico pubblico
Bilanciatore di carico pubblico

Caso di utilizzo 2: programma di bilanciamento del carico della rete privata

Un NLB privato è accessibile solo dalla rete VPC, dove il consumer ha la raggiungibilità (ad esempio, tramite Direct Link, Transit Gatewayo entrambi).

Per i balzi di carico privati è necessario disporre di una sottorete dedicata senza instradamenti personalizzati configurati per la sottorete.

La figura 3 illustra come funziona un NLB privato. Il Consumer interroga il DNS per l'indirizzo IP del programma di bilanciamento del carico utilizzando l'FQDN del programma di bilanciamento del carico. Il consumer facoltativamente interroga il server DNS. DNS risponde con l'indirizzo IP del programma di bilanciamento del carico. Il consumatore invia una richiesta TCP al load balancer per ottenere dati attraverso un collegamento diretto o un gateway di transito, e il load balancer inoltra la richiesta a un target back-end. La destinazione genera una risposta e la risposta viene inviata direttamente al consumer utilizzando DSR.

Bilanciatore di carico privato
Bilanciatore di carico privato

Caso di utilizzo 3: programma di bilanciamento del carico della rete privata con modalità di instradamento abilitata

I NLB con route_mode impostato su true sono programmi di bilanciamento del carico privati che supportano solo applicazioni VNF (virtual network function), come un firewall, come destinazioni di backend.

La figura 4 illustra come funziona un NLB privato con modalità di instradamento. Il Consumer interroga il DNS per l'indirizzo IP del programma di bilanciamento del carico utilizzando l'FQDN del programma di bilanciamento del carico. Il consumer facoltativamente interroga il server DNS. DNS risponde con l'indirizzo IP del programma di bilanciamento del carico. Il consumatore invia una richiesta TCP al load balancer per ottenere i dati attraverso un collegamento diretto o un gateway di transito. Il programma di bilanciamento del carico inoltra la richiesta alle unità VNF, quindi alle destinazioni di backend. La destinazione genera una risposta e tale risposta viene inviata nuovamente all'NLB, quindi nuovamente ai dispositivi VNF, prima di tornare al client.

Bilanciatore di carico privato con modalità di routing
di carico privato con modalità di route

È possibile che più NLB privati, con la modalità di instradamento abilitata in ciascuna zona, ricevano traffico in modo asincrono in qualsiasi momento. Se un NLB in modalità route non è più operativo, smette di ricevere traffico e quest’ultimo viene automaticamente reindirizzato verso gli NLB in modalità route operativi presenti nella zona. Per ulteriori informazioni, consultare la sezione " Inoltro ponderato ".

Caso d'uso 4: Alta disponibilità multizona con un bilanciatore di carico di rete

La Figura 5 illustra come è possibile distribuire un NLB per supportare più zone. Questo scenario di distribuzione richiede spesso l'uso dell'opzione GLB (global load balancer) in IBM Cloud Internet Services(CIS).

Per questo caso d'uso esiste una limitazione nota. Due membri con la stessa istanza e porta non possono esistere contemporaneamente. È invece possibile utilizzare una porta diversa con la stessa istanza.

Potresti voler sfruttare le elevate prestazioni della velocità effettiva (e la bassa latenza) che l'NLB guadagna tramite DSR. Inoltre, ti consigliamo di distribuire i tuoi carichi di lavoro in più zone per aumentarne la disponibilità in un ambiente HA (High Availability).

Puoi utilizzare questo scenario di distribuzione per ottenere l'alta disponibilità e garantire che i carichi di lavoro siano disponibili in più zone di disponibilità nel caso in cui si verifichi un malfunzionamento del programma di bilanciamento del carico. Se una condizione di errore si verifica a un programma di bilanciamento del carico in una zona di disponibilità, il GLB non invia più il traffico a tale zona di disponibilità. Ad esempio, se si verifica un errore nella zona di disponibilità 1, GLB invia il traffico alla zona di disponibilità 2 o alla zona di disponibilità 3. Gli scenari di esempio possono includere una grande quantità di errori, tutto da un singolo NLB, fino a un'intera zona di disponibilità.

Bilanciatore di carico della rete pubblica multizona
Bilanciatore di carico della rete multizona

Il requisito di un NLB per zona è necessario solo per gli NLB pubblici e privati. Il percorso privato NLB è per sua natura regionale, quindi non è necessario definirne uno per zona.

Caso d'uso 5: bilanciatore di carico della rete Private Path

Un Private Path NLB mantiene tutti i checkpoint del traffico tra il Provider e il Consumer all'interno dell'infrastruttura IBM Cloud. I dati non escono su Internet.

A differenza di altri NLB, un bilanciatore di carico di rete Private Path offre una disponibilità regionale ed è resiliente ai guasti di zona anche se viene selezionata una singola subnet. Non è necessario creare più bilanciatori di carico Private Path o specificare più di una singola subnet per garantire la resilienza ai guasti della zona. La selezione della sottorete influisce solo sugli indirizzi IP associati al bilanciatore di carico.

È possibile utilizzare solo NLB percorso privato con un servizio percorso privato. Per ulteriori informazioni, consulta Informazioni sui servizi del percorso privato.

La Figura 6 illustra come funziona un NLB Private Path per supportare un servizio Private Path. L'NLB del percorso privato registra con il server DNS. Il consumer facoltativamente interroga il server DNS. Il consumatore invia quindi una richiesta di dati TCP al Private Path NLB attraverso un gateway VPE e il Private Path NLB inoltra la richiesta ai target. A loro volta i target generano una risposta, che viene inviata tramite direct-server-return al VPE e quindi inviata al Consumer.

Bilanciatore di carico di rete a percorso privato
Bilanciatore di carico pubblico

Caso d'uso 8: Alta disponibilità multizona tramite routing asimmetrico

La seguente configurazione può essere utilizzata solo con un NLB privato in cui è abilitata la modalità di routing.

La figura 9 illustra come gli NLB in modalità route privata possano garantire l'alta disponibilità su più zone tramite il routing asimmetrico. In primo luogo, un utente invia una richiesta all'hub VPC del provider tramite un percorso di connettività privato, come una VPN, Direct Link o Transit Gateway. Il NLB in modalità route privata del provider invia la richiesta, attraverso un gateway di transito, alle istanze del server virtuale presenti nella VPC spoke. Quando l'instradamento ponderato è abilitato, il traffico di ritorno può seguire un percorso diverso rispetto alla richiesta originale senza fare affidamento sullo stato della connessione precedentemente stabilito.

Ad esempio, un pacchetto di richiesta potrebbe entrare tramite l'NLB nella Zona di disponibilità 1 ed essere inoltrato a un'istanza di server virtuale nella VPC "spoke", mentre il pacchetto di risposta ritorna tramite l'NLB nella Zona di disponibilità 2. Poiché l'inoltro è indipendente dal percorso di connessione originale, la risposta viene accettata e inoltrata correttamente. I pesi configurati continuano a influenzare la distribuzione del traffico tra le istanze dei server virtuali di backend, garantendo al contempo l'alta disponibilità su più zone.

Inoltre, se una zona diventa non disponibile o se un bilanciatore di carico di rete (NLB) in modalità Route non ha più alcuna istanza di firewall attiva ad esso associata, l'annuncio di route corrispondente viene automaticamente ritirato. Questo meccanismo dinamico di rimozione dei percorsi impedisce che il traffico venga indirizzato verso endpoint di servizio non funzionanti e garantisce l'alta disponibilità (HA) a livello regionale, assicurando che il traffico venga instradato esclusivamente attraverso dispositivi firewall basati su VNF operativi.

Alta disponibilità multizona tramite routing asimmetrico
Alta disponibilità multizona tramite routing asimmetrico