Algoritmo di Azure Load Balancer

Azure Load Balancer è il servizio di bilanciamento del carico più efficiente di Azure, che mantiene al tempo stesso una latenza estremamente bassa. Per altre informazioni su Azure Load Balancer, vedere panoramica di Azure Load Balancer o componenti di Azure Load Balancer.

Azure Load Balancer usa un hash basato su tupla come algoritmo di bilanciamento del carico.

Algoritmo di bilanciamento del carico

Creando una regola di bilanciamento del carico, è possibile distribuire i flussi di traffico in ingresso dal front-end di un servizio di bilanciamento del carico ai pool back-end. Azure Load Balancer usa un algoritmo hash a cinque tuple per la distribuzione dei flussi in ingresso (non i byte). Il servizio di bilanciamento del carico riscrive le intestazioni dei flussi di intestazioni TCP/UDP durante l'indirizzamento del traffico alle istanze del pool back-end (il servizio di bilanciamento del carico non riscrive le intestazioni HTTP/HTTPS). Quando il probe di integrità del servizio di bilanciamento del carico indica un endpoint back-end integro, le istanze back-end sono disponibili per ricevere nuovi flussi di traffico.

Per impostazione predefinita, Azure Load Balancer usa un hash a 5 tuple.

Le cinque tuple includono:

  • Indirizzo IP di origine
  • Porta di origine
  • Indirizzo IP di destinazione
  • Porta di destinazione
  • Numero di protocollo IP per il mapping dei flussi ai server disponibili

È anche possibile usare lamodalità di distribuzione dell'affinità di sessione che usa il bilanciamento del carico basato su due tuple o tre tuple.

Azure Load Balancer supporta qualsiasi scenario di applicazione TCP/UDP e non chiude o né dà origine a flussi. Il servizio di bilanciamento del carico inoltre non interagisce con il payload di alcun flusso. I payload dell'applicazione sono trasparenti per Load Balancer. Qualsiasi applicazione UDP o TCP può essere supportata.

Load Balancer funziona al livello 4 e non fornisce la funzionalità del gateway del livello applicazione. Gli handshake del protocollo si verificano sempre direttamente tra il client e l'istanza del pool back-end. Poiché Load Balancer non interagisce con il payload TCP e non fornisce l'offload TLS, è possibile creare scenari crittografati completi. L'uso di Load Balancer consente di ottenere un'ampia scalabilità orizzontale per le applicazioni TLS terminando la connessione TLS nella macchina virtuale stessa. Ad esempio, la capacità di codifica della sessione TLS è limitata solo dal tipo e dal numero di macchine virtuali aggiunte al pool di back-end.

Una risposta a un flusso in ingresso è sempre una risposta da una macchina virtuale. Quando il flusso arriva nella macchina virtuale, viene mantenuto anche l'indirizzo IP di origine. A ogni endpoint risponde una macchina virtuale. Ad esempio, si verifica sempre un handshake TCP tra il client e la macchina virtuale back-end selezionata. Una risposta a una richiesta in un front-end è una risposta generata da una macchina virtuale di back-end. Quando si convalida correttamente la connettività a un front-end, si convalida anche la connettività per almeno una macchina virtuale di back-end.

Passaggi successivi