Terminazione IPv6 per bilanciatori del carico di rete HTTP(S), proxy SSL e proxy esterni

Google Cloud supporta i client IPv6 con bilanciatori del carico proxy come gli Application Load Balancer esterni globali e i bilanciatori del carico di rete proxy esterni. Il bilanciatore del carico accetta le connessioni IPv6 degli utenti e quindi esegue il proxy di queste connessioni ai tuoi backend.

Puoi configurare indirizzi IP esterni sia IPv4 sia IPv6 per i seguenti bilanciatori del carico proxy:

  • Bilanciatore del carico delle applicazioni esterno globale
  • Bilanciatore del carico delle applicazioni classico
  • Bilanciatore del carico di rete proxy esterno
Bilanciamento del carico IPv6 globale.
Bilanciamento del carico IPv6 globale (fai clic per ingrandire).

La terminazione IPv6 consente di gestire le richieste IPv6 degli utenti e di inviarle tramite proxy ai backend su IPv4. Utilizzando IPv6, puoi:

  • Utilizza un singolo indirizzo IPv6 anycast per il deployment in più regioni. È sufficiente un solo indirizzo IPv6 del bilanciatore del carico per le istanze dell'applicazione in esecuzione su più regioni. Ciò significa che il server DNS ha un singolo record AAAA e che non è necessario eseguire il bilanciamento del carico tra più indirizzi IPv6. La memorizzazione nella cache dei record AAAA da parte dei client non è un problema perché c'è un solo indirizzo da memorizzare nella cache. Le richieste degli utenti all'indirizzo IPv6 vengono automaticamente sottoposte a bilanciamento del carico verso il backend integro più vicino con la capacità disponibile.

  • Bilanciamento del carico del traffico client IPv6 HTTP, HTTPS, HTTP/2, TCP e SSL/TLS.

  • Overflow tra le regioni con un singolo indirizzo del bilanciatore del carico IPv6. Se i backend in una regione hanno esaurito le risorse o non sono integri, il bilanciatore del carico globale indirizza automaticamente le richieste degli utenti alla regione più vicina più vicina con le risorse disponibili. Quando sono disponibili risorse nella regione più vicina, il bilanciamento del carico globale torna alla gestione delle risorse per questa regione. Il bilanciamento del carico globale richiede l'utilizzo del livello Premium di Network Service Tiers.

  • Esegui il doppio stack. Per gestire client IPv6 e IPv4, crea due risorse IP del bilanciatore del carico, una per IPv6 e l'altra per IPv4, e associa entrambe alle stesse istanze dell'applicazione IPv4. I client IPv4 si connettono all'indirizzo IPv4, mentre i client IPv6 si connettono all'indirizzo IPv6. Il bilanciamento del carico di questi client viene quindi eseguito automaticamente nei backend integri più vicini con capacità disponibile. Forniamo regole di forwarding IPv6 senza costi, quindi paghi solo per quelle IPv4.

    Indirizzamento del traffico IPv4 e IPv6 agli stessi backend.
    Indirizzamento del traffico IPv4 e IPv6 agli stessi backend (fai clic per ingrandire).

Terminazione IPv6 e proxy

La configurazione della terminazione IPv6 per i bilanciatori del carico consente ai backend di apparire come applicazioni IPv6 ai client IPv6, come mostrato nella figura seguente.

Terminazione IPv6 per il bilanciamento del carico.
Terminazione IPv6 per il bilanciamento del carico (fai clic per ingrandire).

Quando un utente si connette al bilanciatore del carico tramite IPv6, si verifica quanto segue:

  1. Il bilanciatore del carico, con il suo indirizzo IPv6 e la regola di forwarding, attende le connessioni utente.
  2. Un client IPv6 si connette al bilanciatore del carico tramite IPv6.
  3. Il bilanciatore del carico agisce come proxy inverso e termina la connessione client IPv6. La richiesta viene inserita in una connessione IPv4 a un backend.
  4. Nel percorso inverso, il bilanciatore del carico riceve la risposta IPv4 dal backend, quindi la inserisce nella connessione IPv6 al client originale.

Allocazione di indirizzi IPv6 per le regole di forwarding del bilanciatore del carico

Quando configuri un bilanciatore del carico esterno, gli fornisci una o più regole di forwarding globali, ciascuna con un indirizzo IP IPv4 o IPv6 esterno con routing pubblico (o entrambi). Puoi utilizzare questo indirizzo IP nei record DNS del tuo sito.

Quando crei una regola di forwarding, puoi utilizzare un indirizzo IP statico prenotato per il tuo progetto oppure fare in modo che la regola di forwarding acquisisca automaticamente un indirizzo IP temporaneo quando crei la regola. Un indirizzo IP statico è riservato al tuo progetto e puoi conservarlo fino a quando non lo rilasci deliberatamente. Un indirizzo temporaneo appartiene alla regola di forwarding a condizione che esista questa regola. Se elimini la regola di forwarding, l'indirizzo temporaneo viene rilasciato nuovamente nel pool Google Cloud.

Se hai bisogno sia di un indirizzo IPv4 sia di un indirizzo IPv6 per il bilanciatore del carico, puoi creare due regole di forwarding, associando un indirizzo IPv4 a una e un indirizzo IPv6 all'altra. Puoi quindi associare entrambe le regole allo stesso bilanciatore del carico.

Formato dell'indirizzo IPv6

Google Cloud alloca un intervallo di indirizzi IPv6 /64 alle regole di forwarding IPv6. Google Cloud CLI elenca gli indirizzi IPv6 con i 64 bit meno significativi impostati su 0, ma il bilanciatore del carico accetta il traffico nell'intervallo completo. Di conseguenza, potresti vedere altri indirizzi IPv6 del bilanciatore del carico nell'intervallo allocato nelle intestazioni X-Forwarded-For, a seconda dell'indirizzo IP del server IPv6 a cui è connesso il client.

Per la formattazione di un indirizzo IPv6, Google Cloud segue i consigli riportati in RFC 5952,sezione 4.

Intestazione IP client con terminazione IPv6 per bilanciatori del carico delle applicazioni esterni

Quando il bilanciatore del carico esegue il proxy della connessione IPv6 dal client a una connessione IPv4 al backend, l'indirizzo IP di origine originale viene sostituito con l'indirizzo IP del bilanciatore del carico. Tuttavia, spesso i backend devono conoscere l'indirizzo IP di origine originale per il logging, il processo decisionale o altri scopi. Google Cloud fornisce un'intestazione HTTP che viene propagata ai backend che includono l'indirizzo IP client IPv6 originale.

Le intestazioni HTTP per IPv6 sono simili a quelle per IPv4. Il formato delle richieste è il seguente:

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

L'ultimo elemento mostra l'indirizzo IP del bilanciatore del carico. Il secondo all'ultimo elemento mostra l'indirizzo IP del client come viene visto dal bilanciatore del carico. Potrebbero essere presenti altri elementi nell'intestazione X-Forwarded-For quando il client o i proxy intermedi aggiungono altre intestazioni X-Forwarded-For prima di inviare la richiesta al bilanciatore del carico.

Un'intestazione X-Forwarded-For di esempio potrebbe avere il seguente aspetto:

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234 è l'indirizzo IPv6 del client. 2607:f8b0:4005:801::200e è l'indirizzo IPv6 dell'Application Load Balancer esterno.

Prezzi

Le regole di forwarding per la terminazione IPv6 vengono fornite senza costi aggiuntivi. Non viene addebitato alcun costo per gli indirizzi IPv6 temporanei. Agli indirizzi IPv6 prenotati vengono addebitate le tariffe esistenti, a prescindere dal fatto che siano in uso. In caso contrario, i prezzi del bilanciamento del carico IPv6 sono gli stessi di quelli del bilanciamento del carico IPv4. Per i dettagli dei prezzi del bilanciamento del carico, vedi Prezzi di rete.

Limitazioni

  • Il traffico IPv6 non è supportato con Application Load Balancer esterni regionali, Application Load Balancer interni regionali, Application Load Balancer interni regionali, bilanciatori del carico di rete proxy interno regionale, bilanciatore del carico di rete proxy interno regionale, bilanciatore del carico di rete proxy esterno regionale e bilanciatore del carico di rete passthrough interno.

Passaggi successivi