Regole in uscita in Azure Load Balancer

Le regole in uscita consentono di definire in modo esplicito la SNAT (Source Network Address Translation) per un bilanciamento del carico standard pubblico. Questa configurazione consente di usare gli indirizzi IP pubblici del servizio di bilanciamento del carico per fornire connettività Internet in uscita per le istanze back-end.

Questa configurazione abilita:

  • Mascheramento IP
  • Semplificazione degli elenchi elementi consentiti.
  • Riduzione del numero di risorse IP pubbliche per la distribuzione.

Con le regole in uscita, si ha il controllo dichiarativo completo sulla connettività Internet in uscita. Le regole in uscita consentono di ridimensionare e ottimizzare questa capacità in base alle proprie esigenze specifiche.

Le regole in uscita verranno seguite soltanto se la macchina virtuale back-end non ha un IP pubblico a livello di istanza (ILPIP).

Questo diagramma mostra la configurazione delle porte SNAT nelle macchine virtuali con regole di bilanciamento del carico in uscita.

Con le regole in uscita, è possibile definire in modo esplicito il comportamento SNAT in uscita.

Le regole in uscita consentono di controllare:

  • Quali macchine virtuali vengono traslate a quali indirizzi IP pubblici.
    • Due regole in cui il pool back-end 1 usa entrambi gli indirizzi IP azzurri e il pool back-end 2 usa il prefisso IP giallo.
  • Modalità di allocazione delle porte SNAT in uscita.
    • Se il pool back-end 2 è l'unico pool che effettua connessioni in uscita, assegnare tutte le porte SNAT al pool back-end 2 e nessuna porta al pool back-end 1.
  • Per quali protocolli implementare la traslazione in uscita.
    • Se il pool back-end 2 richiede porte UDP per l'uscita e il pool back-end 1 richiede TCP, assegnare le porte TCP a 1 e le porte UDP a 2.
  • Quale durata usare per il timeout di inattività delle connessioni in uscita (4-120 minuti).
    • Se sono presenti connessioni a esecuzione prolungata con keep-alive, riservare le porte inattive per le connessioni a esecuzione prolungata per un massimo di 120 minuti. Si supponga che le connessioni obsolete vengano abbandonate e rilasciate le porte in 4 minuti per le nuove connessioni
  • Inviare o meno una reimpostazione TCP al timeout di inattività.
    • Quando si verifica il timeout delle connessioni inattive, viene inviato un RST TCP al client e al server in modo che sappiano che il flusso viene abbandonato?

Importante

Quando un pool back-end è configurato dall'indirizzo IP, si comporta come Load Balancer Basic con l'impostazione predefinita in uscita abilitata. Per proteggere per impostazione predefinita la configurazione e le applicazioni con grandi esigenze in uscita, configurare il pool back-end in base alla scheda di interfaccia di rete.

Definizione delle regole in uscita

Le regole in uscita seguono la stessa sintassi familiare del bilanciamento del carico e delle regole NAT in ingresso: front-end + parametri + pool back-end.

Una regola in uscita configura NAT in uscita per tutte le macchine virtuali identificate dal pool back-end da convertire in front-end.

I parametri offrono un controllo dettagliato sull'algoritmo NAT in uscita.

Scalabilità di NAT in uscita con più indirizzi IP

Ogni indirizzo IP aggiuntivo fornito da un front-end rende disponibili altre 64.000 porte temporanee che il bilanciamento del carico può usare come porte SNAT.

Usare più indirizzi IP per pianificare scenari su larga scala. Usare le regole in uscita per attenuare l'esaurimento SNAT.

Inoltre, è possibile usare direttamente un prefisso IP pubblico con una regola in uscita.

Un prefisso IP pubblico aumenta la scalabilità della distribuzione. Il prefisso può essere aggiunto all'elenco elementi consentiti per i flussi provenienti dalle risorse di Azure. È possibile configurare una configurazione IP front-end all'interno del bilanciamento del carico in modo da fare riferimento direttamente al prefisso di un indirizzo IP pubblico.

Il servizio di bilanciamento del carico ha il controllo sul prefisso IP pubblico. La regola in uscita userà automaticamente tutti gli indirizzi IP pubblici contenuti nel prefisso IP pubblico per le connessioni in uscita.

Ognuno degli indirizzi IP all'interno del prefisso IP pubblico rende disponibili altre 64.000 porte temporanee per ogni indirizzo IP utilizzabili dal bilanciamento del carico come porte SNAT.

Timeout di inattività del flusso in uscita e reimpostazione TCP

Le regole in uscita includono un parametro di configurazione per controllare il timeout di inattività per i flussi in uscita in modo da adattarlo alle esigenze dell'applicazione. Il timeout di inattività in uscita è per impostazione predefinita di 4 minuti. Per altre informazioni, vedere Configurare i timeout di inattività.

Il comportamento predefinito del bilanciamento del carico prevede l'eliminazione automatica del flusso quando viene raggiunto il timeout di inattività in uscita. Il parametro enableTCPReset abilita un comportamento e un controllo prevedibili dell'applicazione. Il parametro determina se inviare una TCP (TCP RST) bidirezionale allo scadere del timeout di inattività in uscita.

Vedere Reimpostazione TCP in caso di timeout di inattività per informazioni dettagliate, inclusa la disponibilità a livello di area.

Protezione e controllo della connettività in uscita in modo esplicito

Le regole di bilanciamento del carico supportano la programmazione automatica di NAT in uscita. Alcuni scenari traggono vantaggio o richiedono di disabilitare la programmazione automatica di NAT in uscita tramite la regola di bilanciamento del carico. La disabilitazione tramite la regola consente di controllare o perfezionare il comportamento.

È possibile usare questo parametro in due modi:

  1. Prevenzione dell'indirizzo IP in ingresso per SNAT in uscita. Disabilitare SNAT in uscita nella regola di bilanciamento del carico.

  2. Regolazione i parametri SNAT in uscita di un indirizzo IP usato in ingresso e in uscita contemporaneamente. L'impostazione NAT in uscita automatica deve essere disabilitata per consentire a una regola in uscita di assumere il controllo. Ad esempio, per modificare l'allocazione della porta SNAT di un indirizzo usato anche in ingresso, il parametro disableOutboundSnat deve essere impostato su true.

L'operazione per configurare una regola in uscita ha esito negativo se si tenta di ridefinire un indirizzo IP usato per l'ingresso. Disabilitare prima di tutto il NAT in uscita della regola di bilanciamento del carico.

Importante

La macchina virtuale non disporrà della connettività in uscita se si imposta questo parametro su true e non è disponibile una regola in uscita per definire la connettività in uscita. Alcune operazioni della macchina virtuale o dell'applicazione possono dipendere dalla disponibilità della connettività in uscita. Assicurarsi di valutare le dipendenze dello scenario e l'impatto di questa modifica.

A volte, è preferibile che a una VM non sia consentito creare un flusso in uscita. Potrebbe essere necessario gestire le destinazioni che ricevono flussi in uscita o le destinazioni che avviano i flussi in ingresso. Usare gli NSG per gestire le destinazioni che raggiungibili dalla VM. Usare gli NSG per gestire le destinazioni pubbliche che avviano i flussi in ingresso.

Quando si applica un gruppo di sicurezza di rete a una macchina virtuale con carico bilanciato, considerare i tag del servizio e le regole di sicurezza predefinite.

Assicurarsi che la macchina virtuale sia in grado di ricevere le richieste di probe di integrità da Azure Load Balancer.

Se un gruppo di sicurezza di rete blocca le richieste di probe di integrità dal tag AZURE_LOADBALANCER predefinito, il probe di integrità della macchina virtuale avrà esito negativo e la VM sarà contrassegnata come non disponibile. Il servizio di bilanciamento del carico interrompe l'invio di nuovi flussi a tale macchina virtuale.

Scenari di regole in uscita

Scenario 1: Configurare le connessioni in uscita a un set di indirizzi IP pubblici o un prefisso specifici

Dettagli

Usare questo scenario per personalizzare le connessioni in uscita in modo che vengano create da un set di indirizzi IP pubblici. Aggiungere prefissi o indirizzi IP pubblici a un elenco elementi consentiti o bloccati in base all'origine.

Questo indirizzo IP pubblico o prefisso può essere uguale a quello usato da una regola di bilanciamento del carico.

Per usare un prefisso o un indirizzo IP pubblico diverso da quello usato da una regola di bilanciamento del carico:

  1. Creare un prefisso IP pubblico o un indirizzo IP pubblico.
  2. Creare un Load Balancer Standard pubblico
  3. Creare un front-end che fa riferimento al prefisso IP pubblico o all'indirizzo IP pubblico che si desidera usare.
  4. Riutilizzare un pool back-end o creare un pool back-end e posizionare le macchine virtuali in un pool back-end del Load Balancer pubblico
  5. Configurare una regola in uscita per il Load Balancer pubblico per programmare la NAT in uscita per queste macchine virtuali tramite il front-end. Non è consigliabile usare una regola di bilanciamento del carico per le connessioni in uscita; disabilitare gli SNAT in uscita nella regola di bilanciamento del carico.

Scenario 2: Modificare l'allocazione delle porte SNAT

Dettagli

È possibile usare le regole in uscita per ottimizzare l'allocazione automatica delle porte SNAT in base alle dimensioni del pool back-end.

In caso di esaurimento SNAT, aumentare il numero di porte SNAT specificate dal valore predefinito 1024.

Ogni indirizzo IP pubblico può rendere disponibili fino a 64.000 porte temporanee. Il numero di macchine virtuali nel pool back-end determina il numero di porte distribuite a ogni VM. Una macchina virtuale nel pool back-end ha accesso a un massimo di 64.000 porte. Per due macchine virtuali, è possibile allocare un massimo di 32.000 porte SNAT con una regola in uscita (2 x 32.000 = 64.000).

È possibile usare le regole in uscita per regolare le porte SNAT specificate per impostazione predefinita. È possibile indicare un numero maggiore o minore dell'allocazione delle porte SNAT per impostazione predefinita. Ogni indirizzo IP pubblico da un front-end di una regola in uscita rende disponibili fino a 64.000 porte temporanee da usare come porte SNAT.

Load Balancer fornisce le porte SNAT in multipli di 8. Se si specifica un valore non divisibile per 8, l'operazione di configurazione viene rifiutata. Ogni regola di bilanciamento del carico e regola NAT in ingresso utilizza un intervallo di otto porte. Se un bilanciamento del carico o una regola NAT in ingresso condivide lo stesso intervallo di 8 porte di un altro elemento, non vengono utilizzate porte aggiuntive.

Se si tenta di fornire più porte SNAT di quelle disponibili (in base al numero di indirizzi IP pubblici), l'operazione di configurazione viene rifiutata. Ad esempio, se si assegnano 10.000 porte per macchina virtuale e sette macchine virtuali in un pool back-end condividono un singolo indirizzo IP pubblico, la configurazione viene rifiutata. Sette moltiplicato per 10.000 supera il limite totale di 64.000 porte. Aggiungere altri indirizzi IP al front-end della regola in uscita per abilitare questo scenario.

Ripristinare l'allocazione di porte predefinita specificando 0 per il numero di porte. Per altre informazioni sull'allocazione di porte SNAT predefinita, vedere Tabella di allocazione delle porte SNAT.

Scenario 3: Abilitare solo l'uscita

Dettagli

Usare un Load Balancer Standard pubblico per rendere disponibile la conversione NAT in uscita per un gruppo di macchine virtuali. In questo scenario, usare una regola in uscita autonomamente, senza configurare regole aggiuntive.

Nota

Il gateway NAT di Azure può fornire connettività in uscita per le macchine virtuali senza la necessità di un servizio di bilanciamento del carico. Per altre informazioni, vedere Informazioni sul gateway NAT di Azure.

Scenario 4: NAT solo in uscita per le macchine virtuali (non in ingresso)

Nota

Il gateway NAT di Azure può fornire connettività in uscita per le macchine virtuali senza la necessità di un servizio di bilanciamento del carico. Per altre informazioni, vedere Informazioni sul gateway NAT di Azure.

Dettagli

Per questo scenario: le regole in uscita di Azure Load Balancer e NAT di rete virtuale sono opzioni disponibili in uscita da una rete virtuale.

  1. Creare un IP pubblico o un prefisso.
  2. Creare un Load Balancer Standard pubblico.
  3. Creare un front-end associato all'indirizzo IP pubblico o al prefisso dedicato per il traffico in uscita.
  4. Creare un pool back-end per le VM.
  5. Collocare le macchine virtuali nel pool back-end.
  6. Configurare una regola in uscita per abilitare NAT in uscita.

Usare un prefisso o un indirizzo IP pubblico per ridimensionare le porte SNAT. Aggiungere l'origine delle connessioni in uscita a un elenco di elementi consentiti o bloccati.

Scenario 5: NAT in uscita per scenari per Load Balancer Standard interno

Nota

Il gateway NAT di Azure può fornire connettività in uscita per le macchine virtuali che usano un servizio di bilanciamento del carico standard interno. Per altre informazioni, vedere Informazioni sul gateway NAT di Azure.

Dettagli

La connettività in uscita non è disponibile per un Load Balancer Standard interno fino a quando non viene dichiarata in modo esplicito tramite indirizzi IP pubblici a livello di istanza o NAT di rete virtuale, oppure associando i membri del pool back-end a una configurazione di Load Balancer solo in uscita.

Per altre informazioni, vedere Configurazione del bilanciamento del carico solo in uscita.

Scenario 6: Abilitare entrambi i protocolli TCP e UDP per NAT in uscita con un Load Balancer Standard pubblico

Dettagli

Quando si usa un Load Balancer Standard pubblico, la configurazione NAT in uscita automatica fornita corrisponde al protocollo di trasporto della regola di bilanciamento del carico.

  1. Disabilitare SNAT in uscita per la regola di bilanciamento del carico.
  2. Configurare una regola in uscita per lo stesso bilanciamento del carico.
  3. Riutilizzare il pool back-end già usato dalle macchine virtuali.
  4. Specificare "protocol": "All" come parte della regola in uscita.

Quando si usano solo regole NAT in ingresso, non viene fornita alcuna conversione NAT in uscita.

  1. Posizionare le macchine virtuali in un pool back-end.
  2. Definire una o più configurazioni IP front-end con indirizzi IP pubblici o un prefisso IP pubblico
  3. Configurare una regola in uscita per lo stesso bilanciamento del carico.
  4. Specificare "protocol": "All" come parte della regola in uscita

Limiti

  • Il numero massimo di porte temporanee utilizzabili per ogni indirizzo IP front-end è 64.000.
  • L'intervallo del timeout di inattività in uscita configurabile è compreso tra 4 a 120 minuti (da 240 a 7200 secondi).
  • Load Balancer non supporta ICMP per NAT in uscita; gli unici protocolli supportati sono TCP e UDP.
  • Le regole in uscita possono essere applicate solo alla configurazione IPv4 primaria di una scheda di interfaccia di rete. Non è possibile creare una regola in uscita per le configurazioni IPv4 secondarie di una macchina virtuale o di un'appliance virtuale di rete. Sono supportate più schede di interfaccia di rete.
  • Le regole in uscita per la configurazione IP secondaria sono supportate solo per IPv6.
  • Tutte le macchine virtuali all'interno di un set di disponibilità devono essere aggiunte al pool back-end per la connettività in uscita.
  • Tutte le macchine virtuali all'interno di un set di scalabilità di macchine virtuali devono essere aggiunte al pool back-end per la connettività in uscita.

Passaggi successivi