Questo documento mostra come il traffico IPv6 viene gestito dai bilanciatori del carico delle applicazioni e dai bilanciatori del carico di rete proxy. Questi bilanciatori del carico sono bilanciatori del carico proxy, il che significa che le connessioni client in entrata vengono terminate sul bilanciatore del carico. Il bilanciatore del carico avvia quindi una nuova connessione per inoltrare la richiesta del client al backend. A seconda del tipo di bilanciatore del carico, puoi abilitare IPv6 per una o entrambe queste connessioni.
L'abilitazione di IPv6 per il bilanciatore del carico offre i seguenti vantaggi:
- Utilizza un singolo indirizzo IPv6 anycast per i deployment multiregionali. Ti serve un solo indirizzo IPv6 del bilanciatore del carico per le istanze dell'applicazione in esecuzione in più regioni. Ciò significa che il server DNS ha un singolo AAAA record e che non devi bilanciare il 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. Il bilanciamento del carico delle richieste utente all'indirizzo IPv6 viene eseguito automaticamente sul backend integro più vicino con capacità disponibile.
Esegui deployment a doppio stack. Per gestire i client IPv6 e IPv4, crea due indirizzi IP del bilanciatore del carico: uno per IPv6 e l'altro per 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 eseguito automaticamente sui backend a doppio stack IPv4 o IPv6 integri più vicini con capacità disponibile. Per vedere quali bilanciatori del carico supportano i backend a doppio stack, consulta la tabella Servizi di backend e tipi di backend supportati.
Bilancia il carico del traffico client IPv6 HTTP, HTTPS, HTTP/2, TCP e SSL/TLS. Il supporto del protocollo dipende dal tipo di bilanciatore del carico che utilizzi e dal protocollo della regola di forwarding.
- Esegui l'overflow tra le regioni con un singolo indirizzo IPv6 del bilanciatore del carico. Se i backend di una regione non hanno risorse o non sono integri, il bilanciatore del carico globale indirizza automaticamente le richieste degli utenti alla regione più vicina con risorse disponibili. Quando la regione più vicina ha risorse disponibili, il bilanciamento del carico globale torna a essere gestito da questa regione. Il bilanciamento del carico globale richiede l'utilizzo del livello Premium dei Network Service Tiers.
Supporto del bilanciatore del carico
Per i bilanciatori del carico basati su proxy, come i bilanciatori del carico delle applicazioni e i bilanciatori del carico di rete proxy, la connessione dal client al bilanciatore del carico e la seconda connessione dal bilanciatore del carico al backend possono essere configurate indipendentemente l'una dall'altra. Ad esempio, il bilanciatore del carico può accettare il traffico IPv4 da un client, terminare la connessione e quindi inoltrare la richiesta dal bilanciatore del carico al backend tramite una nuova connessione IPv6, a condizione che il backend sia un backend a doppio stack in grado di gestire le connessioni IPv6.
Per consentire a un bilanciatore del carico di ricevere connessioni IPv6 dai client, devi utilizzare un indirizzo IPv6 per la regola di forwarding del bilanciatore del carico. Per impostazione predefinita, la connessione successiva dal bilanciatore del carico al backend utilizza IPv4. Tuttavia, puoi abilitare alcuni bilanciatori del carico a utilizzare IPv6 configurando l'opzione della policy di selezione dell'indirizzo IP nel servizio di backend.
La tabella seguente descrive i tipi di connessione supportati da tutti i bilanciatori del carico basati su proxy:
| Bilanciatore del carico | Connessione dai client al bilanciatore del carico | Connessione dal bilanciatore del carico ai backend |
|---|---|---|
| Bilanciatore del carico delle applicazioni esterno globale Bilanciatore del carico di rete proxy esterno globale |
È possibile terminare sia le connessioni IPv4 che IPv6. | Una delle seguenti opzioni:
|
| Bilanciatore del carico delle applicazioni classico Bilanciatore del carico di rete proxy classico |
È possibile terminare sia le connessioni IPv4 che IPv6. | Solo connessione IPv4 |
| Bilanciatore del carico delle applicazioni esterno regionale Bilanciatore del carico di rete proxy esterno regionale Bilanciatore del carico delle applicazioni interno regionale Bilanciatore del carico di rete proxy interno regionale Bilanciatore del carico delle applicazioni interno tra regioni Bilanciatore del carico di rete proxy interno tra regioni |
Solo IPv4. Il traffico IPv6 non è supportato. | Una delle seguenti opzioni:
|
GCE_VM_IP_PORT endpoint) possono essere configurati come a doppio stack.
Come funziona la terminazione IPv6
La terminazione IPv6 è supportata dai bilanciatori del carico delle applicazioni globali e classici e dai bilanciatori del carico di rete proxy. La configurazione della terminazione IPv6 per questi bilanciatori del carico consente ai tuoi backend di apparire come applicazioni IPv6 ai client IPv6, come mostrato nella figura seguente:
Quando un utente si connette al bilanciatore del carico tramite IPv6, si verifica quanto segue:
- Il bilanciatore del carico, con il suo indirizzo IPv6 e la regola di forwarding, attende le connessioni utente.
- Un client IPv6 si connette al bilanciatore del carico utilizzando IPv6.
- Il bilanciatore del carico funge da proxy inverso e termina la connessione client IPv6. In base alla policy di selezione dell'indirizzo IP del servizio di backend inserisce la richiesta in una connessione IPv4 o IPv6 a un backend.
- In un percorso inverso, il bilanciatore del carico riceve la risposta dal backend e la rinvia nella connessione IPv6 al client originale.
Allocazione degli indirizzi IPv6 per le regole di forwarding del bilanciatore del carico
Quando configuri un bilanciatore del carico esterno, fornisci una o più regole di forwarding, ognuna 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 riservato al tuo progetto oppure fare in modo che la regola di forwarding acquisisca automaticamente un indirizzo IP temporaneo quando la crei. Un indirizzo IP statico è riservato al tuo progetto e puoi conservarlo finché non lo rilasci intenzionalmente. Un indirizzo temporaneo appartiene alla regola di forwarding finché esiste la regola di forwarding. Se elimini la regola di forwarding, l'indirizzo temporaneo viene rilasciato nel Google Cloud pool.
Se hai bisogno di un indirizzo IPv4 e 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 sull'intero intervallo.
Pertanto, potresti visualizzare 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 si è connesso il client.
Quando formatti un indirizzo IPv6, Google Cloud segue le raccomandazioni della sezione 4 della RFC 5952.
Intestazione IP client con terminazione IPv6 per i bilanciatori del carico delle applicazioni esterni
Quando il bilanciatore del carico invia tramite proxy la 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, i backend spesso devono conoscere l'indirizzo IP di origine originale per la registrazione, il processo decisionale o altri scopi. fornisce un'intestazione HTTP che viene propagata ai backend e che include l'indirizzo IP client IPv6 originale.Google Cloud
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 penultimo elemento mostra l'indirizzo IP del client così come viene visualizzato 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 esempio di intestazione X-Forwarded-For potrebbe essere il seguente:
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 del bilanciatore del carico delle applicazioni esterno.
Eseguire la conversione da solo IPv4 a doppio stack
Puoi convertire le risorse del bilanciatore del carico che utilizzano solo IPv4 (stack singolo) in IPv4 e IPv6 (doppio stack). Aggiornando le risorse del bilanciatore del carico, puoi instradare automaticamente il traffico IPv6 ai backend.
Per istruzioni su come convertire le risorse del bilanciatore del carico e i backend in doppio stack, consulta la seguente documentazione:
| Bilanciatore del carico | Documentazione |
|---|---|
|
Bilanciatore del carico delle applicazioni esterno globale Bilanciatore del carico delle applicazioni interno tra regioni Bilanciatore del carico delle applicazioni esterno regionale Bilanciatore del carico delle applicazioni interno regionale |
Convertire il bilanciatore del carico delle applicazioni in IPv6 |
|
Bilanciatore del carico di rete proxy esterno globale Bilanciatore del carico di rete proxy interno tra regioni Bilanciatore del carico di rete proxy esterno regionale Bilanciatore del carico di rete proxy interno regionale |
Convertire il bilanciatore del carico di rete proxy in IPv6 |
Prezzi
Le regole di forwarding per la terminazione IPv6 sono fornite senza costi aggiuntivi. Non ti vengono addebitati costi per gli indirizzi IPv6 temporanei. Gli indirizzi IPv6 riservati vengono addebitati alle tariffe esistenti, indipendentemente dal fatto che siano in uso o meno. In caso contrario, i prezzi per il bilanciamento del carico IPv6 sono gli stessi del bilanciamento del carico IPv4. Per i dettagli sui prezzi del bilanciamento del carico, consulta la sezione relativa ai prezzi di rete .
Limitazioni
- I bilanciatori del carico di rete proxy classici e i bilanciatori del carico delle applicazioni classici non supportano i backend a doppio stack; il traffico IPv6 viene terminato dal bilanciatore del carico e quindi inviato tramite proxy ai backend su una connessione IPv4.
I bilanciatori del carico delle applicazioni esterni regionali, i bilanciatori del carico delle applicazioni interni regionali, i bilanciatori del carico di rete proxy interni regionali, i bilanciatori del carico di rete proxy interni tra regioni, i bilanciatori del carico delle applicazioni interni tra regioni, e i bilanciatori del carico di rete proxy esterni regionali non supportano i frontend IPv6. Il traffico IPv4 in entrata viene inviato tramite proxy su una connessione IPv4 o IPv6 ai backend IPv4 e IPv6 (a doppio stack).
Solo i backend dei gruppi di istanze VM e i gruppi di endpoint di rete (NEG) zonali con endpoint
GCE_VM_IP_PORTsupportano i backend a doppio stack (IPv4 e IPv6).