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. Le richieste degli utenti all'indirizzo IPv6 vengono bilanciate automaticamente verso il 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 carico di questi client viene quindi bilanciato automaticamente verso i 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 e IPv6 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. La connessione successiva dal bilanciatore del carico al backend utilizza IPv4 per impostazione predefinita. Tuttavia, puoi consentire a determinati bilanciatori del carico di 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 sia IPv6. | Una delle seguenti opzioni:
|
| Bilanciatore del carico delle applicazioni classico Bilanciatore del carico di rete proxy classico |
È possibile terminare sia le connessioni IPv4 sia 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 |
È possibile terminare sia le connessioni IPv4 sia IPv6 (anteprima) connessioni. | 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 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 degli utenti.
- 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 o interno, fornisci una o più regole di forwarding, ognuna con un indirizzo IP IPv4 o IPv6 (o entrambi). I bilanciatori del carico esterni utilizzano indirizzi IP esterni con routing pubblico, mentre i bilanciatori del carico interni utilizzano indirizzi IP interni e privati non accessibili da internet. Puoi utilizzare questi indirizzi IP nei record DNS del tuo sito.
Quando crei una regola di forwarding, puoi utilizzare un indirizzo IP statico riservato al tuo progetto oppure puoi 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 deliberatamente. 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
Quando crei una regola di forwarding, a seconda del tipo di bilanciatore del carico, il comportamento di allocazione dell'indirizzo IPv6 è il seguente:
Per il bilanciatore del carico delle applicazioni esterno globale, Google Cloud alloca un
/64intervallo di indirizzi IPv6 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 vedere altri indirizzi IPv6 del bilanciatore del carico nell'intervallo allocato nelle intestazioniX-Forwarded-Fora seconda dell'indirizzo IP del server IPv6 a cui si è connesso il client.Per il bilanciatore del carico delle applicazioni interno regionale e tra regioni e il bilanciatore del carico di rete proxy, con
--ip-versionimpostato suIPV6, il Google Cloud crea un intervallo di indirizzi IPv6 con prefisso/96casuale all'interno dell'intervallo della subnet. L'indirizzo IPv6 della regola di forwarding viene allocato da una subnet personalizzata che deve essere configurata con un--ipv6-access-typediINTERNALe un--stack-typediIPV4_IPV6oIPV6_ONLY.Per il bilanciatore del carico delle applicazioni esterno regionale e il bilanciatore del carico di rete proxy esterno regionale, con il
--ip-versionimpostato suIPV6, viene creato un intervallo di indirizzi IPv6 con Google Cloud/96casuale all'interno dell'intervallo della subnet. L'indirizzo IPv6 della regola di forwarding viene allocato da una subnet personalizzata che deve essere configurata con unipv6-access-typediEXTERNALe unstack-typediIPV4_IPV6oIPV6_ONLY. L'IPv6 esterno può essere riservato solo nel livello di rete Premium. Il flag--endpoint-typedeve essere impostato suNETLBper essere utilizzato per la regola di forwarding.
Quando formatti un indirizzo IPv6, Google Cloud segui le raccomandazioni nella sezione 4 della RFC 5952.
Intestazione IP client con terminazione IPv6 per i bilanciatori del carico delle applicazioni
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, per il processo decisionale o per 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.
Converti 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 |
Converti 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 |
Converti il bilanciatore del carico di rete proxy in IPv6 |
Prezzi
Per i prezzi degli indirizzi IP, consulta Prezzi di rete: Virtual Private Cloud.
Per i dettagli sui prezzi del bilanciamento del carico, consulta Prezzi di rete: Cloud Load Balancing.
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.
Quando viene creata una regola di forwarding IPv6, viene allocato automaticamente un intervallo di indirizzi IPv6
/96dalla subnet. Tuttavia, solo il primo indirizzo in questo intervallo /96 (ad esempio, che termina con:0:0) è raggiungibile dai client. Assicurati che i client e i record DNS siano configurati per utilizzare questo primo indirizzo specifico. Questo vale per 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 (anteprima).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).